Compare commits
4 Commits
1.0.4
...
ZeroNineZe
Author | SHA1 | Date | |
---|---|---|---|
cc5d1d2eee | |||
88a63dac48 | |||
a97566b9e8 | |||
95fdfaa079 |
17
ChangeLog
17
ChangeLog
@@ -1,22 +1,7 @@
|
||||
SVN trunk (to become libburn-1.0.4.pl00.tar.gz)
|
||||
SVN trunk (to become libburn-0.9.2.pl00.tar.gz)
|
||||
===============================================================================
|
||||
- no novelties yet
|
||||
|
||||
libburn-1.0.4.pl00.tar.gz Thu Mar 3 2011
|
||||
===============================================================================
|
||||
* Bug fix: Read-only file descriptors were classified as write-only pseudo
|
||||
drives
|
||||
|
||||
libburn-1.0.2.pl00.tar.gz Wed Feb 23 2011
|
||||
===============================================================================
|
||||
* Removed compilation obstacles on Solaris 9.
|
||||
* Improved recognition of non-seekable stdio pseudo-drives.
|
||||
|
||||
libburn-1.0.0.pl00.tar.gz Sun Jan 16 2011
|
||||
===============================================================================
|
||||
* Allowed umask to create stdio-drive files with rw-permissions for all
|
||||
* cdrskin now refuses to burn if the foreseeable size exceeds media capacity
|
||||
|
||||
libburn-0.9.0.pl00.tar.gz Wed Dec 08 2010
|
||||
===============================================================================
|
||||
* Regression fix: SCSI reply data logging was disabled in release 0.8.6
|
||||
|
@@ -117,9 +117,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 - B10310
|
||||
## cdrskin construction site - ts A60816 - B01208
|
||||
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
|
||||
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_1_0_4
|
||||
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_9_0
|
||||
|
||||
# cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
|
||||
# ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking
|
||||
|
44
README
44
README
@@ -6,12 +6,12 @@ This all is under GPL.
|
||||
------------------------------------------------------------------------------
|
||||
libburn-project.org
|
||||
By Mario Danic <mario.danic@gmail.com> and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Copyright (C) 2006-2011 Mario Danic, Thomas Schmitt
|
||||
Copyright (C) 2006-2010 Mario Danic, Thomas Schmitt
|
||||
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-1.0.4.pl00.tar.gz
|
||||
http://files.libburnia-project.org/releases/libburn-0.9.0.pl00.tar.gz
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
@@ -19,10 +19,10 @@ Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
|
||||
|
||||
From tarball
|
||||
|
||||
Obtain libburn-1.0.4.pl00.tar.gz, take it to a directory of your choice and do:
|
||||
Obtain libburn-0.9.0.pl00.tar.gz, take it to a directory of your choice and do:
|
||||
|
||||
tar xzf libburn-1.0.4.pl00.tar.gz
|
||||
cd libburn-1.0.4
|
||||
tar xzf libburn-0.9.0.pl00.tar.gz
|
||||
cd libburn-0.9.0
|
||||
./configure --prefix=/usr
|
||||
make
|
||||
|
||||
@@ -573,39 +573,7 @@ Project history as far as known to me:
|
||||
- Tue Oct 26 2010 Release 0.6.4.pl00 of libisoburn and xorriso makes use of
|
||||
the new libisofs capabilities.
|
||||
|
||||
- Wed Dec 08 2010 libburn-0.9.0 fixes a regression with SCSI command logging.
|
||||
|
||||
- Fri Dec 10 2010 Version 0.6.40 of libisofs makes the prediction of the
|
||||
emerging image size less expensive and is able to make images bootable
|
||||
for SUN SPARC systems.
|
||||
|
||||
- Sun Dec 12 2010 Release 0.6.6.pl00 of libisoburn and xorriso can read ISO
|
||||
images which were copied to a different start address than they were prepared
|
||||
for.
|
||||
|
||||
- Mon Jan 17 2011 we go for release 1.0.0. This does not indicate a
|
||||
technological overhaul but shall emphasize the maturity of the software.
|
||||
libisofs-1.0.0 fixes a bug about the length of ECMA-119 directory names and
|
||||
is ready to allow untranslated ECMA-119 names (violating the specs).
|
||||
libburn-1.0.0.pl00 allows umask to create stdio-drive files with
|
||||
rw-permissions for all. cdrskin now refuses to burn if the foreseeable size
|
||||
exceeds media capacity
|
||||
libisoburn-1.0.0.pl00 allows to create an ISO 9660:1999 directory tree,
|
||||
improved the emulation fidelity of command -as mkisofs, lowered the default
|
||||
abort threshold for xorriso batch mode, and increased that threshold for
|
||||
xorriso dialog mode.
|
||||
|
||||
- Wed Feb 23 2011 release 1.0.2:
|
||||
libisofs fixes several bugs and introduces the capability to copy files
|
||||
inside the ISO filesystem.
|
||||
libburn removed a compilation obstacle on Solaris 9 and improved recognition
|
||||
of stdio pseudo-drives.
|
||||
libisoburn and xorriso fix bugs and make use of the new libisofs capability.
|
||||
xorriso improves its mkisofs emulation.
|
||||
|
||||
- Thu Mar 10 2011 release 1.0.4:
|
||||
Several bugs were fixed in the libraries and in the mkisofs emulation of
|
||||
xorriso. This emulation xorrisofs has now an own man page and info document.
|
||||
- Wed Dec 08 libburn-0.9.0 fixes a regression with SCSI command logging.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
@@ -4,9 +4,9 @@
|
||||
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-1.0.4.pl00.tar.gz
|
||||
http://scdbackup.sourceforge.net/cdrskin-0.9.0.pl00.tar.gz
|
||||
|
||||
Copyright (C) 2006-2011 Thomas Schmitt, provided under GPL version 2 or later.
|
||||
Copyright (C) 2006-2010 Thomas Schmitt, provided under GPL version 2 or later.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -26,10 +26,10 @@ By using this software you agree to the disclaimer at the end of this text
|
||||
|
||||
Compilation, First Glimpse, Installation
|
||||
|
||||
Obtain cdrskin-1.0.4.pl00.tar.gz, take it to a directory of your choice and do:
|
||||
Obtain cdrskin-0.9.0.pl00.tar.gz, take it to a directory of your choice and do:
|
||||
|
||||
tar xzf cdrskin-1.0.4.pl00.tar.gz
|
||||
cd cdrskin-1.0.4
|
||||
tar xzf cdrskin-0.9.0.pl00.tar.gz
|
||||
cd cdrskin-0.9.0
|
||||
|
||||
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="1.0.4"
|
||||
skin_release="0.9.0"
|
||||
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="1.0.5"
|
||||
skin_release="0.9.1"
|
||||
patch_level=""
|
||||
skin_rev="$skin_release""$patch_level"
|
||||
|
@@ -2,7 +2,7 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH CDRSKIN 1 "Jan 09, 2011"
|
||||
.TH CDRSKIN 1 "Aug 21, 2010"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@@ -554,9 +554,6 @@ which appear to be in the desired blank or format state already.
|
||||
This option enables a burn run with option -dummy even if libburn believes
|
||||
that drive and media will not simulate the write mode but will write for real.
|
||||
.br
|
||||
It enables a burn run where cdrskin expects to exceed the available media
|
||||
capacity.
|
||||
.br
|
||||
.B Caution:
|
||||
Use this only when in urgent need.
|
||||
.TP
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
/*
|
||||
cdrskin.c , Copyright 2006-2011 Thomas Schmitt <scdbackup@gmx.net>
|
||||
cdrskin.c , Copyright 2006-2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
|
||||
A cdrecord compatible command line interface for libburn.
|
||||
@@ -88,20 +88,20 @@ or
|
||||
|
||||
/** The official program version */
|
||||
#ifndef Cdrskin_prog_versioN
|
||||
#define Cdrskin_prog_versioN "1.0.4"
|
||||
#define Cdrskin_prog_versioN "0.9.0"
|
||||
#endif
|
||||
|
||||
/** The official libburn interface revision to use.
|
||||
(May get changed further below)
|
||||
*/
|
||||
#ifndef Cdrskin_libburn_majoR
|
||||
#define Cdrskin_libburn_majoR 1
|
||||
#define Cdrskin_libburn_majoR 0
|
||||
#endif
|
||||
#ifndef Cdrskin_libburn_minoR
|
||||
#define Cdrskin_libburn_minoR 0
|
||||
#define Cdrskin_libburn_minoR 9
|
||||
#endif
|
||||
#ifndef Cdrskin_libburn_micrO
|
||||
#define Cdrskin_libburn_micrO 4
|
||||
#define Cdrskin_libburn_micrO 0
|
||||
#endif
|
||||
|
||||
|
||||
@@ -135,13 +135,13 @@ or
|
||||
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
||||
|
||||
|
||||
#ifdef Cdrskin_libburn_1_0_4
|
||||
#define Cdrskin_libburn_versioN "1.0.4"
|
||||
#ifdef Cdrskin_libburn_0_9_0
|
||||
#define Cdrskin_libburn_versioN "0.9.0"
|
||||
#define Cdrskin_libburn_from_pykix_svN 1
|
||||
#endif /* Cdrskin_libburn_1_0_4 */
|
||||
#endif /* Cdrskin_libburn_0_9_0 */
|
||||
|
||||
#ifdef Cdrskin_libburn_1_0_5
|
||||
#define Cdrskin_libburn_versioN "1.0.5"
|
||||
#ifdef Cdrskin_libburn_0_9_1
|
||||
#define Cdrskin_libburn_versioN "0.9.1"
|
||||
#define Cdrskin_libburn_from_pykix_svN 1
|
||||
|
||||
/* Place novelty switch macros here.
|
||||
@@ -153,29 +153,29 @@ or
|
||||
*/
|
||||
|
||||
|
||||
#endif /* Cdrskin_libburn_1_0_5 */
|
||||
#endif /* Cdrskin_libburn_0_9_1 */
|
||||
|
||||
#ifndef Cdrskin_libburn_versioN
|
||||
#define Cdrskin_libburn_1_0_5
|
||||
#define Cdrskin_libburn_versioN "1.0.5"
|
||||
#define Cdrskin_libburn_0_9_0
|
||||
#define Cdrskin_libburn_versioN "0.9.0"
|
||||
#define Cdrskin_libburn_from_pykix_svN 1
|
||||
#endif
|
||||
|
||||
#ifdef Cdrskin_libburn_1_0_4
|
||||
#ifdef Cdrskin_libburn_0_9_0
|
||||
#undef Cdrskin_libburn_majoR
|
||||
#undef Cdrskin_libburn_minoR
|
||||
#undef Cdrskin_libburn_micrO
|
||||
#define Cdrskin_libburn_majoR 1
|
||||
#define Cdrskin_libburn_minoR 0
|
||||
#define Cdrskin_libburn_micrO 4
|
||||
#define Cdrskin_libburn_majoR 0
|
||||
#define Cdrskin_libburn_minoR 9
|
||||
#define Cdrskin_libburn_micrO 0
|
||||
#endif
|
||||
#ifdef Cdrskin_libburn_1_0_5
|
||||
#ifdef Cdrskin_libburn_0_9_1
|
||||
#undef Cdrskin_libburn_majoR
|
||||
#undef Cdrskin_libburn_minoR
|
||||
#undef Cdrskin_libburn_micrO
|
||||
#define Cdrskin_libburn_majoR 1
|
||||
#define Cdrskin_libburn_minoR 0
|
||||
#define Cdrskin_libburn_micrO 5
|
||||
#define Cdrskin_libburn_majoR 0
|
||||
#define Cdrskin_libburn_minoR 9
|
||||
#define Cdrskin_libburn_micrO 1
|
||||
#endif
|
||||
|
||||
|
||||
@@ -3171,7 +3171,7 @@ set_severities:;
|
||||
int major, minor, micro;
|
||||
|
||||
printf(
|
||||
"Cdrecord 2.01-Emulation Copyright (C) 2006-2011, see libburnia-project.org\n");
|
||||
"Cdrecord 2.01-Emulation Copyright (C) 2006-2010, see libburnia-project.org\n");
|
||||
if(o->fallback_program[0]) {
|
||||
char *hargv[2];
|
||||
|
||||
@@ -7081,10 +7081,6 @@ int Cdrskin_burn(struct CdrskiN *skin, int flag)
|
||||
double put_counter, get_counter, empty_counter, full_counter;
|
||||
int total_min_fill, fifo_percent;
|
||||
#endif
|
||||
#ifdef Cdrskin_libburn_has_get_spacE
|
||||
off_t free_space;
|
||||
char msg[80];
|
||||
#endif
|
||||
|
||||
if(skin->tell_media_space)
|
||||
doing= "estimating";
|
||||
@@ -7328,12 +7324,17 @@ burn_failed:;
|
||||
/* write capacity estimation and return without actual burning */
|
||||
|
||||
#ifdef Cdrskin_libburn_has_get_spacE
|
||||
free_space= burn_disc_available_space(drive,o);
|
||||
sprintf(msg,"%d\n",(int) (free_space/(off_t) 2048));
|
||||
if(skin->preskin->result_fd>=0) {
|
||||
write(skin->preskin->result_fd,msg,strlen(msg));
|
||||
} else
|
||||
printf("%s",msg);
|
||||
{
|
||||
off_t free_space;
|
||||
char msg[80];
|
||||
|
||||
free_space= burn_disc_available_space(drive,o);
|
||||
sprintf(msg,"%d\n",(int) (free_space/(off_t) 2048));
|
||||
if(skin->preskin->result_fd>=0) {
|
||||
write(skin->preskin->result_fd,msg,strlen(msg));
|
||||
} else
|
||||
printf("%s",msg);
|
||||
}
|
||||
#endif /* Cdrskin_libburn_has_get_spacE */
|
||||
|
||||
if(skin->track_counter>0)
|
||||
@@ -7343,23 +7344,6 @@ burn_failed:;
|
||||
{ret= 1; goto ex;}
|
||||
}
|
||||
|
||||
|
||||
#ifdef Cdrskin_libburn_has_get_spacE
|
||||
if(skin->fixed_size > 0 && !skin->force_is_set) {
|
||||
free_space= burn_disc_available_space(drive,o);
|
||||
if(skin->fixed_size > free_space && free_space > 0) {
|
||||
fprintf(stderr,
|
||||
"cdrskin: FATAL : predicted session size %lus does not fit on media (%lus)\n",
|
||||
(unsigned long) ((skin->fixed_size + 2047.0) / 2048.0),
|
||||
(unsigned long) ((free_space + 2047) / 2048));
|
||||
ClN(fprintf(stderr,
|
||||
"cdrskin: HINT : This test may be disabled by option -force\n");)
|
||||
{ret= 0; goto ex;}
|
||||
}
|
||||
}
|
||||
#endif /* Cdrskin_libburn_has_get_spacE */
|
||||
|
||||
|
||||
Cdrskin_adjust_speed(skin,0);
|
||||
|
||||
#ifndef Cdrskin_extra_leaN
|
||||
|
@@ -65,7 +65,7 @@ connected via SCSI, PATA (aka IDE, ATA), USB, or SATA.
|
||||
GPL software included:<BR>
|
||||
</H2>
|
||||
<DL>
|
||||
<DT>libburn-1.0.4</DT>
|
||||
<DT>libburn-0.9.0</DT>
|
||||
<DD>(founded by Derek Foreman and Ben Jansens,
|
||||
developed and maintained since August 2006 by
|
||||
Thomas Schmitt from team of libburnia-project.org)
|
||||
@@ -200,7 +200,7 @@ Standalone ISO 9660 multi-session CD/DVD/BD tool
|
||||
<P>
|
||||
<DL>
|
||||
<DT>Download as source code (see README):</DT>
|
||||
<DD><A HREF="cdrskin-1.0.4.pl00.tar.gz">cdrskin-1.0.4.pl00.tar.gz</A>
|
||||
<DD><A HREF="cdrskin-0.9.0.pl00.tar.gz">cdrskin-0.9.0.pl00.tar.gz</A>
|
||||
(870 KB).
|
||||
</DD>
|
||||
<DD>
|
||||
@@ -250,8 +250,9 @@ cdrskin_0.4.2.pl00-x86-suse9_0-static.tar.gz</A>, (310 KB), -static compiled,
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
Enhancements towards previous stable version cdrskin-1.0.2.pl00:
|
||||
Enhancements towards previous stable version cdrskin-0.8.8.pl00:
|
||||
<UL>
|
||||
<LI>
|
||||
<LI>none</LI>
|
||||
</LI>
|
||||
<!--
|
||||
@@ -259,9 +260,9 @@ Enhancements towards previous stable version cdrskin-1.0.2.pl00:
|
||||
-->
|
||||
</UL>
|
||||
|
||||
Bug fixes towards cdrskin-1.0.2.pl00:
|
||||
Bug fixes towards cdrskin-0.8.8.pl00:
|
||||
<UL>
|
||||
<LI>Read-only file descriptors were classified as write-only pseudo drives</LI>
|
||||
<LI>SCSI reply data logging was disabled by mistake since release 0.8.6</LI>
|
||||
<!--
|
||||
<LI>none</LI>
|
||||
-->
|
||||
@@ -271,8 +272,8 @@ Bug fixes towards cdrskin-1.0.2.pl00:
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><H3>Development snapshot, version 1.0.5 :</H3></DT>
|
||||
<DD>Enhancements towards current stable version 1.0.4.pl00:
|
||||
<DT><H3>Development snapshot, version 0.9.1 :</H3></DT>
|
||||
<DD>Enhancements towards current stable version 0.9.0.pl00:
|
||||
<UL>
|
||||
<LI>none yet</LI>
|
||||
<!--
|
||||
@@ -282,7 +283,7 @@ Bug fixes towards cdrskin-1.0.2.pl00:
|
||||
</UL>
|
||||
</DD>
|
||||
|
||||
<DD>Bug fixes towards cdrskin-1.0.4.pl00:
|
||||
<DD>Bug fixes towards cdrskin-0.8.8.pl00:
|
||||
<UL>
|
||||
<LI>none yet</LI>
|
||||
<!--
|
||||
@@ -292,10 +293,10 @@ Bug fixes towards cdrskin-1.0.2.pl00:
|
||||
</DD>
|
||||
|
||||
<DD> </DD>
|
||||
<DD><A HREF="README_cdrskin_devel">README 1.0.5</A>
|
||||
<DD><A HREF="cdrskin__help_devel">cdrskin-1.0.5 --help</A></DD>
|
||||
<DD><A HREF="cdrskin_help_devel">cdrskin-1.0.5 -help</A></DD>
|
||||
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 1.0.5)</A></DD>
|
||||
<DD><A HREF="README_cdrskin_devel">README 0.9.1</A>
|
||||
<DD><A HREF="cdrskin__help_devel">cdrskin_0.9.1 --help</A></DD>
|
||||
<DD><A HREF="cdrskin_help_devel">cdrskin_0.9.1 -help</A></DD>
|
||||
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.9.1)</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>
|
||||
@@ -315,7 +316,7 @@ admins with full system souvereignty.</DT>
|
||||
<A HREF="README_cdrskin_devel">upcoming README</A> ):
|
||||
</DD>
|
||||
<DD>
|
||||
<A HREF="cdrskin-1.0.5.tar.gz">cdrskin-1.0.5.tar.gz</A>
|
||||
<A HREF="cdrskin-0.9.1.tar.gz">cdrskin-0.9.1.tar.gz</A>
|
||||
(870 KB).
|
||||
</DD>
|
||||
|
||||
|
@@ -1 +1 @@
|
||||
#define Cdrskin_timestamP "2011.03.10.080001"
|
||||
#define Cdrskin_timestamP "2010.12.08.133001"
|
||||
|
@@ -8980,7 +8980,7 @@ Made number transition to 0.9.0
|
||||
+ cdrskin/add_ts_changes_to_libburn_0_9_1
|
||||
Updated cdrskin tarball generator
|
||||
|
||||
08 Dec 2010 [3505]
|
||||
08 Dec 2010 []
|
||||
ChangeLog
|
||||
cdrskin/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
@@ -8989,267 +8989,10 @@ Documented changes and release timestamp
|
||||
Regression fix: SCSI reply data logging was disabled in release 0.8.6
|
||||
|
||||
|
||||
2010.12.08.131934 [3506]
|
||||
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.9.1
|
||||
------------------------------------ cycle - cdrskin-0.9.1 -
|
||||
------------------------------------ cycle - cdrskin-0.9.1 -
|
||||
------------------------------------ cycle - cdrskin-0.9.1 -
|
||||
|
||||
08 Dec 2010 [3507]
|
||||
- cdrskin/add_ts_changes_to_libburn_0_8_8
|
||||
- cdrskin/add_ts_changes_to_lisburn_0_8_9
|
||||
+ cdrskin/add_ts_changes_to_libburn_0_9_0
|
||||
+ cdrskin/add_ts_changes_to_libburn_0_9_1
|
||||
Updated cdrskin tarball generator
|
||||
|
||||
08 Dec 2010 [3508]
|
||||
ChangeLog
|
||||
cdrskin/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
08 Dec 2010 [3509]
|
||||
svn move -m libburn release 0.9.0 is ready
|
||||
http://svn.libburnia-project.org/libburn/branches/ZeroNineZero
|
||||
http://svn.libburnia-project.org/libburn/tags/ZeroNineZero
|
||||
|
||||
------------------------------------ cycle - cdrskin-0.9.1 - 2010.12.08.154833
|
||||
|
||||
2010.12.13.075956 [3522]
|
||||
configure.ac
|
||||
Prepending ./configure generated options to CFLAGS rather than appending them
|
||||
|
||||
23 Dec 2010 [3528]
|
||||
doc/comments
|
||||
Updated API introduction
|
||||
|
||||
2010.12.28.071904 [3537]
|
||||
libburn/write.c
|
||||
Allowed umask to create stdio-drive files with rw-permissions for all
|
||||
|
||||
2011.01.03.195125 [3542]
|
||||
libburn/write.c
|
||||
libburn/sector.c
|
||||
libburn/structure.h
|
||||
libburn/structure.c
|
||||
Allowed stdio tracks of known size to end in TAO mode on premature EOF
|
||||
|
||||
2011.01.09.135915 [3546]
|
||||
cdrskin/cdrskin.c
|
||||
cdrskin/cdrskin.1
|
||||
Refusing to burn if foreseeable size exceeds media capacity
|
||||
|
||||
------------------------------------ cycle - cdrskin-0.9.1 - 2011.01.09.140240
|
||||
* Allowed umask to create stdio-drive files with rw-permissions for all
|
||||
* cdrskin now refuses to burn if the foreseeable size exceeds media capacity
|
||||
|
||||
|
||||
09 Jan 2011 [3547]
|
||||
cdrskin/cdrskin_eng.html
|
||||
ChangeLog
|
||||
Updated change log and web page
|
||||
|
||||
16 Jan 2011 [3548]
|
||||
svn copy -m "Branching for libburn release 1.0.0" \
|
||||
http://svn.libburnia-project.org/libburn/trunk \
|
||||
http://svn.libburnia-project.org/libburn/1.0.0"
|
||||
|
||||
2011.01.16.123001 [3549] [3550]
|
||||
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 1.0.0
|
||||
|
||||
16 Jan 2011 [3551]
|
||||
- cdrskin/add_ts_changes_to_libburn_0_9_0
|
||||
- cdrskin/add_ts_changes_to_libburn_0_9_1
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_0
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_1
|
||||
Updated cdrskin tarball generator
|
||||
|
||||
16 Jan 2011 [3552]
|
||||
ChangeLog
|
||||
cdrskin/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------ release - cdrskin-1.0.0.pl00 - 2011.01.16.123001
|
||||
* Allowed umask to create stdio-drive files with rw-permissions for all
|
||||
* cdrskin now refuses to burn if the foreseeable size exceeds media capacity
|
||||
|
||||
|
||||
2011.01.16.140456 [3553]
|
||||
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 1.0.1
|
||||
|
||||
16 Jan 2011 [3554]
|
||||
- cdrskin/add_ts_changes_to_libburn_0_9_0
|
||||
- cdrskin/add_ts_changes_to_libburn_0_9_1
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_0
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_1
|
||||
Updated cdrskin tarball generator
|
||||
|
||||
16 Jan 2011 [3555]
|
||||
ChangeLog
|
||||
cdrskin/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
16 Jan 2011 [3556]
|
||||
svn move -m "libburn release 1.0.0 is ready" \
|
||||
http://svn.libburnia-project.org/libburn/branches/1.0.0 \
|
||||
http://svn.libburnia-project.org/libburn/tags/1.0.0
|
||||
|
||||
|
||||
------------------------------------ cycle - cdrskin-1.0.1 - 2011.01.16.152923
|
||||
|
||||
|
||||
2011.01.18.162859 [3570]
|
||||
libburn/file.c
|
||||
Using usleep() instead of nanosleep() which is not available on Solaris 9
|
||||
|
||||
2011.02.09.114311 [3586]
|
||||
libburn/write.c
|
||||
libburn/drive.c
|
||||
Forced role 3 on drives which stem from open file descriptors without O_RDWR
|
||||
|
||||
2011.02.14.085951 [3589]
|
||||
libburn/drive.c
|
||||
Reacted on compiler warnings about uninitialized variables
|
||||
|
||||
2011.02.18.165542 [3592]
|
||||
libburn/drive.c
|
||||
libburn/sector.c
|
||||
DEBUG message with burn_drive_cancel, FAILURE with premature end-of-input
|
||||
|
||||
23 Feb 2011 [3604]
|
||||
svn copy -m Branching for libburn release 1.0.2
|
||||
http://svn.libburnia-project.org/libburn/trunk
|
||||
http://svn.libburnia-project.org/libburn/branches/1.0.2
|
||||
|
||||
2011.02.23.130001 [3605]
|
||||
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 1.0.2
|
||||
|
||||
23 Feb 2011 [3606]
|
||||
- cdrskin/add_ts_changes_to_libburn_1_0_0
|
||||
- cdrskin/add_ts_changes_to_libburn_1_0_1
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_2
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_3
|
||||
Updated cdrskin tarball generator
|
||||
|
||||
23 Feb 2011 [3607]
|
||||
ChangeLog
|
||||
cdrskin/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------ release - cdrskin-1.0.2.pl00 - 2011.02.23.130001
|
||||
* Removed compilation obstacles on Solaris 9.
|
||||
* Improved recognition of non-seekable stdio pseudo-drives.
|
||||
|
||||
|
||||
2011.02.23.193502 [3611]
|
||||
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 1.0.3
|
||||
|
||||
23 Feb 2011 [3612]
|
||||
- cdrskin/add_ts_changes_to_libburn_1_0_0
|
||||
- cdrskin/add_ts_changes_to_libburn_1_0_1
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_2
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_3
|
||||
Updated cdrskin tarball generator
|
||||
|
||||
23 Feb 2011 [3613]
|
||||
ChangeLog
|
||||
cdrskin/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------------ cycle - cdrskin-1.0.3 - 2011.02.23.193502
|
||||
|
||||
|
||||
23 Feb 2011 [3614]
|
||||
svn move -m libburn release 1.0.2 is ready
|
||||
http://svn.libburnia-project.org/libburn/branches/1.0.2
|
||||
http://svn.libburnia-project.org/libburn/tags/1.0.2
|
||||
|
||||
2011.02.23.195650 [3615]
|
||||
libburn/libdax_msgs.h
|
||||
Registered new error code
|
||||
|
||||
2011.02.24.191718 [3619]
|
||||
libburn/async.c
|
||||
Corrected a flaw found by George Danchev with cpp
|
||||
|
||||
2011.03.01.144625 [3625]
|
||||
libburn/drive.c
|
||||
Bug fix: Read-only file descriptors were classified as write-only pseudo drives
|
||||
|
||||
svn copy -m Branching for libburn release 1.0.4
|
||||
http://svn.libburnia-project.org/libburn/trunk
|
||||
http://svn.libburnia-project.org/libburn/branches/1.0.4
|
||||
|
||||
2011.03.10.080001 [3651]
|
||||
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 1.0.4
|
||||
|
||||
10 Mar 2011 [3652]
|
||||
- cdrskin/add_ts_changes_to_libburn_1_0_2
|
||||
- cdrskin/add_ts_changes_to_libburn_1_0_3
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_4
|
||||
+ cdrskin/add_ts_changes_to_libburn_1_0_5
|
||||
Updated cdrskin tarball generator
|
||||
|
||||
[]
|
||||
ChangeLog
|
||||
cdrskin/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------ release - cdrskin-1.0.4.pl00 - 2011.03.10.080001
|
||||
* Bug fix: Read-only file descriptors were classified as write-only pseudo drives
|
||||
|
||||
------------------------------------ cycle - cdrskin-1.0.5 -
|
||||
------------------------------------ cycle - cdrskin-1.0.5 -
|
||||
|
||||
|
||||
|
||||
@@ -9262,17 +9005,18 @@ Important: When adding a public API function then add its name to file
|
||||
TODO
|
||||
===============================================================================
|
||||
|
||||
Introduce drive role 4= stdio-drive, random access, read-only
|
||||
|
||||
|
||||
Let DVD-R DAO allocate exact track sizes (not divisible by 16 blocks)
|
||||
|
||||
|
||||
Expose BD type from bytes 8+4 to 10+4 out of READ BD STRUCTURE form 0.
|
||||
cdrskin -tao starts with known size that is larger than media capacity
|
||||
Track 01: 4486 of 4488 MB written (fifo 100%) [buf<75> 92%]<5D><> 8.1x.
|
||||
Track 01: 4487 of 4488 MB written (fifo 100%) [buf<75> 92%]<5D><> 8.1x.
|
||||
cdrskin: FATAL : Exceeding range of permissible write addresses
|
||||
(2297888 >= 2297888)
|
||||
Track 01: 4488 of 4488 MB written (fifo 100%) [buf<75> 92%]<5D><> 7.4x.
|
||||
|
||||
|
||||
Better motivation of burn_set_signal_handling() in libburn.h.
|
||||
|
||||
|
||||
-------------------------------- Solaris -----------------------------------
|
||||
|
||||
Locking of device files.
|
||||
@@ -9294,6 +9038,11 @@ pntadm -A 10.0.0.24 -f MANUAL -i 010008544255E7 -m 10.0.0.0 -y 10.0.0.0
|
||||
|
||||
--------------------------------- bugs -------------------------------------
|
||||
|
||||
- recognise sense data format 0x72 rather than 0x70
|
||||
Key=[1], ASC=[2], ASCQ=[3]
|
||||
(check libcdio too)
|
||||
|
||||
|
||||
- handle HD DVD profiles 0x50 "HD DVD-ROM", 0x51 "HD DVD-R", 0x52 "HD DVD-RAM"
|
||||
as readable.
|
||||
|
||||
|
@@ -1,14 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
# compile_cdrskin.sh
|
||||
# Copyright 2005 - 2011 Thomas Schmitt, scdbackup@gmx.net, GPL
|
||||
# Copyright 2005 - 2010 Thomas Schmitt, scdbackup@gmx.net, GPL
|
||||
# to be executed within ./libburn-* resp ./cdrskin-*
|
||||
|
||||
debug_opts="-O2"
|
||||
def_opts=
|
||||
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
|
||||
fifo_opts=""
|
||||
libvers="-DCdrskin_libburn_1_0_4"
|
||||
libvers="-DCdrskin_libburn_0_9_0"
|
||||
|
||||
# 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_1_0_4"
|
||||
elif test "$i" = "-libburn_0_9_0"
|
||||
then
|
||||
libvers="-DCdrskin_libburn_1_0_4"
|
||||
libvers="-DCdrskin_libburn_0_9_0"
|
||||
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_1_0_5"
|
||||
libvers="-DCdrskin_libburn_0_9_1"
|
||||
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_1.0.4 set macro to match libburn-1.0.4"
|
||||
echo " -libburn_0_9_0 set macro to match libburn-0.9.0"
|
||||
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."
|
||||
|
39
configure.ac
39
configure.ac
@@ -1,4 +1,4 @@
|
||||
AC_INIT([libburn], [1.0.4], [http://libburnia-project.org])
|
||||
AC_INIT([libburn], [0.9.0], [http://libburnia-project.org])
|
||||
AC_PREREQ([2.50])
|
||||
dnl AC_CONFIG_HEADER([config.h])
|
||||
|
||||
@@ -9,7 +9,7 @@ LIBBURNIA_SET_FLAGS
|
||||
|
||||
AM_INIT_AUTOMAKE([subdir-objects])
|
||||
|
||||
dnl Notes by ts A71207 - B10310 :
|
||||
dnl Notes by ts A71207 - B00630 :
|
||||
dnl
|
||||
dnl Regrettably the meaning of the various version types was misunderstood
|
||||
dnl before version 0.4.1.
|
||||
@@ -86,9 +86,6 @@ dnl 0.8.4 = libburn.so.4.49.0
|
||||
dnl 0.8.6 = libburn.so.4.51.0
|
||||
dnl 0.8.8 = libburn.so.4.53.0
|
||||
dnl 0.9.0 = libburn.so.4.55.0
|
||||
dnl 1.0.0 = libburn.so.4.57.0
|
||||
dnl 1.0.2 = libburn.so.4.59.0
|
||||
dnl 1.0.4 = libburn.so.4.61.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.
|
||||
@@ -112,9 +109,9 @@ dnl
|
||||
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=1
|
||||
BURN_MINOR_VERSION=0
|
||||
BURN_MICRO_VERSION=4
|
||||
BURN_MAJOR_VERSION=0
|
||||
BURN_MINOR_VERSION=9
|
||||
BURN_MICRO_VERSION=0
|
||||
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
||||
|
||||
AC_SUBST(BURN_MAJOR_VERSION)
|
||||
@@ -125,14 +122,14 @@ AC_SUBST(BURN_VERSION)
|
||||
dnl Libtool versioning
|
||||
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
||||
dnl
|
||||
dnl This is the release version libburn-1.0.4
|
||||
dnl This is the release version libburn-0.9.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 = 65 - 61 = 4 . Linux library name = libburn.so.4.61.0
|
||||
LT_CURRENT=65
|
||||
LT_AGE=61
|
||||
dnl SONAME = 59 - 55 = 4 . Linux library name = libburn.so.4.55.0
|
||||
LT_CURRENT=59
|
||||
LT_AGE=55
|
||||
LT_REVISION=0
|
||||
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||
|
||||
@@ -190,7 +187,7 @@ AC_CHECK_HEADER(sys/statvfs.h, X=, STATVFS_DEF=)
|
||||
AC_CHECK_FUNC([statvfs], X=, STATVFS_DEF=)
|
||||
dnl If this would be done more specifically in Makefile.am
|
||||
dnl via libburn_libburn_la_CFLAGS then undesired .o file names would emerge
|
||||
CFLAGS="$STATVFS_DEF $CFLAGS"
|
||||
CFLAGS="$CFLAGS $STATVFS_DEF"
|
||||
|
||||
dnl ts A91122
|
||||
AC_ARG_ENABLE(track-src-odirect,
|
||||
@@ -205,7 +202,7 @@ else
|
||||
fi
|
||||
dnl Avoid the need for libburn_libburn_la_CFLAGS in Makefile.am (ugly .o names)
|
||||
dnl ### AC_SUBST(LIBBURN_O_DIRECT_DEF)
|
||||
CFLAGS="$LIBBURN_O_DIRECT_DEF $CFLAGS"
|
||||
CFLAGS="$CFLAGS $LIBBURN_O_DIRECT_DEF"
|
||||
|
||||
dnl ts A91116
|
||||
AC_ARG_ENABLE(dvd-obs-64k,
|
||||
@@ -218,7 +215,7 @@ else
|
||||
LIBBURN_DVD_OBS_64K=
|
||||
echo "disabled write size default 64 KB on DVD and BD"
|
||||
fi
|
||||
CFLAGS="$LIBBURN_DVD_OBS_64K $CFLAGS"
|
||||
CFLAGS="$CFLAGS $LIBBURN_DVD_OBS_64K"
|
||||
|
||||
dnl ts A91218
|
||||
AC_ARG_ENABLE(libcdio,
|
||||
@@ -241,7 +238,7 @@ then
|
||||
fi
|
||||
else
|
||||
echo "enabled EXPERIMENTAL use of libcdio as system adapter"
|
||||
CFLAGS="$LIBCDIO_DEF $CFLAGS"
|
||||
CFLAGS="$CFLAGS $LIBCDIO_DEF"
|
||||
|
||||
LIBCDIO_REQUIRED=0.83
|
||||
PKG_CHECK_MODULES(LIBCDIO, libcdio >= $LIBCDIO_REQUIRED)
|
||||
@@ -289,15 +286,15 @@ AC_ARG_ENABLE(debug,
|
||||
, enable_debug=yes)
|
||||
if test x$enable_debug != xyes; then
|
||||
if test x$GCC = xyes; then
|
||||
CFLAGS="-O3 $CFLAGS"
|
||||
CFLAGS="-fexpensive-optimizations $CFLAGS"
|
||||
CFLAGS="$CFLAGS -O3"
|
||||
CFLAGS="$CFLAGS -fexpensive-optimizations"
|
||||
fi
|
||||
CFLAGS="-DNDEBUG $CFLAGS"
|
||||
CFLAGS="$CFLAGS -DNDEBUG"
|
||||
else
|
||||
if test x$GCC = xyes; then
|
||||
CFLAGS="-g -pedantic -Wall $CFLAGS"
|
||||
CFLAGS="$CFLAGS -g -pedantic -Wall"
|
||||
fi
|
||||
CFLAGS="-DDEBUG $CFLAGS"
|
||||
CFLAGS="$CFLAGS -DDEBUG"
|
||||
fi
|
||||
|
||||
dnl Determine target directory for libburn-*.pc
|
||||
|
13
doc/comments
13
doc/comments
@@ -8,13 +8,14 @@
|
||||
Libburnia is an open-source project for reading, mastering and writing
|
||||
optical discs. This page is about its capability to handle optical media.
|
||||
For now this means CD-R, CD-RW, DVD-RAM, DVD+RW, DVD+R, DVD+R/DL, DVD-RW,
|
||||
DVD-R, DVD-R/DL, BD-R, BD-RE.
|
||||
DVD-R, BD-R, BD-RE.
|
||||
|
||||
Our scope is currently Linux 2.4 and 2.6, or FreeBSD, or Solaris . For ports
|
||||
to other systems we would need : login on a development machine resp.
|
||||
an OS ithat is installable on an AMD 64-bit PC, advise from a system person
|
||||
about the equivalent of Linux sg or FreeBSD CAM, volunteers for testing of
|
||||
realistic use cases.
|
||||
Not supported yet are DVD-R/DL. Testers wanted.
|
||||
|
||||
Our scope is currently Linux 2.4 and 2.6, or FreeBSD . For ports to other
|
||||
systems we would need : login on a development machine resp. a live OS on CD
|
||||
or DVD, advise from a system person about the equivalent of Linux sg or FreeBSD
|
||||
CAM, volunteers for testing of realistic use cases.
|
||||
|
||||
libburn is the library by which preformatted data get onto optical media.
|
||||
Its code is independent of cdrecord. Its DVD capabilities are learned from
|
||||
|
@@ -355,7 +355,7 @@ void burn_disc_erase(struct burn_drive *drive, int fast)
|
||||
/* a ssert(!find_worker(drive)); */
|
||||
|
||||
if((drive == NULL)) {
|
||||
libdax_msgs_submit(libdax_messenger, -1,
|
||||
libdax_msgs_submit(libdax_messenger, drive->global_index,
|
||||
0x00020104,
|
||||
LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH,
|
||||
"NULL pointer caught in burn_disc_erase", 0, 0);
|
||||
|
135
libburn/drive.c
135
libburn/drive.c
@@ -24,7 +24,6 @@
|
||||
#include <ctype.h>
|
||||
#include <pthread.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include "libburn.h"
|
||||
#include "init.h"
|
||||
#include "drive.h"
|
||||
@@ -870,11 +869,6 @@ void burn_drive_cancel(struct burn_drive *d)
|
||||
/* ts B00225 : these mutexes are unnecessary because "= 1" is atomar.
|
||||
pthread_mutex_lock(&d->access_lock);
|
||||
*/
|
||||
if (!d->cancel) {
|
||||
libdax_msgs_submit(libdax_messenger, -1, 0x00000002,
|
||||
LIBDAX_MSGS_SEV_DEBUG, LIBDAX_MSGS_PRIO_ZERO,
|
||||
"burn_drive_cancel() was called", 0, 0);
|
||||
}
|
||||
d->cancel = 1;
|
||||
/*
|
||||
pthread_mutex_unlock(&d->access_lock);
|
||||
@@ -1360,62 +1354,12 @@ int burn_drive__fd_from_special_adr(char *adr)
|
||||
return fd;
|
||||
}
|
||||
|
||||
/* @param flag bit0= accept read-only files and return 2 in this case
|
||||
*/
|
||||
static int burn_drive__is_rdwr(char *fname, int *stat_ret,
|
||||
struct stat *stbuf_ret,
|
||||
off_t *read_size_ret, int flag)
|
||||
{
|
||||
int fd, is_rdwr = 1, ret, getfl_ret, st_ret, mask;
|
||||
struct stat stbuf;
|
||||
off_t read_size = 0;
|
||||
|
||||
memset(&stbuf, 0, sizeof(stbuf));
|
||||
fd = burn_drive__fd_from_special_adr(fname);
|
||||
if (fd >= 0)
|
||||
st_ret = fstat(fd, &stbuf);
|
||||
else
|
||||
st_ret = stat(fname, &stbuf);
|
||||
if (st_ret != -1) {
|
||||
is_rdwr = burn_os_is_2k_seekrw(fname, 0);
|
||||
if (S_ISREG(stbuf.st_mode))
|
||||
read_size = stbuf.st_size;
|
||||
else if (is_rdwr) {
|
||||
ret = burn_os_stdio_capacity(fname, &read_size);
|
||||
if (ret <= 0)
|
||||
read_size = (off_t) 0x7ffffff0 * (off_t) 2048;
|
||||
}
|
||||
}
|
||||
if (is_rdwr && fd >= 0) {
|
||||
getfl_ret = fcntl(fd, F_GETFL);
|
||||
|
||||
/*
|
||||
fprintf(stderr, "LIBBURN_DEBUG: burn_drive__is_rdwr: getfl_ret = %lX , O_RDWR = %lX , & = %lX , O_RDONLY = %lX\n", (unsigned long) getfl_ret, (unsigned long) O_RDWR, (unsigned long) (getfl_ret & O_RDWR), (unsigned long) O_RDONLY);
|
||||
*/
|
||||
|
||||
mask = O_RDWR | O_WRONLY | O_RDONLY;
|
||||
|
||||
if (getfl_ret == -1 || (getfl_ret & mask) != O_RDWR)
|
||||
is_rdwr = 0;
|
||||
if ((flag & 1) && getfl_ret != -1 &&
|
||||
(getfl_ret & mask) == O_RDONLY)
|
||||
is_rdwr = 2;
|
||||
}
|
||||
if (stat_ret != NULL)
|
||||
*stat_ret = st_ret;
|
||||
if (stbuf_ret != NULL)
|
||||
memcpy(stbuf_ret, &stbuf, sizeof(stbuf));
|
||||
if (read_size_ret != NULL)
|
||||
*read_size_ret = read_size;
|
||||
return is_rdwr;
|
||||
}
|
||||
|
||||
|
||||
/* ts A70903 : Implements adquiration of pseudo drives */
|
||||
int burn_drive_grab_dummy(struct burn_drive_info *drive_infos[], char *fname)
|
||||
{
|
||||
int ret = -1, role = 0;
|
||||
int is_rdwr = 0, stat_ret;
|
||||
int ret = -1, fd = -1, role = 0;
|
||||
int is_block_dev = 0;
|
||||
/* divided by 512 it needs to fit into a signed long integer */
|
||||
off_t size = ((off_t) (512 * 1024 * 1024 - 1) * (off_t) 2048);
|
||||
off_t read_size = -1;
|
||||
@@ -1425,9 +1369,25 @@ int burn_drive_grab_dummy(struct burn_drive_info *drive_infos[], char *fname)
|
||||
static int allow_role_3 = 1;
|
||||
|
||||
if (fname[0] != 0) {
|
||||
is_rdwr = burn_drive__is_rdwr(fname, &stat_ret, &stbuf,
|
||||
&read_size, 1);
|
||||
if (stat_ret == -1 || is_rdwr) {
|
||||
memset(&stbuf, 0, sizeof(stbuf));
|
||||
fd = burn_drive__fd_from_special_adr(fname);
|
||||
if (fd >= 0)
|
||||
ret = fstat(fd, &stbuf);
|
||||
else
|
||||
ret = stat(fname, &stbuf);
|
||||
if (ret != -1) {
|
||||
is_block_dev = burn_os_is_2k_seekrw(fname, 0);
|
||||
if (S_ISREG(stbuf.st_mode))
|
||||
read_size = stbuf.st_size;
|
||||
else if (is_block_dev) {
|
||||
ret = burn_os_stdio_capacity(fname,
|
||||
&read_size);
|
||||
if (ret <= 0)
|
||||
read_size = (off_t) 0x7ffffff0 *
|
||||
(off_t) 2048;
|
||||
}
|
||||
}
|
||||
if (ret == -1 || is_block_dev || S_ISREG(stbuf.st_mode)) {
|
||||
ret = burn_os_stdio_capacity(fname, &size);
|
||||
if (ret == -1) {
|
||||
libdax_msgs_submit(libdax_messenger, -1,
|
||||
@@ -1444,14 +1404,9 @@ int burn_drive_grab_dummy(struct burn_drive_info *drive_infos[], char *fname)
|
||||
errno, 0);
|
||||
return 0;
|
||||
}
|
||||
if (fname[0] != 0) {
|
||||
|
||||
/* >>> as soon as new role 4 is introduced:
|
||||
if (is_rdwr == 2) role = 4; else
|
||||
*/
|
||||
|
||||
if (fname[0] != 0)
|
||||
role = 2;
|
||||
} else
|
||||
else
|
||||
role = 0;
|
||||
} else {
|
||||
if(S_ISDIR(stbuf.st_mode) || !allow_role_3) {
|
||||
@@ -2688,54 +2643,26 @@ int burn_drive_equals_adr(struct burn_drive *d1, char *adr2_in, int role2)
|
||||
char adr1[BURN_DRIVE_ADR_LEN], *adr2 = adr2_in;
|
||||
char conv_adr1[BURN_DRIVE_ADR_LEN], conv_adr2[BURN_DRIVE_ADR_LEN];
|
||||
char *npt1, *dpt1, *npt2, *dpt2;
|
||||
int role1, stat_ret1, stat_ret2, conv_ret2, exact_role_matters = 0, fd;
|
||||
int ret;
|
||||
int role1, stat_ret1, stat_ret2, conv_ret2;
|
||||
|
||||
role1 = burn_drive_get_drive_role(d1);
|
||||
burn_drive_d_get_adr(d1, adr1);
|
||||
stat_ret1 = stat(adr1, &stbuf1);
|
||||
|
||||
/* If one of the candidate paths depicts an open file descriptor then
|
||||
its read-write capability decides about its role and the difference
|
||||
between roles 2 and 3 does matter.
|
||||
*/
|
||||
fd = burn_drive__fd_from_special_adr(d1->devname);
|
||||
if (fd != -1)
|
||||
exact_role_matters = 1;
|
||||
if (strncmp(adr2, "stdio:", 6) == 0) {
|
||||
adr2+= 6;
|
||||
if (adr2[0] == 0) {
|
||||
role2 = 0;
|
||||
} else {
|
||||
fd = burn_drive__fd_from_special_adr(adr2);
|
||||
if (fd != -1)
|
||||
exact_role_matters = 1;
|
||||
ret = burn_drive__is_rdwr(adr2, NULL, NULL, NULL, 1);
|
||||
|
||||
/* >>> as soon as new role 4 is introduced:
|
||||
if (ret == 2) role2 = 4; else
|
||||
*/
|
||||
|
||||
if (ret == 1)
|
||||
role2 = 2;
|
||||
else
|
||||
role2 = 3;
|
||||
}
|
||||
role2 = (!!adr2[0]) * 2;
|
||||
}
|
||||
|
||||
if (strlen(adr2) >= BURN_DRIVE_ADR_LEN)
|
||||
return -1;
|
||||
stat_ret2 = stat(adr2, &stbuf2);
|
||||
conv_ret2 = burn_drive_convert_fs_adr(adr2, conv_adr2);
|
||||
|
||||
if (!exact_role_matters) {
|
||||
/* roles >= 2 have the same name space and object
|
||||
interpretation */
|
||||
if (role1 >= 2)
|
||||
role1 = 2;
|
||||
if (role2 >= 2)
|
||||
role2 = 2;
|
||||
}
|
||||
/* roles 2 and 3 have the same name space and object interpretation */
|
||||
if (role1 == 3)
|
||||
role1 = 2;
|
||||
if (role2 == 3)
|
||||
role2 = 2;
|
||||
|
||||
if (strcmp(adr1, adr2) == 0 && role1 == role2)
|
||||
return(1); /* equal role and address */
|
||||
@@ -2753,8 +2680,6 @@ int burn_drive_equals_adr(struct burn_drive *d1, char *adr2_in, int role2)
|
||||
else if (role1 != 1 && role2 != 1) {
|
||||
/* pseudo-drive meets file object */
|
||||
|
||||
if (role1 != role2)
|
||||
return 0;
|
||||
if (stat_ret1 == -1 || stat_ret2 == -1) {
|
||||
if (stat_ret1 != -1 || stat_ret2 != -1)
|
||||
return 0; /* one adress existing, one not */
|
||||
|
@@ -211,10 +211,9 @@ struct burn_source *burn_fd_source_new(int datafd, int subfd, off_t size)
|
||||
|
||||
static int fifo_sleep(int flag)
|
||||
{
|
||||
static unsigned long sleeptime = 50000; /* 50 ms */
|
||||
static struct timespec sleeptime = { 0, 50000000}; /* 50 ms */
|
||||
|
||||
usleep(sleeptime);
|
||||
return 0;
|
||||
return nanosleep(&sleeptime, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */
|
||||
|
||||
/* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens
|
||||
Copyright (c) 2006 - 2011 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Copyright (c) 2006 - 2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
|
||||
This is the official API definition of libburn.
|
||||
@@ -2690,9 +2690,9 @@ void burn_version(int *major, int *minor, int *micro);
|
||||
}
|
||||
|
||||
*/
|
||||
#define burn_header_version_major 1
|
||||
#define burn_header_version_minor 0
|
||||
#define burn_header_version_micro 4
|
||||
#define burn_header_version_major 0
|
||||
#define burn_header_version_minor 9
|
||||
#define burn_header_version_micro 0
|
||||
/** Note:
|
||||
Above version numbers are also recorded in configure.ac because libtool
|
||||
wants them as parameters at build time.
|
||||
|
@@ -565,7 +565,6 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
|
||||
0x0002017d (FATAL,HIGH) = Invalid file descriptor with stdio pseudo-drive
|
||||
0x0002017e (FAILURE,HIGH) = Failed to close track, session, or disc
|
||||
0x0002017f (FAILURE,HIGH) = Failed to synchronize drive cache
|
||||
0x00020180 (FAILURE,HIGH) = Premature end of input encountered
|
||||
|
||||
libdax_audioxtr:
|
||||
0x00020200 (SORRY,HIGH) = Cannot open audio source file
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */
|
||||
|
||||
/* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens
|
||||
Copyright (c) 2006 - 2011 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Copyright (c) 2006 - 2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
@@ -179,21 +179,10 @@ static void get_bytes(struct burn_track *track, int count, unsigned char *data)
|
||||
if (!shortage)
|
||||
goto ex;
|
||||
|
||||
/* ts A61031 - B10103 */
|
||||
/* ts A61031 */
|
||||
if (shortage >= count)
|
||||
track->track_data_done = 1;
|
||||
if (track->end_on_premature_eoi && !track->open_ended) {
|
||||
char msg[80];
|
||||
/* Memorize that premature end of input happened */
|
||||
sprintf(msg,
|
||||
"Premature end of input encountered. Missing: %d bytes",
|
||||
shortage);
|
||||
libdax_msgs_submit(libdax_messenger, -1, 0x00020180,
|
||||
LIBDAX_MSGS_SEV_FAILURE, LIBDAX_MSGS_PRIO_HIGH,
|
||||
msg, 0,0);
|
||||
track->end_on_premature_eoi = 2;
|
||||
}
|
||||
if (track->open_ended || track->end_on_premature_eoi)
|
||||
if (track->open_ended)
|
||||
goto ex;
|
||||
|
||||
/* If we're still short, and there's a "next" pointer, we pull from that.
|
||||
@@ -699,7 +688,7 @@ int sector_data(struct burn_write_opts *o, struct burn_track *t, int psub)
|
||||
return 0;
|
||||
|
||||
/* ts A61031 */
|
||||
if ((t->open_ended || t->end_on_premature_eoi) && t->track_data_done) {
|
||||
if (t->open_ended && t->track_data_done) {
|
||||
unget_sector(o, t->mode);
|
||||
return 2;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
/* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens
|
||||
Copyright (c) 2006 - 2011 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Copyright (c) 2006 - 2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
@@ -170,8 +170,6 @@ struct burn_track *burn_track_create(void)
|
||||
/* ts A61031 */
|
||||
t->open_ended = 0;
|
||||
t->track_data_done = 0;
|
||||
/* ts B10103 */
|
||||
t->end_on_premature_eoi = 0;
|
||||
|
||||
t->postgap = 0;
|
||||
t->pregap1 = 0;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
/* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens
|
||||
Copyright (c) 2006 - 2011 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Copyright (c) 2006 - 2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
@@ -55,14 +55,6 @@ struct burn_track
|
||||
int open_ended;
|
||||
/** End of open ended track flag : offset+payload+tail are delivered */
|
||||
int track_data_done;
|
||||
/* ts B10103 */
|
||||
/** End track writing on premature End-of-input if source is of
|
||||
defined length.
|
||||
0= normal operation in case of eoi
|
||||
1= be ready to end track writing on eoi
|
||||
2= eoi was encountered with previously set value of 1
|
||||
*/
|
||||
int end_on_premature_eoi;
|
||||
|
||||
/** The audio/data mode for the entry. Derived from control and
|
||||
possibly from reading the track's first sector. */
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */
|
||||
|
||||
/* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens
|
||||
Copyright (c) 2006 - 2011 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Copyright (c) 2006 - 2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
@@ -2024,8 +2024,7 @@ int burn_stdio_open_write(struct burn_drive *d, off_t start_byte,
|
||||
int sector_size, int flag)
|
||||
{
|
||||
|
||||
/* We normally need _LARGEFILE64_SOURCE defined by the build system.
|
||||
Nevertheless the system might use large address integers by default.
|
||||
/* <<< We need _LARGEFILE64_SOURCE defined by the build system.
|
||||
*/
|
||||
#ifndef O_LARGEFILE
|
||||
#define O_LARGEFILE 0
|
||||
@@ -2034,7 +2033,6 @@ int burn_stdio_open_write(struct burn_drive *d, off_t start_byte,
|
||||
int fd = -1;
|
||||
int mode = O_RDWR | O_CREAT | O_LARGEFILE;
|
||||
char msg[160];
|
||||
off_t lseek_res;
|
||||
|
||||
if (d->devname[0] == 0) /* null drives should not come here */
|
||||
return -1;
|
||||
@@ -2042,8 +2040,7 @@ int burn_stdio_open_write(struct burn_drive *d, off_t start_byte,
|
||||
if (fd >= 0)
|
||||
fd = dup(fd); /* check validity and make closeable */
|
||||
else
|
||||
fd = open(d->devname, mode,
|
||||
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
|
||||
fd = open(d->devname, mode, S_IRUSR | S_IWUSR);
|
||||
if (fd == -1) {
|
||||
libdax_msgs_submit(libdax_messenger, d->global_index,
|
||||
0x00020005,
|
||||
@@ -2054,11 +2051,10 @@ int burn_stdio_open_write(struct burn_drive *d, off_t start_byte,
|
||||
}
|
||||
if (start_byte < 0)
|
||||
start_byte = 0;
|
||||
if (d->drive_role == 2) {
|
||||
lseek_res = lseek(fd, start_byte, SEEK_SET);
|
||||
if (lseek_res == -1) {
|
||||
if (d->drive_role == 2)
|
||||
if (lseek(fd, start_byte, SEEK_SET)==-1) {
|
||||
sprintf(msg, "Cannot address start byte %.f",
|
||||
(double) start_byte);
|
||||
(double) start_byte);
|
||||
libdax_msgs_submit(libdax_messenger, d->global_index,
|
||||
0x00020147,
|
||||
LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH,
|
||||
@@ -2067,7 +2063,6 @@ int burn_stdio_open_write(struct burn_drive *d, off_t start_byte,
|
||||
d->cancel = 1;
|
||||
fd = -1;
|
||||
}
|
||||
}
|
||||
d->nwa = start_byte / sector_size;
|
||||
return fd;
|
||||
}
|
||||
@@ -2260,8 +2255,6 @@ int burn_stdio_write_track(struct burn_write_opts *o, struct burn_session *s,
|
||||
burn_disc_init_track_status(o, s, tnum, sectors);
|
||||
open_ended = burn_track_is_open_ended(t);
|
||||
|
||||
t->end_on_premature_eoi = (o->write_type == BURN_WRITE_TAO);
|
||||
|
||||
/* attach stdio emulators for mmc_*() functions */
|
||||
if (o->simulate)
|
||||
d->write = burn_stdio_mmc_dummy_write;
|
||||
@@ -2274,9 +2267,8 @@ int burn_stdio_write_track(struct burn_write_opts *o, struct burn_session *s,
|
||||
/* transact a (CD sized) sector */
|
||||
if (!sector_data(o, t, 0))
|
||||
{ret= 0; goto ex;}
|
||||
if (open_ended)
|
||||
if (open_ended) {
|
||||
d->progress.sectors = sectors = d->progress.sector;
|
||||
if (open_ended || t->end_on_premature_eoi) {
|
||||
if (burn_track_is_data_done(t))
|
||||
break;
|
||||
}
|
||||
@@ -2303,8 +2295,6 @@ int burn_stdio_write_track(struct burn_write_opts *o, struct burn_session *s,
|
||||
ex:;
|
||||
if (d->cancel)
|
||||
burn_source_cancel(t->source);
|
||||
if (t->end_on_premature_eoi == 2)
|
||||
d->cancel = 1;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user