Compare commits

...

15 Commits

Author SHA1 Message Date
35904f5421 Documented changes and release timestamp 2008-12-07 14:07:50 +00:00
868310c687 Updated cdrskin tarball generator 2008-12-07 14:06:46 +00:00
57a9ad89e9 Made number transition to 0.5.8 2008-12-07 14:05:34 +00:00
6d2b06ac0c Branching for libburn release 0.5.8 2008-12-07 13:18:05 +00:00
175061615e Defaulting sessions without leadout entry 2008-12-03 08:52:44 +00:00
717ad0f412 Circumventing BD-RE Quick Certification refusal of LG GGW-H20L YL03 2008-11-29 14:04:31 +00:00
f3ea35b9b8 Translating ASC=0x31 formatting error messages, reporting command names 2008-11-29 14:01:41 +00:00
bb9ef6b988 Changed error severity with TOC truncation to MISHAP 2008-11-27 17:21:54 +00:00
aa606552eb Truncating eventually detected damaged CD table-of-content 2008-11-27 08:11:03 +00:00
9d99e7874a Added tests against the SIGSEGV of ticket 146 2008-11-26 21:06:37 +00:00
d1483a15da Mentioned FreeBSD peculiarities in our docs 2008-11-21 21:45:23 +00:00
ed60d9a644 Removed remark that use of statvfs() was untested with FreeBSD 2008-11-15 22:07:24 +00:00
bd5d8e8991 Documented changes and release timestamp 2008-11-12 12:54:21 +00:00
bf64271c67 Updated cdrskin tarball generator 2008-11-12 12:52:22 +00:00
b0c8bbd48d Made number transition to 0.5.7 2008-11-12 12:51:07 +00:00
18 changed files with 502 additions and 74 deletions

View File

@ -101,9 +101,9 @@ test_structest_CPPFLAGS = -Ilibburn
test_structest_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS) test_structest_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS)
test_structest_SOURCES = test/structest.c test_structest_SOURCES = test/structest.c
## cdrskin construction site - ts A60816 - A81005 ## cdrskin construction site - ts A60816 - A81207
cdrskin_cdrskin_CPPFLAGS = -Ilibburn cdrskin_cdrskin_CPPFLAGS = -Ilibburn
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_5_5 cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_5_8
# cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS) # cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS)
# ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking # ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking

29
README
View File

@ -65,8 +65,11 @@ The project comprises of several more or less interdependent parts which
together strive to be a usable foundation for application development. together strive to be a usable foundation for application development.
These are libraries, language bindings, and middleware binaries which emulate These are libraries, language bindings, and middleware binaries which emulate
classical (and valuable) Linux tools. classical (and valuable) Linux tools.
Currently it is supported on Linux with kernels >= 2.4 and on FreeBSD versions
with ATAPI/CAM support enabled in the kernel, see atapicam(4).
Our scope is currently Linux 2.4 and 2.6 only. For ports to other systems Our scope is currently Linux 2.4 or 2.6 and FreeBSD versions with ATAPI/CAM
support enabled in the kernel, see atapicam(4). For ports to other systems
we would need : login on a development machine resp. a live OS on CD or DVD, we would need : login on a development machine resp. a live OS on CD or DVD,
advise from a system person about the equivalent of Linux sg or FreeBSD CAM, advise from a system person about the equivalent of Linux sg or FreeBSD CAM,
volunteers for testing of realistic use cases. volunteers for testing of realistic use cases.
@ -136,8 +139,8 @@ any way and even may revoke such new features before the next release of
x.y.*[02468]. As soon as it is released, a feature is promised to persist. x.y.*[02468]. As soon as it is released, a feature is promised to persist.
SONAMES: SONAMES:
libburn.so.4 (since 0.3.4, March 2007), libburn.so.4 (since 0.3.4, March 2007),
libisofs.so.6 (since 0.6.2, February 2008), libisofs.so.6 (since 0.6.2, February 2008),
libisoburn.so.1 (since 0.1.0, February 2008). libisoburn.so.1 (since 0.1.0, February 2008).
@ -313,6 +316,26 @@ Project history as far as known to me:
- 6th Oct 2008 libburn-0.5.4 adjusts the changes of 0.5.2 to the needs of - 6th Oct 2008 libburn-0.5.4 adjusts the changes of 0.5.2 to the needs of
Linux kernel 2.4 and introduces human readable SCSI error messages. Linux kernel 2.4 and introduces human readable SCSI error messages.
- 6th Oct 2008 libisofs-0.6.10 fixes two bugs which prevented adding and
manipulation of ISOLINUX boot images.
- 15th Oct 2008 libisoburn/xorriso-0.2.8 can activate and maintain an
ISOLINUX boot image by an EL Torito boot record.
- 12th Nov 2008 libburn-0.5.6 fixes usage of freed memory by the fifo thread
of an aborted burn run.
- 26th Nov 2008 libisofs-0.6.12 can produce a ISOLINUX isohybrid MBR on the fly
and allows to produce ISO images which resemble old mkisofs images.
- 2nd Dec 2008 libisoburn-0.3.0. xorriso now is ready for exotic character
sets, for legacy FreeBSD systems which expect an outdated Rock Ridge
signature, and for producing ISO images with MBR which boot from hard disk
or USB stick. Three minor bugs were fixed.
- 7th Dec 2008 libburn-0.5.8 prevents a SIGSEGV with wierd CD table-of-content
and improves BD-RE formatting.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
cdrskin. By Thomas Schmitt <scdbackup@gmx.net> cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
Integrated sub project of libburnia-project.org but also published via: Integrated sub project of libburnia-project.org but also published via:
http://scdbackup.sourceforge.net/cdrskin_eng.html http://scdbackup.sourceforge.net/cdrskin_eng.html
http://scdbackup.sourceforge.net/cdrskin-0.5.5.tar.gz http://scdbackup.sourceforge.net/cdrskin-0.5.8.pl00.tar.gz
Copyright (C) 2006-2008 Thomas Schmitt, provided under GPL version 2. Copyright (C) 2006-2008 Thomas Schmitt, provided under GPL version 2.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
@ -12,7 +12,8 @@ Copyright (C) 2006-2008 Thomas Schmitt, provided under GPL version 2.
cdrskin is a limited cdrecord compatibility wrapper which allows to use cdrskin is a limited cdrecord compatibility wrapper which allows to use
most of the libburn features from the command line. most of the libburn features from the command line.
Currently it is only supported on Linux with kernels >= 2.4. Currently it is supported on Linux with kernels >= 2.4 and on FreeBSD versions
with ATAPI/CAM support enabled in the kernel, see atapicam(4).
By using this software you agree to the disclaimer at the end of this text By using this software you agree to the disclaimer at the end of this text
"This software is provided as is. There is no warranty implied and ..." "This software is provided as is. There is no warranty implied and ..."
@ -20,10 +21,10 @@ By using this software you agree to the disclaimer at the end of this text
Compilation, First Glimpse, Installation Compilation, First Glimpse, Installation
Obtain cdrskin-0.5.5.tar.gz, take it to a directory of your choice and do: Obtain cdrskin-0.5.8.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf cdrskin-0.5.5.tar.gz tar xzf cdrskin-0.5.8.pl00.tar.gz
cd cdrskin-0.5.5 cd cdrskin-0.5.8
Within that directory execute: Within that directory execute:

View File

@ -38,7 +38,7 @@ original="./libburn_svn_release.tgz"
# My changes are in $changes , mainly in $changes/cdrskin # My changes are in $changes , mainly in $changes/cdrskin
changes="./libburn-release" changes="./libburn-release"
skin_release="0.5.4" skin_release="0.5.8"
patch_level=".pl00" patch_level=".pl00"
skin_rev="$skin_release""$patch_level" skin_rev="$skin_release""$patch_level"

View File

@ -38,7 +38,7 @@ original="./libburn_svn.tgz"
# My changes are in $changes , mainly in $changes/cdrskin # My changes are in $changes , mainly in $changes/cdrskin
changes="./libburn-develop" changes="./libburn-develop"
skin_release="0.5.5" skin_release="0.5.9"
patch_level="" patch_level=""
skin_rev="$skin_release""$patch_level" skin_rev="$skin_release""$patch_level"

View File

@ -88,7 +88,7 @@ or
/** The official program version */ /** The official program version */
#ifndef Cdrskin_prog_versioN #ifndef Cdrskin_prog_versioN
#define Cdrskin_prog_versioN "0.5.5" #define Cdrskin_prog_versioN "0.5.8"
#endif #endif
/** The official libburn interface revision to use. /** The official libburn interface revision to use.
@ -101,7 +101,7 @@ or
#define Cdrskin_libburn_minoR 5 #define Cdrskin_libburn_minoR 5
#endif #endif
#ifndef Cdrskin_libburn_micrO #ifndef Cdrskin_libburn_micrO
#define Cdrskin_libburn_micrO 4 #define Cdrskin_libburn_micrO 8
#endif #endif
@ -135,44 +135,44 @@ or
#endif /* Cdrskin_libburn_cvs_A60220_tS */ #endif /* Cdrskin_libburn_cvs_A60220_tS */
#ifdef Cdrskin_libburn_0_5_4 #ifdef Cdrskin_libburn_0_5_8
#define Cdrskin_libburn_versioN "0.5.4" #define Cdrskin_libburn_versioN "0.5.8"
#define Cdrskin_libburn_from_pykix_svN 1 #define Cdrskin_libburn_from_pykix_svN 1
#endif /* Cdrskin_libburn_0_5_4 */ #endif /* Cdrskin_libburn_0_5_8 */
#ifdef Cdrskin_libburn_0_5_5 #ifdef Cdrskin_libburn_0_5_9
#define Cdrskin_libburn_versioN "0.5.5" #define Cdrskin_libburn_versioN "0.5.9"
#define Cdrskin_libburn_from_pykix_svN 1 #define Cdrskin_libburn_from_pykix_svN 1
/* Place novelty switch macros here. /* Place novelty switch macros here.
Move them down to Cdrskin_libburn_from_pykix_svN on version leap Move them down to Cdrskin_libburn_from_pykix_svN on version leap
*/ */
/* there are no libburn novelties in 0.5.5 yet */ /* there are no libburn novelties in 0.5.9 yet */
#endif /* Cdrskin_libburn_0_5_5 */ #endif /* Cdrskin_libburn_0_5_9 */
#ifndef Cdrskin_libburn_versioN #ifndef Cdrskin_libburn_versioN
#define Cdrskin_libburn_0_5_4 #define Cdrskin_libburn_0_5_8
#define Cdrskin_libburn_versioN "0.5.4" #define Cdrskin_libburn_versioN "0.5.8"
#define Cdrskin_libburn_from_pykix_svN 1 #define Cdrskin_libburn_from_pykix_svN 1
#endif #endif
#ifdef Cdrskin_libburn_0_5_4 #ifdef Cdrskin_libburn_0_5_8
#undef Cdrskin_libburn_majoR #undef Cdrskin_libburn_majoR
#undef Cdrskin_libburn_minoR #undef Cdrskin_libburn_minoR
#undef Cdrskin_libburn_micrO #undef Cdrskin_libburn_micrO
#define Cdrskin_libburn_majoR 0 #define Cdrskin_libburn_majoR 0
#define Cdrskin_libburn_minoR 5 #define Cdrskin_libburn_minoR 5
#define Cdrskin_libburn_micrO 4 #define Cdrskin_libburn_micrO 8
#endif #endif
#ifdef Cdrskin_libburn_0_5_5 #ifdef Cdrskin_libburn_0_5_9
#undef Cdrskin_libburn_majoR #undef Cdrskin_libburn_majoR
#undef Cdrskin_libburn_minoR #undef Cdrskin_libburn_minoR
#undef Cdrskin_libburn_micrO #undef Cdrskin_libburn_micrO
#define Cdrskin_libburn_majoR 0 #define Cdrskin_libburn_majoR 0
#define Cdrskin_libburn_minoR 5 #define Cdrskin_libburn_minoR 5
#define Cdrskin_libburn_micrO 5 #define Cdrskin_libburn_micrO 9
#endif #endif
@ -251,7 +251,7 @@ or
/* 0.4.8 */ /* 0.4.8 */
/* Bug fix release for write_start_address=... on DVD-RAM and BD-RE */ /* Bug fix release for write_start_address=... on DVD-RAM and BD-RE */
/* 0.5.0 , 0.5.2 , 0.5.4 */ /* 0.5.0 , 0.5.2 , 0.5.4 , 0.5.6 , 0.5.8 */
/* novel libburn features are transparent to cdrskin */ /* novel libburn features are transparent to cdrskin */
@ -3150,7 +3150,7 @@ struct CdrskiN {
bit10= format to maximum available size bit10= format to maximum available size
bit11= - reserved - bit11= - reserved -
bit12= - reserved - bit12= - reserved -
bit13= - reserved - bit13= try to disable eventual defect management
bit14= - reserved - bit14= - reserved -
bit15= format by index bit15= format by index
2=deformat_sequential (blank_fast might matter) 2=deformat_sequential (blank_fast might matter)

View File

@ -47,6 +47,8 @@ and to MMC-5 for DVD or BD).
<DT>Linux with kernel 2.4 or higher (and libc, of course) :</DT> <DT>Linux with kernel 2.4 or higher (and libc, of course) :</DT>
<DD>With kernel 2.4 an ATA drive has to be under ide-scsi emulation.</DD> <DD>With kernel 2.4 an ATA drive has to be under ide-scsi emulation.</DD>
<DD>With kernel 2.6 the drive should not be under ide-scsi.</DD> <DD>With kernel 2.6 the drive should not be under ide-scsi.</DD>
<DT>or FreeBSD (with libc, of course) :</DT>
<DD>ATAPI/CAM support has to be enabled in the kernel, see atapicam(4).</DD>
<DT>libpthread</DT> <DT>libpthread</DT>
<DD>is supposed to be a standard system component.</DD> <DD>is supposed to be a standard system component.</DD>
</DL> </DL>
@ -57,15 +59,18 @@ and to MMC-5 for DVD or BD).
GPL software included:<BR> GPL software included:<BR>
</H2> </H2>
<DL> <DL>
<DT>libburn-0.5.4</DT> <DT>libburn-0.5.8</DT>
<DD>(founded by Derek Foreman and Ben Jansens, <DD>(founded by Derek Foreman and Ben Jansens,
furthered since August 2006 by Thomas Schmitt from team of libburnia-project.org)</DD> developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org)
</DD>
<DD>transfers data to CD, DVD, BD-RE</DD> <DD>transfers data to CD, DVD, BD-RE</DD>
</DL> </DL>
</P> </P>
<P> <P>
This program system has been tested on Intel/AMD Linux systems only.<BR> This program system has been tested on Intel/AMD Linux and FreeBSD systems
only.<BR>
Ports to other usable systems are appreciated. Reports are welcome. Ports to other usable systems are appreciated. Reports are welcome.
</P> </P>
@ -186,7 +191,7 @@ or to do experiments on BD-R media.
<P> <P>
<DL> <DL>
<DT>Download as source code (see README):</DT> <DT>Download as source code (see README):</DT>
<DD><A HREF="cdrskin-0.5.4.pl00.tar.gz">cdrskin-0.5.4.pl00.tar.gz</A> <DD><A HREF="cdrskin-0.5.8.pl00.tar.gz">cdrskin-0.5.8.pl00.tar.gz</A>
(740 KB). (740 KB).
</DD> </DD>
<DD> <DD>
@ -236,18 +241,18 @@ cdrskin_0.4.2.pl00-x86-suse9_0-static.tar.gz</A>, (310 KB), -static compiled,
<HR> <HR>
<P> <P>
Enhancements towards previous stable version cdrskin-0.5.2.pl00: Enhancements towards previous stable version cdrskin-0.5.6.pl00:
<UL> <UL>
<LI>Most SCSI errors now get reported with message texts as of MMC-5</LI> <LI>Improvements about BD-RE formatting</LI>
<!-- <!--
<LI>none</LI> <LI>none</LI>
--> -->
</UL> </UL>
Bug fixes towards cdrskin-0.5.2.pl00: Bug fixes towards cdrskin-0.5.6.pl00:
<UL> <UL>
<LI> <LI>
dev=/dev/srN or dev=/dev/scdN on Linux 2.4 was not converted into dev=/dev/sgM A session without leadout entry on CD caused a SIGSEGV by NULL
</LI> </LI>
<!-- <!--
<LI>none</LI> <LI>none</LI>
@ -260,8 +265,8 @@ dev=/dev/srN or dev=/dev/scdN on Linux 2.4 was not converted into dev=/dev/sgM
<P> <P>
<DL> <DL>
<DT><H3>Development snapshot, version 0.5.5 :</H3></DT> <DT><H3>Development snapshot, version 0.5.9 :</H3></DT>
<DD>Enhancements towards current stable version 0.5.4.pl00: <DD>Enhancements towards current stable version 0.5.8.pl00:
<UL> <UL>
<!-- <!--
--> -->
@ -270,10 +275,10 @@ dev=/dev/srN or dev=/dev/scdN on Linux 2.4 was not converted into dev=/dev/sgM
</UL> </UL>
</DD> </DD>
<DD>&nbsp;</DD> <DD>&nbsp;</DD>
<DD><A HREF="README_cdrskin_devel">README 0.5.5</A> <DD><A HREF="README_cdrskin_devel">README 0.5.9</A>
<DD><A HREF="cdrskin__help_devel">cdrskin_0.5.5 --help</A></DD> <DD><A HREF="cdrskin__help_devel">cdrskin_0.5.9 --help</A></DD>
<DD><A HREF="cdrskin_help_devel">cdrskin_0.5.5 -help</A></DD> <DD><A HREF="cdrskin_help_devel">cdrskin_0.5.9 -help</A></DD>
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.5.5)</A></DD> <DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.5.9)</A></DD>
<DD>&nbsp;</DD> <DD>&nbsp;</DD>
<DT>Maintainers of cdrskin unstable packages please use SVN of <DT>Maintainers of cdrskin unstable packages please use SVN of
<A HREF="http://libburnia-project.org"> libburnia-project.org</A></DT> <A HREF="http://libburnia-project.org"> libburnia-project.org</A></DT>
@ -293,7 +298,7 @@ admins with full system souvereignty.</DT>
<A HREF="README_cdrskin_devel">upcoming README</A> ): <A HREF="README_cdrskin_devel">upcoming README</A> ):
</DD> </DD>
<DD> <DD>
<A HREF="cdrskin-0.5.5.tar.gz">cdrskin-0.5.5.tar.gz</A> <A HREF="cdrskin-0.5.9.tar.gz">cdrskin-0.5.9.tar.gz</A>
(740 KB). (740 KB).
</DD> </DD>

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2008.11.12.075111" #define Cdrskin_timestamP "2008.12.07.140001"

View File

@ -5875,15 +5875,206 @@ Made number transition to next development cycle
+ cdrskin/add_ts_changes_to_libburn_0_5_5 + cdrskin/add_ts_changes_to_libburn_0_5_5
Updated cdrskin tarball generator Updated cdrskin tarball generator
5 Oct 2008 [] 5 Oct 2008 [2108]
cdrskin/changelog.txt cdrskin/changelog.txt
Documented changes and release timestamp Documented changes and release timestamp
------------------------------------ cycle - cdrskin-0.5.5 - 2008.10.05.123737 ------------------------------------ cycle - cdrskin-0.5.5 - 2008.10.05.130109
------------------------------------ cycle - cdrskin-0.5.5 - 2008.10.15.103224 [2126]
------------------------------------ cycle - cdrskin-0.5.5 - libburn/libburn.h
A clarification in comment about burn_disc_format()
15 Oct 2008 [2127]
cdrskin/cdrskin.1
Fixed incomplete sentence in man cdrskin
2008.11.01.121240 [2157]
libburn/libburn.h
libburn/async.c
Bug fix: Unsuitable write modes were caught silently and later than desired
------------------------------------ cycle - cdrskin-0.5.5 - 2008.11.01.121445
2008.11.08.134828 [2173]
libburn/libburn.h
Clarified behavior of burn_source with pipes
2008.11.08.141734 [2174]
libburn/file.h
libburn/file.c
libburn/async.c
Cancelling libburn fifo thread before freeing the fifo object
2008.11.08.202456 [2175]
libburn/async.c
Disabling the sigsegv provoking new debug message
2008.11.12.075111 [2180]
libburn/async.h
Avoiding warning message about implicitely declared burn_fifo_abort()
------------------------------------ cycle - cdrskin-0.5.5 - 2008.11.12.075411
* Bug fix: libburn fifo thread was not aborted when burn run was aborted
12 Nov 2008 [2181]
svn copy http://svn.libburnia-project.org/libburn/trunk
http://svn.libburnia-project.org/libburn/branches/ZeroFiveSix
Preparing for libburn-0.5.6
12 Nov 2008 [2182]
svn delete http://svn.libburnia-project.org/libburn/branches/ZeroFourSix
Removing obsolete libburn branch ZeroFourSix
2008.11.12.120001 [2183]
Makefile.am
configure.ac
README
libburn/libburn.h
cdrskin/cdrskin.c
cdrskin/README
cdrskin/compile_cdrskin.sh
cdrskin/cdrskin_timestamp.h
cdrskin/cdrskin_eng.html
Made number transition to 0.5.6
12 Nov 2008 [2184]
- cdrskin/add_ts_changes_to_libburn_0_5_4
- cdrskin/add_ts_changes_to_libburn_0_5_5
+ cdrskin/add_ts_changes_to_libburn_0_5_6
+ cdrskin/add_ts_changes_to_libburn_0_5_7
Updated cdrskin tarball generator
12 Nov 2008 [2185]
cdrskin/changelog.txt
Documented changes and release timestamp
12 Nov 2008 [2186]
cdrskin/cdrskin.c
Corrected wrong version number of cdrskin
------------------------------ release - cdrskin-0.5.6.pl00 - 2008.11.12.120001
* Bug fix: libburn fifo thread was not aborted when burn run was aborted
which could lead to use of freed memory
2008.11.12.121832 [2187]
Makefile.am
configure.ac
README
libburn/libburn.h
cdrskin/cdrskin.c
cdrskin/README
cdrskin/compile_cdrskin.sh
cdrskin/cdrskin_timestamp.h
cdrskin/cdrskin_eng.html
Made number transition to 0.5.7
12 Nov 2008 [2188]
- cdrskin/add_ts_changes_to_libburn_0_5_4
- cdrskin/add_ts_changes_to_libburn_0_5_5
+ cdrskin/add_ts_changes_to_libburn_0_5_6
+ cdrskin/add_ts_changes_to_libburn_0_5_7
Updated cdrskin tarball generator
12 Nov 2008 [2189]
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------------ cycle - cdrskin-0.5.7 - 2008.11.12.130026
12 Nov 2008 [2191]
svn move \
http://svn.libburnia-project.org/libburn/"$svn_name" \
http://svn.libburnia-project.org/libburn/"$tag_name"
libburn release 0.5.6 is ready
2008.11.15.220652 [2197]
libburn/sg-freebsd.c
libburn/sg-freebsd-port.c
Removed remark that use of statvfs() was untested with FreeBSD
21 Nov 2008 [2208]
README
cdrskin/README
cdrskin/cdrskin_eng.html
Mentioned FreeBSD peculiarities in our docs
2008.11.26.210608 [2213]
libburn/structure.c
Added tests against the SIGSEGV of ticket 146
2008.11.27.081027 [2214]
libburn/libdax_msgs.h
libburn/structure.c
Truncating eventually detected damaged CD table-of-content
------------------------------------ cycle - cdrskin-0.5.7 - 2008.11.27.081027
* Bug fix: Session without leadout entry on CD caused SIGSEGV
2008.11.27.172124 [2215]
libburn/libdax_msgs.h
libburn/structure.c
Changed error severity with TOC truncation to MISHAP
2008.11.29.140115 [2217]
libburn/spc.c
Translating ASC=0x31 formatting error messages, reporting command names
2008.11.29.140404 [2218]
libburn/mmc.c
Circumventing BD-RE Quick Certification refusal of LG GGW-H20L YL03
------------------------------------ cycle - cdrskin-0.5.7 - 2008.11.29.140404
2008.12.03.085219 [2239]
libburn/mmc.c
libburn/structure.c
libburn/libdax_msgs.h
Defaulting sessions without leadout entry
------------------------------------ cycle - cdrskin-0.5.7 - 2008.12.03.085219
Dec 07 2008 [2248]
svn copy http://svn.libburnia-project.org/libburn/trunk
http://svn.libburnia-project.org/libburn/branches/ZeroFiveEight
Preparing for libburn-0.5.8
2008.12.07.140001 [2249]
Makefile.am
configure.ac
README
libburn/libburn.h
cdrskin/cdrskin.c
cdrskin/README
cdrskin/compile_cdrskin.sh
cdrskin/cdrskin_timestamp.h
cdrskin/cdrskin_eng.html
Made number transition to 0.5.8
Dec 07 2008 [2250]
- cdrskin/add_ts_changes_to_libburn_0_5_6
- cdrskin/add_ts_changes_to_libburn_0_5_7
+ cdrskin/add_ts_changes_to_libburn_0_5_8
+ cdrskin/add_ts_changes_to_libburn_0_5_9
Updated cdrskin tarball generator
Dec 07 2008 []
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------------ cycle - cdrskin-0.5.8 - 2008.12.07.140001
* Bug fix: A session without leadout entry on CD caused a SIGSEGV by NULL
* Improvements about BD-RE formatting
------------------------------------ cycle - cdrskin-0.5.9 -
------------------------------------ cycle - cdrskin-0.5.9 -
=============================================================================== ===============================================================================
TODO TODO
@ -5892,8 +6083,15 @@ Documented changes and release timestamp
--------------------------------- bugs ------------------------------------- --------------------------------- bugs -------------------------------------
- Needed is a system dependend facility: dev_t <-> major, minor
- Do something about drive->buffer asynchronous race conditions - Do something about drive->buffer asynchronous race conditions
and dangerous use of local heap memory and dangerous use of local heap memory.
(The various asynchronous operations use the same buffer
pointer in struct burn_drive and let it point to
their private memory.
Of course, any problem is due to faulty application
... but then it is really hard to detect.)
- Why are DVD+R tracks labeled "invisible" by dvd+rw-mediainfo ? - Why are DVD+R tracks labeled "invisible" by dvd+rw-mediainfo ?
Why does the DVD drive only show the first session ? Why does the DVD drive only show the first session ?
@ -5907,6 +6105,11 @@ READ TRACK INFORMATION[#5]:
------------------------------ end of bugs --------------------------------- ------------------------------ end of bugs ---------------------------------
? Provide an option to open track source file O_DIRECT ?
(needs read chunks much larger than 2 kB)
interpret feature 0023h byte 4 for BD-RE formatting capabilities
Enable profile 0x41 BD-R sequential recording (much like DVD+R) Enable profile 0x41 BD-R sequential recording (much like DVD+R)
? Enable profile 0x42 BD-R random recording ? Enable profile 0x42 BD-R random recording

View File

@ -7,7 +7,7 @@
debug_opts="-O2" debug_opts="-O2"
def_opts= def_opts=
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1" largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
libvers="-DCdrskin_libburn_0_5_5" libvers="-DCdrskin_libburn_0_5_8"
cleanup_src_or_obj="libburn/cleanup.o" cleanup_src_or_obj="libburn/cleanup.o"
libdax_msgs_o="libburn/libdax_msgs.o" libdax_msgs_o="libburn/libdax_msgs.o"
libdax_audioxtr_o="libburn/libdax_audioxtr.o" libdax_audioxtr_o="libburn/libdax_audioxtr.o"
@ -33,15 +33,15 @@ do
libdax_audioxtr_o= libdax_audioxtr_o=
libdax_msgs_o="libburn/message.o" libdax_msgs_o="libburn/message.o"
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c" cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
elif test "$i" = "-libburn_0_5_4" elif test "$i" = "-libburn_0_5_8"
then then
libvers="-DCdrskin_libburn_0_5_4" libvers="-DCdrskin_libburn_0_5_8"
libdax_audioxtr_o="libburn/libdax_audioxtr.o" libdax_audioxtr_o="libburn/libdax_audioxtr.o"
libdax_msgs_o="libburn/libdax_msgs.o" libdax_msgs_o="libburn/libdax_msgs.o"
cleanup_src_or_obj="libburn/cleanup.o" cleanup_src_or_obj="libburn/cleanup.o"
elif test "$i" = "-libburn_svn" elif test "$i" = "-libburn_svn"
then then
libvers="-DCdrskin_libburn_0_5_5" libvers="-DCdrskin_libburn_0_5_9"
libdax_audioxtr_o="libburn/libdax_audioxtr.o" libdax_audioxtr_o="libburn/libdax_audioxtr.o"
libdax_msgs_o="libburn/libdax_msgs.o" libdax_msgs_o="libburn/libdax_msgs.o"
cleanup_src_or_obj="libburn/cleanup.o" cleanup_src_or_obj="libburn/cleanup.o"
@ -76,7 +76,7 @@ do
echo " -compile_cdrfifo compile program cdrskin/cdrfifo." echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
echo " -compile_dewav compile program test/dewav without libburn." echo " -compile_dewav compile program test/dewav without libburn."
echo " -cvs_A60220 set macro to match libburn-CVS of 20 Feb 2006." echo " -cvs_A60220 set macro to match libburn-CVS of 20 Feb 2006."
echo " -libburn_0_5_4 set macro to match libburn-0.5.4" echo " -libburn_0_5_8 set macro to match libburn-0.5.8"
echo " -libburn_svn set macro to match current libburn-SVN." echo " -libburn_svn set macro to match current libburn-SVN."
echo " -no_largefile do not use 64 bit off_t (must match libburn)." echo " -no_largefile do not use 64 bit off_t (must match libburn)."
echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin." echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin."

View File

@ -1,4 +1,4 @@
AC_INIT([libburn], [0.5.5], [http://libburnia-project.org]) AC_INIT([libburn], [0.5.8], [http://libburnia-project.org])
AC_PREREQ([2.50]) AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h]) dnl AC_CONFIG_HEADER([config.h])
@ -7,7 +7,7 @@ AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([subdir-objects]) AM_INIT_AUTOMAKE([subdir-objects])
dnl Notes by ts A71207 - A80126 : dnl Notes by ts A71207 - A81111 :
dnl dnl
dnl Regrettably the meaning of the various version types was misunderstood dnl Regrettably the meaning of the various version types was misunderstood
dnl before version 0.4.1. dnl before version 0.4.1.
@ -65,6 +65,8 @@ dnl 0.4.8 = libburn.so.4.13.0
dnl 0.5.0 = libburn.so.4.15.0 dnl 0.5.0 = libburn.so.4.15.0
dnl 0.5.2 = libburn.so.4.17.0 dnl 0.5.2 = libburn.so.4.17.0
dnl 0.5.4 = libburn.so.4.19.0 dnl 0.5.4 = libburn.so.4.19.0
dnl 0.5.6 = libburn.so.4.21.0
dnl 0.5.8 = libburn.so.4.23.0
dnl dnl
dnl So LT_CURRENT, LT_REVISION and LT_AGE get set directly here. dnl So LT_CURRENT, LT_REVISION and LT_AGE get set directly here.
dnl SONAME of the emerging library is LT_CURRENT - LT_AGE. dnl SONAME of the emerging library is LT_CURRENT - LT_AGE.
@ -90,7 +92,7 @@ dnl
dnl As said: Only copies. Original in libburn/libburn.h : burn_header_version_* dnl As said: Only copies. Original in libburn/libburn.h : burn_header_version_*
BURN_MAJOR_VERSION=0 BURN_MAJOR_VERSION=0
BURN_MINOR_VERSION=5 BURN_MINOR_VERSION=5
BURN_MICRO_VERSION=5 BURN_MICRO_VERSION=8
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
AC_SUBST(BURN_MAJOR_VERSION) AC_SUBST(BURN_MAJOR_VERSION)
@ -101,15 +103,15 @@ AC_SUBST(BURN_VERSION)
dnl Libtool versioning dnl Libtool versioning
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
dnl dnl
dnl ts A80820 dnl ts A81207
dnl ### This is the release version libburn-0.5.4 = libburn.so.4.19.0 dnl This is the release version libburn-0.5.8 = libburn.so.4.23.0
dnl This is the development version after above release version dnl ### This is the development version after above release version
dnl LT_CURRENT++, LT_AGE++ has not yet happened. dnl LT_CURRENT++, LT_AGE++ has not yet happened.
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile. dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
dnl dnl
dnl SONAME = 23 - 19 = 4 . Library name = libburn.so.4.19.0 dnl SONAME = 27 - 23 = 4 . Library name = libburn.so.4.23.0
LT_CURRENT=23 LT_CURRENT=27
LT_AGE=19 LT_AGE=23
LT_REVISION=0 LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`

View File

@ -2205,7 +2205,7 @@ void burn_version(int *major, int *minor, int *micro);
*/ */
#define burn_header_version_major 0 #define burn_header_version_major 0
#define burn_header_version_minor 5 #define burn_header_version_minor 5
#define burn_header_version_micro 5 #define burn_header_version_micro 8
/** Note: /** Note:
Above version numbers are also recorded in configure.ac because libtool Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time. wants them as parameters at build time.

View File

@ -531,6 +531,9 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
0x0002015c (FAILURE,HIGH) = Fifo size is smaller than desired peek buffer 0x0002015c (FAILURE,HIGH) = Fifo size is smaller than desired peek buffer
0x0002015d (FAILURE,HIGH) = Fifo input ended short of desired peek buffer size 0x0002015d (FAILURE,HIGH) = Fifo input ended short of desired peek buffer size
0x0002015e (FATAL,HIGH) = Fifo is already under consumption when peeking 0x0002015e (FATAL,HIGH) = Fifo is already under consumption when peeking
0x0002015f (MISHAP,HIGH) = Damaged CD table-of-content detected and truncated
0x00020160 (WARNING,HIGH) = Session without leadout encountered
0x00020161 (WARNING,HIGH) = Empty session deleted
libdax_audioxtr: libdax_audioxtr:
0x00020200 (SORRY,HIGH) = Cannot open audio source file 0x00020200 (SORRY,HIGH) = Cannot open audio source file

View File

@ -1143,8 +1143,9 @@ static int mmc_read_toc_al(struct burn_drive *d, int *alloc_len)
struct buffer buf; struct buffer buf;
struct command c; struct command c;
int dlen; int dlen;
int i, bpl= 12, old_alloc_len; int i, bpl= 12, old_alloc_len, t_idx;
unsigned char *tdata; unsigned char *tdata;
char msg[321];
if (*alloc_len < 4) if (*alloc_len < 4)
return 0; return 0;
@ -1220,7 +1221,9 @@ static int mmc_read_toc_al(struct burn_drive *d, int *alloc_len)
ts A61007 : if re-enabled then not via Assert. ts A61007 : if re-enabled then not via Assert.
a ssert(((dlen - 2) % 11) == 0); a ssert(((dlen - 2) % 11) == 0);
*/ */
d->toc_entry = calloc(d->toc_entries, sizeof(struct burn_toc_entry)); /* ts A81202: plus number of sessions as reserve for leadout default */
d->toc_entry = calloc(d->toc_entries + (unsigned char) c.page->data[3],
sizeof(struct burn_toc_entry));
if(d->toc_entry == NULL) /* ts A70825 */ if(d->toc_entry == NULL) /* ts A70825 */
return 0; return 0;
tdata = c.page->data + 4; tdata = c.page->data + 4;
@ -1307,6 +1310,42 @@ static int mmc_read_toc_al(struct burn_drive *d, int *alloc_len)
d->status = BURN_DISC_FULL; d->status = BURN_DISC_FULL;
toc_find_modes(d); toc_find_modes(d);
/* ts A81202 ticket 146 : a drive reported a session with no leadout */
for (i = 0; i < d->disc->sessions; i++) {
if (d->disc->session[i]->leadout_entry != NULL)
continue;
sprintf(msg, "Session %d of %d encountered without leadout",
i + 1, d->disc->sessions);
libdax_msgs_submit(libdax_messenger, d->global_index,
0x00020160,
LIBDAX_MSGS_SEV_WARNING, LIBDAX_MSGS_PRIO_HIGH,
msg, 0, 0);
/* Produce default leadout entry from last track of session
which will thus get its size set to 0 */;
if (d->disc->session[i]->track != NULL &&
d->disc->session[i]->tracks > 0) {
t_idx = d->toc_entries++;
memcpy(d->toc_entry + t_idx,
d->disc->session[i]->track[
d->disc->session[i]->tracks - 1]->entry,
sizeof(struct burn_toc_entry));
d->toc_entry[t_idx].point = 0xA2;
d->disc->session[i]->leadout_entry =
d->toc_entry + t_idx;
} else {
burn_disc_remove_session(d->disc, d->disc->session[i]);
sprintf(msg,
"Empty session %d deleted. Now %d sessions.",
i + 1, d->disc->sessions);
libdax_msgs_submit(libdax_messenger, d->global_index,
0x00020161,
LIBDAX_MSGS_SEV_WARNING, LIBDAX_MSGS_PRIO_HIGH,
msg, 0, 0);
i--;
}
}
/* A80808 */ /* A80808 */
burn_disc_cd_toc_extensions(d->disc, 0); burn_disc_cd_toc_extensions(d->disc, 0);
@ -3030,6 +3069,17 @@ no_suitable_formatting_type:;
} else if(size_mode == 3) { /* default payload size */ } else if(size_mode == 3) { /* default payload size */
if (accept_count < 1) if (accept_count < 1)
index = 0; /* this cannot certify */ index = 0; /* this cannot certify */
/* ts A81129
LG GGW-H20L YL03 refuses on 0x30 with
"Quick certification". dvd+rw-format
does 0x00 by default and succeeds quickly.
*/
if ((flag & 64) && format_type == 0x00) {
index = i;
break;
}
if(format_type != 0x30) if(format_type != 0x30)
continue; continue;
accept_count++; accept_count++;

View File

@ -76,7 +76,7 @@ Send feedback to libburn-hackers@pykix.org .
#include <err.h> /* XXX */ #include <err.h> /* XXX */
/* ts A70909 : >>> untestet yet wether this compiles */ /* ts A70909 */
#include <sys/statvfs.h> #include <sys/statvfs.h>

View File

@ -18,7 +18,7 @@
#include <err.h> /* XXX */ #include <err.h> /* XXX */
/* ts A70909 : >>> untestet yet wether this compiles */ /* ts A70909 */
#include <sys/statvfs.h> #include <sys/statvfs.h>
@ -622,7 +622,6 @@ int burn_os_stdio_capacity(char *path, off_t *bytes)
struct statvfs vfsbuf; struct statvfs vfsbuf;
char testpath[4096], *cpt; char testpath[4096], *cpt;
long blocks; long blocks;
int open_mode = O_RDWR, fd, ret;
off_t add_size = 0; off_t add_size = 0;
testpath[0] = 0; testpath[0] = 0;
@ -642,6 +641,8 @@ int burn_os_stdio_capacity(char *path, off_t *bytes)
#ifdef Libburn_if_this_was_linuX #ifdef Libburn_if_this_was_linuX
} else if(S_ISBLK(stbuf.st_mode)) { } else if(S_ISBLK(stbuf.st_mode)) {
int open_mode = O_RDWR, fd, ret;
if(burn_sg_open_o_excl) if(burn_sg_open_o_excl)
open_mode |= O_EXCL; open_mode |= O_EXCL;
fd = open(path, open_mode); fd = open(path, open_mode);

View File

@ -1065,6 +1065,14 @@ enum response scsi_error_msg(struct burn_drive *d, unsigned char *sense,
else else
sprintf(msg, "Incompatible medium installed"); sprintf(msg, "Incompatible medium installed");
return FAIL; return FAIL;
case 0x31:
if (*key != 3)
break;
if (*ascq == 0)
sprintf(msg, "Medium unformatted or format corrupted");
else if (*ascq == 1)
sprintf(msg, "Format command failed");
return FAIL;
case 0x3A: case 0x3A:
if (*key != 2) if (*key != 2)
break; break;
@ -1140,6 +1148,68 @@ enum response scsi_error(struct burn_drive *d, unsigned char *sense,
} }
static char *scsi_command_name(unsigned int c, int flag)
{
switch (c) {
case 0x00:
return "TEST UNIT READY";
case 0x03:
return "REQUEST SENSE";
case 0x04:
return "FORMAT UNIT";
case 0x1b:
return "START/STOP UNIT";
case 0x1e:
return "PREVENT/ALLOW MEDIA REMOVAL";
case 0x23:
return "READ FORMAT CAPACITIES";
case 0x28:
return "READ(10)";
case 0x2a:
return "WRITE(10)";
case 0x35:
return "SYNCHRONIZE CACHE";
case 0x43:
return "READ TOC/PMA/ATIP";
case 0x46:
return "GET CONFIGURATION";
case 0x4a:
return "GET EVENT STATUS NOTIFICATION";
case 0x51:
return "READ DISC INFORMATION";
case 0x52:
return "READ TRACK INFORMATION";
case 0x53:
return "RESERVE TRACK";
case 0x54:
return "SEND OPC INFORMATION";
case 0x55:
return "MODE SELECT";
case 0x5a:
return "SEND OPC INFORMATION";
case 0x5b:
return "CLOSE TRACK/SESSION";
case 0x5c:
return "READ BUFFER CAPACITY";
case 0x5d:
return "SEND CUE SHEET";
case 0xa1:
return "BLANK";
case 0xaa:
return "WRITE(12)";
case 0xac:
return "GET PERFORMANCE";
case 0xb6:
return "SET STREAMING";
case 0xbb:
return "SET CD SPEED";
case 0xbe:
return "READ CD";
}
return "(NOT IN COMMAND LIST)";
}
/* ts A61030 - A61115 */ /* ts A61030 - A61115 */
/* @param flag bit0=do report conditions which are considered not an error */ /* @param flag bit0=do report conditions which are considered not an error */
int scsi_notify_error(struct burn_drive *d, struct command *c, int scsi_notify_error(struct burn_drive *d, struct command *c,
@ -1164,7 +1234,9 @@ int scsi_notify_error(struct burn_drive *d, struct command *c,
return 1; return 1;
} }
sprintf(msg,"SCSI error condition on command %2.2Xh : ", c->opcode[0]); sprintf(msg, "SCSI error condition on command %2.2Xh %s: ",
c->opcode[0],
scsi_command_name((unsigned int) c->opcode[0], 0));
#ifdef NIX #ifdef NIX
if (key>=0) if (key>=0)

View File

@ -104,6 +104,30 @@ int burn_disc_add_session(struct burn_disc *d, struct burn_session *s,
return 1; return 1;
} }
/* ts A81202: this function was in the API but not implemented.
*/
int burn_disc_remove_session(struct burn_disc *d, struct burn_session *s)
{
int i, skip = 0;
if (d->session == NULL)
return 0;
for (i = 0; i < d->sessions; i++) {
if (s == d->session[i]) {
skip++;
continue;
}
d->session[i - skip] = d->session[i];
}
if (!skip)
return 0;
burn_session_free(s);
d->sessions--;
return 1;
}
struct burn_track *burn_track_create(void) struct burn_track *burn_track_create(void)
{ {
struct burn_track *t; struct burn_track *t;
@ -529,14 +553,53 @@ int burn_session_get_hidefirst(struct burn_session *session)
/* ts A80808 : Enhance CD toc to DVD toc */ /* ts A80808 : Enhance CD toc to DVD toc */
int burn_disc_cd_toc_extensions(struct burn_disc *d, int flag) int burn_disc_cd_toc_extensions(struct burn_disc *d, int flag)
{ {
int sidx, tidx; int sidx= 0, tidx= 0;
struct burn_toc_entry *entry, *prev_entry= NULL; struct burn_toc_entry *entry, *prev_entry= NULL;
/* ts A81126 : ticket 146 : There was a SIGSEGV in here */
char msg_data[321], *msg;
strcpy(msg_data,
"Damaged CD table-of-content detected and truncated.");
strcat(msg_data, " In burn_disc_cd_toc_extensions: ");
msg = msg_data + strlen(msg_data);
if (d->session == NULL) {
strcpy(msg, "d->session == NULL");
goto failure;
}
for (sidx = 0; sidx < d->sessions; sidx++) { for (sidx = 0; sidx < d->sessions; sidx++) {
if (d->session[sidx] == NULL) {
sprintf(msg, "d->session[%d of %d] == NULL",
sidx, d->sessions);
goto failure;
}
if (d->session[sidx]->track == NULL) {
sprintf(msg, "d->session[%d of %d]->track == NULL",
sidx, d->sessions);
goto failure;
}
if (d->session[sidx]->leadout_entry == NULL) {
sprintf(msg,
" Session %d of %d: Leadout entry missing.",
sidx, d->sessions);
goto failure;
}
for (tidx = 0; tidx < d->session[sidx]->tracks + 1; tidx++) { for (tidx = 0; tidx < d->session[sidx]->tracks + 1; tidx++) {
if (tidx < d->session[sidx]->tracks) if (tidx < d->session[sidx]->tracks) {
if (d->session[sidx]->track[tidx] == NULL) {
sprintf(msg,
"d->session[%d of %d]->track[%d of %d] == NULL",
sidx, d->sessions, tidx, d->session[sidx]->tracks);
goto failure;
}
entry = d->session[sidx]->track[tidx]->entry; entry = d->session[sidx]->track[tidx]->entry;
else if (entry == NULL) {
sprintf(msg,
"session %d of %d, track %d of %d, entry == NULL",
sidx, d->sessions, tidx,
d->session[sidx]->tracks);
goto failure;
}
} else
entry = d->session[sidx]->leadout_entry; entry = d->session[sidx]->leadout_entry;
entry->session_msb = 0; entry->session_msb = 0;
entry->point_msb = 0; entry->point_msb = 0;
@ -558,6 +621,11 @@ int burn_disc_cd_toc_extensions(struct burn_disc *d, int flag)
} }
} }
return 1; return 1;
failure:
libdax_msgs_submit(libdax_messenger, -1, 0x0002015f,
LIBDAX_MSGS_SEV_MISHAP, LIBDAX_MSGS_PRIO_HIGH, msg_data, 0, 0);
d->sessions= sidx;
return 0;
} }