2018-02-07
22:07
<
clever >
Ndrei2: one method ive had luck with before, recreate the old partitions, guessing at sizes, and confirm with blkid, make sure your partition editor doesnt try to wipe old FS's out
20:08
<
clever >
gchristensen: add this to both the kexec image and the final install
20:07
<
clever >
gchristensen: one minute
20:07
<
clever >
gchristensen: are you on digital ocean?
20:07
<
clever >
gchristensen: nothing currently to read things like /etc/network/interfaces
20:01
<
clever >
gchristensen: thats something i always forget to do, let me see...
19:55
<
clever >
mojjo: what error happens when you try to cat it?
19:43
<
clever >
hyper_ch: looks related to nixpkgs, try nix-channel --update
19:42
<
clever >
which one?
19:31
<
clever >
any unused arguments are silently ignored
19:30
<
clever >
Lisanna: for each attribute in the -A, it will try to apply all --arg's to the function, if it is a function
19:26
<
clever >
Lisanna: --arg does weird things in combination with -A
2018-02-06
12:20
<
clever >
srhb: i cant think of any other easy ways
12:19
<
clever >
sphalerite_: that forces nix to intern all of nixpkgs, while mine keeps it as a path
12:19
<
clever >
srhb: oops, ^^
12:19
<
clever >
sphalerite_: pkgs.path + "/nixos"
10:39
<
clever >
freeman42x[NixOS: ^^
10:38
<
clever >
nix-repl> stdenv.mkDerivation
09:28
<
clever >
asdfjkljkl: and grub will use that
09:28
<
clever >
asdfjkljkl: then you must create a bios boot partition, 1mb, no filesystem, dont mount it
09:26
<
clever >
asdfjkljkl: are you using EFI?
09:23
<
clever >
asdfjkljkl: gpt or mbr, and are you using efi?
08:30
<
clever >
pie_: only if the cmakelists.txt file says how to install things
07:26
<
clever >
tilpner: you could change -I nixpkgs=foo
07:25
<
clever >
jluttine: read the grub config file in /boot
07:25
<
clever >
jluttine: correct
07:25
<
clever >
pie_, tilpner: -p loads nixpkgs for you, so nix-shell -p '(callPackage ./. {})'
07:24
<
clever >
jluttine: after you collect garbage, you have to get nixos to rebuild the bootloader menu, run nixos-rebuild switch
06:21
<
clever >
and then the directory has the "list" of files
06:21
<
clever >
bsima: you can also put an overlay.nix in a certain directory
06:13
<
clever >
bsima: oh, and the overlays.nix file should contain a list of overlays
06:12
<
clever >
bsima: what is the 1st line of your overlay?
06:12
<
clever >
neonfuz: is there a boot flag you can set, or a sysctl?
05:33
<
clever >
yeah, probably mkBefore
05:32
<
clever >
i think if several things have an override level of 50, they merge together, and only the 50's apply, ignoring the 1000's?
05:32
<
clever >
there is order, and override
05:32
<
clever >
or rather, 1000 is for a seperate thing
05:31
<
clever >
and 1000 is the default
05:31
<
clever >
and there are presets for 500 and 1500, called before and after
05:31
<
clever >
and the mkOrder ensures that the microcode is always 1st in that list of things to prepend
05:30
<
clever >
a list of things to prepend to the initrd
05:30
<
clever >
.prepend is an option
05:30
<
clever >
it will sort everything assigned to boot.initrd.prepend by the order, and then merge
05:29
<
clever >
mkOrder can do that
05:28
<
clever >
you usually turn off whatever was setting the thing you dont want
05:28
<
clever >
in an env variable
05:28
<
clever >
mkaito: i think it will use : to seperate when merging
05:27
<
clever >
mkaito: yeah, the type is a list of str
05:26
<
clever >
but it is possible to overwrite the entire thing with things like mkForce
05:26
<
clever >
removing a value isnt easy
05:25
<
clever >
commas itses ","
05:24
<
clever >
mkaito: the lines type uses "\n" to seperate the values, list just concats each list
05:24
<
clever >
mkaito: all types have a merge function on them, that deals with merging duplicate definitions
05:23
<
clever >
it depends on the type
04:56
<
clever >
mkaito: have you seen the nix pills series?
04:02
<
clever >
"rm result/" tries to delete the directory the link points to
04:01
<
clever >
"rm result" deletes the symlink
04:01
<
clever >
"rm result", not "rm result/"
04:01
<
clever >
depends on who owns the directory where result is
04:01
<
clever >
and the missing result link allows it to be GC'd
04:00
<
clever >
nix knows where the result symlink is/was
04:00
<
clever >
it will be deleted later when you do a garbage collection
03:59
<
clever >
pie__: rm result
03:17
<
clever >
nixos doesnt know to reload modules
03:17
<
clever >
ivanivan: you need to do rmmod, then modprobe
02:29
<
clever >
genesis: you need to increment a digit on the hash
02:25
<
clever >
genesis: if you supply that flag, it switched to fetchgit behind the scenes
02:25
<
clever >
genesis: it does
02:13
<
clever >
nahamu: yeah, those look fine, i also modified it like that so you could easily .overrideDerivation more flags in
01:19
<
clever >
and the kvm feature
2018-02-05
23:52
<
clever >
dhess: i had issues with timing sensitive protocol tests failing because the machines clocks got out of sync
23:49
<
clever >
dhess: but aws is coming out with baremetal instances soon
23:49
<
clever >
dhess: EC2 is virtualized, so kvm fails
23:47
<
clever >
samueldr: if qemu can find /dev/kvm, it will force kvm usage, and then hard-fail if vbox has claimed the mutex
23:46
<
clever >
cant think of anything else then
23:45
<
clever >
Baughn: ls -l /dev/kvm
23:45
<
clever >
Baughn: is kvm enabled?
23:30
<
clever >
of it colliding*
23:30
<
clever >
there is a very very low chance of it being invalid
23:30
<
clever >
genesis: i just increment one of the digits in the hash when i know it should be invalid
23:22
<
clever >
so your not changing the right inputs for fetchgit
23:22
<
clever >
if its not re-running fetchgit, then nix believes the output would have been identical
23:22
<
clever >
genesis: also, there is no point in trying to delete stuff like that in the first place
23:20
<
clever >
and dont use the --force flag, that can break the entire system
23:20
<
clever >
also, try using that on the above path, so nix knows its gone
23:20
<
clever >
that tells nix that it has been removed
23:20
<
clever >
always use "nix-store --delete" to delete things
23:19
<
clever >
nix thinks the file still exists, so it tries to just access it
23:19
<
clever >
genesis: have you had an improper shutdown recently?
23:18
<
clever >
genesis: what does nix-store -qR say when ran on that path?
20:33
<
clever >
you can use /ssh_pubkey to maintain access, without re-generating a new initrd for each user
20:33
<
clever >
sphalerite: gchristensen: the kexec_nixos script will also modify the initrd, to embed your ssh key into things, have you been using that?
20:32
<
clever >
sphalerite: :D
20:30
<
clever >
sphalerite: nohup or screen can be used to disconnect things
20:30
<
clever >
Baughn: so you can verify the install works
20:29
<
clever >
Baughn: also, qemu_test2 will then boot the machine with the same hdd, but without the install media
20:29
<
clever >
tweak that to use bcache, and your basically done
20:29
<
clever >
and it includes the justdoit script that installs nixos
20:29
<
clever >
configuration.nix in that directory defines what is in the ramdisk
20:28
<
clever >
Baughn: if you build the qemu_test attribute, and then run qemu_test1, it will boot the installer from a ramdisk
20:28
<
clever >
Baughn: one min
20:23
<
clever >
thats explained in the ssh man page
20:22
<
clever >
ive just been doing <enter>~.
20:22
<
clever >
gchristensen: ah, and then ssh fails faster?
20:20
<
clever >
that would intern and hash the source in the store and still be safe
20:15
<
clever >
hard to say without reproducing the problem first
20:14
<
clever >
so nix wont rebuild things when the file changes
20:14
<
clever >
but the file wont be hashed
20:14
<
clever >
pie__: if you try to access a file like /home/foo/bar inside a build script, it will just work
20:13
<
clever >
or wasting hours rebuilding things that had impurities in them
20:12
<
clever >
pie__: its also a small performance hit
20:12
<
clever >
pie__: set nix.useSandbox = true; in configiration.nix
20:11
<
clever >
its off by default
20:11
<
clever >
pie__: if you keep sandboxing on, such things just break, and then you cant do things wrong
20:11
<
clever >
pie__: sounds like you have sandboxing turned off, and an impurity is doing nasty things
20:01
<
clever >
chisui: where every library is built to match the version your stack and cabal files listed
20:01
<
clever >
chisui: there is also stack2nix, which will scan a stack file, and generate a nix expression that returns a custom haskellPackages
19:58
<
clever >
my original use for that was to edit generic-builder.nix
19:58
<
clever >
dhess: this uses the un-modified ghc in one nixpkgs (where you may override base, i think), to create a 2nd ghc, and then builds a haskellPackages around it
19:56
<
clever >
but then you need 2 nixpkgs branches
19:56
<
clever >
i have gotten it down to 1 ghc rebuild
19:55
<
clever >
it is avoidable :P
19:55
<
clever >
but youll need to rebuild ghc 2 or 3 times
19:55
<
clever >
which will control base, in every package set
19:55
<
clever >
dhess: which will impact the upper layers, that are used to build ghc
19:55
<
clever >
dhess: if i use an override to create pkgs.overrides, then the callPackage that loads every haskell packages would pass it in
19:54
<
clever >
dhess: then i realized, if i make an override to the package "overrides", it might work, lol
19:54
<
clever >
dhess: i was just thinking, how could i apply an override to every haskell packages at once
19:53
<
clever >
there are a few core packages like that, that are locked in
19:53
<
clever >
dhess: base cant be changed with overlays, due to how its built
19:36
<
clever >
ambro718: if you turn nix sandboxing off globally, then the network will be enabled
19:35
<
clever >
ambro718: ive done a little bit with sbt, but ive found it to be a bit broken in nix right now, under darwin, sbt doesnt even include java, so it fails, with exit code 0, lol
19:35
<
clever >
ambro718: and you cant pre-download the files using fetchurl, then point sbt at that?
19:33
<
clever >
ambro718: why do you want network access?
19:33
<
clever >
chisui: hydra should still be building them
19:32
<
clever >
chisui: all the versions are set in nixpkgs, and dont change
19:32
<
clever >
chisui: and cabal2nix cant change what versions you actually get
19:29
<
clever >
ah, didnt know about that part
19:24
<
clever >
and it helps if you know what the package name starts with
19:24
<
clever >
ixxie: just run nix-repl '<nixpkgs>' then type in pkgs.<tab><tab>
19:24
<
clever >
ixxie: i prefer tab-completion inside nix-repl
19:19
<
clever >
chisui: this would use 8.2.2
19:19
<
clever >
nix-repl> haskell.packages.ghc822.callPackage
19:18
<
clever >
chisui: it depends on which haskellPackages set you use to load the resulting expression
19:18
<
clever >
chisui: cabal2nix doesnt care, and cant control that
19:01
<
clever >
kini: also, why are you using nix inside the nix shell?, the nix-shell should just do everything you need in one step
19:01
<
clever >
kini: nix-shell might block .bashrc, because its not pure
18:58
<
clever >
kini: when things like your original $PATH leak things that cause breakage
18:57
<
clever >
hyper_ch: maybe
18:57
<
clever >
kini: yeah, --pure wipes all env vars
18:56
<
clever >
and there is no nix left by then
18:56
<
clever >
that process only gets involved after the eval is finished
18:56
<
clever >
the stuff nix downloads isnt covered
18:55
<
clever >
but that only works for the eval inputs
18:55
<
clever >
then use ssh based URL's in the hydra inputs
18:55
<
clever >
dhess: change to this user, then ssh-keygen, no passphrase, and give it access on github
18:55
<
clever >
[root@nas:~]# sudo -u hydra -i
18:55
<
clever >
dhess: just `hydra`
18:54
<
clever >
dhess: yep
18:51
<
clever >
id just manually make the directory and give hydra ownership of it
18:51
<
clever >
hydra doesnt use sudo, so the wheel group makes no difference
18:50
<
clever >
TonyTheLion: nothing looks wrong, but why is the hydra user in the wheel group?
18:47
<
clever >
TonyTheLion: can you pastebin your current configuration.nix file?
18:45
<
clever >
TonyTheLion: what did you do to enable hydra and install it?
18:44
<
clever >
TonyTheLion: that option has no effect on the current problem
18:44
<
clever >
how did you configure hydra?
18:42
<
clever >
how did you configure hydra?
18:42
<
clever >
and what user is hydra-server running as?
18:41
<
clever >
TonyTheLion: what user owns /var/lib/hydra/ ?
16:37
<
clever >
TonyTheLion: i gave the exact path to it
16:36
<
clever >
not sure where the example.com came from then
16:34
<
clever >
TonyTheLion: and what is with line 5??
16:34
<
clever >
TonyTheLion: that paste is configuration.nix, not nix.conf
16:21
<
clever >
TonyTheLion: what is in your /etc/nix/nix.conf?
01:50
<
clever >
nahamu: there should be nixos config fragments in the release.nix
01:50
<
clever >
nahamu: you need to set the nixpkgs.overlays option in the nixos config
01:47
<
clever >
pie_: and the main downside with that method, is that your now importing nixpkgs 3 times, and that slows the eval down some more
01:46
<
clever >
pie_: it helps if you put a .nix extension on the file in gist, and it does allow renaming via the edit button
01:45
<
clever >
pie_: which part of it?, the nixpkgs on line 7-ish needs the config value
01:44
<
clever >
nahamu: the nixos instances in release.nix tell nixpkgs to not load overlays from the environment
01:42
<
clever >
thats what i do
01:42
<
clever >
you could also just give in and use nixos-unstable for everything :P
01:41
<
clever >
only rstudio will be using a different qt
01:38
<
clever >
so now the unstable.rsudio, is using stable QT
01:37
<
clever >
instead of putting the override into stable, and its all stable, except boost&qt
01:37
<
clever >
now, i'm putting the override into unstable, and i'm forcing it to use everything unstable, except the QT
01:37
<
clever >
pie_: see what i swapped in this latest diff?
01:36
<
clever >
let me edit the gist a bit more
01:35
<
clever >
we can also do the reverse
01:24
<
clever >
look at what -A did
01:24
<
clever >
the only attribute inside there, takes 1 arg, and returns a string, using all 3 args
01:24
<
clever >
the only attribute inside there, takes 1 arg, and returns another set
01:24
<
clever >
line 5 defines a function that takes 1 arg, and returns a set
01:23
<
clever >
also, --arg does things you would never have expected
01:22
<
clever >
if its a function, it calls it with the args set via --arg
01:22
<
clever >
nix-shell works with both
01:22
<
clever >
because if i override boost on 4, and pass that config to nixos on 8, EVERYTHING that uses boost has to rebuild, with the unstable boost
01:22
<
clever >
also, line 4 is passing boost directly to rstudio, rather then overriding boost
01:21
<
clever >
now its just a single let block, which returns a derivation, and accepts zero arguments
01:20
<
clever >
if you remove that...
01:20
<
clever >
its complicated by the fact that shell.nix accepts 2 package sets
01:19
<
clever >
and when you call the function on line 8, it returns the derivation on line 43
01:19
<
clever >
so in the end, nix returns the function defined on line 8
01:19
<
clever >
lines 9-42 have the main body, and 43-50 is the "value" where they can apply
01:18
<
clever >
which itself, contains a second let statement
01:18
<
clever >
and that is inside another function definition, whose body is on lines 9-50
01:18
<
clever >
line 8 calls that function on the unstable set, to create the config, then passes it to stable
01:18
<
clever >
line 2 defines a function, that accepts the unstable package set, and returns some overrides
01:18
<
clever >
line 1-7 defines the let statements, and line 8 onwards is the "value" where they apply
01:17
<
clever >
at the top leve, you have a let block
01:17
<
clever >
edited the gist again, though its a bit more twisty now
01:13
<
clever >
can you gist your current config?
01:13
<
clever >
and the body of the function is another let block
01:13
<
clever >
that defines an entirey pure config set, then defines a function, which can refer to config
01:12
<
clever >
you can also do let foo = bar in { ... }: let more = stuff; in stufffff
01:06
<
clever >
and you dont need the thing in the with the wrapper in the last pastebin
01:06
<
clever >
the stable wrapper, then uses the unstable studio
01:06
<
clever >
this sets the package overrides for the stable nixos, to mutate the rstudio to be unstable
01:06
<
clever >
then nixos ? import <nixos> { inherit config; }
01:05
<
clever >
config = { packageOverrides = pkgs: { rstudio = pkgs.callPackage <unstable/pkgs/applications/editors/rstudio> {};
01:04
<
clever >
which is done by setting the config.packageOverrides of the nixpkgs rstudioWrapper comes from
01:04
<
clever >
so you need to override the rstudio that is passed to rstudioWrapper
01:04
<
clever >
rstudioWrapper takes rstudio as an input
01:04
<
clever >
16935 rstudio = libsForQt5.callPackage ../applications/editors/rstudio { };
01:04
<
clever >
11778 rstudioWrapper = callPackage ../development/r-modules/wrapper-rstudio.nix {
01:04
<
clever >
yeah, i see the problem
01:03
<
clever >
oh, maybe thats in
01:02
<
clever >
i think i see the issue
01:01
<
clever >
which makes things more predictable
01:01
<
clever >
by passing it a set with config, it will ignore your config.nix
01:01
<
clever >
import <unstable> { config = {}; }
01:01
<
clever >
another thing that can cause problems, and you may want to try
01:00
<
clever >
so you could unstable.path + "/pkgs/development/r-modules/wrapper-rstudio.nix"
00:59
<
clever >
also, pkgs.path is the path the pkgs came from
00:59
<
clever >
but then you also have to put the full path on the callPackage lines
00:58
<
clever >
and skip the NIX_PATH entirely
00:58
<
clever >
you can also just fo unstable ? import /path/to/unstable {}
00:56
<
clever >
pie_: what are the contents of shell.nix?, and the exact nix-env command you ran?
00:55
<
clever >
pie_: what did you nix-env?
00:41
<
clever >
try experimenting with just rstudio, and see what happens
00:40
<
clever >
that would look for a development directory, one up from where your config.nix is
00:39
<
clever >
so you might get away with just one
00:39
<
clever >
the override mutates whats in the pkgs set, which is fed to everything else
00:39
<
clever >
you will need to override one, or maybe both of them
00:38
<
clever >
unstable being a placeholder for whatever you called the channel in nix-channel --list
00:38
<
clever >
change it into an override, rstudio = pkgs.libsForQt5.callPackage <unstable/pkgs/applications/editors/rstudio> {}
00:37
<
clever >
then use stable as the root
00:37
<
clever >
so you have to mix them together, with an override that always uses unstable for rstudio
00:37
<
clever >
but i think you said you wanted the version of rstudio in unstable?
00:37
<
clever >
so you have to nix-env -iA stable.rstudio
00:36
<
clever >
pie_: and if that doesnt match the QT of everything else, kaboom
00:36
<
clever >
pie_: if you do nix-env -iA unstable.rstudio, it will use unstable's version of QT
00:30
<
clever >
simpson: all QT apps you install must come from the same nixpkgs rev, then it will work
00:29
<
clever >
pie_: youll want to model it on how rstudio is loaded in all-packages.nix
00:29
<
clever >
pie_: then if you do nix-env -iA stable.rstudio (using the name of stable from nix-channel --list), it will use that channel for the qt libs
00:29
<
clever >
pie_: which will always grab the rstudio/default.nix from unstable, but then eval it against the current nixpkgs
00:28
<
clever >
pie_: so you could do rstudio = pkgs.callPackage <nixpkgs-unstable/pkgs/foo/bar/rstudio> {};
00:28
<
clever >
pie_: that would be a bit tricky, but when you do import <foo>, it loads the channel called foo
2018-02-04
22:34
<
clever >
ivanivan: should be minor
22:30
<
clever >
but kernel modules are a grey zone, elf, dynamicaly, linked, but not your normal .so
22:30
<
clever >
ivanivan: aha, line 16 checks if its an elf file, and skips non-elf files
22:28
<
clever >
ivanivan: dontPatchELF would also let you disable it, if you cared to
22:27
<
clever >
and kernel modules just arent supported, so it prints a warning and ignores it
22:27
<
clever >
ivanivan: this just blindly tries to run patchelf --shrink-rpath on everything
22:19
<
clever >
nothing can be writeable
22:19
<
clever >
ivanivan: after the build job finishes, the nix daemon will sanitize the entire output
22:08
<
clever >
{ stdenv, metakit }:
22:08
<
clever >
the same as any other input
22:08
<
clever >
because its longer, and you have to put the name in twice
22:07
<
clever >
iqubic: its the same as { metakit = metakit; };
22:07
<
clever >
iqubic: all that does is allow the other package to depend on metakit
22:05
<
clever >
iqubic: can you link what you have right now?
21:49
<
clever >
so if your firmware cant boot nvme, grub has no way to open nvme, even if you can somehow boot the grub via other means
21:49
<
clever >
all grub can do, is make use of the nvme drivers, in the board firmware
21:49
<
clever >
grub technically has zero support for nvme drives