Libburn umbrella project

Mario Đanić mario.danic at gmail.com
Thu Sep 7 15:35:28 UTC 2006


Libburn umbrella project

The project comprises of several more or less interdependent parts which
together strive to be a usable foundation for application development.
These are libraries, language bindings, and middleware binaries which emulate
classical (and valuable) Linux tools.

Our scope is currently Linux 2.4 and 2.6. That might chance in the future to
support other operating systems like BSD, Solaris, and Mac, tho we
are not sure about this at this moment.

We do have a workable code base for burning data and audio CDs. The burn API is
quite comprehensively documented (http://libburn-api.pykix.org) and
 can be used to build a presentable application.
We do have a functional binary which emulates parts of cdrecord in order to
prove that usability, and in order to allow you to explore libburn's scope
by help of existing cdrecord frontends.

The project components (list subject to growth, hopefully):

- libburn  is the library by which preformatted data get onto optical media.
           It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or
           /dev/hdX (e.g. on kernel 2.6).
           libburn is the foundation of our cdrecord emulation.

- libisofs is the library to pack up hard disk files and directories into a
           ISO 9660 disk image. This may then be brought to CD via libburn.
           libisofs is to be the foundation of our upcoming mkisofs
emulation (genisofs).


- cdrskin  is a limited cdrecord compatibility wrapper for libburn.
           Cdrecord is a powerful GPL'ed burn program included in Joerg
           Schilling's cdrtools. cdrskin strives to be a second source for
           the services traditionally provided by cdrecord.
           cdrskin does not contain any bytes copied from cdrecord's sources.
           Many bytes have been copied from the message output of cdrecord
           runs, though.
           See cdrskin/README for more.

- test     is a collection of application gestures and examples given by the
           authors of the library features. The main API example for libburn
           is test/libburner.c .
           Explore these examples if you look for inspiration.

We are also currently working on building a python extension (python
2.5) for libburn and libisofs libraries, and we hope we'll be able to
release at least libburn ones along with
our semi-stable 0.2.1 release.

What we are working on here isn't meant to be alternative to schily
stuff, it is meant to be a replacement, and it should also provide
backward compatibility to schily mkisofs and cdrecord thanks to
genisofs (yet to be started), and cdrskin.

Outside our tests, you can try cdrskin with any application which uses cdrecord.
For example you could try to burn a cd with k3b using cdrskin/libburn.
If you want instructions how to talk k3b into doing so, please ask.
Brasero 0.4.90 also has quite functional libburn/libisofs backend if you want
to try it out. http://gnomefiles.org/app.php/Brasero

The project webpage is currently situated at http://libburn.pykix.org

The project could need advise from or membership of skilled kernel
people and people who know how to talk CD/DVD drives into doing
things. Nevertheless, there are a lot of areas where you can
contribute as a developer even if you are not into kernel or talking
cd/dvd drives to do things, there are always genisofs, cdrskin,
libisofs, and not-so-low-lever parts of libburn. We also welcome ruby,
perl, c#/mono folks to create language bindings/extensions. The
project could also use testing efforts and bug reports.

If you have any questions, please don't hesitate to ask.

Kind regards,
Mario




More information about the fedora-devel-list mailing list