pkgs: with pkgs.lib; let allPackages = newPackages // misc; everything = pkgs // allPackages // drvOverrides // argOverrides; callPackage = callPackageWith everything; mapOverride = overrideFun: includePackages: let packages = pkgs // allPackages // includePackages; overrideName = name: overrideFun (getAttr name packages); in mapAttrs overrideName; # input attrset overrides using pkg.override argOverrides = mapOverride (getAttr "override") drvOverrides { netrw.checksumType = "mhash"; pulseaudio.useSystemd = true; w3m.graphicsSupport = true; uqm.use3DOVideos = true; uqm.useRemixPacks = true; }; gajimGtkTheme = everything.writeText "gajim.gtkrc" '' style "default" { fg[NORMAL] = "#d5faff" fg[ACTIVE] = "#fffeff" fg[SELECTED] = "#fffeff" fg[INSENSITIVE] = "#85aaaf" fg[PRELIGHT] = "#d7f2ff" text[NORMAL] = "#fffefe" text[ACTIVE] = "#fffeff" text[SELECTED] = "#fffeff" text[INSENSITIVE] = "#85aaaf" text[PRELIGHT] = "#d7f2ff" bg[NORMAL] = "#0f4866" bg[ACTIVE] = "#0c232e" bg[SELECTED] = "#005a56" bg[INSENSITIVE] = "#103040" bg[PRELIGHT] = "#1d5875" base[NORMAL] = "#0c232e" base[ACTIVE] = "#0f4864" base[SELECTED] = "#005a56" base[INSENSITIVE] = "#103040" base[PRELIGHT] = "#1d5875" } class "GtkWidget" style "default" gtk-enable-animations = 0 ''; gajimPatch = everything.substituteAll { src = ./gajim/config.patch; nix_config = everything.writeText "gajim.config" (import ../cfgfiles/gajim.nix); }; # derivation overrides drvOverrides = mapOverride overrideDerivation argOverrides { gajim = o: { patches = (o.patches or []) ++ singleton gajimPatch; postPatch = (o.postPatch or "") + '' sed -i -e '/^export/i export GTK2_RC_FILES="${gajimGtkTheme}"' \ scripts/gajim.in ''; }; erlang = o: let manpages = pkgs.fetchurl { url = "http://www.erlang.org/download/otp_doc_man_${o.version}.tar.gz"; sha256 = "16dkz3w1q4ahy37c8a8r2h8zjcr7cxz7pd9z38chbxf6frc2pxxc"; }; in { postInstall = (o.postInstall or "") + '' ensureDir "$out/lib/erlang" tar xf "${manpages}" -C "$out/lib/erlang" ''; }; }; # new packages newPackages = { axbo = callPackage ./axbo { }; blop = callPackage ./blop { }; fish = callPackage ./fish { }; libCMT = callPackage ./libcmt { }; librxtx_java = callPackage ./librxtx-java { }; lockdev = callPackage ./lockdev { }; pvolctrl = callPackage ./pvolctrl { }; tkabber_urgent_plugin = callPackage ./tkabber-urgent-plugin { }; aszligKernelPatches = { bfqsched = callPackage ./kpatches/bfqsched.nix { }; }; }; # misc misc = { kernelSourceAszlig = { version = "3.16.0-rc3"; src = everything.fetchgit { url = git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git; rev = "16874b2cb867d3eb63ed838f2847143e11556708"; sha256 = "0qyshjzp6jxb282srralmbrpmnmjc9fc38x642n8q8fd9xhxh5xi"; }; }; testChromiumBuild = let buildChannels = [ "stable" "beta" "dev" ]; buildChromium = chan: everything.chromium.override { channel = chan; gnomeSupport = true; gnomeKeyringSupport = true; proprietaryCodecs = true; cupsSupport = true; pulseSupport = true; }; mkTest = chan: everything.writeScript "test-chromium-${chan}.sh" '' #!${everything.stdenv.shell} if datadir="$(${everything.coreutils}/bin/mktemp -d)"; then ${buildChromium chan}/bin/chromium --user-data-dir="$datadir" rm -rf "$datadir" fi ''; in everything.stdenv.mkDerivation { name = "test-chromium-build"; buildCommand = let chanResults = flip map buildChannels (chan: '' echo "Test script for ${chan}: ${mkTest chan}" ''); in '' echo "Builds finished, the following derivations have been built:" ${concatStrings chanResults} false ''; }; }; in allPackages // drvOverrides // argOverrides