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/>

Reply via email to