From bccb39efd8c7d07c610afee1d0f2b99de941b758 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sat, 16 Feb 2008 12:37:09 +0000 Subject: [PATCH] Updated project interrelations --- README | 86 +++++++++++++++++++++++++++++++----------- cdrskin/wiki_plain.txt | 7 ++-- doc/comments | 41 ++++++++++++++------ 3 files changed, 96 insertions(+), 38 deletions(-) diff --git a/README b/README index d60f1d5..f72b3a6 100644 --- a/README +++ b/README @@ -39,13 +39,19 @@ into its toplevel directory (here: "libburn") and execute ./configure --prefix=/usr 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 -The other half of the project, libisofs, is hosted in the libburnia SVN, too: - svn co http://svn.libburnia-project.org/libisofs/trunk libisofs -See README file there. +An important part of the project, libisofs, is hosted in a bzr repository at +launchpad.net : + 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, volunteers for testing of realistic use cases. -We have a workable code base for burning CD and most single layer DVD. -The burn API is quite comprehensively documented and can be used to build a -presentable application. -We have a functional binary which emulates parts of cdrecord in order to -prove that usability, and in order to allow you to explore libburnia's scope -by help of existing cdrecord frontends. +We have a well tested code base for burning data and audio CDs and many DVD +types. The burn API is quite comprehensively documented and can be used to +build a presentable application. +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 +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): - 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). + /dev/srM or /dev/hdX (e.g. on kernel 2.6). libburn is the foundation of our cdrecord emulation. Its code is independent of cdrecord. Its DVD capabilities are learned from 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. - 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. +- 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. - 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 the services traditionally provided by cdrecord. Additionally it 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. Many bytes have been copied from the message output of cdrecord 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 - authors of the library features. The main API example for libburn - is test/libburner.c . +- xorriso is an application of all three libraries which creates, loads, + manipulates and writes ISO 9660 filesystem images with + 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. -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 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 - 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 - by release of libisofs-0.6.2 (.so.6) which will guarantee future - ABI compatibility for its whole feature set. +- 3rd Feb 2008 libisofs-0.2.x (.so.5) has been deprecated. + +- 14th Feb 2008 libisofs-0.6.2 permanently replaces the old libisofs-0.2.x. + It is the first release of new libisofs.so.6 which will guarantee future + 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. ------------------------------------------------------------------------------ diff --git a/cdrskin/wiki_plain.txt b/cdrskin/wiki_plain.txt index 5871700..86f10ed 100644 --- a/cdrskin/wiki_plain.txt +++ b/cdrskin/wiki_plain.txt @@ -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. This is enabled by option --grow_overwriteable_iso. -We are currently preparing an integrated ISO-9660 multi-session tool -named [wiki:Xorriso xorriso] which will try to go one step beyond -growisofs. It uses a new upcoming version of [wiki:Libisofs libisofs]. +We have recently released an integrated ISO-9660 multi-session tool +named [wiki:Xorriso xorriso] which tries to go one step beyond +growisofs. It uses [wiki:Libisoburn libisoburn] and the new version +of [wiki:Libisofs libisofs]. -------------------------------------------------------------------------- diff --git a/doc/comments b/doc/comments index 3c63047..72ee79c 100644 --- a/doc/comments +++ b/doc/comments @@ -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, volunteers for testing of realistic use cases. -We have a workable code base for burning data and audio CDs and many DVD types. -The burn API is quite comprehensively documented and can be used to build a -presentable application. +We have a well tested code base for burning data and audio CDs and many DVD +types. The burn API is quite comprehensively documented and can be used to +build a presentable application. 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 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): - 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. libisofs is to be the foundation of our upcoming mkisofs emulation. -- libisoburn is an add-on to libburn and libisofs which 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. +- 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. cdrecord is a powerful GPL'ed burn program included in Joerg @@ -59,12 +64,12 @@ scope by help of existing cdrecord frontends. runs, though. See cdrskin/README for more. -- xorriso is an upcomming application of all three libraries which creates, - loads, manipulates and writes ISO 9660 filesystem images with - Rock Ridge extensions. Manipulation will not only be adding or +- xorriso is an application of all three libraries which creates, loads, + manipulates and writes ISO 9660 filesystem images with + Rock Ridge extensions. Manipulation is not only adding or overwriting of files but also deletion, renaming, and attribute 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 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 . 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