Compare commits

..

5 Commits

19 changed files with 107 additions and 378 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 - B00409 ## cdrskin construction site - ts A60816 - B00122
cdrskin_cdrskin_CPPFLAGS = -Ilibburn cdrskin_cdrskin_CPPFLAGS = -Ilibburn
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_8_0 cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_7_8
# 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

18
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.8.0.pl00.tar.gz http://files.libburnia-project.org/releases/libburn-0.7.8.pl00.tar.gz
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
@ -19,10 +19,10 @@ Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
From tarball From tarball
Obtain libburn-0.8.0.pl00.tar.gz, take it to a directory of your choice and do: Obtain libburn-0.7.8.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf libburn-0.8.0.pl00.tar.gz tar xzf libburn-0.7.8.pl00.tar.gz
cd libburn-0.8.0 cd libburn-0.7.8
./configure --prefix=/usr ./configure --prefix=/usr
make make
@ -505,14 +505,8 @@ Project history as far as known to me:
The licenses of libburnia libraries and applications are not affected by The licenses of libburnia libraries and applications are not affected by
this change. this change.
- 10 Mar 2010 libburn-0.7.8 fixes bugs and improves the built-in abort handler - 10 Mar 2010 libburn-0.7.8.pl00 fixes bugs and improves the built-in abort
on FreeBSD. 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.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

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.8.0.pl00.tar.gz http://scdbackup.sourceforge.net/cdrskin-0.7.8.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.8.0.pl00.tar.gz, take it to a directory of your choice and do: Obtain cdrskin-0.7.8.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf cdrskin-0.8.0.pl00.tar.gz tar xzf cdrskin-0.7.8.pl00.tar.gz
cd cdrskin-0.8.0 cd cdrskin-0.7.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.8.0" skin_release="0.7.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.8.1" skin_release="0.7.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.8.0" #define Cdrskin_prog_versioN "0.7.8"
#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 8 #define Cdrskin_libburn_minoR 7
#endif #endif
#ifndef Cdrskin_libburn_micrO #ifndef Cdrskin_libburn_micrO
#define Cdrskin_libburn_micrO 0 #define Cdrskin_libburn_micrO 8
#endif #endif
@ -135,13 +135,13 @@ or
#endif /* Cdrskin_libburn_cvs_A60220_tS */ #endif /* Cdrskin_libburn_cvs_A60220_tS */
#ifdef Cdrskin_libburn_0_8_0 #ifdef Cdrskin_libburn_0_7_8
#define Cdrskin_libburn_versioN "0.8.0" #define Cdrskin_libburn_versioN "0.7.8"
#define Cdrskin_libburn_from_pykix_svN 1 #define Cdrskin_libburn_from_pykix_svN 1
#endif /* Cdrskin_libburn_0_8_0 */ #endif /* Cdrskin_libburn_0_7_8 */
#ifdef Cdrskin_libburn_0_8_1 #ifdef Cdrskin_libburn_0_7_9
#define Cdrskin_libburn_versioN "0.8.1" #define Cdrskin_libburn_versioN "0.7.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.
@ -153,29 +153,29 @@ or
*/ */
#endif /* Cdrskin_libburn_0_8_1 */ #endif /* Cdrskin_libburn_0_7_9 */
#ifndef Cdrskin_libburn_versioN #ifndef Cdrskin_libburn_versioN
#define Cdrskin_libburn_0_8_0 #define Cdrskin_libburn_0_7_8
#define Cdrskin_libburn_versioN "0.8.0" #define Cdrskin_libburn_versioN "0.7.8"
#define Cdrskin_libburn_from_pykix_svN 1 #define Cdrskin_libburn_from_pykix_svN 1
#endif #endif
#ifdef Cdrskin_libburn_0_8_0 #ifdef Cdrskin_libburn_0_7_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 8 #define Cdrskin_libburn_minoR 7
#define Cdrskin_libburn_micrO 0 #define Cdrskin_libburn_micrO 8
#endif #endif
#ifdef Cdrskin_libburn_0_8_1 #ifdef Cdrskin_libburn_0_7_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 8 #define Cdrskin_libburn_minoR 7
#define Cdrskin_libburn_micrO 1 #define Cdrskin_libburn_micrO 9
#endif #endif
@ -5276,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 - 1) * (off_t) 2048, buf, ret= burn_read_data(drive, (off_t) lra * (off_t) 2048, buf, 2 * 2048,
2 * 2048, &buf_count, 2 | 4); &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.8.0</DT> <DT>libburn-0.7.8</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.8.0.pl00.tar.gz">cdrskin-0.8.0.pl00.tar.gz</A> <DD><A HREF="cdrskin-0.7.8.pl00.tar.gz">cdrskin-0.7.8.pl00.tar.gz</A>
(835 KB). (840 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,19 +244,24 @@ 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.8.pl00: Enhancements towards previous stable version cdrskin-0.7.6.pl00:
<UL> <UL>
<LI> <LI>
Now able to work with ahci driver of FreeBSD 8-STABLE Abort handling is more suitable for FreeBSD now.
</LI> </LI>
<!-- <!--
<LI>none</LI> <LI>none</LI>
--> -->
</UL> </UL>
Bug fixes towards cdrskin-0.7.8.pl00: Bug fixes towards cdrskin-0.7.6.pl00:
<UL> <UL>
<LI>none</LI> <LI>
On FreeBSD: Piped input was falsely attributed a small fixed size
</LI>
<LI>
cdrskin fs=0 led to SIGSEGV. Regression introduced by version 0.7.4.
</LI>
<!-- <!--
<LI>none</LI> <LI>none</LI>
--> -->
@ -266,8 +271,8 @@ Bug fixes towards cdrskin-0.7.8.pl00:
<P> <P>
<DL> <DL>
<DT><H3>Development snapshot, version 0.8.1 :</H3></DT> <DT><H3>Development snapshot, version 0.7.9 :</H3></DT>
<DD>Enhancements towards current stable version 0.8.0.pl00: <DD>Enhancements towards current stable version 0.7.8.pl00:
<UL> <UL>
<LI>none yet</LI> <LI>none yet</LI>
<!-- <!--
@ -276,7 +281,7 @@ Bug fixes towards cdrskin-0.7.8.pl00:
</UL> </UL>
</DD> </DD>
<DD>Bug fixes towards cdrskin-0.8.0.pl00: <DD>Bug fixes towards cdrskin-0.7.6.pl00:
<UL> <UL>
<LI>none yet</LI> <LI>none yet</LI>
<!-- <!--
@ -285,10 +290,10 @@ Bug fixes towards cdrskin-0.7.8.pl00:
</DD> </DD>
<DD>&nbsp;</DD> <DD>&nbsp;</DD>
<DD><A HREF="README_cdrskin_devel">README 0.8.1</A> <DD><A HREF="README_cdrskin_devel">README 0.7.9</A>
<DD><A HREF="cdrskin__help_devel">cdrskin_0.8.1 --help</A></DD> <DD><A HREF="cdrskin__help_devel">cdrskin_0.7.9 --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.9 -help</A></DD>
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.8.1)</A></DD> <DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.7.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>
@ -308,7 +313,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.8.1.tar.gz">cdrskin-0.8.1.tar.gz</A> <A HREF="cdrskin-0.7.9.tar.gz">cdrskin-0.7.9.tar.gz</A>
(840 KB). (840 KB).
</DD> </DD>

View File

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

View File

@ -8199,7 +8199,7 @@ Updated cdrskin tarball generator
cdrskin/cdrskin.c cdrskin/cdrskin.c
Removed unused variable Removed unused variable
10 Mar 2010 [3116] []
cdrskin/changelog.txt cdrskin/changelog.txt
Documented changes and release timestamp Documented changes and release timestamp
@ -8207,117 +8207,15 @@ Documented changes and release timestamp
Bug fix on FreeBSD: Piped input was falsely attributed a small fixed size 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. Bug fix: cdrskin fs=0 led to SIGSEGV. Regression introduced by version 0.7.4.
------------------------------------ cycle - cdrskin-0.7.9 -
2010.03.10.134802 [3117] ------------------------------------ cycle - cdrskin-0.7.9 -
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() - change all malloc() to calloc()
- find out from where libburn/crc.c stems. What algorithm is crc_32() ? - find out from where libburn/crc.c stems. What algorithm is crc_32() ?
@ -8348,8 +8246,13 @@ READ TRACK INFORMATION[#5]:
------------------------------ end of bugs --------------------------------- ------------------------------ end of bugs ---------------------------------
- xorriso -as tar (Rocky wants me to begin with -x)
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_8_0" libvers="-DCdrskin_libburn_0_7_8"
# 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_8_0" elif test "$i" = "-libburn_0_7_8"
then then
libvers="-DCdrskin_libburn_0_8_0" libvers="-DCdrskin_libburn_0_7_8"
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_8_1" libvers="-DCdrskin_libburn_0_7_9"
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_8_0 set macro to match libburn-0.8.0" echo " -libburn_0_7_8 set macro to match libburn-0.7.8"
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.8.0], [http://libburnia-project.org]) AC_INIT([libburn], [0.7.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])
@ -80,7 +80,6 @@ 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.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.
@ -105,8 +104,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=8 BURN_MINOR_VERSION=7
BURN_MICRO_VERSION=0 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)
@ -117,15 +116,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 B00409 dnl ts B00310
dnl This is the release version libburn-0.8.0 dnl This is the release version libburn-0.7.8 = libburn.so.4.43.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 = 49 - 45 = 4 . Linux library name = libburn.so.4.45.0 dnl SONAME = 47 - 43 = 4 . Linux library name = libburn.so.4.43.0
LT_CURRENT=49 LT_CURRENT=47
LT_AGE=45 LT_AGE=43
LT_REVISION=0 LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@ -203,7 +202,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_dvd_obs_64k=no) , enable_fifo_odirect=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 8 #define burn_header_version_minor 7
#define burn_header_version_micro 0 #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

@ -425,10 +425,6 @@ 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,6 +59,5 @@ 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,6 +5,7 @@
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>
@ -29,18 +30,6 @@
#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"
@ -446,7 +435,6 @@ 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;
@ -539,7 +527,6 @@ 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;
@ -691,7 +678,6 @@ 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;
@ -714,18 +700,6 @@ 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;
} }
@ -755,8 +729,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 done = 0, err, sense_len = 0, ret, ignore_error, no_retry = 0; int done = 0, err, sense_len, ret;
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;
@ -804,23 +777,6 @@ 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);
@ -851,74 +807,8 @@ 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,
@ -932,33 +822,20 @@ 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 (sense_len < 14) { if (!c->retry) {
/*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, no_retry = 0; int sense_valid = 0, i, usleep_time, timeout_ms;
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;
@ -628,35 +628,24 @@ 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, /*LOGICAL UNIT NOT READY,CAUSE NOT REPORTABLE*/
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 (no_retry || !c->retry) { if (!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,11 +1928,6 @@ 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,8 +113,7 @@ 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, clueless_start = 0; int i, ret = 1, key = 0, asc = 0, ascq = 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;
@ -144,7 +143,6 @@ 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);
@ -158,24 +156,8 @@ handle_error:;
LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH, LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH,
msg, 0, 0); msg, 0, 0);
d->cancel = 1; d->cancel = 1;
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; break;
} }
} else if (ascq == 0x02 || ascq == 0x03)
goto handle_error;
slumber:; slumber:;
usleep(100000); usleep(100000);
} }
@ -979,13 +961,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] & 0x0f; *key = sense[2];
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, *asc, *ascq); sprintf(msg, "[%X %2.2X %2.2X] ", (*key) & 0xf, *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",
@ -1000,11 +982,8 @@ 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:
if (*ascq == 1)
sprintf(msg, 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,13 +732,6 @@ 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);