7114
((3) 0 () 11 ((q lib "pkg/lib.rkt") (q lib "pkg/db.rkt") (q 24408 . 10) (q lib "pkg/path.rkt") (q lib "pkg/main.rkt") (q 20857 . 13) (q 21458 . 3) (q lib "pkg/name.rkt") (q 21417 . 2) (q 21533 . 3) (q lib "pkg/strip.rkt")) () (h ! (equal) ((c def c (c (? . 7) q package-source->path)) q (24260 . 4)) ((c def c (c (? . 4) q pkg-create-command)) q (1176 . 2)) ((c def c (c (? . 0) q pkg-config)) q (5369 . 7)) ((c def c (c (? . 0) q current-pkg-catalogs)) q (2116 . 4)) ((c def c (c (? . 0) q pkg-directory->additional-installs)) q (20029 . 14)) ((c def c (c (? . 3) q pkg-info?)) c (? . 5)) ((c def c (c (? . 1) q pkg)) c (? . 2)) ((c def c (c (? . 1) q pkg-desc)) c (? . 2)) ((c def c (c (? . 0) q pkg-migrate)) q (12481 . 28)) ((c def c (c (? . 0) q current-pkg-download-cache-max-files)) q (2534 . 4)) ((c def c (c (? . 0) q pkg-empty-trash)) q (16724 . 5)) ((c def c (c (? . 1) q set-pkg-ring!)) q (26533 . 5)) ((c def c (c (? . 3) q sc-pkg-info)) c (? . 8)) ((c def c (c (? . 4) q pkg-migrate-command)) q (1095 . 2)) ((c def c (c (? . 1) q get-pkg-ring)) q (26403 . 5)) ((c def c (c (? . 4) q pkg-archive-command)) q (1357 . 2)) ((c def c (c (? . 1) q set-pkg-modules!)) q (27298 . 9)) ((c def c (c (? . 0) q installed-pkg-names)) q (3651 . 4)) ((c def c (c (? . 1) q pkg-name)) c (? . 2)) ((c def c (c (? . 3) q pkg-info)) c (? . 5)) ((c def c (c (? . 1) q set-pkg!)) q (25484 . 16)) ((c def c (c (? . 0) q pkg-remove)) q (10779 . 21)) ((c def c (c (? . 1) q get-pkg-tags)) q (26145 . 4)) ((c def c (c (? . 0) q current-pkg-error)) q (2011 . 4)) ((c def c (c (? . 0) q get-all-pkg-details-from-catalogs)) q (18059 . 3)) ((c def c (c (? . 4) q pkg-empty-trash-command)) q (1398 . 2)) ((c def c (c (? . 1) q get-pkgs-without-modules)) q (27689 . 3)) ((c def c (c (? . 3) q read-pkgs-db)) q (23101 . 4)) ((c def c (c (? . 3) q path->pkg+subpath)) q (21771 . 5)) ((c def c (c (? . 4) q pkg-remove-command)) q (980 . 2)) ((c def c (c (? . 0) q get-pkg-content)) q (18605 . 17)) ((c def c (c (? . 0) q pkg-catalog-archive)) q (14931 . 18)) ((c def c (c (? . 0) q pkg-stage)) q (4582 . 22)) ((c def c (c (? . 1) q set-pkg-tags!)) q (26253 . 5)) ((c def c (c (? . 3) q pkg-info/alt)) c (? . 6)) ((c def c (c (? . 3) q pkg-info/alt-dir-name)) c (? . 6)) ((c def c (c (? . 0) q pkg-directory->module-paths)) q (19712 . 8)) ((c def c (c (? . 3) q struct:pkg-info/alt)) c (? . 6)) ((c def c (c (? . 3) q path->pkg+subpath+collect+scope)) q (22542 . 9)) ((c def c (c (? . 1) q pkg?)) c (? . 2)) ((c def c (c (? . 1) q set-pkg-dependencies!)) q (26837 . 9)) ((c def c (c (? . 10) q check-strip-compatible)) q (279 . 9)) ((c def c (c (? . 1) q get-pkg-dependencies)) q (26688 . 5)) ((c def c (c (? . 3) q struct:sc-pkg-info/alt)) c (? . 9)) ((c def c (c (? . 0) q pkg-desc)) q (4060 . 14)) ((c def c (c (? . 4) q pkg-config-command)) q (1136 . 2)) ((c def c (c (? . 4) q pkg-install-command)) q (899 . 2)) ((c def c (c (? . 0) q pkg-catalog-update-local)) q (16899 . 13)) ((c def c (c (? . 3) q struct:pkg-info)) c (? . 5)) ((c def c (c (? . 1) q pkg-checksum)) c (? . 2)) ((c def c (c (? . 7) q package-source->name)) q (23409 . 4)) ((c def c (c (? . 0) q default-pkg-scope)) q (3519 . 3)) ((c def c (c (? . 3) q pkg-info-auto?)) c (? . 5)) ((c def c (c (? . 3) q struct:sc-pkg-info)) c (? . 8)) ((c def c (c (? . 3) q pkg-info/alt?)) c (? . 6)) ((c def c (c (? . 1) q set-catalogs!)) q (24925 . 3)) ((c def c (c (? . 4) q pkg-catalog-archive-command)) q (1308 . 2)) ((c def c (c (? . 0) q installed-pkg-table)) q (3822 . 5)) ((c def c (c (? . 3) q path->pkg)) q (21614 . 4)) ((c def c (c (? . 3) q get-pkgs-dir)) q (22892 . 5)) ((c def c (c (? . 0) q pkg-desc?)) q (4005 . 3)) ((c def c (c (? . 0) q get-pkg-details-from-catalogs)) q (18155 . 4)) ((c def c (c (? . 1) q make-pkg)) c (? . 2)) ((c def c (c (? . 1) q get-module-pkgs)) q (27595 . 3)) ((c form c (c (? . 0) q with-pkg-lock)) q (1443 . 2)) ((c def c (c (? . 1) q get-catalogs)) q (24877 . 2)) ((c def c (c (? . 0) q pkg-directory)) q (3349 . 4)) ((c def c (c (? . 1) q get-pkg-modules)) q (27147 . 5)) ((c def c (c (? . 0) q pkg-single-collection)) q (18267 . 8)) ((c def c (c (? . 0) q current-pkg-scope-version)) q (1787 . 4)) ((c def c (c (? . 4) q pkg-catalog-show-command)) q (1216 . 2)) ((c def c (c (? . 0) q pkg-archive-pkgs)) q (15879 . 17)) ((c form c (c (? . 0) q with-pkg-lock/read-only)) q (1478 . 2)) ((c def c (c (? . 1) q set-pkgs!)) q (25167 . 8)) ((c def c (c (? . 3) q read-pkg-file-hash)) q (23274 . 3)) ((c def c (c (? . 3) q pkg-info-checksum)) c (? . 5)) ((c def c (c (? . 0) q current-pkg-download-cache-dir)) q (2324 . 5)) ((c def c (c (? . 1) q current-pkg-catalog-file)) q (24675 . 4)) ((c def c (c (? . 1) q pkg-source)) c (? . 2)) ((c def c (c (? . 4) q pkg-catalog-copy-command)) q (1262 . 2)) ((c def c (c (? . 0) q pkg-config-catalogs)) q (2269 . 2)) ((c def c (c (? . 0) q current-pkg-network-retries)) q (3194 . 4)) ((c def c (c (? . 0) q pkg-update)) q (8413 . 46)) ((c def c (c (? . 0) q pkg-catalog-show)) q (13856 . 9)) ((c def c (c (? . 3) q path->pkg+subpath+collect)) q (22273 . 8)) ((c def c (c (? . 7) q package-source->name+type)) q (23561 . 14)) ((c def c (c (? . 0) q pkg-install)) q (6465 . 38)) ((c def c (c (? . 4) q pkg-show-command)) q (1057 . 2)) ((q def ((lib "pkg/dirs-catalog.rkt") create-dirs-catalog)) q (27811 . 15)) ((c def c (c (? . 0) q get-all-pkg-names-from-catalogs)) q (17992 . 2)) ((c def c (c (? . 3) q sc-pkg-info/alt)) c (? . 9)) ((c def c (c (? . 0) q extract-pkg-dependencies)) q (19261 . 10)) ((c def c (c (? . 0) q get-all-pkg-scopes)) q (17909 . 3)) ((c def c (c (? . 0) q current-pkg-scope)) q (1523 . 6)) ((c def c (c (? . 1) q pkg-author)) c (? . 2)) ((c def c (c (? . 10) q fixup-local-redirect-reference)) q (610 . 5)) ((c def c (c (? . 1) q struct:pkg)) c (? . 2)) ((c def c (c (? . 1) q pkg-catalog)) c (? . 2)) ((c def c (c (? . 3) q path->pkg+subpath+scope)) q (21963 . 8)) ((c def c (c (? . 1) q call-with-pkgs-transaction)) q (24800 . 3)) ((c def c (c (? . 0) q pkg-catalog-suggestions-for-module)) q (17587 . 7)) ((c def c (c (? . 0) q pkg-new)) q (11681 . 3)) ((c def c (c (? . 7) q package-source-format?)) q (23341 . 3)) ((c def c (c (? . 0) q current-pkg-trash-max-packages)) q (2872 . 4)) ((c def c (c (? . 0) q pkg-catalog-copy)) q (14224 . 16)) ((c def c (c (? . 0) q pkg-show)) q (11746 . 17)) ((c def c (c (? . 3) q sc-pkg-info?)) c (? . 8)) ((c def c (c (? . 0) q current-pkg-trash-max-seconds)) q (3035 . 4)) ((c def c (c (? . 3) q sc-pkg-info/alt?)) c (? . 9)) ((c def c (c (? . 1) q get-pkgs)) q (25007 . 4)) ((c def c (c (? . 0) q current-pkg-download-cache-max-bytes)) q (2703 . 4)) ((c def c (c (? . 4) q pkg-update-command)) q (940 . 2)) ((c def c (c (? . 4) q pkg-new-command)) q (1020 . 2)) ((c def c (c (? . 10) q strip-binary-compile-info)) q (775 . 4)) ((c def c (c (? . 3) q sc-pkg-info/alt-dir-name)) c (? . 9)) ((c def c (c (? . 10) q generate-stripped-directory)) q (0 . 7)) ((c def c (c (? . 0) q current-pkg-lookup-version)) q (1898 . 4)) ((c def c (c (? . 3) q pkg-info-orig-pkg)) c (? . 5)) ((c def c (c (? . 0) q pkg-create)) q (5668 . 15))))
procedure
(generate-stripped-directory mode          
                             src-dir       
                             dest-dir) -> void?
  mode : (or/c 'source 'binary 'binary-lib 'built)
  src-dir : path-string?
  dest-dir : path-string?
procedure
(check-strip-compatible mode         
                        pkg-name     
                        dir          
                        error)   -> any
  mode : (or/c 'source 'binary 'binary-lib 'built)
  pkg-name : string?
  dir : path-string?
  error : (string? . -> . any)
procedure
(fixup-local-redirect-reference file         
                                js-path) -> void?
  file : path-string?
  js-path : string?
parameter
(strip-binary-compile-info) -> boolean?
(strip-binary-compile-info compile?) -> void?
  compile? : any/c
value
pkg-install-command : procedure?
value
pkg-update-command : procedure?
value
pkg-remove-command : procedure?
value
pkg-new-command : procedure?
value
pkg-show-command : procedure?
value
pkg-migrate-command : procedure?
value
pkg-config-command : procedure?
value
pkg-create-command : procedure?
value
pkg-catalog-show-command : procedure?
value
pkg-catalog-copy-command : procedure?
value
pkg-catalog-archive-command : procedure?
value
pkg-archive-command : procedure?
value
pkg-empty-trash-command : procedure?
syntax
(with-pkg-lock body ...+)
syntax
(with-pkg-lock/read-only body ...+)
parameter
(current-pkg-scope) -> (or/c 'installation 'user
                             (and/c path? complete-path?))
(current-pkg-scope scope) -> void?
  scope : (or/c 'installation 'user
                (and/c path? complete-path?))
parameter
(current-pkg-scope-version) -> string?
(current-pkg-scope-version s) -> void?
  s : string?
parameter
(current-pkg-lookup-version) -> string?
(current-pkg-lookup-version s) -> void?
  s : string?
parameter
(current-pkg-error) -> procedure?
(current-pkg-error err) -> void?
  err : procedure?
parameter
(current-pkg-catalogs) -> (or/c #f (listof url?))
(current-pkg-catalogs catalogs) -> void?
  catalogs : (or/c #f (listof url?))
procedure
(pkg-config-catalogs) -> (listof string?)
parameter
(current-pkg-download-cache-dir)
 -> (or/c #f (and/c path-string? complete-path?))
(current-pkg-download-cache-dir dir) -> void?
  dir : (or/c #f (and/c path-string? complete-path?))
parameter
(current-pkg-download-cache-max-files) -> (or/c #f real?)
(current-pkg-download-cache-max-files max-files) -> void?
  max-files : (or/c #f real?)
parameter
(current-pkg-download-cache-max-bytes) -> (or/c #f real?)
(current-pkg-download-cache-max-bytes max-bytes) -> void?
  max-bytes : (or/c #f real?)
parameter
(current-pkg-trash-max-packages) -> (or/c #f real?)
(current-pkg-trash-max-packages max-packages) -> void?
  max-packages : (or/c #f real?)
parameter
(current-pkg-trash-max-seconds) -> (or/c #f real?)
(current-pkg-trash-max-seconds max-seconds) -> void?
  max-seconds : (or/c #f real?)
parameter
(current-pkg-network-retries) -> (or/c #f real?)
(current-pkg-network-retries max-retries) -> void?
  max-retries : (or/c #f real?)
procedure
(pkg-directory name [#:cache cache]) -> (or/c path-string? #f)
  name : string?
  cache : (or/c #f (and/c hash? (not/c immutable?))) = #f
procedure
(default-pkg-scope) -> (or/c 'installation 'user
                              (and/c path? complete-path?))
procedure
(installed-pkg-names #:scope scope) -> (listof string?)
  scope : (or/c #f 'installation 'user
                (and/c path? complete-path?))
procedure
(installed-pkg-table #:scope scope)
 -> (hash/c string? pkg-info?)
  scope : (or/c #f 'installation 'user
                (and/c path? complete-path?))
procedure
(pkg-desc? v) -> boolean?
  v : any/c
procedure
(pkg-desc  source            
           type              
           name              
           checksum          
           auto?             
          [#:path path]) -> pkg-desc?
  source : string?
  type : (or/c #f 'name 'file 'dir 'link 'static-link
               'file-url 'dir-url 'git 'github 'clone)
  name : (or/c string? #f)
  checksum : (or/c string? #f)
  auto? : boolean?
  path : (or/c #f path-string?) = #f
procedure
(pkg-stage  desc                         
           [#:checksum checksum          
            #:in-place? in-place?        
            #:namespace namespace        
            #:strip strip                
            #:force-strip? force-string? 
            #:use-cache? use-cache?      
            #:quiet? quiet?])            
 -> string?
    path?
    (or/c #f string?)
    boolean?
    (listof module-path?)
  desc : pkg-desc?
  checksum : (or/c #f string?) = #f
  in-place? : boolean? = #f
  namespace : namespace? = (make-base-namespace)
  strip : (or/c #f 'source 'binary 'binary-lib) = #f
  force-string? : boolean? = #f
  use-cache? : boolean? = #f
  quiet? : boolean? = #t
procedure
(pkg-config  set?                                          
             keys/vals                                     
            [#:from-command-line? from-command-line?]) -> void?
  set? : boolean?
  keys/vals : list?
  from-command-line? : boolean? = #f
procedure
(pkg-create  format                                        
             dir                                           
             #:source source                               
             #:mode mode                                   
             #:dest dest-dir                               
            [#:quiet? quiet?                               
             #:from-command-line? from-command-line?]) -> void?
  format : (or/c 'zip 'tgz 'plt 'MANIFEST)
  dir : path-string?
  source : (or/c 'dir 'name)
  mode : (or/c 'as-is 'source 'binary 'binary-lib 'built)
  dest-dir : (or/c (and/c path-string? complete-path?) #f)
  quiet? : boolean? = #f
  from-command-line? : boolean? = #f
procedure
(pkg-install  descs                                         
             [#:dep-behavior dep-behavior                   
              #:update-deps? update-deps?                   
              #:force? force?                               
              #:ignore-checksums? ignore-checksums?         
              #:strict-doc-conflicts? strict-doc-conflicts? 
              #:use-cache? use-cache?                       
              #:quiet? quiet?                               
              #:use-trash? use-trash?                       
              #:from-command-line? from-command-line?       
              #:strip strip                                 
              #:force-strip? force-string?                  
              #:multi-clone-mode multi-clone-mode           
              #:pull-mode pull-mode                         
              #:link-dirs? link-dirs?                       
              #:dry-run? dry-run?])                         
 -> (or/c 'skip
          #f
          (listof (or/c path-string?
                        (non-empty-listof path-string?))))
  descs : (listof pkg-desc?)
  dep-behavior : (or/c #f 'fail 'force 'search-ask 'search-auto)
               = #f
  update-deps? : boolean? = #f
  force? : boolean? = #f
  ignore-checksums? : boolean? = #f
  strict-doc-conflicts? : boolean? = #f
  use-cache? : boolean? = #t
  quiet? : boolean? = #f
  use-trash? : boolean? = #f
  from-command-line? : boolean? = #f
  strip : (or/c #f 'source 'binary 'binary-lib) = #f
  force-string? : boolean? = #f
  multi-clone-mode : (or/c 'fail 'force 'convert 'ask) = 'fail
  pull-mode : (or/c 'ff-only 'try 'rebase) = 'ff-only
  link-dirs? : boolean? = #f
  dry-run? : boolean? = #f
procedure
(pkg-update  sources                                       
            [#:all? all?                                   
             #:dep-behavior dep-behavior                   
             #:update-deps? update-deps?                   
             #:force? force?                               
             #:ignore-checksums? ignore-checksums?         
             #:strict-doc-conflicts? strict-doc-conflicts? 
             #:use-cache? use-cache?                       
             #:skip-uninstalled? skip-uninstalled?         
             #:quiet? quiet?                               
             #:use-trash? use-trash?                       
             #:from-command-line? from-command-line?       
             #:strip strip                                 
             #:force-strip? force-string?                  
             #:lookup-for-clone? lookup-for-clone?         
             #:multi-clone-mode multi-clone-mode           
             #:pull-mode pull-mode                         
             #:link-dirs? link-dirs?                       
             #:infer-clone-from-dir? infer-clone-from-dir? 
             #:dry-run? dry-run?])                         
 -> (or/c 'skip
          #f
          (listof (or/c path-string?
                        (non-empty-listof path-string?))))
  sources : (listof (or/c string? pkg-desc?))
  all? : boolean? = #f
  dep-behavior : (or/c #f 'fail 'force 'search-ask 'search-auto)
               = #f
  update-deps? : boolean? = #f
  force? : boolean? = #f
  ignore-checksums? : boolean? = #f
  strict-doc-conflicts? : boolean? = #f
  use-cache? : boolean? = #t
  skip-uninstalled? : boolean? = #t
  quiet? : boolean? = #f
  use-trash? : boolean? = #f
  from-command-line? : boolean? = #f
  strip : (or/c #f 'source 'binary 'binary-lib) = #f
  force-string? : boolean? = #f
  lookup-for-clone? : boolean? = #f
  multi-clone-mode : (or/c 'fail 'force 'convert 'ask) = 'fail
  pull-mode : (or/c 'ff-only 'try 'rebase) = 'ff-only
  link-dirs? : boolean? = #f
  infer-clone-from-dir? : boolean? = #f
  dry-run? : boolean? = #f
procedure
(pkg-remove  names                                   
            [#:demote? demote?                       
             #:auto? auto?                           
             #:force? force?                         
             #:quiet? quiet?                         
             #:use-trash? boolean?                   
             #:from-command-line? from-command-line? 
             #:dry-run? dry-run?])                   
 -> (or/c 'skip
          #f
          (listof (or/c path-string?
                        (non-empty-listof path-string?))))
  names : (listof string?)
  demote? : boolean? = #f
  auto? : boolean? = #f
  force? : boolean? = #f
  quiet? : boolean? = #f
  boolean? : use-trash? = #f
  from-command-line? : boolean? = #f
  dry-run? : boolean? = #f
procedure
(pkg-new name) -> (void?)
  name : path-string?
procedure
(pkg-show  indent                              
           pkgs-or-patterns                    
          [#:prefix-line prefix-line           
           #:auto? auto?                       
           #:rx? rx?                           
           #:long? long?                       
           #:full-checksum? full-checksum?     
           #:directory show-dir?])         -> void?
  indent : string?
  pkgs-or-patterns : (or/c #f (listof string?))
  prefix-line : (or/c #f string?) = #f
  auto? : boolean? = #f
  rx? : boolean? = #f
  long? : boolean? = #f
  full-checksum? : boolean? = #f
  show-dir? : boolean? = #f
procedure
(pkg-migrate  from-version                                  
             [#:dep-behavior dep-behavior                   
              #:force? force?                               
              #:use-cache? use-cache?                       
              #:ignore-checksums? ignore-checksums?         
              #:strict-doc-conflicts? strict-doc-conflicts? 
              #:quiet? quiet?                               
              #:from-command-line? from-command-line?       
              #:strip strip                                 
              #:force-strip? force-string?                  
              #:dry-run? dry-run?])                         
 -> (or/c 'skip
          #f
          (listof (or/c path-string?
                        (non-empty-listof path-string?))))
  from-version : string?
  dep-behavior : (or/c #f 'fail 'force 'search-ask 'search-auto)
               = #f
  force? : boolean? = #f
  use-cache? : boolean? = #t
  ignore-checksums? : boolean? = #f
  strict-doc-conflicts? : boolean? = #f
  quiet? : boolean? = #f
  from-command-line? : boolean? = #f
  strip : (or/c #f 'source 'binary 'binary-lib) = #f
  force-string? : boolean? = #f
  dry-run? : boolean? = #f
procedure
(pkg-catalog-show  names                         
                  [#:all? all?                   
                   #:only-names? only-names?     
                   #:modules? modules?])     -> void?
  names : (listof string?)
  all? : boolean? = #f
  only-names? : boolean? = #f
  modules? : boolean? = #f
procedure
(pkg-catalog-copy  sources                                 
                   dest                                    
                  [#:from-config? from-config?             
                   #:merge? merge?                         
                   #:force? force?                         
                   #:override? override?                   
                   #:relative-sources? relative-sources?]) 
 -> void?
  sources : (listof path-string?)
  dest : path-string?
  from-config? : boolean? = #f
  merge? : boolean? = #f
  force? : boolean? = #f
  override? : boolean? = #f
  relative-sources? : boolean? = #f
procedure
(pkg-catalog-archive                                              
                      dest-dir                                    
                      sources                                     
                     [#:from-config? from-config?                 
                      #:state-catalog state-catalog               
                      #:relative-sources? relative-sources?       
                      #:quiet? quiet?                             
                      #:package-exn-handler package-exn-handler]) 
 -> void?
  dest-dir : path-string?
  sources : (listof path-string?)
  from-config? : boolean? = #f
  state-catalog : (or/c #f path-string?) = #f
  relative-sources? : boolean? = #f
  quiet? : boolean? = #f
  package-exn-handler : (string? exn:fail? . -> . any)
                      = (lambda (pkg-name exn) (raise exn))
procedure
(pkg-archive-pkgs  dest-dir                                    
                   pkgs                                        
                  [#:include-deps? include-deps?               
                   #:exclude exclude                           
                   #:relative-sources? relative-sources?       
                   #:quiet? quiet?                             
                   #:package-exn-handler package-exn-handler]) 
 -> void?
  dest-dir : path-string?
  pkgs : (listof path-string?)
  include-deps? : boolean? = #f
  exclude : (listof string?) = null
  relative-sources? : boolean? = #f
  quiet? : boolean? = #f
  package-exn-handler : (string? exn:fail? . -> . any)
                      = (lambda (pkg-name exn) (raise exn))
procedure
(pkg-empty-trash [#:list? show-list?     
                  #:quiet? quiet?])  -> void?
  show-list? : boolean? = #f
  quiet? : boolean? = #t
procedure
(pkg-catalog-update-local                                          
                          [#:catalogs catalogs                     
                           #:catalog-file catalog-file             
                           #:quiet? quiet?                         
                           #:set-catalogs? set-catalogs?           
                           #:consult-packages? consult-packages?]) 
 -> void?
  catalogs : (listof string?) = (pkg-config-catalogs)
  catalog-file : path-string? = (current-pkg-catalog-file)
  quiet? : boolean? = #f
  set-catalogs? : boolean? = #t
  consult-packages? : boolean? = #f
procedure
(pkg-catalog-suggestions-for-module                                
                                     module-path                   
                                    [#:catalog-file catalog-file]) 
 -> (listof string?)
  module-path : module-path?
  catalog-file : path-string? = ....
procedure
(get-all-pkg-scopes)
 -> (listof (or/c 'installation 'user path?))
procedure
(get-all-pkg-names-from-catalogs) -> (listof string?)
procedure
(get-all-pkg-details-from-catalogs)
 -> (hash/c string? (hash/c symbol? any/c))
procedure
(get-pkg-details-from-catalogs name)
 -> (or/c #f (hash/c symbol? any/c))
  name : string?
procedure
(pkg-single-collection  dir                     
                       [#:name name             
                        #:namespace namespace]) 
 -> (or/c #f string?)
  dir : path-string?
  name : string? = (elem "... from "(racket dir)" ...")
  namespace : namespace? = (make-base-namespapce)
procedure
(get-pkg-content  desc                        
                 [#:extract-info extract-proc 
                  #:namespace namespace       
                  #:use-cache? use-cache?     
                  #:quiet? quiet?])           
 -> (or/c #f string?)
    (listof module-path?)
    any/c
  desc : pkg-desc?
  extract-proc : ((or/c #f
                        ((symbol?) ((-> any)) . ->* . any))
                  . -> . any)
               = (lambda (get-pkg-info) ...)
  namespace : namespace? = (make-base-namespace)
  use-cache? : boolean? = #f
  quiet? : boolean? = #t
procedure
(extract-pkg-dependencies  info                      
                          [#:build-deps? build-deps? 
                           #:filter? filter?         
                           #:versions? versions?])   
 -> (listof (or/c string? (cons/c string? list?)))
  info : (symbol? (-> any/c) . -> . any/c)
  build-deps? : boolean? = #t
  filter? : boolean? = #f
  versions? : boolean? = #f
procedure
(pkg-directory->module-paths  dir                     
                              pkg-name                
                             [#:namespace namespace]) 
 -> (listof module-path?)
  dir : path-string?
  pkg-name : string
  namespace : namespace? = (make-base-namespace)
procedure
(pkg-directory->additional-installs                                             
                                     dir                                        
                                     pkg-name                                   
                                    [#:namespace namespace                      
                                     #:system-type sys-type                     
                                     #:system-library-subpath sys-lib-subpath]) 
 -> (listof (cons/c symbol? string?))
  dir : path-string?
  pkg-name : string
  namespace : namespace? = (make-base-namespace)
  sys-type : (or/c #f symbol?) = (system-type)
  sys-lib-subpath : (or/c #f path-for-some-system?)
                  = (system-library-subpath #f)
struct
(struct pkg-info (orig-pkg checksum auto?)
    #:prefab)
  orig-pkg : (or/c (list/c 'catalog string?)
                   (list/c 'catalog string? string?)
                   (list/c 'url string?)
                   (list/c 'file string?)
                   (list/c 'dir string?)
                   (list/c 'link string?)
                   (list/c 'static-link string?)
                   (list/c 'clone string? string?))
  checksum : (or/c #f string?)
  auto? : boolean?
struct
(struct sc-pkg-info pkg-info ())
struct
(struct pkg-info/alt pkg-info (dir-name))
  dir-name : string?
struct
(struct sc-pkg-info/alt sc-pkg-info (dir-name))
  dir-name : string?
procedure
(path->pkg path #:cache cache) -> (or/c string? #f)
  path : path-string?
  cache : (or/c #f (and/c hash? (not/c immutable?)))
procedure
(path->pkg+subpath path #:cache cache)
 -> (or/c string? #f) (or/c path? 'same #f)
  path : path-string?
  cache : (or/c #f (and/c hash? (not/c immutable?)))
procedure
(path->pkg+subpath+scope path           
                         #:cache cache) 
 -> (or/c string? #f)
    (or/c path? 'same #f)
    (or/c 'installation 'user (and/c path? complete-path?) #f)
  path : path-string?
  cache : (or/c #f (and/c hash? (not/c immutable?)))
procedure
(path->pkg+subpath+collect path           
                           #:cache cache) 
 -> (or/c string? #f)
    (or/c path? 'same #f)
    (or/c string? #f)
  path : path-string?
  cache : (or/c #f (and/c hash? (not/c immutable?)))
procedure
(path->pkg+subpath+collect+scope path           
                                 #:cache cache) 
 -> (or/c string? #f)
    (or/c path? 'same #f)
    (or/c string? #f)
    (or/c 'installation 'user (and/c path? complete-path?) #f)
  path : path-string?
  cache : (or/c #f (and/c hash? (not/c immutable?)))
procedure
(get-pkgs-dir scope [user-version]) -> path?
  scope : (or/c 'installation 'user 'shared
                 (and/c path? complete-path?))
  user-version : string? = (version)
procedure
(read-pkgs-db scope) -> (hash/c string? pkg-info?)
  scope : (or/c 'installation 'user 'shared
                 (and/c path? complete-path?))
procedure
(read-pkg-file-hash path) -> hash?
  path : path?
procedure
(package-source-format? v) -> boolean?
  v : any/c
procedure
(package-source->name source [type]) -> (or/c #f string?)
  source : string?
  type : (or/c package-source-format? #f) = #f
procedure
(package-source->name+type                                       
                            source                               
                           [type                                 
                            #:complain complain-proc             
                            #:must-infer-name? must-infer-name?] 
                            #:link-dirs? link-dir?)              
 -> (or/c #f string?)
    (or/c package-source-format? #f)
  source : string?
  type : (or/c package-source-format? #f) = #f
  complain-proc : (string? string? . -> . any) = void
  must-infer-name? : boolean? = #f
  link-dir? : boolean?
procedure
(package-source->path source [type]) -> path?
  source : string?
  type : (or/c #f 'file 'dir 'link 'static-link) = #f
struct
(struct pkg (name catalog author source checksum desc)
    #:extra-constructor-name make-pkg
    #:transparent)
  name : string?
  catalog : string?
  author : string?
  source : string?
  checksum : string?
  desc : string?
parameter
(current-pkg-catalog-file) -> path-string?
(current-pkg-catalog-file file) -> void?
  file : path-string?
procedure
(call-with-pkgs-transaction proc) -> any
  proc : (-> any)
procedure
(get-catalogs) -> (listof string?)
procedure
(set-catalogs! catalogs) -> void?
  catalogs : (listof string?)
procedure
(get-pkgs [#:name name #:catalog catalog]) -> (listof pkg?)
  name : (or/c #f string?) = #f
  catalog : (or/c #f string?) = #f
procedure
(set-pkgs! catalog                                          
           pkgs                                             
           #:clear-other-checksums? clear-other-checksums?) 
 -> void?
  catalog : string?
  pkgs : (listof (or/c string? pkg?))
  clear-other-checksums? : #t
procedure
(set-pkg! name                                             
          catalog                                          
          author                                           
          source                                           
          checksum                                         
          desc                                             
          #:clear-other-checksums? clear-other-checksums?) 
 -> void?
  name : string?
  catalog : string?
  author : string?
  source : string?
  checksum : string?
  desc : string?
  clear-other-checksums? : (not (equal? checksum ""))
procedure
(get-pkg-tags name catalog) -> (listof string?)
  name : string?
  catalog : string?
procedure
(set-pkg-tags! name catalog module-paths) -> void?
  name : string?
  catalog : string?
  module-paths : (listof string?)
procedure
(get-pkg-ring name catalog)
 -> (or/c #f exact-nonnegative-integer?)
  name : string?
  catalog : string?
procedure
(set-pkg-ring! name catalog ring) -> void?
  name : string?
  catalog : string?
  ring : (or/c #f exact-nonnegative-integer?)
procedure
(get-pkg-dependencies name catalog checksum) -> (listof list?)
  name : string?
  catalog : string?
  checksum : string?
procedure
(set-pkg-dependencies! name              
                       catalog           
                       checksum          
                       dependencies) -> void?
  name : string?
  catalog : string?
  checksum : string?
  dependencies : (listof any/c)
procedure
(get-pkg-modules name catalog checksum) -> (listof module-path?)
  name : string?
  catalog : string?
  checksum : string?
procedure
(set-pkg-modules! name              
                  catalog           
                  checksum          
                  module-paths) -> void?
  name : string?
  catalog : string?
  checksum : string?
  module-paths : (listof module-path?)
procedure
(get-module-pkgs module-path) -> (listof pkg?)
  module-path : module-path?
procedure
(get-pkgs-without-modules [#:catalog catalog]) -> (listof pkg?)
  catalog : (or/c #f string?) = #f
procedure
(create-dirs-catalog  catalog-path                          
                      dirs                                  
                     [#:immediate? immediate?               
                      #:link? link?                         
                      #:merge? merge?                       
                      #:check-metadata? check-metadata?     
                      #:status-printf status-printf])   -> void?
  catalog-path : path-string?
  dirs : (listof path-string?)
  immediate? : any/c = #f
  link? : any/c = #f
  merge? : any/c = #f
  check-metadata? : any/c = #f
  status-printf : (string? any/c ... -> void?) = void
