<clever>
sonne: if you add boot.debug1 to the kernel params, what does it do?
<clever>
sedutil is a linux program for unlocking the hdd encryption
<clever>
ah, it was ottidmes
<clever>
2018-03-02 10:01:20< ottidmes> clever: For sedutil to do its thing I cannot have access to the SSD, so far I have been rebooting into a LiveCD everytime I wanted to configure the SSD with sedutil (other than unlocking), but I was thinking, shouldn't I be able to use your rescue netboot example so that I can boot into that, do the configuration, and kexec back into the kernel on the SSD after I am done?
<clever>
just an entirely empty kernel params
<clever>
sonne: try without any systemConfig
<clever>
yeah
<clever>
sonne: the last guy with this issue, had a shadow boot partition, that would appear whenever the drive is locked, and it would boot a second OS from there, which asks for the pw
<clever>
tfc[m]: yeah
<clever>
sonne: there was a guy in here a month or 2 ago with a very similar problem, and he used kexec to solve it
<clever>
sonne: ah, let me find the right link...
<clever>
tfc[m]: channels are only a way to get the nix expressions, they have no real link to the binary caches
<clever>
sonne: and if they hit c after the bios has unlocked it, then they have the password?
<clever>
sonne: if they hit c prior to the bios unlocking things, then they have no more access then if they just ripped the drive out of the machine
<clever>
tfc[m]: and also add the key that the hydra signs with
<clever>
sonne: the same as sourcing a config file after you decrypt the real boot partition
<clever_>
sonne: it would be no less secure then running i_am_not_a_virus.bin that was renamed to /boot/default/kernel
<clever_>
tfc[m]: yeah
<clever_>
tfc[m]: if you run `nix-store -r /nix/store/foo` on a storepath, without having given it expressions on how to build it, then its only option is to download from the binary cache
<clever_>
sonne: it should still boot without kernel params, it just means you cant configure them from configuration.nix
<clever_>
yeah, that method entirely ignore kernel params
<clever_>
that will create a dumb /boot/default/kernel and /boot/default/initrd
<clever_>
so you have to convince grub that a /nix/store/ symlink in the nix filesystem should be read at /store
<clever_>
and that relies on being able to follow symlinks when your /nix may not mount directly at /
<clever_>
its in a file in there, and i dont know if grub can read a file and use it as kernel args
<clever_>
but the kernel cmdline is harder to get
<clever_>
you can also load the kernel and initrd from /nix/var/nix/profiles/system/
<clever_>
sonne: the only issue there, is that the grub config cant load modules, so you have to pre-load all grub modules it may need prior to sourcing
<clever_>
sonne: grub has a source command, so you can just source the grub config nixos generates
2018-05-27
<clever>
bbl
<clever>
Orbstheorem: running ulimit before you start xmonad will handle what this is descripting
<clever>
Orbstheorem: then you need one other small change
<clever>
Orbstheorem: then the main xmonad will always use that debug build
<clever>
Orbstheorem: in your override-xmonad\ \(1\).nix file, just strip out all of the overrides, and run `LD_LIBRARY_PATH=${pkgs.enableDebugging pkgs.xorg.libX11}/lib ${xmonad/bin/xmonad &`
<clever>
sounds like the override didnt work right
<clever>
no debug output?
<clever>
then run `nix show-derivation BAR` on that, does it show several outputs?
<clever>
Orbstheorem: if you do `nix-store --query --deriver FOO` on the storepath for the overridden libX11, you should get a .drv path
<clever>
Orbstheorem: run `file` on the before and after libX11.so and confirm if the enableDebug override did anything
<clever>
ryantrinkle: the contents of readme.md dont affect if things pass or fail
<clever>
ryantrinkle: the ./. is just a question of if changing readme.md causes a rebuild, and id usualy try to avoid that
<clever>
ryantrinkle: it would also be nice if hydra could do both head and merge builds, to confirm both pass
<clever>
ryantrinkle: the metadata on an eval has to be improved to track both head and merge, and then the github status plugin has to use that metadata, then it might be as smart as travis
<clever>
so the PR will always get a first eval when opened
<clever>
also, the reval caching is within a jobset
<clever>
ryantrinkle: depends on if you have a src = ./. that reads that file
<clever>
ryantrinkle: youll need to make a new commit on the PR that actually causes a nix level rebuild
<clever>
not the last
<clever>
and it updates the rev that first made the eval
<clever>
a force re-eval doesnt help if its the same derivations in the end
<clever>
ryantrinkle: the new git rev is giving effectively the same nix expressions, so it doesnt need a new eval
<clever>
ryantrinkle: thats a cached eval
<clever>
if you need realpath or not, depends on what you want to do
<clever>
which is a symlink to the real binary
<clever>
iqubic: type/which give a path like /run/current-system/sw/bin/foo
<clever>
iqubic: run type or which on it, then realpath on that path
<clever>
Orbstheorem: also, now that we have switched to using a proper haskell override, you can just override X11, and it will affect xmonad automatically
<clever>
Orbstheorem: i think your problem is at ghcWithPackages = haskellPackages.ghcWithPackages.override
<clever>
or possibly $HYDRA_HOME
<clever>
ryantrinkle: i think its $PERL5LIB in the hydra-notify bash wrapper
<clever>
libexec/hydra/lib/Hydra/Plugin/GithubStatus.pm is where the PR status is handled
<clever>
then start adding prints to it
<clever>
ryantrinkle: then modify hydra-notify to use the copy of -wrapped, and the copy of lib
<clever>
ryantrinkle: copy .hydra-notify-wrapped to a tmpdir and also copy the path like `/nix/store/8dxcx2jv168c3f6a31fag1a3qwkps170-hydra-2017-11-21/libexec/hydra/lib` to a tmpdir (read the hydra-notify script), and copy hydra-notify as well
<clever>
ryantrinkle: its always loaded
<clever>
then check all of the logfiles it generates to to see what is being ran
<clever>
ryantrinkle: the first one to match stops all others
<clever>
ryantrinkle: do you have several githubstatus blocks?
<clever>
what about the inputs field?
<clever>
yeah, that should match
<clever>
Build 205 of job obelisk:obelisk-pr-29:built-skeleton
<clever>
ryantrinkle: ah, can you paste your regex and your job name?
<clever>
ryantrinkle: that runs thru the same regex
<clever>
ryantrinkle: grab an actual build# from the hydra UI
<clever>
ryantrinkle: you can also manually run `hydra-notify build-finished 63657` or swap in build-started (as `sudo -u hydra -i`) to manually claim something has happened and update github
<clever>
yurb: what about editing the source, then building it with both nix-shell and nix-build (using an override), and comparing the output, add print statements near the point of failure and compare values
<clever>
yurb: if you build it from the same copy of nixpkgs, then it will have the same versions of everything
<clever>
ldlework: and it automatically becomes a dependency, so if your string winds up in a script, nix will copy those files before your script, at all times
<clever>
ldlework: any time you do ${./foo} in a string in nix, nix will copy the path to /nix/store, and substitute in that store path
<clever>
and confusing errors spew forth
<clever>
due to the error, it aborted in the middle of the activation scripts, and now systemd isnt in $PATH
<clever>
months later, after forgeting he made such a change, he had a power outage and had to reboot
<clever>
i helped one guy that tried to do network in his activation script, and it worked during `nixos-rebuild switch`, and he had since done garbage collection
<clever>
and activationScripts are more fragile, one error in your script and the machine wont even boot
<clever>
ldlework: you need to use either systemd or an activation script to run the string at bootup
<clever>
ldlework: you can do it in any string in nix, you just need to be aware of when that string is being executed
<clever>
ldlework: so you want to tell cp the full path
<clever>
ldlework: just beware that nix will rename the file to /nix/store/hash-znc.conf, and then cp will preserve that name, and create /var/lib/znc/configs/hash-znc.conf on you
<clever>
ldlework: yes, thats exactly how you can do it
<clever>
ldlework: thats how dependencies work in nix
<clever>
ldlework: nix can copy it to the remote machine for you if you just "cp ${./source} destination"
<clever>
ldlework: why do the contents have to be in the prestart script?
<clever>
yurb: you can also `nix-shell '<nixpkgs>' -A supercollider --pure` to tell it to find the default.nix in NIX_PATH
<clever>
ldlework: and if that is in a prestart script, it will copy to /destination on the remote machine, during prestart
<clever>
ldlework: the ${./source} will cause nix to copy the entire source into the nix store, and then deploy it to the remote machine
<clever>
but machotool does have a cabal file, so it can make use of the haskell support in nixpkgs
<clever>
arcstats doesnt even have a cabal file, i generally avoid cabal when i can
<clever>
arcstats bypasses all of the haskell support in nixpkgs, so you get a usable shell without .env
<clever>
and then ghcid will :r the project every time you save any file, and show the errors
<clever>
another handy thing, you can do `ghcid -c "runhaskell Setup.hs repl"`
<clever>
and nix-build will just build the project
<clever>
but stack2nix will involve more rebuilding the first time its ran
<clever>
initiumdoeslinux: those commands can be used with both stack2nix, and the simpler machotool examples
<clever>
initiumdoeslinux: on lines 3 and 6, i then run the configure and repl commands, which gets me into ghci
<clever>
initiumdoeslinux: on line 1 i ask for an env suitable for building machotool, which will build everything it depends on using nix, then drop me into a shell
<clever>
initiumdoeslinux: let me paste an example of how to repl and build with the machotool example above
<clever>
initiumdoeslinux: stack will always try to rebuild everything on its own
<clever>
initiumdoeslinux: stack will never use anything made by either stack2nix or the 2 examples above
<clever>
initiumdoeslinux: https://github.com/cleverca22/machotool/blob/master/default.nix is another simple example, this one overrides macho and creates machotool, so i can now `nix-build -A machotool` and freely modify the source of the macho library (it had many bugs)