<clever>
Shados: if you want to force the entire build to happen remotely, you can use tricks like nix-instantiate, nix-copy-closure the drv over, nix-store -r the drv remotely, then nix-copy-closure the result back
<clever>
Shados: nix doesnt know which things are going to build locally, which remotely, and which on a different remote slave
<clever>
Church-: not likely, but i have gotten ghc to max out 32gig, lol
<clever>
Church-: it might be low on ram
<clever>
samueldr: my original plan, was to auto-generate dns and dhcp config, to assign IP's to macs, and map names to ip, and back
<clever>
samueldr: it can do things like generate a PTR record for dns
<clever>
samueldr: this allows you to manipulate IP's (v4 and v6) in nix
<clever>
samueldr: it may suddenly sprout another 4 ways of booting nixos, lol
<clever>
disasm: i just run wpa_passphrase as root, and restart the service!
<clever>
samueldr: ive been avoiding NM like the plague :P
<clever>
Church-: ethernet is much simpler, and dhcpcd will auto-detect the moment you insert any cable
<clever>
Church-: you can still connect to open and wep networks without wpa_supplicant
<clever>
Church-: wep or wpa?
<clever>
Church-: when the gpu drivers on my desktop die, X crashes hard, and if i attempt to restart X, the entire machine crashes, even harder
<clever>
what about the journal?, `journalctl -u display-manager`
<clever>
that should start x11, and launch a login manager
<clever>
Church-: what error did you get?
<clever>
jonreeve: nix-env -i ./result
<clever>
samueldr: in theory, you could take my haskell-init idea, and just forkIO every single process on the machine, and run your entire distro from pid 1, lol
<clever>
the fun part, is loading firmware, without udev
<clever>
samueldr: one of my gentoo stage1's did network boot, over wifi
<clever>
samueldr: i'm not counting the pre-nix stage1's i did in gentoo
<clever>
it was VERY noticable when i accidentally plugged it into a usb 1.0 hub
<clever>
hard drive optional! :P
<clever>
samueldr: everything, including $HOME
<clever>
if i wanted anything to persist, i had to tar it up and put it back on the usb, at shutdown
<clever>
worldofpeace: for several months, i lived like that, entirely in ram :P
<clever>
worldofpeace: ive messed around with that before on gentoo, created a custom initrd that let me tar up the tmpfs and persist it to the next boot
<clever>
Church-: just go thru the normal install procedure, but use the blockdev of your usb stick, not a sata disk
<clever>
Church-: yep
<clever>
then you can just nixos-rebuild and changes persist
<clever>
samueldr: thats why i prefer installing to a usb, rather then using the iso
2018-10-11
<clever>
maybe with a way to escape the ${sep}
<clever>
samueldr: all i can think of is to improve the description, description = "string seperated by ${sep}";
<clever>
lol
<clever>
i tend to get obsessed with how things work, and devour the entire source tree :P
<clever>
ive memorized the whole source tree and was expecting to find that in lib/types.nix
<clever>
samueldr: lines runs the separatedString function, which returns a set with description = "string";
<clever>
that was back before hnix, so i had no easy way to convert to/from configuration.nix and a treeview
<clever>
you have a standard treeview, which dynamically shows the description at the bottom, and you can add the selected option to the tree on the left
<clever>
samueldr: this is part of my old nixos-installer idea, it would build that json file, from the current channel, and then render the options as an interactive tree
<clever>
bgamari_: but if you do `sandbox = relaxed`, then fixed-output derivations get full access to any world-readable file on the host, without having to request anything special
<clever>
bgamari_: ive also discovered, that if you do `sandbox = on`, fixed-output derivations are still in a mount namespace, and only get network
<clever>
bgamari_: __noChroot is the special key in the drv
<clever>
bgamari_: if you set `sandbox = relaxed` in nix.conf, then you can put a special tag in your derivation to disable it
<clever>
yep
<clever>
Berra: nix strips any trailing /'s from paths
<clever>
Berra: path + "/../dir2"
<clever>
o1lo01ol1o: nope
<clever>
Church-: oh, and my battery is more external, and i can swap it while the machine is on
<clever>
so the laptop could be as wide or narrow as they want, and still use the same board
<clever>
all of my ports on the right side are on a daughter board with an extension cable, lol
<clever>
o1lo01ol1o: yep, i have a branch with that fix
<clever>
o1lo01ol1o: simpler to just paste the error your getting
<clever>
o1lo01ol1o: hydra can fail to build if your nix version isnt right, i had to patch that to hndle an older nix
<clever>
Judson: what about passthru, rather then passThru ?
<clever>
Judson: and nix repl lets you eval things directly
<clever>
Judson: thats probably reading it at nix time, run `nix show-derivation` on the .drv thats failing, to see what nix generated in the string
<clever>
patch*
<clever>
o1lo01ol1o: look at what the package is doing exactly, does it check for a file like .version? and then either provide that, or pach what its doing
<clever>
steam-run doesnt include everything, so it might still fail due to something missing
<clever>
bitmapper: if they need the same dependencies, yeah
<clever>
o1lo01ol1o: and some packages try to run `git rev-parse HEAD` to figure out what version they are building
<clever>
o1lo01ol1o: fetchFromGitHub doesnt keep the .git directory
<clever>
Judson: attributes in the passthru section only apply at the nix level, and dont exist at build time
<clever>
overrideAttrs changes the set that was passed to mkDerivation
<clever>
override changes the params at the callPackage level, what gets passed on line 1
<clever>
if your trying to do things with an override of some kind
<clever>
schmittlauch[m]: you want overrideAttrs, not override
<clever>
aleph-: not sure, simplest way to find out is to set it to false and see if it fails
<clever>
kiloreux_: or just nix-instantiate
<clever>
> hello.drvPath
<clever>
Ke: values on the right side have priority, so that will overwrite the "override" value if seb_b contains a .a
<clever>
drakonis: yeah, you would want to avoid justdoit in that case, and just drive it manually, normal lvcreate/fdisk/mount/nixos-install
<clever>
keep in mind that nixos will probably overwrite the fedora bootloader, and you would need to add a boot option to boot it again
<clever>
then just continue with the normal install directions from the manual
<clever>
if you want to use lvm for your install, you will need to run lvcreate, and then mount the nixos rootfs to /mnt, and also mount your chosen boot partition to /mnt/boot
<clever>
i dont think it has an off button
<clever>
lvm is enabled automatically in the initrd
<clever>
you can then do whatever nixos things you want from there
<clever>
the machine is now running nixos, from a ramdisk, and the previous os has essentialy had an improper shutdown
<clever>
then i scp the tar up to a victim machine, unpack it to / and run the bash script
<clever>
in this example session, i build a tarball containing a bash script, kexectools, and a kernel+initrd
<clever>
kexec lets you just boot a given kernel+initrd, without having to shutdown or mess with any bootloader stuff
<clever>
a nix file must have a single value at the top level
<clever>
aleph-: and the file that loads this did what?
<clever>
aleph-: can you pastebin the exact contents that failed when you did python36Packages.requests ?
<clever>
yeah
<clever>
aleph-: re-importing a new copy of nixpkgs in each file will harm performance
<clever>
aleph-: it would be better to accept pkgs as an argument with `pkgs:` or `{ pkgs }:`
<clever>
,tofu
<clever>
and if you reused the hash of another derivation, it gives you that other source
<clever>
judson: it takes the sha256 you give it, computes what the output path is, and then check the cache for a pre-made copy
2018-10-10
<clever>
judson: did you update the hash correctly?
<clever>
so you need another nix expression that does: let pkgs = import <nixpkgs> {}; in import ./common.nix pkgs
<clever>
nix-env doesnt provide that
<clever>
the pkgs: defines it to be a function, that accepts a set of packages
<clever>
those are strings...
<clever>
aleph-: that is a list of strings, not a list of packages
<clever>
,pills
<clever>
{ is the start of a set, which must contain key=value; pairs
<clever>
yeah
<clever>
{ [] } isnt valid either
<clever>
and due to the `with pkgs;` nearby, you can just do [ python36 micro etc ]
<clever>
{ pkgs.[ "python36" "micro" "etc" ] } is not valid nix
<clever>
maybe, lol
<clever>
many ways to get it done
<clever>
you could also just use modules, create a new file, that looks similar to configuration.nix, and does users.users.aleph.packages = [ pkgs.foo ]; and then just imports = [ ./newfile.nix ];