diff --git a/pkgs/distro-build/pack-and-catalog.rkt b/pkgs/distro-build/pack-and-catalog.rkt index af77b8b133..dba59b847d 100644 --- a/pkgs/distro-build/pack-and-catalog.rkt +++ b/pkgs/distro-build/pack-and-catalog.rkt @@ -17,6 +17,7 @@ (define relative? #t) (define get-modules? #f) (define checksum-dir #f) +(define source-checksums? #f) (define src-dirs (command-line @@ -27,6 +28,8 @@ (set! native? #t)] [("--absolute") "Record paths as absolute" (set! relative? #f)] + [("--source-checksum") "Compute checksum from source when not packing" + (set! source-checksums? #t)] [("--at-checksum") dir "Copy each to to /" (set! checksum-dir dir)] [("--mods") "Include modules and dependencies in catalog" @@ -73,9 +76,10 @@ (build-path (path->complete-path pack-dest-dir) zip-file))) + (define pkg-src-dir (build-path src-dir pkg-name)) + (when pack-dest-dir (define sum-file (path-add-suffix pkg-name #".srcsum")) - (define pkg-src-dir (build-path src-dir pkg-name)) (printf "summing ~a\n" pkg-src-dir) (define src-sha1 (sha1 (stream-directory pkg-src-dir))) (define dest-sum (build-path (path->complete-path pack-dest-dir) sum-file)) @@ -116,7 +120,11 @@ (define catalog-pkg-dir (build-path catalog-dir "pkg")) (define checksum (if dest-zip (call-with-input-file* dest-zip sha1) - "0")) + (if source-checksums? + (begin + (printf "summing ~a\n" pkg-src-dir) + (sha1 (stream-directory pkg-src-dir))) + "0"))) (define orig-dest (if dest-zip (build-path pack-dest-dir zip-file) #f))