[lsb-discuss] Using BSD mtree as a simple "ISV ready" representation

Jeff Johnson n3npq at mac.com
Thu Apr 17 13:28:53 PDT 2008


As a preliminary attempt to try implementing "The Berlin API" (whatever
that means), I have ported mtree(8) from some version of BSD closely
related to Mac OS X.

For those linux n00b's who don't know what mtree(8) does:

     mtree(8) defines a metadata representation that is sufficiently  
rich
     to describe all the elements necessary to install software  
reliably.

My interest was getting some well-understood (mtree(8) goes way way  
way back)
representation of packaging elements that was
     1) complete (in so far as tar/cpio archives are "complete")
     2) verifiable (in the sense that files can be verified after  
install).
     3) dirt simple to use.

mtree(8) certainly satisifes all of those goals.

The port exists, largely as a standalone *.c atm, that depends on
no "rpm5.org" technology that I am aware of.

Whether you like mtree(8) (or not), the representation used by mtree  
is well
understood. Changing an existing specification to, say, "an XML blob",
or to extend per-file data to include, say, SELinux attributes or ACL's
or xattr's or package/file representation or pre/post scripts or just  
about
anything else, is rather easy.

And the usage case for mtree is identical to what is being proposed
with a simplified "XML blob" package constructor afaict, the major  
difference
being how metadata is represented (XML dinna exist when mtree was  
written),
not how metadata roughly akin to stat(2) information is used.

The code is there for anyone who wishes. The ideas were implemented  
before
linux was born. Nothing new in stat(2) and digests and archives and  
packaging
since forever.

73 de Jeff





More information about the lsb-discuss mailing list