* 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; | ||||||
|  |  | ||||||
|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue