~ chicken-core (chicken-5) ae79ad0b23dcf799f29c6c512bc6f9d916c8f57d


commit ae79ad0b23dcf799f29c6c512bc6f9d916c8f57d
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Sep 7 15:54:43 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Sep 7 15:54:43 2011 +0200

    added hacks entry for setup.defaults; renamed call-cc.org alias to call-cc

diff --git a/chicken-install.scm b/chicken-install.scm
index e6357053..5d1499f8 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -108,6 +108,7 @@
   (define *override* '())
   (define *reinstall* #f)
   (define *show-foreign-depends* #f)
+  (define *hacks* '())
 
   (define (repo-path)
     (if (and *cross-chicken* (not *host-extension*))
@@ -170,6 +171,8 @@
 		     (if (and (pair? (cdr x)) (string? (cadr x)))
 			 (read-file (cadr x))
 			 (cdr x))))
+		  ((hack)
+		   (set! *hacks* (append *hacks* (list (eval (cadr x))))))
 		  (else (broken x))))
 	      (read-file deff))))
       (pair? *default-sources*) ))
@@ -281,8 +284,11 @@
 	    dep)
 	   (values #f #f))))
 
-  (define (outdated-dependencies meta)
+  (define (outdated-dependencies egg meta)
     (let ((ds (meta-dependencies meta)))
+      (for-each
+       (lambda (h) (set! ds (h egg ds)))
+       *hacks*)
       (let loop ((deps ds) (missing '()) (upgrade '()))
         (if (null? deps)
             (values (reverse missing) (reverse upgrade))
@@ -435,7 +441,8 @@
 		      (print "checking platform for `" (car e+d+v) "' ...")
 		      (check-platform (car e+d+v) meta)
                       (print "checking dependencies for `" (car e+d+v) "' ...")
-                      (let-values (((missing upgrade) (outdated-dependencies meta)))
+                      (let-values (((missing upgrade) 
+				    (outdated-dependencies (car e+d+v) meta)))
 			(set! missing (apply-mappings missing)) ;XXX only missing - wrong?
 			(set! *dependencies*
 			  (cons
diff --git a/setup.defaults b/setup.defaults
index 49d01838..3a141037 100644
--- a/setup.defaults
+++ b/setup.defaults
@@ -1,19 +1,24 @@
 ;;;; setup.defaults - defaults for chicken-install -*- Scheme -*-
 
 
+;; version-number of the defaults file - checked by "chicken-install"
+;  when defaults are loaded
+
 (version 1)
 
 
 ;; list of servers in the order in which they will be processed
 ;
 ; (server (location URL) (transport TRANSPORT))
+;
+; URL may be an alias (see below) or a real URL
 
 (server
  (location "kitten-technologies")
  (transport http))
 
 (server
- (location "call-cc.org")
+ (location "call-cc")
  (transport http))
 
 
@@ -34,7 +39,7 @@
 ; (alias (NAME REALNAME) ...)
 
 (alias 
- ("call-cc.org" "http://code.call-cc.org/cgi-bin/henrietta.cgi")
+ ("call-cc" "http://code.call-cc.org/cgi-bin/henrietta.cgi")
  ("kitten-technologies" "http://chicken.kitten-technologies.co.uk/henrietta.cgi"))
 
 
@@ -45,3 +50,13 @@
 ; or:
 ;
 ; (override FILENAME)
+
+
+;; hack
+;
+; (hack EXPR)
+;
+;   EXPR should evaluate to a procedure of the type, where the 
+;   procedure is of type EGGNAME DEPENDENCIES -> DEPENDENCIES' and
+;   may modify the dependencies-list of an arbitrary egg. All
+;   hack procedures are invoked in the order given here
Trap