Abdulaziz Ghuloum <[email protected]> writes:
>> The intent of categories is to allow for installing files from
>> different categories in different places, or even not at all (one
>> could for example tell the package manager to just install libraries
>> and programs, but not documentation and examples). Additionally, the
>> inventory creates a virtual namespace that is not necessarily
>> reflected by the filesystem namespace in the bundle -- you can
>> rearrange the filesystem tree to match what is expected for the
>> category.
>
> Good.
>
>> For illustration, consider a bundle containing dorodango and all its
>> dependencies. ...
>
> I think I fully understand now. [I might suggest that the syntax be
> abbreviated a bit but that's not crucial at this stage, so, I will
> refrain from making any suggestions]
>
FWIW, the syntax I've shown is just an RFC822-style serialization of the
package metadata; the thing you actually write is much more concise:
% cat dorodango/pkg-list.scm
(package (dorodango)
(depends (spells) (srfi))
(libraries (libs -> "dorodango"))
(programs (("scripts" "doro.sps") -> "doro.sps")))
% cat spells/pkg-list.scm
(package (spells)
(depends (srfi))
(libraries ("spells" . libs)))
The symbol `libs' in the above refers to a built-in "mapper" for library
files; it picks all files with extensions ".sls", ".ss" and ".scm", so
the renaming rule `(libs -> "dorodango")' takes all such files and puts
them under "dorodango/" in the constructed inventory, while the rule
`("spells" . libs)' takes all such files from below "spells/" and leaves
their pathnames as-is (as there's no arrow, and hence
right-hand-side). These rules all refer to pathnames relative to the
location of the pkg-list.scm file, of course.
Regards, Rotty
--
Andreas Rottmann -- <http://rotty.yi.org/>