You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

847 lines
39 KiB

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