Compare commits
98 Commits
ZeroTwoTwo
...
ZeroTwoEig
Author | SHA1 | Date | |
---|---|---|---|
a21d632153 | |||
5eae306db2 | |||
8f10ec3032 | |||
1dac61c338 | |||
04efd40a86 | |||
76770e97bf | |||
cb6646d49e | |||
cd92b00f61 | |||
a0972af58f | |||
8945bce9ff | |||
b4b2572286 | |||
e40ddf8834 | |||
afd2f0cd61 | |||
e93ab421c2 | |||
e65346cd1b | |||
7685ca5d64 | |||
5d939f185c | |||
c1c033900e | |||
e1c4ed7d17 | |||
8898c58d3c | |||
18da5ec3f2 | |||
d5ec0342cc | |||
6af8449f5a | |||
69a6b4f4a1 | |||
daadfc113d | |||
1625db8bbd | |||
2026814a80 | |||
722e091460 | |||
2d1d4d4b37 | |||
fdea98935a | |||
7044f2cba1 | |||
f65dc9aa82 | |||
cd999a3661 | |||
07a137d64c | |||
26f00d4e08 | |||
bffde87102 | |||
73a9c16384 | |||
d56541d237 | |||
d7864bd13c | |||
bc002b24de | |||
8274230e14 | |||
a314fb5e91 | |||
f8154d6fde | |||
b79a0a1f04 | |||
16f6de937e | |||
410d972188 | |||
5f3f860800 | |||
7f40fbce00 | |||
c89012cb1f | |||
5fbc089f44 | |||
dde99a34a4 | |||
1967c876a6 | |||
262d987004 | |||
0987770afa | |||
0be7fe3329 | |||
62dbe3cbd0 | |||
1f1439f774 | |||
74aa1ed45e | |||
993ad6b8b4 | |||
6821aa77b8 | |||
63b4b64230 | |||
ba75c58f0e | |||
1a265f7645 | |||
e80a9626ce | |||
98fef56409 | |||
cec06c2a9a | |||
32486a5ca2 | |||
2745faabd2 | |||
0465f55485 | |||
d889ba7077 | |||
6eef826c60 | |||
fbc3e6992c | |||
5abdf19a48 | |||
feb3c10d1a | |||
96121a70dc | |||
552911da11 | |||
1d1f3a2265 | |||
3d23a621b2 | |||
c6c82c8333 | |||
afc27f89fe | |||
b5d7d75598 | |||
8ab1fcd4f5 | |||
c0cc40121f | |||
9b85bc0fed | |||
235cbe3dfe | |||
0f0a2e4bb5 | |||
1fd02ceba2 | |||
784684eb92 | |||
d3b35b50cd | |||
8bce9569e1 | |||
94f9c9acf8 | |||
aeb98c3abb | |||
a6da71ba36 | |||
ee7f121a25 | |||
0c7086525b | |||
708be0cde6 | |||
becac4eba6 | |||
319ab37ad9 |
38
Makefile.am
38
Makefile.am
@ -32,6 +32,19 @@ libinclude_HEADERS = \
|
||||
bin_PROGRAMS = \
|
||||
xorriso/xorriso
|
||||
|
||||
# This looks quite ugly with make install: xorriso.c is compiled twice again
|
||||
#
|
||||
# Trying to create a build timestamp file
|
||||
#
|
||||
# BUILT_SOURCES = xorriso/xorriso_buildstamp.h
|
||||
#
|
||||
# phony targets get rebuilt every time
|
||||
#
|
||||
# .PHONY: xorriso/xorriso_buildstamp.h
|
||||
# xorriso/xorriso_buildstamp.h:
|
||||
# date -u '+#define Xorriso_build_timestamP "%Y.%m.%d.%H%M%S"' >xorriso/xorriso_buildstamp.h
|
||||
# cat xorriso/xorriso_buildstamp.h
|
||||
|
||||
xorriso_xorriso_CPPFLAGS = -Ilibisoburn
|
||||
xorriso_xorriso_CFLAGS = -DXorriso_with_maiN -DXorriso_with_regeX $(READLINE_DEF)
|
||||
xorriso_xorriso_LDADD = libisoburn/libisoburn.la -lisofs -lburn $(THREAD_LIBS)
|
||||
@ -48,15 +61,16 @@ xorriso_xorriso_SOURCES = \
|
||||
# Install symbolic links to the xorriso binary
|
||||
#
|
||||
install-exec-hook:
|
||||
if test -e $(bindir)/xorrisofs ; then rm $(bindir)/xorrisofs ; else echo ; fi
|
||||
ln -s xorriso $(bindir)/xorrisofs
|
||||
if test -e $(bindir)/osirrox ; then rm $(bindir)/osirrox ; else echo ; fi
|
||||
ln -s xorriso $(bindir)/osirrox
|
||||
if test -e $(bindir)/xorrecord ; then rm $(bindir)/xorrecord ; else echo ; fi
|
||||
ln -s xorriso $(bindir)/xorrecord
|
||||
if test -e "$(DESTDIR)$(bindir)"/xorrisofs ; then rm "$(DESTDIR)$(bindir)"/xorrisofs ; else echo ; fi
|
||||
ln -s xorriso "$(DESTDIR)$(bindir)"/xorrisofs
|
||||
if test -e "$(DESTDIR)$(bindir)"/osirrox ; then rm "$(DESTDIR)$(bindir)"/osirrox ; else echo ; fi
|
||||
ln -s xorriso "$(DESTDIR)$(bindir)"/osirrox
|
||||
if test -e "$(DESTDIR)$(bindir)"/xorrecord ; then rm "$(DESTDIR)$(bindir)"/xorrecord ; else echo ; fi
|
||||
ln -s xorriso "$(DESTDIR)$(bindir)"/xorrecord
|
||||
|
||||
|
||||
# Trying to create a build timestamp file
|
||||
# Alternative to the disabled .PHONY above.
|
||||
# Trying to create a build timestamp file semi-manually: make buildstamped
|
||||
#
|
||||
buildstamp:
|
||||
date -u '+#define Xorriso_build_timestamP "%Y.%m.%d.%H%M%S"' >xorriso/xorriso_buildstamp.h
|
||||
@ -65,15 +79,7 @@ buildstamp:
|
||||
# For now make buildstamped has to be performed explicitely.
|
||||
buildstamped: buildstamp
|
||||
make
|
||||
#
|
||||
# Processing of the "all:" rule happens too late.
|
||||
# How to create a dependency of xorriso.c on buildstamp ?
|
||||
# Not working:
|
||||
# Add xorriso_buildstamp.h to xorriso_xorriso_SOURCES and make it depend
|
||||
# on buildstamp. It runs. But at quite random occasions.
|
||||
# xorriso/xorriso_buildstamp.h: buildstamp
|
||||
#
|
||||
# all: buildstamp
|
||||
|
||||
|
||||
|
||||
## Build test applications
|
||||
|
24
README
24
README
@ -4,13 +4,13 @@
|
||||
libisoburn. By Vreixo Formoso <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Integrated sub project of libburnia-project.org.
|
||||
http://files.libburnia-project.org/releases/libisoburn-0.2.2.pl00.tar.gz
|
||||
http://files.libburnia-project.org/releases/libisoburn-0.2.8.pl00.tar.gz
|
||||
Copyright (C) 2006-2008 Vreixo Formoso, Thomas Schmitt.
|
||||
Provided under GPL version 2.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
libisoburn is a frontend for libraries libburn and libisofs which enables
|
||||
creation and expansion of ISO-9660 filesystems on all CD/DVD media supported
|
||||
creation and expansion of ISO-9660 filesystems on all CD/DVD/BD media supported
|
||||
by libburn. This includes media like DVD+RW, which do not support multi-session
|
||||
management on media level and even plain disk files or block devices.
|
||||
|
||||
@ -26,18 +26,18 @@ By using this software you agree to the disclaimer at the end of this text:
|
||||
|
||||
Compilation, First Glimpse, Installation
|
||||
|
||||
Dynamic library and compile time header requirements for libisoburn-0.2.2 :
|
||||
- libburn.so.4 , version libburn-0.5.0 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.6 or higher
|
||||
Dynamic library and compile time header requirements for libisoburn-0.2.8 :
|
||||
- libburn.so.4 , version libburn-0.5.4 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.10 or higher
|
||||
libisoburn and xorriso will not start with libraries which are older than their
|
||||
headers seen at compile time. So compile in the oldest possible installation
|
||||
setup unless you have reason to enforce a newer bug fix level.
|
||||
|
||||
Obtain libisoburn-0.2.2.pl00.tar.gz, take it to a directory of your choice
|
||||
Obtain libisoburn-0.2.8.pl00.tar.gz, take it to a directory of your choice
|
||||
and do:
|
||||
|
||||
tar xzf libisoburn-0.2.2.pl00.tar.gz
|
||||
cd libisoburn-0.2.2
|
||||
tar xzf libisoburn-0.2.8.pl00.tar.gz
|
||||
cd libisoburn-0.2.8
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -57,7 +57,7 @@ as well as
|
||||
|
||||
xorriso
|
||||
|
||||
libisoburn includes a command line and dialog application named xorriso,
|
||||
libisoburn comes with a command line and dialog application named xorriso,
|
||||
which offers a substantial part of libisoburn features to shell scripts and
|
||||
users. Its file xorriso/README describes a standalone tarball as first
|
||||
preference for statically linked xorriso installation.
|
||||
@ -72,6 +72,12 @@ Several alias links point to the xorriso binary:
|
||||
xorrecord starts xorriso with -as cdrecord emulation already enabled
|
||||
osirrox starts with -osirrox image-to-disk copying already enabled
|
||||
|
||||
By default xorriso will depend on libreadline if the readline-dev headers
|
||||
are present. This dependcy can be avoided by running
|
||||
./configure --prefix=/usr --disable-libreadline
|
||||
make clean ; make
|
||||
Never omit the "make clean" command after switching libreadline enabling.
|
||||
|
||||
|
||||
Drives and Disk File Objects
|
||||
|
||||
|
32
configure.ac
32
configure.ac
@ -1,4 +1,4 @@
|
||||
AC_INIT([libisoburn], [0.2.2], [http://libburnia-project.org])
|
||||
AC_INIT([libisoburn], [0.2.8], [http://libburnia-project.org])
|
||||
AC_PREREQ([2.50])
|
||||
dnl AC_CONFIG_HEADER([config.h])
|
||||
|
||||
@ -21,7 +21,7 @@ dnl
|
||||
dnl These three are only copies to provide libtool with unused LT_RELEASE
|
||||
ISOBURN_MAJOR_VERSION=0
|
||||
ISOBURN_MINOR_VERSION=2
|
||||
ISOBURN_MICRO_VERSION=2
|
||||
ISOBURN_MICRO_VERSION=8
|
||||
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
|
||||
|
||||
AC_SUBST(ISOBURN_MAJOR_VERSION)
|
||||
@ -33,16 +33,16 @@ dnl Libtool versioning
|
||||
dnl Generate libisoburn.so.1.x.y
|
||||
dnl SONAME will become LT_CURRENT - LT_AGE
|
||||
dnl
|
||||
dnl ts A80718
|
||||
dnl This is the release version 0.2.2 = libisoburn.so.1.11.0
|
||||
dnl ts A80920
|
||||
dnl This is the release version 0.2.8 = libisoburn.so.1.17.0
|
||||
dnl ### This is the development version after above stable release
|
||||
dnl LT_CURRENT++, LT_AGE++ have not happened happened yet.
|
||||
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
|
||||
dnl
|
||||
dnl SONAME = 12 - 11 = 1 . Library name = libburn.so.1.11.0
|
||||
dnl SONAME = 18 - 17 = 1 . Library name = libisoburn.so.1.17.0
|
||||
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
|
||||
LT_CURRENT=12
|
||||
LT_AGE=11
|
||||
LT_CURRENT=18
|
||||
LT_AGE=17
|
||||
LT_REVISION=0
|
||||
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||
|
||||
@ -86,22 +86,28 @@ AC_SUBST(ARCH)
|
||||
AC_SUBST(LIBBURN_ARCH_LIBS)
|
||||
|
||||
|
||||
AC_ARG_ENABLE(libreadline,
|
||||
[ --enable-libreadline Enable use of libreadline by xorriso, default=yes],
|
||||
, enable_libreadline=yes)
|
||||
if test x$enable_libreadline = xyes; then
|
||||
dnl Check whether there is readline-devel and readline-runtime.
|
||||
dnl If not, erase this macro which would enable use of readline(),add_history()
|
||||
READLINE_DEF="-DXorriso_with_readlinE"
|
||||
READLINE_DEF="-DXorriso_with_readlinE"
|
||||
dnl The empty yes case obviously causes -lreadline to be linked
|
||||
AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= )
|
||||
AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= )
|
||||
dnl The X= in the yes case prevents that -lreadline gets linked twice
|
||||
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
|
||||
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
|
||||
else
|
||||
READLINE_DEF=
|
||||
fi
|
||||
AC_SUBST(READLINE_DEF)
|
||||
|
||||
|
||||
AC_CHECK_HEADER(libburn/libburn.h)
|
||||
AC_CHECK_HEADER(libisofs/libisofs.h)
|
||||
|
||||
dnl Check for proper library versions
|
||||
LIBBURN_REQUIRED=0.5.0
|
||||
LIBISOFS_REQUIRED=0.6.6
|
||||
LIBBURN_REQUIRED=0.5.4
|
||||
LIBISOFS_REQUIRED=0.6.10
|
||||
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
|
||||
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)
|
||||
|
||||
|
@ -477,7 +477,7 @@ WARN_LOGFILE =
|
||||
# directories like "/usr/src/myproject". Separate the files or directories
|
||||
# with spaces.
|
||||
|
||||
INPUT = libburn \
|
||||
INPUT = libisoburn \
|
||||
doc \
|
||||
test
|
||||
|
||||
@ -495,9 +495,7 @@ INPUT_ENCODING = UTF-8
|
||||
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
|
||||
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
|
||||
|
||||
FILE_PATTERNS = libburn.h \
|
||||
comments \
|
||||
libburner.c
|
||||
FILE_PATTERNS =
|
||||
|
||||
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
|
||||
# should be searched for input files as well. Possible values are YES and NO.
|
||||
|
@ -58,7 +58,7 @@ extern void *libisoburn_default_msgs_submit_handle;
|
||||
extern int libisoburn_default_msgs_submit_flag;
|
||||
|
||||
|
||||
int isoburn_emulate_toc(struct burn_drive *d, int flag);
|
||||
static int isoburn_emulate_toc(struct burn_drive *d, int flag);
|
||||
|
||||
|
||||
int isoburn_initialize(char msg[1024], int flag)
|
||||
@ -263,6 +263,7 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag)
|
||||
@param flag bit0= pretent blank on overwriteable media
|
||||
bit3= if the drive reports a -ROM profile then try to read
|
||||
table of content by scanning for ISO image headers.
|
||||
bit4= do not emulate TOC on overwriteable media
|
||||
*/
|
||||
static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
|
||||
int flag)
|
||||
@ -312,11 +313,13 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
|
||||
(*o)->emulation_mode= -1;
|
||||
goto ex;
|
||||
}
|
||||
/* try to read emulated toc */
|
||||
ret= isoburn_emulate_toc(d, 0);
|
||||
if(ret<0) {
|
||||
(*o)->emulation_mode= -1;
|
||||
goto ex;
|
||||
if(!(flag & 16)) {
|
||||
/* try to read emulated toc */
|
||||
ret= isoburn_emulate_toc(d, 0);
|
||||
if(ret<0) {
|
||||
(*o)->emulation_mode= -1;
|
||||
goto ex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -326,9 +329,13 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
|
||||
|
||||
if(readonly) {
|
||||
/* This might be overwriteable media in a -ROM drive */
|
||||
ret= isoburn_emulate_toc(d, 1);
|
||||
if(ret<0)
|
||||
goto ex;
|
||||
if((flag & 16)) {
|
||||
ret= 0;
|
||||
} else {
|
||||
ret= isoburn_emulate_toc(d, 1);
|
||||
if(ret<0)
|
||||
goto ex;
|
||||
}
|
||||
if(ret==0 && profile !=0x08 && (flag&8)) {
|
||||
/* This might also be multi-session media which do not
|
||||
get shown with a decent TOC.
|
||||
@ -373,29 +380,38 @@ ex:
|
||||
table of content by scanning for ISO image headers.
|
||||
(depending on media type and drive state this might
|
||||
help or it might make the resulting toc even worse)
|
||||
bit4= do not emulate TOC on overwriteable media
|
||||
*/
|
||||
int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
|
||||
char *adr, int flag)
|
||||
{
|
||||
int ret, conv_ret, drive_grabbed= 0;
|
||||
char libburn_drive_adr[BURN_DRIVE_ADR_LEN];
|
||||
int ret, drive_grabbed= 0;
|
||||
struct isoburn *o= NULL;
|
||||
char msg[BURN_MSGS_MESSAGE_LEN+4096];
|
||||
|
||||
#ifndef NIX
|
||||
|
||||
/* <<< should be obsolete by new drive addressing of libburn-0.5.2 */
|
||||
/* >>> but helps with kernel 2.4 to use /dev/sr */
|
||||
|
||||
int conv_ret;
|
||||
char libburn_drive_adr[BURN_DRIVE_ADR_LEN];
|
||||
|
||||
conv_ret= burn_drive_convert_fs_adr(adr, libburn_drive_adr);
|
||||
if(conv_ret<=0) {
|
||||
sprintf(msg, "Unsuitable drive address: '%s'\n",adr);
|
||||
msg[BURN_MSGS_MESSAGE_LEN-1]= 0;
|
||||
isoburn_msgs_submit(NULL, 0x00060000, msg, 0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
|
||||
if(conv_ret<=0)
|
||||
strcpy(libburn_drive_adr, adr);
|
||||
ret= burn_drive_scan_and_grab(drive_infos, libburn_drive_adr, flag&1);
|
||||
|
||||
#else
|
||||
|
||||
ret= burn_drive_scan_and_grab(drive_infos, adr, flag & 1);
|
||||
|
||||
#endif /* ! NIX */
|
||||
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
drive_grabbed= 1;
|
||||
ret= isoburn_welcome_media(&o, (*drive_infos)[0].drive,
|
||||
(flag&8) | !!(flag&2));
|
||||
(flag & 24) | !!(flag&2));
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
|
||||
@ -1029,6 +1045,30 @@ int isoburn_read_iso_head(struct burn_drive *d, int lba,
|
||||
}
|
||||
|
||||
|
||||
int isoburn_make_toc_entry(struct isoburn *o, int *session_count, int lba,
|
||||
int track_blocks, int flag)
|
||||
{
|
||||
int ret;
|
||||
struct isoburn_toc_entry *item;
|
||||
|
||||
ret= isoburn_toc_entry_new(&item, o->toc, 0);
|
||||
if(ret<=0) {
|
||||
isoburn_msgs_submit(o, 0x00060000,
|
||||
"Not enough memory for emulated TOC entry object",
|
||||
0, "FATAL", 0);
|
||||
return(-1);
|
||||
}
|
||||
if(o->toc==NULL)
|
||||
o->toc= item;
|
||||
(*session_count)++;
|
||||
item->session= *session_count;
|
||||
item->track_no= *session_count;
|
||||
item->start_lba= lba;
|
||||
item->track_blocks= track_blocks;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= allow unemulated media
|
||||
bit1= free scanning without enclosing LBA-0-header
|
||||
@return -1 severe error, 0= no neat header chain, 1= credible chain read
|
||||
@ -1037,8 +1077,8 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
|
||||
{
|
||||
int ret, image_size= 0, lba, track_blocks, session_count= 0, read_flag= 0;
|
||||
int scan_start= 0, scan_count= 0, probe_minus_16= 0, growisofs_nwa;
|
||||
int with_enclosure= 0;
|
||||
struct isoburn *o;
|
||||
struct isoburn_toc_entry *item;
|
||||
char msg[160], size_text[80], *sev;
|
||||
time_t start_time, last_pacifier, now;
|
||||
|
||||
@ -1058,6 +1098,7 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
|
||||
if(ret<=0)
|
||||
{ret= 0; goto failure;}
|
||||
lba= Libisoburn_overwriteable_starT;
|
||||
with_enclosure= 1;
|
||||
}
|
||||
while(lba<image_size || (flag&2)) {
|
||||
now= time(NULL);
|
||||
@ -1066,7 +1107,7 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
|
||||
if(scan_count>=10*512)
|
||||
sprintf(size_text, "%.f MB", ((double) scan_count) / 512.0);
|
||||
else
|
||||
sprintf(size_text, "%.f MB", 2 * (double) scan_count);
|
||||
sprintf(size_text, "%.f kB", 2 * (double) scan_count);
|
||||
sprintf(msg, "Found %d ISO sessions by scanning %s in %.f seconds",
|
||||
session_count, size_text, (double) (now - start_time));
|
||||
isoburn_msgs_submit(o, 0x00060000, msg, 0, "UPDATE", 0);
|
||||
@ -1106,27 +1147,25 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
|
||||
"Chain of ISO session headers broken at #%d, LBA %ds",
|
||||
session_count+1, lba);
|
||||
isoburn_msgs_submit(o, 0x00060000, msg, 0, "WARNING", 0);
|
||||
|
||||
if(with_enclosure) {
|
||||
ret= isoburn_make_toc_entry(o, &session_count, 0, image_size, 0);
|
||||
if(ret<=0)
|
||||
goto failure;
|
||||
}
|
||||
break; /* do not return failure */
|
||||
|
||||
}
|
||||
{ret= 0; goto failure;}
|
||||
}
|
||||
if(ret==2) /* ISO header was found in first half block */
|
||||
lba-= 16;
|
||||
ret= isoburn_toc_entry_new(&item, o->toc, 0);
|
||||
if(ret<=0) {
|
||||
isoburn_msgs_submit(o, 0x00060000,
|
||||
"Not enough memory for emulated TOC entry object",
|
||||
0, "FATAL", 0);
|
||||
ret= -1; goto failure;
|
||||
}
|
||||
if(o->toc==NULL)
|
||||
o->toc= item;
|
||||
session_count++;
|
||||
scan_count+= 32;
|
||||
item->session= session_count;
|
||||
item->track_no= session_count;
|
||||
item->start_lba= lba;
|
||||
item->track_blocks= track_blocks;
|
||||
|
||||
ret= isoburn_make_toc_entry(o, &session_count, lba, track_blocks, 0);
|
||||
if(ret<=0)
|
||||
goto failure;
|
||||
lba+= track_blocks;
|
||||
scan_count+= 32;
|
||||
|
||||
/* growisofs aligns to 16 rather than 32 */
|
||||
growisofs_nwa= lba;
|
||||
@ -1153,6 +1192,10 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
|
||||
return(1);
|
||||
failure:;
|
||||
isoburn_toc_entry_destroy(&(o->toc), 1);
|
||||
if(with_enclosure && o->emulation_mode == 1) {
|
||||
session_count= 0;
|
||||
ret= isoburn_make_toc_entry(o, &session_count, 0, image_size, 0);
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
@ -1297,15 +1340,31 @@ failure:;
|
||||
int isoburn_toc_disc_get_sectors(struct isoburn_toc_disc *disc)
|
||||
{
|
||||
struct isoburn_toc_entry *t;
|
||||
int ret= 0;
|
||||
int ret= 0, num_sessions, num_tracks;
|
||||
struct burn_session **sessions;
|
||||
struct burn_track **tracks;
|
||||
struct burn_toc_entry entry;
|
||||
|
||||
if(disc==NULL)
|
||||
return(0);
|
||||
if(disc->toc!=NULL) {
|
||||
for(t= disc->toc; t!=NULL; t= t->next)
|
||||
ret= t->start_lba + t->track_blocks;
|
||||
} else if(disc->disc!=NULL)
|
||||
} else if(disc->disc!=NULL) {
|
||||
sessions= burn_disc_get_sessions(disc->disc, &num_sessions);
|
||||
if(num_sessions > 0) {
|
||||
tracks = burn_session_get_tracks(sessions[num_sessions - 1],
|
||||
&num_tracks);
|
||||
if(num_tracks > 0) {
|
||||
burn_track_get_entry(tracks[num_tracks - 1], &entry);
|
||||
if(entry.extensions_valid & 1)
|
||||
ret= entry.start_lba + entry.track_blocks;
|
||||
}
|
||||
}
|
||||
/*
|
||||
ret= burn_disc_get_sectors(disc->disc);
|
||||
*/
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
@ -147,6 +147,10 @@ int ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
|
||||
return 1;
|
||||
tiles[oldest].last_error_lba = lba;
|
||||
|
||||
#ifdef ISO_DATA_SOURCE_MISHAP
|
||||
ret= ISO_DATA_SOURCE_MISHAP;
|
||||
#else
|
||||
/* <<< pre libisofs-0.6.7 */
|
||||
/* It is not required by the specs of libisofs but implicitely assumed
|
||||
...
|
||||
But it is not possible to ignore FAILURE.
|
||||
@ -159,6 +163,8 @@ int ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
|
||||
enough to make it appear plausible.
|
||||
*/
|
||||
ret= ISO_FILE_CANT_WRITE;
|
||||
#endif
|
||||
|
||||
if(ret >= 0)
|
||||
ret = -1;
|
||||
sprintf(msg, "ds_read_block(%lu) returns %d", (unsigned long) lba, ret);
|
||||
|
@ -200,7 +200,7 @@ void isoburn_version(int *major, int *minor, int *micro);
|
||||
*/
|
||||
#define isoburn_libisofs_req_major 0
|
||||
#define isoburn_libisofs_req_minor 6
|
||||
#define isoburn_libisofs_req_micro 6
|
||||
#define isoburn_libisofs_req_micro 10
|
||||
|
||||
/** The minimum version of libburn to be used with this version of libisoburn
|
||||
at compile time.
|
||||
@ -208,7 +208,7 @@ void isoburn_version(int *major, int *minor, int *micro);
|
||||
*/
|
||||
#define isoburn_libburn_req_major 0
|
||||
#define isoburn_libburn_req_minor 5
|
||||
#define isoburn_libburn_req_micro 0
|
||||
#define isoburn_libburn_req_micro 4
|
||||
|
||||
|
||||
/** The minimum version of libisofs to be used with this version of libisoburn
|
||||
@ -244,7 +244,7 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
|
||||
*/
|
||||
#define isoburn_header_version_major 0
|
||||
#define isoburn_header_version_minor 2
|
||||
#define isoburn_header_version_micro 2
|
||||
#define isoburn_header_version_micro 8
|
||||
/** Note:
|
||||
Above version numbers are also recorded in configure.ac because libtool
|
||||
wants them as parameters at build time.
|
||||
@ -364,6 +364,7 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
|
||||
table of content by scanning for ISO image headers.
|
||||
(depending on media type and drive this might
|
||||
help or it might make the resulting toc even worse)
|
||||
bit4= do not emulate table of content on overwriteable media
|
||||
@return 1 = success , 0 = drive not found , <0 = other error
|
||||
*/
|
||||
int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
|
||||
@ -502,7 +503,8 @@ struct isoburn_toc_disc *isoburn_toc_drive_get_disc(struct burn_drive *d);
|
||||
|
||||
|
||||
/** Tell the number of 2048 byte blocks covered by the table of content.
|
||||
Wrapper for: burn_disc_get_sectors()
|
||||
This number includes the eventual gaps between sessions and tracks.
|
||||
So this call is not really a wrapper for burn_disc_get_sectors().
|
||||
@since 0.1.6
|
||||
@param disc The master handle of the media
|
||||
@return number of blocks, <=0 indicates unknown or unreadable state
|
||||
@ -553,7 +555,7 @@ struct isoburn_toc_track **isoburn_toc_session_get_tracks(
|
||||
struct isoburn_toc_session *s, int *num);
|
||||
|
||||
|
||||
/** Obtain a copy of the entry which describes a particular itrack.
|
||||
/** Obtain a copy of the entry which describes a particular track.
|
||||
Wrapper for: burn_track_get_entry()
|
||||
@since 0.1.6
|
||||
@param s The track handle
|
||||
@ -1051,9 +1053,10 @@ off_t isoburn_disc_available_space(struct burn_drive *d,
|
||||
|
||||
|
||||
/** Obtain the start block number of the most recent session on media. In
|
||||
case of random access media this will always be 0. Succesfull return is
|
||||
case of random access media this will normally be 0. Successfull return is
|
||||
not a guarantee that there is a ISO-9660 image at all. The call will fail,
|
||||
nevertheless,if isoburn_disc_get_status() returns not BURN_DISC_APPENDABLE.
|
||||
nevertheless,if isoburn_disc_get_status() returns not BURN_DISC_APPENDABLE
|
||||
or BURN_DISC_FULL.
|
||||
Note: The result of this call may be fabricated by a previous call of
|
||||
isoburn_set_msc1() which can override the rule to load the most recent
|
||||
session.
|
||||
@ -1181,10 +1184,9 @@ int isoburn_prepare_blind_grow(struct burn_drive *d, struct burn_disc **disc,
|
||||
|
||||
|
||||
/**
|
||||
Revoke isoburn_prepare_new_image() or isoburn_prepare_disc() instead of
|
||||
running isoburn_disc_write().
|
||||
Revoke isoburn_prepare_*() instead of running isoburn_disc_write().
|
||||
libisofs reserves resources and maybe already starts generating the
|
||||
image stream when one of above two calls is performed. It is mandatory to
|
||||
image stream when one of above three calls is performed. It is mandatory to
|
||||
either run isoburn_disc_write() or to revoke the preparations by the
|
||||
call described here.
|
||||
@since 0.1.0
|
||||
|
@ -4,7 +4,7 @@
|
||||
xorriso. By Thomas Schmitt <scdbackup@gmx.net>
|
||||
Integrated sub project of libburnia-project.org but also published via:
|
||||
http://scdbackup.sourceforge.net/xorriso_eng.html
|
||||
http://scdbackup.sourceforge.net/xorriso-0.2.2.pl00.tar.gz
|
||||
http://scdbackup.sourceforge.net/xorriso-0.2.8.pl00.tar.gz
|
||||
Copyright (C) 2006-2008 Thomas Schmitt, provided under GPL version 2.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
@ -36,10 +36,10 @@ The tarball contains anything that is needed except libc and libpthread.
|
||||
libreadline and the readline-dev headers will make dialog mode more convenient,
|
||||
but are not mandatory.
|
||||
|
||||
Obtain xorriso-0.2.2.pl00.tar.gz, take it to a directory of your choice and do:
|
||||
Obtain xorriso-0.2.8.pl00.tar.gz, take it to a directory of your choice and do:
|
||||
|
||||
tar xzf xorriso-0.2.2.pl00.tar.gz
|
||||
cd xorriso-0.2.2
|
||||
tar xzf xorriso-0.2.8.pl00.tar.gz
|
||||
cd xorriso-0.2.8
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -74,6 +74,12 @@ The installation creates several alias links pointing to the xorriso binary:
|
||||
xorrecord starts xorriso with -as cdrecord emulation already enabled
|
||||
osirrox starts with -osirrox image-to-disk copying already enabled
|
||||
|
||||
If you want to avoid dependecy on libreadline although the libreadline
|
||||
development package is installed, then rather build xorriso by:
|
||||
./configure --prefix=/usr --disable-libreadline
|
||||
make clean ; make
|
||||
Never omit the "make clean" command after switching libreadline enabling.
|
||||
|
||||
|
||||
Drives and Disk File Objects
|
||||
|
||||
@ -147,6 +153,26 @@ and vice versa:
|
||||
| less
|
||||
|
||||
|
||||
File Formats
|
||||
|
||||
Currently there is only one file format peculiar to xorriso : sector maps
|
||||
which describe the valid and invalid blocks on a media or a disk copy of
|
||||
a media. xorriso creates and reads these file with its option -check_media.
|
||||
|
||||
The file begins with 32 bytes of cleartext of which the last one is a
|
||||
newline character. The first 25 say "xorriso sector bitmap v2 ", the
|
||||
remaining six characters give the size of the info text as decimal number.
|
||||
This number of bytes follows the first 32 and will not be interpreted
|
||||
by xorriso. They are rather to inform a human reader about the media type
|
||||
and its track layout.
|
||||
After the info text there are two 4 byte signed integers, most significant
|
||||
byte first. The first one, N, gives the number of bits in the following bitmap
|
||||
and the second number S gives the number of 2 KiB blocks governed by a single
|
||||
bit in the map. Then come the bits in form of 8-bit bytes.
|
||||
Data block M is covered by bit B=M/S in the map, bit number B is stored in
|
||||
byte B/8 as bit B%8. A valid readable data block has its bit set to 1.
|
||||
|
||||
|
||||
libisoburn
|
||||
|
||||
xorriso is based on libisofs which does ISO 9600 filesystem aspects and on
|
||||
@ -166,9 +192,9 @@ and a matching dynamically linked xorriso binary.
|
||||
This binary is leaner but depends on properly installed libraries of suitable
|
||||
revision.
|
||||
|
||||
Dynamic library and compile time header requirements for libisoburn-0.2.2 :
|
||||
- libburn.so.4 , version libburn-0.5.0 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.6 or higher
|
||||
Dynamic library and compile time header requirements for libisoburn-0.2.8 :
|
||||
- libburn.so.4 , version libburn-0.5.4 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.10 or higher
|
||||
libisoburn and xorriso will not start with libraries which are older than their
|
||||
headers seen at compile time. So compile in the oldest possible installation
|
||||
setup unless you have reason to enforce a newer bug fix level.
|
||||
|
@ -3289,6 +3289,7 @@ Removed MULTI construction site remarks
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.1 - 2008.07.17.184520
|
||||
|
||||
|
||||
2008.07.18.120001 [1944]
|
||||
configure.ac
|
||||
README
|
||||
@ -3300,11 +3301,12 @@ xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
Version leap to 0.2.2
|
||||
|
||||
18 Jul 2008 []
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
18 Jul 2008 [1946]
|
||||
README
|
||||
xorriso/README
|
||||
Corrected outdated statement about minimum library requirements
|
||||
|
||||
|
||||
---------------------------------- release - xorriso-0.2.2 - 2008.07.18.120001
|
||||
* New API function isoburn_prepare_blind_grow()
|
||||
@ -3317,8 +3319,657 @@ Documented changes and release timestamp
|
||||
* New option -pacifier, more compatible pacifier with -as mkisofs
|
||||
|
||||
|
||||
2008.07.18.135540 [1947]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/README
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
xorriso/changelog.txt
|
||||
Version leap to 0.2.3
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.3 - 2008.07.18.135540
|
||||
|
||||
|
||||
2008.07.19.113048 [1949]
|
||||
Makefile.am
|
||||
xorriso/compile_xorriso.sh
|
||||
Introduced automatic buildstamp generation for dynamic library version
|
||||
|
||||
2008.07.21.155324 [1950]
|
||||
Makefile.am
|
||||
xorriso/xorriso_makefile_am.txt
|
||||
Reacting on ticket 138 by stick, revoked buildstamp due to ugly make install
|
||||
|
||||
2008.07.21.161826 [1951]
|
||||
Makefile.am
|
||||
xorriso/xorriso_makefile_am.txt
|
||||
Used quotation marks as does ./bootstrap when generating Makefile.in
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.3 - 2008.07.21.161826
|
||||
* Bug fix: Variable DESTDIR was not properly respected during make install
|
||||
|
||||
|
||||
2008.07.23.080001 [xorriso-0.2.2.pl01]
|
||||
Makefile.in
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/changelog.txt
|
||||
* Bug fix: external make variable DESTDIR was not used by xorriso link creation
|
||||
|
||||
------------------------------- patch - xorriso-0.2.2.pl01 - 2008.07.23.080001
|
||||
* Bug fix: Variable DESTDIR was not properly respected during make install
|
||||
|
||||
|
||||
2008.07.26.075027 [1953]
|
||||
libisoburn/burn_wrap.c
|
||||
Producing on overwriteables a partial TOC up to first damaged superblock
|
||||
|
||||
2008.08.01.101355 [1955]
|
||||
xorriso/xorrisoburn.c
|
||||
Better finish time estimation with -pacifier mkisofs
|
||||
|
||||
2008.08.01.141210 [1956]
|
||||
xorriso/xorrisoburn.c
|
||||
Better finish time estimation with -pacifier mkisofs
|
||||
|
||||
2008.08.06.143825 [1967]
|
||||
xorriso/xorriso_private.h
|
||||
Removed obsolete type definition
|
||||
|
||||
2008.08.06.143922 [1968]
|
||||
xorriso/xorrisoburn.c
|
||||
Removed obsolete function
|
||||
|
||||
2008.08.07.112529 [1972]
|
||||
xorriso/xorriso.c
|
||||
Minor changes around display of time and byte counts
|
||||
|
||||
2008.08.09.160515 [1977]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
Demanding libburn-0.5.1 now
|
||||
|
||||
2008.08.09.160947 [1978]
|
||||
libisoburn/burn_wrap.c
|
||||
Create emulated toc entry for simple ISO session on overwriteable media
|
||||
|
||||
2008.08.09.161311 [1979]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
Evaluating readability of media
|
||||
|
||||
2008.08.11.201604 [1980]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
Adapted media evaluation to CD peculiarities
|
||||
|
||||
2008.08.13.185434 [1981]
|
||||
libisoburn/libisoburn.h
|
||||
Corrected documentation of isoburn_disc_get_msc1()
|
||||
|
||||
2008.08.13.190704 [1982]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
New capability to redirect program output used for toc in sector map file
|
||||
|
||||
2008.08.14.220520 [1983]
|
||||
libisoburn/burn_wrap.c
|
||||
Changed wrong update message from MB to kB
|
||||
|
||||
2008.08.14.221412 [1984]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
New option -check_media
|
||||
|
||||
2008.08.15.102849 [1985]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
Allowed independent redirecton of result and info channel
|
||||
|
||||
2008.08.15.155421 [1986]
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
Enabled printing of sector bitmaps by use=sector_map
|
||||
|
||||
15 Aug 2008 [1987]
|
||||
xorriso/xorriso_eng.html
|
||||
Mentioned progress of development version
|
||||
|
||||
2008.08.17.220043 [1988]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
-find tests -damaged and -lba_range, new -find action report_damage
|
||||
|
||||
2008.08.17.221350 [1989]
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso_eng.html
|
||||
Reacted on compiler warning
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.3 -
|
||||
------------------------------------ cycle - xorriso-0.2.3 -
|
||||
* Included libburn has enhanced Linux drive access and listing code
|
||||
* New option -check_media
|
||||
* New -find test -damaged, new -find action "report_damage"
|
||||
|
||||
|
||||
2008.08.18.134140 [1990]
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/README
|
||||
xorriso/xorriso.1
|
||||
New -find action report_lba
|
||||
|
||||
2008.08.20.101410 [2000]
|
||||
xorriso/configure_ac.txt
|
||||
Adopted to new libburn version 0.5.3
|
||||
|
||||
2008.08.20.121008 [2002]
|
||||
libisoburn/libisoburn.h
|
||||
configure.ac
|
||||
Demanding libburn-0.5.2 now
|
||||
|
||||
2008.08.20.181734 [2003]
|
||||
xorriso/xorrisoburn.c
|
||||
Made -check_media process first 32 blocks of a multi-session overwriteable
|
||||
|
||||
2008.08.21.070602 [2004]
|
||||
xorriso/xorriso.c
|
||||
Synced -lsl display of major,minor numbers with /usr/include/sys/sysmacros.h
|
||||
|
||||
2008.08.22.231051 [2005]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
New -check_media option -patch_lba0=
|
||||
|
||||
2008.08.24.100552 [2007]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
xorriso/xorriso_eng.html
|
||||
New -error_behavior behavior occasion "file_extraction"
|
||||
|
||||
2008.08.24.124424 [2008]
|
||||
xorriso/xorrisoburn.c
|
||||
Fixed a bug with -check_media use=outdev
|
||||
|
||||
2008.08.24.125257 [2009]
|
||||
xorriso/xorrisoburn.c
|
||||
Reacted on compiler warning
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.3 - 2008.08.24.125257
|
||||
* New -find action "report_lba"
|
||||
* New -error_behavior behavior occasion "file_extraction"
|
||||
|
||||
|
||||
2008.08.24.160001 [2011]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/README
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
Version leap to 0.2.4
|
||||
|
||||
24 Aug 2008 [2012]
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
24 Aug 2008 [2013]
|
||||
configure.ac
|
||||
Corrected ISOBURN_MICRO_VERSION
|
||||
|
||||
---------------------------------- release - xorriso-0.2.4 - 2008.08.24.160001
|
||||
* Included libburn has enhanced Linux drive access and listing code
|
||||
* New option -check_media
|
||||
* New -find test -damaged, new -find actions "report_damage", "report_lba"
|
||||
* New -error_behavior occasion "file_extraction"
|
||||
|
||||
|
||||
2008.08.24.173217 [2014]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/README
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
Version leap to 0.2.5
|
||||
|
||||
24 Aug 2008 [2015]
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.5 - 2008.08.24.173217
|
||||
|
||||
26 Aug 2008 [2017]
|
||||
xorriso/convert_man_to_html.sh
|
||||
Adjusted HTML generator to recent man page changes
|
||||
|
||||
2008.08.26.163254 [2018]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/data_source.c
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/configure_ac.txt
|
||||
Adopting next development step of libisofs
|
||||
|
||||
26 Aug 2008 [2019]
|
||||
xorriso/xorriso.1
|
||||
Adjusted man page statements about file size limits
|
||||
|
||||
2008.08.27.121211 [2020]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
New option -file_size_limit, -as mkisofs now supports -iso-level 1 to 3
|
||||
|
||||
2008.08.27.122127 [2021]
|
||||
xorriso/xorriso.c
|
||||
Reacted on compiler warning
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.5 - 2008.08.27.122127
|
||||
* Capability to insert and extract files far larger than 4 GB
|
||||
* New option -file_size_limit, -as mkisofs now supports -iso-level 1 to 3
|
||||
|
||||
|
||||
27 Aug 2008 [2022]
|
||||
xorriso/xorriso.1
|
||||
Corrected a typo in man page
|
||||
|
||||
2008.09.02.164803 [2025]
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
New option -extract_cut
|
||||
|
||||
2008.09.03.143218 [2026]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
New -error_behavior "file_extraction" behavior "best_effort"
|
||||
|
||||
2008.09.04.100158 [2027]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
New option -check_media_defaults
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.5 - 2008.09.04.100158
|
||||
* New option -extract_cut
|
||||
* New -error_behavior "file_extraction" behavior "best_effort"
|
||||
* New option -check_media_defaults
|
||||
|
||||
|
||||
2008.09.05.095344 [2028]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
New option -list_delimiter
|
||||
|
||||
5 Sep 2008 [2029]
|
||||
xorriso/xorriso_eng.html
|
||||
Updated development feature list
|
||||
|
||||
2008.09.05.114936 [2030]
|
||||
xorriso/xorriso.c
|
||||
-commit_eject, -alter_date, -alter_date_r, -pacifier, -prog_help had wrong argument count prediction
|
||||
|
||||
5 Sep 2008 [2031]
|
||||
xorriso/xorriso.1
|
||||
Documented forgotten option -publisher
|
||||
|
||||
5 Sep 2008 [2032]
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/xorriso.1
|
||||
Minor documentation polishing
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.5 - 2008.09.05.114936
|
||||
* New option -list_delimiter
|
||||
|
||||
|
||||
6 Sep 2008 [2033]
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/xorriso.1
|
||||
Documentation polishing
|
||||
|
||||
2008.09.07.144714 [2034]
|
||||
xorriso/xorrisoburn.c
|
||||
Removed outdated alternative code for support of libisofs-0.6.6
|
||||
|
||||
2008.09.08.094748 [2035]
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
Made use of new libisofs call iso_image_update_sizes()
|
||||
|
||||
2008.09.08.121548 [2036]
|
||||
xorriso/xorrisoburn.c
|
||||
Bug fix: -format full did not re-format already formatted DVD+RW
|
||||
|
||||
2008.09.09.082406 [2037]
|
||||
xorriso/xorrisoburn.c
|
||||
Smoothened time estimation with pacifier mkisofs style
|
||||
|
||||
9 Sep 2008 [2038]
|
||||
xorriso/xorriso_eng.html
|
||||
Updated web page
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.5 - 2008.09.09.082406
|
||||
* Bug fix: -format full did not re-format already formatted DVD+RW
|
||||
|
||||
|
||||
2008.09.11.114227 [2040]
|
||||
xorriso/xorrisoburn.c
|
||||
Issuing message at begin of image loading
|
||||
|
||||
2008.09.13.204455 [2047]
|
||||
xorriso/xorrisoburn.c
|
||||
Correction about -check_media report and message about image loading
|
||||
|
||||
2008.09.16.060427 [2053]
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
Corrected pacifier text (Ticket 141)
|
||||
|
||||
2008.09.16.185206 [2054]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.1
|
||||
Corrected falsely computed default setting of -file_size_limit
|
||||
|
||||
2008.09.17.193824 [2056]
|
||||
xorriso/xorrisoburn.c
|
||||
Corrected message duplication about emulated sessions on overwriteable media
|
||||
|
||||
2008.09.19.090619 [2057] [2058]
|
||||
xorriso/configure_ac.txt
|
||||
standalone version switch to libisofs-0.6.8
|
||||
|
||||
19 Sep 2008 [2059]
|
||||
xorriso/xorriso.1
|
||||
Small change in man page
|
||||
|
||||
2008.09.19.104424 [2060]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
Switched requirements to libisofs-0.6.8
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.5 - 2008.09.19.104424
|
||||
|
||||
|
||||
2008.09.19.122656 [2061]
|
||||
xorriso/xorrisoburn.c
|
||||
Changed WARNING about non-writeable media to NOTE severity of blank messages
|
||||
|
||||
|
||||
2008.09.19.180001 [2066]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/README
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
Version leap to 0.2.6
|
||||
|
||||
20 Sep 2008 [2067]
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
---------------------------------- release - xorriso-0.2.6 - 2008.09.19.180001
|
||||
* Capability to insert and extract files far larger than 4 GB
|
||||
* New option -file_size_limit, -as mkisofs now supports -iso-level 1 to 3
|
||||
* New option -extract_cut
|
||||
* New -error_behavior "file_extraction" behavior "best_effort"
|
||||
* New option -check_media_defaults
|
||||
* New option -list_delimiter
|
||||
* Bug fix: -format full did not re-format already formatted DVD+RW
|
||||
|
||||
|
||||
2008.09.20.093140 [2068]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/README
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
Version leap to 0.2.7
|
||||
|
||||
20 Sep 2008 [2069]
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.7 - 2008.09.20.093140
|
||||
|
||||
2008.09.24.155424 [2077]
|
||||
xorriso/xorrisoburn.c
|
||||
Trying to get pacifiers of simultaneously running emulations into sync
|
||||
|
||||
2008.09.26.120934 [2082]
|
||||
xorriso/xorriso.c
|
||||
Bug fix: -as mkisofs -iso-level was accused to be an unknown option
|
||||
|
||||
2008.09.26.161331 [2083]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
A first attempt on making bootable ISO images
|
||||
|
||||
2008.09.28.112850 [2084]
|
||||
xorriso/configure_ac.txt
|
||||
Standalone version switch to libisofs-0.6.9 (vreixoml 387) to avoid SIGSEGV
|
||||
|
||||
2008.09.28.113256 [2085]
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
xorriso/convert_man_to_html.sh
|
||||
xorriso/xorriso_eng.html
|
||||
Made -boot_image isolinux activation obey -overwrite setting
|
||||
|
||||
2008.09.30.102243 [2088]
|
||||
libisoburn/libisoburn.h
|
||||
Requiring libisofs-0.6.9 because of bug fixes with El Torito
|
||||
|
||||
2008.09.30.102753 [2089]
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
Adjustments about -boot_image after testing with various media types
|
||||
|
||||
30 Sep 2008 [2090]
|
||||
xorriso/xorriso_eng.html
|
||||
Mentioned progress and bug fixes in 0.2.7
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.7 - 2008.09.30.102753
|
||||
* Bug fix: -as mkisofs -iso-level was accused to be an unknown option
|
||||
* Ability to write and maintain bootable ISO images based on ISOLINUX
|
||||
|
||||
|
||||
2008.09.30.174925 [2091]
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
Small adjustments about -boot_image
|
||||
|
||||
2008.10.02.092354 [2092]
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
Small adjustments about -boot_image
|
||||
|
||||
2008.10.02.092635 [2093]
|
||||
xorriso/xorriso.c
|
||||
Enabled -as cdrecord blank=as_needed
|
||||
|
||||
2008.10.02.105442 [2094]
|
||||
xorriso/README
|
||||
xorriso/configure_ac.txt
|
||||
Introduced xorriso-standalone ./configure option --disable-libreadline
|
||||
|
||||
2008.10.02.110828 [2095]
|
||||
README
|
||||
xorriso/README
|
||||
xorriso/configure_ac.txt
|
||||
Fine tuning about ./configure option --disable-libreadline
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.7 - 2008.10.02.110828
|
||||
* New ./configure option --disable-libreadline to make binary more portable
|
||||
|
||||
|
||||
4 Oct 2008 [2099]
|
||||
xorriso/convert_man_to_html.sh
|
||||
xorriso/xorriso.1
|
||||
Relocated the El Torito paragraph in man xorriso
|
||||
|
||||
2008.10.05.075432 [2101]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/burn_wrap.c
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
-rom_toc_scan nonrom_off disables toc emulation on overwriteables
|
||||
|
||||
2008.10.05.093703 [2105]
|
||||
xorriso/xorrisoburn.c
|
||||
Bug fix: Random target filenames with looping symbolic links
|
||||
|
||||
2008.10.05.125046 [2109]
|
||||
xorriso/configure_ac.txt
|
||||
Adapted standalone BURN_*_VERSION to libburn 0.5.5
|
||||
|
||||
2008.10.05.125242 [2110]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn now demands libburn-0.5.4
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.7 - 2008.10.05.125242
|
||||
* Bug fix: -follow link attributed random target filenames to looping links
|
||||
|
||||
|
||||
2008.10.06.114114 [2113]
|
||||
xorriso/configure_ac.txt
|
||||
Adapted standalone LIBISOFS_*_VERSION to libisofs 0.6.10
|
||||
|
||||
2008.10.06.114845 [2114]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn now demands libisofs-0.6.10
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.7 - 2008.10.06.114845
|
||||
|
||||
|
||||
7 Oct 2008 [2115]
|
||||
xorriso/xorriso.1
|
||||
Polished man xorriso
|
||||
|
||||
2008.10.08.135848 [2116]
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorriso.1
|
||||
Changed newly introduced -rom_toc_scan nonrom_off to off:emul_off
|
||||
|
||||
2008.10.09.145926 [2117]
|
||||
configure.ac
|
||||
README
|
||||
Introduced libburn ./configure option --disable-libreadline
|
||||
|
||||
9 Oct 2008 [2118]
|
||||
xorriso/compile_xorriso.sh
|
||||
Introduced xorriso development compiler script option -no_libreadline
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.7 - 2008.10.09.145926
|
||||
|
||||
|
||||
2008.10.10.131102 [2119]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorriso.1
|
||||
Enabled dialog for multi-lines and newline characters in quotation marks
|
||||
|
||||
2008.10.10.134020 [2120]
|
||||
xorriso/xorriso.c
|
||||
Polishing multi-line dialog
|
||||
|
||||
2008.10.12.120001 [2122]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/README
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
Version leap to 0.2.8
|
||||
|
||||
12 Oct 2008 []
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
---------------------------------- release - xorriso-0.2.8 - 2008.10.12.120001
|
||||
* Bug fix: -as mkisofs -iso-level was accused to be an unknown option
|
||||
* Bug fix: -follow link attributed random target filenames to looping links
|
||||
* Ability to write and maintain bootable ISO images based on ISOLINUX
|
||||
* New ./configure option --disable-libreadline to make binary more portable
|
||||
|
||||
|
||||
------------------------------------ cycle - xorriso-0.2.9 -
|
||||
------------------------------------ cycle - xorriso-0.2.9 -
|
||||
|
||||
[]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorriso.1
|
||||
xorriso/xorrisoburn.c
|
||||
New option -quoted_path_list
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
===============================================================================
|
||||
@ -3329,9 +3980,23 @@ Documented changes and release timestamp
|
||||
|
||||
------------------------------------------------- important
|
||||
|
||||
|
||||
------------------------------------------------- development
|
||||
|
||||
- creation of bootable images
|
||||
- ? declare change pending after -boot_image isolinux bootspec ?
|
||||
- isohybrid option as soon as supported by libisofs
|
||||
|
||||
- xorriso seems able to deal with newlines in file names.
|
||||
Now a path_list format is needed which escapes newlines.
|
||||
Dialog needs to be enabled for newlines.
|
||||
|
||||
- random access read and write option
|
||||
|
||||
- option to patch the mount image size and location on overwriteables
|
||||
|
||||
- change -check_media what=disc to libburn disc rather than libisoburn
|
||||
(seems to need new API capabilities of libburn)
|
||||
|
||||
??? Clarify handling of links in ISO and on disk during restore
|
||||
|
||||
> Relative addressing and pattern matching :
|
||||
@ -3343,8 +4008,7 @@ Documented changes and release timestamp
|
||||
the main thread cares for user and message queues.
|
||||
|
||||
- Introduce an interrupt key for dialog
|
||||
|
||||
- watch read latency and evaluate read quality indicator
|
||||
>>> but how without disturbing readline ?
|
||||
|
||||
- regularly do valgrind check for memory leaks
|
||||
|
||||
@ -3360,7 +4024,6 @@ Documented changes and release timestamp
|
||||
|
||||
- memory curb for image model
|
||||
|
||||
??? semicolon as alias of -- ?
|
||||
|
||||
> Make transactional the tree deletions meant for replacing
|
||||
|
||||
@ -3369,29 +4032,14 @@ Documented changes and release timestamp
|
||||
|
||||
------ problem fixes :
|
||||
|
||||
- Error code for libisoburn data source read errors.
|
||||
|
||||
- Proper reaction on severity of errors issued by data_source
|
||||
(currently even a FATAL gets converted to ISO_FILE_READ_ERROR
|
||||
in iso_stream_read())
|
||||
|
||||
- #define ISO_ERR_PRIO(e) ((e & 0x00700000) << 8)
|
||||
(rather than 0x00F00000, see ticket 135)
|
||||
|
||||
- the error handling system should be comprehensively documented
|
||||
and eventually rectified where needed.
|
||||
|
||||
- With softlink /X/YZ and Joliet enabled:
|
||||
libisofs: HINT : Can't add YZ to Joliet tree. This kind of files can only be added to a Rock Ridget tree. Skipping.
|
||||
HINT is not a suitable severity for this. Better: WARNING, SORRY, MISHAP
|
||||
One should at least give the full path of /X/YZ or the type of the file.
|
||||
|
||||
|
||||
------ feature enhancements :
|
||||
|
||||
- Data files >= 4 GiB.
|
||||
|
||||
- API: iso_image_update_sizes() to be run immediately before -commit
|
||||
- Optional performing of ISO hybrid patch for USB and other pseudo hard disks
|
||||
http://www.sfr-fresh.com/linux/misc/syslinux-3.72.tar.gz:a/syslinux-3.72/utils/isohybrid
|
||||
http://syslinux.zytor.com/archives/2008-October/010869.html
|
||||
|
||||
- A repeatable shell command as origin ("disk_file")
|
||||
of a regular file in the ISO image.
|
||||
@ -3403,15 +4051,14 @@ Documented changes and release timestamp
|
||||
- Image checksum tag in the last data blocks of an image.
|
||||
A data file entry should point to that block.
|
||||
|
||||
- creation of bootable images
|
||||
|
||||
------ extended attribute stunts: Not visible for mount but for libisofs
|
||||
|
||||
- file checksums
|
||||
|
||||
- ACLs
|
||||
|
||||
- man attr(5) extended attributes
|
||||
- ticket 136:
|
||||
ACLs
|
||||
man attr(5) extended attributes
|
||||
|
||||
|
||||
===============================================================================
|
||||
|
@ -22,6 +22,8 @@ do_strip=0
|
||||
static_opts=
|
||||
warn_opts="-Wall"
|
||||
nglibisofs=1
|
||||
def_libreadline="-DXorriso_with_readlinE"
|
||||
link_libreadline="-lreadline"
|
||||
|
||||
for i in "$@"
|
||||
do
|
||||
@ -35,11 +37,16 @@ do
|
||||
elif test "$i" = "-g"
|
||||
then
|
||||
debug_opts="-g -O0"
|
||||
elif test "$i" = "-no_libreadline"
|
||||
then
|
||||
def_libreadline=""
|
||||
link_libreadline=""
|
||||
elif test "$i" = "-help" -o "$i" = "--help" -o "$i" = "-h"
|
||||
then
|
||||
echo \
|
||||
"$xorr/compile_xorriso.sh : to be executed above top level directories"
|
||||
echo "Options:"
|
||||
echo " -no_libreadline do not compile for and link with libreadline."
|
||||
echo " -do_diet produce capability reduced lean version."
|
||||
echo " -do_strip apply program strip to compiled programs."
|
||||
echo " -g produce debuggable programm."
|
||||
@ -76,20 +83,20 @@ libisofs="$libisofs $isofs"/util.o
|
||||
libisofs="$libisofs $isofs"/util_htable.o
|
||||
libisofs="$libisofs $isofs"/util_rbtree.o
|
||||
|
||||
timestamp="$(date -u '+%Y.%m.%d.%H%M%S')"
|
||||
|
||||
echo "Version timestamp : $(sed -e 's/#define Xorriso_timestamP "//' -e 's/"$//' "$xorr"/xorriso_timestamp.h)"
|
||||
echo "Build timestamp : $timestamp"
|
||||
|
||||
date -u '+#define Xorriso_build_timestamP "%Y.%m.%d.%H%M%S"' >"$xorr"/xorriso_buildstamp.h
|
||||
echo "Build timestamp : $(sed -e 's/#define Xorriso_build_timestamP "//' -e 's/"$//' "$xorr"/xorriso_buildstamp.h)"
|
||||
|
||||
echo "compiling program $xorr/xorriso.c $static_opts $debug_opts $def_opts"
|
||||
cc -I. -DXorriso_with_maiN -DXorriso_with_regeX -DXorriso_with_readlinE \
|
||||
cc -I. -DXorriso_with_maiN -DXorriso_with_regeX $def_libreadline \
|
||||
$warn_opts \
|
||||
$static_opts \
|
||||
$debug_opts \
|
||||
$def_opts \
|
||||
$largefile_opts \
|
||||
\
|
||||
-DXorriso_build_timestamP='"'"$timestamp"'"' \
|
||||
\
|
||||
-o "$xorr"/xorriso \
|
||||
\
|
||||
"$xorr"/xorriso.c \
|
||||
@ -130,7 +137,7 @@ cc -I. -DXorriso_with_maiN -DXorriso_with_regeX -DXorriso_with_readlinE \
|
||||
\
|
||||
$libisofs \
|
||||
\
|
||||
-lreadline \
|
||||
$link_libreadline \
|
||||
\
|
||||
-lpthread
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
AC_INIT([xorriso], [0.2.2], [http://libburnia-project.org])
|
||||
AC_INIT([xorriso], [0.2.8], [http://libburnia-project.org])
|
||||
AC_PREREQ([2.50])
|
||||
dnl AC_CONFIG_HEADER([config.h])
|
||||
|
||||
@ -9,14 +9,14 @@ AM_INIT_AUTOMAKE([subdir-objects])
|
||||
|
||||
BURN_MAJOR_VERSION=0
|
||||
BURN_MINOR_VERSION=5
|
||||
BURN_MICRO_VERSION=1
|
||||
BURN_MICRO_VERSION=5
|
||||
AC_SUBST(BURN_MAJOR_VERSION)
|
||||
AC_SUBST(BURN_MINOR_VERSION)
|
||||
AC_SUBST(BURN_MICRO_VERSION)
|
||||
|
||||
LIBISOFS_MAJOR_VERSION=0
|
||||
LIBISOFS_MINOR_VERSION=6
|
||||
LIBISOFS_MICRO_VERSION=6
|
||||
LIBISOFS_MICRO_VERSION=10
|
||||
AC_SUBST(LIBISOFS_MAJOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MINOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MICRO_VERSION)
|
||||
@ -95,14 +95,20 @@ else
|
||||
CFLAGS="$CFLAGS -DDEBUG"
|
||||
fi
|
||||
|
||||
|
||||
AC_ARG_ENABLE(libreadline,
|
||||
[ --enable-libreadline Enable use of libreadline by xorriso, default=yes],
|
||||
, enable_libreadline=yes)
|
||||
if test x$enable_libreadline = xyes; then
|
||||
dnl Check whether there is readline-devel and readline-runtime.
|
||||
dnl If not, erase this macro which would enable use of readline(),add_history()
|
||||
READLINE_DEF="-DXorriso_with_readlinE"
|
||||
READLINE_DEF="-DXorriso_with_readlinE"
|
||||
dnl The empty yes case obviously causes -lreadline to be linked
|
||||
AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= )
|
||||
AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= )
|
||||
dnl The X= in the yes case prevents that -lreadline gets linked twice
|
||||
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
|
||||
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
|
||||
else
|
||||
READLINE_DEF=
|
||||
fi
|
||||
AC_SUBST(READLINE_DEF)
|
||||
|
||||
|
||||
|
@ -51,7 +51,7 @@ then
|
||||
-e 's/<b>Libburn drives:<\/b>/\ <BR><b>Libburn drives:<\/b>/' \
|
||||
-e 's/^-dev /\ \ -dev /' \
|
||||
-e 's/^-devices /\ \ -devices /' \
|
||||
-e 's/<b>Rock Ridge, POSIX, X\/Open:<\/b>/\ <BR><b>Rock Ridge, POSIX, X\/Open:<\/b>/' \
|
||||
-e 's/<b>Rock Ridge, POSIX, X\/Open, and El Torito:<\/b>/\ <BR><b>Rock Ridge, POSIX, X\/Open, and El Torito:<\/b>/' \
|
||||
-e 's/<b>Command processing:<\/b>/\ <BR><b>Command processing:<\/b>/' \
|
||||
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\ <BR><b>Dialog, Readline, Result pager:<\/b>/' \
|
||||
-e 's/<b>Aquiring source and target drive:<\/b>/\ <BR><b>Aquiring source and target drive:<\/b><BR>\ <BR>/' \
|
||||
@ -66,10 +66,12 @@ then
|
||||
-e 's/^706k = 706kB/\ \ 706k = 706kB/' \
|
||||
-e 's/^5540k = 5540kB/\ \ 5540k = 5540kB/' \
|
||||
-e 's/<b>Exception processing:<\/b>/\ <BR><b>Exception processing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>El Torito bootable ISO images:<\/b>/\ <BR><b>El Torito bootable ISO images:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Dialog mode control:<\/b>/\ <BR><b>Dialog mode control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Drive and media related inquiry actions:<\/b>/\ <BR><b>Drive and media related inquiry actions:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Navigation in ISO image/\ <BR><b>Navigation in ISO image/' \
|
||||
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Evaluation of readability and recovery:<\/b>/\ <BR><b>Evaluation of readability and recovery:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>osirrox restore options:<\/b>/\ <BR><b>osirrox restore options:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Command compatibility emulations:<\/b>/\ <BR><b>Command compatibility emulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−as</<p>\ <BR><b>\−as</' \
|
||||
|
@ -25,7 +25,7 @@
|
||||
current_dir=$(pwd)
|
||||
lone_dir="$current_dir"/"xorriso-standalone"
|
||||
|
||||
xorriso_rev=0.2.2
|
||||
xorriso_rev=0.2.8
|
||||
# For unstable uploads:
|
||||
# xorriso_pl=""
|
||||
# For stable releases:
|
||||
|
@ -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 XORRISO 1 "Jul, 17, 2008"
|
||||
.TH XORRISO 1 "Oct 10, 2008"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -53,10 +53,14 @@ Updates ISO subtrees incrementally to match given disk subtrees.
|
||||
Writes result either as completely new image or as add-on session
|
||||
to optical media or filesystem objects.
|
||||
.br
|
||||
Can activate ISOLINUX boot images via El Torito.
|
||||
.br
|
||||
Can perform multi-session tasks as emulation of mkisofs and cdrecord.
|
||||
.br
|
||||
Can restore files from ISO image to disk filesystem (see osirrox).
|
||||
.br
|
||||
Can check media for damages and copy readable blocks to disk.
|
||||
.br
|
||||
Scans for optical drives, blanks re-useable optical media.
|
||||
.br
|
||||
Reads its instructions from command line arguments, dialog, and batch files.
|
||||
@ -75,7 +79,7 @@ Creating, Growing, Modifying, Blind Growing
|
||||
.br
|
||||
Libburn drives
|
||||
.br
|
||||
Rock Ridge, POSIX, X/Open
|
||||
Rock Ridge, POSIX, X/Open, and El Torito
|
||||
.br
|
||||
Command processing
|
||||
.br
|
||||
@ -147,11 +151,11 @@ useful to store intermediate states and to continue with image manipulations.
|
||||
.B Media types and states:
|
||||
There are two families of media in the MMC standard:
|
||||
.br
|
||||
\fBMulti-session\fR media are CD-R, CD-RW, DVD-R, DVD+R, DVD+R/DL, and
|
||||
\fBMulti-session media\fR are CD-R, CD-RW, DVD-R, DVD+R, DVD+R/DL, and
|
||||
unformatted DVD-RW. These media provide a table of content which
|
||||
describes their existing sessions. See option \fB-toc\fR.
|
||||
.br
|
||||
\fBOverwriteable\fR media are DVD-RAM, DVD+RW, BD-RE, and formatted DVD-RW.
|
||||
\fBOverwriteable media\fR are DVD-RAM, DVD+RW, BD-RE, and formatted DVD-RW.
|
||||
They allow random write access but do not provide information about their
|
||||
session history. If they contain one or more ISO 9660 sessions and if the
|
||||
first session was written by xorriso, then a table of content can
|
||||
@ -210,7 +214,7 @@ blank state if it was not blank already.
|
||||
.PP
|
||||
If there is a input drive with a valid ISO image, then this image gets loaded
|
||||
as foundation for manipulations and extension. The constellation of input
|
||||
and output drive determines which of two write methods will be used.
|
||||
and output drive determines which write method will be used.
|
||||
They have quite different capabilities and constraints.
|
||||
.PP
|
||||
The method of \fBgrowing\fR adds new data to the existing media. These
|
||||
@ -323,7 +327,7 @@ One may use option
|
||||
.B -ban_stdio_write
|
||||
to surely prevent this risk and to allow only MMC drives.
|
||||
.SS
|
||||
.B Rock Ridge, POSIX, X/Open:
|
||||
.B Rock Ridge, POSIX, X/Open, and El Torito:
|
||||
.br
|
||||
.B Rock Ridge
|
||||
is the name of a set of additional informations which enhance
|
||||
@ -338,16 +342,39 @@ xorriso is not named "porriso" because POSIX only guarantees 14 characters
|
||||
of filename length. It is the X/Open System Interface standard XSI which
|
||||
demands a file name length of up to 255 characters and paths of up to 1024
|
||||
characters. Rock Ridge fulfills this demand.
|
||||
.PP
|
||||
An
|
||||
.B El Torito
|
||||
boot record connects a boot image, which is a binary program plus some
|
||||
other files stored in the ISO image, with the bootstrapping facility of
|
||||
contemporary computers.
|
||||
The content of the boot image files is not in the scope of El Torito.
|
||||
.br
|
||||
Most bootable Linux CDs are equipped with ISOLINUX boot images. xorriso is
|
||||
able to create or maintain an El Torito object which makes such an image
|
||||
bootable. Emulation -as mkisofs supports the example options out of the
|
||||
ISOLINUX wiki.
|
||||
.br
|
||||
The support for other boot image types is sparse.
|
||||
.SS
|
||||
.B Command processing:
|
||||
.br
|
||||
Commands are either actions or settings. They consist of a command word,
|
||||
followed by zero or more parameter words. If the list of parameter words
|
||||
is of variable length (indicated by "[...]" or "[***]") then it has to be
|
||||
terminated by either the word "--" or the end of argument list or an end of
|
||||
an input line.
|
||||
It is not an error if "--" appears after the parameters of a command
|
||||
with a fixed list length.
|
||||
terminated by either the list delimiter, or the end of argument list, or an
|
||||
end of an input line.
|
||||
.PP
|
||||
At program start the \fBlist delimiter\fR is the word "--". This may be changed
|
||||
by option -list_delimiter in order to allow "--" as argument in a list of
|
||||
variable length. It is advised to reset the delimiter to "--" immediately
|
||||
afterwards.
|
||||
.br
|
||||
For brevity the list delimiter is referred as "--" throughout this text.
|
||||
.br
|
||||
The list delimiter is silently tolerated if it appears after the parameters of
|
||||
a command with a fixed list length. It is handled as normal text if it
|
||||
appears among the arguments of such a command.
|
||||
.PP
|
||||
.B Pattern expansion
|
||||
is a property of some particular commands and not a general
|
||||
@ -384,7 +411,7 @@ to make dialog more comfortable.
|
||||
.PP
|
||||
Readline is an enhancement for the input line. You may know it already from
|
||||
the bash shell. Whether it is available in xorriso depends on the availability
|
||||
of package readline-dev at the time when xorriso was built from its sourcecode.
|
||||
package readline-dev at the time when xorriso was built from its sourcecode.
|
||||
.br
|
||||
It allows to move the cursor over the text in the line by help of the
|
||||
Leftward and the Rightward arrow key.
|
||||
@ -454,8 +481,8 @@ changes.
|
||||
.br
|
||||
-outdev can be performed without previous -dev or -indev. In that case an
|
||||
empty ISO image with no changes pending is created. It can either be populated
|
||||
by help of -add or it can be discarded silently if -dev or -indev are
|
||||
performed afterwards.
|
||||
by help of -map, -add et.al. or it can be discarded silently if -dev or -indev
|
||||
are performed afterwards.
|
||||
.br
|
||||
Special address string "-" means standard output, to which several restrictions
|
||||
apply. See above paragraph "Libburn drives".
|
||||
@ -505,7 +532,7 @@ until the next -dev or -indev. After the image has been loaded once, the
|
||||
setting is valid for -rollback until next -dev or -indev, where it
|
||||
will be reset to "auto".
|
||||
.TP
|
||||
\fB\-rom_toc_scan\fR "on"|"off"
|
||||
\fB\-rom_toc_scan\fR "on"|"off"[:"emul_on"|"emul_off"]
|
||||
Read-only drives do not tell the actual media type but show any media as
|
||||
ROM (e.g. as DVD-ROM). The session history of MMC multi-session media might
|
||||
be truncated to first and last session or even be completely false.
|
||||
@ -516,8 +543,13 @@ especially the address of the last session, there is a scan for ISO 9660
|
||||
filesystem headers which might help but also might yield worse results
|
||||
than the drive's table of content. At its end it can cause read attempts
|
||||
to invalid addresses and thus ugly drive behavior.
|
||||
Setting "on" enables that scan for alleged read-only media.
|
||||
.br
|
||||
To be in effect, -rom_toc_scan has to be enabled by "on" before the -*dev
|
||||
On the other hand the emulation of session history on overwriteable media
|
||||
can hamper reading of partly damaged media. Setting "off:emul_off" disables
|
||||
the elsewise trustworthy table-of-content scan for those media.
|
||||
.br
|
||||
To be in effect, the -rom_toc_scan setting has to be made before the -*dev
|
||||
command which aquires drive and media.
|
||||
.TP
|
||||
\fB\-ban_stdio_write\fR
|
||||
@ -551,11 +583,8 @@ If other file types collide then the setting of command
|
||||
decides.
|
||||
.br
|
||||
Renaming of files has similar collision handling, but directories can only
|
||||
be replaced, not merged. Directories can hardly collide on renaming because
|
||||
of the shell-like behavior of -mv: if a file object hits an existing directory
|
||||
then it gets inserted rather than trying to replace that directory.
|
||||
Nevertheless, the overwriting rules apply if an operation of xorriso
|
||||
ever attempts to do such a replacement.
|
||||
be replaced, not merged. Note that -mv inserts the source objects into an
|
||||
eventual existing target directory rather than attempting to replace it.
|
||||
.PP
|
||||
The commands in this section alter the ISO image and not the local filesystem.
|
||||
.TP
|
||||
@ -680,7 +709,8 @@ Map a byte interval of a regular disk file into a regular file in the ISO
|
||||
image.
|
||||
This may be necessary if the disk file is larger than a single media, or if
|
||||
it exceeds the traditional limit of 2 GiB - 1 for old operating systems,
|
||||
or the limit of 4 GiB - 1 for newer ones.
|
||||
or the limit of 4 GiB - 1 for newer ones. Only the newest Linux kernels
|
||||
seem to read properly files >= 4 GiB - 1.
|
||||
.br
|
||||
A clumsy remedy for this limit is to backup file pieces and to concatenate
|
||||
them at restore time. A well tested chopping size is 2047m.
|
||||
@ -835,21 +865,44 @@ where "A0" is year 2000, "B0" is 2010, etc.
|
||||
\fB\-alter_date_r\fR type timestring iso_rr_path [***]
|
||||
Like -alter_date but affecting all files below eventual directories.
|
||||
.TP
|
||||
\fB\-find\fR iso_rr_path [-name pattern] [-type t] [-exec action [params]] --
|
||||
\fB\-find\fR iso_rr_path [test [test ...]] [-exec action [params]] --
|
||||
A very restricted substitute for shell command find in the ISO image.
|
||||
It performs an action on matching file objects at or below iso_rr_path.
|
||||
.br
|
||||
Optional -name pattern is not expanded but used for comparison with
|
||||
the particular file names of the eventual directory tree underneath
|
||||
iso_rr_path. If no -name pattern is given, then any file name matches.
|
||||
Tests are optional. If they are omitted then action is applied to all file
|
||||
objects. If tests are given then action is applied only if all of them
|
||||
match the file object. Available tests are:
|
||||
.br
|
||||
The optional -type test restricts matching to files of the given type:
|
||||
"block", "char", "dir", "pipe", "file", "link", "socket",
|
||||
-name pattern
|
||||
.br
|
||||
Pattern is not expanded but used for comparison with
|
||||
the particular file names of the eventual directory tree underneath
|
||||
iso_rr_path.
|
||||
.br
|
||||
-type type_letter
|
||||
.br
|
||||
matches only files files of the given type:
|
||||
"block", "char", "dir", "pipe", "file", "link", "socket", "eltorito",
|
||||
"Xotic" which eventually matches what is not matched by the other types.
|
||||
.br
|
||||
Only the first letter is interpreted. E.g.: -find / -type d
|
||||
.br
|
||||
If a file matches then the action is performed. Default action is "echo",
|
||||
-damaged
|
||||
.br
|
||||
matches only files which use data blocks marked as damaged by a previous
|
||||
run of -check_media. The damage info vanishes when a new ISO image gets
|
||||
loaded.
|
||||
.br
|
||||
-undamaged
|
||||
.br
|
||||
matches only files which use data blocks outside the areas marked as damaged.
|
||||
.br
|
||||
-lba_range start_lba block_count
|
||||
.br
|
||||
matches only files which use data blocks within the range of start_lba
|
||||
and start_lba+block_count-1.
|
||||
.br
|
||||
Default action is "echo",
|
||||
i.e. to print the address of the found file. Other actions are certain
|
||||
xorriso commands which get performed on the found files. These commands
|
||||
may have specific parameters. See also their particular descriptions.
|
||||
@ -907,6 +960,25 @@ E.g.:
|
||||
.br
|
||||
-find /uh/oh -name *private* -exec rm_r --
|
||||
.br
|
||||
"report_damage" classifies files whether they hit a data block that is
|
||||
marked as damaged. The result is printed together with the eventual address
|
||||
of the first damaged byte, the maximum span of damages, file size, and the
|
||||
path of the file.
|
||||
.br
|
||||
E.g.:
|
||||
.br
|
||||
-find / -damaged -exec report_damage
|
||||
.br
|
||||
"report_lba" prints files which are associated to image data blocks.
|
||||
It tells the logical block address, the block number, the byte size,
|
||||
and the path of each file. There may be reported more than one
|
||||
line per file if the file is very large. In this case each line has a
|
||||
different extent number in column "xt".
|
||||
.br
|
||||
E.g.:
|
||||
.br
|
||||
-find / -lba_range 302000 50000 -exec report_lba
|
||||
.br
|
||||
"find" performs another run of -find on the matching file address. It accepts
|
||||
the same params as -find, except iso_rr_path.
|
||||
E.g.:
|
||||
@ -924,10 +996,6 @@ other file causes a FAILURE event.
|
||||
\fB\-rmdir\fR iso_rr_path [***]
|
||||
Delete empty directories.
|
||||
.TP
|
||||
\fB\-\-\fR
|
||||
.br
|
||||
Mark end of particular action argument list.
|
||||
.TP
|
||||
\fB\-rollback\fR
|
||||
Discard the manipulated ISO image and reload it from -indev.
|
||||
.TP
|
||||
@ -1052,6 +1120,22 @@ Smaller format size with DVD-RAM or BD-RE means more reserve space.
|
||||
.TP
|
||||
.B Settings for data insertion:
|
||||
.TP
|
||||
\fB\-file_size_limit\fR value [value [...]] --
|
||||
Set the maximum permissible size for a single data file. The values get
|
||||
summed up for the actual limit. If the only value is "off" then the file
|
||||
size is not limited by xorriso. Default is a limit of 100 extents, 4g -2k each:
|
||||
.br
|
||||
-file_size_limit 400g -200k --
|
||||
.br
|
||||
When mounting ISO 9660 filesystems, old operating systems can handle only files
|
||||
up to 2g -1 --. Newer ones are good up to 4g -1 --.
|
||||
You need quite a new Linux kernel to read correctly the final bytes
|
||||
of a file >= 4g if its size is not aligned to 2048 byte blocks.
|
||||
.br
|
||||
xorriso's own data read capabilities are not affected by eventual
|
||||
operating system size limits. They apply to mounting only. Nevertheless,
|
||||
the target filesystem of an -extract must be able to take the file size.
|
||||
.TP
|
||||
\fB\-not_mgt\fR code[:code[...]]
|
||||
Control the behavior of the exclusion lists.
|
||||
.br
|
||||
@ -1188,12 +1272,15 @@ target file objects on disk as well, but "on" is downgraded to "nondir".
|
||||
\fB\-split_size\fR number["k"|"m"]
|
||||
Set the threshold for automatic splitting of regular files. Such splitting
|
||||
maps a large disk file onto a ISO directory with several part files in it.
|
||||
This is necessary if the size of the disk file exceeds 4 GiB - 1.
|
||||
Older operating systems can handle files only if they are smaller than 2 GiB.
|
||||
This is necessary if the size of the disk file exceeds -file_size_limit.
|
||||
Older operating systems can handle files in mounted ISO 9660 filesystems
|
||||
only if they are smaller than 2 GiB resp. 4 GiB.
|
||||
See also option -cut_out for more information about file parts.
|
||||
.br
|
||||
Default is 0 which will exclude files >= 4 GiB by a FAILURE event.
|
||||
A well tested -split_size is 2047m. Sizes of 4 GiB or more are not permissible.
|
||||
Default is 0 which will exclude files larger than -file_size_limit by a
|
||||
FAILURE event.
|
||||
A well tested -split_size is 2047m. Sizes above -file_size_limit are not
|
||||
permissible.
|
||||
.TP
|
||||
.B Settings for result writing:
|
||||
.TP
|
||||
@ -1222,6 +1309,10 @@ Consider this when setting -volid "ISOIMAGE" before executing -dev, -indev,
|
||||
or -rollback.
|
||||
If you insist in -volid "ISOIMAGE", set it again after those commands.
|
||||
.TP
|
||||
\fB\-publisher\fR text
|
||||
Set the publisher string to be written with the next -commit. Permissible
|
||||
are up to 128 characters.
|
||||
.TP
|
||||
\fB\-uid\fR uid
|
||||
User id to be used for all files when the new ISO tree gets written to media.
|
||||
.TP
|
||||
@ -1250,7 +1341,7 @@ for their own decision.
|
||||
.TP
|
||||
\fB\-stream_recording\fR "on"|"off"
|
||||
Setting "on" tries to circumvent the management of defects on DVD-RAM and
|
||||
DVD+RW. Defect management keeps partly damaged media usable. But it reduces
|
||||
BD-RE. Defect management keeps partly damaged media usable. But it reduces
|
||||
write speed to half nominal speed even if the media is in perfect shape.
|
||||
For the case of flawless media, one may use -stream_recording "on" to get
|
||||
full speed.
|
||||
@ -1282,25 +1373,77 @@ xorriso adds the traditional 300k of padding by default to all images.
|
||||
.br
|
||||
For images which will never get to a CD it is safe to use -padding 0 .
|
||||
.TP
|
||||
\fB\-boot_image\fR "any"|"isolinux" "discard"|"keep"|"patch"
|
||||
Defines the handling of an eventual boot image (El-Torito) which has been read
|
||||
from an existing ISO image. All types ("any") can be discarded or kept
|
||||
unaltered. The latter makes only sense if the format of the boot image is
|
||||
.B El Torito bootable ISO images:
|
||||
.PP
|
||||
Contrary to published specifications many BIOSes will load an El Torito
|
||||
object from the first session on media and not from the last one, which
|
||||
gets mounted by default. This makes no problems with overwriteable media,
|
||||
because they appear to inadverted readers as one single session.
|
||||
.br
|
||||
But with multi-session media CD-R[W], DVD-R[W], DVD+R, it implies that the
|
||||
whole bootable system has to reside already in the first session and that
|
||||
the last session still has to bear all files which the booted system expects
|
||||
after eventually mounting the ISO image.
|
||||
.br
|
||||
If ISOLINUX is known to be present on media then it is advised to patch it
|
||||
when a follow-up session gets written. But one should not rely on the
|
||||
capability to influence the bootability of the existing sessions, unless one
|
||||
can assume overwriteable media.
|
||||
.TP
|
||||
\fB\-boot_image\fR "any"|"isolinux" "discard"|"keep"|"patch"|bootspec
|
||||
Defines the handling of an eventual El Torito object which has
|
||||
been read from an existing ISO image or defines how to make a prepared
|
||||
ISOLINUX file set bootable.
|
||||
.br
|
||||
|
||||
All types ("any") of El Torito boot images can be discarded or kept unaltered.
|
||||
The latter makes only sense if the format of the boot image is
|
||||
relocatable without content changes.
|
||||
.br
|
||||
The boot image type "isolinux" can be kept unaltered (not advisable), or
|
||||
discarded, or it can be patched to match its relocation. In the latter case
|
||||
the resulting ISO image is bootable if the boot image was really complying
|
||||
to the isolinux standard.
|
||||
.br
|
||||
Creation of new boot images is not yet possible.
|
||||
An existing boot image of type "isolinux" can be discarded or it can be
|
||||
patched to match its relocation. In the latter case the resulting ISO image
|
||||
stays bootable if the boot image was really produced by ISOLINUX.
|
||||
.br
|
||||
CAUTION:
|
||||
This is an expert option. xorriso is not an expert yet.
|
||||
It cannot recognize the inner form of boot images.
|
||||
This is an expert option.
|
||||
xorriso cannot recognize the inner form of boot images.
|
||||
So the user has already to know about the particular needs of the
|
||||
bootimage which is present on the input media.
|
||||
boot image which is present on the input media.
|
||||
.br
|
||||
Most safe is the default: "any" "discard".
|
||||
.br
|
||||
|
||||
On all media types it is possible to activate a set of ISOLINUX files
|
||||
for booting within the first session. In further sessions an existing boot
|
||||
image can get replaced by a new one, but depending on the media type
|
||||
this may have few effect at boot time. See above.
|
||||
.br
|
||||
The ISOLINUX files have to be added to the ISO image by normal means
|
||||
(image loading, -map, -add, ...) and should reside either in ISO image
|
||||
directory /isolinux or in /boot/isolinux .
|
||||
In that case it suffices to use as bootspec the text "dir=/isolinux" or
|
||||
"dir=/boot/isolinux". E.g.:
|
||||
.br
|
||||
-boot_image isolinux dir=/boot/isolinux
|
||||
.br
|
||||
which bundles these individual settings:
|
||||
.br
|
||||
-boot_image isolinux bin_path=/boot/isolinux/isolinux.bin
|
||||
.br
|
||||
-boot_image isolinux cat_path=/boot/isolinux/boot.cat
|
||||
.br
|
||||
-boot_image isolinux load_size=2048
|
||||
.br
|
||||
bin_path depicts the binary program which is to be started by the BIOS at
|
||||
boot time. It is among the files produced by ISOLINUX.
|
||||
.br
|
||||
An El Torito boot catalog file gets inserted into the ISO image with address
|
||||
cat_path at -commit time.
|
||||
It is subject to normal -overwrite and -reassure processing if there is already
|
||||
a file with the same name.
|
||||
.br
|
||||
The setting of -boot_image will change to "isolinux" "patch" after successful
|
||||
writing of a session with -boot_image "isolinux" bootspec.
|
||||
.TP
|
||||
.B Exception processing:
|
||||
.PP
|
||||
@ -1390,10 +1533,11 @@ of xorriso begin. Only "-report_about" with dash "-" is recognized that way.
|
||||
.TP
|
||||
\fB\-error_behavior\fR occasion behavior
|
||||
Control the program behavior at problem event occasions.
|
||||
For now this applies to occasions "image_loading" which is given while
|
||||
an image tree is read from the input device, and to "file_extraction" which
|
||||
is given with osirrox options like -extract.
|
||||
.br
|
||||
For now this applies only to occasion "image_loading" which is given while
|
||||
an image tree is read from the input device. There are three behaviors
|
||||
available:
|
||||
With "image_loading" there are three behaviors available:
|
||||
.br
|
||||
"best_effort" goes on with reading after events with severity below FAILURE
|
||||
if the threshold of option -abort_on allows this.
|
||||
@ -1403,13 +1547,24 @@ It issues an own FAILURE event.
|
||||
.br
|
||||
"fatal" acts like "failure" but issues the own event as FATAL.
|
||||
This is the default.
|
||||
.br
|
||||
With occasion "file_extraction" there are three behaviors:
|
||||
.br
|
||||
"keep" maintains incompletely extracted files on disk. This is the default.
|
||||
.br
|
||||
"delete" removes files which encountered errors during content extraction.
|
||||
.br
|
||||
"best_effort" starts a revovery attempt by means of -extract_cut.
|
||||
.TP
|
||||
.B Dialog mode control:
|
||||
.TP
|
||||
\fB\-dialog\fR "on"|"off"
|
||||
Enable or disable to enter dialog mode after all arguments
|
||||
are processed. In dialog mode input lines get prompted via
|
||||
readline or from stdin.
|
||||
\fB\-dialog\fR "on"|"off"|"single_line"
|
||||
Enable or disable to enter dialog mode after all arguments are processed.
|
||||
In dialog mode input lines get prompted via readline or from stdin.
|
||||
.br
|
||||
Mode "on" supports input of newline characters witing quotation marks and
|
||||
line continuation by trailing backslash outside quotation marks.
|
||||
Mode "single_line" does not.
|
||||
.TP
|
||||
\fB\-page\fR length width
|
||||
Describe terminal to the text pager. See also above, paragraph Result pager.
|
||||
@ -1645,9 +1800,120 @@ addresses get compared whether they have counterparts below the other address
|
||||
and whether both counterparts match.
|
||||
.TP
|
||||
\fB\-compare_l\fR disk_prefix iso_rr_prefix disk_path [***]
|
||||
Performs -compare_r with each of the disk_path arguments. iso_rr_path will be
|
||||
Perform -compare_r with each of the disk_path arguments. iso_rr_path will be
|
||||
composed from disk_path by replacing disk_prefix by iso_rr_prefix.
|
||||
.TP
|
||||
.B Evaluation of readability and recovery:
|
||||
.PP
|
||||
It is not uncommon that optical media produce read errors. The reasons may be
|
||||
various and get obscured by error correction which is performed by the drives
|
||||
and based on extra data on the media. If a drive returns data then one can
|
||||
quite trust that they are valid. But at some degree of read problems the
|
||||
correction will fail and the drive is supposed to indicate error.
|
||||
.br
|
||||
xorriso can scan the media for readable data blocks, classify them according
|
||||
to their read speed, save them to a file, and keep track of successfuly saved
|
||||
blocks for further tries on the same media.
|
||||
.TP
|
||||
\fB\-check_media\fR [option [option ...]] --
|
||||
Try to read data blocks from the indev drive, eventually copy them to a
|
||||
disk file, and finally report about the encountered quality. Several options
|
||||
may be used to modify the default behavior.
|
||||
.br
|
||||
The options given with this command override the default settings which
|
||||
may have been changed by option -check_media_defaults. See there for a
|
||||
description of options.
|
||||
.br
|
||||
The result list tells intervals of 2 KiB blocks with start address, number
|
||||
of blocks and quality. Qualities which begin with "+" are
|
||||
supposed to be valid readable data. Qualities with "-" are no valid data.
|
||||
.br
|
||||
Alternatively it is possible to report damaged files rather than blocks.
|
||||
.TP
|
||||
\fB\-check_media_defaults\fR [option [option ...]] --
|
||||
Preset options for runs of -check_media, -extract_cut and best_effort
|
||||
file extraction. Eventual options given with -check_media will override the
|
||||
preset options. -extract_cut will override some options automatically.
|
||||
.br
|
||||
An option consists of a keyword, a "=" character, and a value. Options
|
||||
may override each other. So their sequence matters.
|
||||
.br
|
||||
The default setting at program start is:
|
||||
.br
|
||||
use=indev what=tracks min_lba=-1 max_lba=-1 retry=default
|
||||
time_limit=28800 item_limit=100000
|
||||
.br
|
||||
abort_file=/var/opt/xorriso/do_abort_check_media
|
||||
.br
|
||||
data_to='' sector_map='' map_with_volid=off patch_lba0=off report=blocks
|
||||
.br
|
||||
Option "reset=now" restores these startup defaults.
|
||||
.br
|
||||
Non-default options are:
|
||||
.br
|
||||
"report=files" lists the files which use damaged blocks (not with use=outdev).
|
||||
The format is like with find -exec report_damage.
|
||||
.br
|
||||
"report=blocks_files" first lists damaged blocks and then affected files.
|
||||
.br
|
||||
"use=outdev" reads from the output drive instead of the input drive. This
|
||||
avoids loading the ISO image tree from media.
|
||||
.br
|
||||
"what=disc" scans the payload range of a media without respecting track gaps.
|
||||
.br
|
||||
"min_lba=" omits all blocks with addresses lower than the option value.
|
||||
.br
|
||||
"max_lba=" switches to what=disc and omits all blocks above its option value.
|
||||
.br
|
||||
"retry=on" forces read retries with single blocks when the normal read
|
||||
chunk produces a read error. By default, retries are only enabled with CD
|
||||
media. "retry=off" forbits retries for all media types.
|
||||
.br
|
||||
"abort_file=" gives the path of the file which may abort a scan run. Abort
|
||||
happens if the file exists and its mtime is not older than the start time
|
||||
of the run. Use shell command "touch" to trigger this.
|
||||
Other than an aborted program run, this will report the tested and untested
|
||||
blocks and go on with running xorriso.
|
||||
.br
|
||||
"time_limit=" gives the number of seconds after which the scan shall be
|
||||
aborted. This is useful for unattended scanning of media which may else
|
||||
overwork the drive in its effort to squeeze out some readable blocks.
|
||||
Abort may be delayed by the drive gnawing on the last single read operation.
|
||||
Value -1 means unlimited time.
|
||||
.br
|
||||
"item_limit=" gives the number of report list items after which to abort.
|
||||
Value -1 means unlimited item number.
|
||||
.br
|
||||
"data_to=" copies the valid blocks to the file which is given as option value.
|
||||
.br
|
||||
"sector_map=" tries to read the file given by option value as
|
||||
sector bitmap and to store such a map file after the scan run.
|
||||
The bitmap tells which blocks have been read successfully in previous runs.
|
||||
It allows to do several scans on the same media, eventually with intermediate
|
||||
eject, in order to collect readable blocks whenever the drive is lucky enough
|
||||
to produce them. The stored file contains a human readable TOC of tracks
|
||||
and their start block addresses, followed by binary bitmap data.
|
||||
.br
|
||||
"map_with_volid=on" examines tracks whether they are ISO images and eventually
|
||||
prints their volume ids into the human readable TOC of sector_map=.
|
||||
.br
|
||||
"patch_lba0=on" transfers within the data_to= file a copy of the currently
|
||||
loaded session head to the start of that file and patches it to be valid
|
||||
at that position.
|
||||
This makes the loaded session the default session of the image file
|
||||
when it gets mounted or loaded as stdio: drive. But it usually makes
|
||||
the original session 1 inaccessible.
|
||||
.br
|
||||
"patch_lba0=force" performs "patch_lba0=on" even if xorriso believes
|
||||
that the copied data are not valid.
|
||||
.br
|
||||
"patch_lba0=" may also bear a number. If it is 32 or higher it is taken as
|
||||
start address of the session to be copied. In this case it is not necessary to
|
||||
have an -indev and a loaded image. ":force" may be appended after the number.
|
||||
.br
|
||||
"use=sector_map" does not read any media but loads the file given by option
|
||||
sector_map= and processes this virtual outcome.
|
||||
.TP
|
||||
.B osirrox restore options:
|
||||
.PP
|
||||
Normally xorriso only writes to disk files which were given as stdio:
|
||||
@ -1711,6 +1977,21 @@ restored.
|
||||
Performs -extract with each of the iso_rr_path arguments. disk_path will be
|
||||
composed from iso_rr_path by replacing iso_rr_prefix by disk_prefix.
|
||||
.TP
|
||||
\fB\-extract_cut\fR iso_rr_path byte_offset byte_count disk_path
|
||||
Copy a byte interval from a data file out of an ISO image into a newly created
|
||||
disk file.
|
||||
Two restrictions apply:
|
||||
.br
|
||||
The data bytes of iso_rr_path need to be already stored in the loaded ISO image
|
||||
and byte_offset must be a multiple of 2048, e.g. an integer with suffix
|
||||
s, m, or g.
|
||||
.br
|
||||
This option is implemented by a special run of -check_media and governed by
|
||||
most of the options which can be set by -check_media_defaults.
|
||||
Its main purpose is to allow handling of large files if they are not supported
|
||||
by mount -t iso9660 and if the reading system is unable to buffer them as
|
||||
a whole.
|
||||
.TP
|
||||
\fB\-cpx\fR iso_rr_path [***] disk_path
|
||||
Extract single leaf file objects from the ISO image and store them under
|
||||
the address given by disk_path. If more then one iso_rr_path is given then
|
||||
@ -1764,6 +2045,7 @@ Personality "\fBmkisofs\fR" accepts the options listed with:
|
||||
.br
|
||||
Among them: -R (always on), -J, -o, -M, -C, -path-list, -m, -exclude-list,
|
||||
-f, -print-size, -pad, -no-pad, -V, -v, -version, -graft-points,
|
||||
-no-emul-boot, -b, -c, -boot-info-table, -boot-load-size,
|
||||
pathspecs as with xorriso -add.
|
||||
A lot of options are not supported and lead to failure of the mkisofs
|
||||
emulation. Some are ignored, but better do not rely on this tolerance.
|
||||
@ -1894,6 +2176,13 @@ if its start matches the filter text. No wildcards.
|
||||
\fB\-status_history_max\fR number
|
||||
Set maximum number of history lines to be reported with -status "long_history".
|
||||
.TP
|
||||
\fB\-list_delimiter\fR word
|
||||
Set the list delimiter to be used instead of "--". It has to be a single word,
|
||||
must not be empty, not longer than 80 characters, and must not contain
|
||||
quotation marks.
|
||||
.br
|
||||
For brevity the list delimiter is referred as "--" throughout this text.
|
||||
.TP
|
||||
\fB\-temp_mem_limit\fR number["k"|"m"]
|
||||
Set the maximum size of temporary memory to be used for image dependent
|
||||
buffering. Currently this applies to pattern expansion only.
|
||||
@ -1994,7 +2283,9 @@ Manipulating an existing ISO image on the same media
|
||||
.br
|
||||
Copy modified ISO image from one media to another
|
||||
.br
|
||||
Write a ISO image into a pipe
|
||||
Bring a prepared ISOLINUX tree onto media and make it bootable
|
||||
.br
|
||||
Operate on storage facilities other than optical drives
|
||||
.br
|
||||
Perform multi-session runs as of cdrtools traditions
|
||||
.br
|
||||
@ -2007,6 +2298,8 @@ Examples of input timestrings
|
||||
Incremental backup of a few directory trees
|
||||
.br
|
||||
Restore directory trees from a particular ISO session to disk
|
||||
.br
|
||||
Try to retrieve as many blocks as possible from a damaged media
|
||||
.SS
|
||||
.B As superuser learn about available drives
|
||||
Consider to give rw permissions to those users or groups
|
||||
@ -2146,7 +2439,28 @@ first and only session to the output drive.
|
||||
.br
|
||||
-commit -eject all
|
||||
.SS
|
||||
.B Write a ISO image into a pipe
|
||||
.B Bring a prepared ISOLINUX tree onto media and make it bootable
|
||||
The user has already created a suitable file tree on disk and copied the
|
||||
ISOLINUX files into subdirectory ./boot/isolinux of that tree.
|
||||
Now xorriso can burn an El Torito bootable media:
|
||||
.br
|
||||
\fB$\fR xorriso -outdev /dev/sr0 -blank as_needed \\
|
||||
.br
|
||||
-map /home/me/ISOLINUX_prepared_tree / \\
|
||||
.br
|
||||
-boot_image isolinux dir=/boot/isolinux
|
||||
.SS
|
||||
.B Operate on storage facilities other than optical drives
|
||||
Full read-write operation is possible with regular files and block devices:
|
||||
.br
|
||||
\fB$\fR xorriso -dev stdio:/tmp/regular_file ...
|
||||
.br
|
||||
Other writeable file types are supported write-only:
|
||||
.br
|
||||
\fB$\fR xorriso -outdev stdio:/tmp/named_pipe ...
|
||||
.br
|
||||
Among the write-only drives is standard output:
|
||||
.br
|
||||
\fB$\fR xorriso -outdev - \\
|
||||
.br
|
||||
...
|
||||
@ -2272,18 +2586,16 @@ the two disk trees to the media is desired. Begin with blank media and start
|
||||
a new blank media when the run fails due to lack of remaining space on
|
||||
the old one.
|
||||
.br
|
||||
This makes most sense with backups on non-erasable media like CD-R,
|
||||
DVD-R, DVD+R if the full backup leaves substantial remaining capacity
|
||||
This makes sense if the full backup leaves substantial remaining capacity
|
||||
on media and if the expected changes are much smaller than the full backup.
|
||||
An update run will probably save no time but last longer than a full backup.
|
||||
Another good reason may be given if read speed is much higher than write speed.
|
||||
.br
|
||||
With \fBmount\fR option \fB"sbsector="\fR it is possible to access the session
|
||||
trees which represent the older backup versions. With CD media, Linux mount
|
||||
accepts session numbers directly by its option "session=".
|
||||
.br
|
||||
Multi-session media and most overwriteable media written by xorriso can tell
|
||||
the sbsector of a session by xorriso option -toc.
|
||||
the sbsectors of their sessions by xorriso option -toc.
|
||||
.br
|
||||
Sessions on multi-session media are separated by several MB of unused blocks.
|
||||
So with small sessions the payload capacity can become substantially lower
|
||||
@ -2323,7 +2635,21 @@ Avoid to eventually create /home/thomas/restored without rwx-permission.
|
||||
-extract /personal_mail /home/thomas/restored/personal_mail
|
||||
.br
|
||||
-rollback_end
|
||||
.SS
|
||||
.B Try to retrieve as many blocks as possible from a damaged media
|
||||
.br
|
||||
\fB$\fR xorriso -abort_on NEVER -indev /dev/sr0 \\
|
||||
.br
|
||||
-check_media time_limit=1800 report=blocks_files \\
|
||||
.br
|
||||
data_to="$HOME"/dvd_copy sector_map="$HOME"/dvd_copy.map --
|
||||
.br
|
||||
This can be repeated several times, eventually with -eject or with other
|
||||
-indev drives. See the human readable part of "$HOME"/dvd_copy.map for
|
||||
addresses which can be used on "$HOME"/dvd_copy with mount option sbsector=.
|
||||
.br
|
||||
If you want to make the newest session the default mount session, you
|
||||
may add option "patch_lba0=on" to the final -check_media run.
|
||||
.SH FILES
|
||||
.SS
|
||||
.B Startup files:
|
||||
@ -2341,6 +2667,12 @@ to read and execute lines from the following files:
|
||||
.br
|
||||
The files are read in the sequence given above, but none of them is required
|
||||
for xorriso to function properly.
|
||||
.SS
|
||||
.B Runtime control files:
|
||||
.br
|
||||
The default setting of -check_media abort_file= is:
|
||||
.br
|
||||
/var/opt/xorriso/do_abort_check_media
|
||||
.br
|
||||
.SH SEE ALSO
|
||||
.TP
|
||||
|
2786
xorriso/xorriso.c
2786
xorriso/xorriso.c
File diff suppressed because it is too large
Load Diff
@ -150,6 +150,104 @@ int Xorriso_process_msg_queues(struct XorrisO *xorriso, int flag);
|
||||
|
||||
|
||||
|
||||
/* The outlist stack allows to redirect the info and result messages from
|
||||
their normal channels into a pair of string lists which can at some
|
||||
later time be retrieved by the application.
|
||||
These redirection caches can be stacked to allow stacked applications.
|
||||
xorriso itself uses them for internal purposes.
|
||||
*/
|
||||
|
||||
/* A list item able of forming double chained lists */
|
||||
struct Xorriso_lsT;
|
||||
|
||||
/** Maximum number of stacked redirections */
|
||||
#define Xorriso_max_outlist_stacK 32
|
||||
|
||||
/** Enable a new redirection of info and/or result channel. The normal message
|
||||
output and eventual older redirections will not see new messages until
|
||||
the redirection is ended by a call to Xorriso_pull_outlists() with the
|
||||
stack_handle value returned by this call.
|
||||
Redirected output is not written to the files of Xorriso_option_logfile()
|
||||
and the Xorriso_option_pkt_output() protocol will not be applied.
|
||||
@param xorriso The environment handle
|
||||
@param stack_handle returns an id number which is unique as long as
|
||||
its redirection is stacked. It may be re-used after
|
||||
its redirection was pulled from the stack.
|
||||
@param flag Bitfield for control purposes
|
||||
bit0= redirect result channel
|
||||
bit1= redirect info channel
|
||||
If bit0 and bit1 are 0, both channels get redirected.
|
||||
@return 1 on success, <=0 if failure
|
||||
*/
|
||||
int Xorriso_push_outlists(struct XorrisO *xorriso, int *stack_handle,
|
||||
int flag);
|
||||
|
||||
|
||||
/** Disable the redirection given by stack_handle. If it was the current
|
||||
receiver of messages then switch output to the next older redirection
|
||||
resp. to the normal channels if no redirections are stacked any more.
|
||||
The messages collected by the disabled redirection are handed out as
|
||||
two lists. Both lists have to be disposed via Xorriso_lst_destroy_all()
|
||||
when they are no longer needed.
|
||||
The message lists are either NULL or represented by their first
|
||||
Xorriso_lsT item.
|
||||
@param xorriso The environment handle
|
||||
@param stack_handle The id number returned by Xorriso_push_outlists()
|
||||
@param result_list Result and mark messages (usually directed to stdout)
|
||||
@param info_list Info and mark messages (usually directed to stderr)
|
||||
@param flag unused yet, submit 0
|
||||
@return 1 on success, <=0 if failure
|
||||
*/
|
||||
int Xorriso_pull_outlists(struct XorrisO *xorriso, int stack_handle,
|
||||
struct Xorriso_lsT **result_list,
|
||||
struct Xorriso_lsT **info_list, int flag);
|
||||
|
||||
|
||||
/** Obtain the text message from the current list item.
|
||||
@param entry The current list item
|
||||
@param flag unused yet, submit 0
|
||||
@return Pointer to the text content of the list item.
|
||||
This pointer does not have to be freed.
|
||||
*/
|
||||
char *Xorriso_lst_get_text(struct Xorriso_lsT *entry, int flag);
|
||||
|
||||
|
||||
/** Obtain the address of the next item in the chain of messages.
|
||||
An iteration over the output of Xorriso_pull_outlists() starts at the
|
||||
returned result_list resp. info_list and ends when this function returns
|
||||
NULL.
|
||||
@param entry The current list item
|
||||
@param flag unused yet, submit 0
|
||||
@return Pointer to the next list item or NULL if end of list.
|
||||
This pointer does not have to be freed.
|
||||
*/
|
||||
struct Xorriso_lsT *Xorriso_lst_get_next(struct Xorriso_lsT *entry, int flag);
|
||||
|
||||
|
||||
/** Obtain the address of the previous item in the chain of messages.
|
||||
@param entry The current list item
|
||||
@param flag unused yet, submit 0
|
||||
@return Pointer to the previous list item or NULL if start of list.
|
||||
This pointer does not have to be freed.
|
||||
*/
|
||||
struct Xorriso_lsT *Xorriso_lst_get_prev(struct Xorriso_lsT *entry, int flag);
|
||||
|
||||
|
||||
/** Destroy all list items which are directly or indirectly connected to
|
||||
the given link item.
|
||||
Apply this to each of the two list handles obtained by
|
||||
Xorriso_pull_outlists() when the lists are no longer needed.
|
||||
@param lstring *lstring will be freed and set to NULL.
|
||||
It is not dangerous to submit a pointer to a NULL-pointer.
|
||||
@param flag unused yet, submit 0
|
||||
@return -1= lstring was NULL (i.e. wrong use of this call),
|
||||
0= *lstring was already NULL,
|
||||
1= item actually disposed
|
||||
*/
|
||||
int Xorriso_lst_destroy_all(struct Xorriso_lsT **lstring, int flag);
|
||||
|
||||
|
||||
|
||||
/* ---------------------------- Options API ------------------------ */
|
||||
/* See man 1 xorriso for explanation of the particular options */
|
||||
/*
|
||||
@ -203,6 +301,14 @@ int Xorriso_option_cdi(struct XorrisO *xorriso, char *iso_rr_path, int flag);
|
||||
/* Option -cdx */
|
||||
int Xorriso_option_cdx(struct XorrisO *xorriso, char *disk_path, int flag);
|
||||
|
||||
/* Option -check_media */
|
||||
int Xorriso_option_check_media(struct XorrisO *xorriso,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -check_media_defaults */
|
||||
int Xorriso_option_check_media_defaults(struct XorrisO *xorriso,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -chgrp alias -chgrpi , chgrp_r alias chgrpi */
|
||||
/* @param flag bit0=recursive (-chgrp_r)
|
||||
*/
|
||||
@ -308,6 +414,10 @@ int Xorriso_option_error_behavior(struct XorrisO *xorriso,
|
||||
int Xorriso_option_extract(struct XorrisO *xorriso, char *disk_path,
|
||||
char *iso_path, int flag);
|
||||
|
||||
/* Option -extract_cut */
|
||||
int Xorriso_option_extract_cut(struct XorrisO *xorriso, char *iso_rr_path,
|
||||
char *start, char *count, char *disk_path, int flag);
|
||||
|
||||
/* Option -follow */
|
||||
int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
@ -341,6 +451,10 @@ int Xorriso_option_iso_rr_pattern(struct XorrisO *xorriso, char *mode,
|
||||
/* Option -joliet "on"|"off" */
|
||||
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -list_delimiter */
|
||||
int Xorriso_option_list_delimiter(struct XorrisO *xorriso, char *text,
|
||||
int flag);
|
||||
|
||||
/* Option -list_formats */
|
||||
int Xorriso_option_list_formats(struct XorrisO *xorriso, int flag);
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
<P>
|
||||
<H2>Purpose:</H2>
|
||||
xorriso maps file objects from POSIX compliant filesystems
|
||||
xorriso copies file objects from POSIX compliant filesystems
|
||||
into Rock Ridge enhanced ISO 9660 filesystems and allows
|
||||
session-wise manipulation of such filesystems. It can load the management
|
||||
information of existing ISO images and it writes the session results to
|
||||
@ -60,15 +60,15 @@ and to MMC-5 for DVD or BD).
|
||||
GPL software included:<BR>
|
||||
</H2>
|
||||
<DL>
|
||||
<DT>libburn-0.5.1</DT>
|
||||
<DT>libburn-0.5.5</DT>
|
||||
<DD>reads and writes data from and to CD, DVD, BD-RE.</DD>
|
||||
<DD>(founded by Derek Foreman and Ben Jansens,
|
||||
furthered since August 2006 by
|
||||
developed and maintained since August 2006 by
|
||||
Thomas Schmitt from team of libburnia-project.org)</DD>
|
||||
<DT>libisofs-0.6.6</DT>
|
||||
<DT>libisofs-0.6.10</DT>
|
||||
<DD>operates on ISO 9660 filesystem images.</DD>
|
||||
<DD>(By Vreixo Formoso and Mario Danic from team of libburnia-project.org)</DD>
|
||||
<DT>libisoburn-0.2.2</DT>
|
||||
<DT>libisoburn-0.2.8</DT>
|
||||
<DD>coordinates libburn and libisofs, emulates multi-session where needed.</DD>
|
||||
<DD>(By Vreixo Formoso and Thomas Schmitt
|
||||
from team of libburnia-project.org)</DD>
|
||||
@ -98,10 +98,7 @@ Operates on an existing ISO image or creates a new one.
|
||||
Copies files from filesystem into the ISO image.
|
||||
</LI>
|
||||
<LI>
|
||||
Renames or deletes file objects in the ISO image.
|
||||
</LI>
|
||||
<LI>
|
||||
Changes file properties in the ISO image.
|
||||
Changes file properties, renames or deletes file objects in the ISO image.
|
||||
</LI>
|
||||
<LI>
|
||||
Updates ISO subtrees incrementally to match given disk subtrees.
|
||||
@ -111,12 +108,18 @@ Writes result as completely new image or as add-on session
|
||||
to optical media or filesystem objects.
|
||||
</LI>
|
||||
<LI>
|
||||
Can activate ISOLINUX boot images by El Torito boot record.
|
||||
</LI>
|
||||
<LI>
|
||||
Can perform multi-session tasks as emulation of mkisofs and cdrecord.
|
||||
</LI>
|
||||
<LI>
|
||||
Can restore single files and whole trees from ISO image to disk filesystem.
|
||||
</LI>
|
||||
<LI>
|
||||
Can check media for damages and copy readable blocks to disk.
|
||||
</LI>
|
||||
<LI>
|
||||
Scans for optical drives, blanks re-useable optical media, formats media.
|
||||
</LI>
|
||||
<LI>
|
||||
@ -129,9 +132,6 @@ Reads its instructions from command line arguments, dialog, and batch files.
|
||||
<LI>
|
||||
Provides navigation commands for interactive ISO image manipulation.
|
||||
</LI>
|
||||
<LI>
|
||||
Adjustable thresholds for abort, exit value, and problem reporting.
|
||||
</LI>
|
||||
|
||||
</UL>
|
||||
</P>
|
||||
@ -141,6 +141,11 @@ Adjustable thresholds for abort, exit value, and problem reporting.
|
||||
<DL>
|
||||
<DT>Get an overview of drives and their addresses</DT>
|
||||
<DD>#<KBD> xorriso -devices</KBD></DD>
|
||||
<DD><KBD>...</KBD></DD>
|
||||
<DD><KBD>0 -dev '/dev/sr0' rwrw-- : 'TSSTcorp' 'CDDVDW SH-S203B'</KBD></DD>
|
||||
<DD><KBD>1 -dev '/dev/scd1' rwrw-- : 'PHILIPS ' 'SPD3300L'</KBD></DD>
|
||||
<DD><KBD>2 -dev '/dev/hda' rwrw-- : 'HL-DT-ST' 'DVD-ROM GDR8162B'</KBD></DD>
|
||||
<DD><KBD>...</KBD></DD>
|
||||
<DT>Being superuser avoids permission problems with /dev/srN resp. /dev/hdX .
|
||||
</DT>
|
||||
<DT>Ordinary users should then get granted rw access to the /dev files
|
||||
@ -169,7 +174,7 @@ eventually prepare yet unused BD-RE:</DT>
|
||||
<DD>$<KBD> xorriso -dev /dev/sr0 -add /home/me/sounds /home/me/pictures
|
||||
</KBD></DD>
|
||||
|
||||
<DT>Check the result:</DT>
|
||||
<DT>Have a look at the result:</DT>
|
||||
<DD>$<KBD> xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less</KBD></DD>
|
||||
|
||||
<DT>
|
||||
@ -274,6 +279,29 @@ with ".o" or ".swp" which are excluded by options -not_leaf.
|
||||
<HR>
|
||||
</DT>
|
||||
|
||||
<DT>
|
||||
After the user has already created a suitable file tree on disk
|
||||
and copied the ISOLINUX files into subdirectory ./boot/isolinux of
|
||||
that tree, xorriso can burn an El Torito bootable media:
|
||||
</DT>
|
||||
<DD>$<KBD> xorriso -outdev /dev/sr0 -blank as_needed \</KBD></DD>
|
||||
<DD><KBD> -map /home/me/ISOLINUX_prepared_tree / \</KBD></DD>
|
||||
<DD><KBD> -boot_image isolinux dir=/boot/isolinux</KBD></DD>
|
||||
|
||||
<DT>
|
||||
<HR>
|
||||
</DT>
|
||||
|
||||
<DT>ISO images may not only be stored on optical media but also in
|
||||
regular disk files or block devices for full multi-session operation.
|
||||
The prefix "stdio:" indicates that normal file operations are
|
||||
desired rather than MMC drive commands:
|
||||
</DT>
|
||||
<DD>$<KBD> xorriso -dev stdio:/tmp/regular_file ...other.options...</DD>
|
||||
|
||||
<DT>Other file types are suitable only for writing but not for reading:</DT>
|
||||
<DD>$<KBD> xorriso -outdev stdio:/tmp/named_pipe ...other.options...</DD>
|
||||
|
||||
<DT>In batch mode it is possible to operate xorriso in a pipeline
|
||||
with an external consumer of the generated ISO image. Any message
|
||||
output will be redirected to stderr in this case.</DT>
|
||||
@ -301,14 +329,17 @@ One may switch from mkisofs emulation to xorriso's own command mode:
|
||||
<HR>
|
||||
</DT>
|
||||
|
||||
<DT>Enable reverse operation of xorriso and copy some files and a tree to disk:
|
||||
<DT>If for any reason the reading operating system mishandles the ISO image
|
||||
or some files in it, one may enable reverse operation of xorriso and copy
|
||||
files or trees to disk:
|
||||
<DD>$<KBD> xorriso -indev /dev/sr0 \</KBD></DD>
|
||||
<DD><KBD> -osirrox on \</KBD></DD>
|
||||
<DD><KBD> -cpx /pictures/private/horses*/*buttercup* \</KBD></DD>
|
||||
<DD><KBD> -cpx '/pictures/private/horses*/*buttercup*' \</KBD></DD>
|
||||
<DD><KBD> /home/her/buttercup_dir -- \</KBD>
|
||||
<DD><KBD> -extract /sounds /home/her/sounds_from_me</KBD></DD>
|
||||
</DD>
|
||||
|
||||
<DT>Consider to enter dialog mode and use commands like
|
||||
<KBD>-cd , -du , -lsl , -find<KBD>.
|
||||
<DT>
|
||||
<HR>
|
||||
</DT>
|
||||
@ -332,8 +363,8 @@ are interested in using BD-R media.
|
||||
<P>
|
||||
<DL>
|
||||
<DT><H3>Download as source code (see README):</H3></DT>
|
||||
<DD><A HREF="xorriso-0.2.2.pl00.tar.gz">xorriso-0.2.2.pl00.tar.gz</A>
|
||||
(1020 KB).
|
||||
<DD><A HREF="xorriso-0.2.8.pl00.tar.gz">xorriso-0.2.8.pl00.tar.gz</A>
|
||||
(1050 KB).
|
||||
</DD>
|
||||
</DL>
|
||||
</DD>
|
||||
@ -357,29 +388,26 @@ an <A HREF="http://www.opensource.org/">Open Source</A> approved license</DD>
|
||||
</P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
Bug fixes towards xorriso-0.2.0.pl00:
|
||||
<UL>
|
||||
|
||||
<LI>libburn could not access drives /dev/scdN without existing /dev/srN</LI>
|
||||
<P>
|
||||
Bug fixes towards xorriso-0.2.6.pl00:
|
||||
<UL>
|
||||
<LI>A potential buffer overflow has been fixed</LI>
|
||||
<LI>-follow "link" attributed random target filenames to looping links</LI>
|
||||
<LI>-as mkisofs -iso-level was accused to be an unknown option</LI>
|
||||
<!--
|
||||
<LI>- none -</LI>
|
||||
-->
|
||||
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<P>
|
||||
Enhancements towards previous stable version xorriso-0.2.0.pl00:
|
||||
Enhancements towards previous stable version xorriso-0.2.4.pl00:
|
||||
<UL>
|
||||
|
||||
<LI>New option -grow_blindly</LI>
|
||||
<LI>Options -C and -M with -as mkisofs emulation</LI>
|
||||
<LI>Options with -as cdrecord emulation:<BR>
|
||||
-multi , -msinfo , --grow_overwriteable_iso , write_start_address= ,
|
||||
-isosize , tsize=
|
||||
</LI>
|
||||
<LI>make install creates xorriso aliases as symbolic links:
|
||||
osirrox, xorrisofs, xorrecord
|
||||
</LI>
|
||||
<LI>
|
||||
Can serve growisofs if started as xorrisofs, genisofs, mkisofs, genisoimage
|
||||
<LI>Ability to write and maintain bootable ISO images based on ISOLINUX</LI>
|
||||
<LI>New ./configure option --disable-libreadline to make binary more portable
|
||||
</LI>
|
||||
|
||||
</UL>
|
||||
@ -389,15 +417,15 @@ Can serve growisofs if started as xorrisofs, genisofs, mkisofs, genisoimage
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><H3>Development snapshot, version 0.2.3 :</H3></DT>
|
||||
<DD>Bug fixes towards xorriso-0.2.2.pl00:
|
||||
<DT><H3>Development snapshot, version 0.2.9 :</H3></DT>
|
||||
<DD>Bug fixes towards xorriso-0.2.8.pl00:
|
||||
<UL>
|
||||
<LI>- none yet -</LI>
|
||||
<!--
|
||||
-->
|
||||
</UL>
|
||||
</DD>
|
||||
<DD>Enhancements towards stable version 0.2.2.pl00:
|
||||
<DD>Enhancements towards stable version 0.2.8.pl00:
|
||||
<UL>
|
||||
<LI>- none yet -</LI>
|
||||
<!--
|
||||
@ -405,9 +433,9 @@ Can serve growisofs if started as xorrisofs, genisofs, mkisofs, genisoimage
|
||||
</UL>
|
||||
</DD>
|
||||
<DD> </DD>
|
||||
<DD><A HREF="README_xorriso_devel">README 0.2.3</A>
|
||||
<DD><A HREF="xorriso_help_devel">xorriso_0.2.3 -help</A></DD>
|
||||
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.2.3)</A></DD>
|
||||
<DD><A HREF="README_xorriso_devel">README 0.2.9</A>
|
||||
<DD><A HREF="xorriso_help_devel">xorriso_0.2.9 -help</A></DD>
|
||||
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.2.9)</A></DD>
|
||||
<DD> </DD>
|
||||
<DT>If you want to distribute development versions of xorriso, then use
|
||||
this tarball which produces static linking between xorriso and the
|
||||
@ -417,8 +445,8 @@ libburnia libraries.
|
||||
installation see README)
|
||||
</DD>
|
||||
<DD>
|
||||
<A HREF="xorriso-0.2.3.tar.gz">xorriso-0.2.3.tar.gz</A>
|
||||
(1020 KB).
|
||||
<A HREF="xorriso-0.2.9.tar.gz">xorriso-0.2.9.tar.gz</A>
|
||||
(1050 KB).
|
||||
</DD>
|
||||
<DT>A dynamically linked development version of xorriso can be obtained
|
||||
from repositories of
|
||||
|
@ -21,14 +21,16 @@ xorriso_xorriso_CFLAGS = -DXorriso_standalonE -DXorriso_with_maiN -DXorriso_with
|
||||
xorriso_xorriso_LDADD = $(THREAD_LIBS)
|
||||
|
||||
|
||||
# This looks quite ugly with make install: xorriso.c is compiled twice again
|
||||
#
|
||||
# Trying to create a build timestamp file
|
||||
#
|
||||
BUILT_SOURCES = xorriso/xorriso_buildstamp.h
|
||||
# BUILT_SOURCES = xorriso/xorriso_buildstamp.h
|
||||
# phony targets get rebuilt every time
|
||||
.PHONY: xorriso/xorriso_buildstamp.h
|
||||
xorriso/xorriso_buildstamp.h:
|
||||
date -u '+#define Xorriso_build_timestamP "%Y.%m.%d.%H%M%S"' >xorriso/xorriso_buildstamp.h
|
||||
cat xorriso/xorriso_buildstamp.h
|
||||
# .PHONY: xorriso/xorriso_buildstamp.h
|
||||
# xorriso/xorriso_buildstamp.h:
|
||||
# date -u '+#define Xorriso_build_timestamP "%Y.%m.%d.%H%M%S"' >xorriso/xorriso_buildstamp.h
|
||||
# cat xorriso/xorriso_buildstamp.h
|
||||
|
||||
|
||||
xorriso_xorriso_SOURCES = \
|
||||
@ -165,18 +167,17 @@ test_compare_file_SOURCES = test/compare_file.c
|
||||
# Install symbolic links to the xorriso binary
|
||||
#
|
||||
install-exec-hook:
|
||||
if test -e $(bindir)/xorrisofs ; then rm $(bindir)/xorrisofs ; else echo ; fi
|
||||
ln -s xorriso $(bindir)/xorrisofs
|
||||
if test -e $(bindir)/osirrox ; then rm $(bindir)/osirrox ; else echo ; fi
|
||||
ln -s xorriso $(bindir)/osirrox
|
||||
if test -e $(bindir)/xorrecord ; then rm $(bindir)/xorrecord ; else echo ; fi
|
||||
ln -s xorriso $(bindir)/xorrecord
|
||||
if test -e "$(DESTDIR)$(bindir)"/xorrisofs ; then rm "$(DESTDIR)$(bindir)"/xorrisofs ; else echo ; fi
|
||||
ln -s xorriso "$(DESTDIR)$(bindir)"/xorrisofs
|
||||
if test -e "$(DESTDIR)$(bindir)"/osirrox ; then rm "$(DESTDIR)$(bindir)"/osirrox ; else echo ; fi
|
||||
ln -s xorriso "$(DESTDIR)$(bindir)"/osirrox
|
||||
if test -e "$(DESTDIR)$(bindir)"/xorrecord ; then rm "$(DESTDIR)$(bindir)"/xorrecord ; else echo ; fi
|
||||
ln -s xorriso "$(DESTDIR)$(bindir)"/xorrecord
|
||||
|
||||
|
||||
|
||||
# <<< seems to be outperformed by the .PHONY above
|
||||
|
||||
# Trying to create a build timestamp file
|
||||
# Alternative to the disabled .PHONY above.
|
||||
# Trying to create a build timestamp file semi-manually: make buildstamped
|
||||
#
|
||||
buildstamp:
|
||||
date -u '+#define Xorriso_build_timestamP "%Y.%m.%d.%H%M%S"' >xorriso/xorriso_buildstamp.h
|
||||
@ -185,17 +186,7 @@ buildstamp:
|
||||
# For now make buildstamped has to be performed manually.
|
||||
buildstamped: buildstamp
|
||||
make
|
||||
#
|
||||
# Processing of the "all:" rule happens too late.
|
||||
# How to create a dependency of xorriso.c on buildstamp ?
|
||||
# Not working:
|
||||
# Add xorriso_buildstamp.h to xorriso_xorriso_SOURCES and make it depend
|
||||
# on buildstamp. It runs. But at quite random occasions.
|
||||
# xorriso/xorriso_buildstamp.h: buildstamp
|
||||
#
|
||||
# all: buildstamp
|
||||
|
||||
# <<< seems to be outperformed by the .PHONY above
|
||||
|
||||
## ========================================================================= ##
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
#ifndef Xorriso_private_includeD
|
||||
#define Xorriso_private_includeD yes
|
||||
|
||||
#define Xorriso_program_versioN "0.2.2"
|
||||
#define Xorriso_program_versioN "0.2.8"
|
||||
|
||||
/** The source code release timestamp */
|
||||
#include "xorriso_timestamp.h"
|
||||
@ -45,12 +45,12 @@
|
||||
#define Smem_freE free
|
||||
#define SfileadrL 4096
|
||||
|
||||
/* <<< ??? */
|
||||
typedef int (*Cleanup_app_handler_T)();
|
||||
|
||||
struct LinkiteM; /* Trace of hops during symbolic link resolution */
|
||||
struct ExclusionS; /* List of -not_* conditions */
|
||||
struct PermiteM; /* Stack of temporarily altered access permissions */
|
||||
struct SpotlisT; /* List of intervals with different read qualities */
|
||||
struct CheckmediajoB; /* Parameters for Xorriso_check_media() */
|
||||
struct SectorbitmaP; /* Distiniction between valid and invalid sectors */
|
||||
|
||||
|
||||
/* maximum number of history lines to be reported with -status:long_history */
|
||||
@ -65,6 +65,13 @@ struct PermiteM; /* Stack of temporarily altered access permissions */
|
||||
#define Xorriso_rc_nuM 4
|
||||
|
||||
|
||||
/* Default setting for the size limit of single data files:
|
||||
100 extents with 4 GB - 2 kB each = 400 GB - 200 kB
|
||||
*/
|
||||
#define Xorriso_default_file_size_limiT \
|
||||
(((off_t) 400) * ((off_t) 1024*1024*1024) - (off_t) 204800)
|
||||
|
||||
|
||||
struct XorrisO { /* the global context of xorriso */
|
||||
|
||||
int libs_are_started;
|
||||
@ -92,6 +99,8 @@ struct XorrisO { /* the global context of xorriso */
|
||||
int add_plainly;
|
||||
off_t split_size;
|
||||
|
||||
char list_delimiter[81];
|
||||
|
||||
/* >>> put libisofs aspects here <<< */
|
||||
|
||||
int do_joliet;
|
||||
@ -125,6 +134,8 @@ struct XorrisO { /* the global context of xorriso */
|
||||
|
||||
int toc_emulation_flag; /* bit0= bit3 for isoburn_drive_aquire()
|
||||
scan -ROM profiles for ISO sessions
|
||||
bit1= bit4 for isoburn_drive_aquire()
|
||||
do not emulate TOC on overwriteable media
|
||||
*/
|
||||
|
||||
int image_start_mode; /* From what address to load the ISO image
|
||||
@ -151,6 +162,10 @@ struct XorrisO { /* the global context of xorriso */
|
||||
int volset_change_pending; /* whether -commit would make sense */
|
||||
int no_volset_present; /* set to 1 on first failure */
|
||||
|
||||
struct CheckmediajoB *check_media_default;
|
||||
struct SectorbitmaP *in_sector_map; /* eventual sector validity bitmap */
|
||||
|
||||
|
||||
char outdev[SfileadrL];
|
||||
void *out_drive_handle; /* interpreted only by xorrisoburn.c */
|
||||
int dev_fd_1; /* The fd which substitutes for /dev/fd/1 and is
|
||||
@ -172,6 +187,13 @@ struct XorrisO { /* the global context of xorriso */
|
||||
|
||||
int keep_boot_image;
|
||||
int patch_isolinux_image;
|
||||
char boot_image_bin_path[SfileadrL];
|
||||
int boot_image_emul; /* 0=no emulation
|
||||
(1=emulation as hard disk)
|
||||
(2=emulation as floppy)
|
||||
*/
|
||||
char boot_image_cat_path[SfileadrL];
|
||||
off_t boot_image_load_size;
|
||||
|
||||
|
||||
/* XORRISO options */
|
||||
@ -185,7 +207,7 @@ struct XorrisO { /* the global context of xorriso */
|
||||
of self-owned directories during restore
|
||||
*/
|
||||
|
||||
int dialog;
|
||||
int dialog; /* 0=off , 1=single-line , 2=multi-line */
|
||||
|
||||
|
||||
/* Pattern matching facility. It still carries legacy from scdbackup/askme.c
|
||||
@ -212,6 +234,8 @@ struct XorrisO { /* the global context of xorriso */
|
||||
|
||||
int temp_mem_limit;
|
||||
|
||||
off_t file_size_limit;
|
||||
|
||||
struct ExclusionS *disk_exclusions;
|
||||
int disk_excl_mode; /* bit0= on (else off)
|
||||
bit1= parameter too (else rekursion only)
|
||||
@ -226,7 +250,17 @@ struct XorrisO { /* the global context of xorriso */
|
||||
char mark_text[SfileadrL]; /* ( stdout+stderr, M: ) */
|
||||
int packet_output;
|
||||
char logfile[4][SfileadrL];
|
||||
FILE *logfile_fp[4];
|
||||
FILE *pktlog_fp;
|
||||
struct Xorriso_lsT *result_msglists[Xorriso_max_outlist_stacK];
|
||||
struct Xorriso_lsT *info_msglists[Xorriso_max_outlist_stacK];
|
||||
int msglist_flags[Xorriso_max_outlist_stacK]; /* bit0= result is redirected
|
||||
bit1= info is redirected
|
||||
*/
|
||||
int msglist_stackfill;
|
||||
|
||||
int status_history_max; /* for -status long_history */
|
||||
|
||||
|
||||
char report_about_text[20];
|
||||
int report_about_severity;
|
||||
@ -241,6 +275,7 @@ struct XorrisO { /* the global context of xorriso */
|
||||
FILE *errfile_fp;
|
||||
|
||||
int img_read_error_mode; /* 0=best_effort , 1=failure , 2=fatal */
|
||||
int extract_error_mode; /* 0=best_effort , 1=keep , 2=delete */
|
||||
|
||||
char return_with_text[20];
|
||||
int return_with_severity;
|
||||
@ -289,7 +324,7 @@ struct XorrisO { /* the global context of xorriso */
|
||||
struct PermiteM *perm_stack; /* Temporarily altered dir access permissions */
|
||||
|
||||
/* result (stdout, R: ) */
|
||||
char result_line[5*SfileadrL];
|
||||
char result_line[10*SfileadrL];
|
||||
int result_line_counter;
|
||||
int result_page_counter;
|
||||
int result_open_line_len;
|
||||
@ -455,6 +490,76 @@ int Xorriso_auto_chmod(struct XorrisO *xorriso, char *disk_path, int flag);
|
||||
int Xorriso_protect_stdout(struct XorrisO *xorriso, int flag);
|
||||
|
||||
|
||||
/* @param flag bit0= mark untested areas as valid
|
||||
*/
|
||||
int Xorriso_spotlist_to_sectormap(struct XorrisO *xorriso,
|
||||
struct SpotlisT *spotlist,
|
||||
int read_chunk,
|
||||
struct SectorbitmaP **map,
|
||||
int flag);
|
||||
|
||||
int Xorriso_toc_to_string(struct XorrisO *xorriso, char **toc_text, int flag);
|
||||
|
||||
|
||||
struct Xorriso_lsT {
|
||||
char *text;
|
||||
struct Xorriso_lsT *prev,*next;
|
||||
};
|
||||
|
||||
/** Create a new list item with arbitrary byte content.
|
||||
@param lstring The newly created object or NULL on failure
|
||||
@param data An array of bytes to be copied into the new object
|
||||
@param data_len Number of bytes to be copied
|
||||
@param link Xorriso_lsT object to which the new object shall be linked
|
||||
@param flag Bitfield for control purposes
|
||||
bit0= insert before link rather than after it
|
||||
bit1= do not copy data (e.g. because *data is invalid)
|
||||
@return <=0 error, 1 ok
|
||||
*/
|
||||
int Xorriso_lst_new_binary(struct Xorriso_lsT **lstring, char *data,
|
||||
int data_len, struct Xorriso_lsT *link, int flag);
|
||||
|
||||
|
||||
/** Create a new list item with a 0-terminated text as content.
|
||||
@param lstring The newly created object or NULL on failure
|
||||
@param text A 0-terminated array of bytes
|
||||
@param link Xorriso_lsT object to which the new object shall be linked
|
||||
@param flag Bitfield for control purposes
|
||||
bit0= insert before link rather than after it
|
||||
@return <=0 error, 1 ok
|
||||
*/
|
||||
int Xorriso_lst_new(struct Xorriso_lsT **lstring, char *text,
|
||||
struct Xorriso_lsT *link, int flag);
|
||||
|
||||
|
||||
/** Create a new list item at the end of a given list.
|
||||
@param lstring Contains as input a pointer to a pointer to any existing
|
||||
list item. As output this list item pointer will be
|
||||
changed to the address of the new list item.
|
||||
@param data An array of bytes to be copied into the new object
|
||||
@param data_len Number of bytes to be copied
|
||||
@param flag unused yet, submit 0
|
||||
@return <=0 error, 1 ok
|
||||
*/
|
||||
int Xorriso_lst_append_binary(struct Xorriso_lsT **entry,
|
||||
char *data, int data_len, int flag);
|
||||
|
||||
|
||||
/** Destroy a single list item and connect its eventual list neighbors.
|
||||
@param lstring pointer to the pointer to be freed and set to NULL
|
||||
@param flag unused yet, submit 0
|
||||
@return 0= *lstring was alredy NULL, 1= ok
|
||||
*/
|
||||
int Xorriso_lst_destroy(struct Xorriso_lsT **lstring, int flag);
|
||||
|
||||
|
||||
/* Opens the -check_media data copy in for reading and writing
|
||||
*/
|
||||
int Xorriso_open_job_data_to(struct XorrisO *xorriso,
|
||||
struct CheckmediajoB *job, int flag);
|
||||
|
||||
|
||||
|
||||
int Sfile_str(char target[SfileadrL], char *source, int flag);
|
||||
|
||||
double Sfile_microtime(int flag);
|
||||
@ -559,6 +664,11 @@ int Findjob_set_start_path(struct FindjoB *o, char *start_path, int flag);
|
||||
|
||||
int Findjob_get_start_path(struct FindjoB *o, char **start_path, int flag);
|
||||
|
||||
int Findjob_get_lba_damage_filter(struct FindjoB *o, int *start_lba,
|
||||
int *end_lba, int *damage_filter, int flag);
|
||||
|
||||
int Findjob_get_commit_filter(struct FindjoB *o, int *commit_filter, int flag);
|
||||
|
||||
|
||||
struct SplitparT;
|
||||
|
||||
@ -582,33 +692,6 @@ int Splitpart__compose(char *adr, int partno, int total_parts,
|
||||
|
||||
int Splitparts_sort(struct SplitparT *o, int count, int flag);
|
||||
|
||||
struct LstrinG {
|
||||
char *text;
|
||||
struct LstrinG *prev,*next;
|
||||
};
|
||||
|
||||
int Lstring_destroy(struct LstrinG **lstring, int flag);
|
||||
|
||||
int Lstring_destroy_all(struct LstrinG **lstring, int flag);
|
||||
|
||||
/*
|
||||
@param flag Bitfield for control purposes
|
||||
bit0= insert before link rather than after it
|
||||
bit1= do not copy data (e.g. because *data is invalid)
|
||||
*/
|
||||
int Lstring_new_binary(struct LstrinG **lstring, char *data, int data_len,
|
||||
struct LstrinG *link, int flag);
|
||||
|
||||
/*
|
||||
@param flag Bitfield for control purposes
|
||||
bit0= insert before link rather than after it
|
||||
*/
|
||||
int Lstring_new(struct LstrinG **lstring, char *text, struct LstrinG *link,
|
||||
int flag);
|
||||
|
||||
int Lstring_append_binary(struct LstrinG **entry, char *data, int data_len,
|
||||
int flag);
|
||||
|
||||
|
||||
int Permstack_push(struct PermiteM **o, char *disk_path, struct stat *stbuf,
|
||||
int flag);
|
||||
@ -617,5 +700,62 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper,
|
||||
struct XorrisO *xorriso, int flag);
|
||||
|
||||
|
||||
int Spotlist_new(struct SpotlisT **o, int flag);
|
||||
|
||||
int Spotlist_destroy(struct SpotlisT **o, int flag);
|
||||
|
||||
int Spotlist_add_item(struct SpotlisT *o, int start_lba, int blocks,
|
||||
int quality, int flag);
|
||||
|
||||
int Spotlist_count(struct SpotlisT *o, int flag);
|
||||
|
||||
int Spotlist_block_count(struct SpotlisT *o, int flag);
|
||||
|
||||
int Spotlist_sector_size(struct SpotlisT *o, int read_chunk, int flag);
|
||||
|
||||
int Spotlist_get_item(struct SpotlisT *o, int idx,
|
||||
int *start_lba, int *blocks, int *quality, int flag);
|
||||
|
||||
char *Spotlist__quality_name(int quality, char name[80], int flag);
|
||||
|
||||
|
||||
#define Xorriso_read_quality_gooD 0x7fffffff
|
||||
#define Xorriso_read_quality_sloW 0x60000000
|
||||
#define Xorriso_read_quality_partiaL 0x50000000
|
||||
#define Xorriso_read_quality_valiD 0x40000000
|
||||
#define Xorriso_read_quality_untesteD 0x3fffffff
|
||||
#define Xorriso_read_quality_invaliD 0x3ffffffe
|
||||
#define Xorriso_read_quality_tao_enD 0x28000000
|
||||
#define Xorriso_read_quality_off_tracK 0x20000000
|
||||
#define Xorriso_read_quality_unreadablE 0x00000000
|
||||
|
||||
|
||||
int Checkmediajob_new(struct CheckmediajoB **o, int flag);
|
||||
|
||||
int Checkmediajob_destroy(struct CheckmediajoB **o, int flag);
|
||||
|
||||
int Checkmediajob_copy(struct CheckmediajoB *from, struct CheckmediajoB *to,
|
||||
int flag);
|
||||
|
||||
int Sectorbitmap_new(struct SectorbitmaP **o, int sectors, int sector_size,
|
||||
int flag);
|
||||
int Sectorbitmap_destroy(struct SectorbitmaP **o, int flag);
|
||||
int Sectorbitmap_from_file(struct SectorbitmaP **o, char *path, char *msg,
|
||||
int *os_errno, int flag);
|
||||
int Sectorbitmap_to_file(struct SectorbitmaP *o, char *path, char *info,
|
||||
char *msg, int *os_errno, int flag);
|
||||
int Sectorbitmap_set(struct SectorbitmaP *o, int sector, int flag);
|
||||
int Sectorbitmap_set_range(struct SectorbitmaP *o,
|
||||
int start_sector, int sectors, int flag);
|
||||
int Sectorbitmap_is_set(struct SectorbitmaP *o, int sector, int flag);
|
||||
int Sectorbitmap_bytes_are_set(struct SectorbitmaP *o,
|
||||
off_t start_byte, off_t end_byte, int flag);
|
||||
|
||||
int Sectorbitmap_get_layout(struct SectorbitmaP *o,
|
||||
int *sectors, int *sector_size, int flag);
|
||||
|
||||
int Sectorbitmap_copy(struct SectorbitmaP *from, struct SectorbitmaP *to,
|
||||
int flag);
|
||||
|
||||
#endif /* Xorriso_private_includeD */
|
||||
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2008.07.18.120001"
|
||||
#define Xorriso_timestamP "2008.10.12.120001"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -14,14 +14,12 @@
|
||||
#ifndef Xorrisoburn_includeD
|
||||
#define Xorrisoburn_includeD yes
|
||||
|
||||
struct XorrisO;
|
||||
struct FindjoB;
|
||||
|
||||
/* The minimum version of libisoburn to be used with this version of xorriso
|
||||
*/
|
||||
#define xorriso_libisoburn_req_major 0
|
||||
#define xorriso_libisoburn_req_minor 2
|
||||
#define xorriso_libisoburn_req_micro 2
|
||||
#define xorriso_libisoburn_req_micro 8
|
||||
|
||||
int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag);
|
||||
|
||||
@ -279,6 +277,73 @@ int Xorriso_libburn_adr(struct XorrisO *xorriso, char *address_string,
|
||||
*/
|
||||
int Xorriso_msinfo(struct XorrisO *xorriso, int *msc1, int *msc2, int flag);
|
||||
|
||||
/*
|
||||
@param flag bit0= obtain iso_lba from indev
|
||||
bit1= head_buffer already contains a valid head
|
||||
bit2= issue message about success
|
||||
bit3= check whether source blocks are banned by in_sector_map
|
||||
*/
|
||||
int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize,
|
||||
char *head_buffer, struct CheckmediajoB *job,
|
||||
int flag);
|
||||
|
||||
|
||||
struct CheckmediajoB {
|
||||
int use_dev; /* 0= use indev , 1= use outdev , 2= use sector map*/
|
||||
|
||||
int min_lba; /* if >=0 : begin checking at this address */
|
||||
int max_lba; /* if >=0 : read up to this address, else use mode */
|
||||
|
||||
int min_block_size; /* >>> not yet implemented:
|
||||
granularity desired by user
|
||||
*/
|
||||
int mode; /* 0= track by track
|
||||
1= single sweep over libisoburn media capacity
|
||||
>>> 2= single sweep over libburn media capacity
|
||||
*/
|
||||
time_t start_time;
|
||||
int time_limit; /* Number of seconds after which to abort */
|
||||
|
||||
int item_limit; /* Maximum number of media check list items as result */
|
||||
|
||||
char abort_file_path[SfileadrL];
|
||||
|
||||
char data_to_path[SfileadrL];
|
||||
int data_to_fd;
|
||||
off_t data_to_offset; /* usually 0 with image copy, negative with file copy */
|
||||
off_t data_to_limit; /* used with file copy */
|
||||
int patch_lba0;
|
||||
int patch_lba0_msc1;
|
||||
|
||||
char sector_map_path[SfileadrL];
|
||||
struct SectorbitmaP *sector_map;
|
||||
int map_with_volid; /* 0=add quick toc to map file,
|
||||
1=read ISO heads for toc
|
||||
*/
|
||||
|
||||
int retry; /* -1= only try full read_chunk, 1=retry with 2k blocks
|
||||
0= retry with CD, full chunk else
|
||||
*/
|
||||
|
||||
int report_mode; /* 0= print MCL items
|
||||
1= print damaged files
|
||||
*/
|
||||
|
||||
};
|
||||
|
||||
int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
struct CheckmediajoB *job, int flag);
|
||||
|
||||
int Xorriso_extract_cut(struct XorrisO *xorriso,
|
||||
char *img_path, char *disk_path,
|
||||
off_t img_offset, off_t bytes, int flag);
|
||||
|
||||
|
||||
/* A pseudo file type for El-Torito bootsectors as in man 2 stat :
|
||||
For now take the highest possible value.
|
||||
*/
|
||||
#define Xorriso_IFBOOT S_IFMT
|
||||
|
||||
|
||||
#endif /* Xorrisoburn_includeD */
|
||||
|
||||
|
Reference in New Issue
Block a user