Compare commits

...

16 Commits

Author SHA1 Message Date
8f6d805472 Documented changes and release timestamp 2010-04-09 10:11:47 +00:00
7dbc931f70 Updated cdrskin tarball generator 2010-04-09 10:10:04 +00:00
0d23b64ab2 Made number transition to 0.8.0 2010-04-09 10:08:47 +00:00
339cdba2fe Branching for libburn release 0.8.0 2010-04-09 09:12:01 +00:00
2069ffa863 Reporting eventual SCSI sense in sg-linux repeat loop 2010-04-09 09:07:59 +00:00
e787d328c7 Let libburner warn programmers if they forget to set 64 bit off_t 2010-04-04 18:13:45 +00:00
fafc190fd4 Adjusted libcdio system adapter to FreeBSD peculiarities 2010-03-29 10:33:05 +00:00
e6029ae238 Trying to detect FreeBSD ahci devices and to handle others the old way 2010-03-27 17:27:50 +00:00
6e17c59f6b Avoiding to inquire NWA of unwritable media or states 2010-03-27 15:58:05 +00:00
0e777ec688 Had to make ahci change conditional for now: -DLibburn_for_freebsd_ahcI 2010-03-26 08:33:22 +00:00
8dcdb5a87f Changed sg-freebsd.c to work with ahci, advise by Alexander Motin 2010-03-25 11:36:55 +00:00
4f372c00bc Corrected initialization of configure option --enable-dvd-obs-64k 2010-03-17 18:54:10 +00:00
9f6d80d87d Small bug fix about track size with cdrskin -minfo 2010-03-17 18:53:28 +00:00
b33df8fbd5 Documented changes and release timestamp 2010-03-10 13:58:50 +00:00
b4bb522053 Updated cdrskin tarball generator 2010-03-10 13:58:03 +00:00
3289ffd1e6 Made number transition to 0.7.9 2010-03-10 13:56:58 +00:00
19 changed files with 993 additions and 129 deletions

View File

@@ -110,9 +110,9 @@ test_structest_CPPFLAGS = -Ilibburn
test_structest_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS) test_structest_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
test_structest_SOURCES = test/structest.c test_structest_SOURCES = test/structest.c
## cdrskin construction site - ts A60816 - B00122 ## cdrskin construction site - ts A60816 - B00409
cdrskin_cdrskin_CPPFLAGS = -Ilibburn cdrskin_cdrskin_CPPFLAGS = -Ilibburn
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_7_7 cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_8_0
# cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS) # cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
# ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking # ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking

26
README
View File

@@ -11,7 +11,7 @@ Still containing parts of Libburn. By Derek Foreman <derek@signalmarketing.com>
and Ben Jansens <xor@orodu.net> and Ben Jansens <xor@orodu.net>
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
http://files.libburnia-project.org/releases/libburn-0.7.6.pl00.tar.gz http://files.libburnia-project.org/releases/libburn-0.8.0.pl00.tar.gz
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
@@ -19,10 +19,10 @@ Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
From tarball From tarball
Obtain libburn-0.7.6.pl00.tar.gz, take it to a directory of your choice and do: Obtain libburn-0.8.0.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf libburn-0.7.6.pl00.tar.gz tar xzf libburn-0.8.0.pl00.tar.gz
cd libburn-0.7.6 cd libburn-0.8.0
./configure --prefix=/usr ./configure --prefix=/usr
make make
@@ -496,6 +496,24 @@ Project history as far as known to me:
fixes bugs about the generic X/Open system adapter, and allows to use fixes bugs about the generic X/Open system adapter, and allows to use
libcdio >= 0.83 as SCSI transport facility. libcdio >= 0.83 as SCSI transport facility.
- 10 Feb 2010 libisofs-0.6.28 fixes a regression about bootable images which
was introduced by version 0.6.22 in August 2009.
- 23 Feb 2010 libisoburn-0.5.0 marks the transition of the xorriso standalone
version to an official GNU project. The name changed to "GNU xorriso" and its
license is now GPLv3+.
The licenses of libburnia libraries and applications are not affected by
this change.
- 10 Mar 2010 libburn-0.7.8 fixes bugs and improves the built-in abort handler
on FreeBSD.
- 30 Mar 2010 Release 0.5.2 of libisoburn provides xorriso documentation in
GNU Texinfo format with embedded extra data to derive a full man page.
- 09 Apr 2010 libburn-0.8.0 now works with ahci driver on FreeBSD 8-STABLE.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

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.7.7.tar.gz http://scdbackup.sourceforge.net/cdrskin-0.8.0.pl00.tar.gz
Copyright (C) 2006-2010 Thomas Schmitt, provided under GPL version 2 or later. Copyright (C) 2006-2010 Thomas Schmitt, provided under GPL version 2 or later.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
@@ -25,10 +25,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.7.7.tar.gz, take it to a directory of your choice and do: Obtain cdrskin-0.8.0.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf cdrskin-0.7.7.tar.gz tar xzf cdrskin-0.8.0.pl00.tar.gz
cd cdrskin-0.7.7 cd cdrskin-0.8.0
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.7.6" skin_release="0.8.0"
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.7.7" skin_release="0.8.1"
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.7.7" #define Cdrskin_prog_versioN "0.8.0"
#endif #endif
/** The official libburn interface revision to use. /** The official libburn interface revision to use.
@@ -98,10 +98,10 @@ or
#define Cdrskin_libburn_majoR 0 #define Cdrskin_libburn_majoR 0
#endif #endif
#ifndef Cdrskin_libburn_minoR #ifndef Cdrskin_libburn_minoR
#define Cdrskin_libburn_minoR 7 #define Cdrskin_libburn_minoR 8
#endif #endif
#ifndef Cdrskin_libburn_micrO #ifndef Cdrskin_libburn_micrO
#define Cdrskin_libburn_micrO 7 #define Cdrskin_libburn_micrO 0
#endif #endif
@@ -135,13 +135,13 @@ or
#endif /* Cdrskin_libburn_cvs_A60220_tS */ #endif /* Cdrskin_libburn_cvs_A60220_tS */
#ifdef Cdrskin_libburn_0_7_6 #ifdef Cdrskin_libburn_0_8_0
#define Cdrskin_libburn_versioN "0.7.6" #define Cdrskin_libburn_versioN "0.8.0"
#define Cdrskin_libburn_from_pykix_svN 1 #define Cdrskin_libburn_from_pykix_svN 1
#endif /* Cdrskin_libburn_0_7_6 */ #endif /* Cdrskin_libburn_0_8_0 */
#ifdef Cdrskin_libburn_0_7_7 #ifdef Cdrskin_libburn_0_8_1
#define Cdrskin_libburn_versioN "0.7.7" #define Cdrskin_libburn_versioN "0.8.1"
#define Cdrskin_libburn_from_pykix_svN 1 #define Cdrskin_libburn_from_pykix_svN 1
/* Place novelty switch macros here. /* Place novelty switch macros here.
@@ -151,32 +151,31 @@ or
/* Do not stay in signal handler but only cancel and set Cdrskin_abort_leveL. /* Do not stay in signal handler but only cancel and set Cdrskin_abort_leveL.
Make use of burn_is_aborting() to detect pending libburn aborts. Make use of burn_is_aborting() to detect pending libburn aborts.
*/ */
#define Cdrskin_signal_handler_return_2 1
#endif /* Cdrskin_libburn_0_7_7 */ #endif /* Cdrskin_libburn_0_8_1 */
#ifndef Cdrskin_libburn_versioN #ifndef Cdrskin_libburn_versioN
#define Cdrskin_libburn_0_7_6 #define Cdrskin_libburn_0_8_0
#define Cdrskin_libburn_versioN "0.7.6" #define Cdrskin_libburn_versioN "0.8.0"
#define Cdrskin_libburn_from_pykix_svN 1 #define Cdrskin_libburn_from_pykix_svN 1
#endif #endif
#ifdef Cdrskin_libburn_0_7_6 #ifdef Cdrskin_libburn_0_8_0
#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 7 #define Cdrskin_libburn_minoR 8
#define Cdrskin_libburn_micrO 6 #define Cdrskin_libburn_micrO 0
#endif #endif
#ifdef Cdrskin_libburn_0_7_7 #ifdef Cdrskin_libburn_0_8_1
#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 7 #define Cdrskin_libburn_minoR 8
#define Cdrskin_libburn_micrO 7 #define Cdrskin_libburn_micrO 1
#endif #endif
@@ -4157,11 +4156,7 @@ int Cdrskin__is_aborting(int flag)
{ {
if(Cdrskin_abort_leveL) if(Cdrskin_abort_leveL)
return(-1); return(-1);
#ifdef Cdrskin_signal_handler_return_2 return(burn_is_aborting(0));
return(burn_is_aborting(0));
#else
return 0;
#endif
} }
@@ -4192,11 +4187,7 @@ int Cdrskin_abort(struct CdrskiN *skin, int flag)
int Cdrskin_abort_handler(struct CdrskiN *skin, int signum, int flag) int Cdrskin_abort_handler(struct CdrskiN *skin, int signum, int flag)
{ {
#ifdef Cdrskin_libburn_has_burn_aborT #ifndef Cdrskin_libburn_has_burn_aborT
int ret;
#else
int wait_grain= 100000,first_status= 1; int wait_grain= 100000,first_status= 1;
double start_time,last_time,current_time; double start_time,last_time,current_time;
@@ -4251,8 +4242,6 @@ int Cdrskin_abort_handler(struct CdrskiN *skin, int signum, int flag)
if(skin->verbosity>=Cdrskin_verbose_debuG) if(skin->verbosity>=Cdrskin_verbose_debuG)
ClN(fprintf(stderr,"cdrskin_debug: ABORT : Calling burn_abort()\n")); ClN(fprintf(stderr,"cdrskin_debug: ABORT : Calling burn_abort()\n"));
#ifdef Cdrskin_signal_handler_return_2
Cdrskin_abort_leveL= -1; Cdrskin_abort_leveL= -1;
if (!(flag & 1)) if (!(flag & 1))
burn_abort(-1, burn_abort_pacifier, "cdrskin: "); burn_abort(-1, burn_abort_pacifier, "cdrskin: ");
@@ -4260,16 +4249,6 @@ int Cdrskin_abort_handler(struct CdrskiN *skin, int signum, int flag)
"cdrskin: ABORT : Urged drive worker threads to do emergency halt.\n"); "cdrskin: ABORT : Urged drive worker threads to do emergency halt.\n");
return -2; return -2;
#endif /* Cdrskin_signal_handler_return_2 */
ret= burn_abort(skin->abort_max_wait, burn_abort_pacifier, "cdrskin: ");
if(ret<=0) {
fprintf(stderr,
"\ncdrskin: ABORT : Cannot cancel burn session and release drive.\n");
return(0);
}
fprintf(stderr,"\n");
#else /* Cdrskin_libburn_has_burn_aborT */ #else /* Cdrskin_libburn_has_burn_aborT */
if(skin->grabbed_drive!=NULL) { if(skin->grabbed_drive!=NULL) {
@@ -5297,8 +5276,8 @@ int Cdrskin_minfo(struct CdrskiN *skin, int flag)
/* If last two blocks not readable then assume TAO and subtract 2 /* If last two blocks not readable then assume TAO and subtract 2
from lra and size. from lra and size.
*/; */;
ret= burn_read_data(drive, (off_t) lra * (off_t) 2048, buf, 2 * 2048, ret= burn_read_data(drive, (off_t) (lra - 1) * (off_t) 2048, buf,
&buf_count, 2 | 4); 2 * 2048, &buf_count, 2 | 4);
if(ret <= 0) { if(ret <= 0) {
lra-= 2; lra-= 2;
size-= 2; size-= 2;

View File

@@ -62,7 +62,7 @@ via SCSI, PATA (aka IDE, ATA), USB, or SATA.
GPL software included:<BR> GPL software included:<BR>
</H2> </H2>
<DL> <DL>
<DT>libburn-0.7.6</DT> <DT>libburn-0.8.0</DT>
<DD>(founded by Derek Foreman and Ben Jansens, <DD>(founded by Derek Foreman and Ben Jansens,
developed and maintained since August 2006 by developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org) Thomas Schmitt from team of libburnia-project.org)
@@ -194,8 +194,8 @@ Standalone ISO 9660 multi-session CD/DVD/BD tool
<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.7.6.pl00.tar.gz">cdrskin-0.7.6.pl00.tar.gz</A> <DD><A HREF="cdrskin-0.8.0.pl00.tar.gz">cdrskin-0.8.0.pl00.tar.gz</A>
(820 KB). (835 KB).
</DD> </DD>
<DD> <DD>
The cdrskin tarballs are source code identical with libburn releases The cdrskin tarballs are source code identical with libburn releases
@@ -244,22 +244,21 @@ 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.7.4.pl00: Enhancements towards previous stable version cdrskin-0.7.8.pl00:
<UL> <UL>
<LI> <LI>
Made FreeBSD system adapter safe from mutal burn spoiling and drive deadlock Now able to work with ahci driver of FreeBSD 8-STABLE
</LI> </LI>
<LI>Experimental system adapter via GNU libcdio on X/Open systems</LI>
<LI>Experimentally using FreeBSD system adapter for Debian kfreebsd</LI>
<!-- <!--
<LI>none</LI> <LI>none</LI>
--> -->
</UL> </UL>
Bug fixes towards cdrskin-0.7.4.pl00: Bug fixes towards cdrskin-0.7.8.pl00:
<UL> <UL>
<LI>none</LI> <LI>none</LI>
<!-- <!--
<LI>none</LI>
--> -->
</UL> </UL>
@@ -267,8 +266,8 @@ Bug fixes towards cdrskin-0.7.4.pl00:
<P> <P>
<DL> <DL>
<DT><H3>Development snapshot, version 0.7.7 :</H3></DT> <DT><H3>Development snapshot, version 0.8.1 :</H3></DT>
<DD>Enhancements towards current stable version 0.7.6.pl00: <DD>Enhancements towards current stable version 0.8.0.pl00:
<UL> <UL>
<LI>none yet</LI> <LI>none yet</LI>
<!-- <!--
@@ -277,7 +276,7 @@ Bug fixes towards cdrskin-0.7.4.pl00:
</UL> </UL>
</DD> </DD>
<DD>Bug fixes towards cdrskin-0.7.6.pl00: <DD>Bug fixes towards cdrskin-0.8.0.pl00:
<UL> <UL>
<LI>none yet</LI> <LI>none yet</LI>
<!-- <!--
@@ -286,10 +285,10 @@ Bug fixes towards cdrskin-0.7.4.pl00:
</DD> </DD>
<DD>&nbsp;</DD> <DD>&nbsp;</DD>
<DD><A HREF="README_cdrskin_devel">README 0.7.7</A> <DD><A HREF="README_cdrskin_devel">README 0.8.1</A>
<DD><A HREF="cdrskin__help_devel">cdrskin_0.7.7 --help</A></DD> <DD><A HREF="cdrskin__help_devel">cdrskin_0.8.1 --help</A></DD>
<DD><A HREF="cdrskin_help_devel">cdrskin_0.7.7 -help</A></DD> <DD><A HREF="cdrskin_help_devel">cdrskin_0.8.1 -help</A></DD>
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.7.7)</A></DD> <DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.8.1)</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>
@@ -309,8 +308,8 @@ 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.7.7.tar.gz">cdrskin-0.7.7.tar.gz</A> <A HREF="cdrskin-0.8.1.tar.gz">cdrskin-0.8.1.tar.gz</A>
(820 KB). (840 KB).
</DD> </DD>
<!-- This is not offered any more since spring 2008 <!-- This is not offered any more since spring 2008

View File

@@ -1 +1 @@
#define Cdrskin_timestamP "2010.03.09.140341" #define Cdrskin_timestamP "2010.04.09.100001"

View File

@@ -7552,7 +7552,6 @@ svn copy -m Branching for libburn release 0.7.4
http://svn.libburnia-project.org/libburn/trunk http://svn.libburnia-project.org/libburn/trunk
http://svn.libburnia-project.org/libburn/branches/ZeroSevenFour http://svn.libburnia-project.org/libburn/branches/ZeroSevenFour
2009.12.06.160001 [2938] 2009.12.06.160001 [2938]
Makefile.am Makefile.am
configure.ac configure.ac
@@ -7610,18 +7609,719 @@ Made number transition to 0.7.5
+ cdrskin/add_ts_changes_to_libburn_0_7_5 + cdrskin/add_ts_changes_to_libburn_0_7_5
Updated cdrskin tarball generator Updated cdrskin tarball generator
[] 07 Dec 2009 [2943]
cdrskin/changelog.txt cdrskin/changelog.txt
Documented changes and release timestamp Documented changes and release timestamp
------------------------------------ cycle - cdrskin-0.7.5 - 07 Dec 2009 [2946]
------------------------------------ cycle - cdrskin-0.7.5 - svn move -m libburn release 0.7.4 is ready
http://svn.libburnia-project.org/libburn/branches/ZeroSevenFour
http://svn.libburnia-project.org/libburn/tags/ZeroSevenFour
------------------------------------ cycle - cdrskin-0.7.5 - 2009.12.07.083850
16 Dec 2009 [2955]
doc/cookbook.txt
Mentioned in cookbook the change about TAO close track
2009.12.19.140015 [2957]
libburn/spc.c
Corrected CDB length of command 55h MODE SELECT from 12 to 10
2009.12.19.142456 [2958]
libburn/spc.h
libburn/sg-linux.c
Moved sg_log_cmd() to spc.c scsi_log_cmd()
2009.12.19.142456 [2959]
configure.ac
Makefile.am
libburn/os.h
libburn/sg.c
libburn/sg-freebsd-port.c
+ libburn/os-libcdio.h
+ libburn/sg-libcdio.c
Experimental SCSI transport adapter via GNU libcdio
2009.12.24.170601 [2960]
configure.ac
libburn/spc.h
libburn/spc.c
libburn/sg-linux.c
libburn/sg-libcdio.c
Making use of libcdio function mmc_get_cmd_scsi_sense()
25 Dec 2009 [2961]
cdrskin/compile_cdrskin.sh
Option -use_libcdio for cdrskin development compile script
2009.12.25.101433 [2962]
libburn/libdax_msgs.h
Commited file forgotten with rev 2960
2009.12.25.143326 [2963]
libburn/sg-libcdio.c
Resolving symbolic links in libcdio drive list
2009.12.25.144122 [2964]
configure.ac
Added PKG_CHECK_MODULES for libcdio-0.82 (must become 0.83 when released)
2009.12.25.205704 [2965]
configure.ac
libburn/sg-libcdio.c
Adapted to libcdio-0.83 and its runtime version telling
2009.12.25.223915 [2966]
libburn/init.c
libburn/sg.h
libburn/sg-freebsd.c
libburn/sg-freebsd-port.c
libburn/sg-libcdio.c
libburn/sg-linux.c
New internal sg-API function sg_initialize()
2009.12.26.080301 [2967]
libburn/init.c
libburn/sg-dummy.c
libburn/sg-freebsd.c
libburn/sg-freebsd-port.c
libburn/sg-libcdio.c
libburn/sg-linux.c
New API function burn_scsi_transport_id()
26 Dec 2009 [2968]
Makefile.am
Added os-dummy.h and sg-dummy.h to libburn tarball
26 Dec 2009 [2969]
svn copy -m Branching for libburn bugfix release 0.7.4.pl01
http://svn.libburnia-project.org/libburn/tags/ZeroSevenTwo
http://svn.libburnia-project.org/libburn/branches/ZeroSevenTwoPl01
26 Dec 2009 [2970]
svn mv -m Branching for libburn bugfix release 0.7.4.pl01
http://svn.libburnia-project.org/libburn/branches/ZeroSevenTwoPl01
http://svn.libburnia-project.org/libburn/branches/ZeroSevenFourPl01
26 Dec 2009 [2971]
svn rm -m Branching for libburn bugfix release 0.7.4.pl01
http://svn.libburnia-project.org/libburn/branches/ZeroSevenFourPl01
26 Dec 2009 [2972]
svn copy -m Branching for libburn bugfix release 0.7.4.pl01
http://svn.libburnia-project.org/libburn/tags/ZeroSevenFour
http://svn.libburnia-project.org/libburn/branches/ZeroSevenFourPl01
2009.12.26.110001 [2973]
README
Makefile.am
cdrskin/cdrskin_timestamp.h
Bug fix: Added missing system adapter for generic X/Open to libburn release tarball
26 Dec 2009 [2974]
svn move -m libburn bugfix release 0.7.4.pl01 is ready
http://svn.libburnia-project.org/libburn/branches/ZeroSevenFourPl01
http://svn.libburnia-project.org/libburn/tags/ZeroSevenFourPl01
2009.12.26.193707 [2975]
cdrskin/cdrskin.c
Reporting burn_scsi_transport_id() in cdrskin as debug message
2009.12.26.222656 [2976]
libburn/libburn.h
doc/comments
Reacted on some doxygen warnings of Debian hurd build
2009.12.27.092057 [2979]
libburn/os-libcdio.h
libburn/sg-libcdio.c
Showing libburn users drive name link targets, using in libcdio its own names
2009.12.27.102342 [2981]
libburn/sg-libcdio.c
Shorter sg_initialize message with sg-libcdio
2009.12.27.144620 [2982]
libburn/init.c
libburn/drive.c
libburn/sg.h
libburn/os-libcdio.h
libburn/sg-dummy.c
libburn/sg-freebsd.c
libburn/sg-freebsd-port.c
libburn/sg-libcdio.c
libburn/sg-linux.c
Extended sg-API by sg_shutdown(), sg_dispose_drive(), sg_id_string()
2009.12.27.144733 [2983]
cdrskin/cdrskin.c
Reporting system adapter id with cdrskin -version
2009.12.29.115717 [2984]
configure.ac
Incremented middle .so number
2009.12.29.115854 [2985]
libburn/spc.c
Corrected a mode page size computation error which for now had no bad effect
2009.12.29.132537 [2986]
acinclude.m4
libburn/os.h
libburn/sg.c
Experimentally enabled FreeBSD system adapter for Debian kfreebsd
------------------------------------ cycle - cdrskin-0.7.5 - 2009.12.29.134637
* Experimental SCSI transport adapter via GNU libcdio
* Experimentally using FreeBSD system adapter for Debian kfreebsd
* Bug fix: System adapter for generic X/Open was missing in libburn release tarball
2009.12.29.224506 [2987]
acinclude.m4
Adaptions for Debian kfreebsd requested by Petr Salinger
2009.12.30.154140 [2988]
libburn/drive.c
libburn/sg-libcdio.c
Making use of new libcdio capability to obtain SCSI address tuple on Linux
2009.12.30.201025 [2990]
libburn/sg-libcdio.c
Silenced libcdio warnings
2010.01.01.124042 [2994]
libburn/drive.c
Bug fix: with non-Linux adapters there were 0 readable bytes on block devices
2010.01.01.124415 [2995]
libburn/sg-libcdio.c
Enabled block device size recognition with sg-libcdio on Linux
------------------------------------ cycle - cdrskin-0.7.5 - 2010.01.01.143104
* Bug fix: with non-Linux adapters there were 0 readable bytes on block devices
2010.01.04.134949 [3001]
libburn/write.c
libburn/libdax_msgs.h
Avoiding stream recording on BD if not 64 kB buffer
2010.01.04.135427 [3002]
libburn/os-libcdio.h
Enlarged buffer size of libcdio adapter on Linux to 64k
2010.01.09.142027 [3004]
libburn/sg-libcdio.c
Forgot to forward sense reply to higher levels
2010.01.09.142642 [3005]
libburn/spc.c
Better error message with unknown SCSI error codes
2010.01.09.143428 [3006]
libburn/spc.c
libburn/sbc.c
Revoked asynchronous eject, as we cannot distinguish out from unready
2010.01.12.165214 [3009]
libburn/sg-dummy.c
libburn/sg-freebsd-port.c
libburn/sg-libcdio.c
libburn/sg-linux.c
Corrected free capacity measurement of stdio: drives in regular files
12 Jan 2010 [3010]
doc/cookbook.txt
Fixed typos in MMC cookbook
2010.01.13.074028 [3011]
libburn/drive.c
Experimentally regard FreeBSD /dev/da[0-9] and /dev/cd[0-9] as block device
2010.01.13.074640 [3012]
libburn/sg-freebsd.c
Adaptions after encounter with FreeBSD 8.0
2010.01.13.171546 [3013]
libburn/libburn.h
Carified that apps must use 64 bit off_t or the lib must be tweaked.
14 Jan 2010 [3014]
14 Jan 2010 [3015]
test/libburner.c
Carified in libburner.c that apps must use 64 bit off_t.
2010.01.14.160633 [3016]
libburn/libburn.h
libburn/drive.c
Giving up drive probing by mode page sending
2010.01.14.160748 [3017]
libburn/sg-libcdio.c
Provisory rejection of FreeBSD ATAPI drives in sg-libcdio
2010.01.15.182615 [3018]
libburn/os-freebsd.h
libburn/sg-freebsd.c
Implemented adivisory FreeBSD drive locking via flock(2)
2010.01.16.125258 [3019]
libburn/drive.c
libburn/sg.h
libburn/sg-dummy.c
libburn/sg-freebsd.c
libburn/sg-freebsd-port.c
libburn/sg-libcdio.c
libburn/sg-linux.c
New OS adapter burn_os_is_2k_seekrw() replaces S_ISBLK() with pseudo-drives
2010.01.18.103410 [3023]
libburn/sg-linux.c
Changed a comment in sg-linux.c
------------------------------------ cycle - cdrskin-0.7.5 - 2010.01.18.104011
* Made FreeBSD system adapter safe from mutal burn spoiling and drive deadlock
21 Jan 2010 [3028]
cdrskin/cdrskin.1
Changed man page example from -toc to -minfo
2010.01.21.104741 [3029]
libburn/sg-freebsd.c
libburn/sg-libcdio.c
Learned how to inquire size of disk-like FreeBSD devices
22 Jan 2010 [3030]
svn copy -m "Branching for libburn release 0.7.6" \
http://svn.libburnia-project.org/libburn/trunk \
http://svn.libburnia-project.org/libburn/branches/ZeroSevenSix
2010.01.22.130001 []
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.7.6
22 Jan 2010 [3032]
COPYRIGHT
cdrskin/cdrskin.c
doc/cookbook.txt
libburn/libdax_msgs.h
libburn/libdax_msgs.c
test/libburner.c
test/telltoc.c
Lifted ban to derive GPLv3, extended copyright range to 2010
22 Jan 2009 [3033]
- cdrskin/add_ts_changes_to_libburn_0_7_4
- cdrskin/add_ts_changes_to_libburn_0_7_5
+ cdrskin/add_ts_changes_to_libburn_0_7_6
+ cdrskin/add_ts_changes_to_libburn_0_7_7
Updated cdrskin tarball generator
22 Jan 2009 [3034]
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------ release - cdrskin-0.7.6.pl00 - 2010.01.22.130001
* Bug fix: System adapter for generic X/Open was missing in libburn release tarball
* Bug fix: with non-Linux adapters there were 0 readable bytes on block devices
* Made FreeBSD system adapter safe from mutal burn spoiling and drive deadlock
* Enabled FreeBSD system adapter for Debian kfreebsd
* Experimental SCSI transport adapter via GNU libcdio 0.83git
2010.01.23.103338 [3035]
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.7.7
2010.01.23.104423 [3036]
COPYRIGHT
doc/cookbook.txt
libburn/libdax_msgs.h
libburn/libdax_msgs.c
test/libburner.c
test/telltoc.c
Lifted ban to derive GPLv3, extended copyright range to 2010
23 Jan 2010 [3037]
- cdrskin/add_ts_changes_to_libburn_0_7_4
- cdrskin/add_ts_changes_to_libburn_0_7_5
+ cdrskin/add_ts_changes_to_libburn_0_7_6
+ cdrskin/add_ts_changes_to_libburn_0_7_7
Updated cdrskin tarball generator
------------------------------------ cycle - cdrskin-0.7.7 - 2010.01.23.104423
23 Jan 2010 [3038]
svn move -m 'libburn release 0.7.6 is ready'
http://svn.libburnia-project.org/libburn/branches/ZeroSevenSix
http://svn.libburnia-project.org/libburn/tags/ZeroSevenSix
2010.02.04.083315 [3054]
acinclude.m4
configure.ac
Forcing use of /usr/local on FreeBSD by LDFLAGS and CPPFLAGS
2010.02.12.173236 [3063]
libburn/os-linux.h
libburn/sg-linux.c
Changed system adapter id and some remarks from "Linux" to "GNU/Linux"
2010.02.12.212818 [3064]
libburn/libburn.h
libburn/sg.c
libburn/mmc.c
libburn/drive.c
libburn/init.c
libburn/cleanup.c
libburn/os-linux.h
libburn/sg-linux.c
libburn/write.c
libburn/read.c
libburn/sg-libcdio.c
libburn/os-libcdio.h
libburn/os.h
libburn/toc.c
Changed docs and comments to "GNU/Linux" where appropriate
2010.02.14.084452 [3066]
libburn/sbc.c
libburn/file.h
libburn/os-libcdio.h
libburn/os-dummy.h
libburn/cleanup.h
libburn/sector.h
libburn/libiso_msgs.c
libburn/async.c
libburn/libdax_audioxtr.h
libburn/ecma130ab.c
libburn/back_hacks.h
libburn/libdax_msgs.h
libburn/drive.h
libburn/read.c
libburn/source.c
libburn/util.h
libburn/cleanup.c
libburn/sg.c
libburn/init.c
libburn/write.c
libburn/transport.h
libburn/write.h
libburn/libburn.h
libburn/options.c
libburn/mmc.h
libburn/sg.h
libburn/sbc.h
libburn/sg-dummy.c
libburn/ecma130ab.h
libburn/null.c
libburn/structure.c
libburn/mmc.c
libburn/spc.h
libburn/drive.c
libburn/sg-linux.c
libburn/options.h
libburn/os-linux.h
libburn/sg-libcdio.c
libburn/os-freebsd.h
libburn/sg-freebsd-port.c
libburn/sector.c
libburn/debug.c
libburn/util.c
libburn/toc.h
libburn/file.c
libburn/libdax_audioxtr.c
libburn/libdax_msgs.c
libburn/toc.c
libburn/sg-freebsd.c
libburn/spc.c
libburn/structure.h
Added or adjusted copyright and license statements in single files
2010.02.14.171833 [3069]
libburn/write.c
libburn/read.c
libburn/sector.c
libburn/crc.h
Created opportunity to omit source module libburn/crc.c
2010.02.15.125922 [3071]
libburn/crc.h
Changed a comment in libburn/crc.h
2010.02.16.194147 [3073]
libburn/file.c
Bug fix on FreeBSD: Piped input was falsely attributed a small fixed size
2010.02.17.141409 [3075]
libburn/async.c
libburn/drive.c
libburn/write.c
Avoided random percentage display at start of blanking
2010.02.22.134904 [3080]
libburn/init.c
Made burn_set_signal_handling() more suitable for cdrskin
2010.02.25.070635 [3090]
libburn/write.c
Corrected optional speed curb for stdio: drives. Was damaged by revision 2903.
2010.02.28.104003 [3091]
cdrskin/cdrskin.c
Added forgotten initialization of a variable
2010.02.28.110749 [3092]
cdrskin/cdrskin.c
Bug fix: cdrskin fs=0 lead to SIGSEGV. Regression introduced by revision 2936.
28 Feb 2010 [3093]
cdrskin/cdrskin.1
Corrected spelling errors in cdrskin man page
2010.03.03.140639 [3096]
libburn/drive.c
Enabled patience 0 within burn_abort()
2010.03.03.141407 [3097]
cdrskin/cdrskin.c
cdrskin/cdrfifo.c
Adapted cdrskin abort handler to FreeBSD peculiarities
3 Mar 2010 [3098] [3099]
cdrskin/compile_cdrskin.sh
Enabled static compile script compile_cdrskin.sh for FreeBSD
2010.03.04.121441 [3100]
libburn/sg-linux.c
Showing more patience with temporarily busy drives on Linux
2010.03.04.180102 [3101]
cdrskin/cdrskin.c
Changed burn_abort(0) to burn_abort(-1)
2010.03.05.090948 [3102]
libburn/libburn.h
libburn/transport.h
libburn/drive.h
libburn/drive.c
libburn/init.h
libburn/init.c
libburn/async.c
libburn/write.c
libburn/sector.c
libburn/libdax_msgs.h
libburn/libdax_msgs.c
Introduced alternative signal handling actions
2010.03.05.091432 [3103]
cdrskin/cdrskin.c
Enabled optional use of new signal action 2 with libburn built-in handler
2010.03.05.111712 [3104]
libburn/init.c
libburn/drive.h
libburn/drive.c
Removed some debugging printing
------------------------------------ cycle - cdrskin-0.7.7 - 2010.03.05.111954
Bug fix on FreeBSD: Piped input was falsely attributed a small fixed size
Bug fix: cdrskin fs=0 led to SIGSEGV. Regression introduced by revision 2936.
2010.03.05.190110 [3105]
libburn/async.c
Protected blanker and formatter thread from signals
06 Mar 2010 [3106]
test/libburner.c
Adapted libburner to new advise about signal handling
07 Mar 2010 [3107]
libburn/libburn.h
test/libburner.c
Changed examples burn_set_signal_handling(...,48) to (...,0x30)
2010.03.08.092608 [3108]
libburn/libburn.h
libburn/init.c
Prevented potential memory fault with burn_set_signal_handling()
2010.03.09.140341 [3111]
libburn/libburn.h
Clarifications in API description of burn_set_signal_handling()
10 Mar 2010 [3112]
svn copy -m "Branching for libburn release 0.7.8" \
http://svn.libburnia-project.org/libburn/trunk \
http://svn.libburnia-project.org/libburn/branches/ZeroSevenEight
2010.03.10.120001 [3113]
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.7.8
10 Mar 2010 [3114]
- cdrskin/add_ts_changes_to_libburn_0_7_6
- cdrskin/add_ts_changes_to_libburn_0_7_7
+ cdrskin/add_ts_changes_to_libburn_0_7_8
+ cdrskin/add_ts_changes_to_libburn_0_7_9
Updated cdrskin tarball generator
10 Mar 2010 [3115]
cdrskin/cdrskin.c
Removed unused variable
10 Mar 2010 [3116]
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------ release - cdrskin-0.7.8.pl00 - 2010.03.10.120001
Bug fix on FreeBSD: Piped input was falsely attributed a small fixed size
Bug fix: cdrskin fs=0 led to SIGSEGV. Regression introduced by version 0.7.4.
2010.03.10.134802 [3117]
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.7.9
10 Mar 2010 [3118]
- cdrskin/add_ts_changes_to_libburn_0_7_6
- cdrskin/add_ts_changes_to_libburn_0_7_7
+ cdrskin/add_ts_changes_to_libburn_0_7_8
+ cdrskin/add_ts_changes_to_libburn_0_7_9
Updated cdrskin tarball generator
10 Mar 2010 [3119]
cdrskin/changelog.txt
Documented changes and release timestamp
10 Mar 2010 [3120]
svn move -m 'libburn release 0.7.8 is ready'
http://svn.libburnia-project.org/libburn/branches/ZeroSevenEight
http://svn.libburnia-project.org/libburn/tags/ZeroSevenEight
------------------------------------ cycle - cdrskin-0.7.9 - 2010.03.10.143607
2010.03.17.185222 [3123]
cdrskin/cdrskin.c
Small bug fix about track size with cdrskin -minfo
17 Mar 2010 [3124]
configure.ac
Corrected initialization of configure option --enable-dvd-obs-64k
2010.03.25.113536 [3131]
libburn/spc.c
libburn/sg-freebsd.c
Changed sg-freebsd.c to work with ahci, advise by Alexander Motin
2010.03.26.083158 [3132]
libburn/sg-freebsd.c
Had to make ahci change conditional for now: -DLibburn_for_freebsd_ahcI
2010.03.27.155659 [3133]
libburn/mmc.c
Avoiding to inquire NWA of unwritable media or states
2010.03.27.172644 [3134]
libburn/os-freebsd.h
libburn/sg-freebsd.c
Trying to detect FreeBSD ahci devices and to handle others the old way
------------------------------------ cycle - cdrskin-0.7.9 - 2010.03.27.184614
* Now able to work with ahci driver of FreeBSD 8-STABLE
2010.03.29.103141 [3135]
libburn/spc.c
libburn/sg-linux.c
libburn/sg-freebsd.c
libburn/sg-libcdio.c
Adjusted libcdio system adapter to FreeBSD peculiarities
2010.04.04.181237 [3146]
test/libburner.c
Let libburner warn programmers if they forget to set 64 bit off_t
2010.04.09.090645 [3155]
libburn/sg-linux.c
Reporting eventual SCSI sense in sg-linux repeat loop
9 Apr 2010 [3156]
svn copy -m "Branching for libburn release 0.8.0" \
http://svn.libburnia-project.org/libburn/trunk \
http://svn.libburnia-project.org/libburn/branches/ZeroEightZero
2010.04.09.100001 [3157]
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.8.0
09 Apr 2010 [3158]
- cdrskin/add_ts_changes_to_libburn_0_7_8
- cdrskin/add_ts_changes_to_libburn_0_7_9
+ cdrskin/add_ts_changes_to_libburn_0_8_0
+ cdrskin/add_ts_changes_to_libburn_0_8_1
Updated cdrskin tarball generator
------------------------------ release - cdrskin-0.8.0.pl00 - 2010.04.09.100001
* Now able to work with ahci driver of FreeBSD 8-STABLE
------------------------------------ cycle - cdrskin-0.8.1 -
------------------------------------ cycle - cdrskin-0.8.1 -
=============================================================================== ===============================================================================
TODO TODO
=============================================================================== ===============================================================================
- change all malloc() to calloc()
- find out from where libburn/crc.c stems. What algorithm is crc_32() ?
--------------------------------- bugs ------------------------------------- --------------------------------- bugs -------------------------------------
@@ -7648,14 +8348,8 @@ READ TRACK INFORMATION[#5]:
------------------------------ end of bugs --------------------------------- ------------------------------ end of bugs ---------------------------------
- Make Libburn_stdio_flush_limiT adjustable
Support for BD-R SRM+POW Support for BD-R SRM+POW
? Provide an option to open track source file O_DIRECT ?
(needs read chunks much larger than 2 kB)
? Enable profile 0x42 BD-R random recording ? Enable profile 0x42 BD-R random recording
Provide DVD+R DL layer break setter Provide DVD+R DL layer break setter

View File

@@ -8,7 +8,7 @@ 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"
fifo_opts="" fifo_opts=""
libvers="-DCdrskin_libburn_0_7_7" libvers="-DCdrskin_libburn_0_8_0"
# To be used if Makefile.am uses libburn_libburn_la_CFLAGS # To be used if Makefile.am uses libburn_libburn_la_CFLAGS
# burn="libburn/libburn_libburn_la-" # burn="libburn/libburn_libburn_la-"
@@ -47,15 +47,15 @@ do
libdax_audioxtr_o= libdax_audioxtr_o=
libdax_msgs_o="$burn"message.o libdax_msgs_o="$burn"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_7_6" elif test "$i" = "-libburn_0_8_0"
then then
libvers="-DCdrskin_libburn_0_7_6" libvers="-DCdrskin_libburn_0_8_0"
libdax_audioxtr_o="$burn"libdax_audioxtr.o libdax_audioxtr_o="$burn"libdax_audioxtr.o
libdax_msgs_o="$burn"libdax_msgs.o libdax_msgs_o="$burn"libdax_msgs.o
cleanup_src_or_obj="$burn"cleanup.o cleanup_src_or_obj="$burn"cleanup.o
elif test "$i" = "-libburn_svn" elif test "$i" = "-libburn_svn"
then then
libvers="-DCdrskin_libburn_0_7_7" libvers="-DCdrskin_libburn_0_8_1"
libdax_audioxtr_o="$burn"libdax_audioxtr.o libdax_audioxtr_o="$burn"libdax_audioxtr.o
libdax_msgs_o="$burn"libdax_msgs.o libdax_msgs_o="$burn"libdax_msgs.o
cleanup_src_or_obj="$burn"cleanup.o cleanup_src_or_obj="$burn"cleanup.o
@@ -109,7 +109,7 @@ do
echo "Options:" echo "Options:"
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 " -libburn_0_7_6 set macro to match libburn-0.7.6" echo " -libburn_0_8_0 set macro to match libburn-0.8.0"
echo " -libburn_svn set macro to match current libburn-SVN." echo " -libburn_svn set macro to match current libburn-SVN."
echo " -dvd_obs_64k 64 KB default size for DVD/BD writing." echo " -dvd_obs_64k 64 KB default size for DVD/BD writing."
echo " -use_libcdio link with -lcdio because libburn uses it." echo " -use_libcdio link with -lcdio because libburn uses it."

View File

@@ -1,4 +1,4 @@
AC_INIT([libburn], [0.7.7], [http://libburnia-project.org]) AC_INIT([libburn], [0.8.0], [http://libburnia-project.org])
AC_PREREQ([2.50]) AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h]) dnl AC_CONFIG_HEADER([config.h])
@@ -9,7 +9,7 @@ LIBBURNIA_SET_FLAGS
AM_INIT_AUTOMAKE([subdir-objects]) AM_INIT_AUTOMAKE([subdir-objects])
dnl Notes by ts A71207 - B00122 : dnl Notes by ts A71207 - B00310 :
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.
@@ -79,6 +79,8 @@ dnl 0.7.0 = libburn.so.4.35.0
dnl 0.7.2 = libburn.so.4.37.0 dnl 0.7.2 = libburn.so.4.37.0
dnl 0.7.4 = libburn.so.4.39.0 dnl 0.7.4 = libburn.so.4.39.0
dnl 0.7.6 = libburn.so.4.41.0 dnl 0.7.6 = libburn.so.4.41.0
dnl 0.7.8 = libburn.so.4.43.0
dnl 0.8.0 = libburn.so.4.45.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.
@@ -103,8 +105,8 @@ dnl If BURN_*_VERSION changes, be sure to change AC_INIT above to match.
dnl 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=7 BURN_MINOR_VERSION=8
BURN_MICRO_VERSION=7 BURN_MICRO_VERSION=0
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)
@@ -115,15 +117,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 B00122 dnl ts B00409
dnl ### This is the release version libburn-0.7.6 = libburn.so.4.41.0 dnl This is the release version libburn-0.8.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 = 45 - 41 = 4 . Linux library name = libburn.so.4.41.0 dnl SONAME = 49 - 45 = 4 . Linux library name = libburn.so.4.45.0
LT_CURRENT=45 LT_CURRENT=49
LT_AGE=41 LT_AGE=45
LT_REVISION=0 LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@@ -201,7 +203,7 @@ CFLAGS="$CFLAGS $LIBBURN_O_DIRECT_DEF"
dnl ts A91116 dnl ts A91116
AC_ARG_ENABLE(dvd-obs-64k, AC_ARG_ENABLE(dvd-obs-64k,
[ --enable-dvd-obs-64k 64 KB default size for DVD/BD writing, default=no], [ --enable-dvd-obs-64k 64 KB default size for DVD/BD writing, default=no],
, enable_fifo_odirect=no) , enable_dvd_obs_64k=no)
if test x$enable_dvd_obs_64k = xyes; then if test x$enable_dvd_obs_64k = xyes; then
LIBBURN_DVD_OBS_64K="-DLibburn_dvd_obs_default_64K" LIBBURN_DVD_OBS_64K="-DLibburn_dvd_obs_default_64K"
echo "enabled write size default 64 KB on DVD and BD" echo "enabled write size default 64 KB on DVD and BD"

View File

@@ -2627,8 +2627,8 @@ 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 7 #define burn_header_version_minor 8
#define burn_header_version_micro 7 #define burn_header_version_micro 0
/** 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

@@ -425,6 +425,10 @@ int mmc_get_nwa(struct burn_drive *d, int trackno, int *lba, int *nwa)
if (mmc_function_spy(d, "mmc_get_nwa") <= 0) if (mmc_function_spy(d, "mmc_get_nwa") <= 0)
return -1; return -1;
/* ts B00327 : Avoid to inquire unsuitable media states */
if (d->status != BURN_DISC_BLANK && d->status != BURN_DISC_APPENDABLE)
return 0;
ret = mmc_read_track_info(d, trackno, &buf, alloc_len); ret = mmc_read_track_info(d, trackno, &buf, alloc_len);
if (ret <= 0) if (ret <= 0)
return ret; return ret;

View File

@@ -59,5 +59,6 @@ typedef struct burn_drive_enumeration_state *burn_drive_enumerator_t;
#define BURN_OS_TRANSPORT_DRIVE_ELEMENTS \ #define BURN_OS_TRANSPORT_DRIVE_ELEMENTS \
struct cam_device* cam; \ struct cam_device* cam; \
int lock_fd; \ int lock_fd; \
int is_ahci; \

View File

@@ -5,7 +5,6 @@
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
*/ */
#include <errno.h> #include <errno.h>
#include <unistd.h> #include <unistd.h>
#include <stdio.h> #include <stdio.h>
@@ -30,6 +29,18 @@
#include <sys/disk.h> /* DIOCGMEDIASIZE */ #include <sys/disk.h> /* DIOCGMEDIASIZE */
/* ts B00326 : For use of CAM_PASS_ERR_RECOVER with ahci */
#define Libburn_for_freebsd_ahcI yes
/* ts B00327 : for debugging of cam_send_cdb() failures
# define Libburn_ahci_verbouS yes
*/
/* ts B00327 : Apply CAM_PASS_ERR_RECOVER to drives even if not ahci
# define libburn_ahci_style_for_alL yes
*/
#include "transport.h" #include "transport.h"
#include "drive.h" #include "drive.h"
#include "sg.h" #include "sg.h"
@@ -435,6 +446,7 @@ static void enumerate_common(char *fname, int bus_no, int host_no,
out.cam = NULL; out.cam = NULL;
out.lock_fd = -1; out.lock_fd = -1;
out.is_ahci = 0;
out.start_lba= -2000000000; out.start_lba= -2000000000;
out.end_lba= -2000000000; out.end_lba= -2000000000;
@@ -527,6 +539,7 @@ static void enumerate_common(char *fname, int bus_no, int host_no,
/* Adapter specific handles and data */ /* Adapter specific handles and data */
out.cam = NULL; out.cam = NULL;
out.lock_fd = -1; out.lock_fd = -1;
out.is_ahci = 0;
/* Adapter specific functions */ /* Adapter specific functions */
out.grab = sg_grab; out.grab = sg_grab;
@@ -678,6 +691,7 @@ static int sg_lock(struct burn_drive *d, int flag)
int sg_grab(struct burn_drive *d) int sg_grab(struct burn_drive *d)
{ {
struct cam_device *cam; struct cam_device *cam;
char path_string[80];
if (mmc_function_spy(d, "sg_grab") <= 0) if (mmc_function_spy(d, "sg_grab") <= 0)
return 0; return 0;
@@ -700,6 +714,18 @@ int sg_grab(struct burn_drive *d)
if (sg_lock(d, 0) <= 0) if (sg_lock(d, 0) <= 0)
return 0; return 0;
fcntl(cam->fd, F_SETOWN, getpid()); fcntl(cam->fd, F_SETOWN, getpid());
cam_path_string(d->cam, path_string, sizeof(path_string));
#ifdef Libburn_ahci_verbouS
fprintf(stderr, "libburn_EXPERIMENTAL: CAM path = %s\n", path_string);
#endif
if (strstr(path_string, ":ahcich") != NULL)
d->is_ahci = 1;
else
d->is_ahci = -1;
d->released = 0; d->released = 0;
return 1; return 1;
} }
@@ -729,7 +755,8 @@ int sg_release(struct burn_drive *d)
int sg_issue_command(struct burn_drive *d, struct command *c) int sg_issue_command(struct burn_drive *d, struct command *c)
{ {
int done = 0, err, sense_len, ret; int done = 0, err, sense_len = 0, ret, ignore_error, no_retry = 0;
int cam_pass_err_recover = 0;
union ccb *ccb; union ccb *ccb;
char buf[161]; char buf[161];
static FILE *fp = NULL; static FILE *fp = NULL;
@@ -777,6 +804,23 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
break; break;
} }
#ifdef Libburn_for_freebsd_ahcI
/* ts B00325 : Advise by Alexander Motin */
/* Runs well on 8-STABLE (23 Mar 2003)
But on 8-RELEASE cam_send_ccb() returns non-zero with errno 6
on eject. Long lasting TEST UNIT READY cycles break with
errno 16.
*/
#ifdef Libburn_ahci_style_for_alL
{
#else
if (d->is_ahci > 0) {
#endif
ccb->ccb_h.flags |= CAM_PASS_ERR_RECOVER;
cam_pass_err_recover = 1;
}
#endif /* Libburn_for_freebsd_ahcI */
ccb->csio.cdb_len = c->oplen; ccb->csio.cdb_len = c->oplen;
memcpy(&ccb->csio.cdb_io.cdb_bytes, &c->opcode, c->oplen); memcpy(&ccb->csio.cdb_io.cdb_bytes, &c->opcode, c->oplen);
@@ -807,8 +851,74 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
} }
do { do {
memset(c->sense, 0, sizeof(c->sense));
err = cam_send_ccb(d->cam, ccb); err = cam_send_ccb(d->cam, ccb);
if (err == -1) {
ignore_error = sense_len = 0;
/* ts B00325 : CAM_AUTOSNS_VALID advised by Alexander Motin */
if (ccb->ccb_h.status & CAM_AUTOSNS_VALID) {
/* ts B00110 */
/* Better curb sense_len */
sense_len = ccb->csio.sense_len;
if (sense_len > sizeof(c->sense))
sense_len = sizeof(c->sense);
memcpy(c->sense, &ccb->csio.sense_data, sense_len);
if (sense_len >= 14 && cam_pass_err_recover &&
(c->sense[2] & 0x0f))
ignore_error = 1;
}
if (err == -1 && cam_pass_err_recover && ! ignore_error) {
#ifdef Libburn_ahci_verbouS
fprintf(stderr, "libburn_EXPERIMENTAL: errno = %d . cam_errbuf = '%s'\n", errno, cam_errbuf);
#endif
if (errno == ENXIO && c->opcode[0] != 0) {
/* Operations on empty or ejected tray */
/* MEDIUM NOT PRESENT */
#ifdef Libburn_ahci_verbouS
fprintf(stderr, "libburn_EXPERIMENTAL: Emulating [2,3A,00] MEDIUM NOT PRESENT\n");
#endif
c->sense[2] = 0x02;
c->sense[12] = 0x3A;
c->sense[13] = 0x00;
sense_len = 14;
ignore_error = 1;
} else if (c->opcode[0] == 0 &&
(errno == EBUSY || errno == ENXIO)) {
/* Timeout of TEST UNIT READY loop */
/* Inquiries while tray is being loaded */
/*LOGICAL UNIT NOT READY,CAUSE NOT REPORTABLE*/
#ifdef Libburn_ahci_verbouS
fprintf(stderr, "libburn_EXPERIMENTAL: Emulating [2,04,00] LOGICAL UNIT NOT READY,CAUSE NOT REPORTABLE\n");
#endif
c->sense[2] = 0x02;
c->sense[12] = 0x04;
c->sense[13] = 0x00;
sense_len = 14;
ignore_error = 1;
} else if (errno == EINVAL) {
/* Inappropriate MODE SENSE */
/* INVALID FIELD IN CDB */
#ifdef Libburn_ahci_verbouS
fprintf(stderr, "libburn_EXPERIMENTAL: Emulating [5,24,00] INVALID FIELD IN CDB\n");
#endif
c->sense[2] = 0x05;
c->sense[12] = 0x24;
c->sense[13] = 0x00;
sense_len = 14;
ignore_error = 1;
}
}
if (err == -1 && !ignore_error) {
libdax_msgs_submit(libdax_messenger, libdax_msgs_submit(libdax_messenger,
d->global_index, 0x0002010c, d->global_index, 0x0002010c,
LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH, LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH,
@@ -822,20 +932,33 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
} }
/* XXX */ /* XXX */
/* ts B00110 */
/* Better curb sense_len */
sense_len = ccb->csio.sense_len;
if (sense_len > sizeof(c->sense))
sense_len = sizeof(c->sense);
memcpy(c->sense, &ccb->csio.sense_data, ccb->csio.sense_len);
if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) {
if (!c->retry) { if (sense_len < 14) {
/*LOGICAL UNIT NOT READY,CAUSE NOT REPORTABLE*/
#ifdef Libburn_ahci_verbouS
fprintf(stderr, "libburn_EXPERIMENTAL: CAM_STATUS= %d .Emulating [2,04,00] LOGICAL UNIT NOT READY,CAUSE NOT REPORTABLE\n", (ccb->ccb_h.status & CAM_STATUS_MASK));
#endif
c->sense[2] = 0x02;
c->sense[12] = 0x04;
c->sense[13] = 0x00;
no_retry = 1;
}
if (no_retry || ignore_error || !c->retry) {
c->error = 1; c->error = 1;
{ret = 1; goto ex;} {ret = 1; goto ex;}
} }
switch (scsi_error(d, c->sense, 0)) { switch (scsi_error(d, c->sense, 0)) {
case RETRY: case RETRY:
done = 0; done = 0;
if (burn_sg_log_scsi & 3) {
/* >>> Need own duration time
measurement. Then remove bit1 */
scsi_log_err(c, fp, c->sense, 0,
(c->error != 0) | 2);
scsi_log_cmd(c,fp,0);
}
break; break;
case FAIL: case FAIL:
done = 1; done = 1;

View File

@@ -553,7 +553,7 @@ int sg_release(struct burn_drive *d)
*/ */
int sg_issue_command(struct burn_drive *d, struct command *c) int sg_issue_command(struct burn_drive *d, struct command *c)
{ {
int sense_valid = 0, i, usleep_time, timeout_ms; int sense_valid = 0, i, usleep_time, timeout_ms, no_retry = 0;
time_t start_time; time_t start_time;
driver_return_code_t i_status; driver_return_code_t i_status;
unsigned int dxfer_len; unsigned int dxfer_len;
@@ -568,15 +568,15 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
return 0; return 0;
} }
p_cdio = (CdIo_t *) d->p_cdio; p_cdio = (CdIo_t *) d->p_cdio;
if (burn_sg_log_scsi & 1) { if (burn_sg_log_scsi & 1) {
if (fp == NULL) { if (fp == NULL) {
fp= fopen("/tmp/libburn_sg_command_log", "a"); fp= fopen("/tmp/libburn_sg_command_log", "a");
fprintf(fp, fprintf(fp,
"\n-----------------------------------------\n"); "\n-----------------------------------------\n");
} }
} }
if (burn_sg_log_scsi & 3) if (burn_sg_log_scsi & 3)
scsi_log_cmd(c,fp,0); scsi_log_cmd(c,fp,0);
memcpy(cdb.field, c->opcode, c->oplen); memcpy(cdb.field, c->opcode, c->oplen);
if (c->dir == TO_DRIVE) { if (c->dir == TO_DRIVE) {
@@ -628,24 +628,35 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
} }
*/ */
if (!sense_valid) { if ((!sense_valid) ||
((c->sense[2] & 0x0f) == 0 && c->sense[12] == 0 &&
c->sense[13] == 0)) {
memset(c->sense, 0, sizeof(c->sense)); memset(c->sense, 0, sizeof(c->sense));
if (i_status != 0) { /* set dummy sense */ if (i_status != 0) { /* set dummy sense */
/*LOGICAL UNIT NOT READY,CAUSE NOT REPORTABLE*/ /*LOGICAL UNIT NOT READY,
CAUSE NOT REPORTABLE*/
c->sense[2] = 0x02; c->sense[2] = 0x02;
c->sense[12] = 0x04; c->sense[12] = 0x04;
no_retry = 1;
} }
} else } else
c->sense[2] &= 15; c->sense[2] &= 15;
if (i_status != 0 || if (i_status != 0 ||
(c->sense[2] || c->sense[12] || c->sense[13])) { (c->sense[2] || c->sense[12] || c->sense[13])) {
if (!c->retry) { if (no_retry || !c->retry) {
c->error = 1; c->error = 1;
goto ex; goto ex;
} }
switch (scsi_error(d, c->sense, 18)) { switch (scsi_error(d, c->sense, 18)) {
case RETRY: case RETRY:
if (burn_sg_log_scsi & 3) {
/* >>> Need own duration time
measurement. Then remove bit1 */
scsi_log_err(c, fp, c->sense, 0,
(c->error != 0) | 2);
scsi_log_cmd(c,fp,0);
}
break; break;
case FAIL: case FAIL:
c->error = 1; c->error = 1;

View File

@@ -1928,6 +1928,11 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
switch (scsi_error(d, s.sbp, s.sb_len_wr)) { switch (scsi_error(d, s.sbp, s.sb_len_wr)) {
case RETRY: case RETRY:
done = 0; done = 0;
if (burn_sg_log_scsi & 3) {
scsi_log_err(c, fp, s.sbp, s.duration,
c->error != 0);
scsi_log_cmd(c,fp,0);
}
break; break;
case FAIL: case FAIL:
done = 1; done = 1;

View File

@@ -113,7 +113,8 @@ int spc_test_unit_ready(struct burn_drive *d)
int spc_wait_unit_attention(struct burn_drive *d, int max_sec, char *cmd_text, int spc_wait_unit_attention(struct burn_drive *d, int max_sec, char *cmd_text,
int flag) int flag)
{ {
int i, ret = 1, key = 0, asc = 0, ascq = 0; int i, ret = 1, key = 0, asc = 0, ascq = 0, clueless_start = 0;
static int clueless_timeout = 5 * 10;
char msg[320]; char msg[320];
unsigned char sense[14]; unsigned char sense[14];
enum response resp; enum response resp;
@@ -143,6 +144,7 @@ int spc_wait_unit_attention(struct burn_drive *d, int max_sec, char *cmd_text,
/* media change notice = try again */ /* media change notice = try again */
goto slumber; goto slumber;
handle_error:;
/* ts A90213 */ /* ts A90213 */
sprintf(msg, sprintf(msg,
"Asynchronous SCSI error on %s: ", cmd_text); "Asynchronous SCSI error on %s: ", cmd_text);
@@ -157,7 +159,23 @@ int spc_wait_unit_attention(struct burn_drive *d, int max_sec, char *cmd_text,
msg, 0, 0); msg, 0, 0);
d->cancel = 1; d->cancel = 1;
break; break;
} } else if (ascq == 0x00) { /* CAUSE NOT REPORTABLE */
/* Might be a clueless system adapter */
if (clueless_start == 0)
clueless_start = i;
if (i - clueless_start > clueless_timeout) {
libdax_msgs_submit(libdax_messenger,
d->global_index,
0x00000002,
LIBDAX_MSGS_SEV_DEBUG, LIBDAX_MSGS_PRIO_HIGH,
"Ended clueless NOT READY cycle",
0, 0);
ret = 1; /* medium not present = ok */
break;
}
} else if (ascq == 0x02 || ascq == 0x03)
goto handle_error;
slumber:; slumber:;
usleep(100000); usleep(100000);
} }
@@ -961,13 +979,13 @@ enum response scsi_error_msg(struct burn_drive *d, unsigned char *sense,
*key= *asc= *ascq= -1; *key= *asc= *ascq= -1;
if (senselen<=0 || senselen>2) if (senselen<=0 || senselen>2)
*key = sense[2]; *key = sense[2] & 0x0f;
if (senselen<=0 || senselen>12) if (senselen<=0 || senselen>12)
*asc = sense[12]; *asc = sense[12];
if (senselen<=0 || senselen>13) if (senselen<=0 || senselen>13)
*ascq = sense[13]; *ascq = sense[13];
sprintf(msg, "[%X %2.2X %2.2X] ", (*key) & 0xf, *asc, *ascq); sprintf(msg, "[%X %2.2X %2.2X] ", *key, *asc, *ascq);
msg= msg + strlen(msg); msg= msg + strlen(msg);
burn_print(12, "CONDITION: 0x%x 0x%x 0x%x on %s %s\n", burn_print(12, "CONDITION: 0x%x 0x%x 0x%x on %s %s\n",
@@ -982,8 +1000,11 @@ enum response scsi_error_msg(struct burn_drive *d, unsigned char *sense,
sprintf(msg, "Not ready"); sprintf(msg, "Not ready");
return RETRY; return RETRY;
case 0x04: case 0x04:
sprintf(msg, if (*ascq == 1)
sprintf(msg,
"Logical unit is in the process of becoming ready"); "Logical unit is in the process of becoming ready");
else
sprintf(msg, "Logical unit is not ready");
return RETRY; return RETRY;
case 0x08: case 0x08:
if (*key != 4) if (*key != 4)

View File

@@ -732,6 +732,13 @@ int main(int argc, char **argv)
{ {
int ret; int ret;
/* A warning to programmers who start their own projekt from here. */
if (sizeof(off_t) != 8) {
fprintf(stderr,
"\nFATAL: Compile time misconfiguration. off_t is not 64 bit.\n\n");
exit(39);
}
ret = libburner_setup(argc, argv); ret = libburner_setup(argc, argv);
if (ret) if (ret)
exit(ret); exit(ret);