[OSUNIX-dev] Yet another package format - Feedback wanted

"C. Bergström" cbergstrom at netsyncro.com
Tue Jan 20 10:55:55 GMT 2009


Hi all..

I've collaborated with a number of people who have been in the packaging 
world for quite a while and came up with something that would probably 
be called XARv2.

More details can be found here [1], but wanted to share some quick 
numbers.. 

 1.3M   /usr/portage/packages/app-editors/vim-7.2.021.oxe
 1.5M   /usr/portage/packages/app-editors/vim-7.2.021.tbz2


time xar -xf /usr/portage/packages/app-editors/vim-7.2.021.oxe
0.15u 0.01s 0:00.18 88.8%

time gtar -xf /usr/portage/packages/app-editors/vim-7.2.021.tbz2
0.24u 0.02s 0:00.26 100.0%

# Someone correct me if I'm doing this wrong
time /usr/bin/star -x -bz < 
/usr/portage/packages/app-editors/vim-7.2.021.tbz2
0.24u 0.03s 0:00.35 77.1%

(When I get a chance I'll do it on a larger package.. 
java/sunstudioexpress..)

I ran it more than once and overall it seemed pretty consistent.. So 
what exactly is under the hood
.tbz2 ==  bzip2 compressed data, block size = 900k + xpak tagged on 
after EOF so that metadata can be easily extracted..
.oxe == xar archive - version 1 + xz (lzma2) compressed and using xar's 
built-in toc to store metadata (gzip)

Who else is using something similar?

tbz2 is used by Gentoo.. (anyone else?)
xar was/is used by macports, (Apple?) and also by rpm5.

I'll be ironing out metadata details a bit later today, but open to 
suggestions.  I'm initially including a qalevel in the metadata so that 
a policy by administrators can be used to filter out packages not 
meeting a certain level of assurance/testing. I have other ideas of how 
to build in tools so that customizing different aspects of the OS are 
policy based instead of requiring a reinstall.  The bottom line for 
administrators will be subscribing to "channels" which will have the 
choice between things like kde vs gnome vs E vs something else or mysql 
vs postgresql.. So if you have a custom postfix setup that's backed by 
postgresql you'll have a full stack compiled just for that and not just 
using the everything approach.  Of course this won't fit everyone, but 
making and maintaining custom channels should be fairly easy.

If you're good with python or C code I could use help to speed this up.  
Once the items on the packaging TODO [1] are done I'll push for more 
public testing and eventually ask for more community mirrors.

Thanks

./Christopher

#ospkg @ irc.freenode.net
http://www.osunix.org

[1] http://www.osunix.org/docs/DOC-1012




More information about the OSUNIX-dev mailing list