1------------------------------------------------------------------------------
2 libburnia-project.org
3------------------------------------------------------------------------------
4This all is under GPL.
5(See GPL reference, our clarification and commitment at the end of this text)
6------------------------------------------------------------------------------
7libburnia-project.org
8By Mario Danic <mario.danic@gmail.com> and Thomas Schmitt <scdbackup@gmx.net>
9Copyright (C) 2006-2021 Mario Danic, Thomas Schmitt
10Still containing parts of Libburn. By Derek Foreman <derek@signalmarketing.com>
11and Ben Jansens <xor@orodu.net>
12Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
13
14 http://files.libburnia-project.org/releases/libburn-1.5.4.tar.gz
15
16------------------------------------------------------------------------------
17
18 Build and Installation
19
20 From tarball
21
22Obtain libburn-1.5.4.tar.gz, take it to a directory of your choice and do:
23
24 tar xzf libburn-1.5.4.tar.gz
25 cd libburn-1.5.4
26 ./configure --prefix=/usr
27 make
28
29To make libburn accessible for running and application development,
30and to install the cdrecord compatibility binary cdrskin, do
31(as Superuser):
32
33 make install
34
35This procedure installs libburn.so.4 and cdrskin depending on it.
36For a standalone cdrskin binary, see cdrskin/README.
37
38A behavioral conflict is known between any burn software and demons like hald
39which probe CD drives. This can spoil burn runs for CD-R or CD-RW.
40You may have to keep your hald away from the drive. See for example
41 http://www.freebsd.org/gnome/docs/halfaq.html
42
43
44 From SVN
45
46Our build system is based on autotools. For preparing the build of a SVN
47snapshot you will need autotools of at least version 1.7.
48Do in a directory of your choice:
49
50 svn co http://svn.libburnia-project.org/libburn/trunk libburn-svn
51 cd libburn-svn
52 ./bootstrap
53 ./configure --prefix=/usr
54 make
55 make install
56
57Warning: The trunk might contain experimental features which might not
58 persist until next release.
59
60
61 Special ./configure options
62
63make install on GNU/Linux will try to run program ldconfig with the library
64installation directory as only argument. Failure to do so will not abort
65installation. One may disable ldconfig by ./configure option:
66 --disable-ldconfig-at-install
67
68In some situations Linux may deliver a better write performance to drives if
69the track input is read with O_DIRECT (see man 2 open). The API call
70burn_os_open_track_src() and the input readers of cdrskin and libburn fifo
71can be told to use this peculiar read mode by:
72 --enable-track-src-odirect
73
74But often libburn call burn_write_opts_set_dvd_obs(opts, 64*1024) will yield
75even better performance in such a situation. 64k can be made default at
76configure time by:
77 --enable-dvd-obs-64k
78This may be combined with above --enable-track-src-odirect .
79
80If it is desired that DVD DAO writing and stdio: writing get padded up to
81a full write chunk of 32k or 64k, then use ./configure option:
82 --enable-dvd-obs-pad
83
84Alternatively the transport of SCSI commands can be done via libcdio-0.83.
85You may install it and re-run libburn's ./configure with option
86 --enable-libcdio
87
88By use of a version script, the libburn.so library exposes no other function
89names but those of the API definition in libburn/libburn.h.
90If -Wl,--version-script=... makes problems with the local compiler, then
91disable this encapsulation feature by
92 --disable-versioned-libs
93
94Make sure to re-compile all source files after running ./configure
95 make clean ; make
96 make install
97
98
99Linux only:
100
101libburn tries to avoid a collision with udev's drive examination by waiting
1020.1 seconds before opening the device file for a longer time, after udev
103might have been alarmed by drive scanning activities.
104The waiting time can be set at ./configure time with microsecond granularity.
105E.g. 2 seconds:
106 CFLAGS="$CFLAGS -DLibburn_udev_wait_useC=2000000"
107 ./configure ...options...
108Waiting can be disabled by zero waiting time:
109 CFLAGS="$CFLAGS -DLibburn_udev_wait_useC=0"
110Alternatively, libburn can try to be nice by opening the device file,
111closing it immediately, waiting, and only then opening it for real:
112 CFLAGS="$CFLAGS -DLibburn_udev_extra_open_cyclE -DLibburn_udev_wait_useC=500000"
113
114------------------------------------------------------------------------------
115
116An important part of the project, libisofs, is hosted in a bzr repository at
117launchpad.net :
118 bzr branch lp:libisofs
119
120Another part the project, libisoburn, is hosted in the libburnia SVN, too:
121 svn co http://svn.libburnia-project.org/libisoburn/trunk libisoburn
122
123See README files there.
124
125------------------------------------------------------------------------------
126
127
128 Overview of libburnia-project.org
129
130libburnia-project.org is an open-source software project for reading, mastering
131and writing optical discs.
132For now this means CD media, all DVD media, all BD media.
133
134The project comprises of several more or less interdependent parts which
135together strive to be a usable foundation for application development.
136These are libraries, language bindings, and middleware binaries which emulate
137classical (and valuable) Linux tools.
138Currently it is supported on GNU/Linux with kernels >= 2.4,
139on FreeBSD with ATAPI/CAM enabled in the kernel (see man atapicam),
140on OpenSolaris (tested with kernel 5.11),
141on NetBSD (tested with 6.1.3).
142On other X/Open compliant systems there will only be pseudo drives, but no
143direct MMC operation on real CD/DVD/BD drives.
144
145For full ports to other systems we would need : login on a development machine
146or a live OS on CD or DVD, advise from a system person about the equivalent
147of Linux sg or FreeBSD CAM, volunteers for testing of realistic use cases.
148
149We have a well tested code base for burning data and audio CDs, DVDs and BDs.
150The burn API is quite comprehensively documented and can be used to build a
151presentable application.
152We have a functional application which emulates the core use cases of cdrecord
153in order to prove that usability, and in order to allow you to explore
154libburn's scope by help of existing cdrecord frontends.
155
156ISO 9660 filesystems with Rock Ridge and Joliet extensions can be created
157and manipulated quite freely. This capability together with our burn capability
158makes possible a single binary application which covers all steps of image
159composition, updating and writing. Quite unique in the Linux world.
160
161The project components (list subject to growth, hopefully):
162
163- libburn is the library by which preformatted data get onto optical media.
164 It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or
165 /dev/srM or /dev/hdX (e.g. on kernel 2.6).
166 libburn is the foundation of our cdrecord emulation. Its code is
167 independent of cdrecord. Its DVD capabilities are learned from
168 studying the code of dvd+rw-tools and MMC-5 specs. No code but only
169 the pure SCSI knowledge has been taken from dvd+rw-tools, though.
170
171- libisofs is the library to pack up hard disk files and directories into a
172 ISO 9660 disk image. This may then be brought to CD via libburn.
173 An own ISO 9660 extension stores ACLs, xattr, and MD5 of file
174 content.
175
176- libisoburn is an add-on to libburn and libisofs which coordinates both and
177 also can grow ISO-9660 filesystem images on multi-session media
178 as well as on overwriteable media via the same API.
179 All media peculiarities are handled automatically.
180 It also contains the methods of command oriented application
181 xorriso and offers them via a C language API.
182
183- cdrskin is a limited cdrecord compatibility wrapper for libburn.
184 cdrecord is a powerful GPL'ed burn program included in Joerg
185 Schilling's cdrtools. cdrskin strives to be a second source for
186 the services traditionally provided by cdrecord. Additionally it
187 provides libburn's DVD capabilities, where only -sao is compatible
188 with cdrecord.
189 cdrskin does not contain any bytes copied from cdrecord's sources.
190 Many bytes have been copied from the message output of cdrecord
191 runs, though.
192 See cdrskin/README for more.
193
194- xorriso is an application of all three libraries which creates, loads,
195 manipulates and writes ISO 9660 filesystem images with
196 Rock Ridge extensions. Manipulation is not only adding or
197 overwriting of files but also deleting, renaming, attribute
198 changing, incremental backups, activating boot images, and
199 extracting of files from ISO images to disk. There is also a
200 sparse emulation of cdrecord and a more laborate one of mkisofs.
201 All features of xorriso are also available via a C language API
202 of libisoburn.
203 A static compilation of xorriso and the libraries is dedicated
204 to the GNU Operating System. See xorriso/README_gnu_xorriso .
205
206- "test" is a collection of application gestures and examples given by the
207 authors of the library features. The burn API example of libburn
208 is named test/libburner.c . The API for media information inquiry is
209 demonstrated in test/telltoc.c .
210 Explore these examples if you look for inspiration.
211
212We strive to be a responsive upstream.
213
214Our libraries are committed to maintain older feature sets in newer versions.
215This applies to source code headers (API) as well as to linkable objects (ABI).
216The only exception from this rule is about non-release versions x.y.*[13579]
217which are allowed to introduce new features, change those new features in
218any way and even may revoke such new features before the next release of
219x.y.*[02468]. As soon as it is released, a feature is promised to persist.
220
221SONAMES:
222libburn.so.4 (since 0.3.4, March 2007),
223libisofs.so.6 (since 0.6.2, February 2008),
224libisoburn.so.1 (since 0.1.0, February 2008).
225
226Applications must use 64 bit off_t. E.g. by defining
227#define _LARGEFILE_SOURCE
228#define _FILE_OFFSET_BITS 64
229or take special precautions to interface with the libraries by 64 bit integers
230where the .h files prescribe off_t. To reduce libburn's off_t size to 32 bit
231will keep it from processing tracks of more than 2 GB size.
232
233
234------------------------------------------------------------------------------
235Project history as far as known to me:
236
237- Founded in 2002 as it seems. See mailing list archives
238 http://lists.freedesktop.org/archives/libburn/
239 The site of this founder team is reachable and offers download of a
240 (somewhat outdated) tarball and from CVS :
241 http://icculus.org/burn/
242 Copyright holders and most probably founders:
243 Derek Foreman and Ben Jansens.
244
245- I came to using libburn in 2005. Founded the cdrskin project and submitted
246 necessary patches which were accepted or implemented better. Except one
247 remaining patch which prevented cdrskin from using vanilla libburn from CVS.
248 The cdrskin project site is reachable and offers download of the heavily
249 patched (elsewise outdated) tarball under the name cdrskin-0.1.2 :
250 http://scdbackup.sourceforge.net/cdrskin_eng.html
251 It has meanwhile moved to use vanilla libburn.pykix.org , though.
252 Version 0.1.4 constitutes the first release of this kind.
253
254- In July 2006 our team mate Mario Danic announced a revival of libburn
255 which by about nearly everybody else was perceived as unfriendly fork.
256 Derek Foreman four days later posted a message which expressed his
257 discontent.
258 The situation first caused me to publicly regret it and then - after i
259 got the opportunity to move in with cdrskin - gave me true reason to
260 personally apologize to Derek Foreman, Ben Jansens and the contributors at
261 icculus.org/burn. Posted to both projects:
262 http://lists.freedesktop.org/archives/libburn/2006-August/000446.html
263 http://mailman-mail1.webfaction.com/pipermail/libburn-hackers/2006-August/000024.html
264
265- Mid August 2006 project cdrskin established a branch office in
266 libburn.pykix.org so that all maintainers of our tools have one single place
267 to get the current (at least slightely) usable coordinated versions of
268 everything.
269 Project cdrskin will live forth independendly for a while but it is committed
270 to stay in sync with libburn.pykix.org (or some successor, if ever).
271 cdrskin is also committed to support icculus.org/burn if the pending fork
272 is made reality by content changes in that project. It will cease to maintain
273 a patched version of icculus.org/burn though. Precondition for a new
274 release of cdrskin on base of icculus.org/burn would be the pending
275 "whitelist patch" therefore.
276 I would rather prefer if both projects find consense and merge, or at least
277 cooperate. I have not given up hope totally, yet.
278 I, personally, will honor any approach.
279
280- 2nd September 2006 the decision is made to strive for a consolidation of
281 copyright and a commitment to GPL in a reasonable and open minded way.
282 This is to avoid long term problems with code of unknown origin and
283 with finding consense among the not so clearly defined group of copyright
284 claimers and -holders.
285 libisofs is already claimed sole copyright Mario Danic.
286 cdrskin and libburner are already claimed sole copyright Thomas Schmitt.
287 Rewrites of other components will follow and concluded by claiming full
288 copyright within the group of libburn.pykix.org-copyright holders.
289
290- 16th September 2006 feature freeze for release of libburn-0.2.2 .
291
292- 20th September 2006 release of libburn-0.2.2 .
293
294- 26th October 2006 feature freeze for cdrskin-0.2.4 based on libburn-0.2.3 .
295 This version of cdrskin is much more cdrecord compatible in repect
296 to drive addressing and audio features.
297
298- 30th October 2006 release of cdrskin-0.2.4 .
299
300- 13th November 2006 splitting releases of libburn+cdrskin from libisofs.
301
302- 24th November 2006 release of libburn-0.2.6 and cdrskin-0.2.6 . cdrskin has
303 become suitable for unaware frontends as long as they perform only the core
304 of cdrecord use cases (including open-ended input streams, audio, and
305 multi-session).
306
307- 28th November 2006 the umbrella project which encloses both, libisofs and
308 libburn, is now called libburnia. For the origin of this name, see
309 http://en.wikipedia.org/wiki/Liburnians .
310
311- 16th January 2007 release of libburn-0.3.0 and cdrskin-0.3.0 . Now the scope
312 is widened to a first class of DVD media: overwriteable single layer types
313 DVD-RAM, DVD+RW, DVD-RW. This is not a cdrecord emulation but rather inspired
314 by dvd+rw-tools' "poor man" writing facility for this class of media.
315 Taking a bow towards Andy Polyakov.
316
317- 11th February 2007 version 0.3.2 covers sequential DVD-RW and DVD-R with
318 multi-session and with DAO.
319
320- 12th March 2007 version 0.3.4 supports DVD+R and thus covers all single layer
321 DVD media. Code for double layer DVD+/-R is implemented but awaits a tester
322 yet.
323
324- 23th April 2007 version 0.3.6 follows the unanimous opinion of Linux kernel
325 people that one should not use /dev/sg on kernel 2.6.
326
327- 31st July 2007 version 0.3.8 marks the first anniversary of libburn revival.
328 We look back on improved stability, a substantially extended list of media
329 and write modes, and better protection against typical user mishaps.
330
331- 24th October 2007 version 0.4.0 is the foundation of new library libisoburn
332 and an upcoming integrated application for manipulating and writing
333 ISO 9660 + Rock Ridge images. cdrskin-0.4.0 got capabilities like growisofs
334 by these enhancements: growing of overwriteable media and disk files.
335 Taking again a bow towards Andy Polyakov.
336
337- 26th Januar 2008 version 0.4.2 rectifies the version numbering so that we
338 reliably release libburn.so.4 as should have been done since libburn-0.3.2.
339 cdrskin now is by default linked dynamically and does a runtime check
340 to ensure not to be started with a libburn which is older than itself.
341
342- 3rd Feb 2008 libisofs-0.2.x (.so.5) has been deprecated.
343
344- 14th Feb 2008 libisofs-0.6.2 permanently replaces the old libisofs-0.2.x.
345 It is the first release of new libisofs.so.6 which will guarantee future
346 API/ABI compatibility for its whole feature set.
347
348- 15th Feb 2008 libisoburn-0.1.0 (.so.1) coordinates libisofs and libburn for
349 the purpose of ISO image reading and writing. It emulates multi-session on
350 overwriteable media. Application xorriso makes use of all three libraries.
351
352- 8th Apr 2008 libburn-0.4.4 has proven to be capable of burning to DVD+R/DL
353 and read performance on disk file pseudo-drives has been improved.
354
355- 27th Apr 2008 libisofs-0.6.4 can now read data file content from images
356 and can map pieces of disk files onto image files. Image directory iteration
357 has been enhanced. Input data streams and extended information have been
358 exposed in the API to enable future development.
359
360- 29th Apr 2008 libisoburn-0.1.4 was made more efficient with reading of
361 image tree nodes. It now depends on libisofs-0.6.4 and libburn-0.4.4.
362 xorriso makes use of new libisofs features by performing incremental
363 updates of directory trees and by cutting oversized data files into
364 pieces. A primitive single session emulation of cdrecord and mkisofs is
365 provided.
366
367- 10th May 2008 libburn-0.4.6 supports formatting and writing of BD-RE,
368 full nominal speed for DVD-RAM and BD-RE. cdrskin has a unified blank
369 type with automatic media state recognition.
370
371- 17th May 2008 an old bug with DVD-RAM and now with BD-RE is fixed by
372 libburn-0.4.8. So libisoburn can now perform emulation of multisession
373 on those media.
374
375- 19th May 2008 libisoburn-0.1.6 brings better table-of-content emulation
376 on overwriteble media and disk files.
377
378- 1st Jun 2008 libisofs-0.6.6 fixes some problems around device files.
379
380- 3rd Jun 2008 libisoburn-0.1.8 fixes a bug with overwriteable media.
381
382- 23rd Jun 2008 libisoburn-0.2.0 introduces extraction of files from
383 ISO images.
384
385- 16th Jul 2008 libburn-0.5.0 handles systems with no /dev/sr* but only
386 /dev/scd*.
387
388- 19th Jul 2008 libisoburn/xorriso-0.2.2 can do multi-session in mkisofs
389 and cdrecord style. xorriso now can serve underneath growisofs.
390
391- 20th Aug 2008 libburn-0.5.2 revokes the necessity that a drive must be
392 enumerable in order to be addressable. Enumeration is enhanced by examining
393 /proc/sys/dev/cdrom/info.
394
395- 24th Aug 2008 libisoburn/xorriso-0.2.4 introduces a media readability check
396 with data retrieval option.
397
398- 18th Sep 2008 libisofs-0.6.8 supports ISO 9660 Level 3 which can represent
399 very large data files in the image.
400
401- 20th Sep 2008 libisoburn/xorriso-0.2.6 takes into respect the new Level 3
402 capabilities of libisofs.
403
404- 6th Oct 2008 libburn-0.5.4 adjusts the changes of 0.5.2 to the needs of
405 Linux kernel 2.4 and introduces human readable SCSI error messages.
406
407- 6th Oct 2008 libisofs-0.6.10 fixes two bugs which prevented adding and
408 manipulation of ISOLINUX boot images.
409
410- 15th Oct 2008 libisoburn/xorriso-0.2.8 can activate and maintain an
411 ISOLINUX boot image by an EL Torito boot record.
412
413- 12th Nov 2008 libburn-0.5.6 fixes usage of freed memory by the fifo thread
414 of an aborted burn run.
415
416- 26th Nov 2008 libisofs-0.6.12 can produce a ISOLINUX isohybrid MBR on the fly
417 and can produce ISO images which resemble old mkisofs images.
418
419- 2nd Dec 2008 libisoburn-0.3.0. xorriso now is ready for exotic character
420 sets, for legacy FreeBSD systems which expect an outdated Rock Ridge
421 signature, and for producing ISO images with MBR which boot from hard disk
422 or USB stick. Three minor bugs were fixed.
423
424- 7th Dec 2008 libburn-0.5.8 prevents a SIGSEGV with weird CD table-of-content
425 and improves BD-RE formatting.
426
427- 9th Dec 2008 Our project received a donation from Thomas Weber.
428
429- 2nd Jan 2009 libburn-0.6.0 learned to format BD-R and write to either
430 formatted or unformatted BD-R.
431
432- 6th Jan 2009 libisoburn-0.3.2. xorriso can produce and execute commands for
433 mounting older sessions from all kinds of media. Pseudo-drives outside the
434 /dev/ tree can be addressed without prefix "stdio:".
435
436- 20th Feb 2009 libburn-0.6.2 source release now compiles out of the box
437 on FreeBSD.
438
439- 28 Feb 2009 libisofs-0.6.14 can record ACLs and Extended Attributes xattr
440 in its ISO images.
441
442- 01 Mar 2009 libisoburn-0.3.4. xorriso makes use of the ACL and xattr
443 capabilities provided by libisofs for xorriso backup features.
444
445- 11 Mar 2009 libisofs-0.6.16 of libisofs fixes two bugs which on Solaris
446 prevented to navigate the ISO images by ".." and to recognize the Rock Ridge
447 extensions of ISO images. The ban to build libisofs on operating systems
448 other than Linux and FreeBSD has been lifted.
449
450- 13 Mar 2009 libburn-0.6.4 got a dummy adapter for SCSI/MMC command transport.
451 It will show no drives and thus libburn will only be able to perform
452 operations on "stdio:" pseudo drives. Nevertheless this was precondition
453 to lift the ban to build libburn on operating systems other than Linux
454 and FreeBSD.
455
456- 16 Mar 2009 libisoburn-0.3.6: xorriso uses RRIP version 1.10 as default
457 in order to be mountable where mkisofs images are mountable.
458
459- 17 Apr 2009 libisofs-0.6.18 introduces content filtering of data files.
460 Built-in filters implement compression to formats gzip and zisofs. External
461 filter processes can perform arbitrary data conversions like encryption.
462
463- 19 Apr 2009 libisoburn-0.3.8 makes use of the new libisofs capability to
464 perform content filtering of data files.
465
466- 08 May 2009 libburn-0.6.6 fixes a bug with aborting on broken output pipe
467 and a bug with device scan on FreeBSD.
468
469- 31 May 2009 libisofs-0.6.20 can record hard link relations in ISO images
470 and offers support with restoring them to disk. Current Linux kernels will
471 mount images with such hard links but will attribute a unique inode number
472 to each file.
473
474- 28 Jun 2009 libisoburn-0.4.0: xorriso can record and restore hard link
475 relations of files. Performance of data reading has been improved. Option
476 -find now supports logical operators with its tests.
477
478- 14 Jul 2009 libburn-0.6.8 fixes bugs and shortcommings with old MMC-1 drives
479 and with large SCSI bus numbers as handed out by Linux for USB drives.
480
481- 20 Jul 2009 libisoburn-0.4.0.pl01 fixes a regression in xorriso which caused
482 data loss in older sessions if xorriso was used underneath growisofs.
483 Affected are releases since libisoburn-0.3.2 in january 2009.
484
485- 25 Aug 2009 libisofs-0.6.22 can record MD5 checksums for the whole session
486 and for each single data file. Checksum tags can be used to verify superblock
487 and directory tree before importing them.
488
489- 27 Aug 2009 libburn-0.7.0 learned to calm down a drive and to inquire its
490 supported profiles. It works around some pitfalls with U3 enhanced memory
491 sticks which emulate a CD-ROM.
492
493- 27 Aug 2009 libisoburn-0.4.0.pl00 can record MD5 checksums by which one may
494 verify the session or single data files in the image. When comparing image
495 files with files in the local filesystem, the MD5 sums avoid the need for
496 reading file content from the image.
497
498- 22 Sep 2009 libisoburn-0.4.0.pl01 fixes a bug in xorriso option -cut_out.
499
500- 08 Oct 2009 libisofs-0.6.24 fixes a bug which could cause the loss of blanks
501 in file names when a new session got added to an ISO image. With names
502 shorter than 251 characters this happened only to trailing blanks.
503
504- 08 Oct 2009 libisoburn-0.4.0.pl02 fixes bugs with xorriso option -for_backup,
505 with xorrisofs -help, and with xorrecord -help.
506
507- 12 Oct 2009 libburn-0.7.2 fixes a bug with CD TAO multi-track dummy sessions.
508 It can retrieve media product info and can process track input which was
509 prepared for CD-ROM XA Mode 2 Form 1. cdrskin now performs option -minfo.
510
511- 28 Oct 2009 libisoburn-0.4.4 fixes a bug with cdrecord emulation and
512 introduces new information options about media type and ISO image id strings.
513 On Linux it helps with mounting two sessions of the same media
514 simultaneously.
515
516- 12 Nov 2009 libburn-0.7.2.pl01 works around problems with Pioneer DVR-216D.
517 DVD-R runs made the drive stuck. Ejecting the tray did not work properly.
518
519- 06 Dec 2009 libburn-0.7.4 works around problems with newer DVD burners,
520 provides throughput enhancements with hampered busses on Linux, and new
521 API calls to log SCSI commands and to control the libburn fifo.
522
523- 09 Dec 2009 libisoburn-0.4.6 now offers performance tuning of output to DVD
524 drives or disk files.
525
526- 26 Dec 2009 libburn-0.7.4.pl01 fixes the release tarball which was lacking
527 the files of the generic system adapter for X/Open.
528
529- 29 Dec 2009 Our project received a donation for purchasing a fine small
530 computer which shall serve as OS farm for development and support.
531
532- 20 Jan 2010 Version 0.6.26 of libisofs fixes minor bugs and shall enhance
533 portability.
534
535- 22 Jan 2010 libburn-0.7.6 has an improved system adapter for FreeBSD,
536 fixes bugs about the generic X/Open system adapter, and can use
537 libcdio >= 0.83 as SCSI transport facility.
538
539- 10 Feb 2010 libisofs-0.6.28 fixes a regression about bootable images which
540 was introduced by version 0.6.22 in August 2009.
541
542- 23 Feb 2010 libisoburn-0.5.0 marks the transition of the xorriso standalone
543 version to an official GNU project. The name changed to "GNU xorriso" and its
544 license is now GPLv3+.
545 The licenses of libburnia libraries and applications are not affected by
546 this change.
547
548- 10 Mar 2010 libburn-0.7.8 fixes bugs and improves the built-in abort handler
549 on FreeBSD.
550
551- 30 Mar 2010 Release 0.5.2 of libisoburn provides xorriso documentation in
552 GNU Texinfo format with embedded extra data to derive a full man page.
553
554- 09 Apr 2010 libburn-0.8.0 now works with ahci driver on FreeBSD 8-STABLE.
555
556- 03 May 2010 Version 0.6.32 of libisofs is able to create ISO images with
557 multiple boot images. All boot catalog parameters described in El-Torito
558 specs can be set and inquired. This was needed to use GRUB boot images
559 for EFI.
560
561- 04 May 2010 Release 0.5.6.pl00 of libisoburn makes use of the new libisofs
562 capabilities about boot images.
563
564- 11 Jun 2010 libburn-0.8.2 now works on Solaris.
565
566- 14 Jun 2010 By release 0.5.8.pl00 of libisoburn, xorriso becomes a public C
567 language API of libisoburn. The emulations of mkisofs and cdrecord have
568 been enhanced.
569
570- Tue Jun 29 2010 Version 0.6.34 of libisofs provides new features about
571 hiding file names from directory trees.
572
573- Wed Jun 30 2010 libburn-0.8.4 removes some restrictions on operating
574 systems other than Linux and FreeBSD.
575
576- Fri Jul 02 2010 Release 0.6.0.pl00 of libisoburn adds more options to the
577 mkisofs emulation of xorriso. It also fixes minor bugs and shortcommings.
578
579- Wed Sep 15 2010 Version 0.6.36 of libisofs can produce ISO images which
580 bear a partiton 1 with non-zero start address. They can be mounted from
581 USB stick via the main device file (e.g. /dev/sdb) as well as via the
582 partition device file (e.g. /dev/sdb1).
583
584- Fri Sep 17 2010 libburn-0.8.6 lifts the test reservation on DVD-R DL media.
585
586- Sat Sep 18 2010 Release 0.6.2.pl00 of libisoburn introduces a partition
587 with non-zero offset for ISO 9660 images on USB sticks, improves mkisofs
588 emulation, and fixes a regression which existed since version 0.4.2.
589
590- Wed Oct 20 2010 libburn-0.8.8 can report the used amount of BD spare blocks.
591
592- Sat Oct 23 2010 Version 0.6.38 of libisofs can use libjte to produce jigdo
593 files along with the ISO image. Further filesystem images may be appended
594 as MBR partitions 1 to 4. The capability was added to produce boot blocks
595 for computers with MIPS CPU.
596
597- Tue Oct 26 2010 Release 0.6.4.pl00 of libisoburn and xorriso makes use of
598 the new libisofs capabilities.
599
600- Wed Dec 08 2010 libburn-0.9.0 fixes a regression with SCSI command logging.
601
602- Fri Dec 10 2010 Version 0.6.40 of libisofs makes the prediction of the
603 emerging image size less expensive and is able to make images bootable
604 for SUN SPARC systems.
605
606- Sun Dec 12 2010 Release 0.6.6.pl00 of libisoburn and xorriso can read ISO
607 images which were copied to a different start address than they were prepared
608 for.
609
610- Mon Jan 17 2011 we go for release 1.0.0. This does not indicate a
611 technological overhaul but shall emphasize the maturity of the software.
612 libisofs-1.0.0 fixes a bug about the length of ECMA-119 directory names and
613 is ready to store untranslated ECMA-119 names (violating the specs).
614 libburn-1.0.0.pl00 is now willing to create stdio-drive files with
615 rw-permissions for all, if umask really asks for it. cdrskin now refuses
616 to burn if the foreseeable size exceeds media capacity
617 libisoburn-1.0.0.pl00 can now create an ISO 9660:1999 directory tree,
618 improved the emulation fidelity of command -as mkisofs, lowered the default
619 abort threshold for xorriso batch mode, and increased that threshold for
620 xorriso dialog mode.
621
622- Wed Feb 23 2011 release 1.0.2:
623 libisofs fixes several bugs and introduces the capability to copy files
624 inside the ISO filesystem.
625 libburn removed a compilation obstacle on Solaris 9 and improved recognition
626 of stdio pseudo-drives.
627 libisoburn and xorriso fix bugs and make use of the new libisofs capability.
628 xorriso improves its mkisofs emulation.
629
630- Thu Mar 10 2011 release 1.0.4:
631 Several bugs were fixed in the libraries and in the mkisofs emulation of
632 xorriso. This emulation xorrisofs has now an own man page and info document.
633
634- Sat Apr 09 2011 release 1.0.6:
635 libburn refined its representation of emulated drives. The size alignment
636 of DVD DAO is now 2 kB rather than 32 kB. libisofs produces Joliet names of
637 up to 103 characters. xorriso fixes two bugs and makes use of the library
638 improvements.
639
640- Thu Apr 14 2011 release libisoburn-1.0.8:
641 A bug in the mkisofs emulation of xorriso could cause options to be ignored.
642 The problem was freshly introduced with libisoburn-1.0.6.
643
644- Fri May 13 2011 release libisofs-1.0.8:
645 Fixes a few rarely occurring bugs that have been found during the last month.
646
647- Sat Jun 18 2011 release 1.1.0:
648 The consumption of stack memory was reduced. Statical program analysis found
649 some rarely occurring memory leaks. Several small bugs were fixed.
650 The suffix .plXY was dropped from tarball names of libburn and libisoburn.
651
652- Mon Jun 20 2011 patch release libburn-1.1.0.pl01:
653 libburn-1.1.0 compiled only on Linux, FreeBSD, and Solaris, but not on
654 other X/Open compliant systems.
655
656- Fri Jul 08 2011 release libisofs-1.1.2 and libisoburn-1.1.2:
657 A severe regression was fixed in libisoburn and xorriso, which was introduced
658 with version 1.0.6. It caused ISO 9660 images to be unreadable if they were
659 written to a write-only random-access file. E.g. by: xorrisofs ... >image.iso
660
661- Mon Aug 08 2011 release 1.1.4:
662 Several bugs were fixed in libburn. The most severe of them prevented xorriso
663 on some drives from burning mountable ISO 9660 images to CD media.
664 New means to list drives by their udev symbolic links help to deal with
665 the non-persistent drive addresses on modern GNU/Linux.
666
667- Tue Sep 27 2011 release 1.1.6:
668 libisoburn now comes with a test suite. See releng/README. Bugs were fixed
669 in several rarely used features. Processing of ACL and extattr was enabled
670 on FreeBSD. Workarounds try to cope with vanishing udev links on GNU/Linux.
671
672- Mon Nov 21 2011 release libburn-1.1.8 and libisoburn-1.1.8:
673 libburn avoids to close and open drive device files while operating on them.
674 xorriso emulation mode xorrecord now has an own manual. libburn and xorriso
675 were prepared to operate on qemu virtio-blk-pci devices.
676
677- Sat Jan 28 2012 release 1.2.0:
678 libburn has learned to read and write CD-TEXT with CD SAO audio sessions.
679 It can now read CDRWIN .cue files which define pure audio or pure data
680 sessions. libisofs and libisoburn improved timestamp handling. Several
681 minor bugs were fixed.
682
683- Mon Apr 02 2012 release 1.2.2:
684 The handling of intentional deviations from ECMA-119 specifications has
685 been improved in libisofs. libisoburn and xorriso now make use of these
686 improvements. Some rarely occurring bugs have been fixed.
687
688- Fri Jul 20 2012 release 1.2.4:
689 libburn and libisofs got some rarely occurring bugs fixed. libisofs learned
690 to produce HFS+ metadata and Apple Partition Map. The capabilities of
691 isohybrid options --efi and --mac have been implemented (GPT and APM).
692
693- Tue Jan 08 2013 release 1.2.6:
694 Small improvements were made in libburn. Minor bugs were fixed in the
695 libraries. xorriso improved its capabilities to serve the needs of frontend
696 programs. A proof of concept for a GUI frontend has been implemented:
697 xorriso-tcltk
698
699- Mon Mar 18 2013 release 1.2.8:
700 Some rarely occurring bugs were fixed in libisofs and libburn. libburn's
701 handling of incomplete sessions has been improved. xorriso's mkisofs
702 emulation learned to set El Torito section id strings.
703
704- Fri May 17 2013 release 1.3.0:
705 Several bugs were fixed in the libraries and in xorriso. The recently
706 introduced new boot preparation capabilities have been tested. New
707 boot preparation options for GRUB2 were added.
708
709- Fri May 31 2013 patch release libburn-1.3.0.pl01:
710 cdrskin -msinfo on DVD and BD reported as old session start the same
711 number as the next writable address.
712 Regression introduced by version 1.2.8.
713
714- Fri Aug 07 2013 release 1.3.2:
715 cdrskin has acquired the capability to copy audio tracks to .wav files.
716 It can extract CD-TEXT in a form that is readable for humans and for
717 cdrskin itself. Several small bugs were fixed in xorriso. Its capabilities
718 to serve frontend programs in dialog mode have been improved.
719
720- Thu Dec 12 2013 release 1.3.4:
721 A long standing hidden bug was fixed, which affected inspection of
722 unformatted DVD+RW.
723 xorriso now by default puts EL Torito boot images to low block addresses.
724 It can report and set read speeds. Several rarely occurring bugs were fixed.
725
726- Tue Mar 04 2014 release 1.3.6:
727 libburn learned to operate optical drives and media on NetBSD. libisofs got
728 a bug fix about HFS+ and enhancements about character set conversion.
729 Minor bugs were fixed in libisoburn. xorriso can now find files with names
730 which cannot be represented unchanged in ECMA-119, Joliet, or HFS+.
731
732- Sat Jun 28 2014 release 1.3.8:
733 libburn got several bugs fixed. libisofs offers new API calls for inspection
734 of boot sectors in ISO 9660 filesystems. xorriso improved its support for
735 NetBSD, offers new features with command -find, and a command to extract
736 ISO 9660 file content onto standard output or into filter processes.
737
738- Sun May 17 2015 release 1.4.0:
739 This release is mainly about bug fixes and a new feature of xorriso to
740 propose commands or as_mkisofs options which can reproduce the boot
741 equipment of the loaded ISO filesystem.
742
743- Sat Nov 28 2015 release 1.4.2:
744 libburn got some bugs fixed and learned to inquire the drive serial number.
745 libisofs now sorts data file content by ECMA-119 file names for better
746 reproducability of ISO content. Rock Ridge filenames may be restricted to
747 lengths between 64 and 255 bytes. If needed, a qualified truncation happens.
748 xorriso now can replay boot settings when modifying ISO filesystems.
749 In order to avoid clogging of concurrent Linux SG_IO, xorriso got command
750 -modesty_on_drive to enable an old workaround from IDE master/slave days.
751 The source code underwent a scan by Coverity. About 150 code changes
752 resulted, but no easy-to-trigger bugs were found.
753
754- Fri Jan 29 2016 patch release libburn-1.4.2.pl01:
755 cdrskin did not work with "-" (stdin) as input.
756 Regression introduced by version 1.4.2.
757
758- Fri Jul 01 2016 release 1.4.4:
759 The capability to use Linux /dev/sg was revived in order to circumvent the
760 sr_mutex lock which hampers concurrent use of optical drives via SG_IO.
761 libisofs now can use appended partitions by El Torito, avoiding the need
762 for duplicate EFI System Partition images.
763 Several bugs have been fixed.
764
765- Fri Sep 16 2016 release 1.4.6:
766 libburn now operates optical drives on OpenBSD. libisofs makes pseudo-random
767 id generation reproducible by relating it to the volume date.
768 xorriso interprets environment variable SOURCE_DATE_EPOCH of
769 reproducible-builds.org to prepare a default setting which leads to identical
770 ISO images on identical input and identical constant options.
771 Several moderately embarrassing bugs have been fixed.
772
773- Tue Sep 12 2017 release 1.4.8:
774 libburn now refuses to write to SRM+POW formatted BD-R, because it would
775 spoil them. libisofs got several bugs fixed and offers new API calls to
776 support new xorriso features. libisoburn and xorriso offer more detail
777 control with particular boot sector types. New bugs and a regression from
778 version 1.4.4 were fixed.
779
780- Sat Sep 15 2018 release 1.5.0
781 libisofs now can record all xattr namespaces, user defined padding was moved
782 after appended partitions. libisoburn and xorriso make use of the new xattr
783 capability of libisofs.
784 All three libraries got some rarely triggered bugs fixed.
785
786- Sat Oct 26 2019 release 1.5.2
787 The libraries are now ready for building out-of-source. libisofs got minor
788 API extensions. libburn got a bug fixed which spoiled burn runs on
789 some MATSHITA laptop drives. It is now able to list all features which
790 the drive announces. xorriso can now set GPT type GUIDs with appended
791 partitions and the ISO partition.
792 All three libraries got some rarely triggered bugs fixed.
793
794- Mon Nov 25 2019 patch release 1.5.2.pl01
795 cdrskin did not properly burn multiple tracks. Track 1 was slow and burning
796 stalled before track 2. Regression introduced by 1.5.0.
797
798- Sat Jan 30 2021 release 1.5.4
799 libburn offers new opportunities to influence drive speed. libisofs switched
800 to usage of libjte-2.0.0. Further it can now write and read zisofs2 format,
801 which enables compression of files >= 4 GiB. When reading Joliet file trees
802 the names get stripped of their version numbers by default. After loading
803 metadata, libisofs can now tell which directory tree was loaded and whether
804 Rock Ridge is used. libisoburn and xorrso make use of these new features.
805 xorriso can put out the data stream of -check_media to standard output. It
806 can restore files with many zero bytes as sparse files and it is able to
807 extract recognized boot images into data files on hard disk.
808 A new script xorriso-dd-target helps to put an ISO image onto an USB stick
809 without endangering valuable hard disk content.
810 Several rarely triggered bugs were fixed.
811
812
813------------------------------------------------------------------------------
814
815 This program is free software; you can redistribute it and/or modify
816 it under the terms of the GNU General Public License version 2 or later
817 as published by the Free Software Foundation.
818
819 This program is distributed in the hope that it will be useful,
820 but WITHOUT ANY WARRANTY; without even the implied warranty of
821 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
822 GNU General Public License for more details.
823
824 You should have received a copy of the GNU General Public License
825 along with this program; if not, write to the Free Software
826 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
827
828------------------------------------------------------------------------------
829Clarification in my name and in the name of Mario Danic, upcoming copyright
830holders on toplevel of libburnia. To be fully in effect after the remaining
831other copyrighted code has been replaced by ours and by copyright-free
832contributions of our friends:
833------------------------------------------------------------------------------
834
835We, the copyright holders, agree on the interpretation that dynamical linking
836of our libraries constitutes "use of" and not "derivation from" our work in
837the sense of GPL, provided those libraries are compiled from our unaltered
838code or from altered code published under GPL.
839
840So we will not raise legal protest if you link our libraries dynamically with
841applications which are not under GPL, or if you distribute our libraries
842and application tools in binary form, as long as you fulfill the usual
843condition of GPL to offer a copy of their source code -altered or unaltered-
844under GPL.
845
846We ask you politely to use our work in open source spirit
847and with the due reference to the entire open source community.
848
849If there should really arise the case where above clarification
850does not suffice to fulfill a clear and neat request in open source
851spirit that would otherwise be declined for mere formal reasons,
852only in that case we will duely consider to issue a special license
853covering only that special case.
854It is the open source idea of responsible freedom which will be
855decisive and you will have to prove that you exhausted all own
856means to qualify for GPL.
857
858For now we are firmly committed to maintain one single license: GPL.
859
860signed: Mario Danic, Thomas Schmitt
861Agreement joined later by: Vreixo Formoso
862
863