about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-11 13:33:44 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-11 13:36:09 +0200
commita2600b7bc391a4bba7863abb66b219d3b6318d7c (patch)
treefcc1f7ecde9e9b212efe9c150e63d199f8cd38fd
parentd374bff41ed463b611cb31b2db2e7c9116f4475b (diff)
downloadnixlib-a2600b7bc391a4bba7863abb66b219d3b6318d7c.tar
nixlib-a2600b7bc391a4bba7863abb66b219d3b6318d7c.tar.gz
nixlib-a2600b7bc391a4bba7863abb66b219d3b6318d7c.tar.bz2
nixlib-a2600b7bc391a4bba7863abb66b219d3b6318d7c.tar.lz
nixlib-a2600b7bc391a4bba7863abb66b219d3b6318d7c.tar.xz
nixlib-a2600b7bc391a4bba7863abb66b219d3b6318d7c.tar.zst
nixlib-a2600b7bc391a4bba7863abb66b219d3b6318d7c.zip
Terrible backward compatibility hack
-rw-r--r--nixos/lib/build-vms.nix2
-rw-r--r--nixos/lib/eval-config.nix6
-rw-r--r--nixos/lib/nixpkgs.nix8
3 files changed, 12 insertions, 4 deletions
diff --git a/nixos/lib/build-vms.nix b/nixos/lib/build-vms.nix
index aad85aedc48e..d20fbc1cc663 100644
--- a/nixos/lib/build-vms.nix
+++ b/nixos/lib/build-vms.nix
@@ -1,6 +1,6 @@
 { system, minimal ? false }:
 
-let pkgs = import ../.. { config = {}; inherit system; }; in
+let pkgs = import ./nixpkgs.nix { config = {}; inherit system; }; in
 
 with pkgs.lib;
 with import ../lib/qemu-flags.nix;
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index 89f81cf70bd9..72ba66cdbac4 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -30,7 +30,7 @@ rec {
   extraArgs = extraArgs_ // {
     inherit pkgs modules baseModules;
     modulesPath = ../modules;
-    pkgs_i686 = import ../.. { system = "i686-linux"; };
+    pkgs_i686 = import ./nixpkgs.nix { system = "i686-linux"; };
     utils = import ./utils.nix pkgs;
   };
 
@@ -47,7 +47,7 @@ rec {
   pkgs =
     if pkgs_ != null
     then pkgs_
-    else import ../.. (
+    else import ./nixpkgs.nix (
       let
         system = if nixpkgsOptions.system != "" then nixpkgsOptions.system else system_;
         nixpkgsOptions = (import ./eval-config.nix {
@@ -55,7 +55,7 @@ rec {
           # For efficiency, leave out most NixOS modules; they don't
           # define nixpkgs.config, so it's pointless to evaluate them.
           baseModules = [ ../modules/misc/nixpkgs.nix ];
-          pkgs = import ../.. { system = system_; config = {}; };
+          pkgs = import ./nixpkgs.nix { system = system_; config = {}; };
         }).optionDefinitions.nixpkgs;
       in
       {
diff --git a/nixos/lib/nixpkgs.nix b/nixos/lib/nixpkgs.nix
new file mode 100644
index 000000000000..10096f58c79a
--- /dev/null
+++ b/nixos/lib/nixpkgs.nix
@@ -0,0 +1,8 @@
+/* Terrible backward compatibility hack to get the path to Nixpkgs
+   from here.  Usually, that's the relative path ‘../..’.  However,
+   when using the NixOS channel, <nixos> resolves to a symlink to
+   nixpkgs/nixos, so ‘../..’ doesn't resolve to the top-level Nixpkgs
+   directory but one above it.  So check for that situation. */
+if builtins.pathExists ../../.version then import ../..
+else if builtins.pathExists ../../nixpkgs then import ../../nixpkgs
+else abort "Can't find Nixpkgs, please set ‘NIX_PATH=nixpkgs=/path/to/nixpkgs’."