Compare commits
5 Commits
ZeroEightZ
...
ZeroSevenE
Author | SHA1 | Date | |
---|---|---|---|
9649668c99 | |||
4729b8f1be | |||
fd05a264e9 | |||
d83944719d | |||
071a39d014 |
@ -110,9 +110,9 @@ test_structest_CPPFLAGS = -Ilibburn
|
||||
test_structest_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
|
||||
test_structest_SOURCES = test/structest.c
|
||||
|
||||
## cdrskin construction site - ts A60816 - B00409
|
||||
## cdrskin construction site - ts A60816 - B00122
|
||||
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)
|
||||
# ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking
|
||||
|
18
README
18
README
@ -11,7 +11,7 @@ Still containing parts of Libburn. By Derek Foreman <derek@signalmarketing.com>
|
||||
and Ben Jansens <xor@orodu.net>
|
||||
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
|
||||
|
||||
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
|
||||
cd libburn-0.8.0
|
||||
tar xzf libburn-0.7.8.pl00.tar.gz
|
||||
cd libburn-0.7.8
|
||||
./configure --prefix=/usr
|
||||
make
|
||||
|
||||
@ -505,14 +505,8 @@ Project history as far as known to me:
|
||||
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.
|
||||
|
||||
- 10 Mar 2010 libburn-0.7.8.pl00 fixes bugs and improves the built-in abort
|
||||
handler on FreeBSD.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
|
||||
Integrated sub project of libburnia-project.org but also published via:
|
||||
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.
|
||||
------------------------------------------------------------------------------
|
||||
@ -25,10 +25,10 @@ By using this software you agree to the disclaimer at the end of this text
|
||||
|
||||
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
|
||||
cd cdrskin-0.8.0
|
||||
tar xzf cdrskin-0.7.8.pl00.tar.gz
|
||||
cd cdrskin-0.7.8
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
|
@ -38,7 +38,7 @@ original="./libburn_svn_release.tgz"
|
||||
# My changes are in $changes , mainly in $changes/cdrskin
|
||||
changes="./libburn-release"
|
||||
|
||||
skin_release="0.8.0"
|
||||
skin_release="0.7.8"
|
||||
patch_level=".pl00"
|
||||
skin_rev="$skin_release""$patch_level"
|
||||
|
@ -38,7 +38,7 @@ original="./libburn_svn.tgz"
|
||||
# My changes are in $changes , mainly in $changes/cdrskin
|
||||
changes="./libburn-develop"
|
||||
|
||||
skin_release="0.8.1"
|
||||
skin_release="0.7.9"
|
||||
patch_level=""
|
||||
skin_rev="$skin_release""$patch_level"
|
||||
|
@ -88,7 +88,7 @@ or
|
||||
|
||||
/** The official program version */
|
||||
#ifndef Cdrskin_prog_versioN
|
||||
#define Cdrskin_prog_versioN "0.8.0"
|
||||
#define Cdrskin_prog_versioN "0.7.8"
|
||||
#endif
|
||||
|
||||
/** The official libburn interface revision to use.
|
||||
@ -98,10 +98,10 @@ or
|
||||
#define Cdrskin_libburn_majoR 0
|
||||
#endif
|
||||
#ifndef Cdrskin_libburn_minoR
|
||||
#define Cdrskin_libburn_minoR 8
|
||||
#define Cdrskin_libburn_minoR 7
|
||||
#endif
|
||||
#ifndef Cdrskin_libburn_micrO
|
||||
#define Cdrskin_libburn_micrO 0
|
||||
#define Cdrskin_libburn_micrO 8
|
||||
#endif
|
||||
|
||||
|
||||
@ -135,13 +135,13 @@ or
|
||||
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
||||
|
||||
|
||||
#ifdef Cdrskin_libburn_0_8_0
|
||||
#define Cdrskin_libburn_versioN "0.8.0"
|
||||
#ifdef Cdrskin_libburn_0_7_8
|
||||
#define Cdrskin_libburn_versioN "0.7.8"
|
||||
#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
|
||||
#define Cdrskin_libburn_versioN "0.8.1"
|
||||
#ifdef Cdrskin_libburn_0_7_9
|
||||
#define Cdrskin_libburn_versioN "0.7.9"
|
||||
#define Cdrskin_libburn_from_pykix_svN 1
|
||||
|
||||
/* 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
|
||||
#define Cdrskin_libburn_0_8_0
|
||||
#define Cdrskin_libburn_versioN "0.8.0"
|
||||
#define Cdrskin_libburn_0_7_8
|
||||
#define Cdrskin_libburn_versioN "0.7.8"
|
||||
#define Cdrskin_libburn_from_pykix_svN 1
|
||||
#endif
|
||||
|
||||
#ifdef Cdrskin_libburn_0_8_0
|
||||
#ifdef Cdrskin_libburn_0_7_8
|
||||
#undef Cdrskin_libburn_majoR
|
||||
#undef Cdrskin_libburn_minoR
|
||||
#undef Cdrskin_libburn_micrO
|
||||
#define Cdrskin_libburn_majoR 0
|
||||
#define Cdrskin_libburn_minoR 8
|
||||
#define Cdrskin_libburn_micrO 0
|
||||
#define Cdrskin_libburn_minoR 7
|
||||
#define Cdrskin_libburn_micrO 8
|
||||
#endif
|
||||
#ifdef Cdrskin_libburn_0_8_1
|
||||
#ifdef Cdrskin_libburn_0_7_9
|
||||
#undef Cdrskin_libburn_majoR
|
||||
#undef Cdrskin_libburn_minoR
|
||||
#undef Cdrskin_libburn_micrO
|
||||
#define Cdrskin_libburn_majoR 0
|
||||
#define Cdrskin_libburn_minoR 8
|
||||
#define Cdrskin_libburn_micrO 1
|
||||
#define Cdrskin_libburn_minoR 7
|
||||
#define Cdrskin_libburn_micrO 9
|
||||
#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
|
||||
from lra and size.
|
||||
*/;
|
||||
ret= burn_read_data(drive, (off_t) (lra - 1) * (off_t) 2048, buf,
|
||||
2 * 2048, &buf_count, 2 | 4);
|
||||
ret= burn_read_data(drive, (off_t) lra * (off_t) 2048, buf, 2 * 2048,
|
||||
&buf_count, 2 | 4);
|
||||
if(ret <= 0) {
|
||||
lra-= 2;
|
||||
size-= 2;
|
||||
|
@ -62,7 +62,7 @@ via SCSI, PATA (aka IDE, ATA), USB, or SATA.
|
||||
GPL software included:<BR>
|
||||
</H2>
|
||||
<DL>
|
||||
<DT>libburn-0.8.0</DT>
|
||||
<DT>libburn-0.7.8</DT>
|
||||
<DD>(founded by Derek Foreman and Ben Jansens,
|
||||
developed and maintained since August 2006 by
|
||||
Thomas Schmitt from team of libburnia-project.org)
|
||||
@ -194,8 +194,8 @@ Standalone ISO 9660 multi-session CD/DVD/BD tool
|
||||
<P>
|
||||
<DL>
|
||||
<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>
|
||||
(835 KB).
|
||||
<DD><A HREF="cdrskin-0.7.8.pl00.tar.gz">cdrskin-0.7.8.pl00.tar.gz</A>
|
||||
(840 KB).
|
||||
</DD>
|
||||
<DD>
|
||||
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>
|
||||
|
||||
<P>
|
||||
Enhancements towards previous stable version cdrskin-0.7.8.pl00:
|
||||
Enhancements towards previous stable version cdrskin-0.7.6.pl00:
|
||||
<UL>
|
||||
<LI>
|
||||
Now able to work with ahci driver of FreeBSD 8-STABLE
|
||||
Abort handling is more suitable for FreeBSD now.
|
||||
</LI>
|
||||
<!--
|
||||
<LI>none</LI>
|
||||
-->
|
||||
</UL>
|
||||
|
||||
Bug fixes towards cdrskin-0.7.8.pl00:
|
||||
Bug fixes towards cdrskin-0.7.6.pl00:
|
||||
<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>
|
||||
-->
|
||||
@ -266,8 +271,8 @@ Bug fixes towards cdrskin-0.7.8.pl00:
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><H3>Development snapshot, version 0.8.1 :</H3></DT>
|
||||
<DD>Enhancements towards current stable version 0.8.0.pl00:
|
||||
<DT><H3>Development snapshot, version 0.7.9 :</H3></DT>
|
||||
<DD>Enhancements towards current stable version 0.7.8.pl00:
|
||||
<UL>
|
||||
<LI>none yet</LI>
|
||||
<!--
|
||||
@ -276,7 +281,7 @@ Bug fixes towards cdrskin-0.7.8.pl00:
|
||||
</UL>
|
||||
</DD>
|
||||
|
||||
<DD>Bug fixes towards cdrskin-0.8.0.pl00:
|
||||
<DD>Bug fixes towards cdrskin-0.7.6.pl00:
|
||||
<UL>
|
||||
<LI>none yet</LI>
|
||||
<!--
|
||||
@ -285,10 +290,10 @@ Bug fixes towards cdrskin-0.7.8.pl00:
|
||||
</DD>
|
||||
|
||||
<DD> </DD>
|
||||
<DD><A HREF="README_cdrskin_devel">README 0.8.1</A>
|
||||
<DD><A HREF="cdrskin__help_devel">cdrskin_0.8.1 --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.8.1)</A></DD>
|
||||
<DD><A HREF="README_cdrskin_devel">README 0.7.9</A>
|
||||
<DD><A HREF="cdrskin__help_devel">cdrskin_0.7.9 --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.7.9)</A></DD>
|
||||
<DD> </DD>
|
||||
<DT>Maintainers of cdrskin unstable packages please use SVN of
|
||||
<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> ):
|
||||
</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).
|
||||
</DD>
|
||||
|
||||
|
@ -1 +1 @@
|
||||
#define Cdrskin_timestamP "2010.04.09.100001"
|
||||
#define Cdrskin_timestamP "2010.03.10.120001"
|
||||
|
@ -8199,7 +8199,7 @@ Updated cdrskin tarball generator
|
||||
cdrskin/cdrskin.c
|
||||
Removed unused variable
|
||||
|
||||
10 Mar 2010 [3116]
|
||||
[]
|
||||
cdrskin/changelog.txt
|
||||
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: 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 -
|
||||
------------------------------------ cycle - cdrskin-0.7.9 -
|
||||
------------------------------------ cycle - cdrskin-0.7.9 -
|
||||
|
||||
|
||||
===============================================================================
|
||||
TODO
|
||||
===============================================================================
|
||||
|
||||
|
||||
- change all malloc() to calloc()
|
||||
|
||||
- find out from where libburn/crc.c stems. What algorithm is crc_32() ?
|
||||
@ -8348,8 +8246,13 @@ READ TRACK INFORMATION[#5]:
|
||||
|
||||
------------------------------ end of bugs ---------------------------------
|
||||
|
||||
- xorriso -as tar (Rocky wants me to begin with -x)
|
||||
|
||||
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
|
||||
|
||||
Provide DVD+R DL layer break setter
|
||||
|
@ -8,7 +8,7 @@ debug_opts="-O2"
|
||||
def_opts=
|
||||
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
|
||||
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
|
||||
# burn="libburn/libburn_libburn_la-"
|
||||
@ -47,15 +47,15 @@ do
|
||||
libdax_audioxtr_o=
|
||||
libdax_msgs_o="$burn"message.o
|
||||
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
|
||||
libvers="-DCdrskin_libburn_0_8_0"
|
||||
libvers="-DCdrskin_libburn_0_7_8"
|
||||
libdax_audioxtr_o="$burn"libdax_audioxtr.o
|
||||
libdax_msgs_o="$burn"libdax_msgs.o
|
||||
cleanup_src_or_obj="$burn"cleanup.o
|
||||
elif test "$i" = "-libburn_svn"
|
||||
then
|
||||
libvers="-DCdrskin_libburn_0_8_1"
|
||||
libvers="-DCdrskin_libburn_0_7_9"
|
||||
libdax_audioxtr_o="$burn"libdax_audioxtr.o
|
||||
libdax_msgs_o="$burn"libdax_msgs.o
|
||||
cleanup_src_or_obj="$burn"cleanup.o
|
||||
@ -109,7 +109,7 @@ do
|
||||
echo "Options:"
|
||||
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
|
||||
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 " -dvd_obs_64k 64 KB default size for DVD/BD writing."
|
||||
echo " -use_libcdio link with -lcdio because libburn uses it."
|
||||
|
19
configure.ac
19
configure.ac
@ -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])
|
||||
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.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 So LT_CURRENT, LT_REVISION and LT_AGE get set directly here.
|
||||
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 As said: Only copies. Original in libburn/libburn.h : burn_header_version_*
|
||||
BURN_MAJOR_VERSION=0
|
||||
BURN_MINOR_VERSION=8
|
||||
BURN_MICRO_VERSION=0
|
||||
BURN_MINOR_VERSION=7
|
||||
BURN_MICRO_VERSION=8
|
||||
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
||||
|
||||
AC_SUBST(BURN_MAJOR_VERSION)
|
||||
@ -117,15 +116,15 @@ AC_SUBST(BURN_VERSION)
|
||||
dnl Libtool versioning
|
||||
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
||||
dnl
|
||||
dnl ts B00409
|
||||
dnl This is the release version libburn-0.8.0
|
||||
dnl ts B00310
|
||||
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 LT_CURRENT++, LT_AGE++ has not yet happened.
|
||||
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
|
||||
dnl
|
||||
dnl SONAME = 49 - 45 = 4 . Linux library name = libburn.so.4.45.0
|
||||
LT_CURRENT=49
|
||||
LT_AGE=45
|
||||
dnl SONAME = 47 - 43 = 4 . Linux library name = libburn.so.4.43.0
|
||||
LT_CURRENT=47
|
||||
LT_AGE=43
|
||||
LT_REVISION=0
|
||||
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||
|
||||
@ -203,7 +202,7 @@ CFLAGS="$CFLAGS $LIBBURN_O_DIRECT_DEF"
|
||||
dnl ts A91116
|
||||
AC_ARG_ENABLE(dvd-obs-64k,
|
||||
[ --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
|
||||
LIBBURN_DVD_OBS_64K="-DLibburn_dvd_obs_default_64K"
|
||||
echo "enabled write size default 64 KB on DVD and BD"
|
||||
|
@ -2627,8 +2627,8 @@ void burn_version(int *major, int *minor, int *micro);
|
||||
|
||||
*/
|
||||
#define burn_header_version_major 0
|
||||
#define burn_header_version_minor 8
|
||||
#define burn_header_version_micro 0
|
||||
#define burn_header_version_minor 7
|
||||
#define burn_header_version_micro 8
|
||||
/** Note:
|
||||
Above version numbers are also recorded in configure.ac because libtool
|
||||
wants them as parameters at build time.
|
||||
|
@ -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)
|
||||
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);
|
||||
if (ret <= 0)
|
||||
return ret;
|
||||
|
@ -59,6 +59,5 @@ typedef struct burn_drive_enumeration_state *burn_drive_enumerator_t;
|
||||
#define BURN_OS_TRANSPORT_DRIVE_ELEMENTS \
|
||||
struct cam_device* cam; \
|
||||
int lock_fd; \
|
||||
int is_ahci; \
|
||||
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
@ -29,18 +30,6 @@
|
||||
#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 "drive.h"
|
||||
#include "sg.h"
|
||||
@ -446,7 +435,6 @@ static void enumerate_common(char *fname, int bus_no, int host_no,
|
||||
|
||||
out.cam = NULL;
|
||||
out.lock_fd = -1;
|
||||
out.is_ahci = 0;
|
||||
|
||||
out.start_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 */
|
||||
out.cam = NULL;
|
||||
out.lock_fd = -1;
|
||||
out.is_ahci = 0;
|
||||
|
||||
/* Adapter specific functions */
|
||||
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)
|
||||
{
|
||||
struct cam_device *cam;
|
||||
char path_string[80];
|
||||
|
||||
if (mmc_function_spy(d, "sg_grab") <= 0)
|
||||
return 0;
|
||||
@ -714,18 +700,6 @@ int sg_grab(struct burn_drive *d)
|
||||
if (sg_lock(d, 0) <= 0)
|
||||
return 0;
|
||||
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;
|
||||
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 done = 0, err, sense_len = 0, ret, ignore_error, no_retry = 0;
|
||||
int cam_pass_err_recover = 0;
|
||||
int done = 0, err, sense_len, ret;
|
||||
union ccb *ccb;
|
||||
char buf[161];
|
||||
static FILE *fp = NULL;
|
||||
@ -804,23 +777,6 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
|
||||
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;
|
||||
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 {
|
||||
memset(c->sense, 0, sizeof(c->sense));
|
||||
err = cam_send_ccb(d->cam, ccb);
|
||||
|
||||
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) {
|
||||
if (err == -1) {
|
||||
libdax_msgs_submit(libdax_messenger,
|
||||
d->global_index, 0x0002010c,
|
||||
LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH,
|
||||
@ -932,33 +822,20 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
|
||||
}
|
||||
/* 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 (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) {
|
||||
if (!c->retry) {
|
||||
c->error = 1;
|
||||
{ret = 1; goto ex;}
|
||||
}
|
||||
switch (scsi_error(d, c->sense, 0)) {
|
||||
case RETRY:
|
||||
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;
|
||||
case FAIL:
|
||||
done = 1;
|
||||
|
@ -553,7 +553,7 @@ int sg_release(struct burn_drive *d)
|
||||
*/
|
||||
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;
|
||||
driver_return_code_t i_status;
|
||||
unsigned int dxfer_len;
|
||||
@ -568,15 +568,15 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
|
||||
return 0;
|
||||
}
|
||||
p_cdio = (CdIo_t *) d->p_cdio;
|
||||
if (burn_sg_log_scsi & 1) {
|
||||
if (fp == NULL) {
|
||||
fp= fopen("/tmp/libburn_sg_command_log", "a");
|
||||
fprintf(fp,
|
||||
"\n-----------------------------------------\n");
|
||||
}
|
||||
}
|
||||
if (burn_sg_log_scsi & 3)
|
||||
scsi_log_cmd(c,fp,0);
|
||||
if (burn_sg_log_scsi & 1) {
|
||||
if (fp == NULL) {
|
||||
fp= fopen("/tmp/libburn_sg_command_log", "a");
|
||||
fprintf(fp,
|
||||
"\n-----------------------------------------\n");
|
||||
}
|
||||
}
|
||||
if (burn_sg_log_scsi & 3)
|
||||
scsi_log_cmd(c,fp,0);
|
||||
|
||||
memcpy(cdb.field, c->opcode, c->oplen);
|
||||
if (c->dir == TO_DRIVE) {
|
||||
@ -628,35 +628,24 @@ int sg_issue_command(struct burn_drive *d, struct command *c)
|
||||
}
|
||||
*/
|
||||
|
||||
if ((!sense_valid) ||
|
||||
((c->sense[2] & 0x0f) == 0 && c->sense[12] == 0 &&
|
||||
c->sense[13] == 0)) {
|
||||
if (!sense_valid) {
|
||||
memset(c->sense, 0, sizeof(c->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[12] = 0x04;
|
||||
no_retry = 1;
|
||||
}
|
||||
} else
|
||||
c->sense[2] &= 15;
|
||||
|
||||
if (i_status != 0 ||
|
||||
(c->sense[2] || c->sense[12] || c->sense[13])) {
|
||||
if (no_retry || !c->retry) {
|
||||
if (!c->retry) {
|
||||
c->error = 1;
|
||||
goto ex;
|
||||
}
|
||||
switch (scsi_error(d, c->sense, 18)) {
|
||||
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;
|
||||
case FAIL:
|
||||
c->error = 1;
|
||||
|
@ -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)) {
|
||||
case RETRY:
|
||||
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;
|
||||
case FAIL:
|
||||
done = 1;
|
||||
|
@ -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 flag)
|
||||
{
|
||||
int i, ret = 1, key = 0, asc = 0, ascq = 0, clueless_start = 0;
|
||||
static int clueless_timeout = 5 * 10;
|
||||
int i, ret = 1, key = 0, asc = 0, ascq = 0;
|
||||
char msg[320];
|
||||
unsigned char sense[14];
|
||||
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 */
|
||||
goto slumber;
|
||||
|
||||
handle_error:;
|
||||
/* ts A90213 */
|
||||
sprintf(msg,
|
||||
"Asynchronous SCSI error on %s: ", cmd_text);
|
||||
@ -159,23 +157,7 @@ handle_error:;
|
||||
msg, 0, 0);
|
||||
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;
|
||||
}
|
||||
} else if (ascq == 0x02 || ascq == 0x03)
|
||||
goto handle_error;
|
||||
|
||||
}
|
||||
slumber:;
|
||||
usleep(100000);
|
||||
}
|
||||
@ -979,13 +961,13 @@ enum response scsi_error_msg(struct burn_drive *d, unsigned char *sense,
|
||||
*key= *asc= *ascq= -1;
|
||||
|
||||
if (senselen<=0 || senselen>2)
|
||||
*key = sense[2] & 0x0f;
|
||||
*key = sense[2];
|
||||
if (senselen<=0 || senselen>12)
|
||||
*asc = sense[12];
|
||||
if (senselen<=0 || senselen>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);
|
||||
|
||||
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");
|
||||
return RETRY;
|
||||
case 0x04:
|
||||
if (*ascq == 1)
|
||||
sprintf(msg,
|
||||
sprintf(msg,
|
||||
"Logical unit is in the process of becoming ready");
|
||||
else
|
||||
sprintf(msg, "Logical unit is not ready");
|
||||
return RETRY;
|
||||
case 0x08:
|
||||
if (*key != 4)
|
||||
|
@ -732,13 +732,6 @@ int main(int argc, char **argv)
|
||||
{
|
||||
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);
|
||||
if (ret)
|
||||
exit(ret);
|
||||
|
Reference in New Issue
Block a user