diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-09-25 14:00:59 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-09-25 14:00:59 +0000 |
commit | 3632019b737d1c570a3c30f4f3f07763b5b1d23c (patch) | |
tree | 0c966c09000394dc5404771816ccd2a20902af0f | |
parent | d43565c3e837feea478aaa71bad7e0a92c1911f0 (diff) |
* Quick hack to let nix-install-package set the package name properly
(e.g., "java-front-0.9pre15899" instead of "java-front";
particularly important when doing upgrades later on).
-rw-r--r-- | scripts/nix-install-package.in | 2 | ||||
-rw-r--r-- | src/nix-env/main.cc | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/scripts/nix-install-package.in b/scripts/nix-install-package.in index 35f6d6824..dc46c8cb2 100644 --- a/scripts/nix-install-package.in +++ b/scripts/nix-install-package.in @@ -129,7 +129,7 @@ system("@bindir@/nix-pull", $manifestURL) == 0 print "\nInstalling package...\n"; -system("@bindir@/nix-env", "--install", $outPath, @extraNixEnvArgs) == 0 +system("@bindir@/nix-env", "--install", $outPath, "--force-name", $drvName, @extraNixEnvArgs) == 0 or barf "nix-env failed: $?"; diff --git a/src/nix-env/main.cc b/src/nix-env/main.cc index 416f89bcc..6a4038715 100644 --- a/src/nix-env/main.cc +++ b/src/nix-env/main.cc @@ -59,6 +59,7 @@ struct Globals bool dryRun; bool preserveInstalled; bool keepDerivations; + string forceName; }; @@ -448,8 +449,15 @@ static void installDerivations(Globals & globals, queryInstSources(globals.state, globals.instSource, args, newElems, true); StringSet newNames; - for (DrvInfos::iterator i = newElems.begin(); i != newElems.end(); ++i) + for (DrvInfos::iterator i = newElems.begin(); i != newElems.end(); ++i) { + /* `forceName' is a hack to get package names right in some + one-click installs, namely those where the name used in the + path is not the one we want (e.g., `java-front' versus + `java-front-0.9pre15899'). */ + if (globals.forceName != "") + i->name = globals.forceName; newNames.insert(DrvName(i->name).name); + } /* Add in the already installed derivations, unless they have the same name as a to-be-installed element. */ @@ -1139,6 +1147,8 @@ void run(Strings args) Expr value = parseExprFromString(globals.state, *i, absPath(".")); globals.instSource.autoArgs.set(toATerm(name), value); } + else if (arg == "--force-name") // undocumented flag for nix-install-package + globals.forceName = needArg(i, args, arg); else if (arg == "--uninstall" || arg == "-e") op = opUninstall; else if (arg == "--upgrade" || arg == "-u") |