~ 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