2016-12-30

<clever> i alredy have 16gig of ram and 8 cores
<clever> lol
<clever> which is usualy the one i was just using
<clever> it still saves them to the master list, but its anoying when it saves the wrong window
<clever> even it i changed windows after clicking the button
<clever> it consumes whatever window is active, when it gets the button event
<clever> i'm testing one-tab right now, and its already getting buggy
<clever> eacameron: it is up to 21gig of swap used so far...
<clever> the problem isnt the browser, its the number of open tabs
<clever> eacameron: once chromium starts responding and lets me, lol
<clever> let me pull up a nix file...
<clever> how 2 systems with an equal number of cores compare to eachother in terms of speed
<clever> eacameron: ah, i believe one is the max-jobs, and the other is the speed factor
<clever> eacameron: i think its /etc or /etc/nix
<clever> gchristensen: yep

2016-12-29

<clever> yeah, -I will override $NIX_PATH
<clever> i would expect that to work as well
<clever> not sure what the cause could be then
<clever> does 'git diff' show any changes that could impact webkit?
<clever> should be identical to release-16.09's channel
<clever> rly: which revision is checked out in that dir?
<clever> systemd could be fighting you more
<clever> there is no way to do this during the initrd
<clever> and systemd gets in the way once more!
<clever> systemd.additionalUpstreamSystemUnits = optional config.boot.tmpOnTmpfs "tmp.mount";
<clever> and i can confirm tmpOnTmpfs breaks it
<clever> but the neededForBoot stuff gets bumped to the front of the queue, and /tmp may get left behind
<clever> i believe systemd and related tools will do their best to mount things in the correct order
<clever> ah, i see why
<clever> c74d: hmmm, it wound up in here for me
<clever> [root@amd-nixos:~]# ls -ltrh /tmp/nix-vm.XYAtZeEz7d/xchg/
<clever> then it should mount them in the correct order, within the initrd
<clever> c74d: i think you need to flag /tmp as being needed for boot
<clever> yeah
<clever> id set it to false, and rebuild+re-start the guest
<clever> and xchg goes directly to /tmp/xchg
<clever> -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
<clever> the /tmp/shared mount goes to /tmp/xchg, or $SHARED_DIR if you set that
<clever> -virtfs local,path=${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \
<clever> yeah
<clever> something may have mounted /tmp over /tmp/xchg
<clever> c74d: does /tmp have other mount flags set?
<clever> c74d: those map to folders on the host
<clever> c74d: inside the guest, you should see a /tmp/shared and/or /tmp/xchg i think
<clever> c74d: one sec
<clever> barrucadu: also, look into nix-store --query --roots

2016-12-28

<clever> flxw: so if you boot with boot.debug1mounts, it will drop to a shell inside the initrd, shortly before it does switch_root
<clever> flxw: there is another, let me see

2016-12-27

<clever> so i wanted the ability to just turn slaves on&off at needed, and not have to rebuild-switch constantly
<clever> i was initialy looking into it when i had an arm build slave entirely network booting and running from a ramdisk
<clever> gchristensen: then you could move a slave to whichever hydra needs it
<clever> gchristensen: this option can come in massively useful if you want to dynamicaly change the slaves
<clever> extraEnv.NIX_REMOTE_SYSTEMS = lib.concatStringsSep ":" [ "/etc/nix/machines" "/etc/nix/machines.provisioned" ];
<clever> and that will massively help with costs
<clever> if the permissions could be improved, you could have many untrusted users sharing a single hydra
<clever> so that drives costs up massively
<clever> and you cant share build slaves between hydras, or it wont load balance right
<clever> with the current codebase, yeah
<clever> so you cant just rent out a user&project
<clever> right now, every user has full control of every project
<clever> main thing i would want for that, is better permissions within hydra
<clever> thats handled by a build hook, that comes much earlier in the process
<clever> gchristensen: i think it just tells the slave to build, and its not capable of using substititions
<clever> hydra-queue-runner normaly does substitution checks, as it loads each job and works out what to build
<clever> only if you do import from derivation
<clever> gchristensen: it will probalb need substitutes turned on
<clever> gchristensen: just set the hydra to follow a channel and it can get things from the binary cache
<clever> spacekitteh: that error appears to be happening during nix build, so the FHS env doesnt mean a thing

2016-12-26

2016-12-25

<clever> Mic92: thats new, i'll need to look into it more

2016-12-24

<clever> oleks: wrap what you pasted in ( and )

2016-12-20

<clever> copumpkin: import <nixpkgs/nixos/lib/make-disk-image.nix>
<clever> jazzencat: wpa_passphrase
<clever> copumpkin: this creates a qemu disk image with the whole nixos installed, then the postVM script converts it to a vbox machine
<clever> copumpkin: yes

2016-12-19

<clever> theres a flag you can set to block all PM's from unregistered users
<clever> ah, odd, does it work any better with "nix-shell -p gmp gcc" ?
<clever> adding -p gcc would fix the problem i just noticed
<clever> Armael: inside nix-shell -p gmp
<clever> (when inside the nix-shell)
<clever> Armael: check "type gcc", and compare it to the /run/current-system/sw/bin/gcc symlink, they should differ
<clever> peti, Armael: oh i just remembered, nix-shell -p now has a "dead" gcc in its $PATH, because it used runCommandNoCC
<clever> which may not be something you wanted enabled
<clever> different packages sometimes need different versions of some things, and things sometimes turn stuff on automaticaly if header X is found in the include path
<clever> so you cant just install a library and then compile against it
<clever> its configured to ignore the outputs that have things like headers
<clever> your not supposed to install things like compilers on nixos, thats what nix-shell is for
<clever> so it wont catch things with permission errors
<clever> i was going to say /proc/sys/vm/block_dump, but that only shows things that actualy work
<clever> and thats what $HOME is set to during a build
<clever> Rotaerk: strace is the simplest, strace -ff -o logfiles cabal2nix

2016-12-18

<clever> ToxicFrog: its at ~/.nix-profile/metadata.nix i believe, which lives in /nix/store/ (symlinks)
<clever> ToxicFrog: only thing that isnt managed by /etc/nixos is the list of packages you installed with nix-env -i
<clever> 9 days without an update
<clever> angerman: yeah, same way nix-build does, it just copy-closure's all the inputs to a slave of the right arch, and copy-closure's the finished product back

2016-12-17

<clever> hard to see where the error comes from
<clever> Baughn: do you have a nix expression for context?
<clever> Mic92: and it probably doesnt allow nesting a para in a para
<clever> Mic92: so that </para> is to match up with stuff outside of the string
<clever> Mic92: ah, i see the problem, every nixos option description is enclosed in a <para> pair
<clever> but i grabbed the latest build of nix master by mistake
<clever> my laptop was running a copy of nix from july of 2015, and i had to upgrade it with nix-store -r
<clever> gchristensen: ah, ive had to manualy downgrade nix.db before once
<clever> Mic92: 3 <literal> pairs, then a </para> that never began
<clever> Mic92: strange, the xml is worse with the revert in place

2016-12-16

<clever> but any wheeled mouse would have worked
<clever> in my case, it was a teensy microcontroller setup to emulate a combo keyboard+mouse
<clever> the solution, was to connected a device that claims to be a usb mouse with a wheel, and never touch it again
<clever> the menu's are now 100% imposible to navigate
<clever> and if it gets even 1 wheel down event, it infinitely scrolls to the bottom of the list
<clever> then it gets a wheel up event, and infinitely scrolls to the top of the list, even when i try hitting the down arrow key
<clever> so it thinks i lack a wheel
<clever> in my case, i was using synergy, with zero mice connected
<clever> viric: another more anoying bug i ran into on windows, certain games detect the lack of a mouse wheel, and decide to mess with how the wheel event behaves
<clever> and was easily uninstalled
<clever> said driver was probably having a segfault in kernelspace
<clever> viric: that was the ONLY time i was able to track down the cause and fix it, the mobo vendor has a special driver for the "charging" usb ports
<clever> viric: many years ago, i discovered that if you plug a teensy microcontroller into a usb hub, and into the special charging ports, you get a BSOD
<clever> MichaelRaskin: heh
<clever> viric: months down the road, he starts the convo with 'do you think its my backup software?'
<clever> viric: the user kept reporting that it was broken, they kept asking, "do you have any backup software" and he kept answering no
<clever> viric: and backup software often reads those keys
<clever> viric: that reminds me of a /r/talesfromtechsupport/ post i read a week ago, the software in question would brick itself if you try to read the licensing key files
<clever> jazzencat: the video i linked, is the original sega development console, with specialized hardware to allow you to set breakpoints and inspect the state of the game
<clever> MichaelRaskin: and i think the interactive debugger is raw dos, only windows95 lacks the security that allows dos to control isa cards directly
<clever> MichaelRaskin: and this crazy guy is trying to make a game on it
<clever> MichaelRaskin: the development hardware for the sega genesis? console only works on windows 95
<clever> the linux steam also happens to use breakpad
<clever> yeah, you already have stdenv being passed in, and stdenv.lib is there for this reason
<clever> bachp: just elemAt doesnt work in the repl, havent really checked to see how nix files handle it
<clever> bachp: a lot of nix files also have with lib; (or in this case, with stdenv.lib;) in them, so its just simpler to use the lib version
<clever> bachp: elemAt is a built in, so you can also reference it via builtins.elemAt or __elemAt
<clever> jazzencat: yep
<clever> bachp: ah, id just use the expression i pasted above, its a bit more complex, but the next person to bump the version only has to edit 2 things (the version, and hash)
<clever> bachp: this is my first thought on how to do it
<clever> { versionMajor = "1"; versionMinor = "2"; versionPatch = "3"; }
<clever> nix-repl> let foo = lib.elemAt (lib.splitString "." "1.2.3"); in { versionMajor = foo 0; versionMinor = foo 1; versionPatch = foo 2; }
<clever> bachp: one sec
<clever> jazzencat: for nix-env, you need ~/.nixpkgs/config.nix, the error should give example contents
<clever> jazzencat: configuration.nix only effects nixos-rebuild, it has no effect on nix-env
<clever> until you force the whole name with -A
<clever> jazzencat: and you wont know how to enable unfree, because it doesnt tell you
<clever> jazzencat: one weird thing that always trips up new comers, the nix-env search commands wont show unfree things, until you enable unfree
<clever> jazzencat: not that i know if
<clever> jazzencat: try doing nix-env -iA nixos.vivaldi
<clever> t2: fetchurl should be in the nixpkgs manual
<clever> jazzencat: i always use irssi
<clever> t2: pkgs.fetchurl already does exactly that
<clever> assuming it works anything like bash
<clever> programs.zsh.interactiveShellInit = "source $HOME/.dotfiles/zsh/zshrc";
<clever> toogley: the current code is trying to start a new process, with zshrc (which isnt +x'd), and all variables that sets will be lost when it quits
<clever> toogley: i think you want the source command
<clever> that allows fetching something outside of nix, then adding it to the /nix/store, and getting the hash of it
<clever> t2: and nix-store --add-fixed
<clever> t2: it may help if you look at the nix-prefetch-git scripts
<clever> t2: so no hash that upstream provides will work
<clever> t2: nix usualy takes the hash of the NAR archive, not the bare file within it
<clever> dan1: i also wired up a large arcade machine button to the reset pin on the rpi, so i could just punch that to test a build
<clever> oh, and half of those files are outside of the git repo, unfinished work that got interupted by a power outage and then forgotten
<clever> dan1: so with a single nix-build command, i can change all of the firmware the rpi runs, even if its unresponsive, without having to change the SD card out
<clever> dan1: https://github.com/cleverca22/not-os/blob/master/rpi_image.nix#L14 this derivation is also designed to work with the network booting on the rpi
<clever> dan1: done, that also includes changes to allow running nix builds from the ramdisk
<clever> dan1: let me commit my rpi changes
<clever> dan1: a week ago i tried to get plymouth working on not-os, and upstream had to add an option to make udev optional
<clever> dan1: so not-os entirely lacks udev
<clever> dan1: and also, things like util-linux depend on systemd for some insane reason, and systemd supplies udev
<clever> dan1: so you have to replace the systemd module in nixos with https://github.com/cleverca22/not-os/blob/master/systemd-compat.nix to neuter all of them
<clever> dan1: part of the problem is that every single service in nixos uses systemd stuff to define itself
<clever> Mic92: and this is what happens when you dont pull your own changes, lol: https://github.com/cleverca22/nixos-installer/commit/d8d37387e1520e2641b45e38eaa8ee8b2c49d23e
<clever> then i did more work on the QHttp variant, having forgotten about the websocketpp one
<clever> Mic92: the old code used QHttp for the server, the fork used websocketpp
<clever> Mic92: heh, looks like i had totally swapped out the http server i was using, and git doesnt merge that kind of thing well
<clever> dan1: the entire thing compiles down to just a squashfs, kernel, and initrd
<clever> dan1: i have a local fork (need to push it still) that can boot nix-daemon on a raspberry pi, and do sandboxes nix builds, with a 40mb ramdisk
<clever> dan1: i have a basic nix based OS that runs without systemd, but currently all services have to be written by hand to work
<clever> and now everything conflicts!
<clever> then forgot about it, and restarted on this machine
<clever> Mic92: it looks like i did a decent amount of development along a different path, on a diff machine
<clever> merge conflict time!
<clever> and it looks like i moved the files to a subdir on another system, then did a crap-ton of development without that commit
<clever> Mic92: there are currently no other xml errors that i can see, i wrote a tool to go over the description of everything, lol
<clever> Mic92: http://nixos.org/nixos/options.html try reading the description on boot.loader.grub.efiInstallAsRemovable
<clever> Mic92: not sure either, and i just found the cause of a second bug
<clever> Mic92: is this right?, a default of null means it wont assert out when an value isnt given: https://github.com/NixOS/nixpkgs/blob/release-16.09/nixos/modules/services/computing/slurm/slurm.nix#L49-L50
<clever> the last-mod timestamp will tell you when
<clever> c0bw3b: you ran "nixos-rebuild build" at some point
<clever> so it may have extras that arent valid and misleading you
<clever> at a glance, its adding both /lib and /lib64 to paths
<clever> yeah, just add it as an argument on line 1 and you can access it
<clever> its using the libPath attribute on the atom/env.nix expression
<clever> pkgs/top-level/all-packages.nix: atomEnv = callPackage ../applications/editors/atom/env.nix {
<clever> rly: what are the vid and pid for it (visible in lsusb)
<clever> because the tab size was different, and it mislead the last person editing it
<clever> LnL: mosh.nix also had the incorrect number of spaces on a few of its lines, near the tabs
<clever> LnL: i think i should stop at fixing 5 files, lol, if i keep this up i'll wind up reformating all of the nixos modules....
<clever> LnL: eek, somebody put tabs in a nix file!!!!
<clever> LnL: "strings" work, but dont remove the indentation at all, so the output looks worse
<clever> mpickering: either "nix-shell -A haskellPackages.LibClang" or "nix-shell -A haskellPackages.LibClang.env"
<clever> mpickering: the nixos. prefix is only for nix-env, it cant be used with all of the other nix tools
<clever> LnL: this removes 1 space from each line, causing the 2nd&3rd line to remain indented
<clever> mpickering: it shouldnt, as far as i understand it
<clever> LnL: next thing i need is to do something with the default and example values, add a button to populate the left tree, and handle the xml in the description better
<clever> LnL: https://youtu.be/rIdPKzYTN-w how does this look?
<clever> that doesnt sound right
<clever> dtzWill: wut? lol
<clever> the first step is usualy what triggered the rebuild, if no other jobs got to that trigger first
<clever> though the 7.10.3 came from the binary cache this time
<clever> and now i get to compile 1 ghc for the price of 2!
<clever> somebody changes ghc 7.10.3 in nixpkgs master, so now ghc 8.0.1 has to recompile, lol
<clever> mpickering: and line 146, where it generates a special ghc bash script, that wraps all of the haskell inputs
<clever> but the main haskellPackages.foo build doesnt depend on that env
<clever> mpickering: this will drop you into an env that has been specialy modified to make it easy to build foo by hand
<clever> mpickering: .env is usefull mainly for building stuff by hand, nix-shell -A haskellPackages.foo.env
<clever> mpickering: and in there is things like .env, which is a modified derivation for building foo, and the main build of foo doesnt depend on that env
<clever> mpickering: everything inside the passthru attributeset can be accessed as an attribute on the derivation, but has no effect on the build
<clever> mpickering: also of use, is line 291, passthru
<clever> mpickering: yeah, line 136 and 137 concat a bunch of things, to make 2 main lists, and then lines 168 and 169 use those 2 lists
<clever> mpickering: which probably helps ghc find the pieces of the entire closure, and optimize things to death
<clever> mpickering: so if you put the haskell package foo into your buildInputs, you automaticaly get every haskell depdency of foo (recusrively)
<clever> mpickering: looks like all of the haskell stuff goes into the propagated inputs, and the system stuff goes into the native inputs
<clever> mpickering: line 157 of the file i linked
<clever> mpickering: all of the haskell packages run thru a special function, that turns the list of haskellDependencies and systemDependencies into the more normal nativeBuildInputs stuff
<clever> mpickering: that would be a nix function that combines everything together
<clever> m`: what about ./.fetch-deps.sh; ?
<clever> -I my-nixpkgs=/path/to/nixpkgs
<clever> or the existance of a my-nixpkgs directory in one of the nix-path elements
<clever> ah, so it will depend on what my-nixpkgs is set to in $NIX_PATH
<clever> rly: what args are you giving to nix-build?
<clever> mpickering: http://pastebin.com/17fnXRun all derivations can also be cast to a string, which is the path where that derivation will install to
<clever> nix-repl> haskellPackages.Encode.<tab><tab>
<clever> haskellPackages.Encode.LANG haskellPackages.Encode.haddockPhase haskellPackages.Encode.pname
<clever> mpickering: it has attributes, put a . after it and tab compete works
<clever> mpickering: the value in this is a derivation, not a string, and derivations can be compiles with :b in the repl
<clever> Encode = «derivation /nix/store/mjjnwi3d6p0jh3gnxx8hj2chrxwsha4g-Encode-1.3.8.drv»;
<clever> though that only works in the repl, cant be used in an expression or nix-instantiate --eval
<clever> nix-repl> :t 42
<clever> an integer
<clever> nix-repl> __typeOf 42
<clever> "int"
<clever> *boom*
<clever> yep, and its using appleDerivation, not mkDerivation
<clever> error: assertion failed at /nix/store/jk5dvrv6w9bcgh88g0x7clk19df3q28f-nixos-17.03pre96925.1c50bdd/nixos/pkgs/os-specific/darwin/apple-source-releases/CF/default.nix:4:1
<clever> [clever@amd-nixos:~/apps]$ nix-build -E 'with import <nixpkgs> { config = { allowUnfree = true; allowBroken = true; }; }; haskell.packages.ghc802.ghcWithPackages (p: lib.filter (x: !(x ? meta && x.meta ? broken && !x.meta.broken)) (lib.attrValues p))' -Q -j 8
<clever> LnL: yeah, i think i got it backwards
<clever> LnL: yeah, somethings wrong, it only built ghc, it doesnt depend on anything
<clever> mpickering: its busy downloading a gig of ghc for me
<clever> mpickering: or: nix-build -E 'with import <nixpkgs> { config = { allowUnfree = true; allowBroken = true; }; }; haskell.packages.ghc802.ghcWithPackages (p: lib.filter (x: x ? meta && x.meta ? broken && !x.meta.broken) (lib.attrValues p))' -Q -j 8
<clever> possibly, havent messed with it
<clever> error: Package ‘StrategyLib-4.0.0.0’ in ‘/nix/store/jk5dvrv6w9bcgh88g0x7clk19df3q28f-nixos-17.03pre96925.1c50bdd/nixos/pkgs/development/haskell-modules/hackage-packages.nix:16093’ has an unfree license (‘unfree’), refusing to evaluate.
<clever> mpickering: in theory, this will compile ghc 802, and build EVERYTHING with that ghc, then give you a ghc that can use everything at once
<clever> mpickering: and set allowBroken = true; in ~/.nixpkgs/config.nix
<clever> mpickering: haskell.packages.ghc802.ghcWithPackages (p: lib.filter (x: x ? meta && x.meta ? broken && !x.meta.broken) (lib.attrValues p))
<clever> LnL: i think the stdenv is protecting the entire attribute, not just the derivation value
<clever> but if i set allowBroken, it returns the meta
<clever> error: Package ‘Elm-0.13’ in ‘/nix/store/jk5dvrv6w9bcgh88g0x7clk19df3q28f-nixos-17.03pre96925.1c50bdd/nixos/pkgs/development/haskell-modules/hackage-packages.nix:4484’ is marked as broken, refusing to evaluate.
<clever> nix-repl> haskell.packages.ghc802.Elm.meta
<clever> LnL: you cant inspect the values on a broken package, to see if its broken
<clever> LnL: oh, i see the problem
<clever> mpickering: under nix, your not supposed to install such dependencies, you list them in the package, and nix will just build things for you
<clever> error: Package ‘Elm-0.13’ in ‘/nix/store/jk5dvrv6w9bcgh88g0x7clk19df3q28f-nixos-17.03pre96925.1c50bdd/nixos/pkgs/development/haskell-modules/hackage-packages.nix:4484’ is marked as broken, refusing to evaluate.
<clever> nix-repl> haskell.packages.ghc802.ghcWithPackages (p: lib.filter (x: x ? meta && x.meta ? broken && !x.meta.broken) (lib.attrValues p))
<clever> oh, maybe it was under meta
<clever> error: Package ‘Elm-0.13’ in ‘/nix/store/jk5dvrv6w9bcgh88g0x7clk19df3q28f-nixos-17.03pre96925.1c50bdd/nixos/pkgs/development/haskell-modules/hackage-packages.nix:4484’ is marked as broken, refusing to evaluate.
<clever> nix-repl> haskell.packages.ghc802.ghcWithPackages (p: lib.filter (x: x ? broken && !x.broken) (lib.attrValues p))
<clever> LnL: error: Package ‘NewBinary-0.2.1’ in ‘/nix/store/jk5dvrv6w9bcgh88g0x7clk19df3q28f-nixos-17.03pre96925.1c50bdd/nixos/pkgs/development/haskell-modules/hackage-packages.nix:12162’ is marked as broken, refusing to evaluate.
<clever> mpickering: also, are you sure you need all of them? including this one? https://hackage.haskell.org/package/acme-cutegirl
<clever> mpickering: nixos has every single package in hackage, that might take a while to compile...
<clever> rly: -I is simpler, nixos-rebuild switch -I nixpkgs=/home/me/src/nixpkgs-channels
<clever> rly: to change the default for future builds, or to add custom things
<clever> rly: yeah
<clever> at which point, its too late to have done its job
<clever> rly: and that /etc file wont exist until the entire build is done
<clever> rly: all that config option does, is change the default $NIX_PATH in a /etc file, for when you re-launch a shell
<clever> rly: so the current value of $NIX_PATH is what matters
<clever> rly: that has no effect on the current build, that will only effect the next build
<clever> rly: and what is the value of $NIX_PATH?
<clever> and what command are you running that is wanting to build firefox?
<clever> yep, thats the revision for nixos-16.09
<clever> rly: what revision is git on now?, git rev-parse HEAD
<clever> the make processes somehow talk to the 1st one, and coordinate sharing those 8 jobs
<clever> but it doesnt multiply
<clever> rly: if you make -j8, it will spawn off children for the subdirs, that also make -j8
<clever> rly: there is a weird thing make doesn, that could be tapped into, at the cost of complexity