Updated project interrelations

This commit is contained in:
Thomas Schmitt 2008-02-16 12:37:09 +00:00
parent 6fc60be93c
commit bccb39efd8
3 changed files with 96 additions and 38 deletions

84
README
View File

@ -40,12 +40,18 @@ into its toplevel directory (here: "libburn") and execute
make make
To make the libraries accessible for running resp. developing applications To make the libraries accessible for running resp. developing applications
and to install the cdrecord compatibility binary cdrskin, do:
make install make install
The other half of the project, libisofs, is hosted in the libburnia SVN, too: An important part of the project, libisofs, is hosted in a bzr repository at
svn co http://svn.libburnia-project.org/libisofs/trunk libisofs launchpad.net :
See README file there. bzr branch lp:libisofs
Another part the project, libisoburn, is hosted in the libburnia SVN, too:
svn co http://svn.libburnia-project.org/libisoburn/trunk libisoburn
See README files there.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
@ -67,29 +73,39 @@ we would need : login on a development machine resp. a live OS on CD or DVD,
advise from a system person about the equivalent of Linux sg or FreeBSD CAM, advise from a system person about the equivalent of Linux sg or FreeBSD CAM,
volunteers for testing of realistic use cases. volunteers for testing of realistic use cases.
We have a workable code base for burning CD and most single layer DVD. We have a well tested code base for burning data and audio CDs and many DVD
The burn API is quite comprehensively documented and can be used to build a types. The burn API is quite comprehensively documented and can be used to
presentable application. build a presentable application.
We have a functional binary which emulates parts of cdrecord in order to We have a functional binary which emulates the core use cases of cdrecord in
prove that usability, and in order to allow you to explore libburnia's scope order to prove that usability, and in order to allow you to explore libburn's
by help of existing cdrecord frontends. scope by help of existing cdrecord frontends.
ISO 9660 filesystems with Rock Ridge and Joliet extensions can be created
and manipulated quite freely. This capability together with our burn capability
makes possible a single binary application which covers all steps of image
composition, updating and writing. Quite unique in the Linux world.
The project components (list subject to growth, hopefully): The project components (list subject to growth, hopefully):
- libburn is the library by which preformatted data get onto optical media. - 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 It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or
/dev/hdX (e.g. on kernel 2.6). /dev/srM or /dev/hdX (e.g. on kernel 2.6).
libburn is the foundation of our cdrecord emulation. Its code is libburn is the foundation of our cdrecord emulation. Its code is
independent of cdrecord. Its DVD capabilities are learned from independent of cdrecord. Its DVD capabilities are learned from
studying the code of dvd+rw-tools and MMC-5 specs. No code but only studying the code of dvd+rw-tools and MMC-5 specs. No code but only
the pure SCSI knowledge has been taken from dvd+rw-tools, though. the pure SCSI knowledge has been taken from dvd+rw-tools, though.
- libisofs is the library to pack up hard disk files and directories into a - libisofs is the library to pack up hard disk files and directories into a
ISO 9660 disk image. This may then be brought to media via libburn. ISO 9660 disk image. This may then be brought to CD via libburn.
libisofs is to be the foundation of our upcoming mkisofs emulation. libisofs is to be the foundation of our upcoming mkisofs emulation.
- libisoburn is an add-on to libburn and libisofs which coordinates both and
also allows to grow ISO-9660 filesystem images on multi-session
media as well as on overwriteable media via the same API.
All media peculiarities are handled automatically.
- cdrskin is a limited cdrecord compatibility wrapper for libburn. - cdrskin is a limited cdrecord compatibility wrapper for libburn.
Cdrecord is a powerful GPL'ed burn program included in Joerg cdrecord is a powerful GPL'ed burn program included in Joerg
Schilling's cdrtools. cdrskin strives to be a second source for Schilling's cdrtools. cdrskin strives to be a second source for
the services traditionally provided by cdrecord. Additionally it the services traditionally provided by cdrecord. Additionally it
provides libburn's DVD capabilities, where only -sao is compatible provides libburn's DVD capabilities, where only -sao is compatible
@ -97,14 +113,34 @@ The project components (list subject to growth, hopefully):
cdrskin does not contain any bytes copied from cdrecord's sources. cdrskin does not contain any bytes copied from cdrecord's sources.
Many bytes have been copied from the message output of cdrecord Many bytes have been copied from the message output of cdrecord
runs, though. runs, though.
See cdrskin/README and man cdrskin/cdrskin.1 for more. See cdrskin/README for more.
- test is a collection of application gestures and examples given by the - xorriso is an application of all three libraries which creates, loads,
authors of the library features. The main API example for libburn manipulates and writes ISO 9660 filesystem images with
is test/libburner.c . Rock Ridge extensions. Manipulation is not only adding or
overwriting of files but also deletion, renaming, and attribute
changing.
See libisoburn/README for more
- "test" is a collection of application gestures and examples given by the
authors of the library features. The burn API example of libburn
is named test/libburner.c . The API for media information inquiry is
demonstrated in test/telltoc.c .
Explore these examples if you look for inspiration. Explore these examples if you look for inspiration.
We plan to be a responsive upstream. Bear with us. We are still practicing. We strive to be a responsive upstream.
Our libraries are committed to maintain older feature sets in newer versions.
This applies to source code headers (API) as well as to linkable objects (ABI).
The only exception from this rule is about non-release versions x.y.*[13579]
which are allowed to introduce new features, change those new features in
any way and even may revoke such new features before the next release of
x.y.*[02468]. As soon as it is released, a feature is promised to persist.
SONAMES:
libburn.so.4 (since 0.3.4, March 2007),
libisofs.so.6 (since 0.6.2, February 2008),
libisoburn.so.1 (since 0.1.0, February 2008).
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
@ -215,11 +251,15 @@ Project history as far as known to me:
cdrskin now is by default linked dynamically and does a runtime check cdrskin now is by default linked dynamically and does a runtime check
to ensure not to be started with a libburn which is older than itself. to ensure not to be started with a libburn which is older than itself.
- 3rd Feb 2008 libisofs-0.2.x (.so.5) has been deprecated and is temporarily - 3rd Feb 2008 libisofs-0.2.x (.so.5) has been deprecated.
replaced by libisofs-0.6.1 (.so.6) which for now only gives a guarantee on
its set of version assertion features. The replacement will be made permanent - 14th Feb 2008 libisofs-0.6.2 permanently replaces the old libisofs-0.2.x.
by release of libisofs-0.6.2 (.so.6) which will guarantee future It is the first release of new libisofs.so.6 which will guarantee future
ABI compatibility for its whole feature set. API/ABI compatibility for its whole feature set.
- 15th Feb 2008 libisoburn-0.1.0 (.so.1) coordinates libisofs and libburn for
the purpose of ISO image reading and writing. It emulates multi-session on
overwriteable media. Application xorriso makes use of all three libraries.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

View File

@ -289,9 +289,10 @@ sequential DVD-R[W] and with DVD+R, but also with DVD-RAM, DVD+RW and
even regular disk files or block devices other than CD/DVD writers. even regular disk files or block devices other than CD/DVD writers.
This is enabled by option --grow_overwriteable_iso. This is enabled by option --grow_overwriteable_iso.
We are currently preparing an integrated ISO-9660 multi-session tool We have recently released an integrated ISO-9660 multi-session tool
named [wiki:Xorriso xorriso] which will try to go one step beyond named [wiki:Xorriso xorriso] which tries to go one step beyond
growisofs. It uses a new upcoming version of [wiki:Libisofs libisofs]. growisofs. It uses [wiki:Libisoburn libisoburn] and the new version
of [wiki:Libisofs libisofs].
-------------------------------------------------------------------------- --------------------------------------------------------------------------

View File

@ -22,13 +22,18 @@ we would need : login on a development machine resp. a live OS on CD or DVD,
advise from a system person about the equivalent of Linux sg or FreeBSD CAM, advise from a system person about the equivalent of Linux sg or FreeBSD CAM,
volunteers for testing of realistic use cases. volunteers for testing of realistic use cases.
We have a workable code base for burning data and audio CDs and many DVD types. We have a well tested code base for burning data and audio CDs and many DVD
The burn API is quite comprehensively documented and can be used to build a types. The burn API is quite comprehensively documented and can be used to
presentable application. build a presentable application.
We have a functional binary which emulates the core use cases of cdrecord in We have a functional binary which emulates the core use cases of cdrecord in
order to prove that usability, and in order to allow you to explore libburn's order to prove that usability, and in order to allow you to explore libburn's
scope by help of existing cdrecord frontends. scope by help of existing cdrecord frontends.
ISO 9660 filesystems with Rock Ridge and Joliet extensions can be created
and manipulated quite freely. This capability together with our burn capability
makes possible a single binary application which covers all steps of image
composition, updating and writing. Quite unique in the Linux world.
@subsection components The project components (list subject to growth, hopefully): @subsection components The project components (list subject to growth, hopefully):
- libburn is the library by which preformatted data get onto optical media. - libburn is the library by which preformatted data get onto optical media.
@ -43,10 +48,10 @@ scope by help of existing cdrecord frontends.
ISO 9660 disk image. This may then be brought to CD via libburn. ISO 9660 disk image. This may then be brought to CD via libburn.
libisofs is to be the foundation of our upcoming mkisofs emulation. libisofs is to be the foundation of our upcoming mkisofs emulation.
- libisoburn is an add-on to libburn and libisofs which allows to grow - libisoburn is an add-on to libburn and libisofs which coordinates both and
ISO-9660 filesystem images on multi-session media as well as also allows to grow ISO-9660 filesystem images on multi-session
on overwriteable media via the same API. All media peculiarities media as well as on overwriteable media via the same API.
are handled automatically. All media peculiarities are handled automatically.
- cdrskin is a limited cdrecord compatibility wrapper for libburn. - cdrskin is a limited cdrecord compatibility wrapper for libburn.
cdrecord is a powerful GPL'ed burn program included in Joerg cdrecord is a powerful GPL'ed burn program included in Joerg
@ -59,12 +64,12 @@ scope by help of existing cdrecord frontends.
runs, though. runs, though.
See cdrskin/README for more. See cdrskin/README for more.
- xorriso is an upcomming application of all three libraries which creates, - xorriso is an application of all three libraries which creates, loads,
loads, manipulates and writes ISO 9660 filesystem images with manipulates and writes ISO 9660 filesystem images with
Rock Ridge extensions. Manipulation will not only be adding or Rock Ridge extensions. Manipulation is not only adding or
overwriting of files but also deletion, renaming, and attribute overwriting of files but also deletion, renaming, and attribute
changing. changing.
See SVN of libisoburn, man test/xorriso.1, test/compile_xorriso.sh See libisoburn/README for more
- "test" is a collection of application gestures and examples given by the - "test" is a collection of application gestures and examples given by the
authors of the library features. The burn API example of libburn authors of the library features. The burn API example of libburn
@ -72,7 +77,19 @@ scope by help of existing cdrecord frontends.
demonstrated in test/telltoc.c . demonstrated in test/telltoc.c .
Explore these examples if you look for inspiration. Explore these examples if you look for inspiration.
We plan to be a responsive upstream. Bear with us. We strive to be a responsive upstream.
Our libraries are committed to maintain older feature sets in newer versions.
This applies to source code headers (API) as well as to linkable objects (ABI).
The only exception from this rule is about non-release versions x.y.*[13579]
which are allowed to introduce new features, change those new features in
any way and even may revoke such new features before the next release of
x.y.*[02468]. As soon as it is released, a feature is promised to persist.
SONAMES:
libburn.so.4 (since 0.3.4, March 2007),
libisofs.so.6 (since 0.6.2, February 2008),
libisoburn.so.1 (since 0.1.0, February 2008).
@section using Using the libraries @section using Using the libraries