cdrtools

cdrtools
Basisdaten

MaintainerJörg Schilling
EntwicklerJörg Schilling, Eric Youngdale, Heiko Eißfeldt, James Pearson
Erscheinungsjahr1996
Aktuelle Version3.01[1]
(26. August 2015)
Aktuelle Vorabversion3.02a09[2]
(10. Dezember 2017)
BetriebssystemLinux, Unix, BSD, Windows, OS/2 uvm.
ProgrammierspracheC
KategorieBrennprogramm, CD-Ripper
LizenzCDDL/GPL und andere (jeweils Werksspezifisch), libscg CDDL mit zusätzlicher Auflage: Kombination ausschließlich mit OSI-Lizenzen. Siehe aber auch: Lizenzdiskussion.
deutschsprachigja
cdrtools.sourceforge.net

Die cdrtools sind eine Sammlung von portablen Open-Source-Programmen zur Datenaufbereitung und Aufnahme auf CD/DVD/BluRay-Medien ("Brennen" genannt), die größtenteils von Jörg Schilling entwickelt wurden. Hauptbestandteile sind:

  • cdrecord, ein Brennprogramm
  • cdda2wav, ein CD-Ripper mit paranoia-Unterstützung, der auch Metadaten und Hidden Tracks liest und damit eine vollständige Extraktion erlaubt
  • libparanoia, eine Library-Version des relevanten Codes von cdparanoia
  • mkisofs, zur Erzeugung eines CD-Dateisystems
  • readcd, ein Ausleseprogramm mit CD-Clone-Fähigkeiten

Die cdrtools waren lange Zeit die Standardlösung zum Brennen von CDs unter Linux, bevor infolge einer Lizenzänderung die meisten großen Linux-Distributionen die aktuelle Version der Software (nach ihrer Interpretation der Lizenz) nicht mehr enthalten können. Jörg Schilling widersprach dieser Interpretation der Lizenz.

cdrecord

cdrecord ist ein Brennprogramm, dessen Entwicklung Ende 1995 von Jörg Schilling auf Basis der seit August 1986 entwickelten libscg begonnen wurde.

Im Februar 1996 wurde es erstmals für Solaris veröffentlicht. Portierungen auf Linux, HP-UX, AIX, IRIX und 20 weitere Plattformen folgten ab 1997.

cdrecord wurde auf Betreiben der Datenarchivare der Europäischen Südsternwarte im Februar 1998 eines der ersten Programme mit DVD-Unterstützung. Der Quellcode zur DVD-Unterstützung konnte jedoch wegen einer Verschwiegenheitserklärung mit dem Laufwerkshersteller Pioneer lange Zeit nicht veröffentlicht werden und der Erwerb eines DVD-Brenners war in der Zeit zwischen September 1997 und August 2001 wegen der Vorbehalte der US-Filmindustrie reglementiert. Mit Erscheinen des ersten frei verkäuflichen DVD-Brenners im September 2001 wurden zunächst kostenlose Binärversionen von cdrecord-ProDVD herausgegeben und seit dem Frühjahr 2006 ist der gesamte Code von cdrecord-ProDVD quelloffen. Seit Juli 2007 bieten die cdrtools auch eine anfangs rudimentäre, mittlerweile aber vollständige Blu-Ray-Unterstützung.

cdda2wav

cdda2wav ist ein CD-Ripper, dessen Entwicklung 1993 von Heiko Eißfeldt unter Linux begonnen wurde. Seit 1998 verwendet es die libscg als plattformunabhängigen SCSI-Transport und wurde dadurch portabel. Seit April 2002 nutzt cdda2wav die libparanoia, welche aus cdparanoia abgeleitet ist und vor allem bei beschädigten Medien von Vorteil ist. Zusätzlich wurde cdda2wav Anfang 2002 um herstellerspezifische Leseroutinen erweitert, die situativ bessere Leseeigenschaften als die Standardkommandos bieten. Dadurch kann cdda2wav auch stark beschädigte und absichtlich defekte Medien lesen, die in einigen Fällen mit den herkömmlichen Auslesemethoden nicht mehr verarbeitet werden könnten.

readcd

readcd liest Datensektoren optischer Datenträger und ist daher als Ergänzung zu cdda2wav zu sehen. Es kann CDs auch im „Raw“-Modus zusammen mit zusätzlichen Metadaten lesen und ermöglicht dadurch ein „Klonen“ von CDs.

Eine weitere Funktion in readcd ist die Möglichkeit, Fehlerkorrekturdaten (C1/C2 bei CDs und PI8/PIF bei DVDs) auszulesen, um die Qualität eines Mediums zu beurteilen.

mkisofs

mkisofs ist ein Programm zur Erzeugung von ISO-9660-Dateisystemabbildern. Es wurde 1993 von Eric Youngdale unter Linux begonnen. Seit 1997 wurde es in die cdrtools integriert und Eric Youngdale zog sich schrittweise aus der Entwicklungsarbeit zurück. Im August 1999 übergab Eric Youngdale die Entwicklung an Jörg Schilling.

Mkisofs unterstützt neben ISO 9660 auch Rockridge, Joliet und UDF.

Durch die Verwendung von libfind kann mkisofs die Eigenschaften und Optionen des find-Programms direkt nutzbar machen.

Libparanoia

Libparanoia ist eine Software, deren Ursprung 1997 von Christopher Montgomery (Monty) als Patch zu cdda2wav geschrieben wurde, um die Auslesequalität auch bei beschädigten Medien und schlechten Laufwerken zu verbessern. Seit 1998 wird der Patch als cdparanoia, eine Abspaltung von cdda2wav, auch separat vertrieben. Jörg Schilling hat im Frühjahr 2002 schließlich die wesentlichen Teile der Funktionalität des Patches in die portable libparanoia überführt und damit für cdda2wav und andere Programme plattformübergreifend nutzbar gemacht.

Der relevante Code in cdparanoia setzt auf den Leseroutinen in cdda2wav auf und versucht durch abweichende Leseergebnisse als fehlerhaft erkannte Teile durch erneutes Lesen von ganzen Sektoren und durch das geschickte Mischen der Ergebnisse zu verbessern. Wenn ein Laufwerk Sektoren gar nicht lesen kann, weil entweder das Medium zu stark zerstört ist oder weil das Medium absichtlich vom Hersteller angebrachte Defekte besitzt, dann versagt der paranoia-Code. Eine Fehlererkennung wäre in solchen Fällen nur möglich, wenn sowohl in cdda2wav als auch in libparanoia eine Auswertung der C2-Fehlerinformationen stattfinden würde.

Cdrtools als Name für das Gesamtpaket

Der Name „cdrtools“ wurde 1998 nach Integration von cdda2wav in den gemeinsamen Quellcode und in das gemeinsame Build-System eingeführt.

Unter Betriebssystemen wie Solaris, Linux oder FreeBSD verwenden zahlreiche Programme sowohl für die Konsole als auch mit grafischer Benutzeroberfläche für den eigentlichen Aufnahmevorgang die cdrtools oder dessen Abspaltung, darunter:

  • K3b als Multifunktionsoberfläche von KDE zum Brennen und Kopieren von CDs und DVDs.
  • X-CD-Roast, ein GTK-basierendes, plattformübergreifend verfügbares Programm für Linux, FreeBSD, OpenBSD und viele andere unixoiden Betriebssysteme
  • Brasero für die Arbeitsumgebung Gnome
  • Plugins für den KDE-Dateimanager Konqueror
  • Plugins für den GNOME-Dateimanager Nautilus

Die Windows-Brennprogramme InfraRecorder und cdrtfe bauen als grafisches Frontends ebenfalls auf den cdrtools auf. Die Cdrtools sind auch für diverse weitere Betriebssysteme verfügbar.

Lizenzdiskussion

Im Februar 2005 stellte Jörg Schilling sein Makefile-System, ein eigenständiges Projekt, das schon seit 1992 zur Steuerung der Kompilierung diverser Softwareprojekte verwendet worden war, auf die aus seiner Sicht freiere Lizenz CDDL um. Dieses System wird auch zur Erstellung der cdrtools verwendet. Darin sah das Debian-Projekt ein Problem wegen inkompatibler Lizenzen.[3][4] Laut Autor standen die den GPL-Projekten in den cdrtools zugeordneten Makefiles in den Projektordnern weiterhin unter der GPL. Er beruft sich auf die Auslegung eines Juristen, nach der „Skripte zur Kompilation“ unter einer beliebigen Lizenz stehen dürfen, solange sie die Weitergabe erlaubt.[5] Der Autor stellte weitere Teile der cdrtools auf die CDDL um, um die Lizenz zu vereinheitlichen, was die Bedenken aus dem Debian-Projekt aber nicht zerstreuen konnte.

Aufgrund dieser Problematik initiierte das Debian-Projekt eine Abspaltung der cdrtools unter dem Namen cdrkit und entfernte das ursprüngliche Projekt aus den eigenen Paketquellen.[6] Viele andere Linux-Distributionen ersetzten ebenfalls cdrecord durch Debians Abspaltung. Gentoo ist als Quellcode-basierte Distribution von dieser Lizenzfrage nicht betroffen und bietet die aktuelle cdrtools-Version und die Abspaltung alternativ an. Oracle verteilt mit seinem Betriebssystem Solaris ausschließlich cdrecord. Slackware verfährt ebenso.

Die Tatsache, dass das GPL-Programm mkisofs gegen eine CDDL-Bibliothek linkt, wird vom Debian-Projekt noch immer als Verletzung der GPL angesehen. Allerdings betrachtet Jörg Schilling das binäre Ergebnis des automatischen Linkvorgangs nicht als abgeleitetes Werk, sondern als ein Sammelwerk im Sinne des US-Copyright-Gesetzes.[7][8] Nach Rechtsauffassung von Juristen, die sich bisher zu diesem Thema geäußert haben, sind die Teile der GPLv2, welche sich auf eingebundene, externe Programmteile beziehen („The ‚Program‘, below, refers to any such program or work, and a ‚work based on the Program‘ means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.“[9]) in dem Falle eines Sammelwerkes nicht anzuwenden, wobei allerdings Uneinigkeit über die Grenzziehung zwischen abgeleiteten Werken und Sammelwerken besteht.[10][11][12] Mit seinen Ansichten, dass es sich bei den fraglichen Kombinationen um Sammelwerke (und nicht um abgeleitete Werke) handelt, widerspricht Schilling ausdrücklich den von ihm sogenannten „Behauptungen der FSF“[13] zur GPL.

Versionsgeschichte

ProjektnameVorabversionenstabile Versionen
ersteletzteVersionenDatum
cdrecordÄltere Version; nicht mehr unterstützt: 1.004. Feb. 1996
Ältere Version; nicht mehr unterstützt: 1.014. Okt. 1996
Ältere Version; nicht mehr unterstützt: 1.0220. Dez. 1996
Ältere Version; nicht mehr unterstützt: 1.0316. Mai 1997
Ältere Version; nicht mehr unterstützt: 1.0423. Mai 1997
1.5a11.5a9Ältere Version; nicht mehr unterstützt: 1.0515. Sep. 1997
1.6a011.6a15Ältere Version; nicht mehr unterstützt: 1.0618. Apr. 1998
1.6.1a11.6.1a7Ältere Version; nicht mehr unterstützt: 1.06.119. Okt. 1998
1.8a011.8a40Ältere Version; nicht mehr unterstützt: 1.0828. Jan. 2000
1.8.1a011.8.1a09Ältere Version; nicht mehr unterstützt: 1.08.127. Apr. 2000
1.9a011.9a05Ältere Version; nicht mehr unterstützt: 1.0920. Jul. 2000
cdrtools1.10a011.10a19Ältere Version; nicht mehr unterstützt: 1.1022. Apr. 2001
1.11a01
2.0pre1
1.11a40
2.0pre3
Ältere Version; nicht mehr unterstützt: 2.0025. Dez. 2002
Ältere Version; nicht mehr unterstützt: 2.00.328. Mai 2003
2.01a012.01a38Ältere Version; nicht mehr unterstützt: 2.019. Sep. 2004
2.01.01a012.01.01a80Ältere Version; nicht mehr unterstützt: 3.00[14][15]2. Jun. 2010
3.01a013.01a31Aktuelle Version: 3.01[1]26. Aug. 2015[1]
3.02a01Vorabversion: 3.02a09[2]Zukünftige Version: 3.02
Legende:
Alte Version
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version

Einzelnachweise

  1. a b c Jörg Schilling: cdrtools 3.01 announcement and release notes. (TXT) 26. August 2015, abgerufen am 28. August 2015 (englisch).
  2. a b Jörg Schilling: cdrtools 3.02a09 announcement. (TXT) 10. Dezember 2017, abgerufen am 21. Dezember 2017 (englisch).
  3. FSF zur GPL-CDDL-Kompatibilität: „cannot legally be linked together“
  4. Problembericht zur Lizenzänderung mit anschließender Diskussion (englisch)
  5. Die GPL erklärt und kommentiert (PDF; 4,56 MB) Olaf Koglin, Till Jaeger et al. (komplettes Buch kommentiert), ISBN 3-89721-389-3
  6. Joerg Jaspert: cdrkit (fork of cdrtools) uploaded to Debian, please test. In: Debian Development Announcements email list. 4. September 2006, abgerufen am 14. August 2007.
  7. Copyright-Definitionen zu „Collective Work“ und „Derivative Work“
  8. Stellungnahme Jörg Schillings zum Lizenzproblem
  9. vergleiche GPLv2 TERMS AND CONDITIONS, Punkt 0:
  10. Open Source Licensing (Memento vom 9. Februar 2012 im Internet Archive), Lawrence Rosen, ISBN 978-0-13-148787-1
  11. Report on Problem Scope and Definition about OSS License Compatibility (PDF; 824 kB), Thomas F. Gordon
  12. Lothar Determann: DANGEROUS LIAISONS – SOFTWARE COMBINATIONS AS DERIVATIVE WORKS?. Distribution, Installation and Execution of Linked Programs under Copyright Law, Commercial Licenses and the GPL. In: BERKELEY TECHNOLOGY LAW JOURNAL. Issue 21:4, 2006 (englisch, Online [PDF; 620 kB; abgerufen am 13. Mai 2020]).
  13. http://www.osscc.net/de/gplger.html
  14. Jörg Schilling: cdrtools 3.00 release announcement. 18. Mai 2010, abgerufen am 18. Mai 2010 (englisch).
  15. Jörg Schilling: cdrtools 3.00 release notes. (TXT) 2. Juni 2010, abgerufen am 2. Juni 2010 (englisch).