<clever>
most of them build on seperate machines, i found one yesterday that was unable to build anything, because hydra grabbed a lock on $x, then ssh;d into itself to build $x, which waited on the lock, forever
<clever>
dhess: ive seen deadlock issues with hydra builds on localhost
2017-12-18
<clever>
0.0.0.0:2222 makes it listen on any interface
<clever>
the ip&port the server listens on, then the ip&port the server connects to
<clever>
the other inputs are passed to default.nix as arguments, and also put into $NIX_PATH
<clever>
and every attribute in that file becomes a job in the jobset
<clever>
dhess: nixexprinput=configs, and nixexprpath=toxvpn/default.nix, so it will fetch the configs defined on line 14, then eval hydra-configs/toxvpn/default.nix
<clever>
dhess: nix will attempt to build nixexprpath, which is found in the input named by nixexprinput
<clever>
and you can use whatever whacky (but pure!) programming you want to generate that list of jobsets
<clever>
that json file then contains a object of objects similar to the original spec.json, which configure the remaining jobsets on the project
<clever>
hydra will then build whatever it specified, and it expects the jobset to contain a single job called jobsets, which must produce a json file
<clever>
dhess: so .jobsets is auto-created, and its config is locked to match the spec.json file
<clever>
dhess, makefu: the declarative hydra jobsets handle some of that
<clever>
makefu, dhess: you can also bounce questions off me, ive setup ~5 hydras, and help maintain a 6th
<clever>
cmiles74: it should just run things like "gpg" or ${gpg}/bin/gpg
<clever>
cmiles74: first thing to try is to run sed over it to fix the paths up
<clever>
try peeking at another process
<clever>
it might be that something modified the env
<clever>
its a null between every k/v pair
<clever>
judson: try runinng a text editor directly on that file, rather then using strings
<clever>
judson: the issue, is that the file has null bytes in it, try opening it in a text editor that supports nulls
<clever>
catern: also, i prefer always building with the nix sandbox on, so all impure hacks are blocked
<clever>
catern: the more impurity you add, the harder it is for nix to rebuild at the right time, and then things go horribly wrong and things just dont rebuild
<clever>
samueldr: if you run strings on /proc/PID/environ, you can peek at the env variables for any process
<clever>
catern: the issue, is that all of the mechanics for detecting when to rebuild stuff, is based on hashing things and putting them into the store
<clever>
catern: not really, it would be better to just restrict who has access to that nix store
<clever>
fendor: you need let unstable = import <unstable> { config = { allowUnfree = true; }; }; in
<clever>
fendor: that isnt the same as what you gave in irc
<clever>
fendor: can you gist the nix file that causes the error?
<clever>
fendor: at what path?
<clever>
fendor: what does nix-instantiate --find-file nixos-unstable say?
<clever>
but sometimes a special flag doesnt have one
<clever>
i prefer using the nixos options
<clever>
greglearns: nixos sets it up for you, but your protections are blocking it
<clever>
greglearns: the /.well-known/ directory cant be protected
<clever>
greglearns: does the dns for v1.website.com point to the machine managed by nixos?
<clever>
orivej: try "ncdu -x /"
2017-12-17
<clever>
bkchr: wine is already packaged in nixpkgs, so that would be simpler to use
<clever>
bkchr: oh, and it expects patchelf in $PATH, nix-shell -p patchelf first
<clever>
bkchr: that bash script will then just patch whatever its pointed at
<clever>
bkchr: in the default state, just run nix-build on it to generate a bash script
<clever>
yeah
<clever>
bkchr: by setting system to the 32bit tag, it automaticaly gives 32bit everything
<clever>
pbogdan: any running program, any path in env vars, and any path in a working directory, is also "in use" and rooted
<clever>
pbogdan: i meant, in ram
<clever>
pbogdan: it can also be invisibly rooted by being in use by things
<clever>
pbogdan: nix-store --query --roots
<clever>
ottidmes: which configuration.nix are you editing?
<clever>
and that doesnt include the parallel -> serial conversion
<clever>
about 3 years ago, i wrote some verilog by hand (prior to discovering nix and functional programming), just the state machine for driving an ethernet module to transmit a packet is 500 lines of verilog
<clever>
and how insane is it that i can debug haskell like that?, or that ghci cant do something so simple? lol
<clever>
yeah
<clever>
thoughtpolice: i just had an idea on how to debug pure haskell functions, turn them into verilog, then inspect the state flow in gtkwave, lol
<clever>
verilog.out 61,232 x /nix/store/1wiwbvvp44i1djaxcjsvzxnpy14dbx8i-iverilog-2016.05.21/bin/iverilog
<clever>
yeah, iverilog i think
<clever>
maybe i was thinking of verilog
<clever>
thoughtpolice: what was that program to simulate vhdl, that went along with gtkwave?
<clever>
ertes: so you would do boot.initrd.luks.devices.a and boot.initrd.luks.devices.b
<clever>
ertes: after that, i believe its down to the order of the keys in mapAttrsToList
<clever>
ertes: the first major level of ordering, is the prelvm and postlvm stuff
<clever>
so you have to -qR and pass the closure to export yourself
<clever>
but not the closure
<clever>
import/export include the full storepath of each nar
<clever>
yep
<clever>
it doesnt even have the name of the root node
<clever>
yeah, dump is basically tar
<clever>
dump and restore are much simpler, and cant
<clever>
not sure
<clever>
those manage whole closures
<clever>
sphalerite: there is import and export
<clever>
ah, then the compression would have to be changed within nix
<clever>
ah, is it a new `nix copy` that generates a directory of .nar.xz's ?
<clever>
what server at the other end?
<clever>
sphalerite: how is the the cache being served?
<clever>
so nix-daemon needs to just send the right flag
<clever>
yeah, but the remote end does support it
<clever>
i have chained by mistake
<clever>
sphalerite: i know nix-copy-closure can make the remote system use a binary cache, but i dont know if hydra/nix-daemon can trigger that automatically
<clever>
jmc_fr: the hostname.nix can then have something like ./core.nix added to imports, to share config between several systems
<clever>
each host has its own unique file that is added to imports, and all can share nixcfg
<clever>
jmc_fr: then configuration.nix just contains the bare minimum to boot, and imports = [ ./nixcfg/hostname.nix ];
<clever>
jmc_fr: i tend to put a git repo at /etc/nixos/nixcfg/
<clever>
and the SPL that comes with u-boot is concated to u-boot itself, and expects u-boot to follow
<clever>
yeah, the allwinner line loads an SPL (secondary program loader) from a given offset on many media
<clever>
in both cases, the dram is offline, and that first stage goes into the L2 cache of the cpu
<clever>
yeah
<clever>
jmc_fr: there should be vbox utils in /run/current-system/sw/bin
<clever>
jmc_fr: are the commands for sharing folders in $PATH/
<clever>
jmc_fr: that option will install and configure it all for you
<clever>
i often say, docs can lie, the source cant
<clever>
the map on 160 then fetches the a and b from args or config._module.args
<clever>
and the attrNames turns it into [ "a" "b" ]
<clever>
so { a, b, ... }: returns a { a=false; b=false; }
<clever>
line 158 queries the function to get its arguments
<clever>
so passing a set doesnt fail with an error, and just ignores the args
<clever>
applyIfFunction just decides if its a function or not, and calls it with the args if it can
<clever>
andromeda-galaxy: deep within the bowels of the module framework
<clever>
andromeda-galaxy: i think thats the foo in systemd.services.foo
<clever>
so it has the same size as list1 and list2
<clever>
i'm guessing that would be listn, with the elems set to null
<clever>
i also just noticed, there is no special type for lists of size 0
<clever>
and will include cmake in the sandbox
<clever>
so just doing buildPhase = "${cmake}/bin/cmake"; will make sure cmake is built before your thing
<clever>
and when you call the builtins.derivation function with a string, the derivation it creates will auto-magically depend on the derivations the strings refered to
<clever>
every string in nix, has a list of derivations the string refers to