tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [libarchive-discuss] mtree(8) keyword clarification: "device"



Le 04/09/2013 05:44, Tim Kientzle a écrit :
Libarchive does it differently and log it as "device=native,<major>,<minor>" format.

Libarchive's mtree support has evolved quite a bit in order to
try to be more compatible with other implementations.  We're
happy to get help in continuing to improve this.

I believe the current code was heavily influenced by the FreeBSD
implementation of mtree(8), which is a little different from NetBSD's
implementation.

christos@ answered my question to this, and I pushed the code that does the format,major,minor parsing as well as "packing" (e.g. converting the format to the appropriate dev_t).

See https://github.com/libarchive/libarchive/pull/47

This would need a review though, I am familiar with NetBSD KNF, and not with libarchive's and its cmake :)

Libarchive tries to be intelligent about handling variant formats.
We would be happy to see patches that made this more
flexible.

See above.

It looks like it should be relatively simple to expand parse_device()
in libarchive/archive_read_support_format_mtree.c to handle other
formats.  I would suggest first checking for the number of comma
characters.

That's what I did.

Another question then: I am willing to extend mtree(5) format so it can store st_rdev (the resident device ID) and the inode so that I can obtain a "unique" node ID based on the device number on which the node reside combined with its own inode.

"device" being already used, I went with "resdevice" (for "resident device") and "inode".

My initial patch was against NetBSD's mtree(5) [1]; I turned the binary into a library for a $DAYJOB project, but joerg@ then suggested using libarchive, which already has mtree(5) support in addition to being, well... a library, with tons of other archives/compression formats recognized.

Indeed, the advice was good, and I moved to working with libarchive, but as our team already use mtree(5) quite extensively, I would like to make a drop-in replacement and have an mtree(8) binary based on libarchive (like bsdtar and cpio).

That could also provide the same mtree for both NetBSD and FreeBSD (through libarchive), but this is more "pie in the sky" for now. There's still some code to write before I achieve that purpose. Does that fit libarchive's goals too?

Thanks!

--
Jean-Yves Migeon


Home | Main Index | Thread Index | Old Index