<Infinisil>
taktoa: I don't know why you want to involve the evaluation phase for that
<taktoa>
I think doing it using a builtin is better though, since then you can use the results of the parse
<Infinisil>
The evaluation phase is there to evaluate the nix expression, not strings
<Infinisil>
taktoa: Ahhh,
mudri`` has quit [(Ping timeout: 240 seconds)]
<taktoa>
have you ever heard the term "shotgun parsing"?
<Infinisil>
taktoa: But the script is generated by nix already, you already have the results
<Infinisil>
taktoa: Nope
<taktoa>
basically the problem of parsing context-free grammars is solved
<taktoa>
but people keep manually hacking together parsers with string primitives and regexes
<Infinisil>
taktoa: Ah yes
<taktoa>
it's a terrible security problem
<taktoa>
obviously since Nix is memory-safe it's not such a big deal
<Infinisil>
Okay but can you show me an example of the thing you're proposing that couldn't be done with just a package at build-time?
<taktoa>
obviously you can do anything with IFD, I'm not arguing against that
<taktoa>
but IFD is comparatively slow, complicated, and not generally suitable for nixpkgs
<taktoa>
if you're worried about the fact that we'd be adding a complicated primop to the language
<taktoa>
well, we could always just write an earley parser in pure nix and use that when the builtin isn't available
fikse has quit [(Ping timeout: 268 seconds)]
<Infinisil>
Writing an earley parser in nix would probably be so bad for performance..
<taktoa>
yes, agreed
<Infinisil>
Why is IFD slow?
<taktoa>
it would just be there to preserve correctness in the case where people are running a version of nix without the primop available
<gchristensen>
I'm worried about it being wrong and preventing a user from doing something that is valid, that our validator barfs at
<taktoa>
Infinisil: it requires forking and execing, minimum
<gchristensen>
and even if it can be disabled, I'm worried it would be a "secret" that it can be disabled (ie: not properly documented) and then nix gets a bad name for making a valid thing impossible
<Infinisil>
taktoa: But that won't be a problem unless it runs 1000s of times
<taktoa>
Infinisil: there are 1000s of nixos options
<Infinisil>
taktoa: Hmm, valid point
<gchristensen>
how many are arbitrary config?
<taktoa>
probably 100 at least
<Infinisil>
Ohhhh hold on
<gchristensen>
"But that won't be a problem unless it runs 1000s of times" :)
hamishmack has quit [(Quit: hamishmack)]
<taktoa>
gchristensen: I searched "extra" in the nixos options and got about 400 results
<Infinisil>
if we do this in the evaluation phase, this means that these 100 configs would get checked every single time. But when doing it during build-time with packages, it will only get checked when a change happens
<gchristensen>
it seems unlikely to be using all hundreds too :)
<Infinisil>
That too
<taktoa>
Infinisil: that doesn't really matter though, since it runs so fast. 300K lines of C per second!
<taktoa>
okay, let me put it this way. if I wrote a pull request to nix adding this feature, would either of you object? or is it just a matter of "well, we don't have the resources"
<Infinisil>
taktoa: Meh, that's really where nix shines: Don't do stuff you already did
sary has joined #nixos
<clever>
another problem with using IFD to lint sudoers using sudo, is that you must now build sudo at EVAL time
<Infinisil>
taktoa: I would probably suggest what I suggested here
justelex has quit [(Ping timeout: 240 seconds)]
<clever>
so nix-instantiate causes builds
<gchristensen>
clever: I don't see why it has to be IFD
<gchristensen>
I use shellcheck and other linters without IFD
<taktoa>
gchristensen: if you want to do something with the output in Nix
<hodapp>
is there some magic I have to do to put multiple commands in postPatch...?
<gchristensen>
yeah but when does that happen? my linters happen when the only result is a file on disk or something
<hodapp>
tried $postPatch and eval $postPatch in a nix-shell and it's just sort of munging all the commands together
<Infinisil>
gchristensen: Agreed
<gchristensen>
what about eval "${postPatch}"
<clever>
hodapp: quote the variable
<clever>
hodapp: if you dont put double-quotes around it, the \n's get lost
<Infinisil>
Shouldn't it be just `postPatch`?
<Infinisil>
Or does this only work with `unpackPhase` etc.?
<Infinisil>
taktoa: I really think it's better to put this in a package, would be a nice addition to nixpkgs/pkgs/build-support
<clever>
Infinisil: that runs a bash function, not a variable containing bash script
xadi has quit [(Quit: Leaving.)]
<clever>
!ping
<clever_>
Infinisil: and unpackPhase runs the original function, not the overridden $unpackPhase
<clever_>
!pong
michas has quit [(Quit: Verlassend)]
<taktoa>
Infinisil: all of the arguments you've made apply equally to `builtins.match` though
<Infinisil>
clever_: I see
<gchristensen>
I see the simplicity of builtins.match is a feature
<gchristensen>
I see the limitations of builtins.match as a feature
<clever>
Infinisil: oddly, you can have both a unpackPhase function, and a $unpackPhase variable, and just typing "unpackPhase" runs the function
<Infinisil>
taktoa: True, I have the same opinion on builtins.match
<clever>
Infinisil: the stdenv has code to detect if the variable is set, and eval it instead
<taktoa>
gchristensen: people really try to cram things into regexes and it results in buggy code. how is that a feature
<taktoa>
or are you saying that not having an earley parser means that people will just try to avoid strings altogether
<Infinisil>
taktoa: Is there an alternative to strings?
<gchristensen>
after reviewing every use of builtins.match in nixpkgs, I can say definitively "no they don't"
<taktoa>
Infinisil: a more well-typed structure like a set
<clever>
hodapp: you can also do "runHook postPatch" and that will also support the arrays in bash
<taktoa>
i.e.; just have the user manually parse it in their head and type the AST
<hodapp>
well, I'm running into something else now, which is that I can't run what I need to because the /nix/store/whatever is read-only
<taktoa>
gchristensen: well that's just because we don't bother with any kind of nixos option user input validation
<Infinisil>
taktoa: nix *is* the validation
<taktoa>
other than having what the user types be correct-by-construction
<gchristensen>
locateDominatingFile this is a weird function
slack1256 has joined #nixos
Neo--- has quit [(Ping timeout: 260 seconds)]
<taktoa>
gchristensen: what if the BNFed options were opt-in. like you have extraConfig and extraConfigValidated
<Infinisil>
taktoa: Oh so you mean that this builtin could be used to generate an AST in nix and then work with that?
<taktoa>
Infinisil: yes. it is a general-purpose way to turn a string written in any context-free language into an AST
<hodapp>
ugh. what's the proper place for modifying something in the unpacked source?
<gchristensen>
hodapp: definitely postPatch
<Infinisil>
taktoa: Then you would want builtins.earley to be of type BNF -> String -> Nix expression ?
<taktoa>
yes, precisely
<Infinisil>
Hmm
<clever>
taktoa: another use i can see for parsers, do you know how ipv6 can have a string of 0's at almost any point replaced by just :: ?
<taktoa>
clever: well I believe IPv6 addresses are a regular grammar
<hodapp>
gchristensen: I'm doing it in postPatch with sed -i, and getting "sed: couldn't open temporary file /nix/store/6x2783a5k8p75d1klspqqn6dwlg1j8mb-opencv-3.2.0-src/modules/python/src2/seddi4sme: Permission denied"
<taktoa>
so you could just use builtins.match for that
<gchristensen>
hodapp: can you paste your expression?
<taktoa>
though BNFs are a lot easier to write and read than regular expressions IME
<clever>
taktoa: you can turn 1:2:3:0:0:0:0:5:6 into 1:2:3::5:6, and it will insert enough 0's to pad it out
<hodapp>
gchristensen: sed -i -e 's|if len(decls) == 0:|if len(decls) == 0 or "opencv2/" not in hdr:|' $src/modules/python/src2/gen2.py
<gchristensen>
the expression, not command :)
<clever>
taktoa: and also, for reverse dns, that has to turn into 6.0.0.0.5.0.0.0.0.0.0.0 ....
<hodapp>
gchristensen: not sure what you mean
<taktoa>
clever: that is a regular grammar. the regex you'd have to write is pretty nasty
<gchristensen>
hodapp: the whole .nix file
<taktoa>
clever: basically since there is a limit to the number of colons you can just hardcode all the cases
joehh has quit [(Ping timeout: 246 seconds)]
<clever>
taktoa: what would you use to parse the v6 and also convert it into a reverse dns entry?
fikse has joined #nixos
<taktoa>
well idk about the reverse dns
<gchristensen>
I'm just not convinced we _should_ be doing this in nix
<gchristensen>
is my hangup
<Infinisil>
taktoa: Okay, can you find an example of where having a validated nix-expression from a string would be useful?
drtop has quit [(Ping timeout: 246 seconds)]
<clever>
taktoa: it has to uncompact it, so every part is 4 hex digits, strip all :'s, flip it, then insert a . between every char
<Infinisil>
I know that submodules can pretty much do that anyways, but they're admittedly a pain to write
<taktoa>
gchristensen: I mean, suppose someone is hellbent on doing it in Nix. then having this available means that what they end up writing is much more portable to other languages, instead of being "trapped" in Nix
<gchristensen>
taktoa: yeah I don't want to enable that
<gchristensen>
ok hodapp, you can't edit $src b/c it is another store path that already exists, not what you're creating
<clever>
taktoa: what about just copy/pasting the parsing gramar directly from the sudo source, and into the sudoers linter in nix?
<gchristensen>
you have to edit it in ./
<clever>
hodapp: and the unpackPhase will copy $src to .
<Infinisil>
taktoa: I don't really get what you mean by it being portable to other languages, BNF is language independent
<hodapp>
clever: is this documented anywhere?
<taktoa>
Infinisil: that's what I'm saying. BNF is language-independent, whereas a hacked-up mess of string functions and builtins.match is definitely not language-independent
<Infinisil>
Ahh whops, right
<Infinisil>
But
<gchristensen>
hodapp: was that for me?
<clever>
hodapp: maybe, but i just learned it by reading setup.sh
danl1240 has quit [(Quit: My iMac has gone to sleep. ZZZzzz…)]
<Infinisil>
The big advantage of submodules is that you get a very precise error message when you done it wrong, a description of every option, a default (and more?). How is that with a BNF validation?
<taktoa>
Infinisil: it's pretty great by default, and in the best case it's excellent, since you can even do static analysis on the parsed data
<taktoa>
you'll get a line number and column
radvendii has joined #nixos
<taktoa>
and potentially also "saw: foobar, expected: baz"
<hodapp>
clever: fine, fine, I'll read the source.
<hodapp>
still wish I understood how the bloody hell OpenCV's Python bindings can build with contrib enabled on anything, let alone Nix
<Infinisil>
taktoa: Hmm
koserge has quit [(Ping timeout: 276 seconds)]
<Infinisil>
taktoa: Do you have an example of where having a validated nix-expression could be useful? Where a submodule would be too inconvenient/impossible?
<Infinisil>
validated nix-expression from a string*
<taktoa>
Infinisil: validating an email address (and simultaneously being RFC-compliant)
<taktoa>
stuff like that
<Infinisil>
taktoa: But you won't need an nix-expression as output for that
fikse has quit [(Ping timeout: 276 seconds)]
<Infinisil>
I'm asking because if you don't need a nix-expression as output, then it's totally doable in the build phase
<taktoa>
Infinisil: probably, though I can imagine a few cases where you might need it (mail server config)
<clever>
taktoa: or hydra config, where to email errors
<Infinisil>
taktoa: Show me, I really need some good examples, I'm not very convinced without that
<clever>
correction, what email to include in the from: field
<gchristensen>
these seem like reaaaally low value use cases to justify a Whole Thing to support it
<taktoa>
gchristensen: builtins.match is a Whole Thing. you could even replace builtins.match with builtins.earley!
<clever>
Infinisil: i suspect hydra and the module have zero validation on the field i linked, and will insert whatever string you give it into the emails
<gchristensen>
I see the limitations of builtins.match as a feature
<taktoa>
hell I think builtins.match supports backreferences, so it's already equally powerful!
<Infinisil>
clever: An example of what this might be set to?
thc202 has quit [(Ping timeout: 240 seconds)]
<clever>
Infinisil: just an email address
<Infinisil>
Ohh
<Infinisil>
right
<taktoa>
clever: you don't need the parsed data from the email though
<clever>
taktoa: just the fact that its valid
<Infinisil>
Yeah
<taktoa>
yeah, so you can do that without IFD just with a derivation
<clever>
yeah, i could put such a derivation into the top-level assertions of nixos
<Infinisil>
Is it possible to have internet during the build? To *actually* check e-mail addresses :D
<clever>
these ones
<gchristensen>
lol Infinisil
<hodapp>
Infinisil: GET UOT
<gchristensen>
Infinisil: yes
joehh has joined #nixos
<Infinisil>
Dude
<Infinisil>
That's perfect
<hodapp>
Infinisil: do you want OpenCV? because this is how you get OpenCV.
<taktoa>
Infinisil: have you heard of builtins.exec?
<Infinisil>
It only rebuilds and sends a confirmation email when something changed
<gchristensen>
see also the horrible chrome hack
<gchristensen>
(it isn't _really_ possible)
<dash>
Infinisil: your desires are immoral
<Infinisil>
But it would also send an e-mail when any other person builds it..
thematter[m] has joined #nixos
<Infinisil>
Alright, we still don't have a single example of where a builtins.earley would be useful.. (and impossible with a derivation)
<hodapp>
take a page of inspiration from Kickstarter. when has "useful" or "possible" ever mattered?
radvendii has quit [(Ping timeout: 255 seconds)]
<Infinisil>
:P
<hodapp>
why the crappity crap is OpenCV building Qt crap
<taktoa>
Infinisil: I think this is the kind of thing where we don't know what it's useful for because people never had the option to use it. Which, I guess, is a decent argument for adding it as a Nix expression using IFD for now, and promoting it to a primop if people use it in earnest.
<hodapp>
I am pretty sure that OpenCV encompasses, in all of its optional components, somewhere around 25% of the packages in nixpkgs
<hodapp>
OpenCV probably has bindings to link to another version of OpenCV, just because
<Infinisil>
taktoa: But if people are already content with IFD, then there's no reason for doing it in evaluation-time.. Only when people start asking themselves "Gee, I sure wish I had the AST of this string", then it's something different
<taktoa>
well avoiding IFD isn't the only reason to use a primop
<taktoa>
performance is a major concern
<clever>
hodapp: run "nix-store -q --tree" on the .drv file for the build
<clever>
hodapp: i dont see QT in the closure of my opencv
<Infinisil>
taktoa: Only instance I could think of where performance would matter is when you build something for the very first time without having all the cached derivations, then using IFD is strictly slower than a builtin, but everytime something gets updated IFD would probably be faster
<taktoa>
Infinisil: nah, since IFD still has to query the store
<clever>
Infinisil: IFD uses the target arch for building the derivation
<clever>
Infinisil: so if i import a darwin nixpkgs, and do haskellPackages.callCabal2nix, it wants to generate the .nix file on a darwin machine
<clever>
Infinisil: hydra cant do that
<Infinisil>
clever: I see
<clever>
to fix that, i would have to import 2 instances of nixpkgs (host and darwin), use the host nixpkgs to build and run cabal2nix, then the darwin nixpkgs to import the resulting nix file
<clever>
and at this point, is simpler to just pre-run cabal2nix and commit the result
<Infinisil>
clever: But doesn't nativeBuildInputs do that?
<clever>
nativeBuildInputs is for when you cross-compile
<clever>
but import <nixpkgs> { system = "x86_64-darwin"; } doesnt cross-compile
<clever>
it does a native darwin build, on a darwin slave
<taktoa>
I don't really get why people seem intent on gimping nix as a programming language. as long as everything is pure, I don't really see the issue with people doing crazy things in Nix
Rotaerk has joined #nixos
<Infinisil>
clever: I don't really get what you're saying, is this an argument against using a package to implement a function that does BNF validation?
<clever>
Infinisil: its a case of where IFD is bad
<taktoa>
no, it's an argument against using IFD
<Infinisil>
Ah
<hodapp>
clever: was your OpenCV built with contrib & Python support?
<taktoa>
Infinisil: note that you don't need IFD unless you use the parsed data. IFD makes derivations equally powerful to builtins.
<clever>
hodapp: *looks*
<Infinisil>
taktoa: Wait, what is IFD exactly, I might have misunderstood
<clever>
hodapp: python was off, no contrib option visible
<clever>
Infinisil: import from derivation
<taktoa>
Infinisil: IFD allows Nix to build a derivation, then import a .nix file from the realised store path
<taktoa>
so just _evaluating_ nix can require building derivations in that case
<Infinisil>
Ahh
<clever>
and hydra doesnt support using build slaves at eval time
<catern>
IFD seems really pretty good
<Infinisil>
So that's what `import` really does
<clever>
because the eval is supposed to be pure
<catern>
though it's way too powerful in general I guess
<taktoa>
well import doesn't always do that
<hodapp>
clever: I think it's test cases for contrib, or some nonsense like that
<clever>
hodapp: what override did you add to opencv, and what attribute path?
<Infinisil>
taktoa: When does import not do an import from a derivation?
<gchristensen>
after learning about quadratics in bash, our PATH manipulation in stdenv is quadratic
<taktoa>
catern: IFD is to recursive Nix as delimited continuations are to call/cc :P
<taktoa>
Infinisil: if you import from a path that is not in the store
<clever>
gchristensen: i have found that ghcWithPackages looks better then buildInputs
<gchristensen>
heh
<clever>
gchristensen: it will buildEnv all deps into a single dir, acting as an index in one spot
<Infinisil>
taktoa: And a path in the store isn't a derivation?
<clever>
gchristensen: rather then appending 200 -L's to ld and letting it search
<catern>
taktoa: err.... what is recursive Nix?
<jasom>
Is there a way to pin my users' channel to sync to the installed system nixos? I keep getting libEGL.so mismatch issues and it's ... annoying.
<clever>
gchristensen: but that can make things like propagated inputs and other stuff harder to deal with
<catern>
taktoa: is that just "use Nix as low-level build manager"?
<taktoa>
catern: being able to run `nix-build` inside a nix build
<clever>
jasom: its usually better to just never have a channel on the users, and manage all channels by root
<taktoa>
catern: it's more useful than it sounds
<jasom>
clever: okay, how do I do that?
<catern>
taktoa: ah... that's not currently possible?
<clever>
jasom: even as root, only the channel called "nixos" is special, so you can add custom channels to root without harm
<clever>
jasom: same way you manage them as a normal user, nix-channel --add
<jasom>
clever: and then nix-env will use that channel as a user?
<clever>
jasom: and --remove every channel from all non-root users
<clever>
jasom: yeah
<clever>
jasom: just name the channel as always, nix-env -iA unstable.hello
<Infinisil>
taktoa: I feel like your idea is well worth a github issue
<taktoa>
Infinisil: okay, I'll write it up :)
<catern>
yeah I mean
<catern>
recursive Nix seems better
<taktoa>
catern: well, it's more powerful. "better" is subjective
<catern>
because it gives us Nix as a low-level build manager
<catern>
which is like, a killer app
<Infinisil>
I really want to write a nix function that does this using a package, so that you can just do something like `lib.validate (g: g.haskell) "<haskell program here>"`
<Infinisil>
Or `lib.validate "BNF" "script heer"`
romildo has joined #nixos
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] Hodapp87 opened pull request #27674: opencv: Work around build failure with enableContrib & Python (master...opencv_contrib_py) https://git.io/v7Gkm
NixOS_GitHub has left #nixos []
<taktoa>
catern: yes, agreed. it's literally my job this summer to turn Nix into a low-level build manager for Haskell (using IFD), and recursive nix would have made this a lot easier
<catern>
ah you're using IFD to do that?
<taktoa>
yeah
<catern>
kind of sad
radvendii has joined #nixos
<jasom>
clever: nixos -qAP '*' is empty now... root has a nixos channel my user has no channels
tvon has joined #nixos
hiratara has quit [(Ping timeout: 276 seconds)]
<hodapp>
taktoa: low-level build manager for Haskell?
<clever>
jasom: what does "nix-channel --list" and "sudo nix-channel --list" say?
<Infinisil>
I also wish for recursive nix :( Have tried it until i realized it's not possible
<taktoa>
Infinisil: have you talked with shlevy? he seems to think it's possible
<taktoa>
the JSON file in that gist was created by running `ghc -M` to get a Makefile, then `ckati` to turn it into ninja, then `ninja2nix`
<Infinisil>
Damn
<Infinisil>
Cool stuff
<catern>
man
<catern>
where does edolstra even communicate?
<catern>
he's not on IRC, he barely sends email, he doesn't talk that much on issues
<taktoa>
catern: he is niksnut
<catern>
oh, I didn't know :)
<Infinisil>
Same
<catern>
reminds me of when I realized civodul was ludovic :)
<Infinisil>
Oh damn
<Infinisil>
Or grahamc gchristensen
jtojnar has joined #nixos
<gchristensen>
I feel like I'm in an exclusive club
<hodapp>
you are
<hodapp>
drinks are like $27
jtojnar has quit [(Client Quit)]
<Infinisil>
gchristensen: I know you're using matrix as one nick, but what is the mistery behing ludovic?
lambdamu_ has quit [(Ping timeout: 268 seconds)]
<gchristensen>
no idea
<hodapp>
woooo \o/ I actually made Jupyter work with Python with OpenCV with contrib enabled
<hodapp>
that's a lotta 'with'
hamishmack has joined #nixos
<Infinisil>
hodapp: Congrats!
<hodapp>
don't jinx it
<hodapp>
I need to get CUDA into this mess too
<catern>
Infinisil: oh, ludovic only has one nick, I just didn't realize "civodul on IRC" was the same person as "Ludovic, creator of guix"
neeasade has joined #nixos
<Infinisil>
catern: Ahhhh
tvon has quit [(Quit: Peace out, y'all!)]
<taktoa>
one of the things I like about the nixos community is how nice this IRC channel is. like, it's comparable to #haskell in terms of smart people willing to fix your problem, but at the same time it's got a nice informal atmosphere
<Infinisil>
Agreed
<gchristensen>
taktoa: I agree :)
drakonis has quit [(Remote host closed the connection)]
drakonis has joined #nixos
<Infinisil>
How can I find out why I can't unmount a directory?
<Infinisil>
lsof <path> and fuser <path> don't show anything
<jasom>
clever: still not working; ls -ltrh ~/.nix-defexpr/*/* has unchanged output
<Infinisil>
Eh whatever, I can just plug it out
drakonis has quit [(Remote host closed the connection)]
drakonis has joined #nixos
<gchristensen>
lol Infinisil :)
indi_ has quit [(Remote host closed the connection)]
<Infinisil>
gchristensen: :P I'm actually testing how I can boot with a full zfs disk using a small stick, so that's why i don't really care :)
indi_ has joined #nixos
<Infinisil>
Okay I think something is messed up, happened before I unplugged it forcibly though, it must be the reason i couldn't unmount it
lverns has joined #nixos
<Infinisil>
I'm gonna have to reboot, brb
Infinisil has quit [(Quit: leaving)]
s33se_ has joined #nixos
<jasom>
so, how do I get nixos to create the ~/.nix-defexpr/channels_root
indi_ has quit [(Ping timeout: 240 seconds)]
s33se has quit [(Ping timeout: 255 seconds)]
Infinisil has joined #nixos
mbrgm has quit [(Ping timeout: 255 seconds)]
mbrgm has joined #nixos
<Infinisil>
Even had to force shutdown..
<clever>
jasom: does channels_root exist in .nix-defexpr?
<clever>
jasom: have you been deleting things to silence warnings about collisions?
<jasom>
clever: no to the first one, maybe to the second?
<jasom>
clever: I think I installed my user profile before the root profile
* jasom
tried manually adding in the channels_root just now and didn't get any benefit
<jasom>
aha, it is working now, I just typoed A instead of a
<clever>
Infinisil: that is the internals behind how pkgs.hello.meta.position works
justelex has joined #nixos
drakonis has quit [(Read error: Connection reset by peer)]
bahamas has joined #nixos
<bahamas>
hello. I'm trying out nix on a django app. I created a default.nix file and just ran nix-build. it seems to be building the entire Internet. is this expected?
<dash>
on what OS/architecture?
<bahamas>
mac os x
<bahamas>
it finished eventually
<copumpkin>
building the entire internet might mean different things to different people
<copumpkin>
if you're on master, I'd expect to see a few things build
<bahamas>
what do you mean by being on master?
<copumpkin>
if you're working off a git clone of nixpkgs
<copumpkin>
I guess we can stop guessing if you pastebin the list of things it built :)
<bahamas>
unfortunately I have to go. I will sort it out some other time. thanks!
bahamas has quit [(Quit: leaving)]
<Infinisil>
> 4:22 clever: heading off to bed now
<Infinisil>
heh
<clever>
yeah, i have trouble signing off :P
<dash>
another satisfied customer, I see
<clever>
Infinisil: ehh, this build is taking too long, i'll just finish it tomorrow
<aswanson>
anyone running nixos-unstable under efi? I'm getting an error during nixos-rebuild that the target device is full.
<aswanson>
It looks like its because I have multiple sets of **-initrd-initrd.efi and **linux-4.9.**-bzimage.efi files in the /boot partition
<aswanson>
shouldn't nix be getting rid of those as upgrades occur?
joehh has quit [(Ping timeout: 255 seconds)]
eacameron has joined #nixos
<Infinisil>
aswanson: I ran into this problem before, I fixed it by doing sudo nix-collect-garbage -d and /run/current-system/bin/switch-to-configuration boot
<Infinisil>
I don't know if both of those are needed, but that worked
<Infinisil>
If you're using grub, setting the boot.loader.grub.configurationLimit to 10 or so might fix it for all times
<aswanson>
I'm just using systemd-boot so no luck on the grub thing. I'll run those commands you suggested and see what happens
eacameron has quit [(Ping timeout: 276 seconds)]
fresheyeball has joined #nixos
<fresheyeball>
hey so I have a personal environement at `.config/nixpkgs/config.nix`
<Infinisil>
aswanson: I'm actually using systemd-boot too, I wish I could switch to grub
<fresheyeball>
and ran
<fresheyeball>
nix-env -iA nixos.myEnv
<fresheyeball>
to install the environmnet for personal use
<fresheyeball>
it looked like it worked
<fresheyeball>
but now when I run that command again
<fresheyeball>
I get this
romildo has quit [(Quit: Leaving)]
aswanson has left #nixos ["WeeChat 1.9"]
alx741 has quit [(Quit: alx741)]
<fresheyeball>
error: opening file ‘/nix/store/kx25v9xl69lz5p7d40sq3sqgcwa7q8pa-myEnv/default.nix’: No such file or directory
eacameron has joined #nixos
<Infinisil>
fresheyeball: How does your config.nix look? Did you put it in packageOverrides?
MrCoffee has quit [(Quit: Lost terminal)]
reinzelmann has quit [(Quit: Leaving)]
<Infinisil>
fresheyeball: What does your env declaration look like?
<Infinisil>
fresheyeball: You don't need to call `callPackage` on buildEnv
k2s has joined #nixos
<Infinisil>
just `myEnv = myEnv` which is equivalent to `inherit myEnv;` would do
<fresheyeball>
Infinisil: ok so I made that change
<fresheyeball>
Infinisil: error: attribute ‘myEnv’ in selection path ‘nixos.myEnv’ not found
rpifan has joined #nixos
rauno has joined #nixos
<sphalerite[m]>
fresheyeball: where do you have this config file?
<fresheyeball>
~/.config/nixpkgs/config.nix
<fresheyeball>
so when I edited the file
<fresheyeball>
the error did change
k2s has quit [(Quit: Leaving)]
<Infinisil>
fresheyeball: Weird, I see no reason why it might not find it
<et4te>
hmm keep getting 'output limit exceeded' on a build from hydra even though i redeployed with a much larger max-output-size for nix.conf, does this setting in conf affect the error?
<fresheyeball>
Infinisil: its finding the file fine
<fresheyeball>
myEnv = myEnv
<fresheyeball>
changed the error
<fresheyeball>
from
<fresheyeball>
error: opening file ‘/nix/store/kx25v9xl69lz5p7d40sq3sqgcwa7q8pa-myEnv/default.nix’: No such file or directory
<fresheyeball>
to
<fresheyeball>
error: attribute ‘myEnv’ in selection path ‘nixos.myEnv’ not found
<Infinisil>
fresheyeball: Does nix-instantiate --eval -E '(import <nixpkgs> {}).myEnv' give you an error?
<Infinisil>
fresheyeball: Well... if you didn't set it in packageOverrides then of course it's not gonna work
<fresheyeball>
Infinisil: explain
jb55 has quit [(Ping timeout: 255 seconds)]
helpzfs has joined #nixos
joehh has quit [(Ping timeout: 240 seconds)]
<helpzfs>
I'm trying to format a non-root disk as ZFS. I've installed the zfs and spl packages, and tried modprobe zfs, but it doesn't find the kernel module
<Infinisil>
helpzfs: I never needed to run modprobe zfs, have you tried without it?
<helpzfs>
let me reboot and try
slack1256 has quit [(Remote host closed the connection)]
<helpzfs>
Infinisil: when I run zpool create ... it says the modules are not loaded.
<Infinisil>
helpzfs: Ahh
<Infinisil>
No idea then
<helpzfs>
thanks
helpzfs has quit [(Quit: Page closed)]
eacameron has joined #nixos
eacamero_ has joined #nixos
eacameron has quit [(Ping timeout: 276 seconds)]
ebzzry has quit [(Ping timeout: 276 seconds)]
indi_ has joined #nixos
eacamero_ has quit [(Ping timeout: 260 seconds)]
fresheyeball has quit [(Quit: WeeChat 1.7.1)]
hamishmack has quit [(Quit: hamishmack)]
eacameron has joined #nixos
jedai has joined #nixos
acertain has quit [(Ping timeout: 260 seconds)]
leothrix has quit [(Quit: ZNC 1.6.5 - http://znc.in)]
<adev>
Job offer: Experience Devops position open associated with an EPFL startup in Lausanne, Switzerland. Requirement: Python and C/C++ software executed, cloud computing and deep learning.Swiss salary ( > 85K CHF )
<adev>
If anyone is interested, contact me privately and I will put you in contact
thc202 has joined #nixos
<goibhniu>
hi cinimod, yeah, you should be able to use nix for that
justelex has quit [(Ping timeout: 260 seconds)]
<cinimod>
I am doing so
<cinimod>
:)
<cinimod>
But now I want to run it via octave-mode inside emacs
mudri`` has joined #nixos
lesce has joined #nixos
<cinimod>
I should probabaly ask on #emacs but does anyone know what I should do?
<cinimod>
I could customize inferior-octave-program to point at /nix/store/2qazv1c22ad71w7cnxvmijqvs3wgagkb-octave-4.2.1/bin/octave
<cinimod>
Is that sensible given I am then not in a nix-shell?
<symphorien>
the store path can disappear every time you run the gc
justelex has joined #nixos
lesce has quit [(Ping timeout: 255 seconds)]
erictapen has joined #nixos
<srhb>
cinimod: can't you make a wrapper around run-octave that runs it in a nix-shell?
<srhb>
cinimod: Actually, why can't you just install octave in your profile via Nix and just use it from $PATH?
<cinimod>
srhb: I don't know what "install octave in your profile" means
<srhb>
cinimod: nix-env -iA nixpkgs.octave
<srhb>
Then the location of "octave" should be on your $PATH variable, and Emacs should just find it if inferior-octave-program is set to "octave" (the default)
<cinimod>
I think that would mean starting emacs inside the nix shell?
<cinimod>
I already have my emacs running
<srhb>
There's no nix shell involved here.
justelex has quit [(Ping timeout: 240 seconds)]
<srhb>
Maybe I'm misunderstanding how Nix works on mac, but usually, using nix-env to install things into your profile (-i) will put the programs on your $PATH so they can just be used from within your (regular) shell, emacs, whatever.
<cinimod>
Oh ok - I will experiment - at the moment I have an octave process running in emacs and I am trying to debug someone else's matlab code :(
<srhb>
You may need to restart emacs for it to pick up the changed $PATH.
justelex has joined #nixos
<srhb>
If it doesn't, I *think* something is wrong in your setup, as the profile isn't being picked up correctly by some of your programs (PATH, etc.)
<cinimod>
srhb: thank you so much - I will look later as I am now in the middle of debugging
<srhb>
cinimod: OK, I have to run now anyway, good luck. :)
<cinimod>
:)
lesce has joined #nixos
<srhb>
Oh, by the way, if all else fails, it will be in ~/nix-profile/bin/octave
<srhb>
Once it's installed in your profile, I mean
<srhb>
Or whatever the equivalent macos path is.
spear2 has joined #nixos
adfaure has joined #nixos
<adfaure>
Hello, everyone. I would like to package this application (= https://github.com/joergen7/cuneiform ). I tried using the beamPackages.buildRebar3, but I can't make it works. Is someone familiar with this build system please ? Thanks
erictapen has quit [(Ping timeout: 240 seconds)]
xadi has joined #nixos
<ikwildrpepper>
anyone else getting email notifications from some hydra instance from awakenetworks.com or something?
<ikwildrpepper>
looks like Gabriel Gonzalez is at that organization
<ikwildrpepper>
anyone know if he's on irc?
spear2 has quit [(Quit: ChatZilla 0.9.93 [Firefox 46.0.1/20160521140538])]
<LnL>
don't think so
stubborn_d0nkey has joined #nixos
<srhb>
adfaure: What did you try so far?
<srhb>
adfaure: And what went wrong?
xadi1 has joined #nixos
xadi has quit [(Read error: Connection reset by peer)]
<srhb>
Would it be possible to use FHS environments to build static binaries for deployment on non-NixOS systems?
jgertm has quit [(Ping timeout: 240 seconds)]
snikkers has joined #nixos
xadi1 has quit [(Ping timeout: 240 seconds)]
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] lsix opened pull request #27682: pythonPackages.django_1_10: drop (master...drop_django_1_10) https://git.io/v7GiN
NixOS_GitHub has left #nixos []
<adfaure>
Hello srhb, I tried to use the function buildRebar3. But it seems that the owner of the repo uses deps from github (from the reabar.config)
<srhb>
symphorien: I was thinking more like pretending that libc etc. are in standard FHS locations and building against that.
<makefu>
│
<makefu>
wupps
<symphorien>
just delete the rpath of your binary maybe enough then
<deltasquared>
"pretending libc are in FHS locations" sounds an awful lot like it'd explode on nixos, but then again I just jumped in so feel free to ignore me
<symphorien>
ld.config would look itself in FHS locations
indi_ has quit [(Remote host closed the connection)]
indi_ has joined #nixos
<domenkozar>
ikwildrpepper: can provisioning of one resource in nixops depend on another?
<domenkozar>
I know it can, but it seems that nixops doesn't populate the provisioned values
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] abbradar pushed 2 new commits to master: https://git.io/v7G1I
<NixOS_GitHub>
nixpkgs/master 5a3c35c Nikolay Amiantov: beignet: 1.2.1 -> 1.3.1
<NixOS_GitHub>
nixpkgs/master 94adf8d Nikolay Amiantov: haskellPackages.threadscope: fix build
NixOS_GitHub has left #nixos []
aminechikhaoui has quit [(Quit: leaving)]
adfaure has quit [(Ping timeout: 268 seconds)]
<ikwildrpepper>
domenkozar: can you be a bit more specific? :)
<domenkozar>
I'd like to have SG source point to a provisioned elastic ip
<domenkozar>
and the value is really _UNKNOWN_ELASTIC_IP_
<domenkozar>
so is that a bug or design flaw? :)
<ikwildrpepper>
domenkozar: can you try deploying the elastic ip first?
<ikwildrpepper>
(with include)
<ikwildrpepper>
perhaps it creates the elastic ip after the sg
indi_ has quit [(Ping timeout: 260 seconds)]
<domenkozar>
ikwildrpepper: yeah so the order is what I'm interested in, because nixops allows resources to depend on resources and it seems that reflecting that in nixops shouldn't be easy
<aminechikhaoui>
domenkozar: it's not evaluated at that point so the implementation of the sg resource need to retreive the eip from the resource state
<domenkozar>
aminechikhaoui: "retreive" at python level?
<domenkozar>
so nixops doesn't evaluate for each resource separately?
<domenkozar>
aminechikhaoui: is that what you're saying? :)
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] FRidh pushed 2 new commits to master: https://git.io/v7G17
<deltasquared>
hmm, is there a flag I could pass to nix-env to tell me the difference between three identically-named derivations that come up in a query
lesce has joined #nixos
<deltasquared>
nix-env -qa firefox listing three lots of firefox-54.0.1, erm
<yegortimoshenko>
how do i specify a per-user window manager in NixOS? just including xorg.xinit in environment.systemPackages doesn't seem to do the trick (there is a .xinitrc file but it seems to be ignored)
<lassulus>
deltasquared: try -qaP
WilliButz has quit [(Quit: WeeChat 1.9)]
<deltasquared>
lassulus: ... ah. that helps.
<deltasquared>
wrappers... huh
<deltasquared>
and yet I bet none of them have the patch to disable mandatory AMO signing.
deltasquared has left #nixos ["coffee time!"]
Wharncliffe has joined #nixos
jasom has quit [(Ping timeout: 255 seconds)]
<joepie91>
aw crap
<joepie91>
I missed deltasquared
<Infinisil>
Oh my damn god, fail2ban is a stupid piece of crap
justelex has quit [(Ping timeout: 276 seconds)]
<manveru>
is there an easy way to do like (import <nixpkgs> {}).override { somepkg = something; }
<manveru>
?
<symphorien>
there is nixpkgs.config.overridePackages
ThatDocsLady has joined #nixos
bennofs has joined #nixos
bennofs has quit [(Client Quit)]
justelex has joined #nixos
* hyper_ch
<3 fail2ban
bennofs has joined #nixos
<bennofs>
gchristensen: pong did i break something? :)
<Infinisil>
hyper_ch: You wanna help me? I've been trying to get this to work for hours
<hyper_ch>
Infinisil: depends on what you're trying to do
<Infinisil>
hyper_ch: Just need to block logs with a certain format
<Infinisil>
"just"
<hyper_ch>
that has to do with regex
<hyper_ch>
regex is evil :)
<Infinisil>
Indeed, and i can't get it to work
<hyper_ch>
(or rather too complicated for my simple brain)
<hyper_ch>
but please, do show the format
<Infinisil>
The log format is: 27-Jul-2017 11:02:38.450 client @0x7f42640bd3d0 31.186.8.167#4444 (cpsc.gov): query (cache) 'cpsc.gov/ANY/IN' denied
<gchristensen>
have you tried the tool that comes with fail2ban to test your logs?
<Infinisil>
gchristensen: Yes I have
<gchristensen>
what is this software?
<Infinisil>
It seems like it's not even watching my regex
<hyper_ch>
result shows properly the ip and the date
<manveru>
ikwildrpepper: :)
<manveru>
ikwildrpepper: well, no biggie, i'm just using my fork now... it didn't fix the original problem anyway :(
<hyper_ch>
bennofs: both can be used but #bash recommends to always quote expansions...
<hyper_ch>
furthermore I prefer now to use "${var}" in general so since there's a difference between "${variant}" and "${var}iant"
<gchristensen>
Baughn, Infinisil: nixos.org and hydra.nixos.org now have HSTS headers
<Infinisil>
hyper_ch: Oh nice, didn't know that -v shows the ip
<hyper_ch>
furthermore I prefer now to use "${var}" in general so since there's a difference between "$variant" and "${var}iant"
<bennofs>
hyper_ch: unfortunately, ${var} is just really annoying to use with Nix :/
ThatDocsLady has quit [(Ping timeout: 240 seconds)]
<Infinisil>
gchristensen: \o/
<hyper_ch>
ah, properly now
<hyper_ch>
Infinisil: well, as said, I'm not a pro... just a user with usualy instructions on filters and regex ;) but that seems to work
<hyper_ch>
you might want to match the denied as well
<bennofs>
i still don't know why the nix designers picked ${} for antiquote, did they not anticipate nix to be used with so many shell scripts? :=)
<hyper_ch>
${} is important in bash
<gchristensen>
IMO if it is complicated, it should be in a separate .sh file anyway, not embedded in your nix
<spacefrogg>
hyper_ch: What for? (Other than situations that can be identified from the literal source code)
<hyper_ch>
(also the #bash people prefer not to use .sh extension since that denominates a general shell script and usually programs in linux don't have a file extension)
<hyper_ch>
spacefrogg: parameter expansion
<gchristensen>
IMO if it is complicated, it should be in a separate .bash file anyway, not embedded in your nix
indi_ has quit [(Remote host closed the connection)]
<spacefrogg>
gchristensen: :)
<gchristensen>
:)
<Infinisil>
hyper_ch: Thanks, I'll see if that does it
romildo has joined #nixos
<hyper_ch>
spacefrogg: in the cli: var="/path/to/filename.ext"; filename="${var##*/}; echo "${filename}"
<spacefrogg>
hyper_ch: As I said, I do not doubt the importance of ${} in general. But all I can think of are situation that don't hit you by surprise but can be identified in the literal source code (without mental evaluation).
moritz` has joined #nixos
<hyper_ch>
spacefrogg: it's just a habit of mine now to always use ${}
<spacefrogg>
hyper_ch: Meaning, there is no need to pro-actively wrap expansion into ${} to avert hazard later... Okay, well, then nix'es choice was bad for your habit. :)
magnicida has quit [(Read error: Connection reset by peer)]
<hyper_ch>
if you want to use parameter expansion you have to use ${} and paramenter expansion is very powerful
<gchristensen>
just put the shell script in a separate file that you reference in nix and you get the best of both worlds
<moritz`>
Hi, is someone here who has experience with fetchgitPrivate? I'm having trouble with permission denied errors on the file that I point to using ssh-config-file
<Infinisil>
hyper_ch: Alright it doesn't work, it still bans ips 0.0.0.1 etc.. Maybe this regex doesn't even get that far..
bennofs has quit [(Quit: WeeChat 1.9)]
bennofs has joined #nixos
xadi has joined #nixos
<gchristensen>
moritz`: I have used it, but don't any longer. I recommend instead checking out the git repo yourself out of nix
<gchristensen>
moritz`: otherwise (imo) the security of the keys are too hard to deal witht
justelex has quit [(Remote host closed the connection)]
justelex has joined #nixos
elurin has joined #nixos
<moritz`>
gchristensen: how do you mean "out of nix"? checking it out manually and then point `src` to the local repo?
joehh has quit [(Ping timeout: 255 seconds)]
<gchristensen>
exactly
<gchristensen>
or fetchgitLocal
elurin has left #nixos ["ERC (IRC client for Emacs 25.2.1)"]
ThatDocsLady has joined #nixos
<moritz`>
ok, I see, thanks for the recommendation
whin has joined #nixos
schoppenhauer has quit [(Ping timeout: 240 seconds)]
<gchristensen>
moritz`: you're welcome :) once I spent a long time documenting how to use it, then realized I shouldn't use it :P
<seequ>
Any clue what could cause X using ~60% CPU when playing a video on firefox? glxinfo would suggest it's using direct rendering with my graphics card.
<seequ>
The problem persist over reboots.
<aminechikhaoui>
domenkozar: btw I wonder what's the use case of https://github.com/NixOS/nixops/issues/709, it seems weird that he needs to allow the machine eip in the same sg that the machine is using
<moritz`>
it still would be nice though to have a good way of solving the problem with less manual work involved
<domenkozar>
aminechikhaoui: the test case makes no sense, but otherwise it's another machine with a different EIP
<domenkozar>
so machine A with EIP is allowed to access machine B with SG
<gchristensen>
moritz`: it is unfortunately incompatible with a private repository staying private
<aminechikhaoui>
domenkozar: are they within the same security group/subnet ? as maybe you can just specify a sourceGroup instead or the subnet CIDR range.
<Infinisil>
Ohhh it worked
<moritz`>
because it ends up in the nix store?
<aminechikhaoui>
or is it needed to have a strict IP ranges instead
<Infinisil>
While it did block the ip addresses 0.0.0.1 etc., it also blocked the actual ones
ThatDocsLady has quit [(Quit: Arma-geddin-outta-here!)]
<gchristensen>
moritz`: well yes but also your private key becomes very publicly readable
<domenkozar>
aminechikhaoui: does that work cross-region?
simukis has joined #nixos
<domenkozar>
aminechikhaoui: if it works cross-region, then we could, but we're looking for ways to restrict communication between machines in different regions
justelex has quit [(Remote host closed the connection)]
<aminechikhaoui>
domenkozar: ah, yeah I think it won't work cross regions
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] aszlig opened pull request #27683: Add test for ACME (master...acme-tests) https://git.io/v7Gbp
NixOS_GitHub has left #nixos []
jensens has joined #nixos
whin has quit [(Quit: Page closed)]
<Infinisil>
Are you serious..
<moritz`>
gchristensen: you mean the key becomes public on my machine? I guess it stays on the machine, doesn't it?
<Infinisil>
A single friggin IP doesn't get blocked..
<hodapp>
blaaah... how do I keep stuff from not being destroyed upon nix-collect-garbage & nix-collect-garbage -d?
<gchristensen>
moritz`: it is decrypted though, and laptops get stolen, files are exfiltrated ... it scares me, and I certainly wouldn't propose anyone at work use it.
<Infinisil>
Banned ones: 122.122.128.164 222.82.239.241, ... And the one that doesn't get banned for some goddamn reason: 61.217.152.40
<Infinisil>
WTF
justelex has joined #nixos
<gchristensen>
Infinisil: maybe this would be better in #fail2ban
<moritz`>
ok, got it ;)
<Infinisil>
gchristensen: Yeah sorry, I'm pretty sure nix is innocent on this one
Wharncliffe has quit [(Quit: Lost terminal)]
lesce has quit [(Ping timeout: 240 seconds)]
schoppenhauer has joined #nixos
<gchristensen>
niksnut / domenkozar can you close this?
<gchristensen>
or grant me permission to close it? ( ͡° ͜ʖ ͡°)
<Infinisil>
gchristensen: I'm both amazed by the fact this wasn't done before and how it got changed so fast
<gchristensen>
I told you it was easy :P
<gchristensen>
I don't remember how to configure apache, I just copy-pasted examples from the internet in to places that looked good
<Infinisil>
gchristensen: Heh
<hodapp>
I never learned how to configure Apache
<hodapp>
I have no regrets
<Infinisil>
Sometimes I bisect options so I know exactly what option actually does 'the thing'
<gchristensen>
not a bad idea
<Infinisil>
Well, a poor mans bisect, really just linear search
<Infinisil>
Removing stuff one by one
<hodapp>
it must be a binary search to be bisection!
<gchristensen>
yeah, I do that too especially when configuring new hardware, where I don't want to keep around configs unless I know exactly why it is there
<hodapp>
I once did that for like 4 hours on a Compaq Deskpro just to get the damn thing to boot; for some reason, with certain configurations of hard drives, it would refuse to even POST
<gchristensen>
I'm experiencing that with some hardware at work :/
<hodapp>
and I couldn't get into BIOS setup because Compaq, in their infinite wisdom, made the BIOS setup as separate software that you had to run from a dedicated hard disk partition
<hodapp>
and I didn't have a copy of that
iyzsong has joined #nixos
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] gnidorah opened pull request #27684: linux: BFQ Group Scheduling support (master...bfq) https://git.io/v7Zez
NixOS_GitHub has left #nixos []
<gchristensen>
well that is garbage
<hodapp>
ehh?
<gchristensen>
the separate bios setup partition, not the PR :)
<hodapp>
oh, yeah, it was silly
lesce has joined #nixos
mudri`` has quit [(Ping timeout: 248 seconds)]
justelex has quit [(Excess Flood)]
justelex has joined #nixos
<Infinisil>
IRC is really only useful for channels that have like more than 200 nicks
* hodapp
shrugs
<Infinisil>
Or let's say 100
<hodapp>
next demon to slay: can I hack up OpenCV's Python bindings generator to generate bindings to my code, so that I can use my functions alongside already-wrapped OpenCV functions?
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] Fuuzetsu pushed 2 new commits to master: https://git.io/v7Zf7
<NixOS_GitHub>
nixpkgs/master 93d364f Mateusz Kowalczyk: mongodb: we already set quiet in config
NixOS_GitHub has left #nixos []
phinxy has joined #nixos
hiberno has joined #nixos
catch22_ has quit [(Remote host closed the connection)]
mudri`` has joined #nixos
dannyg has joined #nixos
<gchristensen>
nah IRC is great for lots of things even slow channels
<gchristensen>
it took a week, but a very small channel in a very different timezone got a big problem solved that I couldn't crack
<LnL>
there are only ~50 people in ##nix-darwin
lewo has quit [(Ping timeout: 276 seconds)]
ng0 has joined #nixos
peti has quit [(Ping timeout: 255 seconds)]
peti has joined #nixos
takle has quit [(Remote host closed the connection)]
metaphysician has joined #nixos
peel has quit [(Ping timeout: 240 seconds)]
cpennington has joined #nixos
<adisbladis[m]>
gchristensen: When you feel comfortable increasing the HSTS max-age you should consider the preload option :)
<gchristensen>
adisbladis[m]: it doesn't make a difference AFAIK unless we can set includeSubdomains
<gchristensen>
or does it?
takle has joined #nixos
<yorick>
how do people feel about adding --enable-tpm to the systemd configure flags?
<yorick>
it'd enable systemd-boot to do tpm measuring
<gchristensen>
adisbladis[m]: if we can extend the nixos.org configuration files to add SSL to planet and a few other domains, we can includeSubdomains an preload.
<gchristensen>
niksnut: are there other subdomains other than releases.nixos.org planet.nixos.org?
<Infinisil>
Well screw fail2ban, I just wrote a script that does the thing I want in bash in 5 minutes
<gchristensen>
nice
<bennofs>
s/does the thing I want/appears to do the thing I want # fixed that for you
<Infinisil>
A whole day wasted
<adisbladis[m]>
gchristensen: I think Firefox will still take preload submissions without includeSubdomains but I might be wrong
<Infinisil>
bennofs: Well it works for these standard 'attacks' I'm getting now, which are all exactly the same (but fail2ban couldn't do it for some goddamn reason)
<Infinisil>
I just do `cat logfile | grep 'thing that identifies attack' | awk 'extract ip' | sort | uniq` and then do an `ip route blackhole` for every ip
<Infinisil>
And that every minute
iyzsong has quit [(Read error: Connection reset by peer)]
<gchristensen>
adisbladis[m]: I'd rather go all the way :P
<avn>
yorick: if it not breaks systems with grub2
<yorick>
avn: why would it?
<yorick>
it's only in systemd-boot
<avn>
yorick: just don't know, if it affect pid 1 component, or not. It why i asked
<yorick>
avn: I checked the systemd source and all mentions of 'tpm' seem to be in boot/
joehh has joined #nixos
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] volth opened pull request #27686: tinc_pre: avoid infinite loop with EBADFD on network restart (master...tinc-ebadf) https://git.io/v7Zt1
ng0 has quit [(Remote host closed the connection)]
rpifan has joined #nixos
ng0 has joined #nixos
peel has joined #nixos
aseaday has quit [(Remote host closed the connection)]
<mpickering>
I'm trying to build a haskell package but something is going wrong with hs-source-dirs not being taking into account. It tries to find the executable file in . rather than src/ (as specified in the cabal file)
<mpickering>
any ideas?
adev has quit [(Quit: Ex-Chat)]
civodul has quit [(Quit: ERC (IRC client for Emacs 25.2.1))]
cement_ has joined #nixos
rpifan has quit [(Ping timeout: 246 seconds)]
peel has quit [(Ping timeout: 240 seconds)]
takle has joined #nixos
<mpickering>
the configured component graph also looks completely wrong compared to older ghc versions
<mpickering>
maybe it is a bug in ghc head
jb55 has quit [(Ping timeout: 276 seconds)]
Filystyn has joined #nixos
Filystyn has quit [(Changing host)]
Filystyn has joined #nixos
dannyg has quit [(Quit: dannyg)]
Myrl-saki has quit [(Ping timeout: 248 seconds)]
snikkers has quit [(Remote host closed the connection)]
phinxy has quit [(Read error: Connection reset by peer)]
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] globin pushed 1 new commit to openssl-1.1: https://git.io/v7ZXi
<NixOS_GitHub>
nixpkgs/openssl-1.1 35bc455 Robin Gloster: pysideShiboken: fix with python 3
NixOS_GitHub has left #nixos []
Infinisil has joined #nixos
phinxy has joined #nixos
joshie_ is now known as joshie
<pie_>
unrelated, is there a url that redirects to the latest unstable nixexprs? so i can do something like nix-shell -I unstable=https://nixos.org/channels/[...]/latest.tar stuff
<sphalerite[m]>
Is there a way to override a python package for all python versions?
<sphalerite[m]>
Using ~/.config/nixpkgs/config.nix
<pie_>
i guess what i mean is for example what is the expression equivalent of nix-shell -p packagea packageb
jensens has quit [(Ping timeout: 276 seconds)]
<pie_>
im not having much luck googling this. everything is for nix expressions for a *single* package
<sphalerite[m]>
pie_: something like with pkgs; runCommand "nix-shell" {buildInputs = [packagea packageb];} ":"
<pie_>
sphalerite[m], i think i meant just {buildInputs = [packagea packageb];} ? i mean so that i would do nix-shell shell.nix
<pie_>
or maybe ...mkderivatoin?
<pie_>
*mkDerivation
<sphalerite[m]>
yeah if you have the expression I just wrote in shell.nix you can nix-shell it to get basically the same as nix-shell -p packagea packageb
<peterhoeg>
Hey, does anyone know if it's OK to backport a new package and nixos module to current stable?
<peti>
domenkozar: What overrides stuff do you mean? The ones from PostProcess.hs?
<sphalerite[m]>
pie_: runCommand is just a frequently more convenient wrapper around mkDerivation
<domenkozar>
peti: yup
vagrant- has left #nixos ["Using Circe, the loveliest of all IRC clients"]
<peti>
domenkozar: Why should that code live in Nixpkgs rather than in cabal2nix?
<pie_>
sphalerite[m], what does ().env do?
<domenkozar>
peti: so it can be reused by other tools and so that it belongs with package set in nixpkgs
<domenkozar>
also for shorter cycles of improvements
<sphalerite[m]>
pie_: it gets the env attribute of ().
<pie_>
ok i guess...whats the .env attribute?
pietranera has quit [(Quit: Leaving.)]
<sphalerite[m]>
That depends on what () is. I'm guessing you mean () as a placeholder because AFAIK it's not a valid nix expression
<sphalerite[m]>
but for example `{env = 4;}.env` evaluates to 4 :)
<peti>
domenkozar: cabal2nix is a library, so all that code can be re-used by other tools, no?
<domenkozar>
peti: yes, but library is released at different times
<domenkozar>
so different nixpkgs branches and cabal2nix have to be in sync
<domenkozar>
so I wonder if there's a reason to keep that code there
<domenkozar>
since we have duplicated things in common-configuration*.nix
<domenkozar>
not duplicated, but for same purpose
<peti>
Well, people who run cabal2nix to generate build instructions for their development project may need those overrides in place for the build to succeed, and then those overrides must be known to cabal2nix. If that information is in Nixpkgs, then that won't help them because they aren't necessarily building something inside of Nixpkgs.
<peti>
I suppose there's a handful of overrides configured in cabal2nix that don't need to be there, but in some cases (like git-annex) the know-how built into cabal2nix is necessary to generate a workin expression.
nix-gsc-io`bot has joined #nixos
timon37 has quit [(Read error: Connection reset by peer)]
<sphalerite[m]>
pie_: buildEnv is different from using runCommand
<peti>
domenkozar: Yes, the name mappings are an entirey different topic. Those lists actually depend on the version of Nixpkgs that's being used and should therefore be stored in there.
<sphalerite[m]>
using runCommand is probably easier if you just want to have a shell.nix to enter an interactive shell.
<pie_>
sphalerite[m], yeah i figure..it works but i have no idea where its documented
<pie_>
oh
<pie_>
* ok
<domenkozar>
peti: ok, I'll start with those then :)
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] globin pushed 1 new commit to master: https://git.io/v7ZHt
<NixOS_GitHub>
nixpkgs/master 2799a94 Robin Gloster: zfs, spl: 0.6.5.11 -> 0.7.0
NixOS_GitHub has left #nixos []
<sphalerite[m]>
Yeah I can't see documentation for it either
<sphalerite[m]>
If it works then sure, no problem with using it
<sphalerite[m]>
but personally I'd just use runCommand because I actually know what's happening there
<pie_>
sphalerite[m], how can i rearrange it so that the let expression doesnt blow up the whole thing?
<sphalerite[m]>
is there anything wrong with what you have there?
<sphalerite[m]>
Can't you just use it as is?
ThatDocsLady has joined #nixos
<pie_>
i can it just feels weird blowing up path = [] with it
takle has quit [(Read error: Connection reset by peer)]
takle has joined #nixos
<pie_>
well, its fine i guess
<pie_>
thanks
georges-duperon has joined #nixos
bennofs1 has joined #nixos
<cement_>
I'm trying to get the haskell library libexpect to build, but it's not downloading or building either of the foreign library deps
<cement_>
afaik, this line should grab those: librarySystemDepends = [ expect tcl ];
<yegortimoshenko>
does anyone use services.windowManager.exwm? it throws an "get-device-terminal: Display :0 not found" for me
<yegortimoshenko>
s/an//
<avn>
globin: error: attribute ‘zfsStable’ missing, at /home/avn/nixos/nixpkgs/pkgs/top-level/all-packages.nix:13:2 (looks like you break something ;))
<dhess`>
bennofs1: I haven't tested it yet on Rpi3 but it works, more or less, on a Jetson TX1, which is also aarch64. I think that Rpi3 is the primary dev vehicle for that image.
<bennofs1>
dhess`: thanks!
<disasm>
I should be taking notes :) I have an rpi3 in the closet I've been meaning to install nixos on
* bennofs1
searches for his microSD adapter...
<pie_>
bennofs1, LnL, huh, it complains about not finding default.nix
<LnL>
hmm, maybe it needs a -p bash?
<pie_>
it complains even if i leave out the -i
<pie_>
i think it might have something to do with this double shebang thing
<bennofs1>
pie_: what nix version are you running?
<gchristensen>
pie_: what exactly is your nix-shell shebang line?
takle has quit [(Remote host closed the connection)]
<pie_>
the couldnt find default.nix problem was because i wasnt running the script from the same directory
<pie_>
which seems dumb
bennofs1 has quit [(Ping timeout: 248 seconds)]
zarel has joined #nixos
cpennington has quit [(Ping timeout: 255 seconds)]
<pie_>
my problem is that i want to create an environment with nix then run a command in it, but i need to pass arguments to that command
<pie_>
so this isnt actually a shebang specific problem i think
<Infinisil>
pie_: Okay I just started reading your messages, you're trying to be able to ./file.nix so it runs a command using the declared environment?
nh2 has joined #nixos
<disasm>
pie_: can you just add a shellHook with the command you want to run to your file?
<sphalerite[m]>
Note to self: unintentional DoS attacks by well-meaning, trusted users should also be considered when securing a system…
alphor has quit [(Quit: Bye!)]
<dash>
sphalerite[m]: did someone post a link on hacker news
<seequ>
Hey, has anyone here used i3 on nixos? It seems to ignore the config file set with `services.xserver.windowManager.i3.configFile`
alphor has joined #nixos
cpennington has joined #nixos
<LnL>
I do, but mainly use that machine headless
<LnL>
what release are you using?
sheenobu has joined #nixos
<seequ>
How can I check that?
<LnL>
sudo nix-channel --list
<sphalerite[m]>
dash: no, some people with shells on a server I manage ran a bunch of memory and disk-intensive processes. Caused disk space to run out yesterday, and RAM to run out today (trying to SSH into the machine to fix the issue was a major pain and involved multiple timeouts)
<LnL>
or nixos-version
<seequ>
17.03
<dash>
sphalerite[m]: ingrates!
<disasm>
seequ: are you using writeFile with services.xserver.windowManager.i3.configFile?
zraexy has joined #nixos
<seequ>
disasm: I'm using a path to a config in /etc/nixos/i3.config
peel has joined #nixos
stanibanani has quit [(Ping timeout: 276 seconds)]
<sphalerite[m]>
dash: it wasn't intentional and it's my fault really
<sphalerite[m]>
I should enforce limits on their resource consumption, because they run batch jobs and these shouldn't disrupt normal access to the machine
<LnL>
disasm: looks ok for me
rauno has quit [(Remote host closed the connection)]
<catern>
I want to reimplement something like callPackages for my own Nix tree thingy
<catern>
are there any gotchas here?
<seequ>
LnL: I'll try that
<catern>
it seems pretty incredibly complicated
<Infinisil>
catern: I'd just look at how it's done in nixpkgs
<catern>
is there a way to get something simple working quickly?
<LnL>
callPackageWith mypkgs
<catern>
Infinisil: yeah, I'm looking at it, but it's hard to disentangle from other Nixpkgs features :)
<Infinisil>
catern: There are also a ton of other call*Package functions you could look at
<catern>
hmm... actually, I guess I could just take a dep on nixpkgs
<catern>
and somehow reuse it
ElGoreLoco has joined #nixos
<catern>
I suppose I could set my stuff up in the same way as other foreign package systems are currently set up
<catern>
like pythonPackages etc.
erictapen has quit [(Ping timeout: 240 seconds)]
<catern>
and make a mppsPackages.nix (my proprietary package system) in top-level/
<Infinisil>
catern: `rg 'build.+Package = '` in nixpkgs
jgertm has joined #nixos
<catern>
yes, I'm looking at them
<seequ>
LnL: It actually worked!
<LnL>
great :)
<catern>
do you think it would be easier to make my own thing independently, or to use the existing infrastructure in nixpkgs?
<catern>
I have a use for an overlays-style thing, too...
<seequ>
I'm a bit confused why the direct path didn't
<Infinisil>
catern: Use nixpkgs of course, there's a whole bunch of maintained everything in there, why wouldn't you wanna use that
<ElGoreLoco>
Hello. I'm trying to run a rust project and when I run `cargo run` it prints `error: could not execute process \`target/debug/test\` (never executed)`. I think I understand why it doesn't work: NixOS doesn't let you execute arbitrary binaries, but I don't know how to run my project in other way. Is there a way to use `cargo run` in NixOS or should
<ElGoreLoco>
I try other thing?
<dash>
catern: any reason you're not doing your thing as a nixpkgs overlay?
<simpson>
Does anybody happen to know offhand which part of texlive contains the `xdvi` executable?
<Infinisil>
ElGoreLoco: As long as the binaries are executable, you can run them no problem
<ElGoreLoco>
then I don't know what I'm doing wrong because I haven't been able to run other binaries
<dash>
simpson: looks like it's 'texlive.xdvi'
jonte has joined #nixos
<simpson>
dash: So, I thought so too, but it's already part of the scheme and yet there's no xdvi executable in my Nix store.
<Infinisil>
simpson: Should be in basic
<niksnut>
ElGoreLoco: to run 3rd party binary, you probably need to use patchelf
<niksnut>
grep nixpkgs for patchelf --set-interpreter ... --set-rpath ...
<catern>
dash: because I want to have more overlays on top of it! :)
<simpson>
Infinisil: Yes, it should be. And yet, it is not. What do you get for $(nix-shell -p texlive.combined.scheme-basic --run 'which xdvi')?
<catern>
hmm I guess that's possible though
<catern>
dash: are overlays used in nixpkgs itself?
<LnL>
catern: that's not a problem if you put your things in a separate attrset
<catern>
I want to do something as official and goodly as possible
<Infinisil>
simpson: Ohh, I think it's in the texlive-xdvi package
<pie_>
Infinisil, yeah what you said i think
<dash>
simpson: oh, 'texlive.bin.xdvi'
<tilpner>
catern - Can you use lib.callPackageWith? What prevents you from using overlays on top of it?
<Infinisil>
Hmm, but I can't nix-shell it
<Infinisil>
dash: Ahh there we go
<catern>
LnL: a separate attrset? like, pkgs.myProprietaryPackageSystem.[names of packages]?
<catern>
but yeah, I think I should look at overlays
<Infinisil>
pie_: Don't think so, you'll probably need to pass them with --arg/--argstr
<catern>
see I just want to avoid using features that are only meant for customizations
<sphalerite[m]>
pie_: what exactly are you trying to achieve?
<simpson>
Infinisil: It's a DVI viewer.
<pie_>
Infinisil, ah well that will work
<catern>
for example, in Emacs, core Emacs is not allowed to use advice (a way to add extra pre/post-processing to functions), it's restricted to use by the user, because it doesn't compose well
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] edolstra pushed 1 new commit to release-17.03: https://git.io/v7nIf
<catern>
I want to avoid using such features like that :)
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] chpatrick opened pull request #27694: Make gcc5 a nativeBuildInput for OpenCV. (master...master-opencv-fix) https://git.io/v7nIk
NixOS_GitHub has left #nixos []
<dash>
catern: what are you concerned about not composing well
<seequ>
LnL: Do you know of a way to run both the system config and user config for i3?
<dash>
there's no need to use overlays within nixpkgs because overlays are a technique for allowing separate maintenance, which isn't needed inside a single repo
<Infinisil>
catern: I think packages should only contain config options for things the build output depends on, e.g. support for certain features
<catern>
dash: but if overlays are good and fully featured, then wouldn't it be a useful unification to use them both inside and outside nixpkgs?
<dash>
catern: no? I don't really know how to state this any clearer, overlays are designed for use cases like yours, they would not benefit nixpkgs internally :)
<Infinisil>
pie_: I don't know if there's a shellHook for buildEnv
<nser>
But it throws DBIx::Class::Storage::DBI::catch {...} (): DBI Connection failed: DBI connect('/var/lib/hydra/hydra.sqlite','',...) failed: unable to open database file at /nix/store/12mhs2h73lx3az5f2gncwsgdvw9lk2b9-hydra-perl-deps/lib/perl5/site_perl/5.24.1/DBIx/Class/Storage/DBI.pm line 1517. at /nix/store/sb802bmaxl1gaq73rxrn94pbfyxvn8dk-hydra-2017-07-24/bin/.hydra-init-wrapped line 12
<nser>
when executing `hydra-init` command.
<nser>
how to fix this?
joepie91 has quit [(Read error: Connection reset by peer)]
<Infinisil>
pie_: buildEnv is really just to build an environment composing multiple paths, mkDerivation can do much more complex stuff
<Infinisil>
You call it with e.g. nix-shell update.nix --argstr package garbas
<pie_>
Infinisil, right but the reason i cant do that is because its called by the shebang line
<pie_>
in my case
<Infinisil>
And you can also set a default argument, so it's optional to set it
<Infinisil>
pie_: Yeah, i don't know about using shebangs
<pie_>
i think ill just have to call it normally
<Infinisil>
Have only caused confusion and frustration for me
<pie_>
obviously passing through the aruments needs to be handled by the interpreter
<pie_>
which nix-shell doesnt have a way to do apparently
sheenobu has quit [(Quit: My Mac has gone to sleep. ZZZzzz…)]
<Infinisil>
pie_: I think the best would be to have a ./nix folder where you keep your shells and envs, and have a ./bin folder where you put very simple bash scripts that just call nix-shell ../nix/file.nix --argstr hello test
<pie_>
well thats basically what im going to do now
<Infinisil>
Damn, I have 7 copies of ghc.. 3 copies of rust 1.20, 4 times a Go
Isorkin has joined #nixos
Isorkin has quit [(Client Quit)]
<Infinisil>
Well I guess that's what you get for using unstable and having generations to roll back to
<LnL>
Sonarpulse: I looked at it, but I don't really know enough about the setup hooks to review it
<Sonarpulse>
LnL: well it's more conceptual than code nitty-gritty I'm worried about
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] aszlig pushed 1 new commit to master: https://git.io/v7n3m
<NixOS_GitHub>
nixpkgs/master 664bbed aszlig: all-packages.nix: Fix evaluation error for zfs...
NixOS_GitHub has left #nixos []
<Sonarpulse>
the setup hook stuff we do is bad
<Sonarpulse>
and should be changed
<Sonarpulse>
so not knowing the status quo is no impediment for coming up with something new!
<gchristensen>
^
<gchristensen>
however, do be cautious when doing that close to a release :)
<Drakonis[m]>
this is why beta testing exists!
<Infinisil>
gchristensen: Wouldn't you just not put it in the release if it's not stable?
<Sonarpulse>
gchristensen: yes that's a catch-22
<Drakonis[m]>
beta testers died for your sins
<Sonarpulse>
especially as I want cross to make 17.09
<gchristensen>
Infinisil: no, releases get taken from master
<Sonarpulse>
and some cc-wrapper changes are unavoidable
<gchristensen>
if it is in master, it will be unpleasant to _undo it_ for release :)
<Infinisil>
gchristensen: I see..
phinxy has quit [(Quit: Leaving)]
<gchristensen>
our release model is we take master and branch off to release-17.09 and then get it ready to go
<Infinisil>
I'm actually amazed how well stdenv and this whole hook stuff has worked so far, even though it's so hacked together
<gchristensen>
yeah
<gchristensen>
the whole nixpkgs tree gets tested against it each time it changes, so it is hard to break it without noticing quite promptly
josiah has joined #nixos
<josiah>
does anybody here have any idea how difficult it would be to get a Hadoop cluster up and running with NixOS as the bare-metal OS for the servers
<josiah>
would it be much more difficult or different from what I would do on RedHat or Ubuntu?
ambro718 has joined #nixos
<Infinisil>
gchristensen: True, I actually have this going which would require a full rebuild, didn't you just make some issue about full rebuilds stuff so it can be done together?
<aszlig>
josiah: there is no service module for as far as i can see from a quick grep, so i'd expect it to be more difficult as you probably need to write one
<Infinisil>
gchristensen: Could you add my issue there?
<gchristensen>
Infinisil: your issue isn't a PR :)
<Infinisil>
gchristensen: Ohhh right
<Infinisil>
gchristensen: Maybe I'll open one
<gchristensen>
also I'm not certain my project is useful
<Infinisil>
gchristensen: Why not?
<gchristensen>
I dunno, I don't really do much with staging / mass rebuilds
<gchristensen>
but there are some old, small mass rebuild PRs I'd like to see merged
<gchristensen>
but they're not Really Big Value PRs so nobody has merged them
<LnL>
Sonarpulse: so the salt is something like HOST/TARGET when doing a cross build?
<Sonarpulse>
it's the platform itself
<Sonarpulse>
for better or worse
<Infinisil>
gchristensen: So the project you created is just perfect for that
<Sonarpulse>
that means when not doing cross
<Sonarpulse>
the flags get mixed together like they do today
<LnL>
right
<Sonarpulse>
the only underlying requirement is the same cc-wraper derivation needs to be used in any context
<Sonarpulse>
it would be annoying to have to rebuild context-specific wrappers
sheenobu has joined #nixos
<Sonarpulse>
(oh, and by "context" i mean "are we targeting "host" like normal, or "build" and "target" instead)
<Sonarpulse>
that said, instead of using salt
<Sonarpulse>
I could use ${!something} to choose names on the fly
<Infinisil>
gchristensen: How long do you think nix-build -A hello will take on a full rebuild?
<gchristensen>
no idea :)
<gchristensen>
we can rebuild all of nixpkgs in about 24hrs
<Sonarpulse>
Infinisil: not too bad
<Infinisil>
Because I'm gonna do it now, to verify my changes work
<Sonarpulse>
hour tops?
<Sonarpulse>
I forget, but do it a lot
<gchristensen>
the trouble is in stdenv you're bootstrapping, so there is no opportunity to fan-out to other build servers
<Infinisil>
Well I guess once the base packages are there such as libc, it's gonna be pretty fast
<Infinisil>
Sonarpulse: Building an hour, making a single change, building an hour, etc. :P
<Sonarpulse>
well, yes
rpifan has joined #nixos
ericsagnes has quit [(Ping timeout: 255 seconds)]
ThatDocsLady has quit [(Quit: Arma-geddin-outta-here!)]
<Infinisil>
Another benefit if IPFS ever gets integrated, is that you can cancel at any point during a fetch and it can always resume
<Infinisil>
And if something like ninja2nix gets integrated into every build process, then you could even cancel at *any* point during a build and resume
<gchristensen>
ninja2nix is definitely interesting
bennofs has joined #nixos
<gchristensen>
it highlights the slowness of nix starting a build
bennofs has quit [(Client Quit)]
<Infinisil>
gchristensen: Ohh, true, why is that anyways?
<gchristensen>
all the sandboxing takes a toll
<gchristensen>
building & sending drvs etc
<gchristensen>
I dunno what else
seanz has joined #nixos
seanz has quit [(Client Quit)]
<gchristensen>
but the purity of nix isn't free
<Infinisil>
gchristensen: Hmm, I may check that after my hello compiled
<bennofs1>
slowness... reminds me that I wanted to try and patch some sort of profiler into nix for profiling Nix code
<Infinisil>
gchristensen: What's the slow part of being pure?
<bennofs1>
anybody have suggestions for metrics to profile? eval time by let binding, or eval time by attr binding, ... ?
<gchristensen>
all the sandboxing takes a toll
<Infinisil>
Ah that
<gchristensen>
but I'm no expert at this
<gchristensen>
quite novice actually
<bennofs1>
also, Nix builds in general may run more slow because of long search paths
<bennofs1>
on most distributions, you have ~5 or so paths in include dirs, on Nix it is a lot more
<Infinisil>
Maybe the future even holds AST editors in sight and SCID (source code in database), could accelerate evaluation a lot
<bennofs1>
not sure how much that matters though
* bennofs1
is just surprised that nixpkgs eval (not building) takes so long right now
<Infinisil>
bennofs1: The library paths?
<bennofs1>
Infinisil: idk how much it matters in building, but I think I've seen an extreme case (not on a SSD) where some program took ages to start because it needed to look through all the RPATH directories
<Infinisil>
Ah or just general paths and env vars are longer
oida has joined #nixos
<bennofs1>
Infinisil: yes in general there's more different paths. if you search for "foo.h" on a "normal" distro there are not so many possibilities, on NixOS you have to search a lot more directories
<Infinisil>
bennofs1: Hmm, makes me think if there isn't a better way. PATH really doesn't serve it's original purpose in nix, we should really be using stuff like ${pkgs.foo}/bin/<foo> more
<gchristensen>
yeah it is easy to have a massive rpath
<Infinisil>
what's rpath?
fikse has joined #nixos
erictapen has joined #nixos
<sphalerite[m]>
Do we have any sort of solution to the issue of mass rebuilds causing mass redownloads? It would be nice if mass rebuilds that don't have a large effect on the non-roots nodes of the dependency trees in question (which I suspect is frequently the case) could be downloaded as patches from previous versions rather than being redownloaded entirely
<sphalerite[m]>
i.e. smarter substitution
<gchristensen>
Infinisil: rpath is how a program finds its libraries
<gchristensen>
stored in its ELF
reinzelmann has quit [(Quit: Leaving)]
<Infinisil>
sphalerite[m]: IPFS :)
<Infinisil>
gchristensen: Ah I see
<sphalerite[m]>
Infinisil: I don't see how a content-addressed distributed filesystem solves that problem
<bennofs1>
Infinisil: i should say runpath. it's stored in the elf header (of libraries too!) and specifies the search path for other libraries
<gchristensen>
this of course doesn't have to search a dozen rpath entries, just one
<Infinisil>
sphalerite[m]: It's a recursively cached filesystem. If you already have package x with files [ a b c ] and only c changes, then you only need to download c again
<sphalerite[m]>
Infinisil: it improves the distribution problems users in Asia seem to have, but it doesn't reduce the absolute amount to download surely
<Infinisil>
sphalerite[m]: And this happens down to block-level (4K or something)
<sphalerite[m]>
Oh nice
<Infinisil>
Or if you already have a package that contains file x and you want to download another package that has file x, you won't download x again
<sphalerite[m]>
yeah
<sphalerite[m]>
nice
<Infinisil>
This also eliminates the need for nix-store --optimize
<bennofs1>
Infinisil: only problem is that NARs are generally stored in compressed form
<bennofs1>
it would require you to store all NARs in uncompressed form
<Infinisil>
bennofs1: I'm not really up-to-date with ipfs and nix, but I thought there was like a compressed ipfs format that could be used
<bennofs1>
but perhaps you save more by exploiting similaries between different nars than you do by compressing individual ones? quite likely that this is the case
<Infinisil>
bennofs1: Good point
<bennofs1>
Infinisil: another nice thing about that would be the ability to download individual files from a NAR without downloading the full NAR
<Infinisil>
But still, compression would be appreciated, but maybe this should be done at the IPFS level (as in ipfs handles compressing and uncompressing on transfer)
<bennofs1>
Infinisil: it is not only transfer. storage itself costs money, so it should be optimized
<Infinisil>
bennofs1: Indeed, I think that's how mounting /ipfs does it, downloads files by hash when they are accessed
<Infinisil>
Imagine having a completely lazy nixos, you download files once you need them
<bennofs1>
Example why downloading individual files would be nice: getting just build-support/propagated-build-inputs would be nice for tools :)
<Infinisil>
bennofs1: Damn, really motivates me to learn more about the internals of nix and ipfs so i could maybe contribute and make it reality
ericsagnes has joined #nixos
<sphalerite[m]>
Would it actually be nars that get fetched via ipfs though?
sheenobu has quit [(Quit: My Mac has gone to sleep. ZZZzzz…)]
<seequ>
It's amusing when you make a slight change in vimrc and nix goes "created 5254 symlinks"
<sphalerite[m]>
Also, completely lazy nixos sounds nice in principle but kind of terrible in practice, because you have delays the first time you use anything and they'll probably frequently sneak up on you
<pmade>
If two overlays both use `haskellPackages.override' then the second one doesn't see the changes from the first. I would expect this to work though. Any ideas?
sheenobu has joined #nixos
<Infinisil>
sphalerite[m]: Well it wouldn't be fully lazy i guess, stuff like kernels, big stuff would be prefetched
georges-duperon has joined #nixos
zarel has quit [(Ping timeout: 276 seconds)]
<sphalerite[m]>
It would probably be great for some use cases
<sphalerite[m]>
something something cloud
<Infinisil>
sphalerite[m]: What do you mean?
<sphalerite[m]>
but not for interactive use. I think.
<sphalerite[m]>
I'm thinking some sort of deployment to a magical nixy PaaS
<sphalerite[m]>
mostly for stuff where latency doesn't matter as much as throughput
<bennofs1>
sphalerite[m]: perhaps also for things like travis-ci? just imagine having every dependency that you'd need appear "automatical"
<bennofs1>
but perhaps that's too much magic / auto
<Infinisil>
bennofs1: Ohh yes
<Infinisil>
no that's exactly what we need
<sphalerite[m]>
bennofs1: yeah, that counts as a batch processing sort of thing in my book
<Infinisil>
I truly believe that's where the future lies
<bennofs1>
Infinisil: well I think you quickly hit some problems with ambiguous versions though
Nobabs27 has joined #nixos
<bennofs1>
Like Qt5 vs Qt4 or Python3.5 vs Python3.6
<sphalerite[m]>
but nix solves that problem.
<sphalerite[m]>
It would be accessing store paths with the (unambiguously identifying) hash in them
<dtzWill>
like, "nix-store -r" on attempts to access paths you don't ahve yet? hahaha
<sphalerite[m]>
no?
<Infinisil>
Yeah, hashes all the way
<bennofs1>
oh, yes, you'd need specially compiled binaries / scripts then
dywedir has joined #nixos
<bennofs1>
that sounds like a good use case
<bennofs1>
"universal binary". autoinstalls dependencies on run
ison111 has joined #nixos
<sphalerite[m]>
how so?
<bennofs1>
sphalerite[m]: well, they need to refer to store paths and not rely on $PATH etc
<sphalerite[m]>
nah, just have a special filesystem mounted on /nix/store
<gchristensen>
this sounds insane :o
<dtzWill>
seems like could be solved with a special filesystem
<sphalerite[m]>
bennofs1: is that really "special" in the nix world?
<sphalerite[m]>
referring to store paths, that is
<bennofs1>
ah yes it would work for any nix compiled things
drakonis has joined #nixos
<Infinisil>
What I imagine is an display server that shows hashes as what they actually are, e.g. a hash for a haskell function gets shown as "name :: type" and maybe some github reverse dns link
<dtzWill>
I'm unclear re:use cases where you know the hash/hashes you'd need and /might/ invoke or access one or more but you don't know
<sphalerite[m]>
of course they're nix compiled, who in their right mind wouldn't use nix? :p
<bennofs1>
i thought for a moment it could perhaps also work for shell scripts that rely on PATH, by creating a NixOS install that just has symlinks to everything in Nix
<LnL>
dtzWill: nice job with the queue runner fixes :)
* bennofs1
needs to learn Perl
<dtzWill>
sphalerite[m]: a big downside to using Nix is I'm a lot less tolerant of problems that it solves than I used to be :P:P hahaha
<gchristensen>
LnL, dtzWill link?
Nobabs27 has quit [(Client Quit)]
<sphalerite[m]>
yep same dtzWill
<dtzWill>
"well if you just used Nix you wouldn't have any of those problems, you know..."
<sphalerite[m]>
yeah
<dtzWill>
and what you're trying to do is already on our binary cache...
<dtzWill>
>.<
<dtzWill>
lol
<Infinisil>
I didn't know I had the problems nix solved before I used it..
<dtzWill>
if I was at a company I'd be pushing for people to use it, but since I'm in academia ATM it's a bit more free-for-all :):)
<sphalerite[m]>
I did. Docker led me towards the light at an angle
<sphalerite[m]>
Infinisil: I don't think that your idea is that useful for CI though. CI benefits massively from having well-specified dependencies, which we have with nix expressions and not so much with your idea... I htink?
lesce has joined #nixos
<dtzWill>
LnL: thanks! :D edolstra did the initial fix ^_^
<dtzWill>
and the commit bennofs1 linked was a fixup for a regression introduced there, well more like an oversight in that impl
takle has quit [(Remote host closed the connection)]
<dtzWill>
LnL: I figured out the problem ._.
<dtzWill>
and edolstra's been doing a few other improvements too
<dtzWill>
better beavhior on queue restart, etc
<Infinisil>
sphalerite[m]: Not sure, I feel like the one fragile thing on nixpkgs is that versions aren't fixed, so updating x will update x for everything that uses x
<dtzWill>
fingers crossed no more waking up to a huge unprocessed queue lol
<Infinisil>
And different versions are truly horrible with nixpkgs let's be honest
<dtzWill>
Infinisil: err
<josiah>
aszlig: thanks for the insight
<dtzWill>
Infinisil: I feel like that's what nix is amazing at dealing with D:
<grahamc>
Same
<Infinisil>
Hmm..
<dtzWill>
Infinisil: nixpkgs, perhaps less so, but for any app you can just keep the same nixpkgs and it'll work forever
<Infinisil>
Maybe you're right, it isn't actually much of a problem
<dtzWill>
in a way that is more or less unthinkable on other distributions
<dtzWill>
well so if you upgrade with nix-env -u what you say is true
<dtzWill>
and sometimes it's cumbersome to pin things or override things the way you want
<grahamc>
But it is possible which is the magic
<dtzWill>
but TBH that could probably be solved with a smidge of tooling if that was thought a big failing
<dtzWill>
grahamc: exactly
<Infinisil>
nixpkgs just doesn't handle versions, at all
<sphalerite[m]>
Yeah exactly, and you can always track nixpkgs channels (thanks to gchristensen's API and webhooks) and rebuild whenever your application or nixpkgs updates
<Infinisil>
or just in a hacky way
<sphalerite[m]>
Git isn't hacky!
<grahamc>
Sure we do, we have openssl_1_1
lesce has quit [(Ping timeout: 240 seconds)]
<Infinisil>
sphalerite[m]: But then a package gets updated from 1.1 to 1.7 and you don't have all the versions inbetween
<grahamc>
True
<dtzWill>
Infinisil: hmm, what would be something nixpkgs could do or facilitate if it handled versions in a different way?
<dtzWill>
oh
<Infinisil>
grahamc: This is more of adhoc versioning
<dtzWill>
*oh*
<dtzWill>
nixpkgs is more of a curated set of packages known (mostly) to work properly together
<bennofs1>
Infinisil: i don't think this can be solved with tools. it is a human problem
<Infinisil>
dtzWill: I don't know, probably it wouldn't even work, because someone has to validate that certain package sets work together
<grahamc>
To be honest a huge amount of power of nix comes from the fact that we don't have a dependency solver
<sphalerite[m]>
I don't think it's a feasibly solvable problem to handle all these different permutations
<sphalerite[m]>
Because everything has dependencies
<Infinisil>
Yeah
<bennofs1>
nobody can test the combinatoric explosition that results from multiple versions of everything
<Infinisil>
But then there are problems such as packages requiring older version of other packages, and then you need to keep around multiple versions
<dtzWill>
I suppose we could make it easier to replace a package with a diferent version in a more natural way, especially in the case where you want to specify using a library that /used/ to be in-tree but isn't any longer
<dtzWill>
Infinisil: keeping around older versions sure seems like the way to go, gc periodically and away you go
<dtzWill>
that, and things like nix store optimization (file-level not more granular) keep things working without interfering, which is just so powerful for what seems would be standard haha
<Infinisil>
Agreed
<sphalerite[m]>
Infinisil: that's a problem with software maintenance, not the tools we have
<dtzWill>
and I think loose version bounds don't really make sense for OS-level packages, unlike perhaps worlds of javascript or such
<Infinisil>
dtzWill: It makes sense when you want to have bug-fix updates
<grahamc>
Are you sure you're not just looking for dpkg or yum? :)
<dtzWill>
Infinisil: well one person's bug-fix is another person's feature breakage
<Infinisil>
grahamc: I wouldn't wanna switch in a thousand years
<Infinisil>
dtzWill: True
<grahamc>
Well that is the idea behind those tools
<dtzWill>
although the need to "rebuild" all the things to push a security update is a bit of a flaw but it's one we know how to solve but just requires moderate effort that no one seems sufficiently bugged to invest xD
* bennofs1
dreams of a future where nix can be used as just a backend for automatically using the language specific tool
<Infinisil>
I guess all I'm trying to say is that all the glory of nix comes with a small prize to pay
<bennofs1>
(and language specific tools have enough info to successfully, reproducibly build the app/lib)
<Infinisil>
bennofs1: They also have to do it though, compilers just do random stuff sometimes (it's also a kind of optimizing i think)
<Infinisil>
But the randoms could be seeded anyways
<dtzWill>
Infinisil: I am very interested in discussing these things and understanding people's thoughts on all of these matters, don't misunderstand my opinions as unwillingness to be convinced otherwise O:)
<Infinisil>
dtzWill: Same, I really like these kind of open discussions :D
cwre is now known as usr_bin_env
<bennofs1>
Infinisil: ah with reproducible i just meant that it has enough info to recreate the build. not necessarily that it'll be bit-for-bit deterministic
<dtzWill>
been working on a paper that tackles issues close to these, haha, been writing the intro and working on sounding convincing and confident so people listen xD. Bit of that tone leaked over lol
<Infinisil>
bennofs1: Ah right, mixing these terms up sometimes
usr_bin_env is now known as cwre
xadi has joined #nixos
<Infinisil>
dtzWill: I'm interested, what's the paper about?
<dtzWill>
as far as I know, most compilers consider lack of determinism a serious bug
<bennofs1>
I think the Haskell + Nix integration is really close to that future: almost any haskell package can be generated by cabal2nix cabal://package
<dtzWill>
problems encountered are often due to impure environments or build systems injecting things and whatnot
<dtzWill>
only exception is the use of techniques like PGO and its related sibling, auto-tuning
<sphalerite[m]>
What are they?
<Infinisil>
sphalerite[m]: The problems?
<sphalerite[m]>
PGO and auto-tuning
<dtzWill>
Infinisil: well I'm still sorting out which piece to highlight, but basically --
<dtzWill>
Infinisil: basically I've built a system based on nixpkgs/NixOS that has everything as LLVM IR instead of native code; as a result Software built this way can be analyzed, transformed, and somewhat transcends the normal limitations imposed by rigid binary code formats
<sphalerite>
Infinisil: yeah that's how I interpreted it. But I only just heard of it for the first time from dtzWill so I may be wrong
<dtzWill>
Infinisil: so as an example you know how before we were talking about wanting two apps X and Y that had deps on A1 and A2 (versions of 'A') and how it's lame to have to keep all of A1 and A2 around?
<Infinisil>
dtzWill: Interesting, what do you mean by "system", what's the product?
<dtzWill>
in my system, since you don't ahve to treat them as opaque binary blobs, I can identify and deduplicate (on disk, or in memory) code shared between the two copies of 'A'
<dtzWill>
also gives lets you get the best benefits of dynamic/shared linking and static linking, or anywhere inbetween in that design space
<Infinisil>
dtzWill: So it's like one giant LLVM module?
<dtzWill>
Infinisil: haha, it could be! And sometimes, it is! :) It also lends itself to chunking into a content-addressed store but I've only done prelim experiments with that
<dtzWill>
so slightly more practically, this lets you be flexible/dynamic about what code it used but still have the performance and memory footprint of a carefully statically liniked application
<Infinisil>
dtzWill: Nice! This seems to be close to SCID
<dtzWill>
(and without the security problems of dynamically loading code, at least in the common case where it's not needed)
<dtzWill>
Infinisil: yes.
sjouke has joined #nixos
<dtzWill>
I can also use this to emit minimal docker containers or whatnot
<dtzWill>
actually, most of the software on my system is built this way and is JIT'd with a code-cache or AOT-compiled
<dtzWill>
:D
<sphalerite>
that's pretty crazy
<sphalerite>
Where do I get it? :p
* Infinisil
looks up AOT
fikse has quit [(Ping timeout: 240 seconds)]
<dtzWill>
Infinisil: ahead-of-time, as opposed to just-in-time (JIT); means compiled before executed, as opposed to JIT'ing which compiles during execution
<Infinisil>
Ah, Ahead-of-time
[0x4A6F] has quit [(Ping timeout: 255 seconds)]
<dtzWill>
basically it says hey there are lots of problems caused by the way we build, package,and distribute software--especially the requirement that the organization of software be the same across all of those
<Infinisil>
dtzWill: So is this a full blown (well let's say a terminal) OS you boot into?
<dtzWill>
Infinisil: I run NixOS (kernel-level magic is long-term) and install most of my bits from a nix channel that does things this way
<Infinisil>
dtzWill: Ohh, so this can enable you to have stuff from everything that compiles to LLVM IR be compiled and linked together without any problems?
<dtzWill>
or provides software in self-contained format; it's a bit inefficient ATM but that's just to keep things reliable while still exploring what makes the most sense
<dtzWill>
eep one sec, phone call!
<sphalerite>
That sounds really cool
<Infinisil>
It really does
sheenobu has quit [(Quit: My Mac has gone to sleep. ZZZzzz…)]
[0x4A6F] has joined #nixos
<Infinisil>
Oh and my hello build failed..
phreedom has joined #nixos
andyshinn has joined #nixos
<sphalerite>
How can I override a python package, and have the overridden version used for dependents as well?
<sphalerite>
(and ideally also override it easily for all versions of python)
<sphalerite>
Is that reasonably doable with packageOverrides or an overlay, or should I jsut be editing my copy of nixpkgs?
lesce has joined #nixos
<Infinisil>
sphalerite: I think it should be possible to create a new python package set with something like pythonPackages.override { ...}, then you could use that for other dependants
<sphalerite>
I want it to affect *everything* inside pythonPackages though
<sphalerite>
Looks like editing my nixpkgs is the least painful way to do it
<Infinisil>
sphalerite: Doesn't that do that? Every package in the overriden one should use the overriden package, not the old one
<Infinisil>
I think
<sphalerite>
AFAIK that's what overrideAttrs does (and overrideDerivation doesn't) but pythonPackages only has overrideDerivation which also doesn't actually work by the looks of it
<Infinisil>
sphalerite: Does overrideAttrs not work on python ones?
lesce has quit [(Ping timeout: 258 seconds)]
<Infinisil>
I'd think it does, since python really just uses mkDerivation underneath
jonte has quit [(Ping timeout: 248 seconds)]
<dtzWill>
(phone call over)
sheenobu has joined #nixos
<dtzWill>
Infinisil: well somewhat interestingly getting a proper view of a program<-->its libraries is surprisingly dificult; "naive" attempts, for example, to treat shared and static things interchangeably will fail miserably despite build systems that try to provide abstractions that they're interchangeable :)
<dtzWill>
Infinisil, sphalerite: really glad you think so--hoping to make the whole thing super-public ASAP, really makes me sad it isn't already
xadi has quit [(Ping timeout: 255 seconds)]
<dtzWill>
recently started pushing all my builds to S3/cloudfront, got that all setup so hopefully interested folks can have a field day with it
<sphalerite>
Infinisil: overrideAttrs does work on pythonPackages.xyz but not on pythonPackages
<sphalerite>
as in the overrideAttrs attribute doesn't even exist on pythonPackages
<dtzWill>
if nothign else, it provides the first complete representation of a huge set of legacy software, ready for actual use as you would normally
<Infinisil>
dtzWill: Nice! I'll look out for it
<dtzWill>
with use cases like easy specialization for a config or at install-time or what-have-you
<bennofs1>
sphalerite: .override should do it, not .overrideAttrs
sjouke has quit [(Ping timeout: 246 seconds)]
<Infinisil>
sphalerite: ^^
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] rycee pushed 5 new commits to master: https://git.io/v7nu2
<NixOS_GitHub>
nixpkgs/master 19425c7 Robert Helgesson: python-PyICU: 1.9.6 -> 1.9.7
<NixOS_GitHub>
nixpkgs/master 78815d0 Robert Helgesson: mimeo: 2017.2.9 -> 2017.6.6
<NixOS_GitHub>
nixpkgs/master fc75595 Robert Helgesson: gmic: remove myself as maintainer
NixOS_GitHub has left #nixos []
<Infinisil>
Just found some examples in nixpkgs doing pythonPackages.override { ...
<sphalerite>
isn't override just what's generated by callPackage and allows changing what's passed to the package function
<dtzWill>
I think it's incredibly awesome haha but TBH would be very interested in hearing thoughts/input/ideas from any/all that wouldn't mind offering their perspective/insights
[0x4A6F] has quit [(Ping timeout: 240 seconds)]
<bennofs1>
sphalerite: oh right, you want to override *a* python package, not *the* python package :)
<sphalerite>
as opposed to overrideAttrs which is generated by mkDerivation and allows changing what's passed to mkDerivation
<bennofs1>
sphalerite: generally, what you want is fixpoint .extends
cpennington has quit [(Remote host closed the connection)]
<dtzWill>
current problem re:paper writing is selling it to people who don't understand the problems being solved are problems, aka people who have never tried to run a distro or build any non-trivial amount of software on linux lol
<bennofs1>
let's see if pythonPackages uses fixpoints
<sphalerite>
Again, it seems more painless to just edit my nixpkgs checkout and I'm looking for rapid results not the most perfect solution, just this once
fikse has joined #nixos
<dtzWill>
haha yeah, there are too many mini-abstractions across all the langauges and whatnot
<bennofs1>
sphalerite: well i kinda want to know how to do it anyway though :)
<sphalerite>
I need to have some software running on my chromebook and pytest's tests are stopping me
<dtzWill>
and once you find yrouself pulling up all those files anyway might as well just ahve your own fork :P
<dtzWill>
maybe we need an RFC on consistent package overrides, wait I think there was one at least related..
<bennofs1>
dtzWill: SOS
<sphalerite>
yes, that does look like what I'm looking for
stanibanani has quit [(Ping timeout: 248 seconds)]
<sphalerite>
but meh, I've edited my nixpkgs checkout and it seems to be building and it was easier
<dtzWill>
phone call I had earlier? Amazingly was actually about Nix haha--fellow who was confused why my ".override" example worked and his ".override { doCheck = true; }" didn't work
<sphalerite>
(which I'm guessing is an indication that yes, we do need consistent overriding)
<sphalerite>
hah, it's even related to doCheck just like what I'm doing
<sphalerite>
nice
<dtzWill>
and I started to explain the different but then... really I'm not clear why that "must" be so complicated and one-off esp for agreed-upon attributes like doCheck
<Infinisil>
dtzWill: He needed overrideAttrs right?
<dtzWill>
Infinisil: yeah, believe so. Whichever variant is the currently recommended way to do that
<bennofs1>
Infinisil: no, he needed pythonPackages.override { packageOverrides = self: super: ... }
<dtzWill>
overrideInDerivation was a thing at some point? Or thereabouts?
<bennofs1>
dtzWill: that's not overrideInDerivation. pythonPackages handles packageOverrides for python pkgs
<Infinisil>
bennofs1: I meant the { doCheck = true; } thing mentioned by dtzWill
<bennofs1>
OH i'm dumb sorry i should read :/
<Infinisil>
Np ;)
<dtzWill>
bennofs1: sorry I meant for "standard" packages, and certainly didn't mean to contradict your answer re:python
* dtzWill
didn't know about pythonOverrides anyway hahaha
<Infinisil>
Nixpkgs is full of mysteries
<bennofs1>
what's a mistery to me is why the choose to call it "packageOverrides" when haskellPackages already had the exact same thing but calls it just 'overrides' :/
<Infinisil>
bennofs1: Probably history related
<bennofs1>
Infinisil: pretty sure Haskell was the first :)
<Infinisil>
Ah, well then maybe people just didn't notice it, I have written stuff for nixpkgs before without realizing it already exists
willprice94 has joined #nixos
<sphalerite>
yeah I think there's generally a lot of duplication of functionality in nixpkgs
<sphalerite>
and many different APIs for what is frequently a very similar concept
<sphalerite>
well, interfaces. They don't really count as APIs I guess.
willprice94 has quit [(Read error: Connection reset by peer)]
willprice has joined #nixos
ng0 has quit [(Quit: Alexa, when is the end of world?)]
eacameron has quit [(Remote host closed the connection)]
Infinisil has quit [(Remote host closed the connection)]
peel has quit [(Ping timeout: 240 seconds)]
endformationage has quit [(Quit: WeeChat 1.7)]
josiah has quit [(Remote host closed the connection)]
rpifan_ has joined #nixos
hiratara has quit [(Ping timeout: 240 seconds)]
rpifan has quit [(Ping timeout: 240 seconds)]
Ivanych has quit [(Ping timeout: 248 seconds)]
hiratara has joined #nixos
Nobabs27 has joined #nixos
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] dywedir opened pull request #27698: rustracer: 2.0.6 -> 2.0.9 (master...rustracer) https://git.io/v7n6o
NixOS_GitHub has left #nixos []
sheenobu has quit [(Quit: My Mac has gone to sleep. ZZZzzz…)]
Infinisil has joined #nixos
koserge has quit [(Ping timeout: 240 seconds)]
hamishmack has joined #nixos
dejanr has joined #nixos
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] volth opened pull request #27699: nixos/varnish: made compatible with varnish 5.2.1, add modules (master...varnish-fixes-sq) https://git.io/v7ni3
NixOS_GitHub has left #nixos []
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] volth closed pull request #27413: nixos/varnish: made compatible with varnish 5.2.1, add modules (master...varnish-fixes) https://git.io/vQd7M
NixOS_GitHub has left #nixos []
willprice has quit [(Ping timeout: 240 seconds)]
eacameron has joined #nixos
sheenobu has joined #nixos
takle has joined #nixos
<Infinisil>
Oh and what I'll end up doing regarding the zfs uefi grub thingy, I'll just use multiple partitions, it's not worth the effort to get it potentially working
silver_hook has quit [(Ping timeout: 248 seconds)]
eacameron has quit [(Read error: Connection reset by peer)]
eacameron has joined #nixos
takle has quit [(Remote host closed the connection)]
akaWolf has quit [(Ping timeout: 255 seconds)]
Infinisil has quit [(Quit: leaving)]
k2s has joined #nixos
alphor has quit [(Quit: Bye!)]
eacameron has quit [(Ping timeout: 268 seconds)]
<sphalerite>
Right decision IMHO :D
<sphalerite>
ANd now I go sleep
<sphalerite>
Gnight all!
alphor has joined #nixos
Filystyn has quit [(Remote host closed the connection)]
eacameron has joined #nixos
Wharncliffe has joined #nixos
k2s has quit [(Ping timeout: 240 seconds)]
Nobabs27 has quit [(Quit: Leaving)]
eacamero_ has joined #nixos
radvendii has quit [(Ping timeout: 246 seconds)]
magnetophon has joined #nixos
nh2 has joined #nixos
Nobabs27 has joined #nixos
eacameron has quit [(Ping timeout: 276 seconds)]
eacamero_ has quit [(Ping timeout: 255 seconds)]
NixOS_GitHub has joined #nixos
<NixOS_GitHub>
[nixpkgs] Mic92 pushed 1 new commit to master: https://git.io/v7nXr
<NixOS_GitHub>
nixpkgs/master 127b262 Jörg Thalheim: vim-yapf: init at 2017-03-21
NixOS_GitHub has left #nixos []
Nobabs27 has quit [(Quit: Leaving)]
magnicida has joined #nixos
eacameron has joined #nixos
<seequ>
Has anyone here experienced high CPU load for the X process with the proprietary nvidia drivers?
<seequ>
It's as if it's using software rendering.
bennofs has quit [(Ping timeout: 240 seconds)]
hiratara has quit [(Remote host closed the connection)]
Myrl-saki has joined #nixos
ebzzry has joined #nixos
hiratara has joined #nixos
<simpson>
seequ: For 2D stuff, that'll sometimes happen. The proprietary drivers have a long history of poor 2D performance.
<seequ>
..huh
eacameron has quit [(Ping timeout: 240 seconds)]
<seequ>
Hmm.. Well I guess I can try nouveau safely because it's nix ^^
joehh has joined #nixos
joepie91 has quit [(Excess Flood)]
joepie91 has joined #nixos
joepie91 has quit [(Changing host)]
joepie91 has joined #nixos
watersoul has joined #nixos
Cement has quit [(Ping timeout: 260 seconds)]
<drakonis>
is that so?
<drakonis>
seequ, which card do you have
justelex_ has joined #nixos
watersoul_ has quit [(Write error: Broken pipe)]
<seequ>
What's the videoDrivers string for that?
<seequ>
drakonis: GTX 770
cornfeedhobo has quit [(Excess Flood)]
ambro718 has quit [(Remote host closed the connection)]
fresheyeball has joined #nixos
mkoenig_ has joined #nixos
<fresheyeball>
hey out there
qmmm has joined #nixos
jbo_ has joined #nixos
mkoenig has quit [(Write error: Broken pipe)]
isHavvy has quit [(Remote host closed the connection)]
ent- has joined #nixos
anderslu1dstedt has joined #nixos
Nazral has quit [(Remote host closed the connection)]
cornfeedhobo_ has joined #nixos
s33se has joined #nixos
mightybyte has quit [(Remote host closed the connection)]
joachifm has quit [(Remote host closed the connection)]
baroncha3lus has joined #nixos
aminechi1haoui has joined #nixos
AtnNn_ has joined #nixos
<fresheyeball>
does this create the output directory?
qknight has joined #nixos
aanderse_ has joined #nixos
viric_ has joined #nixos
<fresheyeball>
$setupCompilerEnvironmentPhase
exi has joined #nixos
statusfailed has joined #nixos
athan_ has joined #nixos
slyfox_ has joined #nixos
mjacob_ has joined #nixos
socksy_ has joined #nixos
dtzWill_ has joined #nixos
ison111_ has joined #nixos
tnks_ has joined #nixos
danbst1 has joined #nixos
joachifm_ has joined #nixos
josePhoenix has joined #nixos
Nazral has joined #nixos
glines_ has joined #nixos
mightyby1e has joined #nixos
jbo has quit [(Write error: Broken pipe)]
AtnNn has quit [(Write error: Broken pipe)]
ent has quit [(Write error: Broken pipe)]
qknight_ has quit [(Write error: Broken pipe)]
ison111 has quit [(Write error: Broken pipe)]
justelex has quit [(Write error: Broken pipe)]
Neo-- has quit [(Remote host closed the connection)]
markus1189 has joined #nixos
exi_ has quit [(Write error: Broken pipe)]
socksy has quit [(Write error: Broken pipe)]
danbst has quit [(Write error: Broken pipe)]
statusfa1led has quit [(Write error: Broken pipe)]
mounty has quit [(Remote host closed the connection)]
_habnabit has quit [(Excess Flood)]
qmm has quit [(Remote host closed the connection)]
hellrazor has joined #nixos
baroncharlus has quit [(Remote host closed the connection)]
glines has quit [(Remote host closed the connection)]
cornfeedhobo_ is now known as cornfeedhobo
athan has quit [(Remote host closed the connection)]
slyfox has quit [(Remote host closed the connection)]
viric has quit [(Remote host closed the connection)]
josePhoenix_ has quit [(Remote host closed the connection)]
mjacob has quit [(Remote host closed the connection)]
aminechikhaoui has quit [(Write error: Broken pipe)]
katyucha has quit [(Write error: Broken pipe)]
tnks has quit [(Write error: Broken pipe)]
aanderse has quit [(Write error: Broken pipe)]
hellrazo1 has quit [(Remote host closed the connection)]
s33se_ has quit [(Remote host closed the connection)]
markus1199 has quit [(Remote host closed the connection)]
dtzWill has quit [(Remote host closed the connection)]
<fresheyeball>
is there an eval step the usually creates the output directory?
mounty has joined #nixos
_habnabit has joined #nixos
Neo-- has joined #nixos
sheenobu has quit [(Ping timeout: 247 seconds)]
Fuuzetsu has quit [(Ping timeout: 247 seconds)]
mjacob_ has quit [(Changing host)]
mjacob_ has joined #nixos
danl1240 has quit [(Ping timeout: 269 seconds)]
Bane^ has quit [(Ping timeout: 269 seconds)]
anderslundstedt has quit [(Ping timeout: 240 seconds)]
obadz- has joined #nixos
<seequ>
I tried nouveau.
<seequ>
Isn't any better.
Fuuzetsu has joined #nixos
Wizek_ has joined #nixos
Myrl-saki has quit [(Ping timeout: 260 seconds)]
sheenobu has joined #nixos
Bane^ has joined #nixos
lesce has joined #nixos
katyucha has joined #nixos
obadz has quit [(Ping timeout: 255 seconds)]
obadz- is now known as obadz
k2s has joined #nixos
Sonarpulse has quit [(Ping timeout: 268 seconds)]
hellrazor has quit [(Quit: WeeChat 1.9)]
<seequ>
simpson: So, this isn't about the proprietary drivers.
<simpson>
seequ: Go figure.
lesce has quit [(Ping timeout: 240 seconds)]
k2s has quit [(Ping timeout: 240 seconds)]
indi_ has joined #nixos
ison111_ has quit [(Quit: WeeChat 1.7.1)]
<seequ>
drakonis: Any ideas?
<drakonis>
seequ, should work?
<drakonis>
rather
<drakonis>
one momnet
<drakonis>
moment.
<drakonis>
nouveau runs on kepler cards properly
<seequ>
glxinfo would suggest direct rendering is used and the drivers properly loaded
<drakonis>
nvidia's drivers should work as well as in other platforms
<drakonis>
ie: windows
<seequ>
I switched back to proprietary
xadi has joined #nixos
<simpson>
seequ: What's the driver version? These days, even software rendering is direct rendering.
<seequ>
As said, this doesn't seem like a drivef issue after all, rather it seems like X isn't using the drivers.
<seequ>
simpson: 375.66
<simpson>
So glxinfo might say "software rasterizer" or something like that.
<simpson>
Ah, that's an nVidia version. Never mind.
<seequ>
That's the OpenGL version
<fresheyeball>
should I expect `eval $buildPhase` to make the $out?
<seequ>
GLX is 1.4
rpifan has joined #nixos
hellrazor has joined #nixos
rpifan_ has quit [(Ping timeout: 275 seconds)]
rpifan has quit [(Remote host closed the connection)]
fikse has quit [(Ping timeout: 240 seconds)]
sheenobu has quit [(Quit: My Mac has gone to sleep. ZZZzzz…)]
taktoa has joined #nixos
markus1199 has joined #nixos
<taktoa>
I had another crazy Nix idea: what if there were a builtin that memoized evaluation of a pure value, such that it would be retrieved from a special cache (one that is much cheaper than the nix store) if the hash of the expression is in the cache. if the hash of the expression isn't in the cache, we do a quick check for impurity (e.g.: builtins.getEnv), evaluate it, and cache it
<taktoa>
I think this would massively improve our evaluation times
hydraz has quit [(Read error: Connection reset by peer)]
<catern>
why is the store so expensive?
<taktoa>
catern: security? you can do arbitrary things in a nix build, so we need to chroot
sheenobu has joined #nixos
<taktoa>
also you need to talk to the nix-daemon
<taktoa>
I'm talking about a sqlite database that would live in ~/.cache/nix or something
<taktoa>
though idk if contention between concurrently-running nix processes would cause problems with that
<fresheyeball>
catern: it's a store.
thc202 has quit [(Ping timeout: 255 seconds)]
markus1189 has quit [(Ping timeout: 268 seconds)]
<taktoa>
also it's on the filesystem, so if we tried to do this with the nix store we'd probably be generating a godawful number of store paths
<taktoa>
memoization as a way to improve eval times has seemed obvious to me for a while, but I was thinking about having the Nix runtime do it automatically
<taktoa>
this builtins.memoize approach is much easier to implement and lightweight
hydraz has joined #nixos
hydraz has quit [(Changing host)]
hydraz has joined #nixos
joehh has quit [(Ping timeout: 268 seconds)]
eacameron has joined #nixos
<catern>
taktoa: eh? why is it expensive just to query the store?
<catern>
is what I meant
<taktoa>
catern: you need to IPC with the nix-daemon
<catern>
that can be cheap :)
<catern>
microkernels prove it (:
<taktoa>
yeah, too bad we're not all running seL4
<taktoa>
(I was typing that before you mentioned microkernels lol)
<catern>
it can be cheap even on conventional operating systems!
<catern>
a unix socket write then read is like, no cost
dywedir has quit [(Ping timeout: 240 seconds)]
<catern>
(well, assuming you have an in-memory cache after the first retrieval)
<taktoa>
I wonder if you could preload all the stuff that's likely to be needed for a file
<taktoa>
like, have a SQL column for the file in which the `builtins.memoize` was used, then preload all those rows when you start evaluating something in that file
<taktoa>
for that matter, we could also cache parsing. I suspect that computing the SHA256 of a file and checking for it in a cache is much quicker than actually parsing it
<taktoa>
(at least because AFAIK a SHA256 is a linear traversal over a file with no backtracking, though I don't know if the Nix parser does much backtracking currently)
sheenobu has quit [(Quit: My Mac has gone to sleep. ZZZzzz…)]
<taktoa>
wait actually you can do it in constant time: hash the first k bytes of the file, then use that to determine if you should hash the rest (though caching file hash computation is slightly off the deep end)
<catern>
this is all to optimize IFD right?
<taktoa>
this is to optimize Nix evaluation, which can be quite slow
<taktoa>
well really the reason I want it is so I can have "zero cost" abstraction in Nix
sheenobu has joined #nixos
sigmundv_ has joined #nixos
<taktoa>
e.g.: for the BNF parser thing I was talking about, it might be nice to have the builtin take a structured BNF instead of a string. then you could use the BNF machinery itself to parse BNFs that you want to use, but we pay a cost for that
<taktoa>
with `builtins.memoize`, you'd only pay the cost of compiling the BNF the first time
erasmas has quit [(Quit: leaving)]
<tilpner>
Shouldn't $ nix-shell -p lua5_2 lua52Packages.cjson --command 'lua -e "require \"cjson\""' work? It fails with module 'cjson' not found for me
joehh has joined #nixos
glines_ is now known as glines
joehh has quit [(Ping timeout: 240 seconds)]
sheenobu has quit [(Quit: My Mac has gone to sleep. ZZZzzz…)]