OK, here's a better patch for MKCL and ASDF.
You were having ASDF re-load itself before it's configured;
that's the recipe for loading the one that is in the user's normal
configuration,
environment variable or not.
Later in the script, you correctly configure ASDF, and
ASDF 3 does its own reloading automatically, so you don't need this step.
Actually, if you're upgrading from ASDF2, you'll need more steps than that,
before of the package punting; but you're not, are you?

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
"Poetry is what gets lost in translation." — Robert Frost


On Wed, Apr 9, 2014 at 8:36 AM, Faré <fah...@gmail.com> wrote:
>>> This suggests that one of the things you need to do is have tighter
>>> control over the CL_SOURCE_REGISTRY
>>> and ASDF_OUTPUT_TRANSLATIONS around this compilation, to prevent the
>>> unwanted ASDF upgrade.
>>
>> I have to admit that interference from the process environment was not on my
>> list of identified threats.
>> I just committed two lines in my src/build-asdf-contrib.lsp to guard against
>> that. I hope its enough.
>> I looked into the source code of ASDF and saw that it read the content of at
>> least 11 environment variables!
>> Should I be paranoid and guard also against the 9 nine others beside the two
>> you mentioned?
>>
> grep 'getenv.*"' *p u*/*p actually finds 15 different variables that
> *may* be used.
> But when these two are controlled, all other variables are unused, except for
> __CL_ARGV0 that you shouldn't care about and TMPDIR (or TEMP, on Windows)
> that should be left in the user's control —
> if it's bogus, a lot more things than ASDF will break;
> and if the user wants to divert it, he probably knows what he's doing.
>
> —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
> Love doesn't scale. — Eric S. Raymond
From 45b2c5ff83fc260624ad4cd8ed86f32fb8071317 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tu...@google.com>
Date: Wed, 16 Apr 2014 13:39:18 -0400
Subject: [PATCH] Don't re-load asdf before you configure it, or you might get
 the wrong one!

---
 src/build-asdf-contrib.lsp | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/src/build-asdf-contrib.lsp b/src/build-asdf-contrib.lsp
index 2cbcd79..27be3dd 100644
--- a/src/build-asdf-contrib.lsp
+++ b/src/build-asdf-contrib.lsp
@@ -31,14 +31,8 @@
 
 ;;(format t "sys-dir = ~S~%" sys-dir)
 
-;; Guard against environment interference.
-(mkcl:setenv "ASDF_OUTPUT_TRANSLATIONS" nil)
-(mkcl:setenv "CL_SOURCE_REGISTRY" nil)
-
 (load "asdf.fasb") ;; load the local one.
 
-(asdf:oos 'asdf:load-op :asdf) ;; For some strange reason this is needed by ASDF 3 to force it to register itself.
-
 ;;(push '(mkcl:getcwd) asdf:*central-registry*) ;; ASDF 1 old style
 
 ;;(push sys-dir asdf:*central-registry*) ;; ASDF 1 old style
-- 
1.9.1.423.g4596e3a

_______________________________________________
Asdf-devel mailing list
Asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel

Reply via email to