Compare commits

..

5 Commits
1.0.8 ... 1.0.0

59 changed files with 919 additions and 9197 deletions

View File

@ -1,8 +1,8 @@
Mario Danic <mario.danic@gmail.com>,
Vreixo Formoso <metalpain2002@yahoo.es>
Thomas Schmitt <scdbackup@gmx.net>
libisoburn is Copyright (C) 2007-2011 Vreixo Formoso, Thomas Schmitt
xorriso is Copyright (C) 2007-2011 Thomas Schmitt
libisoburn is Copyright (C) 2007-2010 Vreixo Formoso, Thomas Schmitt
xorriso is Copyright (C) 2007-2010 Thomas Schmitt
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2

View File

@ -1,54 +1,6 @@
libisoburn-1.0.8.pl00.tar.gz Thu Apr 14 2011
SVN trunk (to become libisoburn-1.0.2.pl00.tar.gz)
===============================================================================
* Bug fix: mkisofs emulation could ignore options (regression in 0.1.6)
libisoburn-1.0.6.pl00.tar.gz Sat Apr 9 2011
===============================================================================
* Bug fix: -as mkisofs padding did not work (regression in 1.0.4)
* Bug fix: Options -gid and -uid had no effect
* New API call isoburn_set_truncate()
* New relax option isoburn_igopt_joliet_long_names
* New option -early_stdio_test
* New options -print_info and -print_mark
* New -compliance option joliet_long_names
* -as mkisofs option -joliet-long is now fully functional
* Burning DVD-R DAO with 2 kB size granularity rather than 32 kB
libisoburn-1.0.4.pl00.tar.gz Thu Mar 10 2011
===============================================================================
libisoburn novelties:
* New isoburn_ropt_set_extensions() option isoburn_ropt_nomd5tag
xorriso novelties:
* Bug fix: xorrisofs did not work under growisofs -M (version 1.0.0 was ok)
* Bug fix: -as mkisofs -C attempted to read volume header of blank media
* Bug fix: -as mkisofs -old-root did not work with -graft-points
* Bug fix: -as mkisofs -partition_hd_cyl had no effect
* Bug fix: -as mkisofs did not properly unescape target part of pathspecs
* Bug fix: isohybrid image size was not aligned to cylinder boundary
* Bug fix: Compilation without zlib failed
* New -padding modes "included" and "appended"
* New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
* New -as mkisofs and -as cdrecord option --no_rc
* Own man page and info document for xorrisofs
libisoburn-1.0.2.pl00.tar.gz Mon Feb 23 2011
===============================================================================
libisoburn novelties:
* Removed compiler obstacles of GNU xorriso on Solaris 9
* New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty
xorriso novelties:
* Bug fix: Images produced with -for_backup might be unreadable and
also fail -check_md5 verification.
* Bug fix: mkisofs emulation options -l , -full-iso9660-filenames did not work.
* Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
* Bug fix: ECMA-119 standards violation with Volume Descriptor Set Terminator
* New options -clone and -cp_clone
* New -find actions update_merge, rm_merge, clear_merge
* New -as mkisofs option -max-iso9660-filenames
* New -as mkisofs option --old-empty
* New -as mkisofs options -root , -old-root
* New -as mkisofs options --old-root-no-md5, --old-root-no-ino, --old-root-dev
- no novelties yet
libisoburn-1.0.0.pl00.tar.gz Mon Jan 17 2011
===============================================================================
@ -120,7 +72,7 @@ xorriso novelties:
* New -as mkisofs option --boot-catalog-hide
* New option -hide, -find action -hide, -find test -hidden
* New -boot_image bootspec cat_hidden=on
* New options -copyright_file , -biblio_file , -abstract_file
* New options -copright_file , -biblio_file , -abstract_file
* New find test -disk_name
* Enabled use of libreadline on Solaris
* Bug fix: -check_media patch_lba0= could install wrong image size

View File

@ -219,13 +219,9 @@ indent: $(indent_files)
nodist_pkgconfig_DATA = \
libisoburn-1.pc
man_MANS = \
xorriso/xorriso.1 \
xorriso/xorrisofs.1
man_MANS = xorriso/xorriso.1
info_TEXINFOS = \
xorriso/xorriso.texi \
xorriso/xorrisofs.texi
info_TEXINFOS = xorriso/xorriso.texi
EXTRA_DIST = \
libisoburn-1.pc.in \
@ -233,7 +229,6 @@ EXTRA_DIST = \
doc/comments \
doc/doxygen.conf.in \
doc/partition_offset.wiki \
doc/startup_file.txt \
README \
AUTHORS \
CONTRIBUTORS \

15
README
View File

@ -4,7 +4,7 @@
libisoburn and xorriso. 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-1.0.8.pl00.tar.gz
http://files.libburnia-project.org/releases/libisoburn-1.0.0.pl00.tar.gz
Copyright (C) 2006-2011 Vreixo Formoso, Thomas Schmitt.
Provided under GPL version 2 or later.
------------------------------------------------------------------------------
@ -34,17 +34,17 @@ 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-1.0.8 :
- libburn.so.4 , version libburn-1.0.6 or higher
- libisofs.so.6 , version libisofs-1.0.6 or higher
Dynamic library and compile time header requirements for libisoburn-1.0.0 :
- libburn.so.4 , version libburn-1.0.0 or higher
- libisofs.so.6 , version libisofs-1.0.0 or higher
libisoburn and xorriso will not start with libraries which are older than their
include headers seen at compile time.
Obtain libisoburn-1.0.8.pl00.tar.gz, take it to a directory of your choice
Obtain libisoburn-1.0.0.pl00.tar.gz, take it to a directory of your choice
and do:
tar xzf libisoburn-1.0.8.pl00.tar.gz
cd libisoburn-1.0.8
tar xzf libisoburn-1.0.0.pl00.tar.gz
cd libisoburn-1.0.0
Within that directory execute:
@ -81,7 +81,6 @@ xorriso binary depending on libburn.so, libisofs.so, libisoburn.so.
After installation documentation is available via
man xorriso
man xorrisofs
Several alias links point to the xorriso binary:
xorrisofs starts xorriso with -as mkisofs emulation already enabled

View File

@ -1,4 +1,4 @@
AC_INIT([libisoburn], [1.0.8], [http://libburnia-project.org])
AC_INIT([libisoburn], [1.0.0], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -23,7 +23,7 @@ dnl
dnl These three are only copies to provide libtool with unused LT_RELEASE
ISOBURN_MAJOR_VERSION=1
ISOBURN_MINOR_VERSION=0
ISOBURN_MICRO_VERSION=8
ISOBURN_MICRO_VERSION=0
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
@ -36,16 +36,16 @@ dnl Libtool versioning
dnl Generate libisoburn.so.1.x.y
dnl SONAME will become LT_CURRENT - LT_AGE
dnl
dnl ts B10414
dnl This is the release version 1.0.8 = libisoburn.so.1.65.0
dnl ### This is the development version after above stable release
dnl ts B10116
dnl This is the release version 1.0.0 = libisoburn.so.1.57.0
dnl This is the development version after above stable release
dnl LT_CURRENT++, LT_AGE++ have not happened yet.
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
dnl
dnl SONAME = 66 - 65 = 1 . Library name = libisoburn.so.1.65.0
dnl SONAME = 58 - 57 = 1 . Library name = libisoburn.so.1.57.0
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
LT_CURRENT=66
LT_AGE=65
LT_CURRENT=58
LT_AGE=57
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@ -302,8 +302,8 @@ AC_CHECK_HEADER(libisofs/libisofs.h)
# ------- Visible mark in configure : Start of library check
dnl Check for proper library versions
LIBBURN_REQUIRED=1.0.6
LIBISOFS_REQUIRED=1.0.6
LIBBURN_REQUIRED=1.0.0
LIBISOFS_REQUIRED=1.0.0
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)

View File

@ -18,7 +18,7 @@ Imaging:
[#boot_arch For which architectures xorriso is able to create bootable images ?]
[#isohybrid How to enable booting from USB stick ?]
[#isohybrid What is isohybrid MBR useful for ?]
[#partition_offset What is partition offset feature all about?]
@ -36,8 +36,6 @@ Miscellaneous:
[#xorriso_dialog_mode What is xorriso dialog mode useful for ?]
[#version_numbers Why is every second release missing ?]
----------------------------------------------------------------------------
'''Burning'''
----------------------------------------------------------------------------
@ -45,7 +43,7 @@ Miscellaneous:
===== What is the difference between cdrskin and xorriso ? ===== #diff_cdrskin_xorriso
[wiki:Cdrskin cdrskin] is a dedicated emulator of program cdrecord, based on
libburn. It tries to be as similar to cdrecord as is possible under that
libburn. It tries to be as similar as cdrecord as is possible under that
premise.
[wiki:Xorriso xorriso] is an integrated tool which creates, loads, manipulates,
@ -81,9 +79,9 @@ Machines which support EFI may either boot via El Torito or use the files
of the ISO image directly. It is possible to append to the ISO image a
writeable FAT12 partition where files for EFI may be stored and changed.
===== How to enable booting from USB stick ? ===== #isohybrid
===== What is isohybrid MBR useful for ? ===== #isohybrid
The ISOLINUX boot loader is normally started from CD, DVD or BD media
The ISOLINUX boot manager system is normally started from CD, DVD or BD media
by a PC-BIOS via an El Torito boot record. But if the ISO image resides on an
USB stick or another hard-disk-like device, then PC-BIOS ignores El Torito
and rather expects a Master Boot Record (MBR). Both boot record types can
@ -217,15 +215,6 @@ xorriso's stdin and stdout. This is more efficient than forking xorriso
every now and then to perform various commands in order to complete
complex tasks like image size prediction.
===== Why is every second release missing ? ===== #version_numbers
Releases have an even third version number. Like 0.5.6 or 1.0.4.
During development the next higher odd number is used. E.g. 0.5.7 or 1.0.5.
The content of release tarballs does not get changed without changing
their name. The development tarballs of xorriso and cdrskin may change
their content without notice.
----------------------------------------------------------------------------
Site maintainer: Do not edit this wiki directly but rather the SVN version
of libisoburn/trunk/doc/faq.wiki. When done, paste it into the wiki editor.

View File

@ -46,10 +46,6 @@ are non-zero. But to avoid any assumptions, all 32 kB get copied here.
{{{
dd if=RIPLinux-9.3-non-X.iso bs=1K count=32 of=RIPLinux-9.3-non-X.sysarea
}}}
Normally the System Area file with its MBR is provided by the Syslinux
installation under the name isohdp[fp]x*.bin .
E.g. /usr/lib/syslinux/isohdpfx.bin
The files of the image are made accessible for reading
{{{
mount -o loop RIPLinux-9.3-non-X.iso /mnt
@ -82,7 +78,7 @@ and plugged into a Debian system.
yields
{{{
Device Boot Start End Blocks Id System
/dev/sdb1 * 64 120831 60384 17 Hidden HPFS/NTFS
/dev/sdb1 * 64 119215 59576 17 Hidden HPFS/NTFS
}}}
I can mount /dev/sdb and /dev/sdb1 alike:
@ -131,7 +127,7 @@ was edited to replace in the options of the xorriso command:
}}}
by
{{{
-partition_offset 16 -no-pad
-partition_offset 16 -no-pad --no-emul-toc
}}}
Then GRUB 2 was built and installed.
@ -142,24 +138,10 @@ The resulting image from
was put onto USB stick. It passed the same tests on Debian
as above RIPLinux example. It boots to a GRUB prompt.
Due to option -no-pad the image is about 250 kB smaller than
Due to options -no-pad --no-emul-toc the image is about 300 kB smaller than
the image produced by original grub-mkrescue. Else it would have grown by
about 50 kB.
Unpadded ISO images are safe except for burning on CD in TAO mode.
In this case problems may occur with reading the last few data blocks.
So when burning onto CD make sure to require SAO mode and/or to
require padding by 300 KiB.
Burning on DVD or BD needs no such caution. Neither does copying
on USB stick or hard disk.
Program fdisk will complain about "different physical/logical" addresses.
This can be silenced by adding option
{{{
-partition_cyl_align on
}}}
at the cost of image padding up to the next full MiB.
E.g. by 402 KiB to 2 MiB.
about 130 kB. The mkisofs emulation of newer versions of xorriso has
--no-emul-toc as default. Thus the overhead would only be about 50 kB.
--------------------------------------------------------------------------
@ -172,19 +154,26 @@ preparations.
- If not to be marked bootable:
What equipment would the partition need to justify having the mark ?
- I am still puzzled by the cylinder-head-sector ambiguity. How does a reader
of the partition table determine the numbers for heads/cylinder and
sectors/head ?
fdisk tells about my /dev/sdb
{{{
105 heads, 17 sectors/track, 2193 cylinders, total 3915776 sectors
}}}
My partiton table rather was computed with 255 heads/cylinder, 63 sectors/head
Debian does not mind the difference. (It uses the 32 bit LBAs, i assume.)
------------------------------------------------------------------------
Application:
The partition offset feature can be controlled by libisofs API calls
The partition offset feature can be controlled by libisofs API call
{{{
int iso_write_opts_set_part_offset(IsoWriteOpts *opts,
uint32_t block_offset_2k,
int secs_512_per_head,
int heads_per_cyl);
int iso_write_opts_set_system_area(IsoWriteOpts *opts, char data[32768],
int options, int flag);
}}}
resp. by libisoburn calls
{{{
@ -195,24 +184,13 @@ int isoburn_igopt_set_part_offset(struct isoburn_imgen_opts *opts,
int isoburn_igopt_get_part_offset(struct isoburn_imgen_opts *opts,
uint32_t *block_offset_2k,
int *secs_512_per_head, int *heads_per_cyl);
int isoburn_igopt_set_system_area(struct isoburn_imgen_opts *o,
char data[32768], int options);
int isoburn_igopt_get_system_area(struct isoburn_imgen_opts *o,
char data[32768], int *options);
}}}
resp. by xorriso options
{{{
-boot_image any partition_offset=(2kb_block_adr)
-boot_image any partition_sec_hd=(number)
-boot_image any partition_hd_cyl=(number)
-boot_image any partition_cyl_align(on|auto|off)
-as mkisofs ... -partition_offset (2kb_block_adr) \
-partition_hd_cyl (number) \
-partition_sec_hd (number) \
-partition_cyl_align (on|auto|off) ...
-as mkisofs ... -partition_offset (2kb_block_adr) ...
}}}
As stated above, an offset larger than 16 would expose vital parts of the

View File

@ -1,22 +0,0 @@
# This is an example for a xorriso startup file.
# If found at one of the following addresses then its text lines will get
# executed by xorriso as commands before any of its program arguments:
# /etc/default/xorriso
# /etc/opt/xorriso/rc
# /etc/xorriso/xorriso.conf
# $HOME/.xorrisorc
# Note: Command -no_rc as first program argument prevents this execution.
# Disallow the use of hard disk /dev/sda and its partitions as
# pseudo-drive (e.g. as output target of an ISO image).
-drive_class banned /dev/sda*
# Allow the use of /dev/sdb, /dev/sdc, and /dev/sdd as pseudo-drives
# without the prefix "stdio:" which is usually required for device addresses
# which begin by "/dev/" but represent no CD drives.
-drive_class harmless /dev/sd[bcd]

View File

@ -6,7 +6,7 @@
*/
/* libburn wrappers for libisoburn
Copyright 2007 - 2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007 - 2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
*/
@ -240,7 +240,6 @@ LIBJTE_MISCONFIGURATION_ = 0;
sprintf(msg+strlen(msg), "Cannot initialize libburn\n");
return(0);
}
burn_version(&major, &minor, &micro);
sprintf(msg+strlen(msg), "libburn-%d.%d.%d ", major, minor, micro);
if(major > burn_header_version_major
@ -344,8 +343,7 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag)
static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
int flag)
{
int ret, lba, nwa, profile, readonly= 0, role, random_access;
int emulation_started= 0;
int ret, lba, nwa, profile, readonly= 0;
struct burn_multi_caps *caps= NULL;
struct isoburn_toc_entry *t;
char profile_name[80];
@ -384,18 +382,16 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
(*o)->fabricated_disc_status= BURN_DISC_APPENDABLE;
#endif
role= burn_drive_get_drive_role(d);
random_access= caps->start_adr || role == 4;
if(random_access)
if(caps->start_adr)
(*o)->emulation_mode= 1;
if(random_access && !readonly) { /* set emulation to overwriteable */
if(caps->start_adr && !readonly) { /* set emulation to overwriteable */
ret= isoburn_is_intermediate_dvd_rw(d, 0);
if(ret>0) {
(*o)->min_start_byte= 0;
(*o)->nwa= 0;
(*o)->zero_nwa= 0;
}
if((flag & 1) && role != 4 && role != 5) {
if(flag&1) {
(*o)->nwa= (*o)->zero_nwa;
(*o)->fabricated_disc_status= BURN_DISC_BLANK;
} else {
@ -404,7 +400,6 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
(*o)->emulation_mode= -1;
goto ex;
}
emulation_started= 1;
/* try to read emulated toc */
ret= isoburn_emulate_toc(d, flag & 16);
if(ret<0) {
@ -445,12 +440,6 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
if((flag & 16) || track_count >= 2) {
ret= 0; /* toc emulation off, or not overwriteable */
} else {
ret= isoburn_start_emulation(*o, 1);
if(ret<=0) {
(*o)->emulation_mode= -1;
goto ex;
}
emulation_started= 1;
ret= isoburn_emulate_toc(d, 1);
if(ret<0)
goto ex;
@ -463,13 +452,6 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
CD-R TOC (profile 0x08) can be trusted. Others not.
Do a scan search of ISO headers.
*/
if(!emulation_started) {
ret= isoburn_start_emulation(*o, 1);
if(ret<=0) {
(*o)->emulation_mode= -1;
goto ex;
}
}
ret= isoburn_emulate_toc(d, 1|2);
if(ret<0)
goto ex;
@ -653,7 +635,7 @@ int isoburn_disc_erasable(struct burn_drive *d)
void isoburn_disc_erase(struct burn_drive *drive, int fast)
{
int ret, do_pseudo_blank= 0, role;
int ret, do_pseudo_blank= 0;
struct isoburn *o;
enum burn_disc_status s;
char zero_buffer[Libisoburn_target_head_sizE];
@ -666,15 +648,7 @@ void isoburn_disc_erase(struct burn_drive *drive, int fast)
burn_drive_cancel(drive);
goto ex;
}
role = burn_drive_get_drive_role(drive);
if (role == 5) {
/* libburn will truncate the random-access write-only file
to zero size and change its state */
burn_disc_erase(drive, fast);
o->fabricated_disc_status= burn_disc_get_status(drive);
o->nwa= 0;
goto ex;
}
if(o->emulation_mode > 0) { /* might be readonly with emulated sessions */
ret= burn_disc_get_multi_caps(drive, BURN_WRITE_NONE, &caps, 0);
if(ret > 0 && caps->start_adr)
@ -806,29 +780,6 @@ int isoburn_get_msc2(struct isoburn *o,
return(1);
}
/* @param flag bit0= truncate (else do not truncate)
bit1= do not warn if call is inappropriate to drive
bit2= only set if truncation is currently enabled
*/
int isoburn_set_truncate(struct burn_drive *drive, int flag)
{
int ret;
struct isoburn *o;
ret= isoburn_find_emulator(&o, drive, 0);
if(ret < 0)
return ret;
if(o == NULL) {
if(!(flag & (2 | 4)))
isoburn_msgs_submit(o, 0x00060000,
"Drive type or role is inappropriate for truncation", 0, "WARNING", 0);
return(0);
}
if(o->truncate || !(flag & 4))
o->truncate= flag & 1;
return(1);
}
void isoburn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc)
{
@ -877,6 +828,7 @@ void isoburn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc)
return;
}
/* end of DVD-RW oriented check */
burn_write_opts_set_start_byte(opts, nwa * (off_t) 2048);
}
}
@ -908,7 +860,7 @@ void isoburn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc)
if(o->truncate) {
ret= burn_drive_get_drive_role(drive);
if(ret == 2 || ret == 5) {
if(ret==2) {
ret= burn_drive_d_get_adr(drive, adr);
if(ret>0) {
ret= lstat(adr, &stbuf);
@ -1190,28 +1142,21 @@ int isoburn_read_iso_head(struct burn_drive *d, int lba,
unsigned char buffer[64*1024];
int ret, info_mode, capacity, role;
off_t data_count, to_read;
enum burn_disc_status s;
info_mode= flag&255;
*image_blocks= 0;
if(flag&(1<<13)) {
memcpy(buffer, info, 64*1024);
} else {
memset(buffer, 0, 64 * 1024);
s= isoburn_disc_get_status(d);
role = burn_drive_get_drive_role(d);
if (role == 3 || role == 5)
/* >>> ??? return always 0 ? */
return(-1*!!(flag&(1<<15)));
ret = burn_get_read_capacity(d, &capacity, 0);
if (ret <= 0 && (role == 2 || role == 4)) {
if (ret <= 0 && role == 2) {
/* Might be a block device on a system where libburn cannot determine its
size. Try to read anyway. */
capacity = 0x7ffffff0;
ret = 1;
}
memset(buffer, 0, 64 * 1024);
to_read= (off_t) capacity * ((off_t) 2048);
if(ret > 0 && to_read >= (off_t) (36 * 1024)) {
if(to_read >= (off_t) (64 * 1024))
@ -1297,16 +1242,15 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
ret= burn_get_read_capacity(d, &readable_blocks, 0);
if(ret <= 0) {
role = burn_drive_get_drive_role(d);
if (role == 2 || role == 4)
if (role == 2)
/* Might be a block device on a system where libburn cannot determine its
size. Try to read anyway. */
readable_blocks= 0x7ffffff0; /* try to read anyway */
else
readable_blocks= -1;
}
if(o->fabricated_disc_status == BURN_DISC_BLANK)
{ret= 0; goto failure;}
start_time= last_pacifier= time(NULL);
lba= 0;
@ -1779,7 +1723,6 @@ int isoburn_set_msc1(struct burn_drive *d, int adr_mode, char *adr_value,
static int max_mode_names= 4;
regex_t re;
regmatch_t match[1];
enum burn_disc_status s;
ret= isoburn_find_emulator(&o, d, 0);
if(ret<0)
@ -1840,14 +1783,6 @@ not_found:;
} else if(adr_mode==3) {
o->fabricated_msc1= adr_num;
s= isoburn_disc_get_status(d);
if(o->fabricated_msc1 > 0 && s != BURN_DISC_FULL
&& s != BURN_DISC_APPENDABLE) {
isoburn_msgs_submit(o, 0x00060000,
"Non-zero load offset given with blank input media",
0, "FAILURE", 0);
ret= 0; goto ex;
}
if((flag & 1) && o->fabricated_msc1 >= 16) {
/* adr_num is possibly 16 blocks too high */
ret= isoburn_read_iso_head(d, o->fabricated_msc1, &size,volid, 1|(1<<14));

View File

@ -465,7 +465,6 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
if(opts->hardlinks)
iso_write_opts_set_rrip_1_10_px_ino(wopts, 1);
iso_write_opts_set_aaip(wopts, opts->aaip);
iso_write_opts_set_old_empty(wopts, !!opts->old_empty);
iso_write_opts_set_untranslated_name_len(wopts, opts->untranslated_name_len);
iso_write_opts_set_allow_dir_id_ext(wopts, opts->allow_dir_id_ext);
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers);
@ -477,7 +476,6 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
iso_write_opts_set_allow_full_ascii(wopts, opts->allow_full_ascii);
iso_write_opts_set_relaxed_vol_atts(wopts, 1);
iso_write_opts_set_joliet_longer_paths(wopts, opts->joliet_longer_paths);
iso_write_opts_set_joliet_long_names(wopts, opts->joliet_long_names);
iso_write_opts_set_always_gmt(wopts, opts->always_gmt);
iso_write_opts_set_rrip_version_1_10(wopts, opts->rrip_version_1_10);
iso_write_opts_set_dir_rec_mtime(wopts, opts->dir_rec_mtime);
@ -792,7 +790,7 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
o->noacl= !!(ext & 64);
o->noea= !!(ext & 128);
o->noino= !!(ext & 256);
o->nomd5= (ext >> 9) & 3;
o->nomd5= !!(ext & 512);
return(1);
}
@ -802,7 +800,7 @@ int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext)
*ext= (!!o->norock) | ((!!o->nojoliet)<<1) | ((!!o->noiso1999)<<2) |
((!!o->preferjoliet)<<3) | ((!!o->pretend_blank)<<4) |
((!!o->noaaip) << 5) | ((!!o->noacl) << 6) | ((!!o->noea) << 7) |
((!!o->noino) << 8) | ((o->nomd5 & 3) << 9);
((!!o->noino) << 8) | ((!!o->nomd5) << 9);
return(1);
}
@ -936,10 +934,6 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
o->iso1999= 0;
o->hardlinks= 0;
o->aaip = 0;
o->session_md5= 0;
o->file_md5= 0;
o->no_emul_toc= 0;
o->old_empty= 0;
o->untranslated_name_len = 0;
o->allow_dir_id_ext = 0;
o->omit_version_numbers= 0;
@ -950,7 +944,6 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
o->allow_lowercase= 0;
o->allow_full_ascii= 0;
o->joliet_longer_paths= 0;
o->joliet_long_names= 0;
o->always_gmt= 0;
o->rrip_version_1_10= 0;
o->dir_rec_mtime= 0;
@ -1027,7 +1020,6 @@ int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext)
o->file_md5= (ext & (128 | 256)) >> 7;
o->no_emul_toc= !!(ext & 512);
o->will_cancel= !!(ext & 1024);
o->old_empty= !!(ext & 2048);
return(1);
}
@ -1037,8 +1029,7 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
*ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) |
((!!o->hardlinks) << 3) | ((!!o->aaip) << 5) |
((!!o->session_md5) << 6) | ((o->file_md5 & 3) << 7) |
((!!o->no_emul_toc) << 9) | ((o->will_cancel) << 10) |
((!!o->old_empty) << 11);
((!!o->no_emul_toc) << 9) | ((o->will_cancel) << 10);
return(1);
}
@ -1060,7 +1051,6 @@ int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax)
o->dir_rec_mtime= !!(relax & isoburn_igopt_dir_rec_mtime);
o->aaip_susp_1_10= !!(relax & isoburn_igopt_aaip_susp_1_10);
o->allow_dir_id_ext= !!(relax & isoburn_igopt_allow_dir_id_ext);
o->joliet_long_names= !!(relax & isoburn_igopt_joliet_long_names);
return(1);
}
@ -1075,8 +1065,7 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax)
((!!o->dir_rec_mtime)<<10) | ((!!o->aaip_susp_1_10)<<11) |
((!!(o->omit_version_numbers & 2))<<12) |
((!!(o->no_force_dots & 2))<<13) |
((!!o->allow_dir_id_ext) << 14) |
((!!o->joliet_long_names) << 15);
((!!o->allow_dir_id_ext) << 14);
return(1);
}
@ -1264,7 +1253,7 @@ int isoburn_igopt_set_system_area(struct isoburn_imgen_opts *opts,
}
memcpy(opts->system_area_data, data, 32768);
}
opts->system_area_options = options & 0x3ff;
opts->system_area_options = options & 0xff;
return(1);
}

View File

@ -2,7 +2,7 @@
/*
Class struct of libisoburn.
Copyright 2007 - 2011 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
and Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later.
*/
@ -12,13 +12,7 @@
/* for uint8_t */
#ifdef HAVE_STDINT_H
#include <stdint.h>
#else
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#endif
/* For emulated TOC of overwriteable media.
Provides minimal info for faking a struct burn_toc_entry.
@ -298,7 +292,7 @@ struct isoburn_read_opts {
unsigned int noino:1; /* Discard eventual PX inode numbers */
/* ts A90810 */
unsigned int nomd5:2; /* Do not read eventual MD5 array */
unsigned int nomd5:1; /* Do not read eventual MD5 array */
unsigned int preferjoliet:1;
/*< When both Joliet and RR extensions are present, the RR
@ -376,7 +370,7 @@ struct isoburn_imgen_opts {
unsigned int session_md5 :1;
/* Produce and write MD5 checksums for each single IsoFile.
See parameter "files" of iso_write_opts_set_record_md5().
See parameter files of iso_write_opts_set_record_md5().
*/
unsigned int file_md5 :2;
@ -385,13 +379,6 @@ struct isoburn_imgen_opts {
*/
unsigned int no_emul_toc :1;
/* For empty files, symbolic links, and devices use the old ECMA-119 block
addresses in the range [0,31] rather than the address of the dedicated
empty block.
*/
unsigned int old_empty :1;
/* relaxed constraints */
/*
@ -469,12 +456,6 @@ struct isoburn_imgen_opts {
*/
unsigned int joliet_longer_paths :1;
/**
* Allow leaf names in the Joliet tree to have up to 103 characters
* rather than 64.
*/
unsigned int joliet_long_names :1;
/**
* Store timestamps as GMT rather than in local time.
*/

View File

@ -6,7 +6,7 @@
/*
libisofs related functions of libisoburn.
Copyright 2007 - 2011 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later.
*/
@ -158,8 +158,6 @@ create_blank_image:;
isoburn_report_iso_error(ret, "Cannot create image", 0, "FATAL", 0);
return ret;
}
iso_image_set_ignore_aclea(*image,
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
} else {
/* Blank new image for the drive */
iso_image_unref(o->image);
@ -168,13 +166,13 @@ create_blank_image:;
isoburn_report_iso_error(ret, "Cannot create image", 0, "FATAL", 0);
return ret;
}
if (image != NULL) {
if (image) {
*image = o->image;
iso_image_ref(*image); /*protects object from premature free*/
}
iso_image_set_ignore_aclea(o->image,
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
}
iso_image_set_ignore_aclea(*image,
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
return 1;
}
@ -228,13 +226,8 @@ displacement_rollover:;
iso_read_opts_set_start_block(ropts, ms_block);
iso_read_opts_set_no_rockridge(ropts, read_opts->norock);
iso_read_opts_set_no_aaip(ropts, read_opts->noaaip);
if(read_opts->nomd5 == 2)
int_num= 2;
else if(read_opts->nomd5 == 1)
int_num= 1;
else
int_num= 0;
iso_read_opts_set_no_md5(ropts, int_num);
iso_read_opts_set_no_md5(ropts, read_opts->nomd5);
iso_read_opts_set_new_inos(ropts, read_opts->noino);
iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet);
@ -439,17 +432,14 @@ static int isoburn_inspect_partition(struct isoburn *o, uint32_t img_size,
The need for emulation is confirmed already.
@param o A freshly created isoburn object. isoburn_create_data_source() was
already called, nevertheless.
@param flag bit0= read-only
@return <=0 error , 1 = success
*/
int isoburn_start_emulation(struct isoburn *o, int flag)
{
int ret, i, capacity = -1, role, dummy;
int ret, i, capacity = -1, role;
off_t data_count, to_read;
struct burn_drive *drive;
struct ecma119_pri_vol_desc *pvm;
enum burn_disc_status s;
char path[BURN_DRIVE_ADR_LEN], msg[2 * BURN_DRIVE_ADR_LEN];
if(o==NULL) {
isoburn_msgs_submit(NULL, 0x00060000,
@ -460,9 +450,6 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
drive= o->drive;
if(flag & 1)
o->fabricated_disc_status= BURN_DISC_FULL;
/* We can assume 0 as start block for image.
The data there point to the most recent session.
*/
@ -470,12 +457,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
ret = burn_get_read_capacity(drive, &capacity, 0);
if (ret <= 0)
capacity = -1;
if (role == 5) { /* random access write-only media */
s = burn_disc_get_status(drive);
o->fabricated_disc_status= s;
burn_disc_track_lba_nwa(drive, NULL, 0, &dummy, &(o->nwa));
return 1;
} else if (capacity > 0 || role == 2 || role == 4) {
if (capacity > 0 || role == 2) {
/* Might be a block device on a system where libburn cannot determine its
size. Try to read anyway. */
to_read = o->target_iso_head_size;
@ -483,25 +465,18 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
if(capacity > 0 && (off_t) capacity * (off_t) 2048 < to_read)
to_read = (off_t) capacity * (off_t) 2048;
ret = burn_read_data(drive, (off_t) 0, (char*)o->target_iso_head,
to_read, &data_count, 2 | 8);
to_read, &data_count, 2);
if (ret <= 0) {
/* an error means a disc with no ISO image */
if (ret == -2) {
path[0]= 0;
burn_drive_d_get_adr(drive, path);
sprintf(msg, "Pseudo drive '%s' does not allow reading", path);
isoburn_msgs_submit(NULL, 0x00060000, msg, 0, "NOTE", 0);
o->fabricated_disc_status= BURN_DISC_BLANK;
} else if (capacity > 0)
if (capacity > 0)
o->fabricated_disc_status= BURN_DISC_FULL;
else if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_BLANK;
else
o->fabricated_disc_status= BURN_DISC_BLANK;
return 1;
}
} else {
/* No read capacity means blank media */
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_BLANK;
o->fabricated_disc_status= BURN_DISC_BLANK;
return 1;
}
@ -512,8 +487,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
--i;
if (!i) {
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_BLANK;
o->fabricated_disc_status= BURN_DISC_BLANK;
return 1;
}
@ -537,14 +511,12 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
return ret;
size *= (off_t) 2048; /* block size in bytes */
isoburn_set_start_byte(o, size, 0);
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_APPENDABLE;
o->fabricated_disc_status= BURN_DISC_APPENDABLE;
} else if (!strncmp((char*)pvm->std_identifier, "CDXX1", 5)) {
/* empty image */
isoburn_set_start_byte(o, o->zero_nwa * 2048, 0);
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_BLANK;
o->fabricated_disc_status= BURN_DISC_BLANK;
} else {
/* treat any disc in an unknown format as full */
o->fabricated_disc_status= BURN_DISC_FULL;

View File

@ -224,7 +224,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libisofs_req_major 1
#define isoburn_libisofs_req_minor 0
#define isoburn_libisofs_req_micro 6
#define isoburn_libisofs_req_micro 0
/** The minimum version of libburn to be used with this version of libisoburn
at compile time.
@ -232,7 +232,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libburn_req_major 1
#define isoburn_libburn_req_minor 0
#define isoburn_libburn_req_micro 6
#define isoburn_libburn_req_micro 0
/** The minimum compile time requirements of libisoburn towards libjte are
the same as of a suitable libisofs towards libjte.
@ -287,7 +287,7 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
*/
#define isoburn_header_version_major 1
#define isoburn_header_version_minor 0
#define isoburn_header_version_micro 8
#define isoburn_header_version_micro 0
/** Note:
Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time.
@ -403,9 +403,8 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
@param flag bit0= attempt to load the disc tray.
Else: failure if not loaded.
bit1= regard overwriteable media as blank
bit2= if the drive is a regular disk file:
truncate it to the write start address when writing
begins
bit2= if the drive is a regular disk file: truncate it to
the write start address
bit3= if the drive reports a read-only profile try to read
table of content by scanning for ISO image headers.
(depending on media type and drive this might
@ -771,11 +770,6 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag);
bit9= nomd5
@since 0.4.2
Do not load the eventual MD5 checksum array.
Do not check eventual session_md5 tags.
bit10= nomd5tag
@since 1.0.4
Do not check eventual session_md5 tags although bit9
is not set.
@return 1 success, <=0 failure
*/
#define isoburn_ropt_norock 1
@ -788,7 +782,6 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag);
#define isoburn_ropt_noea 128
#define isoburn_ropt_noino 256
#define isoburn_ropt_nomd5 512
#define isoburn_ropt_nomd5tag 1024
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext);
int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext);
@ -991,8 +984,7 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
can encode ACL and XFS-style Extended Attributes.
bit6= session_md5
@since 0.4.2
Produce and write MD5 checksum tags of superblock, directory
tree, and the whole session stream.
Produce and write a MD5 checksum of the whole session stream.
bit7= file_md5
@since 0.4.2
Produce and write MD5 checksums for each single IsoFile.
@ -1014,15 +1006,6 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
and that the write thread will be cancelled by
isoburn_cancel_prepared_write() before actual image writing
occurs. Without this, cancellation can cause a MISHAP event.
bit11= old_empty
@since 1.0.2
Let symbolic links and device files point to block 0, and let
empty data files point to the address of the Volume Descriptor
Set Terminator. This was done by libisofs in the past.
By default there is now a single dedicated block of zero bytes
after the end of the directory trees, of which the address
is used for all files without own content.
@return 1 success, <=0 failure
*/
#define isoburn_igopt_rockridge 1
@ -1035,7 +1018,6 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
#define isoburn_igopt_file_stability 256
#define isoburn_igopt_no_emul_toc 512
#define isoburn_igopt_will_cancel 1024
#define isoburn_igopt_old_empty 2048
int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext);
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
@ -1116,10 +1098,6 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
only 8 characters.
(mkisofs and its clones obviously do this violation.)
@since 1.0.0
bit15= joliet_long_names
Allow for Joliet leaf names up to 103 characters rather than
up to 64.
@since 1.0.6
@return 1 success, <=0 failure
*/
#define isoburn_igopt_omit_version_numbers 1
@ -1137,7 +1115,6 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
#define isoburn_igopt_only_iso_versions 4096
#define isoburn_igopt_no_j_force_dots 8192
#define isoburn_igopt_allow_dir_id_ext 16384
#define isoburn_igopt_joliet_long_names 32768
int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax);
int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax);
@ -1349,13 +1326,6 @@ int isoburn_igopt_get_scdbackup_tag(struct isoburn_imgen_opts *o,
numbers 2 to 8.
This will overwrite the first 512 bytes of
the submitted data.
bit8-9= Only with System area type 0 = MBR
@since 1.0.4
Cylinder alignment mode eventually pads the image
to make it end at a cylinder boundary.
0 = auto (align if bit1)
1 = always align to cylinder boundary
2 = never align to cylinder boundary
@return 1 success, 0 no data to get, <0 failure
*/
@ -1839,21 +1809,6 @@ int isoburn_cancel_prepared_write(struct burn_drive *input_drive,
struct burn_drive *output_drive, int flag);
/**
Override the truncation setting that was made with flag bit2 during the
call of isoburn_drive_aquire. This applies only to stdio pseudo drives.
@since 0.1.6
@param drive The drive which was aquired and shall be used for writing.
@param flag Bitfield controlling the setting:
bit0= truncate (else do not truncate)
bit1= do not warn if call is inappropriate to drive
bit2= only set if truncation is currently enabled
do not warn if call is inappropriate to drive
@return 1 success, 0 inappropriate drive, <0 severe error
*/
int isoburn_set_truncate(struct burn_drive *drive, int flag);
/** Start writing of the new session.
This call is asynchrounous. I.e. it returns quite soon and the progress has
to be watched by a loop with call burn_drive_get_status() until

View File

@ -86,7 +86,6 @@ isoburn_ropt_set_input_charset;
isoburn_set_msc1;
isoburn_set_msgs_submit;
isoburn_set_read_pacifier;
isoburn_set_truncate;
isoburn_sync_after_write;
isoburn_toc_disc_free;
isoburn_toc_disc_get_sectors;
@ -141,7 +140,6 @@ Xorriso_option_check_media_defaults;
Xorriso_option_chgrpi;
Xorriso_option_chmodi;
Xorriso_option_chowni;
Xorriso_option_clone;
Xorriso_option_close;
Xorriso_option_close_filter_list;
Xorriso_option_commit;
@ -149,7 +147,6 @@ Xorriso_option_commit_eject;
Xorriso_option_compare;
Xorriso_option_compliance;
Xorriso_option_copyright_file;
Xorriso_option_cp_clone;
Xorriso_option_cpri;
Xorriso_option_cpx;
Xorriso_option_cut_out;
@ -162,7 +159,6 @@ Xorriso_option_displacement;
Xorriso_option_drive_class;
Xorriso_option_dummy;
Xorriso_option_dvd_obs;
Xorriso_option_early_drive_test;
Xorriso_option_eject;
Xorriso_option_end;
Xorriso_option_errfile_log;

View File

@ -7,15 +7,15 @@ Steve McIntyre <steve@einval.com>
George Danchev <danchev@spnet.net>
GNU xorriso is a compilation of modules from libburnia-project.org :
xorriso Copyright (C) 2007-2011 Thomas Schmitt
libisoburn Copyright (C) 2007-2011 Vreixo Formoso, Thomas Schmitt
libisofs Copyright (C) 2007-2011 Vreixo Formoso, Mario Danic, Thomas Schmitt
xorriso Copyright (C) 2007-2010 Thomas Schmitt
libisoburn Copyright (C) 2007-2010 Vreixo Formoso, Thomas Schmitt
libisofs Copyright (C) 2007-2010 Vreixo Formoso, Mario Danic, Thomas Schmitt
libburn Copyright (C) 2002-2006 Derek Foreman, Ben Jansens
2006-2011 Mario Danic, Thomas Schmitt
2006-2010 Mario Danic, Thomas Schmitt
Further included is :
libjte Copyright (C) 2000-2007 Free Software Foundation, Inc.
2004-2011 Steve McIntyre
2010-2011 George Danchev, Thomas Schmitt
2004-2010 Steve McIntyre
2010-2010 George Danchev, Thomas Schmitt
Originally they all are licensed directly or indirectly as GPLv2+.
GNU xorriso is licensed by the following statement:

View File

@ -4,7 +4,7 @@
GNU xorriso. By Thomas Schmitt <scdbackup@gmx.net>
Derived from and supported by libburnia-project.org, published via:
http://www.gnu.org/software/xorriso/xorriso_eng.html
ftp://ftp.gnu.org/gnu/xorriso/xorriso-1.0.8.tar.gz
ftp://ftp.gnu.org/gnu/xorriso/xorriso-1.0.0.tar.gz
Provided under GPL version 3 or later. No warranty.
------------------------------------------------------------------------------
@ -46,10 +46,10 @@ Optional at compile time are:
If they were present at compile time, then the optional libraries have to
be present at runtime, too.
Obtain xorriso-1.0.8.tar.gz, take it to a directory of your choice and do:
Obtain xorriso-1.0.0.tar.gz, take it to a directory of your choice and do:
tar xzf xorriso-1.0.8.tar.gz
cd xorriso-1.0.8
tar xzf xorriso-1.0.0.tar.gz
cd xorriso-1.0.0
Within that directory execute:
@ -72,15 +72,17 @@ or you may execute as superuser:
For general concepts, options and usage examples see
info xorriso
info xorrisofs
or
man 1 xorriso
man 1 xorrisofs
The documents are part of the tarball as
xorriso/xorriso.info
xorriso/xorriso.1
Original source text of both is
xorriso/xorriso.texi
You may get a first glimpse by
info ./xorriso/xorriso.info
info ./xorriso/xorrisofs.info
man ./xorriso/xorriso.1
man ./xorriso/xorrisofs.1
The installation creates several alias links pointing to the xorriso binary:
xorrisofs starts xorriso with -as mkisofs emulation already enabled
@ -253,12 +255,12 @@ Tag_id distinguishes the following tag types
"libisofs_checksum_tag_v1" Session end tag
A relocated superblock may appear at LBA 0 of an image which was produced for
being stored in a disk file or on overwriteable media (e.g. DVD+RW, BD-RE).
being stored in a disk file or on overwriteable media (e.g. DVD+R, BD-RE).
xorriso records the first session at LBA 32. An eventual follow-up session
begins at the next block address which is divisible by 32 and higher than the
address of the previous session's end tag. Normally no session starts after the
address given by relocated superblock parameter session_start=.
Session oriented media like CD-R[W], DVD-R, DVD+R, BD-R will have no relocated
Session oriented media like CD-R[W], DVD+R, BD-R will have no relocated
superblock but rather bear a table-of-content on media level.
A tag is valid if pos= tells its own block address and self= tells its own MD5
@ -271,7 +273,7 @@ The newline character at the end is mandatory.
libisoburn
xorriso is based on libisofs which does ISO 9660 filesystem aspects and on
xorriso is based on libisofs which does ISO 9600 filesystem aspects and on
libburn which does the input and output aspects. Parts of this foundation
are accessed via libisoburn, which is closely related to xorriso.
@ -289,9 +291,9 @@ and a matching dynamically linked xorriso binary.
This binary is very lean but depends on properly installed libraries of
suitable revision.
Dynamic library and compile time header requirements for libisoburn-1.0.6 :
- libburn.so.4 , version libburn-1.0.6 or higher
- libisofs.so.6 , version libisofs-1.0.6 or higher
Dynamic library and compile time header requirements for libisoburn-1.0.0 :
- libburn.so.4 , version libburn-1.0.0 or higher
- libisofs.so.6 , version libisofs-1.0.0 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.
@ -417,9 +419,9 @@ Libburn. By Derek Foreman <derek@signalmarketing.com> and
Ben Jansens <xor@orodu.net>
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
GNU xorriso contains libjte out of source package jigit >= 1.17
GNU xorriso contains libjte
Copyright (C) 2000-2007 Free Software Foundation, Inc.
2004-2011 Steve McIntyre
2004-2010 Steve McIntyre
2010-2011 George Danchev, Thomas Schmitt
------------------------------------------------------------------------------

View File

@ -25,14 +25,7 @@
#include <sys/time.h>
#include <time.h>
#include <errno.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#else
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#endif
#ifdef Xorriso_standalonE
@ -132,7 +125,6 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->do_aaip= 0;
m->do_md5= 0;
m->no_emul_toc= 0;
m->do_old_empty= 0;
m->scdbackup_tag_name[0]= 0;
m->scdbackup_tag_time[0]= 0;
m->scdbackup_tag_written[0]= 0;
@ -183,7 +175,6 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->displacement= 0;
m->displacement_sign= 0;
m->drives_exclusive= 1;
m->early_stdio_test= 0;
m->do_calm_drive= 1;
m->indev[0]= 0;
m->in_drive_handle= NULL;
@ -209,7 +200,6 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->speed= 0;
m->fs= 4*512; /* 4 MiB */
m->padding= 300*1024;
m->do_padding_by_libisofs= 0;
m->alignment= 0;
m->do_stream_recording= 0;
m->dvd_obs= 0;
@ -307,7 +297,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->errfile_mode= 0;
m->errfile_fp= NULL;
m->img_read_error_mode= 1; /* abort faulty image reading with FAILURE */
m->img_read_error_mode= 2; /* abort faulty image reading with FATAL */
m->extract_error_mode= 1; /* keep extracted files after read error */
strcpy(m->return_with_text, "SORRY");
Xorriso__text_to_sev(m->return_with_text, &m->return_with_severity, 0);
@ -365,8 +355,6 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->perm_stack= NULL;
m->update_flags= 0;
m->result_line[0]= 0;
m->result_line_counter= 0;
m->result_page_counter= 0;
@ -449,10 +437,6 @@ int Xorriso_destroy(struct XorrisO **xorriso, int flag)
m= *xorriso;
if(m==NULL)
return(0);
/* Give up drives and image to unref all connected xorriso objects */
Xorriso_give_up_drive(m, 3);
if(m->in_charset!=NULL)
free(m->in_charset);
if(m->out_charset!=NULL)

View File

@ -9459,11 +9459,12 @@ xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.0
16 Jan 2011 [3564]
[]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.0.0 - 2011.01.16.200001
* New API call isoburn_igopt_set_untranslated_name_len()
* New -compliance options untranslated_names , untranslated_name_len=
@ -9482,935 +9483,9 @@ xorriso/emulators.c
xorriso/opts_p_z.c
Updated copyright messages to 2011
2011.01.17.092111 [3565]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.1
17 Jan 2011 [3566]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
17 Jan 2011 [3567]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.0.0
http://svn.libburnia-project.org/libisoburn/tags/1.0.0
------------------------------------ cycle - xorriso-1.0.1 - 2011.01.17.092111
2011.01.18.154443 [3568]
libisoburn/isoburn.h
Avoiding <stdint.h> if not available. Trying to use <inttypes.h> in that case.
2011.01.18.154717 [3569]
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/lib_mgt.c
xorriso/write_run.c
Avoiding <stdint.h> if not available. Trying to use <inttypes.h> in that case.
------------------------------------ cycle - xorriso-1.0.1 - 2011.01.18.154717
* Removed compiler obstacles of GNU xorriso on Solaris 9
18 Jan 2011 [3571]
doc/faq.wiki
Small change in FAQ wiki text
19 Jan 2011 [3572]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Mentioned missing mkisofs -old-root functionality in man page
------------------------------------ cycle - xorriso-1.0.1 - 2011.01.24.141621
* Bug fix: ECMA-119 standards violation with Volume Descriptor Set Terminator
2011.01.26.132843 [3573]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty
2011.01.26.133107 [3574]
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -compliance option old_empty
26 Jan 2011 [3575]
configure.ac
Requiring libisofs-1.0.1 now
------------------------------------ cycle - xorriso-1.0.1 - 2011.01.26.133107
* New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty
2011.01.26.184140 [3576]
libisoburn/isoburn.c
Followed name change in the yet unstable part of libisofs API
2011.01.26.210359 [3577]
xorriso/emulators.c
New -as mkisofs option --old-empty
------------------------------------ cycle - xorriso-1.0.1 -
* New -as mkisofs option --old-empty
2011.01.31.135917 [3578]
xorriso/iso_manip.c
Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
2011.02.01.185830 [3579]
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/parse_exec.c
xorriso/opts_a_c.c
xorriso/opts_d_h.c
xorriso/iso_manip.c
libisoburn/libisoburn.ver
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
xorriso/xorriso_eng.html
ChangeLog
New option -clone
2011.02.02.174154 [3580]
xorriso/xorrisoburn.h
xorriso/iso_manip.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Disallowed -clone to overwrite existing nodes
2011.02.04.191922 [3581]
xorriso/xorriso.h
xorriso/parse_exec.c
xorriso/opts_a_c.c
xorriso/opts_d_h.c
xorriso/iso_manip.c
xorriso/sfile.c
libisoburn/libisoburn.ver
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New option -cp_clone
2011.02.07.182947 [3582]
xorriso/cmp_update.c
xorriso/sort_cmp.c
Do not regard file as changed just because no ino was recorded
2011.02.07.184304 [3583]
xorriso/xorrisoburn.h
xorriso/opts_p_z.c
xorriso/emulators.c
xorriso/iso_tree.h
xorriso/iso_tree.c
xorriso/iso_manip.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -as mkisofs options -root , -old-root, --old-root-no-md5, --old-root-no-ino, --old-root-dev
2011.02.07.202851 [3584]
xorriso/emulators.c
xorriso/iso_manip.c
xorriso/sort_cmp.c
xorriso/iso_tree.h
xorriso/iso_tree.c
Some corrections of the previous commit
2011.02.08.133624 [3585]
xorriso/emulators.c
-as mkisofs: Enabled reading of xattr and md5 before image loading
2011.02.12.171423 [3587]
xorriso/xorriso_private.h
xorriso/xorrisoburn.h
xorriso/base_obj.c
xorriso/opts_a_c.c
xorriso/opts_d_h.c
xorriso/opts_p_z.c
xorriso/emulators.c
xorriso/cmp_update.h
xorriso/cmp_update.c
xorriso/disk_ops.c
xorriso/iso_manip.h
xorriso/iso_manip.c
xorriso/findjob.h
xorriso/lib_mgt.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -find actions update_merge, rm_merge, clear_merge. -cp_clone now merges.
2011.02.12.172930 [3588]
xorriso/cmp_update.c
Reacted on compiler warning about uninitialized variable
2011.02.14.090737 [3590]
xorriso/base_obj.c
xorriso/parse_exec.c
xorriso/filters.c
xorriso/write_run.c
Closed memory leaks detected by valgrind
14 Feb 2011 [3591]
xorriso/xorriso_eng.html
ChangeLog
Updated change log
------------------------------------ cycle - xorriso-1.0.1 - 2011.02.14.090737
* Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
* New options -clone and -cp_clone
* New -find actions update_merge, rm_merge, clear_merge
* New -as mkisofs options -root , -old-root
* New -as mkisofs options --old-root-no-md5, --old-root-no-ino, --old-root-dev
2011.02.19.112243 [3593]
xorriso/emulators.c
Small adjustments in mkisofs emulation
Bug fix: -as mkisofs -l resp. -full-iso9660-filenames did not work
2011.02.19.112439 [3594]
xorriso/filters.c
Updated copyright
2011.02.19.112541 [3595]
xorriso/xorriso.texi
Corrections in xorriso man page
19 Feb 2011 [3596]
xorriso/xorriso_eng.html
ChangeLog
Updated change log
19 Feb 2011 [3597]
xorriso/xorriso.info
xorriso/xorriso.1
info document and man page for recent texi corrections
------------------------------------ cycle - xorriso-1.0.1 - 2011.02.19.112541
* Bug fix in libisofs:
Images produced with -for_backup might be unreadable and
also fail -check_md5 verification.
* Bug fix: mkisofs emulation options -l , -full-iso9660-filenames did not work.
2011.02.21.130729 [3598]
xorriso/emulators.c
Correction about -as mkisofs --old-root-no-ino
2011.02.22.073504 [3599]
xorriso/opts_a_c.c
xorriso/iso_manip.c
Issueing messages with -clone and -cp_clone
2011.02.22.073641 [3600]
xorriso/emulators.c
Corrected a bug that prevented -as mkisofs option -output
2011.02.22.123730 [3601]
xorriso/emulators.c
Made -as mkisofs ignore option -disable-deep-relocation rather than failing
2011.02.22.143131 [3602]
xorriso/emulators.c
New -as mkisofs option -max-iso9660-filenames
22 Feb 2011 [3603]
xorriso/xorriso_eng.html
ChangeLog
Updated change log
------------------------------------ cycle - xorriso-1.0.1 - 2011.02.22.143131
* New -as mkisofs option -max-iso9660-filenames
23 Feb 2011 [3608]
svn copy -m Branching for libisoburn release 1.0.2
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.0.2
2011.02.23.140001 [3609]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.2
23 Feb 2011 [3610]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.0.2 - 2011.02.23.140001
* Bug fix: Images produced with -for_backup might be unreadable and
also fail -check_md5 verification.
* Bug fix: mkisofs emulation options -l , -full-iso9660-filenames did not work.
* Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
* Bug fix: ECMA-119 standards violation with Volume Descriptor Set Terminator
* Removed compiler obstacles of GNU xorriso on Solaris 9
* New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty
* New options -clone and -cp_clone
* New -find actions update_merge, rm_merge, clear_merge
* New -as mkisofs option -max-iso9660-filenames
* New -as mkisofs option --old-empty
* New -as mkisofs options -root , -old-root
* New -as mkisofs options --old-root-no-md5, --old-root-no-ino, --old-root-dev
2011.02.23.202632 [3616]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.3
23 Feb 2011 [3617]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
------------------------------------ cycle - xorriso-1.0.3 - 2011.02.23.202632
23 Feb 2011 [3618]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.0.2
http://svn.libburnia-project.org/libisoburn/tags/1.0.2
2011.02.24.191908 [3620]
libisoburn/isofs_wrap.c
Corrected a flaw found by George Danchev with cpp
2011.02.24.192029 [3621]
xorriso/opts_d_h.c
xorriso/text_io.c
xorriso/filters.c
Corrected flaws found by George Danchev with cpp
2011.02.26.100158 [3622]
xorriso/emulators.c
Bug fix: -as mkisofs -old-root did not work with -graft-points
2011.02.28.190842 [3623]
xorriso/emulators.c
Bug fix: -as mkisofs -partition_hd_cyl had no effect
28 Feb 2011 [3624]
xorriso/make_xorriso_1.c
When producing man page from texi: substitute @minus{} within @item
2011.03.01.145125 [3626]
libisoburn/burn_wrap.c
Bug fix: -as mkisofs -C attempts to read volume header of blank media
2011.03.01.152159 [3627]
libisoburn/burn_wrap.c
Installed a test against non-zero msc1 on blank input drives
2011.03.02.093009 [3628]
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/emulators.c
xorriso/write_run.c
Counting padding as part of the image with -as mkisofs
2011.03.02.094049 [3629]
xorriso/opts_d_h.c
xorriso/opts_p_z.c
xorriso/text_io.c
New -padding modes "included" and "excluded"
02 Mar 2011 [3630]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Updated documentation
02 Mar 2011 [3631]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.3 - 2011.03.02.094049
* Bug fix: -as mkisofs -old-root did not work with -graft-points
* Bug fix: -as mkisofs -partition_hd_cyl had no effect
* Bug fix: -as mkisofs -C attempted to read volume header of blank media
* Bug fix: isohybrid image size was not aligned to cylinder boundary
* New -padding modes "included" and "appended"
2011.03.03.181601 [3632]
libisoburn/libisoburn.h
libisoburn/isoburn.c
New bits 8 and 9 with options of isoburn_igopt_set_system_area()
2011.03.03.181850 [3633]
xorriso/xorriso_private.h
xorriso/opts_a_c.c
xorriso/emulators.c
xorriso/text_io.c
New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
03 Mar 2011 [3634]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Updated documentation
04 Mar 2011 [3635]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Clarifications about cylinder size and alignment
04 Mar 2011 [3626]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.3 - 2011.03.03.181850
* New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
2011.03.05.090434 [3637]
xorriso/parse_exec.c
xorriso/emulators.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -as mkisofs and -as cdrecord option --no_rc
2011.03.05.141534 [3638]
+ xorriso/xorrisofs.texi
+ xorriso/xorrisofs.info
+ xorriso/xorrisofs.1
Makefile.am
xorriso/make_xorriso_standalone.sh
xorriso/xorriso_makefile_am.txt
xorriso/make_docs.sh
Own man page and info document for xorrisofs
05 Mar 2011 [3639]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Mentioned man xorrisofs in man xorriso
2011.03.06.153741 [3640]
xorriso/emulators.c
Helptext of -as mkisofs now points to man xorrisofs
06 Mar 2011 [3641]
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Polished xorrisofs documentation
2011.03.07.101547 [3642]
xorriso/opts_a_c.c
xorriso/emulators.c
Bug fix: -as mkisofs did not properly unescape target part of pathspecs
07 Mar 2011 [3643]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.3 - 2011.03.07.101547
* New -as mkisofs and -as cdrecord option --no_rc
* Own man page and info document for xorrisofs
* Bug fix: -as mkisofs did not properly unescape target part of pathspecs
2011.03.09.071325 [3644]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
New isoburn_ropt_set_extensions() option isoburn_ropt_nomd5tag
2011.03.09.071502 [3645]
xorriso/xorriso_private.h
xorriso/opts_i_o.c
xorriso/emulators.c
xorriso/text_io.c
xorriso/drive_mgt.c
New -md5 modes load_check_off and load_check_on
08 Mar 2011 [3646]
doc/partition_offset.wiki
Updated partition offset wiki
2011.03.09.123847 [3647]
xorriso/xorriso.h
Marked options introduced since 0.5.8 by the promised @since tags
09 Mar 2011 [3648]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Corrections and updates of documentation
10 Mar 2011 [3649]
xorriso/README_gnu_xorriso
xorriso/make_xorriso_standalone.sh
xorriso/convert_man_to_html.sh
+ xorriso/man_xorrisofs_to_html.sh
+ xorriso/man_xorriso_to_html.sh
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
xorriso/xorriso_eng.html
HTML version of man xorrisofs
10 Mar 2011 [3654]
svn copy -m Branching for libisoburn release 1.0.4
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.0.4
2011.03.10.110001 [3655]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.4
10 Mar 2011 [3656]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.0.4 - 2011.03.10.110001
* New isoburn_ropt_set_extensions() option isoburn_ropt_nomd5tag
* Bug fix: xorrisofs did not work under growisofs -M (version 1.0.0 was ok)
* Bug fix: -as mkisofs -C attempted to read volume header of blank media
* Bug fix: -as mkisofs -old-root did not work with -graft-points
* Bug fix: -as mkisofs -partition_hd_cyl had no effect
* Bug fix: -as mkisofs did not properly unescape target part of pathspecs
* Bug fix: isohybrid image size was not aligned to cylinder boundary
* Bug fix: Compilation without zlib failed
* New -padding modes "included" and "appended"
* New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
* New -as mkisofs and -as cdrecord option --no_rc
* Own man page and info document for xorrisofs
2011.03.10.135207 [3661]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.5
10 Mar 2011 [3662]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
10 Mar 2011 [3663]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.0.4
http://svn.libburnia-project.org/libisoburn/tags/1.0.4
------------------------------------ cycle - xorriso-1.0.5 - 2011.03.10.135207
13 Mar 2011 [3668]
COPYRIGHT
Updated copyright year
2011.03.13.131305 [3669]
configure.ac
libisoburn/libisoburn.h
Requiring libburn-1.0.5
2011.03.13.131557 [3670]
libisoburn/burn_wrap.c
libisoburn/isofs_wrap.c
Prepared libisoburn for drive role 4
2011.03.21.093208 [3679]
libisoburn/burn_wrap.c
libisoburn/isofs_wrap.c
Prepared libisoburn for drive role 5
2011.03.21.093705 [3680]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/write_run.c
xorriso/text_io.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
libisoburn/libisoburn.ver
New option -early_drive_test
2011.03.21.113720 [3681]
libisoburn/libisoburn.h
libisoburn/burn_wrap.c
libisoburn/libisoburn.ver
New API call isoburn_set_truncate()
2011.03.21.113858 [3682]
xorriso/write_run.c
Made use of new API call isoburn_set_truncate
2011.03.21.165533 [3683]
xorriso/xorriso_private.h
xorriso/opts_d_h.c
xorriso/drive_mgt.c
xorriso/text_io.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -early_stdio_test option appendable_wo
2011.03.22.081408 [3684]
libisoburn/burn_wrap.c
Fixed use of uninitialized variable when blanking rol5 pseudo drives
24 Mar 2011 [3686]
xorriso/README_gnu_xorriso
Fixed typos in GNU xorriso readme file
2011.03.24.182518 [3688]
libisoburn/burn_wrap.c
libisoburn/isofs_wrap.c
Better handling of pseudo-drive without read-permission
2011.03.25.191936 [3689]
configure.ac
libisoburn/libisoburn.h
Requiring libisofs-1.0.5
2011.03.26.100519 [3690]
xorriso/iso_manip.c
Reporting target name if adding of new node fails with ISO_WRONG_ARG_VALUE
2011.03.26.143944 [3691]
xorriso/write_run.c
Unconditionally reporting iso_level with -status -compliance
2011.03.26.144233 [3692]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
New relax option isoburn_igopt_joliet_long_names
2011.03.26.144541 [3693]
xorriso/emulators.c
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
New -compliance option joliet_long_names
26 Mar 2011 [3694]
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Small adjustments to xorrisofs.texi
26 Mar 2011 [3695]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.5 - 2011.03.26.144541
* New API call isoburn_set_truncate()
* New relax option isoburn_igopt_joliet_long_names
* New option -early_stdio_test
* New -compliance option joliet_long_names
* -as mkisofs option -joliet-long is now fully functional
* Burning DVD-R DAO with 2 kB size granularity rather than 32 kB
2011.03.26.203042 [3696]
xorriso/iso_manip.c
Interpreting new libisofs error codes ISO_RR_NAME_TOO_LONG ISO_RR_NAME_RESERVED
2011.03.29.150930 [3697]
xorriso/iso_manip.c
Interpreting new libisofs error code ISO_RR_PATH_TOO_LONG
2011.03.29.151144 [3698]
xorriso/write_run.c
Bug fix: -as mkisofs padding did not work (regression in 1.0.4)
30 Mar 2011 [3699]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.5 - 2011.03.29.151144
* Bug fix: -as mkisofs padding did not work (regression in 1.0.4)
2011.04.01.133116 [3700]
xorriso/emulators.c
Allowing double dashes with all long xorrisofs options
3 Apr 2011 [3701]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Clarified relation of startup files, -options_from_file and quoted input.
3 Apr 2011 [3702]
xorriso/COPYRIGHT_gnu_xorriso
xorriso/README_gnu_xorriso
Updated info about GNU xorriso copyright and libjte
2011.04.03.094634 [3703]
xorriso/xorriso.h
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/opts_p_z.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New options -print_info and -print_mark
2011.04.04.064909 [3704]
xorriso/write_run.c
Bug fix: Options -gid and -uid had no effect
2011.04.04.071443 [3705]
xorriso/drive_mgt.c
Avoided to report Volume Id when aquiring drive with blank media
4 Apr 2011 [3706]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.5 - 2011.04.04.071443
* Bug fix: Options -gid and -uid had no effect
* New options -print_info and -print_mark
2011.04.04.140752 [3707]
Makefile.am
xorriso/xorriso_makefile_am.txt
xorriso/make_xorriso_standalone.sh
+ doc/startup_file.txt
Added an example of a startup file
2011.04.05.072141 [3708]
xorriso/xorriso_main.c
xorriso/write_run.c
Fixed a typo in messages and goto label
07 Apr 2011 [3709]
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Clarification about -as mkisofs pathspecs
07 Apr 2011 [3710]
doc/partition_offset.wiki
Updated partition offset wiki about cylinder alignment
08 Apr 2011 [3711]
doc/faq.wiki
FAQ about release version numbers
08 Apr 2011 [3716]
svn copy -m Branching for libisoburn release 1.0.6
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.0.6
2011.04.08.193001 [3717]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.6
08 Apr 2011 [3718]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.0.6 - 2011.04.08.193001
* Bug fix: -as mkisofs padding did not work (regression in 1.0.4)
* Bug fix: Options -gid and -uid had no effect
* New API call isoburn_set_truncate()
* New relax option isoburn_igopt_joliet_long_names
* New option -early_stdio_test
* New options -print_info and -print_mark
* New -compliance option joliet_long_names
* -as mkisofs option -joliet-long is now fully functional
* Burning DVD-R DAO with 2 kB size granularity rather than 32 kB
2011.04.09.105219 [3723]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.7
09 Apr 2011 [3724]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
09 Apr 2011 [3725]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.0.6
http://svn.libburnia-project.org/libisoburn/tags/1.0.6
------------------------------------ cycle - xorriso-1.0.7 - 2011.04.09.105219
2011.04.13.204236 [3726]
xorriso/emulators.c
Bug fix: mkisofs emulation could ignore options (regression in 0.1.6)
14 Apr 2011 [3727]
svn copy -m Branching for libisoburn release 1.0.8
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.0.8
2011.04.15.073001 [3278]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.8
14 Apr 2011 [3729]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
2011.04.14.073001 []
xorriso/xorriso_timestamp.h
ChangeLog
xorriso/changelog.txt
Corrected release date
----------------------------------- release - xorriso-1.0.8 - 2011.04.13.073001
* Bug fix: mkisofs emulation could ignore options (regression in 0.1.6)
[]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.9
[]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
[]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.0.8
http://svn.libburnia-project.org/libisoburn/tags/1.0.8
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.9 -
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.9 -
------------------------------------ cycle - xorriso-1.0.1 -
**********************************************************************
@ -10422,29 +9497,6 @@ Important: When adding a public API function then add its name to file
TODO
===============================================================================
- Does not do anything:
xorriso -as mkisofs -o /dvdbuffer/image.iso /u/x
This works
xorriso -as mkisofs -o /dvdbuffer/image.iso -J /u/x
- Make Debian test machine ready for cppcheck and add it to release procedure
- ? Allow to adjust maximum path length
- Is libisofs rockridge.c safe for >250 chars in all cases ?
Can NM be entirely in Continuation Area ?
- It should be safe. The free SUA before NM is larger than 10.
With untranslated_names=96: no long RR names are possible
With long_names : >= 254 - 34-37-1 - 5-5-44-26-20 = 82
- Is it possible to allow longer Rock Ridge names ?
- need a loop to calc and to call rrip_add_NM()
- Zhang Weiwu:
>>> ask for test of -old-root
- xorrecord.texi , man_1_xorrecord.html
------------------------------------------------- For Debian:
@ -10531,6 +9583,8 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
- take into account indispensible RR and eventual Joliet stuff
- take into account the eventual file checksums.
- options -print_info , -print_mark
- Mark data blocks of -check_md5 matching files as valid in sector map ?
- tree of name nodes to represent the cached paths of hardlink candidates.

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -284,7 +284,6 @@ ex:;
bit1= compare ctime
bit2= check only existence of both file objects
count one or both missing as "difference"
bit26= do not issue message about missing disk file
bit27= for Xorriso_path_is_excluded(): bit0
bit28= examine eventual disk_path link target rather than link
bit29= do not issue pacifier messages
@ -321,7 +320,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
sprintf(respt , "? %s (DISK) : exluded by %s\n",
Text_shellsafe(disk_adr, sfe, 0),
(ret==1 ? "-not_paths" : "-not_leaf"));
if(! (flag & ((1 << 31) | (1 << 26))))
if(!(flag&(1<<31)))
Xorriso_result(xorriso,0);
missing= 1;
(*result)|= 1;
@ -335,7 +334,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
if(ret==-1) {
sprintf(respt , "? %s (DISK) : cannot lstat() : %s\n",
Text_shellsafe(disk_adr, sfe, 0), strerror(errno));
if(! (flag & ((1 << 31) | (1 << 26))))
if(!(flag&(1<<31)))
Xorriso_result(xorriso,0);
missing= 1;
(*result)|= 1;
@ -682,11 +681,10 @@ int Xorriso_pfx_disk_path(struct XorrisO *xorriso, char *iso_path,
Set to NULL if calling this function from outside ISO world
@param flag bit0= update rather than compare
bit1= find[ix] is in recursion
bit2= update_merge : do not delete but mark visited and found
@return <=0 error, 1= ok , 2= iso_path was deleted
3=ok, do not dive into directory (e.g. because it is a split file)
*/
int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter,
char *iso_path, char *iso_prefix, char *disk_prefix,
int flag)
{
@ -711,24 +709,22 @@ int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
follow_links= (xorriso->do_follow_links ||
(xorriso->do_follow_param && !(flag&2))) <<28;
ret= Xorriso_compare_2_files(xorriso, disk_path, iso_path, "", &result,
2 | follow_links | ((!!(flag & 4)) << 26)
| ((!(flag&2))<<27) | ((flag&1)<<31));
2 | follow_links | ((!(flag&2))<<27) | ((flag&1)<<31));
/* was once: | ((!(flag&1))<<29) */
if(ret<xorriso->find_compare_result)
xorriso->find_compare_result= ret;
if(flag&1) {
if(ret<0)
if(Xorriso_eval_problem_status(xorriso, ret, 1|2)<0)
return(ret);
if(ret > 0)
result= 0;
uret= Xorriso_update_interpreter(xorriso, boss_iter, node, result,
disk_path, iso_path,
((flag & 2) << 1) | ((flag & 4) >> 1));
if(uret<=0)
ret= 0;
if(uret==2)
deleted= 1;
if(ret<=0) {
if(ret<0)
if(Xorriso_eval_problem_status(xorriso, ret, 1|2)<0)
return(ret);
uret= Xorriso_update_interpreter(xorriso, boss_iter, result,
disk_path, iso_path, (flag&2)<<1);
if(uret<=0)
ret= 0;
if(uret==2)
deleted= 1;
}
}
if(ret<0)
return(ret);
@ -746,19 +742,15 @@ int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
Do not call Xorriso_hardlink_update()
Overwrite exactly if normal mode would not,
else do nothing
bit1= do not delete files which are not found under
disk_path, but rather mark visited files and mark
files which were found.
bit2= -follow: this is not a command parameter
@return <=0 error, 1= ok , 2= iso_rr_path node object has been deleted ,
3= no action taken
*/
int Xorriso_update_interpreter(struct XorrisO *xorriso,
void *boss_iter, void *node,
int Xorriso_update_interpreter(struct XorrisO *xorriso, void *boss_iter,
int compare_result, char *disk_path,
char *iso_rr_path, int flag)
{
int ret= 1, deleted= 0, is_split= 0, i, loop_count, late_hardlink_update= 0;
int ret, deleted= 0, is_split= 0, i, loop_count, late_hardlink_update= 0;
char sfe[5*SfileadrL];
struct stat stbuf;
struct SplitparT *split_parts= NULL;
@ -775,15 +767,6 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso,
ret= 3; goto ex;
}
if((flag & 2) && !(compare_result & 2)) {
ret= Xorriso_mark_update_merge(xorriso, iso_rr_path, node,
!(compare_result & 1));
if(ret <= 0)
goto ex;
}
if(compare_result == 0)
{ret= 1; goto ex;}
if(compare_result&((1<<11)|(1<<13))) {
if(flag & 1)
{ret= 3; goto ex;}
@ -805,8 +788,7 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso,
} else {
/* Hard link relation has changed resp. was not recorded. */
ret= Xorriso_hardlink_update(xorriso, &compare_result,
disk_path, iso_rr_path,
(flag & 4) | ((compare_result >> 21) & 2));
disk_path, iso_rr_path, flag & 4);
if(ret < 0)
goto ex;
if(ret == 2)
@ -823,24 +805,15 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso,
deleted= 1;
ret= Xorriso_graft_in(xorriso, boss_iter, disk_path, iso_rr_path,
(off_t) 0, (off_t) 0, 2|(flag&4));
if(ret <= 0)
goto ex;
if(flag & 2) {
ret= Xorriso_mark_update_merge(xorriso, iso_rr_path, NULL, 1);
if(ret <= 0)
goto ex;
}
}
sprintf(xorriso->info_text, "Deleted and re-added ");
} else if(compare_result&(1)) {
delete:;
/* disk_adr not existing */
if(!(flag & 2)) {
ret= Xorriso_rmi(xorriso, boss_iter, (off_t) 0, iso_rr_path, 1);
deleted= 1;
sprintf(xorriso->info_text, "Deleted ");
}
ret= Xorriso_rmi(xorriso, boss_iter, (off_t) 0, iso_rr_path, 1);
deleted= 1;
sprintf(xorriso->info_text, "Deleted ");
} else if(compare_result&(2|128|(1<<12)|(1<<14)|(1<<15))) {
/* iso_adr not existing, size, cannot open iso file, early eof of iso file
@ -921,11 +894,6 @@ overwrite:;
if(ret < 0)
goto ex;
}
if(flag & 2) {
ret= Xorriso_mark_update_merge(xorriso, iso_rr_path, NULL, 1);
if(ret <= 0)
goto ex;
}
if(flag & 1)
sprintf(xorriso->info_text, "Widened hard link ");
else

View File

@ -23,21 +23,16 @@ int Xorriso_pfx_disk_path(struct XorrisO *xorriso, char *iso_path,
/* @param boss_iter Opaque handle to be forwarded to actions in ISO image
Set to NULL if calling this function from outside ISO world
@param node Opaque handle to be forwarded to actions in ISO image
Set to NULL if calling this function from outside ISO world
@param flag bit0= update rather than compare
*/
int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter,
char *iso_path, char *iso_prefix, char *disk_prefix,
int flag);
/* @param boss_iter Opaque handle to be forwarded to actions in ISO image
Set to NULL if calling this function from outside ISO world
@param @node Opaque handle to be forwarded to actions in ISO image
Set to NULL if calling this function from outside ISO world
*/
int Xorriso_update_interpreter(struct XorrisO *xorriso,
void *boss_iter, void *node,
int Xorriso_update_interpreter(struct XorrisO *xorriso, void *boss_iter,
int compare_result, char *disk_path,
char *iso_rr_path, int flag);

View File

@ -3,7 +3,7 @@
# Copyright (c) 2007 - 2011 Thomas Schmitt <scdbackup@gmx.net>
# Provided under GPL version 2 or later.
AC_INIT([xorriso], [1.0.8], [http://libburnia-project.org])
AC_INIT([xorriso], [1.0.0], [http://libburnia-project.org])
AC_PREREQ([2.50])
AC_CANONICAL_HOST
@ -22,14 +22,14 @@ AC_DEFINE([Xorriso_standalonE], [])
BURN_MAJOR_VERSION=1
BURN_MINOR_VERSION=0
BURN_MICRO_VERSION=7
BURN_MICRO_VERSION=1
AC_SUBST(BURN_MAJOR_VERSION)
AC_SUBST(BURN_MINOR_VERSION)
AC_SUBST(BURN_MICRO_VERSION)
LIBISOFS_MAJOR_VERSION=1
LIBISOFS_MINOR_VERSION=0
LIBISOFS_MICRO_VERSION=7
LIBISOFS_MICRO_VERSION=1
AC_SUBST(LIBISOFS_MAJOR_VERSION)
AC_SUBST(LIBISOFS_MINOR_VERSION)
AC_SUBST(LIBISOFS_MICRO_VERSION)

View File

@ -1,13 +1,118 @@
#!/bin/sh
#
# convert_man_to_html.sh - ts B10309
# convert_man_to_html.sh - ts A80118
#
# Generates a HTML version of man pages xorriso.1 , xorrisofs.1
# Generates a HTML version of man page xorriso.1
#
# To be executed in the libisoburn toplevel directory (eg. ./libisoburn-1.0.4)
# To be executed in the libisoburn toplevel directory (eg. ./libisoburn-0.1.0)
#
xorriso/man_xorriso_to_html.sh
xorriso/man_xorrisofs_to_html.sh
# set -x
man_dir=$(pwd)"/xorriso"
export MANPATH="$man_dir"
manpage="xorriso"
raw_html=$(pwd)/"xorriso/raw_man_1_xorriso.html"
htmlpage=$(pwd)/"xorriso/man_1_xorriso.html"
if test -r "$man_dir"/"$manpage".1
then
dummy=dummy
else
echo "Cannot find readable man page source $1" >&2
exit 1
fi
if test -e "$man_dir"/man1
then
dummy=dummy
else
ln -s . "$man_dir"/man1
fi
if test "$1" = "-work_as_filter"
then
# set -x
sed \
-e 's/<meta name="generator" content="groff -Thtml, see www.gnu.org">/<meta name="generator" content="groff -Thtml, via man -H, via xorriso\/convert_man_to_html.sh">/' \
-e 's/<meta name="Content-Style" content="text\/css">/<meta name="Content-Style" content="text\/css"><META NAME="description" CONTENT="man page of xorriso"><META NAME="keywords" CONTENT="man xorriso, manual, xorriso, CD, CD-RW, CD-R, burning, cdrecord, compatible"><META NAME="robots" CONTENT="follow">/' \
-e 's/<title>XORRISO<\/title>/<title>man 1 xorriso<\/title>/' \
-e 's/<h1 align=center>XORRISO<\/h1>/<h1 align=center>man 1 xorriso<\/h1>/' \
-e 's/<body>/<body BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000>/' \
-e 's/<b>Overview of features:<\/b>/\&nbsp;<BR><b>Overview of features:<\/b>/' \
-e 's/<b>General information paragraphs:<\/b>/\&nbsp;<BR><b>General information paragraphs:<\/b>/' \
-e 's/have a look at section EXAMPLES/have a look at section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
-e 's/<b>Session model:<\/b>/\&nbsp;<BR><b>Session model:<\/b>/' \
-e 's/<b>Media types and states:<\/b>/\&nbsp;<BR><b>Media types and states:<\/b>/' \
-e 's/<b>Creating, Growing, Modifying, Blind/\&nbsp;<BR><b>Creating, Growing, Modifying, Blind/' \
-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, El Torito, ACL,/\&nbsp;<BR><b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/' \
-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>/' \
-e 's/<b>Influencing the behavior of image/\&nbsp;<BR><b>Influencing the behavior of image/' \
-e 's/<b>Inserting files into ISO image:<\/b>/\&nbsp;<BR><b>Inserting files into ISO image:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>File manipulations:<\/b>/\&nbsp;<BR><b>File manipulations:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Tree traversal command -find:<\/b>/\&nbsp;<BR><b>Tree traversal command -find:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^<p><b>&minus;iso_rr_pattern/<p>\&nbsp;<BR><b>\&minus;iso_rr_pattern/' \
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
-e 's/<b>Filters for data file content:<\/b>/\&nbsp;<BR><b>Filters for data file content:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Writing the result, drive control:<\/b>/\&nbsp;<BR><b>Writing the result, drive control:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^-find \/ /\&nbsp;\&nbsp;-find \/ /' \
-e 's/<b>Settings for file insertion:<\/b>/\&nbsp;<BR><b>Settings for file insertion:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^$<\/b> ln -s/\&nbsp;\&nbsp;$<\/b> ln -s/' \
-e 's/<b>Settings for result writing:<\/b>/\&nbsp;<BR><b>Settings for result writing:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^706k = 706kB/\&nbsp;\&nbsp;706k = 706kB/' \
-e 's/^5540k = 5540kB/\&nbsp;\&nbsp;5540k = 5540kB/' \
-e 's/<b>Character sets:<\/b>/\&nbsp;<BR><b>Character sets:<\/b><BR>\&nbsp;<BR>/' \
-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>Jigdo Template Extraction:<\/b>/\&nbsp;<BR><b>Jigdo Template Extraction:<\/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 ISO-to-disk restore options:<\/b>/\&nbsp;<BR><b>osirrox ISO-to-disk 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</' \
-e 's/<b>Scripting, dialog and/\&nbsp;<BR><b>Scripting, dialog and/' \
-e 's/^features:<\/b>/features:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Support for frontend/\&nbsp;<BR><b>Support for frontend/' \
-e 's/^listening at stdout:<\/b>/listening at stdout:<\/b><BR>\&nbsp;<BR>/' \
-e 's/xorriso -outdev \/dev\/sr2 \\ -blank fast \\ -pathspecs on/xorriso -outdev \/dev\/sr2 -blank fast -pathspecs on/' \
-e 's/\\ -add \\ \/sounds=\/home\/me\/sounds \\ \/pictures \\ -- \\ -rm_r \\/ -add \/sounds=\/home\/me\/sounds \/pictures -- -rm_r /' \
-e 's/\/sounds\/indecent \\ \&rsquo;\/pictures\/\*private\*\&rsquo; \\/\/sounds\/indecent \&rsquo;\/pictures\/*private*\&rsquo; /' \
-e 's/\/pictures\/confidential \\ -- \\ -add \\/\/pictures\/confidential -- -add/' \
-e 's/xorriso -dev \/dev\/sr2 \\ -rm_r \/sounds -- \\ -mv \\/xorriso -dev \/dev\/sr2 -rm_r \/sounds -- -mv /' \
-e 's/\/pictures\/confidential \\ \/pictures\/restricted \\ -- \\ -chmod/\/pictures\/confidential \/pictures\/restricted -- -chmod/' \
-e 's/go-rwx \/pictures\/restricted -- \\ -pathsspecs on \\ -add \\/go-rwx \/pictures\/restricted -- -pathsspecs on -add /' \
-e 's/\/sounds=\/home\/me\/prepared_for_dvd\/sounds_dummy /\/sounds=\/home\/me\/prepared_for_dvd\/sounds_dummy/' \
-e 's/\/movies=\/home\/me\/prepared_for_dvd\/movies \\ -- \\ -commit/\/movies=\/home\/me\/prepared_for_dvd\/movies -- -commit/' \
-e 's/xorriso -indev \/dev\/sr2 \\ -rm_r \/sounds -- \\/xorriso -indev \/dev\/sr2 -rm_r \/sounds -- /' \
-e 's/-outdev \/dev\/sr0 -blank fast \\ -commit -eject all/-outdev \/dev\/sr0 -blank fast -commit -eject all/' \
-e 's/See section FILES/See section <A HREF="#FILES">FILES<\/A>/' \
-e 's/See section EXAMPLES/See section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
-e 's/<\/body>/<BR><HR><FONT SIZE=-1><CENTER>(HTML generated from '"$manpage"'.1 on '"$(date)"' by '$(basename "$0")' )<\/CENTER><\/FONT><\/body>/' \
<"$2" >"$htmlpage"
set +x
chmod u+rw,go+r,go-w "$htmlpage"
echo "Emerged file:"
ls -lL "$htmlpage"
else
export BROWSER='cp "%s" '"$raw_html"
man -H "$manpage"
"$0" -work_as_filter "$raw_html"
rm "$raw_html"
rm "$man_dir"/man1
fi

View File

@ -1132,8 +1132,8 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job,
if(ret<xorriso->find_compare_result)
xorriso->find_compare_result= ret;
if(ret==0) {
uret= Xorriso_update_interpreter(xorriso, NULL, NULL, compare_result,
abs_path, iso_path, ((flag&1)<<2) | 2);
uret= Xorriso_update_interpreter(xorriso, NULL, compare_result,
abs_path, iso_path, (flag&1)<<2);
if(uret<=0)
ret= 0;
}

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -225,7 +225,6 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32)))
aquire_flag|= 64;
burn_preset_device_open(xorriso->drives_exclusive, 0, 0);
burn_allow_drive_role_4(1 | (xorriso->early_stdio_test & 14));
ret= isoburn_drive_aquire(&dinfo, libburn_adr, aquire_flag);
burn_preset_device_open(1, 0, 0);
Xorriso_process_msg_queues(xorriso,0);
@ -369,10 +368,11 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
ext|= isoburn_ropt_noea;
if(xorriso->ino_behavior & 1)
ext|= isoburn_ropt_noino;
#ifdef isoburn_ropt_nomd5
if(!(xorriso->do_md5 & 1))
ext|= isoburn_ropt_nomd5;
if(xorriso->do_md5 & 32)
ext|= isoburn_ropt_nomd5tag;
#endif
isoburn_ropt_set_extensions(ropts, ext);
@ -422,11 +422,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, sev, 0);
if(read_ret == ISO_SB_TREE_CORRUPTED && (xorriso->do_md5 & 1)) {
Xorriso_msgs_submit(xorriso, 0,
"This might be false MD5 alarm if an add-on session was written by growisofs.",
0, "HINT", 0);
Xorriso_msgs_submit(xorriso, 0,
"In this case you get an ISO image tree by option -md5 'load_check_off'",
0, "HINT", 0);
"You might get a questionable ISO image tree by option -md5 'off'.",
0, "HINT", 0);
} else if(xorriso->img_read_error_mode!=0) {
Xorriso_msgs_submit(xorriso, 0, "You might get a partial or altered ISO image tree by option -error_behavior 'image_loading' 'best_effort' if -abort_on is set to be tolerant enough.",
0, "HINT", 0);
@ -503,16 +500,15 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
if(!(flag&32)) {
Xorriso_toc(xorriso, 1 | 8);
if(xorriso->loaded_volid[0] != 0 &&
(state == BURN_DISC_APPENDABLE || state == BURN_DISC_FULL)) {
sprintf(xorriso->info_text,"Volume id : '%s'\n",
xorriso->loaded_volid);
Xorriso_info(xorriso, 0);
}
if(strcmp(xorriso->loaded_volid, xorriso->volid) != 0 &&
!xorriso->volid_default) {
sprintf(xorriso->info_text, "New volume id: '%s'\n", xorriso->volid);
if(xorriso->loaded_volid[0]!=0) {
sprintf(xorriso->info_text,"Volume id : '%s'\n",
xorriso->loaded_volid);
Xorriso_info(xorriso, 0);
if(strcmp(xorriso->loaded_volid, xorriso->volid) != 0 &&
!xorriso->volid_default) {
sprintf(xorriso->info_text, "New volume id: '%s'\n", xorriso->volid);
Xorriso_info(xorriso, 0);
}
}
}
@ -834,18 +830,14 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
if(profile_no == 0x0002 && s == BURN_DISC_EMPTY)
profile_no= 0;
sprintf(respt, "Media current: ");
drive_role= burn_drive_get_drive_role(drive);
if (profile_no > 0 && ret > 0) {
if (profile_name[0])
sprintf(respt+strlen(respt), "%s", profile_name);
else
sprintf(respt+strlen(respt), "%4.4Xh", profile_no);
drive_role= burn_drive_get_drive_role(drive);
if(drive_role==2)
sprintf(respt+strlen(respt), ", overwriteable");
else if(drive_role == 4)
sprintf(respt+strlen(respt), ", random read-only");
else if(drive_role == 5)
sprintf(respt+strlen(respt), ", random write-only");
else if(drive_role==0 || drive_role==3)
sprintf(respt+strlen(respt), ", sequential");
strcat(respt, "\n");
@ -904,21 +896,15 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
if (disc==NULL) {
Xorriso_process_msg_queues(xorriso,0);
if(drive_role == 5 && s == BURN_DISC_APPENDABLE) {
ret= burn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
if(ret == 1)
num_data= nwa;
} else {
ret= isoburn_get_min_start_byte(drive, &start_byte, 0);
nwa= start_byte / 2048;
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
if(flag&1)
{ret= 0; goto ex;}
sprintf(xorriso->info_text, "Cannot obtain Table Of Content");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= isoburn_get_min_start_byte(drive, &start_byte, 0);
nwa= start_byte / 2048;
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
if(flag&1)
{ret= 0; goto ex;}
}
sprintf(xorriso->info_text, "Cannot obtain Table Of Content");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
{ret= 0; goto ex;}
}
/* fabricate TOC */
@ -933,13 +919,13 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
1, 0, image_blocks, volume_id);
nwa= image_blocks;
} else {
nwa= num_data;
nwa= 0;
ret= burn_disc_get_formats(drive, &status, &size, &dummy,
&num_formats);
if(ret>0 && status==BURN_FORMAT_IS_FORMATTED)
nwa= size/2048;
sprintf(respt, "%13s: %3d , %9d , %9ds , \n",
typetext, 1, num_data, nwa);
typetext, 1, 0, nwa);
}
if(!(flag&1))
Xorriso_toc_line(xorriso, flag & 8);
@ -1035,8 +1021,8 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
{ret= 1; goto ex;}
num_wasted= lba - num_payload;
num_nondata= lba - num_data;
Sfile_scale(((double) num_data) * 2048.0, mem_text,5,1e4,1);
sprintf(respt, "Media summary: %d session%s, %d data blocks, %s data",
num_sessions, (num_sessions==1 ? "" : "s"), num_data, mem_text);
num_free= isoburn_disc_available_space(drive, NULL);
@ -1305,12 +1291,6 @@ int Xorriso_atip(struct XorrisO *xorriso, int flag)
else if(ret==3)
sprintf(respt+strlen(respt), "%s\n",
"Emulated (stdio-drive, sequential write-only)");
else if(ret == 4)
sprintf(respt+strlen(respt), "%s\n",
"Emulated (stdio-drive, 2k random read-only)");
else if(ret == 5)
sprintf(respt+strlen(respt), "%s\n",
"Emulated (stdio-drive, 2k random write-only)");
else if(ret!=1)
sprintf(respt+strlen(respt), "%s\n","Emulated (stdio-drive)");
else

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -118,8 +118,6 @@ int Xorriso_extf_destroy(struct XorrisO *xorriso, struct Xorriso_extF **filter,
if(cmd != NULL) {
if(cmd->refcount > 0)
return(0);
if(cmd->path != NULL)
free(cmd->path);
if(cmd->suffix != NULL)
free(cmd->suffix);
if(cmd->argv != NULL) {
@ -130,7 +128,6 @@ int Xorriso_extf_destroy(struct XorrisO *xorriso, struct Xorriso_extF **filter,
}
if(cmd->name != NULL)
free(cmd->name);
free((char *) cmd);
}
free((char *) *filter);
*filter= NULL;
@ -398,7 +395,7 @@ int Xorriso_set_filter(struct XorrisO *xorriso, void *in_node,
sprintf(xorriso->info_text,
"-set_filter: UID and EUID differ. Will not run external programs.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
ret= 0; goto ex;
return(0);
}
#endif /* ! Xorriso_allow_extf_suiD */

View File

@ -155,9 +155,6 @@ struct FindjoB {
38= sort_weight number
39= hide on|iso_rr|joliet|off
40= estimate_size
41= update_merge disk_equiv
42= rm_merge
43= clear_merge
*/
int action;
int prune;

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -126,11 +126,6 @@ int Xorriso_graft_split(struct XorrisO *xorriso, IsoImage *volume,
if(ret<0)
return(ret);
*node= (IsoNode *) new_dir;
if(xorriso->update_flags & 1) {
ret= Xorriso_mark_update_merge(xorriso, img_name, node, 1);
if(ret <= 0)
return(0);
}
total_parts= size / xorriso->split_size;
if(size % xorriso->split_size)
total_parts++;
@ -166,7 +161,7 @@ int Xorriso_tree_graft_node(struct XorrisO *xorriso, IsoImage *volume,
{
int ret, stbuf_valid= 0;
struct stat stbuf;
char sfe[5*SfileadrL], *namept;
char sfe[5*SfileadrL];
off_t size= 0;
if(lstat(disk_path, &stbuf) != -1) {
@ -218,21 +213,11 @@ int Xorriso_tree_graft_node(struct XorrisO *xorriso, IsoImage *volume,
if(ret <= 0)
goto ex;
}
if(xorriso->update_flags & 1) {
ret= Xorriso_mark_update_merge(xorriso, img_name, *node, 1);
if(ret <= 0)
goto ex;
}
ex:;
if(ret<0) {
Xorriso_process_msg_queues(xorriso,0);
if(ret == ISO_RR_NAME_TOO_LONG || ret == ISO_RR_NAME_RESERVED ||
ret == ISO_RR_PATH_TOO_LONG)
namept= nominal_target;
else
namept= nominal_source;
Xorriso_report_iso_error(xorriso, namept, ret,
Xorriso_report_iso_error(xorriso, nominal_source, ret,
"Cannot add node to tree", 0, "FAILURE", 1|2);
return(ret);
}
@ -626,30 +611,20 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
int target_is_split, hide_attrs;
struct stat stbuf;
ret= Xorriso_path_is_excluded(xorriso, disk_path, !(flag&4));
if(ret<0)
return(ret);
if(ret>0)
return(3*!!(flag&16));
/* Check for mkisofs-style hidings */
hide_attrs= (flag >> 8) & 3;
if (disk_path == NULL && !(flag & 1)) {
Xorriso_msgs_submit(xorriso, 0,
"Program error: Xorriso_graft_in(): disk_path == NULL && !(flag & 1)",
0, "ABORT", 0);
return(-1);
}
if (disk_path == NULL) {
disk_path= "";
} else {
ret= Xorriso_path_is_excluded(xorriso, disk_path, !(flag&4));
if(hide_attrs != 3) {
ret= Xorriso_path_is_hidden(xorriso, disk_path, 0);
if(ret<0)
return(ret);
if(ret>0)
return(3*!!(flag&16));
/* Check for mkisofs-style hidings */
if(hide_attrs != 3) {
ret= Xorriso_path_is_hidden(xorriso, disk_path, 0);
if(ret<0)
return(ret);
if(ret>=0)
hide_attrs|= ret;
}
if(ret>=0)
hide_attrs|= ret;
}
for(cpt= img_path; 1; cpt++) {
@ -663,14 +638,10 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
break;
}
if(cpt!=NULL) {
if(disk_path[0])
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
sprintf(xorriso->info_text,
"Unsupported relative addressing in iso_rr_path %s",
Text_shellsafe(img_path, sfe, 0));
if(disk_path[0])
sprintf(xorriso->info_text + strlen(xorriso->info_text),
" (disk: %s)", Text_shellsafe(disk_path, sfe, 0));
"Unsupported relative addressing in iso_rr_path %s (disk: %s)",
Text_shellsafe(img_path, sfe, 0), Text_shellsafe(disk_path, sfe2, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
return(0);
}
@ -769,8 +740,7 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
return(ret);
if(ret==3) {
sprintf(xorriso->info_text, "User revoked adding of: %s",
disk_path[0] ? Text_shellsafe(disk_path, sfe, 0)
: Text_shellsafe(img_path, sfe, 0));
Text_shellsafe(disk_path, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
return(3*!!(flag&16));
}
@ -778,8 +748,7 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
goto handle_path_node;
}
if (disk_path[0])
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
sprintf(xorriso->info_text,
"While grafting '%s' : '%s' exists and may not be overwritten",
img_path, path);
@ -794,8 +763,7 @@ handle_path_node:;
ret= iso_tree_add_new_dir(dir, apt, &hdir);
if(ret<0) {
Xorriso_process_msg_queues(xorriso,0);
if(disk_path[0])
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
Xorriso_report_iso_error(xorriso, img_path, ret,
"Cannot create directory", 0, "FAILURE", 1);
sprintf(xorriso->info_text,
@ -803,19 +771,13 @@ handle_path_node:;
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
if(xorriso->update_flags & 1) {
ret= Xorriso_mark_update_merge(xorriso, path, (IsoNode *) hdir, 1);
if(ret <= 0)
return(0);
}
dir= hdir;
Xorriso_set_change_pending(xorriso, 0);
iso_node_set_ctime((IsoNode *) dir, time(NULL));
iso_node_set_uid((IsoNode *) dir, geteuid());
iso_node_set_gid((IsoNode *) dir, getegid());
if(disk_path[0] && !done)
if(disk_path!=NULL && !done)
/* This not only copies disk directory properties
but also sets eventual hide_attrs */
Xorriso_copy_implicit_properties(xorriso, dir, img_path, path, disk_path,
@ -937,7 +899,6 @@ unsupported_type:;
/* @param flag bit0= do not produce info message on success
bit1= do not raise protest if directory already exists
@return 1=success,
0=was already directory, -1=was other type, -2=other error
*/
@ -950,10 +911,8 @@ int Xorriso_mkdir(struct XorrisO *xorriso, char *path, int flag)
if(ret<0)
return(-2);
if(ret>0) {
if(ret == 2 && (flag & 2))
return(0);
sprintf(xorriso->info_text,"-mkdir: Address already existing %s",
Text_shellsafe(eff_path, sfe, 0));
Text_shellsafe(eff_path, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0,
(ret==2 ? "WARNING" : "FAILURE"), 0);
return(-1+(ret==2));
@ -1228,38 +1187,6 @@ ex:;
}
int Xorriso_overwrite_dest(struct XorrisO *xorriso, void *boss_iter,
char *eff_dest, int dest_ret, char *activity,
int flag)
{
int ret;
char sfe[5*SfileadrL];
if(dest_ret==2 && xorriso->do_overwrite!=1) {
sprintf(xorriso->info_text, "%s: May not overwrite directory: %s",
activity, Text_shellsafe(eff_dest, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
} else if (dest_ret==1 && !xorriso->do_overwrite) {
sprintf(xorriso->info_text, "%s: May not overwite: %s",
activity, Text_shellsafe(eff_dest, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
} else if(dest_ret>0) {
ret= Xorriso_rmi(xorriso, boss_iter, (off_t) 0, eff_dest, 1|8);
if(ret<=0)
return(0);
if(ret==3) {
sprintf(xorriso->info_text, "%s: User revoked removal of: %s",
activity, Text_shellsafe(eff_dest, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
return(0);
}
}
return(1);
}
/* @param boss_iter Opaque handle to be forwarded to actions in ISO image
Set to NULL if calling this function from outside ISO world
*/
@ -1322,10 +1249,27 @@ int Xorriso_rename(struct XorrisO *xorriso, void *boss_iter,
}
/* Check whether destination exists and may be not overwriteable */
ret= Xorriso_overwrite_dest(xorriso, boss_iter,
eff_dest, dest_ret, "Renaming", 0);
if(ret <= 0)
return(ret);
if(dest_ret==2 && xorriso->do_overwrite!=1) {
sprintf(xorriso->info_text, "Renaming may not overwrite directory: %s",
Text_shellsafe(eff_dest, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
} else if (dest_ret==1 && !xorriso->do_overwrite) {
sprintf(xorriso->info_text, "Renaming may not overwite: %s",
Text_shellsafe(eff_dest, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
} else if(dest_ret>0) {
ret= Xorriso_rmi(xorriso, boss_iter, (off_t) 0, eff_dest, 1|8);
if(ret<=0)
return(0);
if(ret==3) {
sprintf(xorriso->info_text, "User revoked renaming of: %s",
Text_shellsafe(eff_origin, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
return(0);
}
}
/* Ensure existence of destination directory */
strcpy(dir_adr, eff_dest);
@ -1401,175 +1345,6 @@ int Xorriso_rename(struct XorrisO *xorriso, void *boss_iter,
}
int Xorriso_cannot_clone(struct XorrisO *xorriso, char *eff_origin,
char *eff_dest, int iso_error, int flag)
{
Xorriso_report_iso_error(xorriso, eff_dest, iso_error, "Cannot clone",
0, "FAILURE", 1);
sprintf(xorriso->info_text, "Failed to clone ");
Text_shellsafe(eff_origin, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
/* @param flag bit0= for iso_tree_clone() : merge directories
bit1= do not issue NOTE message
*/
int Xorriso_clone_tree(struct XorrisO *xorriso, void *boss_iter,
char *origin, char *dest, int flag)
{
int ret, dest_ret, l;
char eff_dest[SfileadrL], eff_origin[SfileadrL], dir_adr[SfileadrL];
char *leafname;
IsoImage *volume;
IsoDir *new_parent;
IsoNode *origin_node, *dir_node, *new_node;
ret= Xorriso_get_volume(xorriso, &volume, 0);
if(ret <= 0)
return(ret);
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, origin, eff_origin, 0);
if(ret<=0)
return(ret);
ret= Xorriso_node_from_path(xorriso, volume, eff_origin, &origin_node, 0);
if(ret <= 0)
return(ret);
dest_ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, dest, eff_dest,1);
if(dest_ret<0)
return(dest_ret);
if(dest_ret > 0) {
if(eff_dest[0] == 0)
strcpy(eff_dest, "/");
sprintf(xorriso->info_text,
"Cloning: Copy address already exists: ");
Text_shellsafe(eff_dest, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
} else {
/* obtain eff_dest address despite it does not exist */
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, dest, eff_dest, 2);
if(ret<=0)
return(ret);
}
/* Obtain parent path and leaf name */
strcpy(dir_adr, eff_dest);
for(l= strlen(dir_adr); l > 0; ) {
if(dir_adr[l - 1] == '/')
dir_adr[--l]= 0;
else
break;
}
leafname= strrchr(dir_adr, '/');
if(leafname == NULL) {
leafname= dir_adr;
if (leafname[0] == 0) {
Xorriso_msgs_submit(xorriso, 0, "Empty file name as clone destination",
0, "FAILURE", 0);
return(0);
}
} else {
*leafname= 0;
leafname++;
if(dir_adr[0] != 0) {
/* Ensure existence of destination directory */
ret= Xorriso_graft_in(xorriso, boss_iter, NULL, dir_adr,
(off_t) 0, (off_t) 0, 1);
if(ret <= 0)
return(ret);
}
}
ret= Xorriso_node_from_path(xorriso, volume, dir_adr, &dir_node, 0);
if(ret <= 0)
return(ret);
new_parent= (IsoDir *) dir_node;
ret = iso_tree_clone(origin_node, new_parent, leafname, &new_node, flag & 1);
Xorriso_process_msg_queues(xorriso,0);
if(ret < 0) {
Xorriso_cannot_clone(xorriso, eff_origin, eff_dest, ret, 0);
return(0);
}
Xorriso_set_change_pending(xorriso, 0);
if(!(flag & 2)) {
strcpy(xorriso->info_text, "Cloned in ISO image: ");
Text_shellsafe(eff_origin, xorriso->info_text, 1);
strcat(xorriso->info_text, " to ");
Text_shellsafe(eff_dest, xorriso->info_text, 1);
strcat(xorriso->info_text, "\n");
Xorriso_info(xorriso, 0);
}
return(1);
}
int Xorriso_clone_under(struct XorrisO *xorriso, char *origin, char *dest,
int flag)
{
int ret, pass;
char eff_dest[SfileadrL], eff_origin[SfileadrL], *namept;
IsoDir *origin_dir, *dest_dir;
IsoDirIter *iter= NULL;
IsoNode *origin_node, *new_node;
IsoImage *volume;
ret= Xorriso_get_volume(xorriso, &volume, 0);
if(ret <= 0)
return(ret);
ret= Xorriso_dir_from_path(xorriso, "Copy source", origin, &origin_dir, 0);
if(ret <= 0)
return(ret);
ret= Xorriso_dir_from_path(xorriso, "Copy destination", dest, &dest_dir, 0);
if(ret <= 0)
return(ret);
for(pass= 0; pass < 2; pass++) {
ret= iso_dir_get_children(origin_dir, &iter);
if(ret < 0) {
Xorriso_cannot_create_iter(xorriso, ret, 0);
{ret= -1; goto ex;}
}
Xorriso_process_msg_queues(xorriso,0);
while(iso_dir_iter_next(iter, &origin_node) == 1) {
namept= (char *) iso_node_get_name(origin_node);
sprintf(eff_origin, "%s/%s", origin, namept);
sprintf(eff_dest, "%s/%s", dest, namept);
if(pass == 0) {
ret= Xorriso_node_from_path(xorriso, volume, eff_dest, &new_node, 1);
if(ret < 0)
goto ex;
if(ret > 0) {
sprintf(xorriso->info_text, "Cloning: Copy address already exists: ");
Text_shellsafe(eff_dest, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
} else {
ret = iso_tree_clone(origin_node, dest_dir, namept, &new_node, 1);
Xorriso_process_msg_queues(xorriso,0);
if(ret < 0) {
Xorriso_cannot_clone(xorriso, eff_origin, eff_dest, ret, 0);
ret= 0; goto ex;
}
}
}
iso_dir_iter_free(iter);
iter= NULL;
}
Xorriso_set_change_pending(xorriso, 0);
ret= 1;
ex:;
if(iter != NULL)
iso_dir_iter_free(iter);
Xorriso_process_msg_queues(xorriso,0);
return(ret);
}
int Xorriso_set_st_mode(struct XorrisO *xorriso, char *in_path,
mode_t mode_and, mode_t mode_or, int flag)
{
@ -1881,8 +1656,8 @@ int Xorriso_widen_hardlink(struct XorrisO *xorriso, void * boss_iter,
/* >>> compare_result bit17 = is_split */;
ret= Xorriso_update_interpreter(xorriso, boss_iter, NULL,
compare_result, disk_path, abs_path, 1);
ret= Xorriso_update_interpreter(xorriso, boss_iter, compare_result, disk_path,
abs_path, 1);
if(ret <= 0)
return(ret);
return(ret);
@ -2111,13 +1886,10 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
Findjob_set_start_path(subjob, abs_path, 0);
ret= Xorriso_findi(xorriso, subjob, boss_iter, boss_mem, NULL,
abs_path, &dir_stbuf, depth, 1);
} else if(action==14 || action==17 || action == 41) {
/* compare , update , update_merge */
} else if(action==14 || action==17) { /* compare , update */
Findjob_get_start_path(job, &iso_prefix, 0);
ret= Xorriso_find_compare(xorriso, (void *) boss_iter, (void *) node,
abs_path, iso_prefix, target,
(action == 17 || action == 41)
| ((flag&1)<<1) | ((action == 41) << 2));
ret= Xorriso_find_compare(xorriso, (void *) boss_iter, abs_path,
iso_prefix, target, (action==17)|((flag&1)<<1));
if(ret==2)
deleted= 1;
if(ret==3)
@ -2198,17 +1970,6 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
if(ret > 0)
ret= Xorriso_estimate_file_size(xorriso, job, basename, stbuf.st_mode,
stbuf.st_size, 0);
} else if(action == 42) { /* rm_merge */
ret= Xorriso_mark_update_merge(xorriso, show_path, node, 2 | 4);
if(ret == 2) {
ret= Xorriso_rmi(xorriso, boss_iter, boss_mem, abs_path, 1|hflag);
sprintf(xorriso->info_text, "Deleted ");
Text_shellsafe(show_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
deleted= 1;
}
} else if(action == 43) { /* clear_merge */
ret= Xorriso_mark_update_merge(xorriso, show_path, node, 2 | 4);
} else { /* includes : 15 in_iso */
sprintf(xorriso->result_line, "%s\n", Text_shellsafe(show_path, sfe, 0));
Xorriso_result(xorriso, 0);
@ -2611,10 +2372,9 @@ int Xorriso_findi(struct XorrisO *xorriso, struct FindjoB *job,
mem= boss_mem;
hflag= 1;
if(action==1 || action==2 || action==3 || action==17 || action == 28 ||
action == 32 || action == 41 || action == 42)
action == 32)
hflag|= 2; /* need freedom to manipulate image */
if(action==14 || action==17 || action == 28 || action == 35 || action == 36 ||
action == 41)
if(action==14 || action==17 || action == 28 || action == 35 || action == 36)
hflag|= 4; /* need LBA sorted iteration for good data reading performance */
ret= Xorriso_findi_iter(xorriso, dir_node, &mem,
&iter, &node_array, &node_count, &node_idx,
@ -3026,92 +2786,3 @@ ex:;
return(ret);
}
int Xorriso__mark_update_xinfo(void *data, int flag)
{
/* data is an int disguised as pointer. It does not point to memory. */
return(1);
}
int Xorriso__mark_update_cloner(void *old_data, void **new_data, int flag)
{
*new_data= NULL;
if(flag)
return(ISO_XINFO_NO_CLONE);
if(old_data == NULL)
return(0);
/* data is an int disguised as pointer. It does not point to memory. */
*new_data= old_data;
return(0);
}
/* @param flag bit0= found on disk
bit1= inquire visit-found status:
1=not visited, 2=not found, 3=found
bit2= with bit1: delete xinfo before returning status
*/
int Xorriso_mark_update_merge(struct XorrisO *xorriso, char *path,
void *in_node, int flag)
{
int ret;
void *xipt= NULL;
IsoNode *node;
if(in_node == NULL) {
ret= Xorriso_node_from_path(xorriso, NULL, path, &node, 0);
if(ret <= 0)
return(ret);
} else
node= (IsoNode *) in_node;
ret= iso_node_get_xinfo(node, Xorriso__mark_update_xinfo, &xipt);
if(ret < 0) {
Xorriso_process_msg_queues(xorriso,0);
Xorriso_report_iso_error(xorriso, "", ret,
"Error when looking for update_merge xinfo",
0, "FAILURE", 1);
return(0);
}
if(flag & 2) { /* Inquire status and optionally delete xinfo */
if(ret == 0)
return(1);
if(flag & 4) {
ret= iso_node_remove_xinfo(node, Xorriso__mark_update_xinfo);
if(ret < 0) {
Xorriso_process_msg_queues(xorriso,0);
Xorriso_report_iso_error(xorriso, "", ret,
"Error when removing update_merge xinfo",
0, "FAILURE", 1);
return(0);
}
}
if(((char *) &xipt)[0])
return(3);
return(2);
}
/* xipt is a byte value disguised as void pointer */
if(ret == 1) {
if(((char *) &xipt)[0])
return(1);
if(!(flag & 1))
return(1);
} else
((char *) &xipt)[0]= 0;
if(flag & 1)
((char *) &xipt)[0]= 1;
ret= iso_node_remove_xinfo(node, Xorriso__mark_update_xinfo);
if(ret < 0)
goto set_error;
ret= iso_node_add_xinfo(node, Xorriso__mark_update_xinfo, xipt);
if(ret <= 0) {
set_error:;
Xorriso_process_msg_queues(xorriso,0);
Xorriso_report_iso_error(xorriso, "", ret,
"Error when trying to set update_merge xinfo",
0, "FAILURE", 1);
return(0);
}
return(1);
}

View File

@ -67,8 +67,6 @@ int Xorriso_all_node_array(struct XorrisO *xorriso, int addon_nodes, int flag);
int Xorriso__file_start_lba(IsoNode *node, int *lba, int flag);
int Xorriso__mark_update_xinfo(void *data, int flag);
int Xorriso__mark_update_cloner(void *old_data, void **new_data, int flag);
#endif /* ! Xorriso_pvt_iso_manip_includeD */

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -1472,19 +1472,36 @@ int Xorriso_ls_filev(struct XorrisO *xorriso, char *wd,
*/
int Xorriso_ls(struct XorrisO *xorriso, int flag)
{
int ret, i, filec= 0, failed_at, no_sort= 0;
int ret, is_dir= 0, i, filec= 0, failed_at, no_sort= 0;
IsoNode *node, **node_array= NULL;
IsoDir *dir_node;
IsoImage *volume;
IsoDirIter *iter= NULL;
char sfe[5*SfileadrL], sfe2[5*SfileadrL], link_target[SfileadrL], *npt, *rpt;
struct stat stbuf;
rpt= xorriso->result_line;
ret= Xorriso_dir_from_path(xorriso, "Working directory", xorriso->wdi,
&dir_node, 0);
if(ret <= 0)
goto ex;
ret= Xorriso_get_volume(xorriso, &volume, 0);
if(ret<=0)
return(ret);
ret= Xorriso_node_from_path(xorriso, volume, xorriso->wdi, &node, 0);
if(ret<=0)
goto wdi_is_not_a_dir;
if(LIBISO_ISDIR(node))
is_dir= 1;
if(!is_dir) {
wdi_is_not_a_dir:;
sprintf(xorriso->info_text,
"Working directory path does not lead to a directory in ISO image");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
if(flag&2)
{ret= 1; goto ex;}
dir_node= (IsoDir *) node;
ret= iso_dir_get_children(dir_node, &iter);
if(ret<0) {
cannot_create_iter:;
@ -2136,34 +2153,6 @@ int Xorriso_node_from_path(struct XorrisO *xorriso, IsoImage *volume,
}
int Xorriso_dir_from_path(struct XorrisO *xorriso, char *purpose,
char *path, IsoDir **dir_node, int flag)
{
IsoImage *volume;
IsoNode *node;
int ret, is_dir= 0;
ret= Xorriso_get_volume(xorriso, &volume, 0);
if(ret<=0)
return(ret);
ret= Xorriso_node_from_path(xorriso, volume, path, &node, 0);
if(ret<=0)
goto wdi_is_not_a_dir;
if(LIBISO_ISDIR(node))
is_dir= 1;
if(!is_dir) {
wdi_is_not_a_dir:;
sprintf(xorriso->info_text,
"%s path does not lead to a directory in ISO image", purpose);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
*dir_node= (IsoDir *) node;
return(1);
}
/*
@param flag bit0= do not remove leading slash
bit1= append flatly to result_line and put out

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -35,9 +35,6 @@ int Xorriso_get_node_by_path(struct XorrisO *xorriso,
char *in_path, char *eff_path,
IsoNode **node, int flag);
int Xorriso_dir_from_path(struct XorrisO *xorriso, char *purpose,
char *path, IsoDir **dir_node, int flag);
int Xorriso_node_get_dev(struct XorrisO *xorriso, IsoNode *node,
char *path, dev_t *dev, int flag);

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -23,14 +23,7 @@
#include <sys/time.h>
#include <time.h>
#include <errno.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#else
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#endif
/* for -charset */
#include <iconv.h>
@ -55,7 +48,6 @@
#include "xorrisoburn.h"
#include "lib_mgt.h"
#include "iso_manip.h"
int Xorriso_abort(struct XorrisO *xorriso, int flag)
@ -204,9 +196,6 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
zisofs_ctrl.compression_level;
}
iso_node_xinfo_make_clonable(Xorriso__mark_update_xinfo,
Xorriso__mark_update_cloner, 0);
/* Second initialization. This time with libs. */
Xorriso_preparer_string(xorriso, xorriso->preparer_id, 0);

View File

@ -1,13 +1,10 @@
#!/bin/sh
#
# Produce man page xorriso/xorriso.1 and info file xorriso/xorriso.info
# from base file xorriso/xorriso.texi.
# Same for xorriso/xorrisofs.texi.
# from base file xorris/xorriso.texi.
( cd xorriso ; makeinfo ./xorriso.texi )
( cd xorriso ; makeinfo ./xorrisofs.texi )
xorriso/make_xorriso_1 -auto
xorriso/make_xorriso_1 -auto -xorrisofs

View File

@ -3,12 +3,11 @@
( cd xorriso ; cc -g -Wall -o make_xorriso_1 make_xorriso_1.c )
*/
/*
Specialized converter from xorriso/xorriso.texi to xorriso/xorriso.1
resp. from xorriso/xorrisofs.texi to xorriso/xorrisofs.1
Specialized converter from xorriso/xorriso.texi to xorriso/xorriso.1.
The conversion rules are described at the beginning of xorriso/xorriso.texi
Copyright 2010 - 2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
*/
@ -229,20 +228,10 @@ int Mx1_convert(struct Mx1 *m, char line_in[256], char line_out[256], int flag)
}
strcat(buf, "\\");
}
/* Substitute option text */
raw= strlen(buf);
strcat(buf, word);
ret= Mx1_substitute(m, buf, line_out, raw, 0);
if(ret <= 0)
return(-1);
strcpy(buf, line_out);
strcat(buf, "\\fR");
raw= strlen(buf);
strcat(buf, remainder);
/* Substitute arguments text */
ret= Mx1_substitute(m, buf, line_out, raw, 0);
if(ret <= 0)
return(-1);
@ -282,8 +271,8 @@ int main(int argc, char **argv)
{
int ret, l, as_filter= 0, i;
char line_in[256], line_out[256], *got;
static char name_in[1024]= {"xorriso/xorriso.texi"};
static char name_out[1024]= {"xorriso/xorriso.1"};
static char name_in[]= {"xorriso/xorriso.texi"};
static char name_out[]= {"xorriso/xorriso.1"};
struct Mx1 m;
FILE *fp_in= stdin, *fp_out= stdout;
@ -291,10 +280,9 @@ int main(int argc, char **argv)
if(argc < 2) {
usage:;
fprintf(stderr, "usage: %s -auto|-filter|[-xorrisofs]\n", argv[0]);
fprintf(stderr, " -auto xorriso/xorriso.texi -> xorriso/xorriso.1\n");
fprintf(stderr, " -filter stdin -> stdout\n");
fprintf(stderr, " -xorrisofs process xorriso/xorrisofs.texi\n");
fprintf(stderr, "usage: %s -auto|-filter\n", argv[0]);
fprintf(stderr, " -auto xorriso/xorriso.texi -> xorriso/xorriso.1\n");
fprintf(stderr, " -filter stdin -> stdout\n");
exit(2);
}
for(i= 1; i < argc; i++) {
@ -302,10 +290,7 @@ usage:;
as_filter= 1;
else if(strcmp(argv[i], "-auto") == 0)
as_filter= 0;
else if(strcmp(argv[i], "-xorrisofs") == 0) {
strcpy(name_in, "xorriso/xorrisofs.texi");
strcpy(name_out, "xorriso/xorrisofs.1");
} else {
else {
fprintf(stderr, "%s : unknown option %s\n", argv[0], argv[i]);
goto usage;
}

View File

@ -40,7 +40,7 @@ create_gnu_xorriso="yes"
current_dir=$(pwd)
lone_dir="$current_dir"/"xorriso-standalone"
xorriso_rev=1.0.8
xorriso_rev=1.0.0
# For unstable uploads and patch level 0 of stable releases:
xorriso_pl=""
# For higher patch levels of stable releases:
@ -189,16 +189,11 @@ copy_files \
\
xorriso/changelog.txt \
xorriso/xorriso_eng.html \
xorriso/make_docs.sh \
xorriso/xorriso.texi \
xorriso/xorriso.info \
xorriso/xorrisofs.texi \
xorriso/xorrisofs.info \
xorriso/make_xorriso_1.c \
xorriso/xorriso.1 \
xorriso/xorrisofs.1 \
xorriso/man_1_xorriso.html \
xorriso/man_1_xorrisofs.html \
"$lone_dir"/xorriso
copy_files COPYRIGHT "$lone_dir"/xorriso
@ -208,9 +203,7 @@ copy_files xorriso/xorriso_buildstamp_none.h \
"$lone_dir"/xorriso/xorriso_buildstamp_none.h
create_dir "$lone_dir"/doc
copy_files doc/partition_offset.wiki \
doc/startup_file.txt \
"$lone_dir"/doc
copy_files doc/partition_offset.wiki "$lone_dir"/doc
create_dir "$lone_dir"/test
copy_files \

View File

@ -1,118 +0,0 @@
#!/bin/sh
#
# man_xorriso_to_html.sh - ts A80118 , B10309
#
# Generates a HTML version of man page xorriso.1
#
# To be executed in the libisoburn toplevel directory (eg. ./libisoburn-0.1.0)
#
# set -x
man_dir=$(pwd)"/xorriso"
export MANPATH="$man_dir"
manpage="xorriso"
raw_html=$(pwd)/"xorriso/raw_man_1_xorriso.html"
htmlpage=$(pwd)/"xorriso/man_1_xorriso.html"
if test -r "$man_dir"/"$manpage".1
then
dummy=dummy
else
echo "Cannot find readable man page source $1" >&2
exit 1
fi
if test -e "$man_dir"/man1
then
dummy=dummy
else
ln -s . "$man_dir"/man1
fi
if test "$1" = "-work_as_filter"
then
# set -x
sed \
-e 's/<meta name="generator" content="groff -Thtml, see www.gnu.org">/<meta name="generator" content="groff -Thtml, via man -H, via xorriso\/convert_man_to_html.sh">/' \
-e 's/<meta name="Content-Style" content="text\/css">/<meta name="Content-Style" content="text\/css"><META NAME="description" CONTENT="man page of xorriso"><META NAME="keywords" CONTENT="man xorriso, manual, xorriso, CD, CD-RW, CD-R, burning, cdrecord, compatible"><META NAME="robots" CONTENT="follow">/' \
-e 's/<title>XORRISO<\/title>/<title>man 1 xorriso<\/title>/' \
-e 's/<h1 align=center>XORRISO<\/h1>/<h1 align=center>man 1 xorriso<\/h1>/' \
-e 's/<body>/<body BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000>/' \
-e 's/<b>Overview of features:<\/b>/\&nbsp;<BR><b>Overview of features:<\/b>/' \
-e 's/<b>General information paragraphs:<\/b>/\&nbsp;<BR><b>General information paragraphs:<\/b>/' \
-e 's/have a look at section EXAMPLES/have a look at section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
-e 's/<b>Session model:<\/b>/\&nbsp;<BR><b>Session model:<\/b>/' \
-e 's/<b>Media types and states:<\/b>/\&nbsp;<BR><b>Media types and states:<\/b>/' \
-e 's/<b>Creating, Growing, Modifying, Blind/\&nbsp;<BR><b>Creating, Growing, Modifying, Blind/' \
-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, El Torito, ACL,/\&nbsp;<BR><b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/' \
-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>/' \
-e 's/<b>Influencing the behavior of image/\&nbsp;<BR><b>Influencing the behavior of image/' \
-e 's/<b>Inserting files into ISO image:<\/b>/\&nbsp;<BR><b>Inserting files into ISO image:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>File manipulations:<\/b>/\&nbsp;<BR><b>File manipulations:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Tree traversal command -find:<\/b>/\&nbsp;<BR><b>Tree traversal command -find:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^<p><b>&minus;iso_rr_pattern/<p>\&nbsp;<BR><b>\&minus;iso_rr_pattern/' \
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
-e 's/<b>Filters for data file content:<\/b>/\&nbsp;<BR><b>Filters for data file content:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Writing the result, drive control:<\/b>/\&nbsp;<BR><b>Writing the result, drive control:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^-find \/ /\&nbsp;\&nbsp;-find \/ /' \
-e 's/<b>Settings for file insertion:<\/b>/\&nbsp;<BR><b>Settings for file insertion:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^$<\/b> ln -s/\&nbsp;\&nbsp;$<\/b> ln -s/' \
-e 's/<b>Settings for result writing:<\/b>/\&nbsp;<BR><b>Settings for result writing:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^706k = 706kB/\&nbsp;\&nbsp;706k = 706kB/' \
-e 's/^5540k = 5540kB/\&nbsp;\&nbsp;5540k = 5540kB/' \
-e 's/<b>Character sets:<\/b>/\&nbsp;<BR><b>Character sets:<\/b><BR>\&nbsp;<BR>/' \
-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>Jigdo Template Extraction:<\/b>/\&nbsp;<BR><b>Jigdo Template Extraction:<\/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 ISO-to-disk restore options:<\/b>/\&nbsp;<BR><b>osirrox ISO-to-disk 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</' \
-e 's/<b>Scripting, dialog and/\&nbsp;<BR><b>Scripting, dialog and/' \
-e 's/^features:<\/b>/features:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Support for frontend/\&nbsp;<BR><b>Support for frontend/' \
-e 's/^listening at stdout:<\/b>/listening at stdout:<\/b><BR>\&nbsp;<BR>/' \
-e 's/xorriso -outdev \/dev\/sr2 \\ -blank fast \\ -pathspecs on/xorriso -outdev \/dev\/sr2 -blank fast -pathspecs on/' \
-e 's/\\ -add \\ \/sounds=\/home\/me\/sounds \\ \/pictures \\ -- \\ -rm_r \\/ -add \/sounds=\/home\/me\/sounds \/pictures -- -rm_r /' \
-e 's/\/sounds\/indecent \\ \&rsquo;\/pictures\/\*private\*\&rsquo; \\/\/sounds\/indecent \&rsquo;\/pictures\/*private*\&rsquo; /' \
-e 's/\/pictures\/confidential \\ -- \\ -add \\/\/pictures\/confidential -- -add/' \
-e 's/xorriso -dev \/dev\/sr2 \\ -rm_r \/sounds -- \\ -mv \\/xorriso -dev \/dev\/sr2 -rm_r \/sounds -- -mv /' \
-e 's/\/pictures\/confidential \\ \/pictures\/restricted \\ -- \\ -chmod/\/pictures\/confidential \/pictures\/restricted -- -chmod/' \
-e 's/go-rwx \/pictures\/restricted -- \\ -pathsspecs on \\ -add \\/go-rwx \/pictures\/restricted -- -pathsspecs on -add /' \
-e 's/\/sounds=\/home\/me\/prepared_for_dvd\/sounds_dummy /\/sounds=\/home\/me\/prepared_for_dvd\/sounds_dummy/' \
-e 's/\/movies=\/home\/me\/prepared_for_dvd\/movies \\ -- \\ -commit/\/movies=\/home\/me\/prepared_for_dvd\/movies -- -commit/' \
-e 's/xorriso -indev \/dev\/sr2 \\ -rm_r \/sounds -- \\/xorriso -indev \/dev\/sr2 -rm_r \/sounds -- /' \
-e 's/-outdev \/dev\/sr0 -blank fast \\ -commit -eject all/-outdev \/dev\/sr0 -blank fast -commit -eject all/' \
-e 's/See section FILES/See section <A HREF="#FILES">FILES<\/A>/' \
-e 's/See section EXAMPLES/See section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
-e 's/<\/body>/<BR><HR><FONT SIZE=-1><CENTER>(HTML generated from '"$manpage"'.1 on '"$(date)"' by '$(basename "$0")' )<\/CENTER><\/FONT><\/body>/' \
<"$2" >"$htmlpage"
set +x
chmod u+rw,go+r,go-w "$htmlpage"
echo "Emerged file:"
ls -lL "$htmlpage"
else
export BROWSER='cp "%s" '"$raw_html"
man -H "$manpage"
"$0" -work_as_filter "$raw_html"
rm "$raw_html"
rm "$man_dir"/man1
fi

View File

@ -1,79 +0,0 @@
#!/bin/sh
#
# man_xorrisofs_to_html.sh - ts A80118 , B10309
#
# Generates a HTML version of man page xorrisofs.1
#
# To be executed in the libisoburn toplevel directory (eg. ./libisoburn-0.1.0)
#
# set -x
man_dir=$(pwd)"/xorriso"
export MANPATH="$man_dir"
manpage="xorrisofs"
raw_html=$(pwd)/"xorriso/raw_man_1_xorrisofs.html"
htmlpage=$(pwd)/"xorriso/man_1_xorrisofs.html"
if test -r "$man_dir"/"$manpage".1
then
dummy=dummy
else
echo "Cannot find readable man page source $1" >&2
exit 1
fi
if test -e "$man_dir"/man1
then
dummy=dummy
else
ln -s . "$man_dir"/man1
fi
if test "$1" = "-work_as_filter"
then
# set -x
sed \
-e 's/<meta name="generator" content="groff -Thtml, see www.gnu.org">/<meta name="generator" content="groff -Thtml, via man -H, via xorriso\/convert_man_to_html.sh">/' \
-e 's/<meta name="Content-Style" content="text\/css">/<meta name="Content-Style" content="text\/css"><META NAME="description" CONTENT="man page of xorriso"><META NAME="keywords" CONTENT="man xorrisofs, manual, xorrisofs, ISO 9660, mkisofs, compatible"><META NAME="robots" CONTENT="follow">/' \
-e 's/<title>XORRISOFS<\/title>/<title>man 1 xorrisofs<\/title>/' \
-e 's/<h1 align=center>XORRISOFS<\/h1>/<h1 align=center>man 1 xorrisofs<\/h1>/' \
-e 's/<body>/<body BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000>/' \
-e 's/<b>ISO 9660, Rock Ridge, Joliet:<\/b>/\&nbsp;<BR><b>ISO 9660, Rock Ridge, Joliet:<\/b>/' \
-e 's/<b>Inserting files into the ISO image:<\/b>/\&nbsp;<BR><b>Inserting files into the ISO image:<\/b>/' \
-e 's/<b>Relation to program xorriso:<\/b>/\&nbsp;<BR><b>Relation to program xorriso:<\/b>/' \
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
-e 's/<b>Image loading:<\/b>/\&nbsp;<BR><b>Image loading:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Settings for file insertion:<\/b>/\&nbsp;<BR><b>Settings for file insertion:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Settings for image production:<\/b>/\&nbsp;<BR><b>Settings for image production:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Settings for standards compliance:<\/b>/\&nbsp;<BR><b>Settings for standards compliance:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Settings for standards extensions:<\/b>/\&nbsp;<BR><b>Settings for standards extensions:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Settings for file hiding:<\/b>/\&nbsp;<BR><b>Settings for file hiding:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>ISO image ID strings:<\/b>/\&nbsp;<BR><b>ISO image ID strings:<\/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>System Area, MBR, other boot blocks:<\/b>/\&nbsp;<BR><b>System Area, MBR, other boot blocks:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Character sets:<\/b>/\&nbsp;<BR><b>Character sets:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Jigdo Template Extraction:<\/b>/\&nbsp;<BR><b>Jigdo Template Extraction:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Miscellaneous options:<\/b>/\&nbsp;<BR><b>Miscellaneous options:<\/b><BR>\&nbsp;<BR>/' \
\
-e 's/<\/body>/<BR><HR><FONT SIZE=-1><CENTER>(HTML generated from '"$manpage"'.1 on '"$(date)"' by '$(basename "$0")' )<\/CENTER><\/FONT><\/body>/' \
<"$2" >"$htmlpage"
set +x
chmod u+rw,go+r,go-w "$htmlpage"
echo "Emerged file:"
ls -lL "$htmlpage"
else
export BROWSER='cp "%s" '"$raw_html"
man -H "$manpage"
"$0" -work_as_filter "$raw_html"
rm "$raw_html"
rm "$man_dir"/man1
fi

View File

@ -94,8 +94,6 @@ int Xorriso_option_acl(struct XorrisO *xorriso, char *mode, int flag)
/* Option -add */
/* @param flag bit0=do not report the added item
bit1=do not reset pacifier, no final pacifier message
bit2= prepend ISO working directory in any case
bit3= unescape \\
*/
int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag)
@ -129,26 +127,19 @@ int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
else
rpt= wpt= source;
for(; *rpt!=0; rpt++) {
if(*rpt=='\\') {
if(*rpt=='\\')
if(*(rpt+1)=='=')
continue;
if((flag & 8) && *(rpt + 1) == '\\')
rpt++;
}
*(wpt++)= *rpt;
}
*wpt= 0;
}
if(split==0)
if(split==0) {
strcpy(target, source);
if(flag & 4) {
} else if(target[0]!='/') {
ret= Sfile_prepend_path(xorriso->wdi, target, 0);
if(ret<=0) {
sprintf(xorriso->info_text, "Effective path gets much too long (%d)",
(int) (strlen(xorriso->wdi)+strlen(target)+1));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
if(ret<=0)
goto problem_handler;
}
}
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, target, eff_path, 2);
@ -936,23 +927,6 @@ treatment_patch:;
}
xorriso->partition_secs_per_head= u;
} else if(strncmp(treatpt, "partition_cyl_align=", 20)==0) {
if(strcmp(treatpt + 20, "auto") == 0)
xorriso->system_area_options= (xorriso->system_area_options & ~0x300);
else if(strcmp(treatpt + 20, "on") == 0)
xorriso->system_area_options=
(xorriso->system_area_options & ~0x300) | 0x100;
else if(strcmp(treatpt + 20, "off") == 0)
xorriso->system_area_options=
(xorriso->system_area_options & ~0x300) | 0x200;
else {
sprintf(xorriso->info_text,
"-boot_image %s partition_cyl_align: unknown mode : %s",
formpt, treatpt + 20);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);
}
} else if(strncmp(treatpt, "platform_id=", 12)==0) {
if(strncmp(treatpt + 12, "0x", 2) == 0)
sscanf(treatpt + 14, "%x", &u);
@ -1698,17 +1672,6 @@ ex:;
}
/* Option -clone */
int Xorriso_option_clone(struct XorrisO *xorriso, char *origin, char *dest,
int flag)
{
int ret;
ret= Xorriso_clone_tree(xorriso, NULL, origin, dest, 0);
return(ret);
}
/* Option -close "on"|"off" */
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag)
{
@ -1913,102 +1876,6 @@ int Xorriso_option_copyright_file(struct XorrisO *xorriso, char *name, int flag)
}
/* Option -cp_clone */
int Xorriso_option_cp_clone(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag)
{
int i, end_idx_dummy, ret, is_dir= 0, was_failure= 0, fret, pass;
char eff_origin[SfileadrL], eff_dest[SfileadrL], dest_dir[SfileadrL];
char leafname[SfileadrL];
int optc= 0;
char **optv= NULL;
struct stat stbuf;
ret= Xorriso_cpmv_args(xorriso, "-cp_clone", argc, argv, idx,
&optc, &optv, eff_dest, 1);
if(ret<=0)
goto ex;
if(ret == 1 && optc > 1) {
nondir_exists:;
sprintf(xorriso->info_text,
"-cp_clone: Copy address already exists and is not a directory: ");
Text_shellsafe(eff_dest, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
{ret= 0; goto ex;}
}
strcpy(dest_dir, eff_dest);
if(optc == 1) {
ret= Xorriso_iso_lstat(xorriso, eff_dest, &stbuf, 0);
if(ret >= 0) {
if(S_ISDIR(stbuf.st_mode))/* target directory exists */
is_dir= 1;
else
goto nondir_exists;
}
} else {
is_dir= 1;
ret= Xorriso_mkdir(xorriso, dest_dir, 1 | 2);
if(ret < 0)
{ret= -(ret != -1); goto ex;}
}
/* Pass 0 checks whether the way is clear, pass 1 does the cloning */
for(pass= 0; pass < 2; pass++) {
for(i= 0; i<optc; i++) {
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi,
optv[i], eff_origin, !!pass);
if(ret<=0 || xorriso->request_to_abort)
goto problem_handler;
if(is_dir) {
ret= Sfile_leafname(eff_origin, leafname, 0);
if(ret<=0)
goto problem_handler;
strcpy(eff_dest, dest_dir);
ret= Sfile_add_to_path(eff_dest, leafname, 0);
if(ret<=0) {
sprintf(xorriso->info_text, "Effective path gets much too long (%d)",
(int) (strlen(eff_dest)+strlen(leafname)+1));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
goto problem_handler;
}
}
ret= Xorriso_iso_lstat(xorriso, eff_dest, &stbuf, 0);
if(pass == 0) {
/* It is ok if both are directories */;
if(ret >= 0 && S_ISDIR(stbuf.st_mode)) {
ret= Xorriso_iso_lstat(xorriso, eff_origin, &stbuf, 0);
if (ret >= 0 && S_ISDIR(stbuf.st_mode))
ret= -1;
}
if(ret >= 0) {
sprintf(xorriso->info_text, "Cloning: May not overwrite: ");
Text_shellsafe(eff_dest, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
goto problem_handler;
}
} else {
ret= Xorriso_clone_tree(xorriso, NULL, eff_origin, eff_dest, 1);
if(ret <= 0)
goto problem_handler;
}
continue; /* regular bottom of loop */
problem_handler:;
was_failure= 1;
fret= Xorriso_eval_problem_status(xorriso, ret, 1|2);
if(fret>=0)
continue;
goto ex;
}
}
ret= !was_failure;
ex:;
Xorriso_opt_args(xorriso, "-cp_clone",
argc, argv, *idx, &end_idx_dummy, &optc, &optv, 256);
return(ret);
}
/* Option -cpr alias -cpri */
int Xorriso_option_cpri(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag)

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -300,25 +300,6 @@ int Xorriso_option_dvd_obs(struct XorrisO *xorriso, char *obs, int flag)
}
/* Option -early_stdio_test */
int Xorriso_option_early_stdio_test(struct XorrisO *xorriso, char *mode,
int flag)
{
if(strcmp(mode, "on") == 0)
xorriso->early_stdio_test= 2 | 4;
else if(strcmp(mode, "off") == 0)
xorriso->early_stdio_test= 0;
else if(strcmp(mode, "appendable_wo") == 0)
xorriso->early_stdio_test= 2 | 4 | 8;
else {
sprintf(xorriso->info_text, "-early_stdio_test: unknown mode '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);
}
return(1);
}
/* Option -eject */
/* @param flag bit0=do not report toc of eventually remaining drives
*/
@ -418,8 +399,6 @@ int Xorriso_option_errfile_log(struct XorrisO *xorriso,
sprintf(xorriso->info_text, "-errfile_log: Unknown mode %s",
Text_shellsafe(mode, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
if(fp != NULL)
fclose(fp);
return(0);
}
@ -896,22 +875,15 @@ not_enough_exec_arguments:;
job= new_job;
} else if(strcmp(cpt, "compare")==0 || strcmp(cpt, "update")==0 ||
strcmp(cpt, "widen_hardlinks")==0 ||
strcmp(cpt, "update_merge")==0) {
strcmp(cpt, "widen_hardlinks")==0) {
if(i+1>=end_idx)
goto not_enough_exec_arguments;
i++;
action= 14;
if(strcmp(cpt, "update")==0)
action= 17;
else if(strcmp(cpt, "widen_hardlinks")==0)
if(strcmp(cpt, "widen_hardlinks")==0)
action= 32;
else if(strcmp(cpt, "update_merge") == 0) {
action= 41;
/* Enter update_merge mode for node adding */
xorriso->update_flags|= 1;
}
ret= Xorriso_make_abs_adr(xorriso, xorriso->wdx, argv[i],
other_path_start, 1|2|4|8);
if(ret<=0)
@ -1037,12 +1009,6 @@ not_enough_exec_arguments:;
Findjob_set_action_type(job, 39, type, 0);
} else if(strcmp(cpt, "estimate_size")==0) {
Findjob_set_action_target(job, 40, NULL, 0);
} else if(strcmp(cpt, "rm_merge")==0) {
Findjob_set_action_target(job, 42, NULL, 0);
xorriso->update_flags&= ~1; /* End update_merge mode for node adding */
} else if(strcmp(cpt, "clear_merge")==0) {
Findjob_set_action_target(job, 43, NULL, 0);
xorriso->update_flags&= ~1; /* End update_merge mode for node adding */
} else {
sprintf(xorriso->info_text, "-find -exec: unknown action %s",
Text_shellsafe(argv[i], sfe, 0));
@ -1433,8 +1399,6 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Enable production of scdbackup tag with -md5 on",
" -ban_stdio_write",
" Allow for writing only the usage of optical drives.",
" -early_stdio_test \"on\"|\"appendable_wo\"|\"off\"",
" Classify stdio drives by effective access permissions.",
" -blank \"fast\"|\"all\"|\"deformat\"|\"deformat_quickest\"",
" Blank media resp. invalidate ISO image on media.",
" -format \"as_needed\"|\"full\"|\"fast\"|\"by_index_#\"|\"by_size_#\"",
@ -1635,11 +1599,6 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Create empty directories if they do not exist yet.",
" -rmdir iso_rr_path [***]",
" Delete empty directories.",
" -clone iso_rr_path_original iso_rr_path_copy",
" Create an ISO copy of an ISO file or ISO directory tree.",
" -cp_clone iso_rr_path_original [***] iso_rr_path_dest",
" Create ISO to ISO copies according to the rules of cp -r.",
"",
" -- Default list delimiter marking the end of action argument",
" list. It may be changed by option -list_delimiter.",
"",
@ -1711,7 +1670,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Give up any unejected drive afterwards.",
" -close \"on\"|\"off\"",
" If \"on\" then mark the written media as not appendable.",
" -padding number[\"k\"|\"m\"]|\"included\"|\"appended\"",
" -padding number[\"k\"|\"m\"]",
" Append extra bytes to image stream. (Default is 300k)",
" -dummy \"on\"|\"off\"",
" If \"on\" simulate burning. Refuse if media cannot simulate.",
@ -1927,10 +1886,6 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" prevents reading and interpretation of startup files.",
" -print text",
" Print a text to result channel.",
" -print_info text",
" Print a text to info channel.",
" -print_mark text",
" Print a text to mark channel.",
" -prompt text",
" Wait for Enter key resp. for a line of input at stdin.",
" -errfile_log mode path|channel",

View File

@ -641,10 +641,6 @@ int Xorriso_option_md5(struct XorrisO *xorriso, char *mode, int flag)
xorriso->do_md5|= 8;
else if(l == 19 && strncmp(cpt, "stability_check_off", l) == 0)
xorriso->do_md5&= ~8;
else if(l == 13 && strncmp(cpt, "load_check_on", l) == 0)
xorriso->do_md5&= ~32;
else if(l == 14 && strncmp(cpt, "load_check_off", l) == 0)
xorriso->do_md5|= 32;
else {
sprintf(xorriso->info_text, "-md5: unknown mode ");
Text_shellsafe(cpt, xorriso->info_text, 1);

View File

@ -54,19 +54,7 @@ int Xorriso_option_pacifier(struct XorrisO *xorriso, char *style, int flag)
int Xorriso_option_padding(struct XorrisO *xorriso, char *size, int flag)
{
double num;
if(strcmp(size, "included") == 0) {
xorriso->do_padding_by_libisofs= 1;
return(1);
} else if(strcmp(size, "excluded") == 0 || strcmp(size, "appended") == 0) {
xorriso->do_padding_by_libisofs= 0;
return(1);
} else if(size[0] < '0' || size[0] > '9') {
sprintf(xorriso->info_text, "-padding: unrecognized non-numerical mode ");
Text_shellsafe(size, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);
}
num= Scanf_io_size(size, 0);
if(num < 0 || num > 1024.0 * 1024.0 * 1024.0) {
sprintf(xorriso->info_text, "-padding: wrong size %.f (allowed: %.f - %.f)",
@ -246,38 +234,11 @@ int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag)
}
/* Options -print , -print_info , -print_mark */
/* @param flag bit0-1= channel: 0=result, 1=info, 2=mark */
/* Option -print */
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag)
{
int maxl, l, mode;
l= strlen(text);
mode= flag & 3;
if(mode == 1)
maxl= sizeof(xorriso->info_text);
else if(mode == 2)
maxl= sizeof(xorriso->mark_text);
else
maxl= sizeof(xorriso->result_line);
if(l >= maxl) {
sprintf(xorriso->info_text, "Output text too long for -print%s(%d > %d)",
mode == 1 ? "_info" : mode == 2 ? "_mark" : "", l, maxl);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
return(0);
}
if(mode == 1) {
sprintf(xorriso->info_text,"%s\n", text);
Xorriso_info(xorriso,0);
} else if(mode == 2) {
strcpy(xorriso->info_text, xorriso->mark_text);
strcpy(xorriso->mark_text, text);
Xorriso_mark(xorriso,0);
strcpy(xorriso->mark_text, xorriso->info_text);
} else {
sprintf(xorriso->result_line,"%s\n",text);
Xorriso_result(xorriso,1);
}
sprintf(xorriso->result_line,"%s\n",text);
Xorriso_result(xorriso,1);
return(1);
}
@ -1400,9 +1361,6 @@ int Xorriso_option_uid(struct XorrisO *xorriso, char *uid, int flag)
bit2= do not issue pacifier messages at all
bit3= recursive: -update_r
bit4= do not establish and dispose xorriso->di_array
bit5= do not delete files which are not found under
disk_path, but rather mark visited files and mark
files which were found.
*/
int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
char *iso_path, int flag)
@ -1489,10 +1447,7 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
if(ret >= 0) {
argv[0]= eff_dest;
argv[1]= "-exec";
if(flag & 32)
argv[2]= "update_merge";
else
argv[2]= "update";
argv[2]= "update";
argv[3]= eff_origin;
zero= 0;
ret= Xorriso_option_find(xorriso, 4, argv, &zero,
@ -1513,18 +1468,7 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
argv[3]= eff_dest;
zero= 0;
ret= Xorriso_option_find(xorriso, 4, argv, &zero, 1|2); /* -findx */
if(ret>0 && (!xorriso->do_follow_mount) && !(flag & 32)) {
/* >>> ??? what about mount points with (flag & 32) ?
empty_iso_dir shall delete those which already existed
and are freshly excluded. (E.g. by mounting at a non-empty
directory, or by new follow rules.)
This deletion does not match the idea of merging.
For determining the foreign files in a directory which is
target of a mount point, one would have to enter that mount
point directory. Somewhat contrary to do-not-follow.
*/
if(ret>0 && !xorriso->do_follow_mount) {
argv[0]= eff_origin;
argv[1]= "-type";
argv[2]= "m";
@ -1551,17 +1495,13 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
ret= -1;
}
} else {
if(flag & 32)
xorriso->update_flags|= 1; /* Enter update_merge mode for node adding */
/* compare ctime too, no filename reporting, eventually silent */
follow_links= (xorriso->do_follow_links || xorriso->do_follow_param) <<28;
ret= Xorriso_compare_2_files(xorriso, eff_origin, eff_dest, "", &result,
2 | follow_links | ((flag&4)<<27) | (3<<30));
if(ret == 0 || (ret > 0 && (flag & 32))) {
if(ret > 0)
result= 0;
uret= Xorriso_update_interpreter(xorriso, NULL, NULL, result, eff_origin,
eff_dest, (!!(flag & 32)) << 1);
if(ret==0) {
uret= Xorriso_update_interpreter(xorriso, NULL, result, eff_origin,
eff_dest, 0);
if(uret<=0)
ret= -1;
if(uret==3)
@ -1569,7 +1509,7 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
}
}
xorriso->pacifier_interval= mem_pci;
if(mem_lut!=xorriso->last_update_time && !(flag & (2 | 4)))
if(mem_lut!=xorriso->last_update_time && !(flag&2))
Xorriso_pacifier_callback(xorriso, "content bytes read",
xorriso->pacifier_count, 0, "", 1);
report_outcome:;

View File

@ -181,9 +181,9 @@ no_memory:;
ret= 1;
ex:;
if(patterns!=NULL)
free((char *) patterns);
if(ret<=0) {
if(patterns!=NULL)
free((char *) patterns);
Sfile_destroy_argv(&filec, &filev, 0);
} else {
*optc= filec;
@ -314,9 +314,8 @@ int Xorriso_cpmv_args(struct XorrisO *xorriso, char *cmd,
if(ret==2 || ((flag&1) && *optc > 1 && ret==0)) {
is_dir= 1;
} else if(*optc > 1) {
if(flag & 2)
for(i= 0; i<*optc; i++)
Xorriso_msgs_submit(xorriso, 0, (*optv)[i], 0, "ERRFILE", 0);
for(i= 0; i<*optc; i++)
Xorriso_msgs_submit(xorriso, 0, (*optv)[i], 0, "ERRFILE", 0);
sprintf(xorriso->info_text,
"%s: more than one origin given, destination is a non-directory: %s",
cmd, Text_shellsafe(destv[0], sfe, 0));
@ -461,14 +460,14 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"calm_drive","cd","cdi","cdx","charset","close",
"commit_eject","compliance","copyright_file",
"dev","dialog","disk_dev_ino","disk_pattern","displacement",
"dummy","dvd_obs","early_stdio_test", "eject",
"dummy","dvd_obs","eject",
"iso_rr_pattern","follow","format","fs","gid","grow_blindly","hardlinks",
"history","indev","in_charset","joliet",
"list_delimiter","list_profiles","local_charset",
"mark","md5","mount_opts","not_leaf","not_list","not_mgt",
"options_from_file","osirrox","outdev","out_charset","overwrite",
"pacifier","padding","path_list","pathspecs","pkt_output",
"preparer_id","print","print_info","print_mark","prompt",
"preparer_id","print","prompt",
"prog","prog_help","publisher","quoted_not_list","quoted_path_list",
"reassure","report_about","rom_toc_scan","scsi_log",
"session_log","speed","split_size","status","status_history_max",
@ -478,7 +477,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
""
};
static char arg2_commands[][40]= {
"assert_volid","boot_image","clone","compare","compare_r","drive_class",
"assert_volid","boot_image","compare","compare_r","drive_class",
"errfile_log","error_behavior","extract","extract_single",
"jigdo","load","logfile",
"map","map_single","page","return_with",
@ -498,7 +497,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"check_md5","check_md5_r","check_media","check_media_defaults",
"chgrp","chgrpi","chgrp_r","chgrp_ri","chmod","chmodi",
"chmod_r","chmod_ri","chown","chowni","chown_r","chown_ri",
"compare_l","cp_clone","cp_rax","cp_rx","cpr","cpri", "cpax","cpx",
"compare_l","cpr","cpri","cp_rax","cp_rx","cpax","cpx",
"du","dui","dus","dusi","dux","dusx","external_filter","extract_l",
"file_size_limit","find","findi","finds","findx",
"getfacl","getfacli","getfacl_r","getfacl_ri",
@ -749,10 +748,6 @@ next_command:;
(*idx)+= 1;
ret= Xorriso_option_chowni(xorriso, arg1, argc, argv, idx, 0);
} else if(strcmp(cmd,"clone")==0) {
(*idx)+= 2;
ret= Xorriso_option_clone(xorriso, arg1, arg2, 1);
} else if(strcmp(cmd,"close")==0) {
(*idx)++;
ret= Xorriso_option_close(xorriso, arg1, 0);
@ -786,16 +781,13 @@ next_command:;
(*idx)++;
Xorriso_option_copyright_file(xorriso, arg1, 0);
} else if(strcmp(cmd,"cp_clone") == 0) {
ret= Xorriso_option_cp_clone(xorriso, argc, argv, idx, 0);
} else if(strcmp(cmd,"cpr")==0 || strcmp(cmd,"cpri")==0) {
ret= Xorriso_option_cpri(xorriso, argc, argv, idx, 0);
} else if(strcmp(cmd,"cp_rx")==0 || strcmp(cmd,"cp_rax")==0) {
ret= Xorriso_option_cpx(xorriso, argc, argv, idx,
1|((strcmp(cmd,"cp_rax")==0)<<1));
} else if(strcmp(cmd,"cpr")==0 || strcmp(cmd,"cpri")==0) {
ret= Xorriso_option_cpri(xorriso, argc, argv, idx, 0);
} else if(strcmp(cmd,"cpx")==0 || strcmp(cmd,"cpax")==0) {
ret= Xorriso_option_cpx(xorriso, argc, argv, idx,
(strcmp(cmd,"cpax")==0)<<1);
@ -853,10 +845,6 @@ next_command:;
} else if(strcmp(cmd,"dux")==0 || strcmp(cmd,"dusx")==0) {
ret= Xorriso_option_lsx(xorriso, argc, argv, idx, (cmd[2]!='s')|4);
} else if(strcmp(cmd,"early_stdio_test")==0) {
(*idx)++;
ret= Xorriso_option_early_stdio_test(xorriso, arg1, 0);
} else if(strcmp(cmd,"eject")==0) {
(*idx)++;
ret= Xorriso_option_eject(xorriso, arg1, 0);
@ -1157,14 +1145,6 @@ next_command:;
(*idx)++;
ret= Xorriso_option_print(xorriso, arg1, 0);
} else if(strcmp(cmd,"print_info")==0) {
(*idx)++;
ret= Xorriso_option_print(xorriso, arg1, 1);
} else if(strcmp(cmd,"print_mark")==0) {
(*idx)++;
ret= Xorriso_option_print(xorriso, arg1, 2);
} else if(strcmp(cmd,"print_size")==0) {
Xorriso_option_print_size(xorriso, 0);
@ -1332,6 +1312,7 @@ next_command:;
ret= Xorriso_option_temp_mem_limit(xorriso, arg1, 0);
} else if(strcmp(cmd,"test")==0) { /* This option does not exist. */
/* install temporary test code here */;
} else if(strcmp(cmd,"toc")==0) {
@ -1588,9 +1569,7 @@ int Xorriso_prescan_args(struct XorrisO *xorriso, int argc, char **argv,
ret= Xorriso_option_no_rc(xorriso, 0);
if(ret<=0)
goto ex;
} else if(xorriso->argument_emulation >= 1 &&
xorriso->argument_emulation <= 2) {
{ret= 1; goto ex;}
} else if((strcmp(cmd,"dev")==0 || strcmp(cmd,"outdev")==0 ||
strcmp(cmd,"indev")==0) &&
(strcmp(arg1,"stdio:/dev/fd/1")==0 || strcmp(arg1,"-")==0) &&

View File

@ -148,24 +148,9 @@ int Sfile_add_to_path(char path[SfileadrL], char *addon, int flag)
int Sfile_prepend_path(char *prefix, char path[SfileadrL], int flag)
{
int l, i, slashes, prefix_len, path_len;
int l, i;
l= strlen(prefix);
if(l == 0)
return(1);
/* Do not copy slashes between both parts */
for(prefix_len= l; prefix_len > 0; prefix_len--)
if(prefix[prefix_len - 1] != '/')
break;
if(prefix_len == 0)
prefix_len= strlen(prefix) - 1;
path_len= strlen(path);
for(slashes= 0; slashes < path_len; slashes++)
if(path[slashes] != '/')
break;
l= (strlen(path) - slashes) + prefix_len + 1;
l= strlen(path)+strlen(prefix)+1;
if(l>=SfileadrL) {
#ifdef Not_yeT
@ -179,16 +164,10 @@ int Sfile_prepend_path(char *prefix, char path[SfileadrL], int flag)
return(-1);
}
l-= strlen(path);
if(l < 0) {
for(i= slashes; i <= path_len + 1; i++)
path[i+l]= path[i];
} else if(l > 0) {
for(i= path_len + 1; i >= slashes; i--)
path[i+l]= path[i];
}
if(prefix_len > 0)
memcpy(path, prefix, prefix_len);
path[l - 1 + slashes]= '/';
for(i= strlen(path)+1; i>=0; i--)
path[i+l]= path[i];
strcpy(path,prefix);
path[l-1]= '/';
return(1);
}

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -548,7 +548,6 @@ ex:;
/*
@param flag bit0= iso_rr_path is freshly added and up to date
bit1= do not mark as changed content (implied by bit0 too)
bit2= -follow: this is not a command parameter
@return -1= severe error
0= not applicable for hard links
@ -583,7 +582,7 @@ int Xorriso_hardlink_update(struct XorrisO *xorriso, int *compare_result,
it must be updated now, even if it has currently no siblings
which it leaves or which it joins.
*/
if(!(flag & (1 | 2)))
if(!(flag & 1))
do_overwrite= 1;
Xorriso__get_di(node, &old_dev, &old_ino, 0);

View File

@ -106,7 +106,7 @@ get_single:;
l= strlen(cpt);
if(l >= linesize - base_length - 1) {
strncpy(linept, cpt, linesize - 1);
line[linesize - 1]= 0;
line[sizeof(line)-1]= 0;
sprintf(xorriso->info_text,"Input line too long !");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
goto new_empty;
@ -1242,13 +1242,6 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
Xorriso_status_result(xorriso,filter,fp,flag&2);
}
is_default= ((xorriso->early_stdio_test & 14) == 0);
sprintf(line, "-early_stdio_test %s\n",
xorriso->early_stdio_test & 6 ? xorriso->early_stdio_test & 8 ?
"appendable_wo" : "on" : "off");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->allow_restore==0 && xorriso->do_concat_split==1 &&
xorriso->do_auto_chmod==0 && xorriso->drives_exclusive == 1);
mode_pt= "off";
@ -1302,13 +1295,6 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
ret= (xorriso->system_area_options & 0x300) >> 8;
is_default= (ret == 0);
sprintf(line,"-boot_image any partition_cyl_align=%s\n",
ret == 0 ? "auto" : ret == 1 ? "on" : "off");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
if((xorriso->system_area_disk_path[0] || !part_table_implicit) &&
(xorriso->partition_offset == 0 || (xorriso->system_area_options & 2))) {
is_default= ((xorriso->system_area_options & 3) == 0);
@ -1630,11 +1616,6 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
sprintf(line,"-padding %dk\n", xorriso->padding/1024);
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->do_padding_by_libisofs == 0);
sprintf(line,"-padding %s\n",
xorriso->do_padding_by_libisofs ? "included" : "appended");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (strcmp(xorriso->report_about_text,"UPDATE")==0);
sprintf(line,"-report_about %s\n",xorriso->report_about_text);
@ -1810,16 +1791,14 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
is_default= ((xorriso->do_md5 & 31) == 0);
sprintf(line, "-md5 ");
if(xorriso->do_md5 & 1) {
if((xorriso->do_md5 & 8) == 8) {
strcat(line, "all");
if((xorriso->do_md5 & (8)) == (8)) {
strcat(line, "all\n");
} else {
strcat(line, "on");
if(xorriso->do_md5 & 8)
strcat(line, ":stability_check_on");
strcat(line, "\n");
}
if(xorriso->do_md5 & 32)
strcat(line, ":load_check_off");
strcat(line, "\n");
} else
strcat(line, "off\n");
if(!(is_default && no_defaults))

View File

@ -2,7 +2,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -25,14 +25,7 @@
#include <errno.h>
#include <fcntl.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#else
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#endif
#ifdef Xorriso_standalonE
@ -98,7 +91,7 @@ int Xorriso_make_write_options(
/* @param flag bit0= do not write but only prepare and return size in sectors
bit1= do not use isoburn wrappers, do not assume libisofs
bit1= do not use isoburn wrappers
*/
int Xorriso_sanitize_image_size(struct XorrisO *xorriso,
struct burn_drive *drive, struct burn_disc *disc,
@ -148,6 +141,7 @@ no_track:;
sessions survive and confuse -rom_toc_scan.
*/
xorriso->alignment= 32;
s= isoburn_disc_get_status(drive);
if(s == BURN_DISC_BLANK) {
/* Count blocks before nwa as part of the image */;
@ -158,19 +152,6 @@ no_track:;
}
}
}
if(!(flag & 2)) {
#ifdef Xorriso_with_libjtE
/* JTE : no multi-session, no_emul_toc, padding in libisofs */
if(xorriso->libjte_handle != NULL)
padding= 0;
#endif /* ! Xorriso_with_libjtE */
if(xorriso->do_padding_by_libisofs)
padding= 0;
}
if(xorriso->alignment > 0) {
if(img_sectors > 0) {
ret= isoburn_disc_track_lba_nwa(drive, burn_options, 0, &lba, &nwa);
@ -179,9 +160,15 @@ no_track:;
lba= (nwa + img_sectors + padding) % xorriso->alignment;
if(lba > 0)
padding+= xorriso->alignment - lba;
}
} else if(padding < xorriso->alignment)
padding= xorriso->alignment;
}
#ifdef Xorriso_with_libjtE
if(xorriso->libjte_handle != NULL)
padding= 0; /* JTE : no multi-session, no_emul_toc, padding in libisofs */
#endif /* ! Xorriso_with_libjtE */
burn_track_define_data(tracks[0], 0, padding * 2048, 0, BURN_MODE1);
Xorriso_process_msg_queues(xorriso,0);
@ -554,7 +541,7 @@ ex:;
int Xorriso_write_session(struct XorrisO *xorriso, int flag)
{
int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext, is_bootable= 0;
int freshly_bootable= 0, hide_attr, pad_by_libisofs= 0;
int freshly_bootable= 0, hide_attr;
char xorriso_id[256], *img_id, sfe[5*SfileadrL], *out_cs, *part_image;
struct isoburn_imgen_opts *sopts= NULL;
struct burn_drive_info *dinfo, *source_dinfo;
@ -571,7 +558,6 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
int profile_number;
char profile_name[80];
IsoBoot *bootcat_node;
uint32_t padding;
ret= Xorriso_finish_hl_update(xorriso, 0);
if(ret <= 0)
@ -755,7 +741,6 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
((!!(xorriso->do_md5 & 2)) * isoburn_igopt_session_md5) |
((!!(xorriso->do_md5 & 4)) * isoburn_igopt_file_md5) |
((!!(xorriso->do_md5 & 8)) * isoburn_igopt_file_stability) |
((!!xorriso->do_old_empty) * isoburn_igopt_old_empty) |
((flag & 1) * isoburn_igopt_will_cancel);
if(xorriso->no_emul_toc & 1)
ext|= isoburn_igopt_no_emul_toc;
@ -767,10 +752,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
{ret= 0; goto ex;}
isoburn_igopt_set_sort_files(sopts, 1);
isoburn_igopt_set_over_mode(sopts, 0, 0, (mode_t) 0, (mode_t) 0);
isoburn_igopt_set_over_ugid(sopts, 2 * !!xorriso->do_global_uid,
2 * !!xorriso->do_global_gid,
(uid_t) xorriso->global_uid,
(gid_t) xorriso->global_gid);
isoburn_igopt_set_over_ugid(sopts, 0, 0, (uid_t) 0, (gid_t) 0);
isoburn_igopt_set_out_charset(sopts, out_cs);
isoburn_igopt_set_fifo_size(sopts, xorriso->fs * 2048);
Ftimetxt(time(NULL), xorriso->scdbackup_tag_time, 8);
@ -819,22 +801,12 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
if(ret <= 0)
goto ex;
isoburn_igopt_attach_jte(sopts, xorriso->libjte_handle);
pad_by_libisofs= 1;
/* Padding to be done by libisofs, not by libburn */
isoburn_igopt_set_tail_blocks(sopts, (uint32_t) (xorriso->padding / 2048));
}
#endif /* Xorriso_with_libjtE */
if(xorriso->do_padding_by_libisofs || pad_by_libisofs) {
/* Padding to be done by libisofs, not by libburn.
*/
padding= xorriso->padding / 2048;
if(xorriso->padding > padding * 2048)
padding++;
/*
fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
(int) padding);
*/
isoburn_igopt_set_tail_blocks(sopts, padding);
}
/* Make final abort check before starting expensive activities */
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
@ -928,11 +900,6 @@ fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
/* Important: do not return until burn_is_aborting() was checked */
Xorriso_set_signal_handling(xorriso, 1);
/* De-activate eventual target file truncation in dummy mode */
ret= isoburn_set_truncate(drive, (!xorriso->do_dummy) | 2 | 4);
if(ret < 0)
goto cancel_iso;
xorriso->run_state= 1; /* Indicate that burning has started */
isoburn_disc_write(burn_options, disc);
burn_write_opts_free(burn_options);
@ -982,7 +949,7 @@ fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
isoburn_sync_after_write(source_drive, drive, 0);
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text, "Writing to %s completed successfully.\n\n",
sprintf(xorriso->info_text, "Writing to %s completed sucessfully.\n\n",
Text_shellsafe(xorriso->outdev,sfe,0));
Xorriso_info(xorriso, 0);
ret= 1;
@ -1240,7 +1207,6 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
break;
}
}
iso_image_unref(image);
return(1);
}
@ -1765,29 +1731,20 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
if(isoburn_needs_emulation(drive)) {
if(flag&1) {
ret= isoburn_disc_track_lba_nwa(drive, burn_options, 0, &dummy, &nwa);
Xorriso_process_msg_queues(xorriso,0);
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text,
"Cannot obtain next writeable address of emulated multi-session media\n");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
if(nwa == 32 && disc_state != BURN_DISC_APPENDABLE)
if(nwa==32)
nwa= 0; /* No automatic toc emulation. Formatter might not be aware. */
burn_write_opts_set_start_byte(burn_options,((off_t) nwa) * (off_t) 2048);
} else {
nwa= 0;
if (disc_state == BURN_DISC_APPENDABLE) {
ret= isoburn_disc_track_lba_nwa(drive, burn_options, 0, &dummy, &nwa);
Xorriso_process_msg_queues(xorriso,0);
if(ret<=0) {
sprintf(xorriso->info_text,
"Cannot obtain next writeable address of emulated appendable media\n");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
}
burn_write_opts_set_start_byte(burn_options, (off_t) 0);
}
burn_write_opts_set_start_byte(burn_options,((off_t) nwa) * (off_t) 2048);
}
if(write_start_address>=0) {
@ -1837,7 +1794,7 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
if(ret <= 0)
goto ex;
}
sprintf(xorriso->info_text, "Writing to %s completed successfully.\n\n",
sprintf(xorriso->info_text, "Writing to %s completed sucessfully.\n\n",
Text_shellsafe(xorriso->outdev,sfe,0));
Xorriso_info(xorriso, 0);
ret= 1;
@ -1964,12 +1921,6 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
} else if(l == 21 && strncmp(cpt, "joliet_long_paths_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_joliet_longer_paths;
} else if((l == 17 && strncmp(cpt, "joliet_long_names", l) == 0) ||
(l == 20 && strncmp(cpt, "joliet_long_names_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_joliet_long_names;
} else if(l == 21 && strncmp(cpt, "joliet_long_names_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_joliet_long_names;
} else if((l == 10 && strncmp(cpt, "always_gmt", l) == 0) ||
(l == 13 && strncmp(cpt, "always_gmt_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_always_gmt;
@ -2047,12 +1998,6 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
xorriso->relax_compliance= was;
return(0);
} else if((l == 9 && strncmp(cpt, "old_empty", l) == 0) ||
(l == 12 && strncmp(cpt, "old_empty_on", l) == 0)) {
xorriso->do_old_empty= 1;
} else if(l == 13 && strncmp(cpt, "old_empty_off", l) == 0) {
xorriso->do_old_empty= 0;
} else {
if(l<SfileadrL)
sprintf(xorriso->info_text, "-compliance: unknown rule '%s'",
@ -2081,7 +2026,8 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
return(1);
}
strcpy(mode, "clear");
sprintf(mode + strlen(mode), ":iso_9660_level=%d", xorriso->iso_level);
if(xorriso->iso_level != 3)
sprintf(mode + strlen(mode), ":iso_9660_level=%d", xorriso->iso_level);
if(r & isoburn_igopt_allow_dir_id_ext)
strcat(mode, ":allow_dir_id_ext");
if(r & isoburn_igopt_omit_version_numbers)
@ -2104,8 +2050,6 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
strcat(mode, ":full_ascii");
if(r & isoburn_igopt_joliet_longer_paths)
strcat(mode, ":joliet_long_paths");
if(r & isoburn_igopt_joliet_long_names)
strcat(mode, ":joliet_long_names");
if(r & isoburn_igopt_always_gmt)
strcat(mode, ":always_gmt");
if(r & isoburn_igopt_dir_rec_mtime)
@ -2126,8 +2070,6 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
xorriso->untranslated_name_len);
if(xorriso->do_iso1999)
sprintf(mode + strlen(mode), ":iso_9660_1999");
if(xorriso->do_old_empty)
sprintf(mode + strlen(mode), ":old_empty");
return(1 +
(r == Xorriso_relax_compliance_defaulT && !(xorriso->no_emul_toc & 1)
&& xorriso->untranslated_name_len == 0 && !xorriso->do_iso1999 &&
@ -2200,6 +2142,7 @@ int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
if(make_isohybrid_mbr) {
sprintf(xorriso->info_text, "Will write isohybrid MBR.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
xorriso->alignment= 512;
}
ret= el_torito_set_isolinux_options(bootimg,
patch_table | (make_isohybrid_mbr << 1),0);
@ -2256,11 +2199,8 @@ int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize,
}
if(iso_lba < 32)
return(2);
if(!(flag & 2)) {
/* head_buffer was not filled yet. Read it from output media. */
if(burn_drive_get_drive_role(drive) == 5) /* write-only */
return(2);
if(job != NULL && job->data_to_fd >= 0) {
if((flag & 8) && job->sector_map != NULL) {
ret= Sectorbitmap_bytes_are_set(job->sector_map,

View File

@ -9,7 +9,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 "Apr 03, 2011"
.TH XORRISO 1 "Jan 06, 2011"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -757,7 +757,6 @@ are both in effect. This restricts hard linking to other files restored by
the same single extract command. -hardlinks "normal_extract" re-enables
wide and expensive hardlink accumulation.
.br
.TP
\fB\-acl\fR "on"|"off"
Enable or disable processing of ACLs.
If enabled, then xorriso will obtain ACLs from disk file objects,
@ -771,7 +770,7 @@ Enable or disable processing of xattr attributes in user namespace.
If enabled, then xorriso will handle xattr similar to ACL.
See also options -getfattr, -setfattr and above paragraph about xattr.
.TP
\fB\-md5\fR "on"|"all"|"off"|"load_check_off"
\fB\-md5\fR "on"|"all"|"off"
Enable or disable processing of MD5 checksums for the overall session and for
each single data file. If enabled then images get loaded only if eventual
checksums tags of superblock and directory tree match properly. The MD5
@ -792,15 +791,6 @@ Mode "all" will additionally check during image generation whether the checksum
of a data file changed between the time when its reading began and the time
when it ended. This implies reading every file twice.
.br
Mode "load_check_off" together with "on" or "all" will load recorded MD5 sums
but not test the recorded checksum tags of superblock and directory tree.
This is necessary if growisofs was used as burn program, because it does
not overwrite the superblock checksum tag of the first session.
Therefore load_check_off is in effect when xorriso -as mkisofs option -M
is performed.
.br
The test can be re-enabled by mode "load_check_on".
.br
Checksums can be exploited via options -check_md5, -check_md5_r, via find
actions get_md5, check_md5, and via -check_media.
.TP
@ -873,19 +863,6 @@ Allow for writing only the usage of MMC optical drives. Disallow
to write the result into files of nearly arbitrary type.
Once set, this command cannot be revoked.
.TP
\fB\-early_stdio_test\fR "on"|"appendable_wo"|"off"
If enabled by "on" then regular files and block devices get tested for
effective access permissions. This implies to try opening those files for
writing, which otherwise will happen only later and only if actual
writing is desired.
.br
The test result is used for classifying the pseudo drives as overwriteable,
read-only, write-only, or uselessly empty. This may lead to earlier detection
of severe problems, and may avoid some less severe error events.
.br
Mode "appendable_wo" is like "on" with the additional property that
non-empty write-only files are regarded as appendable rather than blank.
.TP
.B Inserting files into ISO image:
.PP
The following commands expect file addresses of two kinds:
@ -1073,31 +1050,6 @@ Create empty directories if they do not exist yet.
Existence as directory generates a WARNING event, existence as
other file causes a FAILURE event.
.TP
\fB\-clone\fR iso_rr_path_original iso_rr_path_copy
Create a copy of the ISO file object iso_rr_path_original with the new
address iso_rr_path_copy. If the original is a directory then copy all
files and directories underneath. An eventual boot catalog file gets
not copied but is silently ignored.
.br
The copied ISO file objects have the same attributes. Copied data files
refer to the same content source as their originals.
The copies may then be manipulated independendly of their originals.
.br
This command will refuse execution if the address iso_rr_path_copy
already exists in the ISO tree.
.TP
\fB\-cp_clone\fR iso_rr_path_original [***] iso_rr_path_dest
Create copies of one or more ISO file objects as with command -clone.
Eventually merge directories with existing ones, but do not overwrite
existing ISO file objects.
.br
The rules for generating the copy addresses are the same as with
command -cpr (see above) resp. shell command cp -r. Other than with -cpr,
relative iso_rr_path_original will get prepended the -cd path and not
the -cdx path. Consider to -mkdir iso_rr_path_dest before -cp_clone
so the copy address does not depend on the number of iso_rr_path_original
arguments.
.TP
.B Settings for file insertion:
.TP
\fB\-file_size_limit\fR value [value [...]] --
@ -1673,16 +1625,6 @@ performs command -update with the found file address as
iso_rr_path. The corresponding file address is determined like with above
action "compare".
.br
\fBupdate_merge\fR
is like update but does not delete the found file if it is missing on disk.
It may be run several times and records with all visited files whether their
counterpart on disk has already been seen by one of the update_merge runs.
Finally, a -find run with action "rm_merge" may remove all files that
saw no counterpart on disk.
.br
Up to the next "rm_merge" or "clear_merge" all newly inserted files will
get marked as having a disk counterpart.
.br
\fBrm\fR
removes the found iso_rr_path from the image if it is not a directory
with files in it. I.e. this "rm" includes "rmdir".
@ -1691,14 +1633,6 @@ with files in it. I.e. this "rm" includes "rmdir".
removes the found iso_rr_path from the image, including whole
directory trees.
.br
\fBrm_merge\fR
removes the found iso_rr_path if it was visited by one or more previous actions
"update_merge" and saw no counterpart on disk in any of them. The marking from
the update actions is removed in any case.
.br
\fBclear_merge\fR
removes an eventual marking from action "update_merge".
.br
\fBreport_damage\fR
classifies files whether they hit a data block that is
marked as damaged. The result is printed together with the eventual address
@ -2098,9 +2032,6 @@ fail deliberately.
for the length of file names. 0 disables this feature, -1 chooses maximum
length limit, numbers larger than 0 give the desired length limit.
.br
"joliet_long_names" allows Joliet leaf names up to 103 characters rather
than 64.
.br
"joliet_long_paths" allows Joliet paths longer than 240 characters.
.br
"always_gmt" stores timestamps in GMT representation with timezone 0.
@ -2125,10 +2056,6 @@ but makes the image incapable of displaying its session history.
compliant to ISO 9660:1999. It can record long filenames for readers which
do not understand Rock Ridge.
.br
"old_empty" uses the old way of of giving block addresses in the range
of [0,31] to files with no own data content. The new way is to have
a dedicated block to which all such files will point.
.br
Default setting is
.br
"clear:only_iso_version:deep_paths:long_paths:no_j_force_dots:
@ -2339,7 +2266,7 @@ any more (if possible at all with the given type of target media).
This is the contrary of cdrecord, wodim, cdrskin option -multi,
and is one aspect of growisofs option -dvd-compat.
.TP
\fB\-padding\fR number["k"|"m"]|"included"|"appended"
\fB\-padding\fR number["k"|"m"]
Append the given number of extra bytes to the image stream.
This is a traditional remedy for a traditional bug in block
device read drivers. Needed only for CD recordings in TAO mode.
@ -2347,13 +2274,6 @@ Since one can hardly predict on what media an image might end up,
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 .
.br
Normally padding is not written as part of the ISO image but appended
after the image end. This is -padding mode "appended".
.br
Emulation command -as "mkisofs" and command -jigdo cause padding to be
written as part of the image.
The same effect is achieved by -padding mode "included".
.TP
.B Bootable ISO images:
.PP
@ -2546,29 +2466,11 @@ absolute start as well as from the partition start.
The offset value of an ISO image gets preserved when a new session is added.
So the value defined here is only in effect if a new ISO image gets written.
.br
\fBpartition_hd_cyl=\fRnumber gives the number of heads per cylinder for
the partition table. 0 chooses a default value. Maximum is 255.
.br
\fBpartition_sec_hd=\fRnumber gives the number of sectors per head for
the partition table. 0 chooses a default value. Maximum is 63.
partition offset. 0 chooses a default value.
.br
The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size.
It should be divisible by 2048 in order to allow exact alignment.
If it is too small to describe the image size by at most 1024 cylinders,
then appropriate values of partition_hd_cyl are chosen with
partition_sec_hd 32 or 63. If the image is larger than 8,422,686,720 bytes,
then the cylinder size constraints cannot be fulfilled.
.br
\fBpartition_cyl_align=\fRmode controls image size alignment to an integer
number of cylinders. It is prescribed by isohybrid specs and it seems to
please program fdisk. Cylinder size must be divisible by 2048.
Images larger than 8,323,596,288 bytes cannot be aligned.
.br
Mode "auto" is default. Alignment by padding happens only with
"isolinux" "partition_table=on".
.br
Mode "on" causes alignment by padding with "partition_table=on" for any type.
Mode "off" disables alignment for any type.
\fBpartition_hd_cyl=\fRnumber gives the number of heads per cylinder for
partition offset. 0 chooses a default value.
.br
\fBmips_path=\fRiso_rr_path declares a data file in the image to be a
MIPS Big Endian boot file and causes production of a MIPS Big Endian Volume
@ -2883,9 +2785,9 @@ if the threshold of option -abort_on allows this.
.br
"failure" aborts image tree reading on first event of at least SORRY.
It issues an own FAILURE event.
This is the default.
.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
@ -3043,8 +2945,8 @@ Print the foreseeable consumption of 2048 byte blocks
by next -commit. This can last a while as a -commit gets
prepared and only in last moment is revoked by this option.
The result depends on several settings and also on the kind of output device.
If no -jidgo options are given and not command -as "mkisofs" was used,
then -padding (300 kB by default) is not counted as part of the image size.
If no -jidgo options are given, then -padding (300 kB by default) is not
counted as part of the image size.
.TP
\fB\-tell_media_space\fR
Print available space on output media and the free space after
@ -3188,7 +3090,7 @@ not exist in the ISO image. The report format is the same as with command
.br
\fBadd_missing\fR iso_rr_path_start
adds the counterpart if it does not yet
exist in the ISO image and marks it for "rm_merge" as non-removable.
exist in the ISO image.
.br
E.g.: -findx /home/thomas -exec add_missing /thomas_on_cd --
.br
@ -3589,9 +3491,10 @@ file paths and pathspecs.
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.
.br
The supported options are documented in detail in xorrisofs.info
and in man xorrisofs. The description here is focused on the effect
of mkisofs emulation in the context of a xorriso run.
-graft-points is equivalent to -pathspecs on. Note that pathspecs without "="
are interpreted differently than with xorriso option -add. Directories get
merged with the root directory of the ISO image, other filetypes get mapped
into that root directory.
.br
Other than with the "cdrecord" personality there is no automatic -commit at
the end of a "mkisofs" option list. Verbosity settings -v (= "UPDATE") and
@ -3599,11 +3502,6 @@ the end of a "mkisofs" option list. Verbosity settings -v (= "UPDATE") and
persists until things happen like -commit, -rollback, -dev, or end of xorriso.
-pacifier gets set to "mkisofs" if files are added to the image.
.br
-graft-points is equivalent to -pathspecs on. Note that pathspecs without "="
are interpreted differently than with xorriso option -add. Directories get
merged with the root directory of the ISO image, other filetypes get mapped
into that root directory.
.br
If pathspecs are given and if no output file was chosen before or during the
"mkisofs" option list, then standard output (-outdev "-") will get into effect.
If -o points to a regular file, then it will be truncated to 0 bytes
@ -3618,22 +3516,11 @@ standard output.
-print-size inhibits automatic image production at program end. This ban is
lifted only if the pending image changes get discarded.
.br
Eventual padding is counted as part of the ISO image if not option --emul-toc
is given.
.br
If no -iso-level is given, then level 1 is chosen when the first file or
directory is added to the image. At the same occasion directory names get
allowed to violate the standard by -compliance option allow_dir_id_ext.
This may be avoided by option -disallow_dir_id_ext.
.br
Option -root is supported. Option -old-root is implemented by xorriso
commands -mkdir, -cp_clone, -find update_merge, and -find rm_merge.
-root and -old-root set command -disk_dev_ino to "ino_only" and -md5 to "on",
by default.
-disk_dev_ino can be set to "off" by --old-root-no-ino
resp. to "on" by --old-root-devno .
-md5 can be set to "off" by --old-root-no-md5 .
.br
Not original mkisofs options are --quoted_path_list ,
--hardlinks , --acl ,
--xattr , --md5 , --stdio_sync .
@ -3679,14 +3566,12 @@ Option -append_partition is supported.
-untranslated_name_len number is
-compliance untranslated_name_len=number.
.br
--old-empty is -compliance old_empty.
.br
The options of genisoimage Jigdo Template Extraction are recognized and
performed via xorriso option -jigdo. See the "Alias:" names there for the
meaning of the genisoimage options.
.br
Personalities "\fBxorrisofs\fR", "\fBgenisoimage\fR",
Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR",
and "\fBgenisofs\fR" are aliases for "mkisofs".
.br
If xorriso is started with one of the leafnames "xorrisofs", "genisofs",
@ -3696,9 +3581,6 @@ I.e. all arguments will be interpreted mkisofs style until "--"
is encountered.
From then on, options are interpreted as xorriso options.
.br
--no_rc as first argument of such a program start
prevents interpretation of startup files. See section FILES below.
.br
Personality "\fBcdrecord\fR" accepts the options listed with:
.br
@ -3741,9 +3623,6 @@ If xorriso is started with one of the leafnames "xorrecord", "cdrskin",
to the command line arguments. I.e. all arguments will be interpreted cdrecord
style until "--" is encountered and an eventual commit happens.
From then on, options are interpreted as xorriso options.
.br
--no_rc as first argument of such a program start
prevents interpretation of xorriso startup files. See section FILES below.
.TP
\fB\-read_mkisofsrc\fR
Try one by one to open for reading:
@ -3796,12 +3675,7 @@ prevents reading and interpretation of eventual startup
files. See section FILES below.
.TP
\fB\-options_from_file\fR fileaddress
Read quoted input from fileaddress and execute it like dialog lines.
Empty lines and lines which begin by # are ignored. Normally one line
should hold one xorriso command and all its arguments. Nevertheless lines
may be concatenated by a trailing backslash.
.br
See also section "Command processing", paragraph "Quoted input".
Read quoted input from fileaddress and executes it like dialog lines.
.TP
\fB\-help\fR
.br
@ -3884,14 +3758,7 @@ restoring of hard links.
Default is 16m = 16 MiB, minimum 64k = 64 kiB, maximum 1024m = 1 GiB.
.TP
\fB\-print\fR text
Print a text line to the result channel which is by default stdout.
.TP
\fB\-print_info\fR text
Print a text line to the info channel which is by default stderr.
.TP
\fB\-print_mark\fR text
Print a text line to the mark channel which is by default directed to both,
result and info channel. An empty text will cause no output at all.
Print a text to result channel.
.TP
\fB\-prompt\fR text
Show text at beginning of output line and
@ -4256,8 +4123,6 @@ $ xorriso -as mkisofs prepared_for_iso/tree1 | \\
.br
Follow-up sessions are written like this:
.br
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
.br
$ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
.br
$ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \\
@ -4265,13 +4130,8 @@ $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \\
xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject -
.br
Always eject the drive tray between sessions. The old sessions
get read via /dev/sr0. Its device driver might not be aware
of the changed content before it loads the media again.
In this case the previous session would not be loaded and the
new session would contain only the newly added files.
.br
For the same reason do not let xorriso -as cdrecord load the media,
but rather do this manually or by a program that reads from /dev/sr0.
get read via stdio:/dev/sr0 and thus are prone to device driver
peculiarities.
.br
This example works for multi-session media only.
Add cdrskin option --grow_overwriteable_iso
@ -4378,7 +4238,7 @@ $ xorriso \\
.br
-not_leaf '*.o' -not_leaf '*.swp' \\
.br
-update_r /home/thomas/projects /projects \\
-update_r /home/thomas/open_source_projects /open_source_projects \\
.br
-update_r /home/thomas/personal_mail /personal_mail \\
.br
@ -4421,27 +4281,12 @@ older sessions in the table-of-content. E.g. as superuser:
.br
# osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
.br
.sp 1
Above example produces a result similar to -root / -old-root / with mkisofs.
For getting the session trees accumulated in the new sessions, let all -update
commands use a common parent directory and clone it after updating is done:
.br
-update_r /home/thomas/projects /current/projects \\
.br
-update_r /home/thomas/personal_mail /current/personal_mail \\
.br
-clone /current /"$(date '+%Y_%m_%d_%H%M%S')" \\
.br
The cloned tree will have a name like /2011_02_12_155700.
.br
.sp 1
Sessions on multi-session media are separated by several MB of unused blocks.
So with small sessions the payload capacity can become substantially lower
than the overall media capacity. If the remaining space on media does not
suffice for the next gap, the drive is supposed to close the media
automatically.
.br
.sp 1
\fBBetter do not use your youngest backup for -update_r\fR.
Have at least two media which you use alternatingly. So only older backups
get endangered by the new write operation, while the newest backup is
@ -4522,7 +4367,7 @@ to read and execute lines from the following files:
$HOME/.xorrisorc
.br
The files are read in the sequence given above, but none of them is required
to exist. The line format is described with command -options_from_file.
to exist.
.br
If mkisofs emulation was enabled by program name "xorrisofs", "mkisofs",
"genisoimage", or "genisofs", then afterwards -read_mkisofsrc is performed,
@ -4536,9 +4381,6 @@ The default setting of -check_media abort_file= is:
.br
.SH SEE ALSO
.TP
For the mkisofs emulation of xorriso
.BR xorrisofs(1)
.TP
For mounting xorriso generated ISO 9660 images (-t iso9660)
.BR mount(8)
.TP
@ -4568,7 +4410,7 @@ Thomas Schmitt <scdbackup@gmx.net>
.br
for libburnia-project.org
.SH COPYRIGHT
Copyright (c) 2007 - 2011 Thomas Schmitt
Copyright (c) 2007 - 2010 Thomas Schmitt
.br
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of xorriso. If you make use

View File

@ -61,7 +61,7 @@ struct XorrisO;
*/
#define Xorriso_header_version_majoR 1
#define Xorriso_header_version_minoR 0
#define Xorriso_header_version_micrO 8
#define Xorriso_header_version_micrO 0
/** Eventually something like ".pl01" to indicate a bug fix. Normally empty.
@ -586,7 +586,6 @@ int Xorriso_lst_destroy_all(struct Xorriso_lsT **lstring, int flag);
int Xorriso_option_abort_on(struct XorrisO *xorriso, char *severity, int flag);
/* Option -abstract_file */
/* @since 0.6.0 */
int Xorriso_option_abstract_file(struct XorrisO *xorriso, char *name,
int flag);
@ -613,7 +612,6 @@ int Xorriso_option_alter_date(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag);
/* Option -append_partition */
/* @since 0.6.4 */
int Xorriso_option_append_partition(struct XorrisO *xorriso, char *partno_text,
char *type_text, char *image_path, int flag);
@ -643,7 +641,6 @@ int Xorriso_option_backslash_codes(struct XorrisO *xorriso, char *mode,
int Xorriso_option_ban_stdio_write(struct XorrisO *xorriso, int flag);
/* Option -biblio_file */
/* @since 0.6.0 */
int Xorriso_option_biblio_file(struct XorrisO *xorriso, char *name, int flag);
/* Option -blank and -format */
@ -706,11 +703,6 @@ int Xorriso_option_chmodi(struct XorrisO *xorriso, char *mode,
int Xorriso_option_chowni(struct XorrisO *xorriso, char *uid,
int argc, char **argv, int *idx, int flag);
/* Option -clone */
/* @since 1.0.2 */
int Xorriso_option_clone(struct XorrisO *xorriso, char *origin, char *dest,
int flag);
/* Option -close "on"|"off" */
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag);
@ -743,15 +735,9 @@ int Xorriso_option_compare(struct XorrisO *xorriso, char *disk_path,
int Xorriso_option_compliance(struct XorrisO *xorriso, char *mode, int flag);
/* Option -copyright_file */
/* @since 0.6.0 */
int Xorriso_option_copyright_file(struct XorrisO *xorriso, char *name,
int flag);
/* Option -cp_clone */
/* @since 1.0.2 */
int Xorriso_option_cp_clone(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -cpr alias -cpri */
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
@ -788,7 +774,6 @@ int Xorriso_option_disk_dev_ino(struct XorrisO *xorriso, char *mode, int flag);
int Xorriso_option_disk_pattern(struct XorrisO *xorriso, char *mode, int flag);
/* Option -displacement [-]offset */
/* @since 0.6.6 */
int Xorriso_option_displacement(struct XorrisO *xorriso, char *value,
int flag);
@ -802,11 +787,6 @@ int Xorriso_option_dummy(struct XorrisO *xorriso, char *mode, int flag);
/* Option -dvd_obs "default"|"32k"|"64k" */
int Xorriso_option_dvd_obs(struct XorrisO *xorriso, char *obs, int flag);
/* Option -early_stdio_test */
/* @since 1.0.6 */
int Xorriso_option_early_stdio_test(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -eject */
/* @param flag bit0=do not report toc of eventually remaining drives
*/
@ -880,7 +860,6 @@ int Xorriso_option_hardlinks(struct XorrisO *xorriso, char *mode, int flag);
int Xorriso_option_help(struct XorrisO *xorriso, int flag);
/* Option -hide */
/* @since 0.6.0 */
int Xorriso_option_hide(struct XorrisO *xorriso, char *hide_state,
int argc, char **argv, int *idx, int flag);
@ -892,7 +871,6 @@ int Xorriso_option_iso_rr_pattern(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -jigdo aspect argument */
/* @since 0.6.4 */
int Xorriso_option_jigdo(struct XorrisO *xorriso, char *aspect, char *arg,
int flag);
@ -1045,15 +1023,9 @@ int Xorriso_option_pathspecs(struct XorrisO *xorriso, char *mode, int flag);
int Xorriso_option_pkt_output(struct XorrisO *xorriso, char *mode, int flag);
/* Option -preparer_id */
/* @since 0.6.2 */
int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag);
/* Options -print, -print_info , -print_mark */
/* @param flag bit0-1= output channel:
0= result channel
1= info channel @since 1.0.6
2= mark channel @since 1.0.6
*/
/* Option -print */
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag);
/* Option -print_size
@ -1083,7 +1055,6 @@ int Xorriso_option_pwdi(struct XorrisO *xorriso, int flag);
int Xorriso_option_pwdx(struct XorrisO *xorriso, int flag);
/* Option -read_mkisofsrc */
/* @since 0.6.0 */
int Xorriso_option_read_mkisofsrc(struct XorrisO *xorriso, int flag);
/* Option -reassure "on"|"tree"|"off" */

View File

@ -728,7 +728,7 @@ activate them only after image loading.
If enabled, then xorriso will handle xattr similar to ACL. See
also options -getfattr, -setfattr and above paragraph about xattr.
-md5 "on"|"all"|"off"|"load_check_off"
-md5 "on"|"all"|"off"
Enable or disable processing of MD5 checksums for the overall
session and for each single data file. If enabled then images get
loaded only if eventual checksums tags of superblock and directory
@ -747,13 +747,6 @@ activate them only after image loading.
the checksum of a data file changed between the time when its
reading began and the time when it ended. This implies reading
every file twice.
Mode "load_check_off" together with "on" or "all" will load
recorded MD5 sums but not test the recorded checksum tags of
superblock and directory tree. This is necessary if growisofs was
used as burn program, because it does not overwrite the superblock
checksum tag of the first session. Therefore load_check_off is in
effect when xorriso -as mkisofs option -M is performed.
The test can be re-enabled by mode "load_check_on".
Checksums can be exploited via options -check_md5, -check_md5_r,
via find actions get_md5, check_md5, and via -check_media.
@ -824,19 +817,6 @@ activate them only after image loading.
to write the result into files of nearly arbitrary type. Once
set, this command cannot be revoked.
-early_stdio_test "on"|"appendable_wo"|"off"
If enabled by "on" then regular files and block devices get tested
for effective access permissions. This implies to try opening
those files for writing, which otherwise will happen only later
and only if actual writing is desired.
The test result is used for classifying the pseudo drives as
overwriteable, read-only, write-only, or uselessly empty. This may
lead to earlier detection of severe problems, and may avoid some
less severe error events.
Mode "appendable_wo" is like "on" with the additional property that
non-empty write-only files are regarded as appendable rather than
blank.

File: xorriso.info, Node: Insert, Next: SetInsert, Prev: Loading, Up: Options
@ -1007,28 +987,6 @@ filesystem.
directory generates a WARNING event, existence as other file
causes a FAILURE event.
-clone iso_rr_path_original iso_rr_path_copy
Create a copy of the ISO file object iso_rr_path_original with the
new address iso_rr_path_copy. If the original is a directory then
copy all files and directories underneath. An eventual boot
catalog file gets not copied but is silently ignored.
The copied ISO file objects have the same attributes. Copied data
files refer to the same content source as their originals. The
copies may then be manipulated independendly of their originals.
This command will refuse execution if the address iso_rr_path_copy
already exists in the ISO tree.
-cp_clone iso_rr_path_original [***] iso_rr_path_dest
Create copies of one or more ISO file objects as with command
-clone. Eventually merge directories with existing ones, but do
not overwrite existing ISO file objects.
The rules for generating the copy addresses are the same as with
command -cpr (see above) resp. shell command cp -r. Other than
with -cpr, relative iso_rr_path_original will get prepended the
-cd path and not the -cdx path. Consider to -mkdir
iso_rr_path_dest before -cp_clone so the copy address does not
depend on the number of iso_rr_path_original arguments.

File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Options
@ -1520,28 +1478,12 @@ File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Options
performs command -update with the found file address as
iso_rr_path. The corresponding file address is determined
like with above action "compare".
update_merge
is like update but does not delete the found file if it is
missing on disk. It may be run several times and records
with all visited files whether their counterpart on disk has
already been seen by one of the update_merge runs. Finally,
a -find run with action "rm_merge" may remove all files that
saw no counterpart on disk.
Up to the next "rm_merge" or "clear_merge" all newly inserted
files will get marked as having a disk counterpart.
rm
removes the found iso_rr_path from the image if it is not a
directory with files in it. I.e. this "rm" includes "rmdir".
rm_r
removes the found iso_rr_path from the image, including whole
directory trees.
rm_merge
removes the found iso_rr_path if it was visited by one or
more previous actions "update_merge" and saw no counterpart
on disk in any of them. The marking from the update actions
is removed in any case.
clear_merge
removes an eventual marking from action "update_merge".
report_damage
classifies files whether they hit a data block that is marked
as damaged. The result is printed together with the eventual
@ -1884,8 +1826,6 @@ will be written according to the setting of option -acl.
smaller limit for the length of file names. 0 disables this
feature, -1 chooses maximum length limit, numbers larger than 0
give the desired length limit.
"joliet_long_names" allows Joliet leaf names up to 103 characters
rather than 64.
"joliet_long_paths" allows Joliet paths longer than 240 characters.
"always_gmt" stores timestamps in GMT representation with timezone
0.
@ -1906,9 +1846,6 @@ will be written according to the setting of option -acl.
"iso_9660_1999" causes the production of an additional directory
tree compliant to ISO 9660:1999. It can record long filenames for
readers which do not understand Rock Ridge.
"old_empty" uses the old way of of giving block addresses in the
range of [0,31] to files with no own data content. The new way is
to have a dedicated block to which all such files will point.
Default setting is
"clear:only_iso_version:deep_paths:long_paths:no_j_force_dots:
always_gmt:old_rr".
@ -2094,7 +2031,7 @@ will be written according to the setting of option -acl.
This is the contrary of cdrecord, wodim, cdrskin option -multi,
and is one aspect of growisofs option -dvd-compat.
-padding number["k"|"m"]|"included"|"appended"
-padding number["k"|"m"]
Append the given number of extra bytes to the image stream. This
is a traditional remedy for a traditional bug in block device read
drivers. Needed only for CD recordings in TAO mode. Since one can
@ -2102,11 +2039,6 @@ will be written according to the setting of option -acl.
the traditional 300k of padding by default to all images.
For images which will never get to a CD it is safe to use -padding
0 .
Normally padding is not written as part of the ISO image but
appended after the image end. This is -padding mode "appended".
Emulation command -as "mkisofs" and command -jigdo cause padding
to be written as part of the image. The same effect is achieved
by -padding mode "included".

File: xorriso.info, Node: Bootable, Next: Jigdo, Prev: SetWrite, Up: Options
@ -2266,26 +2198,10 @@ filesystem and announced by an MBR partition table entry.
The offset value of an ISO image gets preserved when a new session
is added. So the value defined here is only in effect if a new
ISO image gets written.
*partition_hd_cyl=*number gives the number of heads per cylinder
for the partition table. 0 chooses a default value. Maximum is 255.
*partition_sec_hd=*number gives the number of sectors per head for
the partition table. 0 chooses a default value. Maximum is 63.
The product partition_sec_hd * partition_hd_cyl * 512 is the
cylinder size. It should be divisible by 2048 in order to allow
exact alignment. If it is too small to describe the image size by
at most 1024 cylinders, then appropriate values of
partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If the
image is larger than 8,422,686,720 bytes, then the cylinder size
constraints cannot be fulfilled.
*partition_cyl_align=*mode controls image size alignment to an
integer number of cylinders. It is prescribed by isohybrid specs
and it seems to please program fdisk. Cylinder size must be
divisible by 2048. Images larger than 8,323,596,288 bytes cannot
be aligned.
Mode "auto" is default. Alignment by padding happens only with
"isolinux" "partition_table=on".
Mode "on" causes alignment by padding with "partition_table=on"
for any type. Mode "off" disables alignment for any type.
partition offset. 0 chooses a default value.
*partition_hd_cyl=*number gives the number of heads per cylinder
for partition offset. 0 chooses a default value.
*mips_path=*iso_rr_path declares a data file in the image to be a
MIPS Big Endian boot file and causes production of a MIPS Big
Endian Volume Header. This is mutually exclusive with production
@ -2546,8 +2462,9 @@ failed unexpectedly.
"best_effort" goes on with reading after events with severity
below FAILURE if the threshold of option -abort_on allows this.
"failure" aborts image tree reading on first event of at least
SORRY. It issues an own FAILURE event. This is the default.
SORRY. It issues an own FAILURE event.
"fatal" acts like "failure" but issues the own event as FATAL.
This is the default.
With occasion "file_extraction" there are three behaviors:
"keep" maintains incompletely extracted files on disk. This is the
default.
@ -2685,9 +2602,8 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Opti
-commit. This can last a while as a -commit gets prepared and only
in last moment is revoked by this option. The result depends on
several settings and also on the kind of output device. If no
-jidgo options are given and not command -as "mkisofs" was used,
then -padding (300 kB by default) is not counted as part of the
image size.
-jidgo options are given, then -padding (300 kB by default) is not
counted as part of the image size.
-tell_media_space
Print available space on output media and the free space after
@ -2823,7 +2739,7 @@ File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Options
image. The report format is the same as with command -compare.
add_missing iso_rr_path_start
adds the counterpart if it does not yet exist in the ISO
image and marks it for "rm_merge" as non-removable.
image.
E.g.: -findx /home/thomas -exec add_missing /thomas_on_cd --
is_full_in_iso
reports if the counterpart in the ISO image contains files.
@ -3198,19 +3114,16 @@ programs trigger comparable actions.
-hide-joliet-list, file paths and pathspecs. 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.
The supported options are documented in detail in xorrisofs.info
and in man xorrisofs. The description here is focused on the effect
of mkisofs emulation in the context of a xorriso run.
-graft-points is equivalent to -pathspecs on. Note that pathspecs
without "=" are interpreted differently than with xorriso option
-add. Directories get merged with the root directory of the ISO
image, other filetypes get mapped into that root directory.
Other than with the "cdrecord" personality there is no automatic
-commit at the end of a "mkisofs" option list. Verbosity settings
-v (= "UPDATE") and -quiet (= "SORRY") persist. The output file,
eventually chosen with -o, persists until things happen like
-commit, -rollback, -dev, or end of xorriso. -pacifier gets set
to "mkisofs" if files are added to the image.
-graft-points is equivalent to -pathspecs on. Note that pathspecs
without "=" are interpreted differently than with xorriso option
-add. Directories get merged with the root directory of the ISO
image, other filetypes get mapped into that root directory.
If pathspecs are given and if no output file was chosen before or
during the "mkisofs" option list, then standard output (-outdev
"-") will get into effect. If -o points to a regular file, then
@ -3223,19 +3136,11 @@ programs trigger comparable actions.
drive to standard output.
-print-size inhibits automatic image production at program end.
This ban is lifted only if the pending image changes get discarded.
Eventual padding is counted as part of the ISO image if not option
-emul-toc is given.
If no -iso-level is given, then level 1 is chosen when the first
file or directory is added to the image. At the same occasion
directory names get allowed to violate the standard by -compliance
option allow_dir_id_ext. This may be avoided by option
-disallow_dir_id_ext.
Option -root is supported. Option -old-root is implemented by
xorriso commands -mkdir, -cp_clone, -find update_merge, and -find
rm_merge. -root and -old-root set command -disk_dev_ino to
"ino_only" and -md5 to "on", by default. -disk_dev_ino can be set
to "off" by --old-root-no-ino resp. to "on" by --old-root-devno .
-md5 can be set to "off" by --old-root-no-md5 .
Not original mkisofs options are --quoted_path_list , --hardlinks
, --acl , --xattr , --md5 , --stdio_sync . They work like the
xorriso options with the same name and hardcoded argument "on",
@ -3267,12 +3172,11 @@ programs trigger comparable actions.
Option -append_partition is supported.
-untranslated_name_len number is -compliance
untranslated_name_len=number.
--old-empty is -compliance old_empty.
The options of genisoimage Jigdo Template Extraction are
recognized and performed via xorriso option -jigdo. See the
"Alias:" names there for the meaning of the genisoimage options.
Personalities "*xorrisofs*", "*genisoimage*", and "*genisofs*" are
Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are
aliases for "mkisofs".
If xorriso is started with one of the leafnames "xorrisofs",
"genisofs", "mkisofs", or "genisoimage", then it performs
@ -3280,8 +3184,6 @@ programs trigger comparable actions.
arguments. I.e. all arguments will be interpreted mkisofs style
until "--" is encountered. From then on, options are interpreted
as xorriso options.
--no_rc as first argument of such a program start prevents
interpretation of startup files. See section FILES below.
Personality "*cdrecord*" accepts the options listed with:
-as cdrecord -help --
@ -3314,8 +3216,6 @@ programs trigger comparable actions.
will be interpreted cdrecord style until "--" is encountered and
an eventual commit happens. From then on, options are interpreted
as xorriso options.
--no_rc as first argument of such a program start prevents
interpretation of xorriso startup files. See section FILES below.
-read_mkisofsrc
Try one by one to open for reading: ./.mkisofsrc , $MKISOFSRC ,
@ -3362,12 +3262,8 @@ File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Op
FILES below.
-options_from_file fileaddress
Read quoted input from fileaddress and execute it like dialog
lines. Empty lines and lines which begin by # are ignored.
Normally one line should hold one xorriso command and all its
arguments. Nevertheless lines may be concatenated by a trailing
backslash.
See also section "Command processing", paragraph "Quoted input".
Read quoted input from fileaddress and executes it like dialog
lines.
-help
Print helptext.
@ -3431,15 +3327,7 @@ File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Op
GiB.
-print text
Print a text line to the result channel which is by default stdout.
-print_info text
Print a text line to the info channel which is by default stderr.
-print_mark text
Print a text line to the mark channel which is by default directed
to both, result and info channel. An empty text will cause no
output at all.
Print a text to result channel.
-prompt text
Show text at beginning of output line and wait for the user to hit
@ -3779,18 +3667,12 @@ xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject -
Follow-up sessions are written like this:
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
$ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
$ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \
xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject -
Always eject the drive tray between sessions. The old sessions get read
via /dev/sr0. Its device driver might not be aware of the changed
content before it loads the media again. In this case the previous
session would not be loaded and the new session would contain only the
newly added files.
For the same reason do not let xorriso -as cdrecord load the media, but
rather do this manually or by a program that reads from /dev/sr0.
via stdio:/dev/sr0 and thus are prone to device driver peculiarities.
This example works for multi-session media only. Add cdrskin option
--grow_overwriteable_iso to all -as cdrecord runs in order to enable
@ -3892,7 +3774,7 @@ $ xorriso \
-dev /dev/sr0 \
-volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \
-not_leaf '*.o' -not_leaf '*.swp' \
-update_r /home/thomas/projects /projects \
-update_r /home/thomas/open_source_projects /open_source_projects \
-update_r /home/thomas/personal_mail /personal_mail \
-commit -toc -check_md5 FAILURE -- -eject all
@ -3930,15 +3812,6 @@ commands for older sessions in the table-of-content. E.g. as superuser:
# osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
Above example produces a result similar to -root / -old-root / with
mkisofs. For getting the session trees accumulated in the new
sessions, let all -update commands use a common parent directory and
clone it after updating is done:
-update_r /home/thomas/projects /current/projects \
-update_r /home/thomas/personal_mail /current/personal_mail \
-clone /current /"$(date '+%Y_%m_%d_%H%M%S')" \
The cloned tree will have a name like /2011_02_12_155700.
Sessions on multi-session media are separated by several MB of unused
blocks. So with small sessions the payload capacity can become
substantially lower than the overall media capacity. If the remaining
@ -4027,8 +3900,7 @@ startup to read and execute lines from the following files:
$HOME/.xorrisorc
The files are read in the sequence given above, but none of them is
required to exist. The line format is described with command
-options_from_file.
required to exist.
If mkisofs emulation was enabled by program name "xorrisofs", "mkisofs",
"genisoimage", or "genisofs", then afterwards -read_mkisofsrc is
performed, which reads .mkisofsrc files. See there.
@ -4045,9 +3917,6 @@ File: xorriso.info, Node: Seealso, Next: Legal, Prev: Files, Up: Top
12 See also
***********
For the mkisofs emulation of xorriso
xorrisofs(1)
For mounting xorriso generated ISO 9660 images (-t iso9660)
mount(8)
@ -4081,7 +3950,7 @@ for libburnia-project.org
13.2 Copyright
==============
Copyright (c) 2007 - 2011 Thomas Schmitt
Copyright (c) 2007 - 2010 Thomas Schmitt
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of xorriso. If you make
use of the license to derive modified versions of xorriso then you are
@ -4106,26 +3975,26 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
[index]
* Menu:
* # starts a comment line: Scripting. (line 140)
* # starts a comment line: Scripting. (line 128)
* -abort_on controls abort on error: Exception. (line 27)
* -abstract_file sets abstract file name: SetWrite. (line 160)
* -abstract_file sets abstract file name: SetWrite. (line 155)
* -acl controls handling of ACLs: Loading. (line 142)
* -add inserts one or more paths: Insert. (line 42)
* -add_plainly inserts one or more paths: Insert. (line 61)
* -alter_date sets timestamps in ISO image: Manip. (line 146)
* -alter_date_r sets timestamps in ISO image: Manip. (line 166)
* -append_partition adds arbitrary file after image end: Bootable.
(line 202)
* -application_id sets application id: SetWrite. (line 119)
(line 186)
* -application_id sets application id: SetWrite. (line 114)
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
* -assert_volid rejects undesired images: Loading. (line 84)
* -auto_charset learns character set from image: Loading. (line 99)
* -backslash_codes enables backslash conversion: Scripting. (line 49)
* -ban_stdio_write demands real drive: Loading. (line 246)
* -biblio_file sets biblio file name: SetWrite. (line 167)
* -backslash_codes enables backslash conversion: Scripting. (line 45)
* -ban_stdio_write demands real drive: Loading. (line 239)
* -biblio_file sets biblio file name: SetWrite. (line 162)
* -blank erases media: Writing. (line 45)
* -boot_image controls bootability: Bootable. (line 26)
* -calm_drive reduces drive activity: Loading. (line 235)
* -calm_drive reduces drive activity: Loading. (line 228)
* -cd sets working directory in ISO: Navigate. (line 7)
* -cdx sets working directory on disk: Navigate. (line 16)
* -charset sets input/output character set: Charset. (line 43)
@ -4139,8 +4008,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chmod_r sets permissions in ISO image: Manip. (line 70)
* -chown sets ownership in ISO image: Manip. (line 42)
* -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 171)
* -close controls media closing: SetWrite. (line 262)
* -close controls media closing: SetWrite. (line 257)
* -close_filter_list bans filter registration: Filter. (line 52)
* -commit writes pending ISO image: Writing. (line 13)
* -commit_eject writes and ejects: Writing. (line 40)
@ -4148,8 +4016,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -compare_l reports ISO/disk differences: Navigate. (line 157)
* -compare_r reports ISO/disk differences: Navigate. (line 152)
* -compliance controls standard compliance: SetWrite. (line 14)
* -copyright_file sets copyright file name: SetWrite. (line 154)
* -cp_clone copies ISO directory tree: Insert. (line 182)
* -copyright_file sets copyright file name: SetWrite. (line 149)
* -cp_rx copies file trees to disk: Restore. (line 104)
* -cpax copies files to disk: Restore. (line 100)
* -cpr inserts like with cp -r: Insert. (line 152)
@ -4158,21 +4025,20 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -dev aquires one drive for input and output: AqDrive. (line 10)
* -devices gets list of drives: Inquiry. (line 7)
* -dialog enables dialog mode: DialogCtl. (line 7)
* -disk_dev_ino fast incremental backup: Loading. (line 189)
* -disk_dev_ino fast incremental backup: Loading. (line 182)
* -disk_pattern controls pattern expansion: Insert. (line 31)
* -displacement compensate altered image start address: Loading.
(line 35)
* -drive_class controls drive accessability: Loading. (line 54)
* -du show directory size in ISO image: Navigate. (line 88)
* -dummy controls write simulation: SetWrite. (line 251)
* -dummy controls write simulation: SetWrite. (line 246)
* -dus show directory size in ISO image: Navigate. (line 92)
* -dusx show directory size on disk: Navigate. (line 101)
* -dux show directory size on disk: Navigate. (line 96)
* -dvd_obs set write block size: SetWrite. (line 238)
* -early_stdio_test classifies stdio drives: Loading. (line 251)
* -dvd_obs set write block size: SetWrite. (line 233)
* -eject ejects drive tray: Writing. (line 36)
* -end writes pending session and ends program: Scripting. (line 134)
* -errfile_log logs problematic disk files: Scripting. (line 96)
* -end writes pending session and ends program: Scripting. (line 122)
* -errfile_log logs problematic disk files: Scripting. (line 84)
* -error_behavior controls error workarounds: Exception. (line 69)
* -external_filter registers data filter: Filter. (line 20)
* -external_filter unregisters data filter: Filter. (line 48)
@ -4184,25 +4050,26 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -find traverses and alters ISO tree: CmdFind. (line 7)
* -findx traverses disk tree: Navigate. (line 105)
* -follow softlinks and mount points: SetInsert. (line 76)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 184)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 177)
* -format formats media: Writing. (line 69)
* -fs sets size of fifo: SetWrite. (line 255)
* -fs sets size of fifo: SetWrite. (line 250)
* -getfacl shows ACL in ISO image: Navigate. (line 69)
* -getfacl_r shows ACL in ISO image: Navigate. (line 76)
* -getfattr shows xattr in ISO image: Navigate. (line 80)
* -getfattr_r shows xattr in ISO image: Navigate. (line 84)
* -gid sets global ownership: SetWrite. (line 195)
* -gid sets global ownership: SetWrite. (line 190)
* -grow_blindly overides next writeable address: AqDrive. (line 44)
* -hardlinks controls handling of hard links: Loading. (line 110)
* -help prints help text: Scripting. (line 20)
* -help prints help text: Scripting. (line 16)
* -hide excludes file names from directory trees: Manip. (line 170)
* -history brings text into readline history: Scripting. (line 26)
* -history brings text into readline history: Scripting. (line 22)
* -in_charset sets input character set: Loading. (line 92)
* -indev aquires a drive for input: AqDrive. (line 22)
* -iso_rr_pattern controls pattern expansion: Manip. (line 10)
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 33)
* -jigdo clears JTE or sets input/output character set: Jigdo.
(line 33)
* -joliet enables production of Joliet tree: SetWrite. (line 10)
* -list_delimiter replaces '--': Scripting. (line 42)
* -list_delimiter replaces '--': Scripting. (line 38)
* -list_formats lists available formats: Writing. (line 107)
* -list_profiles lists supported media: Writing. (line 119)
* -load addresses a particular session as input: Loading. (line 11)
@ -4233,32 +4100,30 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -not_paths sets absolute exclusion paths: SetInsert. (line 55)
* -options_from_file reads commands from file: Scripting. (line 12)
* -osirrox enables ISO-to-disk copying: Restore. (line 18)
* -out_charset sets output character set: SetWrite. (line 185)
* -out_charset sets output character set: SetWrite. (line 180)
* -outdev aquires a drive for output: AqDrive. (line 29)
* -overwrite enables overwriting in ISO: SetInsert. (line 127)
* -pacifier controls pacifier text form: Emulation. (line 158)
* -padding sets amount or mode of image padding: SetWrite. (line 268)
* -pacifier controls pacifier text form: Emulation. (line 142)
* -padding sets amount of image padding: SetWrite. (line 263)
* -page set terminal geometry: DialogCtl. (line 19)
* -paste_in copies file into disk file: Restore. (line 117)
* -path_list inserts paths from disk file: Insert. (line 75)
* -pathspecs sets meaning of = with -add: SetInsert. (line 118)
* -pkt_output consolidates text output: Frontend. (line 7)
* -preparer_id sets preparer id: SetWrite. (line 173)
* -print prints result text line: Scripting. (line 81)
* -print_info prints message text line: Scripting. (line 84)
* -print_mark prints synchronizing text line: Scripting. (line 87)
* -preparer_id sets preparer id: SetWrite. (line 168)
* -print prints text line: Scripting. (line 77)
* -print_size predicts image size: Inquiry. (line 69)
* -prog sets program name: Frontend. (line 30)
* -prog_help prints help text: Frontend. (line 33)
* -prompt prompts for enter key: Scripting. (line 92)
* -publisher sets publisher id: SetWrite. (line 113)
* -pvd_info shows image id strings: Inquiry. (line 82)
* -prompt prompts for enter key: Scripting. (line 80)
* -publisher sets publisher id: SetWrite. (line 108)
* -pvd_info shows image id strings: Inquiry. (line 81)
* -pwd tells working directory in ISO: Navigate. (line 20)
* -pwdx tells working directory on disk: Navigate. (line 23)
* -quoted_not_list sets exclusions: SetInsert. (line 72)
* -quoted_path_list inserts paths from disk file: Insert. (line 80)
* -read_mkisofsrc searches and reads .mkisofsrc file: Emulation.
(line 146)
(line 130)
* -reassure enables confirmation question: DialogCtl. (line 32)
* -report_about controls verbosity: Exception. (line 55)
* -return_with controls exit value: Exception. (line 39)
@ -4266,11 +4131,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -rm_r deletes trees from ISO image: Manip. (line 28)
* -rmdir deletes ISO directory: Manip. (line 32)
* -rollback discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 137)
* -rom_toc_scan searches for sessions: Loading. (line 210)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 168)
* -scsi_log reports SCSI commands: Scripting. (line 125)
* -session_log logs written sessions: Scripting. (line 116)
* -rollback_end ends program without writing: Scripting. (line 125)
* -rom_toc_scan searches for sessions: Loading. (line 203)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 152)
* -scsi_log reports SCSI commands: Scripting. (line 113)
* -session_log logs written sessions: Scripting. (line 104)
* -session_string composes session info line: Inquiry. (line 56)
* -set_filter applies filter to file: Filter. (line 59)
* -set_filter_r applies filter to file tree: Filter. (line 84)
@ -4282,27 +4147,27 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -setfattr_r sets xattr in ISO image: Manip. (line 123)
* -show_stream shows data source and filters: Navigate. (line 162)
* -show_stream_r shows data source and filters: Navigate. (line 177)
* -speed set write speed: SetWrite. (line 211)
* -speed set write speed: SetWrite. (line 206)
* -split_size enables large file splitting: SetInsert. (line 140)
* -status shows current settings: Scripting. (line 29)
* -status_history_max curbs -status history: Scripting. (line 38)
* -stdio_sync controls stdio buffer: SetWrite. (line 245)
* -stream_recording controls defect management: SetWrite. (line 226)
* -system_id sets system id: SetWrite. (line 128)
* -tell_media_space reports free space: Inquiry. (line 78)
* -temp_mem_limit curbs memory consumption: Scripting. (line 74)
* -status shows current settings: Scripting. (line 25)
* -status_history_max curbs -status history: Scripting. (line 34)
* -stdio_sync controls stdio buffer: SetWrite. (line 240)
* -stream_recording controls defect management: SetWrite. (line 221)
* -system_id sets system id: SetWrite. (line 123)
* -tell_media_space reports free space: Inquiry. (line 77)
* -temp_mem_limit curbs memory consumption: Scripting. (line 70)
* -toc shows list of sessions: Inquiry. (line 18)
* -uid sets global ownership: SetWrite. (line 191)
* -uid sets global ownership: SetWrite. (line 186)
* -update inserts path if different: Insert. (line 99)
* -update_l inserts paths if different: Insert. (line 121)
* -update_r inserts paths if different: Insert. (line 110)
* -use_readline enables readline for dialog: DialogCtl. (line 28)
* -version prints help text: Scripting. (line 23)
* -volid sets volume id: SetWrite. (line 89)
* -volset_id sets volume set id: SetWrite. (line 108)
* -volume_date sets volume timestamp: SetWrite. (line 135)
* -version prints help text: Scripting. (line 19)
* -volid sets volume id: SetWrite. (line 84)
* -volset_id sets volume set id: SetWrite. (line 103)
* -volume_date sets volume timestamp: SetWrite. (line 130)
* -xattr controls handling of xattr (EA): Loading. (line 150)
* -zisofs controls zisofs production: SetWrite. (line 199)
* -zisofs controls zisofs production: SetWrite. (line 194)

File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
@ -4321,58 +4186,53 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* ACL, show in ISO image, -getfacl: Navigate. (line 69)
* ACL, show in ISO image, -getfacl_r: Navigate. (line 76)
* Appendable media, _definition: Media. (line 38)
* Appended Filesystem Image, -append_partition: Bootable. (line 202)
* Appended Filesystem Image, -append_partition: Bootable. (line 186)
* Backslash Interpretation, _definition: Processing. (line 49)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 189)
* Backup, enable features, -for_backup: Loading. (line 184)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 168)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 182)
* Backup, enable features, -for_backup: Loading. (line 177)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 152)
* Blank media, _definition: Media. (line 29)
* Blind growing, _definition: Methods. (line 40)
* Bootability, control, -boot_image: Bootable. (line 26)
* cdrecord, Emulation: Emulation. (line 111)
* cdrecord, Emulation: Emulation. (line 97)
* Character Set, _definition: Charset. (line 6)
* Character Set, for input, -in_charset: Loading. (line 92)
* Character Set, for input/output, -charset: Charset. (line 43)
* Character Set, for output, -out_charset: SetWrite. (line 185)
* Character Set, for output, -out_charset: SetWrite. (line 180)
* Character set, learn from image, -auto_charset: Loading. (line 99)
* Character Set, of terminal, -local_charset: Charset. (line 47)
* Closed media, _definition: Media. (line 43)
* Comment, #: Scripting. (line 140)
* Comment, #: Scripting. (line 128)
* Create, new ISO image, _definiton: Methods. (line 6)
* Cylinder alignment, _definiton: Bootable. (line 169)
* Cylinder size, _definiton: Bootable. (line 158)
* Delete, from ISO image, -rm: Manip. (line 21)
* Delete, from ISO image, -rm_r: Manip. (line 28)
* Delete, ISO directory, -rmdir: Manip. (line 32)
* Dialog, bring text into history, -history: Scripting. (line 26)
* Dialog, bring text into history, -history: Scripting. (line 22)
* Dialog, confirmation question, -reassure: DialogCtl. (line 32)
* Dialog, enable dialog mode, -dialog: DialogCtl. (line 7)
* Dialog, line editing, -use_readline: DialogCtl. (line 28)
* Dialog, terminal geometry, -page: DialogCtl. (line 19)
* Directories, copy, -cp_clone: Insert. (line 182)
* Directory, copy, -clone: Insert. (line 171)
* Directory, create, -mkdir: Insert. (line 166)
* Directory, delete, -rmdir: Manip. (line 32)
* disk_path, _definition: Insert. (line 6)
* Drive, _definiton: Drives. (line 6)
* Drive, accessability, -drive_class: Loading. (line 54)
* Drive, classify stdio, -early_stdio_test: Loading. (line 251)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 246)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 239)
* Drive, eject tray, -eject: Writing. (line 36)
* Drive, for input and output, -dev: AqDrive. (line 10)
* Drive, for input, -indev: AqDrive. (line 22)
* Drive, for output, -outdev: AqDrive. (line 29)
* Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, list supported media, -list_profiles: Writing. (line 119)
* Drive, reduce activity, -calm_drive: Loading. (line 235)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 125)
* Drive, reduce activity, -calm_drive: Loading. (line 228)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 113)
* Drive, write and eject, -commit_eject: Writing. (line 40)
* El Torito, _definiton: Extras. (line 19)
* Emulation, -as: Emulation. (line 13)
* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 146)
* Emulation, cdrecord, -as: Emulation. (line 111)
* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 130)
* Emulation, cdrecord, -as: Emulation. (line 97)
* Emulation, mkisofs, -as: Emulation. (line 16)
* Emulation, pacifier form, -pacifier: Emulation. (line 158)
* Emulation, pacifier form, -pacifier: Emulation. (line 142)
* Examples: Examples. (line 6)
* Filter, _definition: Filter. (line 6)
* Filter, apply to file tree, -set_filter_r: Filter. (line 84)
@ -4382,8 +4242,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Filter, show chain, -show_stream: Navigate. (line 162)
* Filter, show chains of tree, -show_stream_r: Navigate. (line 177)
* Filter, unregister, -unregister_filter: Filter. (line 48)
* Filter, zisofs parameters, -zisofs: SetWrite. (line 199)
* Group, global in ISO image, -gid: SetWrite. (line 195)
* Filter, zisofs parameters, -zisofs: SetWrite. (line 194)
* Group, global in ISO image, -gid: SetWrite. (line 190)
* Group, in ISO image, -chgrp: Manip. (line 50)
* Group, in ISO image, -chgrp_r: Manip. (line 55)
* Growing, _definition: Methods. (line 19)
@ -4392,17 +4252,17 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Image, _definition: Model. (line 9)
* Image, demand volume id, -assert_volid: Loading. (line 84)
* Image, discard pending changes, -rollback: Writing. (line 9)
* Image, set abstract file name, -abstract_file: SetWrite. (line 160)
* Image, set application id, -application_id: SetWrite. (line 119)
* Image, set biblio file name, -biblio_file: SetWrite. (line 167)
* Image, set copyright file name, -copyright_file: SetWrite. (line 154)
* Image, set preparer id, -preparer_id: SetWrite. (line 173)
* Image, set publisher id, -publisher: SetWrite. (line 113)
* Image, set system id, -system_id: SetWrite. (line 128)
* Image, set volume id, -volid: SetWrite. (line 89)
* Image, set volume set id, -volset_id: SetWrite. (line 108)
* Image, set volume timestamp, -volume_date: SetWrite. (line 135)
* Image, show id strings, -pvd_info: Inquiry. (line 82)
* Image, set abstract file name, -abstract_file: SetWrite. (line 155)
* Image, set application id, -application_id: SetWrite. (line 114)
* Image, set biblio file name, -biblio_file: SetWrite. (line 162)
* Image, set copyright file name, -copyright_file: SetWrite. (line 149)
* Image, set preparer id, -preparer_id: SetWrite. (line 168)
* Image, set publisher id, -publisher: SetWrite. (line 108)
* Image, set system id, -system_id: SetWrite. (line 123)
* Image, set volume id, -volid: SetWrite. (line 84)
* Image, set volume set id, -volset_id: SetWrite. (line 103)
* Image, set volume timestamp, -volume_date: SetWrite. (line 130)
* Image, show id strings, -pvd_info: Inquiry. (line 81)
* Insert, enable overwriting, -overwrite: SetInsert. (line 127)
* Insert, file exclusion absolute, -not_paths: SetInsert. (line 55)
* Insert, file exclusion from file, -not_list: SetInsert. (line 67)
@ -4435,7 +4295,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Media, erase, -blank: Writing. (line 45)
* Media, format, -format: Writing. (line 69)
* Media, list formats, -list_formats: Writing. (line 107)
* MIPS boot file, activation: Bootable. (line 178)
* MIPS boot file, activation: Bootable. (line 162)
* mkisofs, Emulation: Emulation. (line 16)
* Modifying, _definition: Methods. (line 27)
* Multi-session media, _definition: Media. (line 7)
@ -4458,7 +4318,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Navigate, tell ISO working directory, -pwd: Navigate. (line 20)
* Next writeable address, -grow_blindly: AqDrive. (line 44)
* Overwriteable media, _definition: Media. (line 14)
* Ownership, global in ISO image, -uid: SetWrite. (line 191)
* Ownership, global in ISO image, -uid: SetWrite. (line 186)
* Ownership, in ISO image, -chown: Manip. (line 42)
* Ownership, in ISO image, -chown_r: Manip. (line 47)
* Partition offset, _definiton: Bootable. (line 148)
@ -4474,28 +4334,25 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Process, control exit value, -return_with: Exception. (line 39)
* Process, control verbosity, -report_about: Exception. (line 55)
* Process, disable startup files, -no_rc: Scripting. (line 7)
* Process, end program and write, -end: Scripting. (line 134)
* Process, end program, no writing, -rollback_end: Scripting. (line 137)
* Process, end program and write, -end: Scripting. (line 122)
* Process, end program, no writing, -rollback_end: Scripting. (line 125)
* Process, error workarounds, -error_behavior: Exception. (line 69)
* Process, log output channels to file, -logfile: Frontend. (line 20)
* Process, read command file, -options_from_file: Scripting. (line 12)
* Process, set synchronizing message, -mark: Frontend. (line 25)
* Program, backslash conversion, -backslash_codes: Scripting. (line 49)
* Program, curb memory, -temp_mem_limit: Scripting. (line 74)
* Program, end and write, -end: Scripting. (line 134)
* Program, end without writing, -rollback_end: Scripting. (line 137)
* Program, print help text, -help: Scripting. (line 20)
* Program, backslash conversion, -backslash_codes: Scripting. (line 45)
* Program, curb memory, -temp_mem_limit: Scripting. (line 70)
* Program, end and write, -end: Scripting. (line 122)
* Program, end without writing, -rollback_end: Scripting. (line 125)
* Program, print help text, -help: Scripting. (line 16)
* Program, print help text, -prog_help: Frontend. (line 33)
* Program, print message text line, -print_info: Scripting. (line 84)
* Program, print result text line, -print: Scripting. (line 81)
* Program, print synchronizing text line, -print_mark: Scripting.
(line 87)
* Program, print version, -version: Scripting. (line 23)
* Program, prompt for enter key, -prompt: Scripting. (line 92)
* Program, replace --, -list_delimiter: Scripting. (line 42)
* Program, print text line, -print: Scripting. (line 77)
* Program, print version, -version: Scripting. (line 19)
* Program, prompt for enter key, -prompt: Scripting. (line 80)
* Program, replace --, -list_delimiter: Scripting. (line 38)
* Program, set name, -prog: Frontend. (line 30)
* Program, show current settings, -status: Scripting. (line 29)
* Program, status history, -status_history_max: Scripting. (line 38)
* Program, show current settings, -status: Scripting. (line 25)
* Program, status history, -status_history_max: Scripting. (line 34)
* Quoted input, _definiton: Processing. (line 43)
* Recovery, retrieve blocks, -check_media: Verify. (line 21)
* Rename, in ISO image, -mv: Manip. (line 35)
@ -4513,14 +4370,14 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Session, altered start address, -displacement: Loading. (line 35)
* Session, info string, -session_string: Inquiry. (line 56)
* Session, issue mount command, -mount: Restore. (line 122)
* Session, log when written, -session_log: Scripting. (line 116)
* Session, log when written, -session_log: Scripting. (line 104)
* Session, mount command line, -mount_cmd: Inquiry. (line 31)
* Session, mount parameters, -mount_opts: Inquiry. (line 47)
* Session, select as input, -load: Loading. (line 11)
* SUN Disk Label, production: Bootable. (line 189)
* SUN SPARC boot images, activation: Bootable. (line 223)
* SUN Disk Label, production: Bootable. (line 173)
* SUN SPARC boot images, activation: Bootable. (line 207)
* System area, _definiton: Bootable. (line 123)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 210)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 203)
* Table-of-content, show, -toc: Inquiry. (line 18)
* Timestamps, set in ISO image, -alter_date: Manip. (line 146)
* Timestamps, set in ISO image, -alter_date_r: Manip. (line 166)
@ -4533,22 +4390,22 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, file checksum, -check_md5: Verify. (line 146)
* Verify, file tree checksums, -check_md5_r: Verify. (line 162)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
* Write, block size, -dvd_obs: SetWrite. (line 238)
* Write, block size, -dvd_obs: SetWrite. (line 233)
* Write, bootability, -boot_image: Bootable. (line 26)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 245)
* Write, close media, -close: SetWrite. (line 262)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 240)
* Write, close media, -close: SetWrite. (line 257)
* Write, compliance to specs, -compliance: SetWrite. (line 14)
* Write, defect management, -stream_recording: SetWrite. (line 226)
* Write, defect management, -stream_recording: SetWrite. (line 221)
* Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 255)
* Write, free space, -tell_media_space: Inquiry. (line 78)
* Write, log problematic disk files, -errfile_log: Scripting. (line 96)
* Write, log written sessions, -session_log: Scripting. (line 116)
* Write, padding image, -padding: SetWrite. (line 268)
* Write, fifo size, -fs: SetWrite. (line 250)
* Write, free space, -tell_media_space: Inquiry. (line 77)
* Write, log problematic disk files, -errfile_log: Scripting. (line 84)
* Write, log written sessions, -session_log: Scripting. (line 104)
* Write, padding image, -padding: SetWrite. (line 263)
* Write, pending ISO image, -commit: Writing. (line 13)
* Write, predict image size, -print_size: Inquiry. (line 69)
* Write, set speed, -speed: SetWrite. (line 211)
* Write, simulation, -dummy: SetWrite. (line 251)
* Write, set speed, -speed: SetWrite. (line 206)
* Write, simulation, -dummy: SetWrite. (line 246)
* xattr, _definiton: Extras. (line 52)
* xattr, control handling, -xattr: Loading. (line 150)
* xattr, set in ISO image, -setfattr: Manip. (line 110)
@ -4572,46 +4429,46 @@ Node: Dialog21570
Node: Options23227
Node: AqDrive24835
Node: Loading27741
Node: Insert42060
Node: SetInsert51679
Node: Manip60246
Node: CmdFind68927
Node: Filter80227
Node: Writing84576
Node: SetWrite90865
Node: Bootable104898
Node: Jigdo118216
Node: Charset122474
Node: Exception125225
Node: DialogCtl129736
Node: Inquiry132323
Node: Navigate136700
Node: Verify144640
Node: Restore153229
Node: Emulation159885
Node: Scripting169721
Node: Frontend175861
Node: Examples177156
Node: ExDevices178325
Node: ExCreate178959
Node: ExDialog180233
Node: ExGrowing181495
Node: ExModifying182297
Node: ExBootable182798
Node: ExCharset183345
Node: ExPseudo184173
Node: ExCdrecord185067
Node: ExMkisofs185382
Node: ExGrowisofs186718
Node: ExException187842
Node: ExTime188296
Node: ExIncBackup188755
Node: ExRestore192676
Node: ExRecovery193645
Node: Files194211
Node: Seealso195501
Node: Legal196081
Node: CommandIdx197003
Node: ConceptIdx211529
Node: Insert40885
Node: SetInsert49242
Node: Manip57809
Node: CmdFind66490
Node: Filter76914
Node: Writing81263
Node: SetWrite87552
Node: Bootable100954
Node: Jigdo113261
Node: Charset117519
Node: Exception120270
Node: DialogCtl124785
Node: Inquiry127372
Node: Navigate131705
Node: Verify139600
Node: Restore148189
Node: Emulation154845
Node: Scripting163677
Node: Frontend169239
Node: Examples170534
Node: ExDevices171703
Node: ExCreate172337
Node: ExDialog173611
Node: ExGrowing174873
Node: ExModifying175675
Node: ExBootable176176
Node: ExCharset176723
Node: ExPseudo177551
Node: ExCdrecord178445
Node: ExMkisofs178760
Node: ExGrowisofs179763
Node: ExException180887
Node: ExTime181341
Node: ExIncBackup181800
Node: ExRestore185290
Node: ExRecovery186259
Node: Files186825
Node: Seealso188053
Node: Legal188577
Node: CommandIdx189499
Node: ConceptIdx203725

End Tag Table

View File

@ -44,7 +44,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Apr 03, 2011"
@c man .TH XORRISO 1 "Jan 06, 2011"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -965,7 +965,6 @@ are both in effect. This restricts hard linking to other files restored by
the same single extract command. -hardlinks "normal_extract" re-enables
wide and expensive hardlink accumulation.
@*
@c man .TP
@item -acl "on"|"off"
@kindex -acl controls handling of ACLs
@cindex ACL, control handling, -acl
@ -983,7 +982,7 @@ Enable or disable processing of xattr attributes in user namespace.
If enabled, then xorriso will handle xattr similar to ACL.
See also options -getfattr, -setfattr and above paragraph about xattr.
@c man .TP
@item -md5 "on"|"all"|"off"|"load_check_off"
@item -md5 "on"|"all"|"off"
@kindex -md5 controls handling of MD5 sums
@cindex MD5, control handling, -md5
Enable or disable processing of MD5 checksums for the overall session and for
@ -1006,15 +1005,6 @@ Mode "all" will additionally check during image generation whether the checksum
of a data file changed between the time when its reading began and the time
when it ended. This implies reading every file twice.
@*
Mode "load_check_off" together with "on" or "all" will load recorded MD5 sums
but not test the recorded checksum tags of superblock and directory tree.
This is necessary if growisofs was used as burn program, because it does
not overwrite the superblock checksum tag of the first session.
Therefore load_check_off is in effect when xorriso -as mkisofs option -M
is performed.
@*
The test can be re-enabled by mode "load_check_on".
@*
Checksums can be exploited via options -check_md5, -check_md5_r, via find
actions get_md5, check_md5, and via -check_media.
@c man .TP
@ -1096,21 +1086,6 @@ Mode "on" causes -calm_drive to be performed automatically after each -dev,
Allow for writing only the usage of MMC optical drives. Disallow
to write the result into files of nearly arbitrary type.
Once set, this command cannot be revoked.
@c man .TP
@item -early_stdio_test "on"|"appendable_wo"|"off"
@kindex -early_stdio_test classifies stdio drives
@cindex Drive, classify stdio, -early_stdio_test
If enabled by "on" then regular files and block devices get tested for
effective access permissions. This implies to try opening those files for
writing, which otherwise will happen only later and only if actual
writing is desired.
@*
The test result is used for classifying the pseudo drives as overwriteable,
read-only, write-only, or uselessly empty. This may lead to earlier detection
of severe problems, and may avoid some less severe error events.
@*
Mode "appendable_wo" is like "on" with the additional property that
non-empty write-only files are regarded as appendable rather than blank.
@end table
@c man .TP
@c man .B Inserting files into ISO image:
@ -1336,35 +1311,6 @@ If the iso_rr_path does not begin with '/' then -cd is prepended.
Create empty directories if they do not exist yet.
Existence as directory generates a WARNING event, existence as
other file causes a FAILURE event.
@c man .TP
@item -clone iso_rr_path_original iso_rr_path_copy
@kindex -clone copies ISO directory tree
@cindex Directory, copy, -clone
Create a copy of the ISO file object iso_rr_path_original with the new
address iso_rr_path_copy. If the original is a directory then copy all
files and directories underneath. An eventual boot catalog file gets
not copied but is silently ignored.
@*
The copied ISO file objects have the same attributes. Copied data files
refer to the same content source as their originals.
The copies may then be manipulated independendly of their originals.
@*
This command will refuse execution if the address iso_rr_path_copy
already exists in the ISO tree.
@c man .TP
@item -cp_clone iso_rr_path_original [***] iso_rr_path_dest
@kindex -cp_clone copies ISO directory tree
@cindex Directories, copy, -cp_clone
Create copies of one or more ISO file objects as with command -clone.
Eventually merge directories with existing ones, but do not overwrite
existing ISO file objects.
@*
The rules for generating the copy addresses are the same as with
command -cpr (see above) resp. shell command cp -r. Other than with -cpr,
relative iso_rr_path_original will get prepended the -cd path and not
the -cdx path. Consider to -mkdir iso_rr_path_dest before -cp_clone
so the copy address does not depend on the number of iso_rr_path_original
arguments.
@end table
@c man .TP
@c man .B Settings for file insertion:
@ -2039,16 +1985,6 @@ performs command -update with the found file address as
iso_rr_path. The corresponding file address is determined like with above
action "compare".
@*
@item update_merge
is like update but does not delete the found file if it is missing on disk.
It may be run several times and records with all visited files whether their
counterpart on disk has already been seen by one of the update_merge runs.
Finally, a -find run with action "rm_merge" may remove all files that
saw no counterpart on disk.
@*
Up to the next "rm_merge" or "clear_merge" all newly inserted files will
get marked as having a disk counterpart.
@*
@item rm
removes the found iso_rr_path from the image if it is not a directory
with files in it. I.e. this "rm" includes "rmdir".
@ -2057,14 +1993,6 @@ with files in it. I.e. this "rm" includes "rmdir".
removes the found iso_rr_path from the image, including whole
directory trees.
@*
@item rm_merge
removes the found iso_rr_path if it was visited by one or more previous actions
"update_merge" and saw no counterpart on disk in any of them. The marking from
the update actions is removed in any case.
@*
@item clear_merge
removes an eventual marking from action "update_merge".
@*
@item report_damage
classifies files whether they hit a data block that is
marked as damaged. The result is printed together with the eventual address
@ -2512,9 +2440,6 @@ fail deliberately.
for the length of file names. 0 disables this feature, -1 chooses maximum
length limit, numbers larger than 0 give the desired length limit.
@*
"joliet_long_names" allows Joliet leaf names up to 103 characters rather
than 64.
@*
"joliet_long_paths" allows Joliet paths longer than 240 characters.
@*
"always_gmt" stores timestamps in GMT representation with timezone 0.
@ -2539,10 +2464,6 @@ but makes the image incapable of displaying its session history.
compliant to ISO 9660:1999. It can record long filenames for readers which
do not understand Rock Ridge.
@*
"old_empty" uses the old way of of giving block addresses in the range
of [0,31] to files with no own data content. The new way is to have
a dedicated block to which all such files will point.
@*
Default setting is
@*
"clear:only_iso_version:deep_paths:long_paths:no_j_force_dots:
@ -2795,8 +2716,8 @@ any more (if possible at all with the given type of target media).
This is the contrary of cdrecord, wodim, cdrskin option -multi,
and is one aspect of growisofs option -dvd-compat.
@c man .TP
@item -padding number["k"|"m"]|"included"|"appended"
@kindex -padding sets amount or mode of image padding
@item -padding number["k"|"m"]
@kindex -padding sets amount of image padding
@cindex Write, padding image, -padding
Append the given number of extra bytes to the image stream.
This is a traditional remedy for a traditional bug in block
@ -2805,13 +2726,6 @@ Since one can hardly predict on what media an image might end up,
xorriso adds the traditional 300k of padding by default to all images.
@*
For images which will never get to a CD it is safe to use -padding 0 .
@*
Normally padding is not written as part of the ISO image but appended
after the image end. This is -padding mode "appended".
@*
Emulation command -as "mkisofs" and command -jigdo cause padding to be
written as part of the image.
The same effect is achieved by -padding mode "included".
@end table
@c man .TP
@c man .B Bootable ISO images:
@ -3019,31 +2933,11 @@ absolute start as well as from the partition start.
The offset value of an ISO image gets preserved when a new session is added.
So the value defined here is only in effect if a new ISO image gets written.
@*
@cindex Cylinder size, _definiton
@strong{partition_hd_cyl=}number gives the number of heads per cylinder for
the partition table. 0 chooses a default value. Maximum is 255.
@*
@strong{partition_sec_hd=}number gives the number of sectors per head for
the partition table. 0 chooses a default value. Maximum is 63.
partition offset. 0 chooses a default value.
@*
The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size.
It should be divisible by 2048 in order to allow exact alignment.
If it is too small to describe the image size by at most 1024 cylinders,
then appropriate values of partition_hd_cyl are chosen with
partition_sec_hd 32 or 63. If the image is larger than 8,422,686,720 bytes,
then the cylinder size constraints cannot be fulfilled.
@*
@cindex Cylinder alignment, _definiton
@strong{partition_cyl_align=}mode controls image size alignment to an integer
number of cylinders. It is prescribed by isohybrid specs and it seems to
please program fdisk. Cylinder size must be divisible by 2048.
Images larger than 8,323,596,288 bytes cannot be aligned.
@*
Mode "auto" is default. Alignment by padding happens only with
"isolinux" "partition_table=on".
@*
Mode "on" causes alignment by padding with "partition_table=on" for any type.
Mode "off" disables alignment for any type.
@strong{partition_hd_cyl=}number gives the number of heads per cylinder for
partition offset. 0 chooses a default value.
@*
@cindex MIPS boot file, activation
@strong{mips_path=}iso_rr_path declares a data file in the image to be a
@ -3157,7 +3051,7 @@ eventual padding will be counted as part of the ISO image.
@sp 1
@c man .TP
@item -jigdo parameter_name value
@kindex -jigdo clears JTE or or adds parameter to JTE
@kindex -jigdo clears JTE or sets input/output character set
@cindex Jigdo Template Extraction, -jigdo
Clear Jigdo Template Extraction parameter list or add a parameter to that list.
The alias names are the corresponding genisoimage options. They are accepted
@ -3397,9 +3291,9 @@ if the threshold of option -abort_on allows this.
@*
"failure" aborts image tree reading on first event of at least SORRY.
It issues an own FAILURE event.
This is the default.
@*
"fatal" acts like "failure" but issues the own event as FATAL.
This is the default.
@*
With occasion "file_extraction" there are three behaviors:
@*
@ -3585,8 +3479,8 @@ Print the foreseeable consumption of 2048 byte blocks
by next -commit. This can last a while as a -commit gets
prepared and only in last moment is revoked by this option.
The result depends on several settings and also on the kind of output device.
If no -jidgo options are given and not command -as "mkisofs" was used,
then -padding (300 kB by default) is not counted as part of the image size.
If no -jidgo options are given, then -padding (300 kB by default) is not
counted as part of the image size.
@c man .TP
@item -tell_media_space
@kindex -tell_media_space reports free space
@ -3782,7 +3676,7 @@ not exist in the ISO image. The report format is the same as with command
@*
@item add_missing iso_rr_path_start
adds the counterpart if it does not yet
exist in the ISO image and marks it for "rm_merge" as non-removable.
exist in the ISO image.
@*
E.g.: -findx /home/thomas -exec add_missing /thomas_on_cd @minus{}@minus{}
@*
@ -4248,9 +4142,10 @@ file paths and pathspecs.
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.
@*
The supported options are documented in detail in xorrisofs.info
and in man xorrisofs. The description here is focused on the effect
of mkisofs emulation in the context of a xorriso run.
-graft-points is equivalent to -pathspecs on. Note that pathspecs without "="
are interpreted differently than with xorriso option -add. Directories get
merged with the root directory of the ISO image, other filetypes get mapped
into that root directory.
@*
Other than with the "cdrecord" personality there is no automatic -commit at
the end of a "mkisofs" option list. Verbosity settings -v (= "UPDATE") and
@ -4258,11 +4153,6 @@ the end of a "mkisofs" option list. Verbosity settings -v (= "UPDATE") and
persists until things happen like -commit, -rollback, -dev, or end of xorriso.
-pacifier gets set to "mkisofs" if files are added to the image.
@*
-graft-points is equivalent to -pathspecs on. Note that pathspecs without "="
are interpreted differently than with xorriso option -add. Directories get
merged with the root directory of the ISO image, other filetypes get mapped
into that root directory.
@*
If pathspecs are given and if no output file was chosen before or during the
"mkisofs" option list, then standard output (-outdev "-") will get into effect.
If -o points to a regular file, then it will be truncated to 0 bytes
@ -4277,22 +4167,11 @@ standard output.
-print-size inhibits automatic image production at program end. This ban is
lifted only if the pending image changes get discarded.
@*
Eventual padding is counted as part of the ISO image if not option --emul-toc
is given.
@*
If no -iso-level is given, then level 1 is chosen when the first file or
directory is added to the image. At the same occasion directory names get
allowed to violate the standard by -compliance option allow_dir_id_ext.
This may be avoided by option -disallow_dir_id_ext.
@*
Option -root is supported. Option -old-root is implemented by xorriso
commands -mkdir, -cp_clone, -find update_merge, and -find rm_merge.
-root and -old-root set command -disk_dev_ino to "ino_only" and -md5 to "on",
by default.
@minus{}disk_dev_ino can be set to "off" by @minus{}@minus{}old-root-no-ino
resp. to "on" by @minus{}@minus{}old-root-devno .
@minus{}md5 can be set to "off" by @minus{}@minus{}old-root-no-md5 .
@*
Not original mkisofs options are @minus{}@minus{}quoted_path_list ,
@minus{}@minus{}hardlinks , @minus{}@minus{}acl ,
@minus{}@minus{}xattr , @minus{}@minus{}md5 , @minus{}@minus{}stdio_sync .
@ -4338,15 +4217,13 @@ Option @minus{}append_partition is supported.
@minus{}untranslated_name_len number is
@minus{}compliance untranslated_name_len=number.
@*
@minus{}@minus{}old-empty is -compliance old_empty.
@*
The options of genisoimage Jigdo Template Extraction are recognized and
performed via xorriso option -jigdo. See the "Alias:" names there for the
meaning of the genisoimage options.
@*
@sp 1
Personalities "@strong{xorrisofs}", "@strong{genisoimage}",
Personalites "@strong{xorrisofs}", "@strong{genisoimage}",
and "@strong{genisofs}" are aliases for "mkisofs".
@*
If xorriso is started with one of the leafnames "xorrisofs", "genisofs",
@ -4356,9 +4233,6 @@ I.e. all arguments will be interpreted mkisofs style until "@minus{}@minus{}"
is encountered.
From then on, options are interpreted as xorriso options.
@*
@minus{}@minus{}no_rc as first argument of such a program start
prevents interpretation of startup files. See section FILES below.
@*
@sp 1
@cindex Emulation, cdrecord, -as
@ -4404,9 +4278,6 @@ If xorriso is started with one of the leafnames "xorrecord", "cdrskin",
to the command line arguments. I.e. all arguments will be interpreted cdrecord
style until "@minus{}@minus{}" is encountered and an eventual commit happens.
From then on, options are interpreted as xorriso options.
@*
@minus{}@minus{}no_rc as first argument of such a program start
prevents interpretation of xorriso startup files. See section FILES below.
@c man .TP
@item -read_mkisofsrc
@kindex -read_mkisofsrc searches and reads .mkisofsrc file
@ -4473,12 +4344,7 @@ files. See section FILES below.
@item -options_from_file fileaddress
@kindex -options_from_file reads commands from file
@cindex Process, read command file, -options_from_file
Read quoted input from fileaddress and execute it like dialog lines.
Empty lines and lines which begin by # are ignored. Normally one line
should hold one xorriso command and all its arguments. Nevertheless lines
may be concatenated by a trailing backslash.
@*
See also section "Command processing", paragraph "Quoted input".
Read quoted input from fileaddress and executes it like dialog lines.
@c man .TP
@item -help
@kindex -help prints help text
@ -4577,20 +4443,9 @@ restoring of hard links.
Default is 16m = 16 MiB, minimum 64k = 64 kiB, maximum 1024m = 1 GiB.
@c man .TP
@item -print text
@kindex -print prints result text line
@cindex Program, print result text line, -print
Print a text line to the result channel which is by default stdout.
@c man .TP
@item -print_info text
@kindex -print_info prints message text line
@cindex Program, print message text line, -print_info
Print a text line to the info channel which is by default stderr.
@c man .TP
@item -print_mark text
@kindex -print_mark prints synchronizing text line
@cindex Program, print synchronizing text line, -print_mark
Print a text line to the mark channel which is by default directed to both,
result and info channel. An empty text will cause no output at all.
@kindex -print prints text line
@cindex Program, print text line, -print
Print a text to result channel.
@c man .TP
@item -prompt text
@kindex -prompt prompts for enter key
@ -5078,8 +4933,6 @@ $ xorriso -as mkisofs prepared_for_iso/tree1 | \
Follow-up sessions are written like this:
@*
@sp 1
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
@*
$ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
@*
$ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \
@ -5088,13 +4941,8 @@ $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \
@*
@sp 1
Always eject the drive tray between sessions. The old sessions
get read via /dev/sr0. Its device driver might not be aware
of the changed content before it loads the media again.
In this case the previous session would not be loaded and the
new session would contain only the newly added files.
@*
For the same reason do not let xorriso -as cdrecord load the media,
but rather do this manually or by a program that reads from /dev/sr0.
get read via stdio:/dev/sr0 and thus are prone to device driver
peculiarities.
@*
@sp 1
This example works for multi-session media only.
@ -5240,7 +5088,7 @@ $ xorriso \
@*
-not_leaf '*.o' -not_leaf '*.swp' \
@*
-update_r /home/thomas/projects /projects \
-update_r /home/thomas/open_source_projects /open_source_projects \
@*
-update_r /home/thomas/personal_mail /personal_mail \
@*
@ -5290,21 +5138,6 @@ older sessions in the table-of-content. E.g. as superuser:
# osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
@*
@sp 1
@c man .sp 1
Above example produces a result similar to -root / -old-root / with mkisofs.
For getting the session trees accumulated in the new sessions, let all -update
commands use a common parent directory and clone it after updating is done:
@*
-update_r /home/thomas/projects /current/projects \
@*
-update_r /home/thomas/personal_mail /current/personal_mail \
@*
-clone /current /"$(date '+%Y_%m_%d_%H%M%S')" \
@*
The cloned tree will have a name like /2011_02_12_155700.
@*
@sp 1
@c man .sp 1
Sessions on multi-session media are separated by several MB of unused blocks.
So with small sessions the payload capacity can become substantially lower
than the overall media capacity. If the remaining space on media does not
@ -5312,7 +5145,6 @@ suffice for the next gap, the drive is supposed to close the media
automatically.
@*
@sp 1
@c man .sp 1
@strong{Better do not use your youngest backup for -update_r}.
Have at least two media which you use alternatingly. So only older backups
get endangered by the new write operation, while the newest backup is
@ -5410,7 +5242,7 @@ to read and execute lines from the following files:
@*
@sp 1
The files are read in the sequence given above, but none of them is required
to exist. The line format is described with command -options_from_file.
to exist.
@*
If mkisofs emulation was enabled by program name "xorrisofs", "mkisofs",
"genisoimage", or "genisofs", then afterwards -read_mkisofsrc is performed,
@ -5426,9 +5258,6 @@ The default setting of -check_media abort_file= is:
@*
@c man .SH SEE ALSO
@c man .TP
@c man For the mkisofs emulation of xorriso
@c man .BR xorrisofs(1)
@c man .TP
@c man For mounting xorriso generated ISO 9660 images (-t iso9660)
@c man .BR mount(8)
@c man .TP
@ -5457,8 +5286,6 @@ The default setting of -check_media abort_file= is:
@node Seealso, Legal, Files, Top
@chapter See also
@table @asis
@item For the mkisofs emulation of xorriso
xorrisofs(1)
@item For mounting xorriso generated ISO 9660 images (-t iso9660)
mount(8)
@item Libreadline, a comfortable input line facility
@ -5489,7 +5316,7 @@ Thomas Schmitt <scdbackup@@gmx.net>
for libburnia-project.org
@c man .SH COPYRIGHT
@section Copyright
Copyright (c) 2007 - 2011 Thomas Schmitt
Copyright (c) 2007 - 2010 Thomas Schmitt
@*
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of xorriso. If you make use

View File

@ -2,7 +2,7 @@
<HEAD>
<META NAME="description" CONTENT="GNU xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions">
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, BD, ISO, ISO 9660, RockRidge, Rock Ridge, GNU/Linux, Linux, FreeBSD, Solaris, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, BD-R, scdbackup">
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, GNU/Linux, Linux, FreeBSD, Solaris, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, BD-R, scdbackup">
<META NAME="robots" CONTENT="follow">
<TITLE>GNU xorriso - GNU Project - Free Software Foundation</TITLE>
<LINK rev="made" href="mailto:webmasters@gnu.org">
@ -446,21 +446,21 @@ This can bring effective read performance near to the raw media reading speed.
<P>
<DL>
<DT><H3>Download as source code (see README):</H3></DT>
<DD><A HREF="xorriso-1.0.8.tar.gz">xorriso-1.0.8.tar.gz</A>
(1895 KB).
<DD><A HREF="xorriso-1.0.0.tar.gz">xorriso-1.0.0.tar.gz</A>
(1775 KB).
</DD>
<DD>(Released 15 Apr 2011)</DD>
<DD><A HREF="xorriso-1.0.8.tar.gz.sig">xorriso-1.0.8.tar.gz.sig</A></DD>
<DD>(Released 17 Jan 2011)</DD>
<DD><A HREF="xorriso-1.0.0.tar.gz.sig">xorriso-1.0.0.tar.gz.sig</A></DD>
<DD>
(detached GPG signature for verification by
<KBD>gpg --verify xorriso-1.0.8.tar.gz.sig xorriso-1.0.8.tar.gz</KBD>
<KBD>gpg --verify xorriso-1.0.0.tar.gz.sig xorriso-1.0.0.tar.gz</KBD>
<BR>
after eventual <KBD>gpg --keyserver keys.gnupg.net --recv-keys ABC0A854</KBD>).
</DD>
<DD>
Also on <A HREF="http://www.gnu.org/prep/ftp.html">
mirrors of ftp://ftp.gnu.org/gnu/ </A>
as xorriso/xorriso-1.0.8.tar.gz
as xorriso/xorriso-1.0.0.tar.gz
</DD>
</DL>
</DD>
@ -468,14 +468,7 @@ as xorriso/xorriso-1.0.8.tar.gz
<DL><DT>Documentation:</DT>
<DD><A HREF="README_xorriso">README</A> about installation and drive setup</DD>
<DD><A HREF="xorriso_help">xorriso -help</A> gives an overview of options</DD>
<DD><A HREF="xorrisofs_help">xorriso -as mkisofs -help</A>
supported options of mkisofs emulation
</DD>
<DD><A HREF="xorrecord_help">xorriso -as cdrecord -help</A>
supported options of cdrecord emulation</DD>
<DD><A HREF="man_1_xorriso.html">man xorriso</A> is the manual page</DD>
<DD><A HREF="man_1_xorrisofs_devel.html">man xorrisofs</A>
describes the mkisofs emulation</DD>
</DL>
<A NAME="contact"></A>
<DL><DT>Contact:</DT>
@ -495,9 +488,9 @@ describes the mkisofs emulation</DD>
<HR>
<P>
Bug fixes towards xorriso-1.0.6:
Bug fixes towards xorriso-0.6.6:
<UL>
<LI>mkisofs emulation could ignore options (regression in 0.1.6)</LI>
<LI>-as mkisofs -print-size did not account for -partition_offset</LI>
<!--
<LI>- none -</LI>
-->
@ -515,9 +508,19 @@ Bug fixes in .pl01 towards xorriso-:
-->
<P>
Enhancements towards previous stable version xorriso-1.0.6:
Enhancements towards previous stable version xorriso-0.6.6:
<UL>
<LI>- none -</LI>
<LI>New -compliance options untranslated_names , untranslated_name_len=</LI>
<LI>New -as mkisofs option -untranslated_name_len</LI>
<LI>New -compliance option iso_9660_1999, -as mkisofs option -iso-level 4</LI>
<LI>New -compliance option iso_9660_level=number</LI>
<LI>New -compliance option allow_dir_id_ext</LI>
<LI>New -as mkisofs option -disallow_dir_id_ext</LI>
<LI>Disabled TOC emulation with -as mkisofs. May be re-enabled by --emul-toc.
</LI>
<LI>Default -abort_on value is now "FAILURE" with batch and "NEVER" with dialog
</LI>
<!--
<LI>- none -</LI>
-->
@ -540,23 +543,23 @@ libburnia project and the legal intentions of
<A HREF="http://www.fsf.org/"> FSF </A> match completely.
</DT>
<DD>&nbsp;</DD>
<DT>libburn-1.0.6</DT>
<DT>libburn-1.0.1</DT>
<DD>reads and writes data from and to CD, DVD, BD.</DD>
<DD>(founded by Derek Foreman and Ben Jansens,
developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org)</DD>
<DT>libisofs-1.0.6</DT>
<DT>libisofs-1.0.1</DT>
<DD>operates on ISO 9660 filesystem images.</DD>
<DD>(By Vreixo Formoso, Mario Danic and Thomas Schmitt
from team of libburnia-project.org)</DD>
<DT>libisoburn-1.0.8</DT>
<DT>libisoburn-1.0.0</DT>
<DD>coordinates libburn and libisofs, emulates multi-session where needed,
and hosts the original source code of program xorriso.</DD>
<DD>It provides the complete functionality of xorriso via
a C language API.</DD>
<DD>(By Vreixo Formoso and Thomas Schmitt
from team of libburnia-project.org)</DD>
<DT>libjte-1.0.0</DT>
<DT>libjte-0.1.1</DT>
<DD>produces jigdo and template file together with the emerging ISO image.</DD>
<DD>(By Free Software Foundation, Steve McIntyre, George Danchev,
Thomas Schmitt)</DD>
@ -570,8 +573,8 @@ cdrecord and mkisofs.</DT>
<P>
<DL>
<DT><H3>Development snapshot, version 1.0.9 :</H3></DT>
<DD>Bug fixes towards xorriso-1.0.8:
<DT><H3>Development snapshot, version 1.0.1 :</H3></DT>
<DD>Bug fixes towards xorriso-1.0.0:
<UL>
<LI>- none yet -</LI>
<!--
@ -579,11 +582,10 @@ cdrecord and mkisofs.</DT>
-->
</UL>
</DD>
<DD>Enhancements towards stable version 1.0.8:
<DD>Enhancements towards stable version 1.0.0:
<UL>
<LI>- none yet -</LI>
<!--
<LI>- none yet -</LI>
-->
</UL>
@ -591,12 +593,9 @@ cdrecord and mkisofs.</DT>
<DD>&nbsp;</DD>
<DD><A HREF="README_xorriso_devel">README 1.0.9</A>
<DD><A HREF="xorriso_help_devel">xorriso-1.0.9 -help</A></DD>
<DD><A HREF="xorrisofs_help_devel">xorriso-1.0.9 -as mkisofs -help</A></DD>
<DD><A HREF="xorrecord_help_devel">xorriso-1.0.9 -as cdrecord -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 1.0.9)</A></DD>
<DD><A HREF="man_1_xorrisofs_devel.html">man xorrisofs (as of 1.0.9)</A></DD>
<DD><A HREF="README_xorriso_devel">README 1.0.1</A>
<DD><A HREF="xorriso_help_devel">xorriso-1.0.1 -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 1.0.1)</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
@ -606,8 +605,8 @@ libburnia libraries.
installation see README)
</DD>
<DD>
<A HREF="xorriso-1.0.9.tar.gz">xorriso-1.0.9.tar.gz</A>
(1895 KB).
<A HREF="xorriso-1.0.1.tar.gz">xorriso-1.0.1.tar.gz</A>
(1775 KB).
</DD>
<DT>A dynamically linked development version of xorriso can be obtained
from repositories of
@ -636,16 +635,16 @@ versions for dynamic linking. Only release versions are safe for that.
But after the run of <KBD>./bootstrap</KBD>, only
vanilla tools like make and gcc are needed.
</DT>
<DT>GNU xorriso contains a copy of libjte-1.0.0 from package jigit
<DT>GNU xorriso contains a copy of libjte-0.1.1
which produces jigdo and template file together with the emerging ISO image.
(By Free Software Foundation, Steve McIntyre, George Danchev,
Thomas Schmitt)
</DT>
<DD>Important: If desired, libjte has to be already installed when libisofs
and libisoburn get built.</DD>
<DD>Download: <KBD><B>wget http://www.einval.com/~steve/software/JTE/download/jigit_1.17.orig.tar.gz</B>
<DD>Download: <KBD><B>svn co http://svn.openfmi.net/dev/people/danchev/jte libjte</B>
</KBD></DD>
<DD>Install: <KBD><B>tar xzf jigit_1.17.orig.tar.gz ; cd jigit-1.17 ; make ; make install</B>
<DD>Install: <KBD><B>cd libjte ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
</KBD></DD>
<DD>&nbsp;</DD>

View File

@ -111,7 +111,7 @@
*/
#define Xorriso_req_majoR 1
#define Xorriso_req_minoR 0
#define Xorriso_req_micrO 8
#define Xorriso_req_micrO 0
static void yell_xorriso()
@ -229,7 +229,7 @@ int main(int argc, char **argv)
*/
ret= Xorriso_prescan_args(xorriso,argc,argv,0);
if(ret == 0)
goto end_successfully;
goto end_sucessfully;
if(ret < 0)
exit(5);
@ -246,7 +246,7 @@ int main(int argc, char **argv)
/* Interpret startup files */
ret= Xorriso_read_rc(xorriso, 0);
if(ret == 3)
goto end_successfully;
goto end_sucessfully;
if(ret <= 0)
{ret= 5; goto emergency_exit;}
@ -258,7 +258,7 @@ int main(int argc, char **argv)
i= 1;
ret= Xorriso_interpreter(xorriso, argc, argv, &i, 2);
if(ret == 3)
goto end_successfully;
goto end_sucessfully;
if(ret <= 0)
{ret= 5; goto emergency_exit;}
@ -267,7 +267,7 @@ int main(int argc, char **argv)
if(ret <= 0)
{ret= 6; goto emergency_exit;}
end_successfully:; /* normal shutdown, including eventual -commit */
end_sucessfully:; /* normal shutdown, including eventual -commit */
Xorriso_process_msg_queues(xorriso, 0);
if(Xorriso_change_is_pending(xorriso, 1))
Xorriso_option_end(xorriso, 2);

View File

@ -291,13 +291,9 @@ indent: $(indent_files)
# Extra things
man_MANS = \
xorriso/xorriso.1 \
xorriso/xorrisofs.1
man_MANS = xorriso/xorriso.1
info_TEXINFOS = \
xorriso/xorriso.texi \
xorriso/xorrisofs.texi
info_TEXINFOS = xorriso/xorriso.texi
EXTRA_DIST = \
xorriso.pc.in \
@ -315,7 +311,6 @@ EXTRA_DIST = \
doc/susp_aaip_2_0.txt \
doc/susp_aaip_isofs_names.txt \
doc/zisofs_format.txt \
doc/startup_file.txt \
libisofs/aaip-os-dummy.c \
libisofs/aaip-os-linux.c \
libisofs/aaip-os-freebsd.c \

View File

@ -20,13 +20,7 @@
/* for uint32_t */
#ifdef HAVE_STDINT_H
#include <stdint.h>
#else
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#endif
/** The source code release timestamp */
@ -150,18 +144,12 @@ struct XorrisO { /* the global context of xorriso */
bit2= write MD5 for each data file
bit3= make file content stability check by double reading
bit4= use recorded MD5 as proxy of ISO file
bit5= with bit0: do not check tags of superblock,tree,session
*/
int no_emul_toc; /* bit0= On overwriteables:
write first session to LBA 0 rather than 32.
*/
int do_old_empty; /* See -compliance old_empty
own data content: range [0,31]. The new way is to have
a dedicated block to which all such files will point.
*/
char scdbackup_tag_name[81];
char scdbackup_tag_time[19];
char scdbackup_tag_written[512];
@ -251,18 +239,6 @@ struct XorrisO { /* the global context of xorriso */
int drives_exclusive; /* burn_preset_device_open() param exclusive */
int early_stdio_test; /* For burn_allow_drive_role_4():
bit1= Test whether a stdio drive can be opened for
read-write resp. read-only resp. write only.
bit2= Classify files which cannot be opened at all
as role 0 : useless dummy.
bit3= Classify non-empty role 5 drives as
BURN_DISC_APPENDABLE with NWA after the
end of the file. It is nevertheless
possible to change this address by call
burn_write_opts_set_start_byte().
*/
int do_calm_drive; /* bit0= calm down drive after aquiring it */
char indev[SfileadrL];
@ -308,13 +284,10 @@ struct XorrisO { /* the global context of xorriso */
int speed; /* in libburn units : 1000 bytes/second , 0 = Max, -1 = Min */
int fs; /* fifo size in 2048 byte chunks : at most 1 GB */
int padding; /* number of bytes to add after ISO 9660 image */
int do_padding_by_libisofs; /* 0= by libburn , 1= by libisofs */
int alignment; /* if > 0 : output size alignment in 2048 byte blocks.
This is always done by libburn, i.e. attached
outside the image. Eventual inner alignment of
the image end happens first.
*/
int alignment; /* if > 0 : image size alignment in 2048 byt blocks */
/* <<< not sure whether to keep this after libisofs will have
learned to pad up MBR images to full MB */
int do_stream_recording; /* 0=no, 1=yes, 2=for data, not for dir
>=16 means yes with number as start LBA */
@ -354,12 +327,6 @@ struct XorrisO { /* the global context of xorriso */
else: unspecified type
1= MIPS Big Endian Volume Header
2= MIPS Little Endian Boot Block
3= SUN Disk Label for SUN SPARC
bit8-9= Only with System area type 0
Cylinder alignment mode
0 = auto (align if bit1)
1 = always align
2 = never align
*/
int patch_system_area; /* Bits as of system_area_options.
to be applied to the loaded system
@ -604,10 +571,6 @@ struct XorrisO { /* the global context of xorriso */
struct PermiteM *perm_stack; /* Temporarily altered dir access permissions */
/* bit0= update_merge active: mark all newly added nodes as visited+found
*/
int update_flags;
/* result (stdout, R: ) */
char result_line[10*SfileadrL];
int result_line_counter;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2011.04.14.073001"
#define Xorriso_timestamP "2011.01.16.200001"

View File

@ -19,7 +19,7 @@
*/
#define xorriso_libisoburn_req_major 1
#define xorriso_libisoburn_req_minor 0
#define xorriso_libisoburn_req_micro 8
#define xorriso_libisoburn_req_micro 0
struct SpotlisT; /* List of intervals with different read qualities */
@ -112,9 +112,6 @@ int Xorriso_blank_as_needed(struct XorrisO *xorriso, int flag);
bit1= remove empty directory: rmdir
bit2= recursion: do not reassure in mode 2 "tree"
bit3= this is for overwriting and not for plain removal
bit4= count deleted files in xorriso->pacifier_count
bit5= with bit0 only remove directory content, not the directory
bit6= do not delete eventually existing node from di_array
@return <=0 = error
1 = removed simple node
2 = removed directory or tree
@ -123,7 +120,6 @@ int Xorriso_blank_as_needed(struct XorrisO *xorriso, int flag);
int Xorriso_rmi(struct XorrisO *xorriso, void *boss_iter, off_t boss_mem,
char *path, int flag);
/* @param flag bit0= long format
bit1= do not print count of nodes
bit2= du format
@ -560,15 +556,5 @@ int Xorriso_jigdo_interpreter(struct XorrisO *xorriso, char *aspect, char *arg,
int Xorriso_estimate_file_size(struct XorrisO *xorriso, struct FindjoB *job,
char *basename, mode_t st_mode, off_t st_size, int flag);
int Xorriso_clone_tree(struct XorrisO *xorriso, void *boss_iter,
char *origin, char *dest, int flag);
int Xorriso_clone_under(struct XorrisO *xorriso, char *origin, char *dest,
int flag);
int Xorriso_mark_update_merge(struct XorrisO *xorriso, char *path,
void *node, int flag);
#endif /* Xorrisoburn_includeD */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff