* Allow the canonical system name to be specified at runtime in the
Nix config file.
This commit is contained in:
parent
a945fb7905
commit
d51aede4af
6 changed files with 27 additions and 8 deletions
|
@ -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 =
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
@ -26,7 +27,7 @@ static map<string, Strings> settings;
|
||||||
|
|
||||||
string & at(Strings & ss, unsigned int n)
|
string & at(Strings & ss, unsigned int n)
|
||||||
{
|
{
|
||||||
Strings::iterator i =ss.begin();
|
Strings::iterator i = ss.begin();
|
||||||
advance(i, n);
|
advance(i, n);
|
||||||
return *i;
|
return *i;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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 = "");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue