[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  
     to describe all the elements necessary to install software  

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  
     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  
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  
being how metadata is represented (XML dinna exist when mtree was  
not how metadata roughly akin to stat(2) information is used.

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

73 de Jeff

More information about the lsb-discuss mailing list