Compare commits

..

98 Commits

Author SHA1 Message Date
a21d632153 Tagged release of libisoburn 0.2.8 2008-10-15 13:20:58 +00:00
5eae306db2 Documented changes and release timestamp 2008-10-12 12:40:18 +00:00
8f10ec3032 Version leap to 0.2.8 2008-10-12 12:35:57 +00:00
1dac61c338 Preparing release 2008-10-12 08:50:20 +00:00
04efd40a86 Polishing multi-line dialog 2008-10-10 13:41:07 +00:00
76770e97bf Enabled dialog for multi-lines and newline characters in quotation marks 2008-10-10 13:11:46 +00:00
cb6646d49e Introduced xorriso development compiler script option -no_libreadline 2008-10-09 15:01:06 +00:00
cd92b00f61 Introduced libburn ./configure option --disable-libreadline 2008-10-09 15:00:11 +00:00
a0972af58f Changed newly introduced -rom_toc_scan nonrom_off to off:emul_off 2008-10-08 13:59:37 +00:00
8945bce9ff Polished man xorriso 2008-10-07 15:23:42 +00:00
b4b2572286 libisoburn now demands libisofs-0.6.10 2008-10-06 11:50:08 +00:00
e40ddf8834 Adapted standalone LIBISOFS_*_VERSION to libisofs 0.6.10 2008-10-06 11:42:01 +00:00
afd2f0cd61 libisoburn now demands libburn-0.5.4 2008-10-05 12:53:24 +00:00
e93ab421c2 Adapted standalone BURN_*_VERSION to libburn 0.5.5 2008-10-05 12:52:23 +00:00
e65346cd1b Bug fix: Random target filenames with looping symbolic links 2008-10-05 09:37:44 +00:00
7685ca5d64 -rom_toc_scan nonrom_off disables toc emulation on overwriteables 2008-10-05 07:55:20 +00:00
5d939f185c Relocated the El Torito paragraph in man xorriso 2008-10-04 17:32:45 +00:00
c1c033900e Fine tuning about ./configure option --disable-libreadline 2008-10-02 11:09:20 +00:00
e1c4ed7d17 Introduced xorriso-standalone ./configure option --disable-libreadline 2008-10-02 10:55:28 +00:00
8898c58d3c Enabled -as cdrecord blank=as_needed 2008-10-02 09:27:21 +00:00
18da5ec3f2 Small adjustments about -boot_image 2008-10-02 09:24:58 +00:00
d5ec0342cc Small adjustments about -boot_image 2008-09-30 17:50:14 +00:00
6af8449f5a Mentioned progress and bug fixes in 0.2.7 2008-09-30 10:52:32 +00:00
69a6b4f4a1 Adjustments about -boot_image after testing with various media types 2008-09-30 10:28:46 +00:00
daadfc113d Requiring libisofs-0.6.9 because of bug fixes with El Torito 2008-09-30 10:23:37 +00:00
1625db8bbd Made -boot_image isolinux activation obey -overwrite setting 2008-09-28 11:33:47 +00:00
2026814a80 Standalone version switch to libisofs-0.6.9 (vreixoml 387) to avoid SIGSEGV 2008-09-28 11:29:36 +00:00
722e091460 A first attempt on making bootable ISO images 2008-09-26 16:14:21 +00:00
2d1d4d4b37 Bug fix: -as mkisofs -iso-level was accused to be an unknown option 2008-09-26 12:10:32 +00:00
fdea98935a Trying to get pacifiers of simultaneously running emulations into sync 2008-09-24 15:55:26 +00:00
7044f2cba1 Documented changes and release timestamp 2008-09-20 09:45:17 +00:00
f65dc9aa82 Version leap to 0.2.7 2008-09-20 09:43:55 +00:00
cd999a3661 Changed WARNING about non-writeable media to NOTE severity of blank messages 2008-09-19 12:27:43 +00:00
07a137d64c Switched requirements to libisofs-0.6.8 2008-09-19 10:45:13 +00:00
26f00d4e08 Small change in man page 2008-09-19 09:10:06 +00:00
bffde87102 standalone version switch to libisofs-0.6.8 2008-09-19 09:09:26 +00:00
73a9c16384 standalone version switch to libisofs-0.6.8 2008-09-19 09:07:10 +00:00
d56541d237 Corrected message duplication about emulated sessions on overwriteable media 2008-09-17 19:39:11 +00:00
d7864bd13c Corrected falsely computed default setting of -file_size_limit 2008-09-16 18:52:58 +00:00
bc002b24de Corrected pacifier text (Ticket 141) 2008-09-16 06:05:27 +00:00
8274230e14 Correction about -check_media report and message about image loading 2008-09-13 20:45:42 +00:00
a314fb5e91 I hope this fixes doc stuff 2008-09-11 22:19:46 +00:00
f8154d6fde Issuing message at begin of image loading 2008-09-11 11:43:26 +00:00
b79a0a1f04 Updated web page 2008-09-09 08:30:33 +00:00
16f6de937e Smoothened time estimation with pacifier mkisofs style 2008-09-09 08:25:20 +00:00
410d972188 Bug fix: -format full did not re-format already formatted DVD+RW 2008-09-08 12:16:42 +00:00
5f3f860800 Made use of new libisofs call iso_image_update_sizes() 2008-09-08 09:48:43 +00:00
7f40fbce00 Removed outdated alternative code for support of libisofs-0.6.6 2008-09-07 14:48:05 +00:00
c89012cb1f Documentation polishing 2008-09-06 14:22:17 +00:00
5fbc089f44 Minor documentation polishing 2008-09-05 12:10:27 +00:00
dde99a34a4 Documented forgotten option -publisher 2008-09-05 11:52:17 +00:00
1967c876a6 -commit_eject, -alter_date, -alter_date_r, -pacifier, -prog_help had wrong argument count prediction 2008-09-05 11:50:29 +00:00
262d987004 Updated development feature list 2008-09-05 09:55:37 +00:00
0987770afa New option -list_delimiter 2008-09-05 09:54:38 +00:00
0be7fe3329 New option -check_media_defaults 2008-09-04 10:02:58 +00:00
62dbe3cbd0 New -error_behavior "file_extraction" behavior "best_effort" 2008-09-03 14:33:14 +00:00
1f1439f774 New option -extract_cut 2008-09-02 16:48:59 +00:00
74aa1ed45e Corrected a typo in man page 2008-08-27 17:39:48 +00:00
993ad6b8b4 Reacted on compiler warning 2008-08-27 12:22:23 +00:00
6821aa77b8 New option -file_size_limit, -as mkisofs now supports -iso-level 1 to 3 2008-08-27 12:13:07 +00:00
63b4b64230 Adjusted man page statements about file size limits 2008-08-26 21:04:24 +00:00
ba75c58f0e Adopting next development step of libisofs 2008-08-26 16:33:55 +00:00
1a265f7645 Adjusted HTML generator to recent man page changes 2008-08-26 12:36:12 +00:00
e80a9626ce Documented changes and release timestamp 2008-08-24 18:18:46 +00:00
98fef56409 Version leap to 0.2.5 2008-08-24 17:53:12 +00:00
cec06c2a9a Reacted on compiler warning 2008-08-24 12:54:00 +00:00
32486a5ca2 Fixed a bug with -check_media use=outdev 2008-08-24 12:45:25 +00:00
2745faabd2 New -error_behavior behavior occasion "file_extraction" 2008-08-24 10:07:24 +00:00
0465f55485 New -error_behavior behavior occaseion "file_extraction" 2008-08-24 09:56:49 +00:00
d889ba7077 New -check_media option -patch_lba0= 2008-08-22 23:27:21 +00:00
6eef826c60 Synced -lsl display of major,minor numbers with /usr/include/sys/sysmacros.h 2008-08-21 07:07:23 +00:00
fbc3e6992c Made -check_media process first 32 blocks of a multi-session overwriteable 2008-08-20 18:18:58 +00:00
5abdf19a48 Demanding libburn-0.5.2 now 2008-08-20 12:11:05 +00:00
feb3c10d1a Adopted to new libburn version 0.5.3 2008-08-20 10:15:24 +00:00
96121a70dc New -find action report_lba 2008-08-18 13:42:44 +00:00
552911da11 Reacted on compiler warning 2008-08-17 22:14:50 +00:00
1d1f3a2265 -find tests -damaged and -lba_range, new -find action report_damage 2008-08-17 22:05:48 +00:00
3d23a621b2 Mentioned progress of development version 2008-08-15 16:10:28 +00:00
c6c82c8333 Enabled printing of sector bitmaps by use=sector_map 2008-08-15 15:55:35 +00:00
afc27f89fe Allowed independent redirecton of result and info channel 2008-08-15 10:29:47 +00:00
b5d7d75598 New option -check_media 2008-08-14 22:15:35 +00:00
8ab1fcd4f5 Changed wrong update message from MB to kB 2008-08-14 22:06:22 +00:00
c0cc40121f New capability to redirect program output used for toc in sector map file 2008-08-13 19:08:07 +00:00
9b85bc0fed Corrected documentation of isoburn_disc_get_msc1() 2008-08-13 18:55:31 +00:00
235cbe3dfe Adapted media evaluation to CD peculiarities 2008-08-11 20:17:09 +00:00
0f0a2e4bb5 Evaluating readability of media 2008-08-09 16:14:16 +00:00
1fd02ceba2 Create emulated toc entry for simple ISO session on overwriteable media 2008-08-09 16:10:50 +00:00
784684eb92 Demanding libburn-0.5.1 now 2008-08-09 16:06:18 +00:00
d3b35b50cd Minor changes around display of time and byte counts 2008-08-07 11:26:37 +00:00
8bce9569e1 Removed obsolete function 2008-08-06 14:40:30 +00:00
94f9c9acf8 Removed obsolete type definition 2008-08-06 14:39:30 +00:00
aeb98c3abb Better finish time estimation with -pacifier mkisofs 2008-08-01 14:11:25 +00:00
a6da71ba36 Better finish time estimation with -pacifier mkisofs 2008-08-01 10:13:10 +00:00
ee7f121a25 Producing on overwriteables a partial TOC up to first damaged superblock 2008-07-26 07:51:42 +00:00
0c7086525b Used quotation marks as does ./bootstrap when generating Makefile.in 2008-07-21 16:17:44 +00:00
708be0cde6 Reacting on ticket 138 by stick, revoked buildstamp due to ugly make install 2008-07-21 15:52:59 +00:00
becac4eba6 Introduced automatic buildstamp generation for dynamic library version 2008-07-19 11:30:08 +00:00
319ab37ad9 Version leap to 0.2.3 2008-07-18 14:07:48 +00:00
22 changed files with 5426 additions and 868 deletions

View File

@ -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
View File

@ -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

View File

@ -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)

View File

@ -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.

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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.

View File

@ -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
===============================================================================

View File

@ -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

View File

@ -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)

View File

@ -51,7 +51,7 @@ then
-e 's/<b>Libburn drives:<\/b>/\&nbsp;<BR><b>Libburn drives:<\/b>/' \
-e 's/^-dev /\&nbsp;\&nbsp;-dev /' \
-e 's/^-devices /\&nbsp;\&nbsp;-devices /' \
-e 's/<b>Rock Ridge, POSIX, X\/Open:<\/b>/\&nbsp;<BR><b>Rock Ridge, POSIX, X\/Open:<\/b>/' \
-e 's/<b>Rock Ridge, POSIX, X\/Open, and El Torito:<\/b>/\&nbsp;<BR><b>Rock Ridge, POSIX, X\/Open, and El Torito:<\/b>/' \
-e 's/<b>Command processing:<\/b>/\&nbsp;<BR><b>Command processing:<\/b>/' \
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\&nbsp;<BR><b>Dialog, Readline, Result pager:<\/b>/' \
-e 's/<b>Aquiring source and target drive:<\/b>/\&nbsp;<BR><b>Aquiring source and target drive:<\/b><BR>\&nbsp;<BR>/' \
@ -66,10 +66,12 @@ then
-e 's/^706k = 706kB/\&nbsp;\&nbsp;706k = 706kB/' \
-e 's/^5540k = 5540kB/\&nbsp;\&nbsp;5540k = 5540kB/' \
-e 's/<b>Exception processing:<\/b>/\&nbsp;<BR><b>Exception processing:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>El Torito bootable ISO images:<\/b>/\&nbsp;<BR><b>El Torito bootable ISO images:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Dialog mode control:<\/b>/\&nbsp;<BR><b>Dialog mode control:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Drive and media related inquiry actions:<\/b>/\&nbsp;<BR><b>Drive and media related inquiry actions:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Navigation in ISO image/\&nbsp;<BR><b>Navigation in ISO image/' \
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Evaluation of readability and recovery:<\/b>/\&nbsp;<BR><b>Evaluation of readability and recovery:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>osirrox restore options:<\/b>/\&nbsp;<BR><b>osirrox restore options:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Command compatibility emulations:<\/b>/\&nbsp;<BR><b>Command compatibility emulations:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^<p><b>&minus;as</<p>\&nbsp;<BR><b>\&minus;as</' \

View File

@ -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:

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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);

View File

@ -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>&nbsp;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>&nbsp;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>&nbsp;xorriso -indev /dev/sr0 -du / -- -toc 2>&amp;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>&nbsp;xorriso -outdev /dev/sr0 -blank as_needed \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -map /home/me/ISOLINUX_prepared_tree / \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -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 &quot;stdio:&quot; indicates that normal file operations are
desired rather than MMC drive commands:
</DT>
<DD>$<KBD>&nbsp;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>&nbsp;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>&nbsp;xorriso -indev /dev/sr0 \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -osirrox on \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -cpx /pictures/private/horses*/*buttercup* \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -cpx '/pictures/private/horses*/*buttercup*' \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /home/her/buttercup_dir -- \</KBD>
<DD><KBD>&nbsp;&nbsp; -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>&nbsp;</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>&nbsp;</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

View File

@ -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
## ========================================================================= ##

View File

@ -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 */

View File

@ -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

View File

@ -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 */