~ 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 hereTrap