README 18.2 KB
Newer Older
1
------------------------------------------------------------------------------
2
                              libburnia-project.org
3
------------------------------------------------------------------------------
4 5
This all is under GPL.
(See GPL reference, our clarification and commitment at the end of this text)
6
------------------------------------------------------------------------------
7
libburnia-project.org
8
By Mario Danic <mario.danic@gmail.com> and Thomas Schmitt <scdbackup@gmx.net>
9
Copyright (C) 2006-2008 Mario Danic, Thomas Schmitt
10

11
Still containing parts of
12 13 14
Libburn. By Derek Foreman <derek@signalmarketing.com> and
            Ben Jansens <xor@orodu.net>
Copyright (C) 2002-2006  Derek Foreman and Ben Jansens
15

16
This libburnia-project.org toplevel README (C) 2006-2008 Thomas Schmitt 
17 18
------------------------------------------------------------------------------

19 20
                           Build and Installation

21 22 23
Our build system is based on autotools. For preparing the build of a SVN 
snapshot you will need autotools of at least version 1.7. 
Check out from SVN by
24 25
   svn co http://svn.libburnia-project.org/libburn/trunk libburn
go into directory libburn and apply autotools by
26 27 28 29
   ./bootstrap

Alternatively you may unpack a release tarball for which you do not need
autotools installed.
30

31 32 33
To build a libburnia-project.org subproject it should be sufficient to go
into its toplevel directory (here: "libburn") and execute
   ./configure --prefix=/usr
34 35
   make

36
To make libburn accessible for running resp. application development,
37
and to install the cdrecord compatibility binary cdrskin, do:
38 39
   make install

40

41 42 43 44
Above procedure installs cdrskin depending on libburn.so.4 .
For a standalone cdrskin binary, see cdrskin/README.


45 46 47 48 49 50 51 52
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.
53 54


55 56
------------------------------------------------------------------------------

57

58
                        Overview of libburnia-project.org
59

60
libburnia-project.org is an open-source software project for reading, mastering
61 62
and writing optical discs.
For now this means only CD media and all single layer DVD media except DVD+R.
63 64 65 66 67

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.
68 69
Currently it is supported on Linux with kernels >= 2.4 and on FreeBSD versions 
with ATAPI/CAM support enabled in the kernel, see atapicam(4).
70

71 72
Our scope is currently Linux 2.4 or 2.6 and FreeBSD versions with ATAPI/CAM
support enabled in the kernel, see atapicam(4). For ports to other systems
73 74 75
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.
76

77 78 79 80 81 82 83 84 85 86 87
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.
88 89 90

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

91
- libburn  is the library by which preformatted data get onto optical media.
92
           It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or
93
           /dev/srM or /dev/hdX (e.g. on kernel 2.6).
94 95 96 97
           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.
98

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

103 104 105 106 107
- 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.

108
- cdrskin  is a limited cdrecord compatibility wrapper for libburn.
109
           cdrecord is a powerful GPL'ed burn program included in Joerg
110
           Schilling's cdrtools. cdrskin strives to be a second source for
111 112 113
           the services traditionally provided by cdrecord. Additionally it
           provides libburn's DVD capabilities, where only -sao is compatible
           with cdrecord.
114 115 116
           cdrskin does not contain any bytes copied from cdrecord's sources.
           Many bytes have been copied from the message output of cdrecord
           runs, though.
117 118 119 120 121 122 123
           See cdrskin/README for more.

- 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.
124
           See xorriso/README for more.
125 126 127 128 129

- "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 .
130
           Explore these examples if you look for inspiration.
131

132 133 134 135 136 137 138 139 140 141
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:
Thomas Schmitt's avatar
Thomas Schmitt committed
142 143
libburn.so.4    (since 0.3.4, March    2007),
libisofs.so.6   (since 0.6.2, February 2008),
144
libisoburn.so.1 (since 0.1.0, February 2008).
145 146


147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
------------------------------------------------------------------------------
Project history as far as known to me:

- Founded in 2002 as it seems. See mailing list archives
     http://lists.freedesktop.org/archives/libburn/
  The site of this founder team is reachable and offers download of a
  (somewhat outdated) tarball and from CVS :
     http://icculus.org/burn/
  Copyright holders and most probably founders:
  Derek Foreman and Ben Jansens.

- I came to using libburn in 2005. Founded the cdrskin project and submitted
  necessary patches which were accepted or implemented better. Except one
  remaining patch which prevented cdrskin from using vanilla libburn from CVS.
  The cdrskin project site is reachable and offers download of the heavily
  patched (elsewise outdated) tarball under the name  cdrskin-0.1.2  :
     http://scdbackup.sourceforge.net/cdrskin_eng.html
164 165 166
  It has meanwhile moved to use vanilla libburn.pykix.org , though.
  Version 0.1.4 constitutes the first release of this kind.

167
- In July 2006 our team mate Mario Danic announced a revival of libburn
168 169 170 171 172
  which by about nearly everybody else was perceived as unfriendly fork.
  Derek Foreman four days later posted a message which expressed his
  discontent.
  The situation first caused me to publically regret it and then - after i
  got the opportunity to move in with cdrskin - gave me true reason to
173
  personally apologize to Derek Foreman, Ben Jansens and the contributors at 
174 175 176 177
  icculus.org/burn. Posted to both projects:
    http://lists.freedesktop.org/archives/libburn/2006-August/000446.html
    http://mailman-mail1.webfaction.com/pipermail/libburn-hackers/2006-August/000024.html

178 179 180 181
- Mid August 2006 project cdrskin established a branch office in 
  libburn.pykix.org so that all maintainers of our tools have one single place
  to get the current (at least slightely) usable coordinated versions of
  everything.
182 183 184 185 186 187 188 189 190 191 192
  Project cdrskin will live forth independendly for a while but it is committed
  to stay in sync with libburn.pykix.org (or some successor, if ever).
  cdrskin is also committed to support  icculus.org/burn  if the pending fork
  is made reality by content changes in that project. It will cease to maintain
  a patched version of  icculus.org/burn  though. Precondition for a new
  release of cdrskin on base of  icculus.org/burn  would be the pending
  "whitelist patch" therefore.
  I would rather prefer if both projects find consense and merge, or at least
  cooperate. I have not given up hope totally, yet.
  I, personally, will honor any approach.

193 194 195 196 197 198 199 200 201
- 2nd September 2006 the decision is made to strive for a consolidation of
  copyright and a commitment to GPL in a reasonable and open minded way.
  This is to avoid long term problems with code of unknown origin and
  with finding consense among the not so clearly defined group of copyright
  claimers and -holders.
  libisofs is already claimed sole copyright Mario Danic.
  cdrskin and libburner are already claimed sole copyright Thomas Schmitt.
  Rewrites of other components will follow and concluded by claiming full
  copyright within the group of libburn.pykix.org-copyright holders.
202

203 204
- 16th September 2006 feature freeze for release of libburn-0.2.2 .

205 206 207 208 209 210
- 20th September 2006 release of libburn-0.2.2 .

- 26th October 2006 feature freeze for cdrskin-0.2.4 based on libburn-0.2.3 .
  This version of cdrskin is much more cdrecord compatible in repect
  to drive addressing and audio features.

211 212 213
- 30th October 2006 release of cdrskin-0.2.4 .

- 13th November 2006 splitting releases of libburn+cdrskin from libisofs.
214

215 216 217 218 219 220 221 222 223
- 24th November 2006 release of libburn-0.2.6 and cdrskin-0.2.6 . cdrskin has
  become suitable for unaware frontends as long as they perform only the core 
  of cdrecord use cases (including open-ended input streams, audio, and
  multi-session).

- 28th November 2006 the umbrella project which encloses both, libisofs and
  libburn, is now called libburnia. For the origin of this name, see 
  http://en.wikipedia.org/wiki/Liburnians .

224 225 226 227 228 229
- 16th January 2007 release of libburn-0.3.0 and cdrskin-0.3.0 . Now the scope
  is widened to a first class of DVD media: overwriteable single layer types
  DVD-RAM, DVD+RW, DVD-RW. This is not a cdrecord emulation but rather inspired
  by dvd+rw-tools' "poor man" writing facility for this class of media.
  Taking a bow towards Andy Polyakov.

230 231
- 11th February 2007 version 0.3.2 covers sequential DVD-RW and DVD-R with
  multi-session and with DAO.
232 233 234 235

- 12th March 2007 version 0.3.4 supports DVD+R and thus covers all single layer
  DVD media. Code for double layer DVD+/-R is implemented but awaits a tester
  yet.
236

237
- 23th April 2007 version 0.3.6 follows the unanimous opinion of Linux kernel
238
  people that one should not use /dev/sg on kernel 2.6.
239

240 241 242 243
- 31st July 2007 version 0.3.8 marks the first anniversary of libburn revival.
  We look back on improved stability, a substantially extended list of media
  and write modes, and better protection against typical user mishaps.

244 245 246 247 248 249
- 24th October 2007 version 0.4.0 is the foundation of new library libisoburn
  and an upcomming integrated application for manipulating and writing
  ISO 9660 + Rock Ridge images. cdrskin-0.4.0 got capabilities like growisofs
  by these enhancements: growing of overwriteable media and disk files.
  Taking again a bow towards Andy Polyakov.

250 251 252 253 254
- 26th Januar 2008 version 0.4.2 rectifies the version numbering so that we
  reliably release libburn.so.4 as should have been done since libburn-0.3.2.
  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.

255 256 257 258 259 260 261 262 263
- 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.
264

265 266 267
- 8th Apr 2008 libburn-0.4.4 has proven to be capable of burning to DVD+R/DL
  and read performance on disk file pseudo-drives has been improved.

Thomas Schmitt's avatar
Thomas Schmitt committed
268 269 270 271 272 273
- 27th Apr 2008 libisofs-0.6.4 can now read data file content from images
  and can map pieces of disk files onto image files. Image directory iteration
  has been enhanced. Input data streams and extended information have been
  exposed in the API to allow future development.

- 29th Apr 2008 libisoburn-0.1.4 was made more efficient with reading of
274
  image tree nodes. It now depends on libisofs-0.6.4 and libburn-0.4.4.
Thomas Schmitt's avatar
Thomas Schmitt committed
275 276
  xorriso makes use of new libisofs features by performing incremental
  updates of directory trees and by cutting oversized data files into
277
  pieces. A primitive single session emulation of cdrecord and mkisofs is
Thomas Schmitt's avatar
Thomas Schmitt committed
278
  provided.
279

280 281 282 283
- 10th May 2008 libburn-0.4.6 supports formatting and writing of BD-RE,
  full nominal speed for DVD-RAM and BD-RE. cdrskin has a unified blank
  type with automatic media state recognition.

284 285 286
- 17th May 2008 an old bug with DVD-RAM and now with BD-RE is fixed by
  libburn-0.4.8 to allow libisoburn emulation of multisession on those media.

Thomas Schmitt's avatar
Thomas Schmitt committed
287 288 289 290 291 292
- 19th May 2008 libisoburn-0.1.6 brings better table-of-content emulation
  on overwriteble media and disk files.

- 1st Jun 2008 libisofs-0.6.6 fixes some problems around device files.

- 3rd Jun 2008 libisoburn-0.1.8 fixes a bug with overwriteable media.
293

294 295 296 297 298 299
- 23rd Jun 2008 libisoburn-0.2.0 introduces extraction of files from
  ISO images.

- 16th Jul 2008 libburn-0.5.0 handles systems with no /dev/sr* but only
  /dev/scd*.

300 301 302 303 304 305 306
- 19th Jul 2008 libisoburn/xorriso-0.2.2 can do multi-session in mkisofs
  and cdrecord style. xorriso now can serve underneath growisofs.

- 20th Aug 2008 libburn-0.5.2 revokes the necessity that a drive must be
  enumerable in order to be adressable. Enumeration is enhanced by examining
  /proc/sys/dev/cdrom/info.
  
307 308 309
- 24th Aug 2008 libisoburn/xorriso-0.2.4 introduces a media readability check
  with data retrieval option.

310 311 312 313 314
- 18th Sep 2008 libisofs-0.6.8 supports ISO 9660 Level 3 which allows very
  large data files in the image.

- 20th Sep 2008 libisoburn/xorriso-0.2.6 takes into respect the new Level 3
  capabilities of libisofs. 
315

316 317 318
- 6th Oct 2008 libburn-0.5.4 adjusts the changes of 0.5.2 to the needs of
  Linux kernel 2.4 and introduces human readable SCSI error messages.

319 320 321 322 323 324 325 326 327
- 6th Oct 2008 libisofs-0.6.10 fixes two bugs which prevented adding and
  manipulation of ISOLINUX boot images.

- 15th Oct 2008 libisoburn/xorriso-0.2.8 can activate and maintain an
  ISOLINUX boot image by an EL Torito boot record.

- 12th Nov 2008 libburn-0.5.6 fixes usage of freed memory by the fifo thread
  of an aborted burn run.

Thomas Schmitt's avatar
Thomas Schmitt committed
328 329 330 331 332 333 334 335 336 337 338
- 26th Nov 2008 libisofs-0.6.12 can produce a ISOLINUX isohybrid MBR on the fly
  and allows to produce ISO images which resemble old mkisofs images.

- 2nd Dec 2008 libisoburn-0.3.0. xorriso now is ready for exotic character
  sets, for legacy FreeBSD systems which expect an outdated Rock Ridge
  signature, and for producing ISO images with MBR which boot from hard disk
  or USB stick. Three minor bugs were fixed.

- 7th Dec 2008 libburn-0.5.8 prevents a SIGSEGV with wierd CD table-of-content
  and improves BD-RE formatting.

339

340 341 342 343
------------------------------------------------------------------------------

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
344
    the Free Software Foundation. To be exact: version 2 of that License.
345 346 347 348 349 350 351 352 353

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
354 355 356

------------------------------------------------------------------------------
Clarification in my name and in the name of Mario Danic, upcoming copyright
357 358 359
holders on toplevel of libburnia. To be fully in effect after the remaining
other copyrighted code has been replaced by ours and by copyright-free
contributions of our friends:
360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388
------------------------------------------------------------------------------

We, the copyright holders, agree on the interpretation that
dynamical linking of our libraries constitutes "use of" and
not "derivation from" our work in the sense of GPL, provided
those libraries are compiled from our unaltered code.

Thus you may link our libraries dynamically with applications
which are not under GPL. You may distribute our libraries and
application tools in binary form, if you fulfill the usual
condition of GPL to offer a copy of the source code -altered
or unaltered- under GPL.

We ask you politely to use our work in open source spirit
and with the due reference to the entire open source community.

If there should really arise the case where above clarification
does not suffice to fulfill a clear and neat request in open source
spirit that would otherwise be declined for mere formal reasons,
only in that case we will duely consider to issue a special license
covering only that special case.
It is the open source idea of responsible freedom which will be
decisive and you will have to prove that you exhausted all own
means to qualify for GPL.

For now we are firmly committed to maintain one single license: GPL.

signed: Mario Danic, Thomas Schmitt