cdrtools

From Wikipedia, the free encyclopedia
  (Redirected from Mkisofs)
Jump to: navigation, search
cdrtools
Original author(s) Jörg Schilling, Eric Youngdale, Heiko Eißfeldt, James Pearson
Developer(s) Jörg Schilling
Initial release 4 February 1996; 18 years ago (1996-02-04)
Stable release 3.00 (2 June 2010 (2010-06-02)) [±][1][2]
Preview release 3.01a24 (7 May 2014 (2014-05-07)) [±][3]
Development status Active
Written in C
Operating system Cross-platform (see Compatible operating systems)
Available in English
Type CD/DVD/Blu-ray writing
License CDDL, GNU GPL and GNU LGPL
Website cdrecord.org
As of May 2014

cdrtools (formerly known as cdrecord) is a collection of independent projects of free software/open source computer programs, created by Jörg Schilling and others.

The most important parts of the package are cdrecord, a console-based burning program; cdda2wav, a CD audio ripper that uses libparanoia; and mkisofs, a CD/DVD/BD/UDF/HFS filesystem image creator. Because these tools do not include any GUI, many graphical front-ends have been created.

Features[edit]

The collection includes many features, such as:

History[edit]

Origins and name change[edit]

The first releases of cdrtools were called cdrecord because they only included the cdrecord tool and a few companion tools, but not mkisofs nor cdda2wav. In 1997, a copy of mkisofs[4] (developed at that time by Eric Youngdale) was included in the cdrecord package. In 1998, a copy of an experimental version of cdda2wav[5] (developed at that time by Heiko Eißfeldt) was included in the cdrecord package.

In 2000, Jörg Schilling changed the name of his package from "cdrecord" to "cdrtools"[6] to better reflect the fact that it had become a collection of tools.

DVD and Blu-ray disc writing support[edit]

DVD writing support (cdrecord-ProDVD) in cdrecord started 1998, but since the relevant information required a non-disclosure agreement and DVD writers were not publicly available, it was not included in the source code. In 2002, Jörg Schilling started offering free license keys to the closed-source variant cdrecord-ProDVD for educational, and research use, shortly thereafter also for private use. Unregistered free licenses were initially limited to single-speed writing and would expire every year. On May 15th 2006, support for DVD writing was added to the open-source version 2.01.01a09 after switching the license to CDDL; thereby removing the need to get a license key. Blu-ray disc support was added starting 2007.

The lack of open-source DVD writing support in 2001 led to heated discussions on the mailing lists, and to a number of unofficial patches for supporting the Pioneer DVD-R A03, the first DVD writer to reach mass market, and forks of cdrecord: Mandrake shipped a version called cdrecord-dvdhack,[7] whereas Redhat had dvdrecord.[8]

License (in)compatibility controversy[edit]

License disagreement[edit]

Starting with version 2.01.01a09, most code from cdrtools has been relicensed under the CDDL, while mkisofs remains licensed under the GPL. This change led to an ongoing disagreement about whether distribution or use of precompiled cdrtools binaries is legally possible. The following are one-sentence summaries of the different positions:

  • Jonathan Corbet, founder of the LWN.net news source argued that, in the eyes of Debian developers, this change makes it impossible to legally distribute cdrtools binaries according to the Free Software Foundation's interpretation of the license.[9]
  • Debian,[10] Red Hat,[11] Fedora,[12] OpenSUSE,[13] Mandriva[14] and Ubuntu[15] dropped the versions of cdrtools with CDDL code from their distributions and switched to the Debian project created cdrkit, a fork of the last GPL-licensed cdrtools version.[16]
  • Slackware and Gentoo Linux are unaffected, as the potential licensing issue only affects the distribution of precompiled binaries and these distributions compile from source code. They offer both versions.
  • Jörg Schilling denies a license problem in cdrtools. In his interpretation, it consists of independent works and thus do not mix incompatible licenses. He continues to develop his version of cdrtools under the CDDL and GPL (mkisofs) licenses, whereas the cdrkit fork has received next to no updates since.
  • In fall 2013, OpenSUSE Factory added back the original cdrtools in addition to the forked version.

As is common with the GPL and other open source licenses, very little case law exists to provide guidance to users.

Timeline of licensing disagreement[edit]

The project was originally licensed under the GNU General Public License (GPL).

CD burning is done through the SCSI interface. Burning a CD requires the user to provide a SCSI device (which is identified by a triplet of numbers). By 2002 more and more burners were using the ATAPI interface. Linux 2.6 allowed the users to detect the SCSI ID of a device from its UNIX device path (/dev/hdX) and a patch was published that made identifying the burner device for cdrecord simpler. Schilling, however, rejected this approach as well as other fixes used by Linux distributions, with the rationale that it would make the software more complex and less portable as this function was not available on other UNIX systems. Instead he proposed that Linux should become more like Solaris and all devices should be addressed by SCSI LUNs. By 2004 Linux distributions were maintaining this change, along with a number of other changes rejected by Schilling.[17]

With version 1.11a17 (released in 2002), a section of cdrtools' source code was modified to include an invariant section, with the intent to prevent people from distributing variants with "intentional bugs" under the original name.[18] The purpose of this invariant section was to make sure any modification to cdrecord would be properly reported as such to the user. Publishing the modified cdrtools code under the restricted terms of the invariant section is still permitted if the code is distributed with a different name,[18] as is common in open source projects.[19]

In May 2006, most parts of cdrtools were switched to the CDDL with permission from their authors.[20] After this license change some parts of cdrtools (e.g. mkisofs, which is still GPL-licensed) use code that was switched to CDDL, (e.g. libscg, the SCSI Transport Layer developed by Jörg Schilling).

According to the Free Software Foundation, the CDDL is a free software license, albeit one that is incompatible with the GNU General Public License (GPL).[21] Jonathan Corbet, founder of the LWN.net news source argued this makes it impossible to legally distribute cdrtools binaries.[22]

On 31 Jan 2006, a bug was filed in the Debian bug tracker over this license change when noticing the change in the previous version 2.01.01a03 [23] with concerns about how the GPL license in some of its components interacted with the CDDL license in cdrtools makefiles, which fall under the requirement of the GPL license to distribute source code.[24] GPL allows code with different licenses to be aggregated as collective works in the same distribution when one is not derived from the other,[25] but not for software that makes a derivative work.[26] Whether linking to GPL code constitutes a derivative work is open to debate; Debian developers decided, according to the point of view that dynamic and static linking violate GPL, that the files under the CDDL license were incompatible with their distribution[22] and removed them.[23]

Jörg Schilling's position is that any open source operating system can distribute cdrtools as long as the terms of the licenses are respected.[27][28] In September 2006, four months after the license change, Schilling added support for dynamic-linking cdrtools.[29]

Several GNU/Linux distributions stopped distributing the re-licensed cdrtools in 2006. Debian,[30] Red Hat,[31][32] and Mandriva[33] have all either dropped cdrtools or reverted to the last non-CDDL release of cdrtools, and have not reverted that decision until now. Just before dropping cdrtools in 2006, the Debian project created cdrkit, a fork of cdrtools.[34] cdrkit is distributed by most of the GNU/Linux distributions which have dropped cdrtools.

In August 2008, Mark Shuttleworth offered to ask the Software Freedom Law Center for a legal opinion on whether cdrtools could be included in Ubuntu, provided Schilling agreed to accept the opinion.[35] SFLC's chairman Eben Moglen published a summary of his discussion with Schilling.[36] Eblen stated that the GPL compatibility of mkisofs was broken, because fulfilling all clauses of GPL and CDDL at the same time is impossible, and that Schilling would need to allow permission to use the software under the GPL terms to make distribution of the combined work possible.

According to Moglen, Schilling disagreed that additional permissions were required, and Shuttleworth abandoned the attempt to include cdrtools in Ubuntu. However, Jörg Schilling denied the accuracy of Moglen's version, stating that his depiction of their conversation was in conflict with what really happened.[37]

Invariant section in the license[edit]

The Linux-2.6 kernel introduced an incompatible interface change for the SCSI generic interface just when cdrtools 2.01-final have been published. This interface change affected cdrecord and for this reason, some versions of cdrtools included warnings against using Linux Kernel Version 2.6.x or SUSE Linux.[38] These warnings were wrapped in an invariant section, to prevent removal. Jörg Schilling said they are part of the "appropriate copyright" and "no warranty" notice required by the GPL. Corbet disagreed with Jörg, and stated that the GPL only requires printing of an "appropriate" copyright notice, but do not require to use the exact text provided by the original author and this warning may therefore be replaced with a neutral copyright attribution.[38]

cdrtools versus cdrkit versus libburnia[edit]

GNU/Linux distributions which still ship cdrkit consider it as legacy software and plan to move to libburnia,[39][40] which is not based on cdrtools.

Main commands in each software suite
Software suite Commands for
CD/DVD/Blu-ray CD-Audio
pre-mastering burning reading extraction
cdrtools mkisofs[41] cdrecord[42] readcd[43] cdda2wav[44]
cdrkit genisoimage[45] wodim[46] readom[47] icedax[48]
libburnia xorriso[49] xorriso / cdrskin[50] xorriso / telltoc cdrskin

The following tables list some differences between cdrtools, cdrkit and libburnia. (The comparisons apply to the latest releases of each software suite.)

Comparison of cdrtools, cdrkit and libburnia
Topic Suites compared
cdrtools cdrkit libburnia
License(s) CDDL (cdrecord, libscg, etc.),
GPL (mkisofs), LGPL (libparanoia)
GPL GPL
Year of first public release 1996 2006 2006
Development status Active ? Active
Comparison of cdrecord, wodim and cdrskin
Topic Commands compared
cdrecord[42] (cdrtools) wodim[46] (cdrkit) cdrskin[50] (libburnia)
Has support for Blu-ray Discs Yes ? ?
Has support for custom Layer Jump Recording (to tell the burner when to switch to the second layer on dual-layer DVDs) Yes ? ?
Has support for automatic Layer Jump Recording (the burner decides when to switch to the second layer on dual-layer DVDs) Yes ? ?
Has support for capability-based security (on GNU/Linux systems supporting it), which means the burn program does not need to be installed with setuid access rights (in other words, burn operations can be performed by unprivileged users with increased security) Yes[51] ? ?
Supports "Disc Tattooing" CD-R and DVD media with DiscT@2-capable burners Yes Yes ?
Supports ".inf" files for CD-audio Yes Yes ?
Supports CD-audio hidden tracks Yes ? ?
Supports ".cue" files for CD-audio Yes Yes Yes
Comparison of mkisofs, genisoimage and xorriso
Topic Commands compared
mkisofs[41] (cdrtools) genisoimage[45] (cdrkit) xorriso[49] (libburnia)
Has support for big files (size ≥ 4 GiB) and multi-extent files Yes ? Yes
Has support for UDF filesystems (required for video DVD/BD) Yes Partial[52] No[53]
Has support for Rock Ridge Yes (v 1.12) Yes (v 1.10)[54] Yes (v 1.12)
Allows editing existing Rock Ridge images No[not in citation given] ? Yes
Granularity of time stamps in Rock Ridge extensions 10ms[55][a] ? 1s
Support for all three Unix times ("atime", "ctime" and "mtime") in Rock Ridge Yes[56] ? Yes
Support for all three Unix times ("atime", "ctime" and "mtime") in UDF Yes[57] ? ?
Has EFI boot support (for creating bootable media) Yes[b] ? Yes
Has built-in Jigdo support (for creating .jigdo and .template files along with the ISO image file) No[not in citation given] Yes Yes
Built-in -find" option Yes ? Yes
Configurable list of ignored errors during image masterisation Yes[c] ? ?
Comparison of cdda2wav, icedax and cdrskin
Topic Commands compared
cdda2wav[44] (cdrtools) icedax[48] (cdrkit) cdrskin[50] (libburnia)
Support to use libparanoia for audio extraction Yes Yes ?
Displays libparanoia statistics Yes ? ?
Support to extract hidden tracks Yes No ?
Creates .inf files for supported content Yes Yes ?
Creates .cue files for supported content Yes ? ?
Support to compute MD5 checksums for the extracted audio data Yes No ?

Version history[edit]

Stable releases of cdrecord are not frequent. 3.00 was released in June 2010 and the version before it, 2.01, was released in September 2004. However, preview ("alpha") releases are often used. Preview releases are numbered with the target version number (e.g. 3.01) to which a "aNN" suffix is appended. There has been one exception, though, with release 3.00, for which the preview releases were called "2.01.01aNN" instead of a "3.00aNN".

Version history of cdrtools
Project Name Preview Releases Stable Release Notes
first last version date
cdrecord Old version, no longer supported: 1.00 1996-02-04
Old version, no longer supported: 1.01 1996-10-04
Old version, no longer supported: 1.02 1996-12-20
Old version, no longer supported: 1.03 1997-05-16
Old version, no longer supported: 1.04 1997-05-23
1.5a1 1.5a9 Old version, no longer supported: 1.05 1997-09-15
1.6a01 1.6a15 Old version, no longer supported: 1.06 1998-04-18
1.6.1a1 1.6.1a7 Old version, no longer supported: 1.06.1 1998-10-19
1.8a01 1.8a40 Old version, no longer supported: 1.08 2000-01-28
1.8.1a01 1.8.1a09 Old version, no longer supported: 1.08.1 2000-04-27
1.9a01 1.9a05 Old version, no longer supported: 1.09 2000-07-20
cdrtools 1.10a01 1.10a19 Old version, no longer supported: 1.10 2001-04-22
1.11a01
2.0pre1
1.11a40
2.0pre3
Old version, no longer supported: 2.00 2002-12-25
Old version, no longer supported: 2.00.3 2003-05-28
2.01a01 2.01a38 Old version, no longer supported: 2.01 2004-09-09 This series was the last GPL-licensed version and was used as base for the fork cdrkit.
2.01.01a01 2.01.01a80 Current stable version: 3.00[1][2] 2010-06-02 On May 2006, most parts of cdrtools were switched to the CDDL.[20] Blu-ray support is available since July 2007[58]
3.01a01 Latest preview version of a future release: 3.01a24[3] 2014-05-07[3]
Legend:
Old version
Older version, still supported
Latest version
Latest preview version
Future release

Related software[edit]

Forks[edit]

Software that can use cdrtools[edit]

Notes[edit]

  1. ^ The time stamp granularity with Rock Ridge extensions in mkisofs is 10 miliseconds with the "-long-rr-time" option (enabled by default), and 1 second with the "-short-rr-time" option.
  2. ^ EFI boot support in mkisofs is available with the "-eltorito-platform efi" option.
  3. ^ Error control in mkisofs may be specified with the "errctl=" option.

References[edit]

  1. ^ a b Schilling, Jörg (18 May 2010). "cdrtools 3.00 release announcement". cdrtools.sourceforge.net. Retrieved 2010-05-18. 
  2. ^ a b Schilling, Jörg (2 June 2010). "cdrtools 3.00 release notes". cdrtools.sourceforge.net. Retrieved 2010-06-02. 
  3. ^ a b c Schilling, Jörg (7 May 2014). "cdrtools 3.01a24 announcement". cdrtools.sourceforge.net. Retrieved 2014-05-13. 
  4. ^ mksofs-1.11 was incorporated to cdrecord-1.5a3 on 5 July 1997 (source: AN-1.5a3)
  5. ^ cdda2wav-0.95beta07 was incorporated to cdrecord-1.8a6 on 27 October 1998 (source: AN-1.8a6)
  6. ^ cdrecord and its friends (mkisofs and cdda2wav) are distributed in a common package called cdrtools since 27 July 2000 (source: AN-1.10a01).
  7. ^ [1]
  8. ^ dvdrtools - dvdrecord at the Wayback Machine (archived December 1, 2002)
  9. ^ Jonathan Corbet. "cdrtools - a tale of two licenses". Retrieved 2007-08-04. 
  10. ^ "#377109 - RM: cdrtools -- RoM: non-free, license problems - Debian Bug report logs". Retrieved 2007-08-04. 
  11. ^ "Information for build cdrtools-2.01-11.fc7". Retrieved 2007-08-04. "moved back to version 2.01 (last GPL version), due to incompatible license issues" 
  12. ^ "[Fedora-legal-list] Legal CD/DVD/BD writing software for RedHat and Fedora". 
  13. ^ OpenSuSE 10.3 release notes
  14. ^ "Mandriva Cooker : The Inside Man V". Retrieved 2007-08-04. 
  15. ^ "Minutes from the Technical Board meeting, 2008-08-26". Retrieved 2008-09-15. 
  16. ^ "cdrkit (fork of cdrtools) uploaded to Debian, please test". Retrieved 2007-08-04. 
  17. ^ Jonathan Corbet (2004-08-11). "The value of middlemen". LWN.net. LWN.net. Retrieved 2014-04-07. 
  18. ^ a b See the file LIMITATIONS
  19. ^ "Trademark and OSS". 
  20. ^ a b The license change took place on 15 May 2006, when cdrtools-2.01.01a09 was released. (Source: AN-2.01.01a09)
  21. ^ "Various Licenses and Comments About Them - Common Development and Distribution License". Free Software Foundation. Retrieved 2006-12-31. 
  22. ^ a b Jonathan Corbet (2006-08-12). "cdrtools - a tale of two licenses". LWN.net. LWN.net. Retrieved 2007-08-04. 
  23. ^ a b "RM: cdrtools -- RoM: non-free, license problems". Debian Bug report logs. 
  24. ^ "A Quick Guide to GPLv3 – GNU Project – Free Software Foundation (FSF)". Free Software Foundation.  "Both versions of the GPL require you to provide all the source necessary to build the software, including supporting libraries, compilation scripts, and so on."
  25. ^ [2]
  26. ^ Dangerous Liaisons - Software combinations as Derivative Works?, Lothar Determan
  27. ^ cdrtools may be distributed in source and/or binary form, as indicated in file "COPYING" of any recent source tarball, (e.g. COPYING for the current stable release).
  28. ^ See message 17 in bugs.launchpad.net/ubuntu/+source/cdrtools/+bug/213215.
  29. ^ "#377109 - RM: cdrtools -- RoM: non-free, license problems - Debian Bug report logs". Retrieved 2007-08-04. 
  30. ^ "Information for build cdrtools-2.01-11.fc7". Retrieved 2007-08-04. "moved back to version 2.01 (last GPL version), due to incompatible license issues" 
  31. ^ "[Fedora-legal-list] Legal CD/DVD/BD writing software for RedHat and Fedora". 
  32. ^ "Mandriva Cooker : The Inside Man V". Retrieved 2007-08-04. 
  33. ^ "cdrkit (fork of cdrtools) uploaded to Debian, please test". Retrieved 2007-08-04. 
  34. ^ "Minutes from the Technical Board meeting, 2008-08-26". Retrieved 2008-09-15. 
  35. ^ "Eben Moglen's view on mkisofs GPL (non-)compliance". Arch Linux. 
  36. ^ "Eben Moglen's view on mkisofs GPL (non-)compliance". Arch Linux.  - reply by Jörg Schilling.
  37. ^ a b Corbet, Jonathan (2009-08-12). "The unending story of cdrtools". LWN.net. LWN.net. Retrieved 26 February 2014. 
  38. ^ libburnia is expected to replace cdrkit on those distributions that do not ship cdrtools. Source: cdrtools, cdrkit and cdrskin: Untying the knot.
  39. ^ In January 2012 former Debian Project Leader Steve McIntyre wrote : "I’m the primary maintainer of cdrkit at this point, but I’d prefer to have it go away. Xorriso and the associated software in libisoburn is almost capable of replacing all the aging cdrtools-derived software that we have in Debian, The only missing feature that I’m aware of is creating the HFS hybrid filesystems that we use for installations on Mac systems. I’ve been talking with the upstream folks about this for some time already, and I’m hoping we can finish this soon enough that we can get it into Wheezy." Source: McIntyre, Steve (13 January 2012). "People Behind Debian: Steve McIntyre, debian-cd maintainer, former Debian Project Leader". Retrieved 2014-02-02.  As of May 2014 this did not happen yet, and Wheezy was released in May 2013 [3] with cdrkit.
  40. ^ a b mkisofs(8) man page, archived from the original on 31 December 2013 .
  41. ^ a b cdrecord(1) man page, archived from the original on 31 December 2013 .
  42. ^ readcd(1) man page, archived from the original on 1 January 2014 .
  43. ^ a b cdda2wav(1) man page, archived from the original on 1 January 2014 .
  44. ^ a b genisoimage(1) man page.
  45. ^ a b wodim(1) man page.
  46. ^ readom(1) man page.
  47. ^ a b icedax(1) man page.
  48. ^ a b xorriso(1) man page.
  49. ^ a b c cdrskin(1) man page.
  50. ^ Support for capability-based security was added on 22 April 2013 with the release of cdrtools 3.01a14. (Source: AN-3.01a14)
  51. ^ Snippet from the genisoimage(1) man page: «UDF support is currently in alpha status and for this reason, it is not possible to create UDF-only images. UDF data structures are currently coupled to the Joliet structures, so there are many pitfalls with the current implementation. There is no UID/GID support, there is no POSIX permission support, there is no support for symlinks.»
  52. ^ «xorriso does not produce UDF filesystems which are specified for official video DVD or BD.» Source: xorriso overview and xorriso(1) man page.
  53. ^ genisoimage is compliant with Rock Ridge version 1.10 (producing the "RRIP_1991A" signature) but not with version 1.12, which has a "IEEE_1282" signature and embeds file serial numbers in the "PX" SUSP tags.
  54. ^ The "-long-rr-time" option appeared with cdrtools 3.01a01 on 24 November 2010. (Source: AN-3.01a01)
  55. ^ Support for all three Unix times for Rock Ridge extensions was already available in mkisofs 1.11 which was shipped with cdrecord 1.5a1 on 22 June 1997. (Source: lines 376 to 380 of file cdrecord-1.5/mkisofs-1.11/rock.c of archive cdrecord-1.5a1.tar.gz)
  56. ^ Support for all three Unix times for UDF was added to cdrtools 3.01a13 on 26 February 2013. (Source: AN-3.01a13)
  57. ^ Support for Blu-ray Discs was added on 4 July 2007 to cdrtools 2.01.01a29. (Source: AN-2.01.01a29)

External links[edit]