<clever>
evanjs: if you try to change the arch, it will likely fail due to using the wrong compiler
<clever>
gchristensen: this is the info that lsof reads, but lsof doesnt understand namespaces, so it can be tricky to read the sockets inside a container
<clever>
ah yeah, thats not you choosing to run nixos-enter, thats nixos-install using it as a helper
<clever>
if you didnt `--mount-proc`, you would be in a pid namespace, but `ps aux` wouldnt agree with the actual pid's
<clever>
actually, now that i think of it, `ps aux` reads /proc, so only if /proc is mounted, will it respect the sandbox
<clever>
so that new /proc will respect the new pid namespace
<clever>
Just before running the program, mount the proc filesystem at mountpoint (default is /proc). This is useful when creating a new PID namespace. It also implies creating a new mount namespace since the /proc mount would otherwise mess up existing programs on
<clever>
that creates a pid namespace (and others), and mounts a new /proc for you
<clever>
butterthebuddha: you want `sudo -i` then use `nix-channel`
<clever>
butterthebuddha: also, darwin is "broken" and `sudo nix-channel` wont act on roots channels
<clever>
butterthebuddha: if you are the only user of the machine, its simplest to only put channels on root, and nowhere else
<clever>
butterthebuddha: each user has their own channel list, and nix-env will look in the current users channels, plus root
<clever>
ornxka: nix-env -f ~/nixpkgs -iA hello
<clever>
ornxka: does it need to be a channel or just something you build from?
<clever>
butterthebuddha: that means that you added the same channels to both root and your user, so its ignoring root's copies
<clever>
LnL: nix eval nixpkgs.lib.version
<clever>
pie_[bnc]: if you do "${./foo}", and then the module runs toString on the value, the "${ already copied to the store
<clever>
evanjs: modulesClosure should be given the same kernelPackages the kernel came from, to ensure the symbols line up
<clever>
pie_[bnc]: it will be copied automatically, yep
<clever>
pie_[bnc]: if you want it copied to the store, dont use toString
<clever>
evanjs: 2nd, the kernel nix builds doesnt actually boot, so i must use the impure kernel, havent narrowed down which .config is to blame
<clever>
evanjs: 2 main reasons for that, 1st: i'm impurely building a kernel in nix-shell for speed, and getting those modules back into the pure nixos is difficult
<clever>
evanjs: the open firmware is currently cheating the whole module problem, by just never using modules, everything is baked into the kernel
<clever>
that shell script must then do something with it
<clever>
evanjs: this will replace the @modulesClosure@ in stage-1-init.sh with the path
<clever>
sarna: what is the last thing the install script printed?
<clever>
sarna: what does `ls -ltrha` in your home folder end with?
2020-02-11
<clever>
bougyman: you may need to install tmate with systemPackages instead of nix-env
<clever>
sondr3: in your case, its haskellPackages.ghcWithPackages so you want haskellPackages.callPackage
<clever>
,callPackage sondr3
<clever>
DigitalKiwi: the rest is probably fine
<clever>
DigitalKiwi: by including the version in the fetch's name, you force a re-fetch, which will cause the sha256 to fail, and then the problem is noticed
<clever>
DigitalKiwi: by default, fetchFromGitHub uses name="source";, and if the name and sha256 match a previous copy, it wont re-fetch, causing you to build version 5, with version 4's source!!
<clever>
DigitalKiwi: add a `name = "irc-core-${version}";` to the `fetchFromGitHub`
<clever>
DigitalKiwi: can you gist your code?
<clever>
DigitalKiwi: name is generated by pname + version, but thats not the fixed-output drv
<clever>
DigitalKiwi: and you want to ensure that version is in the .name of the fixed-output derivation
<clever>
DigitalKiwi: yeah, thats why i also showed how to get the version
<clever>
eoli3n: you can also run patchShebangs on nix, to patch them at install time
<clever>
eoli3n: you can also use #!/usr/bin/env bash, and they will work on nixos and others
<clever>
eoli3n: you can still use a #!, just use an absolute path, #! ${bash}/bin/bash
<clever>
there it is, lol
<clever>
> haskellPackages.glirc.src
<clever>
> haskellPackages.glirc.version
<clever>
displaylink depends on evdi
<clever>
cannot build derivation '/nix/store/lrv6ar06rnnsjikbcszcg8bp8rl21gma-displaylink-5.2.14.drv': 1 dependencies couldn't be built
<clever>
builder for '/nix/store/1604afggw500by35jqzjjyyr36i3jr6z-evdi--unstable-20190116.drv' failed with exit code 2
2020-02-09
<clever>
CRTified: by default, ues
<clever>
CRTified: activation scripts are run in series, during very early boot, while systemd services can run in parallel
<clever>
CRTified: i would do that from the prestart of whatever systemd service needs the secret
<clever>
cole-h: try adding a syntax error like an extra ; to it, and see if it notices or not
<clever>
Thra11: f gets ran on every key/value pair, and the return value becomes the new value at that pair
<clever>
elux: and then use ++ to append that to another list
<clever>
> lib.optional false 42
<clever>
> lib.optional true 42
<clever>
elux: make a hostname.nix file, that sets all of the conditional stuff, and the hostname
<clever>
elux: also, you dont want to make your config conditional on hostname, you want to do it the other way around
<clever>
elux: this will return a special attrset, which gets translated into { system = mkIf condition ...; }, allowing nixos to figure out what config.boot is, while lazily ignoring config.system for the moment
<clever>
Twey: try the nixos test framework, it uses qemu
<clever>
Twey: what exactly is it testing?
<clever>
Twey: its also impure to be using setuid binaries during a nix build
<clever>
fooooojasdflkj: what you want, is mkIf, config = lib.mkIf true { ... }; inside all modules, and then just change the condition
<clever>
fooooojasdflkj: and mkMerge takes a list of sets, not 2 sets as seperate args
<clever>
fooooojasdflkj: mkMerge returns an attribute set, which the module framework will then merge at a later time
<clever>
fooooojasdflkj: if your passing it to a nixos option, you want mkMerge
<clever>
evanjs: nice!
<clever>
evanjs: `write error`
<clever>
evanjs: how large is the initrd file, how much ram to the vm?
<clever>
evanjs: out of ram?
<clever>
evanjs: how does it die?
<clever>
simukis_: ah oops, was just pulling that out of my sqlite history
<clever>
eoli3n: you could try to just `nixos-rebuild build` to make it build again and show the output
<clever>
eoli3n: nix doesnt record information about failed things, only successfull things
<clever>
failed to build*
<clever>
eoli3n: if it fails to boot, then it never applied, so there is nothing to rollback
<clever>
yeah, thats also viable, but can be spammy if you have many such paths, or your machine is too fast and copies it quickly
<clever>
simukis_: after that warning occurs, the problematic path will be at the bottom of the list from that query (if its >512mb)
<clever>
simukis_: this shows all paths in /nix/store, sorted by when they got added, and filters to those >512mb
<clever>
sqlite> .header on
<clever>
sqlite> select path,narSize/1024/1024,datetime(registrationTime,'unixepoch') from ValidPaths where narSize > (1024*1024*512) order by registrationTime limit 15;
<clever>
evanjs: looks like your initrd doesnt contain a valid /init
<clever>
ma27[m]: i have some php-fpm code somewhere
<clever>
deni: correct
<clever>
deni: yeah, you would need your own private ca for local domains
<clever>
deni: but if plain http doesnt work (such as the dns being wrong), it will retry until you use up the ratelimit, and can ban you for 3 hours
<clever>
deni: nixos will host a file over plain http, and then use that to validate
<clever>
deni: it can help to ensure the dns is working before you do that
<clever>
deni: yep
<clever>
yeah
<clever>
deni: and ive mostly just been porting it over without properly fixing it
<clever>
deni: the stuff on my nas predates me learning nix, and is still a mess of files spread over 3 machines
<clever>
deni: instead, you do `documentRoot = ./foo;` in the nix, and nix will copy foo for you, and put /nix/store/hash-foo into the nginx config file
<clever>
deni: you dont
<clever>
evanjs: so console=ttyS0 null-routed all output
<clever>
evanjs: sounds like you just didnt have the qemu serial port wired up
<clever>
evanjs: try removing the console=?
<clever>
evanjs: try using an unmodified kernel?
<clever>
nikola_i: you must use the name from `nix-env -q` when you `nix-env -e <name>`
<clever>
see if its moving any
<clever>
evanjs: you can also try checking the addr multiple times, and cont after each check
<clever>
evanjs: try using continue in gdb, then ctrl+c it after a bit, once qemu's gfx show signs of linux booting
<clever>
evanjs: is this after linux has started to boot, or was qemu told to halt very early on?
<clever>
evanjs: what addresses are you seeing?
<clever>
nikola_i: `nix-env -e youtube-dl` to remove that one
<clever>
evanjs: now try `bt` in gdb
<clever>
evanjs: you dont need debug symbols, just normal symbols
<clever>
nikola_i: what does `type youtube-dl` report?
<clever>
evanjs: jam it into system.build (a nixos option), and then reference it the same way i did