* Allow the canonical system name to be specified at runtime in the

Nix config file.
This commit is contained in:
Eelco Dolstra 2006-07-06 15:30:37 +00:00
parent a945fb7905
commit d51aede4af
6 changed files with 27 additions and 8 deletions

View file

@ -97,3 +97,23 @@
# Example: # Example:
# build-users = nix-builder-1 nix-builder-2 nix-builder-3 # build-users = nix-builder-1 nix-builder-2 nix-builder-3
#build-users = #build-users =
### Option `system'
#
# This option specifies the canonical Nix system name of the current
# installation, such as `i686-linux' or `powerpc-darwin'. Nix can
# only build derivations whose `system' attribute equals the value
# specified here. In general, it never makes sense to modify this
# value from its default, since you can use it to `lie' about the
# platform you are building on (e.g., perform a Mac OS build on a
# Linux machine; the result would obviously be wrong). It only makes
# sense if the Nix binaries can run on multiple platforms, e.g.,
# `universal binaries' that run on `powerpc-darwin' and `i686-darwin'.
#
# It defaults to the canonical Nix system name detected by `configure'
# at build time.
#
# Example:
# system = i686-darwin
#system =

View file

@ -93,6 +93,8 @@ static void initAndRun(int argc, char * * argv)
nixDBPath = getEnv("NIX_DB_DIR", nixStateDir + "/db"); nixDBPath = getEnv("NIX_DB_DIR", nixStateDir + "/db");
nixConfDir = canonPath(getEnv("NIX_CONF_DIR", NIX_CONF_DIR)); nixConfDir = canonPath(getEnv("NIX_CONF_DIR", NIX_CONF_DIR));
thisSystem = querySetting("system", SYSTEM);
/* Catch SIGINT. */ /* Catch SIGINT. */
struct sigaction act, oact; struct sigaction act, oact;
act.sa_handler = sigintHandler; act.sa_handler = sigintHandler;

View file

@ -17,6 +17,7 @@ bool tryFallback = false;
Verbosity buildVerbosity = lvlInfo; Verbosity buildVerbosity = lvlInfo;
unsigned int maxBuildJobs = 1; unsigned int maxBuildJobs = 1;
bool readOnlyMode = false; bool readOnlyMode = false;
string thisSystem = "unset";
static bool settingsRead = false; static bool settingsRead = false;

View file

@ -53,6 +53,9 @@ extern unsigned int maxBuildJobs;
database. */ database. */
extern bool readOnlyMode; extern bool readOnlyMode;
/* The canonical system name, as returned by config.guess. */
extern string thisSystem;
Strings querySetting(const string & name, const Strings & def); Strings querySetting(const string & name, const Strings & def);

View file

@ -16,9 +16,6 @@
#include "util.hh" #include "util.hh"
string thisSystem = SYSTEM;
Error::Error(const format & f) Error::Error(const format & f)
{ {
err = f.str(); err = f.str();

View file

@ -55,10 +55,6 @@ typedef list<Path> Paths;
typedef set<Path> PathSet; typedef set<Path> PathSet;
/* The canonical system name, as returned by config.guess. */
extern string thisSystem;
/* Return an environment variable. */ /* Return an environment variable. */
string getEnv(const string & key, const string & def = ""); string getEnv(const string & key, const string & def = "");