diff --git a/racket/lib/collects/pkg/lib.rkt b/racket/lib/collects/pkg/lib.rkt index a3bffa1341..92b9d0ad04 100644 --- a/racket/lib/collects/pkg/lib.rkt +++ b/racket/lib/collects/pkg/lib.rkt @@ -2073,7 +2073,7 @@ ;; if an "info.rkt" in an (define sub-check-zo? (or check-zo? - (let ([i (get-info/full f #:namespace metadata-ns)]) + (let ([i (get-pkg-info f metadata-ns)]) (and i (i 'assume-virtual-sources (lambda () #f)))))) (for/fold ([s s]) ([f (directory-list f #:build? #t)]) diff --git a/racket/src/link-all.rkt b/racket/src/link-all.rkt index a476c54514..78619ef68d 100644 --- a/racket/src/link-all.rkt +++ b/racket/src/link-all.rkt @@ -90,6 +90,16 @@ [(directory-exists? src-f) (loop src-f)]))))) +(define metadata-ns (make-base-namespace)) +(define (get-pkg-info pkg-dir) + (parameterize ([current-namespace metadata-ns]) + ;; with compiled files on: + (dynamic-require 'setup/infotab/lang/reader #f) + (dynamic-require 'setup/infotab 0)) + ;; without compiled files: + (parameterize ([use-compiled-file-paths '()]) + (get-info/full pkg-dir #:namespace metadata-ns))) + (define all-pkgs (let loop ([all-pkgs pkgs] [pkgs pkgs]) (define new-pkgs @@ -97,7 +107,7 @@ (define dir (hash-ref found pkg-name #f)) (unless dir (error 'link-all "requested package not available: ~s" pkg-name)) - (define i (get-info/full dir)) + (define i (get-pkg-info dir)) (define deps (extract-pkg-dependencies i #:filter? #t)) (set-union