The 'link and 'static-link formats are the same as 'dir in terms of parsing, but they are treated differently for tasks such as package installation. The 'clone format is similarly the same as 'github or 'git in terms of parsing.
Changed in version 18.104.22.168 of package base: Added 'git.
Changed in version 22.214.171.124: Added 'clone.
source : string? type : (or/c package-source-format? #f) = #f
(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?
The complain-proc function is applied when source is ill-formed. The arguments to complain-proc are source and an error message.
If must-infer-name? is true, then complain-proc is called if a valid name cannot be inferred from source.
If link-dirs? is true, then a directory path is reported as type 'link instead of 'dir.
The package-source->path function is different from string->path in the case that source starts with file://. Also, if type is 'dir, 'link, or 'static-link, then path->directory-path is used to ensure that the result path refers to a directory.
Added in version 10.0.1.11 of package base.