Keybase proof
I hereby claim:
- I am vcunat on github.
- I am vcunat (https://keybase.io/vcunat) on keybase.
- I have a public key whose fingerprint is B600 6460 B60A 80E7 8206 2449 E747 DF1F 9575 A3AA
To claim this, I am signing this object:
#!/usr/bin/env nix-shell | |
#!nix-shell -i bash -p bind.dnsutils -p traceroute -p curl | |
# impure: needs ping | |
#source: https://s3.amazonaws.com/aws-cloudfront-testing/CustomerTesting.html | |
function _e { | |
echo "> $@" | |
eval "$@" 2>&1 | sed -e "s/^/ /" | |
printf "Exit: %s\n\n\n" "$?" | |
} |
{ nixpkgs ? <nixpkgs> }: { | |
inherit (import nixpkgs {}) hello; | |
} |
I hereby claim:
To claim this, I am signing this object:
let | |
lib = (import <nixpkgs> {}).lib; | |
pkgs-cross-xx = hostArch: | |
lib.mapAttrs | |
(name_: pkg: if lib.isDerivation pkg then pkg.crossDrv else pkg) | |
(pkgs-cross-xx-nocross hostArch); | |
pkgs-cross-xx-nocross = hostArch: | |
(import <nixpkgs> { | |
crossSystem = { | |
config = hostArch + "-w64-mingw32"; |
#!/usr/bin/env bash | |
if [ "$#" != 2 ]; then | |
echo "Usage: $0 commit-hash commit-hash" | |
echo -e "\tYou need to be in a git-controlled nixpkgs tree." | |
exit 1 | |
fi | |
echo "Estimating rebuild amount, by packages visible to nix-env:" | |
echo "(If you get 0, it's an evaluation error, most likely.)" |
{stdenv, fetchurl, pkgconfig, xmlto, imagemagick, libiconv}: | |
stdenv.mkDerivation rec { | |
name = "zbar-0-10"; | |
src = fetchurl { | |
url = http://downloads.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.bz2; | |
sha256 = "1imdvf5k34g1x2zr6975basczkz3zdxg6xnci50yyp5yvcwznki3"; | |
}; |
original flags to /nix/store/vck6gcw6acfj5zbclaxq95dkx8askvc0-binutils-2.23.1-dev/bin/ld: | |
-plugin | |
/nix/store/k7vgmahnycp3x1d4i63wbj61bn67khls-gfortran-4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/liblto_plugin.so | |
-plugin-opt=/nix/store/k7vgmahnycp3x1d4i63wbj61bn67khls-gfortran-4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper | |
-plugin-opt=-fresolution=/tmp/nix-build-R-3.2.3.drv-0/ccNJ1FPY.res | |
-plugin-opt=-pass-through=-lgcc | |
-plugin-opt=-pass-through=-lgcc_s | |
-plugin-opt=-pass-through=-lpthread | |
-plugin-opt=-pass-through=-lc | |
-plugin-opt=-pass-through=-lgcc |
import Data.List | |
import Data.Maybe (fromMaybe) | |
import qualified Data.Map as M | |
import XMonad | |
import XMonad.Config.Xfce (xfceConfig) | |
--import XMonad.Config.Gnome | |
--import XMonad.Config.Kde | |
import XMonad.Config.Desktop (desktopLayoutModifiers) |
--- /home/admin/nix/tmp/nvidia-long.txt | |
+++ /home/admin/nix/tmp/nvidia-short.txt | |
@@ -1,9 +1,15 @@ | |
+GeForce 900 Series: | |
+ | |
+GeForce GTX 980, GeForce GTX 970 | |
+GeForce 900M Series (Notebooks): | |
+ | |
+GeForce GTX 980M, GeForce GTX 970M | |
GeForce 800M Series (Notebooks): |
I worked on splitting packages into multiple outputs. Nix does support derivations with multiple outputs for a few years (I estimate), but it is little used. I focused on using it widely in nixpkgs. The main aim is to reduce runtime closure sizes by separating files not needed at runtime.
Most of the general ideas and parts of the current code were done about one and two years ago, mainly by Eelco. I updated the code wrt. stdenv changes since then and started tweaking and fixing the builds from the most deeply depended packages.
The largest savings are currently due to not having headers and documentation in runtime closures. Probably much more could be saved by turning locale data into plugins, but it's unclear how to do it, so that was not attempted (yet).
Code sharing in nix expressions is attempted as much as possible. That is, for typical package it should be enough just to define the list of outputs with standard names, e.g.
outputs = [ "dev" "out" "bin" "man" "doc" ];
and the stdenv code e