Compare commits

...

20 Commits

Author SHA1 Message Date
ba767eb4bf Release is ready 2008-06-02 18:06:24 +00:00
442bc1c49d Documented changes and release timestamp 2008-06-02 09:47:56 +00:00
b5292e6ade Version leap to 0.1.8 2008-06-02 09:45:56 +00:00
cc38321820 Release branch prepared! 2008-06-01 19:35:34 +00:00
5aab9a006a Switched requirements to libisofs-0.6.6 2008-06-01 14:51:29 +00:00
e13615cff6 standalone version switch to libisofs-0.6.6 2008-06-01 14:50:21 +00:00
dc2664f753 Reacted on harmless compiler warning 2008-06-01 13:42:56 +00:00
27f8339527 Implemented oncatenation of split files during -cpx 2008-05-31 17:40:18 +00:00
b9f01ef512 New option -stream_recording 2008-05-27 20:14:51 +00:00
106ab1fb0c Improved access permission restauration by osirrox 2008-05-26 18:11:51 +00:00
8ad34a7c76 standalone version switch to libisofs-0.6.5 2008-05-26 18:09:02 +00:00
e69cd236df Some polishing with -cpx 2008-05-24 17:00:47 +00:00
751530f44e Bug fix: modifying to overwriteable target yielded unmountable results 2008-05-24 09:28:35 +00:00
6ba4b25045 Enabled osirrox of more file types, curbed with device files 2008-05-24 09:25:26 +00:00
69fd5ff008 New options -osirrox and -cpx 2008-05-22 21:08:26 +00:00
c410093711 Removed outdated code branch 2008-05-22 19:27:13 +00:00
53f462b406 First experiments of osirrox ISO-to-disk copying 2008-05-22 19:25:59 +00:00
ad33b43f99 Making Xorriso_prescan_args() safe against misunderstandings 2008-05-20 07:51:37 +00:00
a2c7c523aa Version leap to 0.1.7, requiring libburn-0.4.8 now 2008-05-18 08:48:07 +00:00
de589419da Bug fix: -findi operated on nodes which ceased existence shortly before 2008-05-18 08:21:48 +00:00
17 changed files with 2302 additions and 505 deletions

23
README
View File

@ -4,6 +4,7 @@
libisoburn. By Vreixo Formoso <metalpain2002@yahoo.es>
and Thomas Schmitt <scdbackup@gmx.net>
Integrated sub project of libburnia-project.org.
http://files.libburnia-project.org/releases/libisoburn-0.1.8.pl00.tar.gz
Copyright (C) 2006-2008 Vreixo Formoso, Thomas Schmitt.
Provided under GPL version 2.
------------------------------------------------------------------------------
@ -25,18 +26,18 @@ By using this software you agree to the disclaimer at the end of this text:
Compilation, First Glimpse, Installation
Dynamic library and compile time header requirements for libisoburn-0.1.5 :
- libburn.so.4 , version libburn-0.4.4 or higher
- libisofs.so.6 , version libisofs-0.6.4 or higher
Dynamic library and compile time header requirements for libisoburn-0.1.8 :
- libburn.so.4 , version libburn-0.4.8 or higher
- libisofs.so.6 , version libisofs-0.6.6 or higher
libisoburn and xorriso will not start with libraries which are older than their
headers seen at compile time. So compile in the oldest possible installation
setup unless you have reason to enforce a newer bug fix level.
Obtain libisoburn-0.1.5.tar.gz, take it to a directory of your choice
Obtain libisoburn-0.1.8.pl00.tar.gz, take it to a directory of your choice
and do:
tar xzf libisoburn-0.1.5.tar.gz
cd libisoburn-0.1.5
tar xzf libisoburn-0.1.8.pl00.tar.gz
cd libisoburn-0.1.8
Within that directory execute:
@ -58,10 +59,10 @@ as well as
libisoburn includes a command line and dialog application named xorriso,
which offers a substantial part of libisoburn features to shell scripts and
users. Its file xorriso/README describes a standlone tarball as first
preference for xorriso installation.
The installation described above produces a dynamically linked xorriso binary
as described in chapter "libisoburn" at the end of that text.
users. Its file xorriso/README describes a standalone tarball as first
preference for statically linked xorriso installation.
The libisoburn installation described above produces a dynamically linked
xorriso binary depending on libburn.so, libisofs.so, libisoburn.so.
After installation documentation is available via
man xorriso
@ -103,7 +104,7 @@ on disk. It uses the normal POSIX filesystem calls, i.e. no libburnia stuff.
This program is not installed systemwide but stays in the installation
directory of the xorriso tarball as test/compare_file . Usually it is
run as -exec payload of a find command. It demands at least three arguments:
The path of the first file to compare, the prefix1 to be cut off from path
The path of the file to compare, the prefix1 to be cut off from path
and the prefix2 which gets prepended afterwards to obtain the path of the
second file to compare.
As further argument there can be -no_ctime which suppresses the comparison

View File

@ -1,4 +1,4 @@
AC_INIT([libisoburn], [0.1.5], [http://libburnia-project.org])
AC_INIT([libisoburn], [0.1.8], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -13,7 +13,7 @@ dnl /ISOBURN_.*_VERSION
dnl /LT_.*
dnl /LIB.*_REQUIRED
dnl The API version codes are now defined in libisoburn/libisoburn.h
dnl The API version codes are defined in libisoburn/libisoburn.h
dnl #define isoburn_header_version_*
dnl configure.ac only rules the libtool revision numbering about
dnl LT_CURREN, LT_AGE, LT_REVISION where SONAME becomes LT_CURRENT - LT_AGE
@ -21,7 +21,7 @@ dnl
dnl These three are only copies to provide libtool with unused LT_RELEASE
ISOBURN_MAJOR_VERSION=0
ISOBURN_MINOR_VERSION=1
ISOBURN_MICRO_VERSION=5
ISOBURN_MICRO_VERSION=8
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
AC_SUBST(ISOBURN_MAJOR_VERSION)
@ -33,15 +33,15 @@ dnl Libtool versioning
dnl Generate libisoburn.so.1.x.y
dnl SONAME will become LT_CURRENT - LT_AGE
dnl
dnl ts A80512
dnl ### This was the release version 0.1.4 = libisoburn.so.1.3.0
dnl This is the development version after stable release libisoburn.so.1.3.0
dnl LT_CURRENT++, LT_AGE++ have happened happened meanwhile.
dnl ts A80602
dnl This is the release version 0.1.8 = libisoburn.so.1.7.0
dnl ## This is the development version after above stable release
dnl ## LT_CURRENT++, LT_AGE++ have not happened happened yet.
dnl
dnl SONAME = 5 - 4 = 1 . Library name = libburn.so.1.4.0
dnl SONAME = 8 - 7 = 1 . Library name = libburn.so.1.7.0
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
LT_CURRENT=5
LT_AGE=4
LT_CURRENT=8
LT_AGE=7
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@ -99,8 +99,8 @@ AC_CHECK_HEADER(libburn/libburn.h)
AC_CHECK_HEADER(libisofs/libisofs.h)
dnl Check for proper library versions
LIBBURN_REQUIRED=0.4.7
LIBISOFS_REQUIRED=0.6.4
LIBBURN_REQUIRED=0.4.8
LIBISOFS_REQUIRED=0.6.6
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)

View File

@ -27,24 +27,24 @@
#include "isoburn.h"
/* Powers of 2 only ! Less than 16 makes not much sense. */
/* Cached reading of image tree data */
/* Multi tile: 32 * 64 kB */
/* The size of a single tile.
Powers of 2 only ! Less than 16 makes not much sense.
*/
#define Libisoburn_tile_blockS 32
/* Undef to get to older single tile version
/* The number of tiles in the cache
*/
#define Libisoburn_cache_tileS 32
/* Debugging only: This reports cache loads on stderr.
#define Libisoburn_read_cache_reporT 1
*/
/* Cached reading of image tree data */
#ifdef Libisoburn_cache_tileS
/* Multi tile: 32 * 64 kB */
struct isoburn_cache_tile {
char cache_data[Libisoburn_tile_blockS * 2048];
uint32_t cache_lba;
@ -234,139 +234,3 @@ static int ds_inc_age(struct isoburn_cached_drive *icd, int idx, int flag)
}
#else /* Libisoburn_cache_tileS */
/* Single tile 128 kB */
struct isoburn_cached_drive {
struct burn_drive *drive;
char cache_data[Libisoburn_tile_blockS * 2048];
uint32_t cache_lba;
uint32_t last_error_lba;
uint32_t last_aligned_error_lba;
int cache_hits;
};
/* Debugging only: This reports cache loads on stderr.
#define Libisoburn_read_cache_reporT 1
*/
int
ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
{
int ret;
struct burn_drive *d;
off_t count;
uint32_t aligned_lba;
char msg[80];
struct isoburn_cached_drive *icd;
if(src == NULL || buffer == NULL)
return -1;
icd = (struct isoburn_cached_drive *) src->data;
d = (struct burn_drive*) icd->drive;
aligned_lba= lba & ~(Libisoburn_tile_blockS - 1);
if(aligned_lba == icd->cache_lba && icd->cache_lba != 0xffffffff) {
(icd->cache_hits)++;
memcpy(buffer, icd->cache_data + (lba - aligned_lba) * 2048, 2048);
count= 2048;
return 1;
}
icd->cache_lba= 0xffffffff; /* invalidate cache */
if(icd->last_aligned_error_lba == aligned_lba) {
ret = 0;
} else {
ret = burn_read_data(d, (off_t) aligned_lba * (off_t) 2048,
(char *) icd->cache_data,
Libisoburn_tile_blockS * 2048, &count, 0);
}
if (ret <= 0 ) {
icd->last_aligned_error_lba = aligned_lba;
/* Read-ahead failure ? Try to read 2048 directly. */
if(icd->last_error_lba == lba)
ret = 0;
else
ret = burn_read_data(d, (off_t) lba * (off_t) 2048, (char *) buffer,
2048, &count, 0);
if (ret > 0)
return 1;
icd->last_error_lba = lba;
sprintf(msg, "ds_read_block(%lu) returns -1", (unsigned long) lba);
burn_msgs_submit(0x00060000, msg, 0, "DEBUG", NULL);
return -1;
}
#ifdef Libisoburn_read_cache_reporT
fprintf(stderr, "After %3d hits, new load from %8x , count= %d\n",
icd->cache_hits, aligned_lba, (int) count);
#endif
icd->cache_lba= aligned_lba;
icd->cache_hits= 1;
memcpy(buffer, icd->cache_data + (lba - aligned_lba) * 2048, 2048);
count= 2048;
return 1;
}
static int
ds_open(IsoDataSource *src)
{
/* nothing to do, device is always grabbed */
return 1;
}
static int
ds_close(IsoDataSource *src)
{
/* nothing to do, device is always grabbed */
return 1;
}
static void
ds_free_data(IsoDataSource *src)
{
/* nothing to do */;
if(src->data != NULL)
free(src->data);
src->data= NULL;
}
IsoDataSource *
isoburn_data_source_new(struct burn_drive *d)
{
IsoDataSource *ret;
struct isoburn_cached_drive *icd= NULL;
if (d==NULL)
return NULL;
ret = malloc(sizeof(IsoDataSource));
icd = calloc(1,sizeof(struct isoburn_cached_drive));
if (ret == NULL || icd == NULL)
return NULL;
ret->refcount = 1;
ret->read_block = ds_read_block;
ret->open = ds_open;
ret->close = ds_close;
ret->free_data = ds_free_data;
ret->data = icd;
icd->drive = d;
icd->cache_lba = 0xffffffff;
icd->cache_hits = 0;
icd->last_error_lba = 0xffffffff;
icd->last_aligned_error_lba = 0xffffffff;
return ret;
}
#endif /* ! Libisoburn_cache_tileS */

View File

@ -299,28 +299,40 @@ int isoburn_find_by_drive(struct isoburn **pt, struct burn_drive *d, int flag)
return(0);
}
static
int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
struct burn_disc **disc,
struct isoburn_imgen_opts *opts, int new_img)
{
struct burn_source *wsrc;
struct burn_session *session;
struct burn_track *track;
struct isoburn *o;
struct isoburn *in_o, *out_o;
IsoWriteOpts *wopts= NULL;
enum burn_disc_status state;
int ret, fifo_chunks;
int ret, fifo_chunks, lba, nwa;
ret= isoburn_find_emulator(&o, d, 0);
if(ret<0 || o==NULL)
ret= isoburn_find_emulator(&in_o, in_d, 0);
if(ret<0 || in_o==NULL)
{ret= -1; goto ex;}
o->wrote_well= 0; /* early end will be registered as failure */
ret= isoburn_find_emulator(&out_o, out_d, 0);
if(ret<0 || out_o==NULL)
{ret= -1; goto ex;}
/* early end will be registered as failure */
in_o->wrote_well= out_o->wrote_well= 0;
state = isoburn_disc_get_status(d);
if (state != BURN_DISC_BLANK && state != BURN_DISC_APPENDABLE
&& (state != BURN_DISC_FULL || ! new_img)) {
/* unsuitable status */
burn_msgs_submit(0x00060000, "Unsuitable media state", 0, "FAILURE", NULL);
state = isoburn_disc_get_status(in_d);
if (state != BURN_DISC_BLANK && state != BURN_DISC_APPENDABLE &&
state != BURN_DISC_FULL) {
burn_msgs_submit(0x00060000, "Unsuitable source media state",
0, "FAILURE", NULL);
{ret= -2; goto ex;}
}
state = isoburn_disc_get_status(out_d);
if (state != BURN_DISC_BLANK && state != BURN_DISC_APPENDABLE) {
burn_msgs_submit(0x00060000, "Unsuitable target media state",
0, "FAILURE", NULL);
{ret= -2; goto ex;}
}
@ -359,33 +371,26 @@ int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
iso_write_opts_set_output_charset(wopts, opts->output_charset);
iso_write_opts_set_fifo_size(wopts, fifo_chunks);
if (new_img) {
iso_write_opts_set_ms_block(wopts, 0);
opts->effective_lba= 0;
iso_write_opts_set_appendable(wopts, 0);
iso_write_opts_set_overwrite_buf(wopts, NULL);
} else {
int lba, nwa;
ret = isoburn_disc_track_lba_nwa(d, NULL, 0, &lba, &nwa);
if (ret != 1) {
burn_msgs_submit(0x00060000, "Cannot determine next writeable address", 0,
"FAILURE", NULL);
{ret= -3; goto ex;}
}
if (nwa == 0 && state == BURN_DISC_APPENDABLE) {
/* invalid nwa */
burn_msgs_submit(0x00060000,
"Encountered 0 as next writeable address of appendable",
0, "FAILURE", NULL);
{ret= -4; goto ex;}
}
iso_write_opts_set_ms_block(wopts, nwa);
opts->effective_lba= nwa;
iso_write_opts_set_appendable(wopts, 1);
iso_write_opts_set_overwrite_buf(wopts, o->target_iso_head);
}
ret = iso_image_create_burn_source(o->image, wopts, &wsrc);
ret = isoburn_disc_track_lba_nwa(out_d, NULL, 0, &lba, &nwa);
if (ret != 1) {
burn_msgs_submit(0x00060000, "Cannot determine next writeable address", 0,
"FAILURE", NULL);
{ret= -3; goto ex;}
}
if (nwa == 0 && state == BURN_DISC_APPENDABLE) {
burn_msgs_submit(0x00060000,
"Encountered 0 as next writeable address of appendable",
0, "FAILURE", NULL);
{ret= -4; goto ex;}
}
iso_write_opts_set_ms_block(wopts, nwa);
opts->effective_lba= nwa;
iso_write_opts_set_appendable(wopts, !new_img);
iso_write_opts_set_overwrite_buf(wopts,
nwa>0 ? out_o->target_iso_head : NULL);
ret = iso_image_create_burn_source(in_o->image, wopts, &wsrc);
if (ret < 0) {
isoburn_report_iso_error(ret, "Cannot create burn source", 0, "FAILURE", 0);
{ret= -1; goto ex;}
@ -393,20 +398,20 @@ int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
/* TODO check return values for failure. propertly clean-up on error */
o->iso_source= wsrc;
out_o->iso_source= wsrc;
*disc = burn_disc_create();
session = burn_session_create();
burn_disc_add_session(*disc, session, BURN_POS_END);
track = burn_track_create();
burn_track_set_source(track, o->iso_source);
burn_track_set_source(track, out_o->iso_source);
burn_session_add_track(session, track, BURN_POS_END);
/* give up local references */
burn_track_free(track);
burn_session_free(session);
o->wrote_well= -1; /* neutral */
in_o->wrote_well= out_o->wrote_well= -1; /* neutral */
ret= 1;
ex:
if(wopts!=NULL)
@ -414,22 +419,27 @@ ex:
return ret;
}
int isoburn_prepare_disc(struct burn_drive *d, struct burn_disc **disc,
struct isoburn_imgen_opts *opts)
{
return isoburn_prepare_disc_aux(d, disc, opts, 0);
return isoburn_prepare_disc_aux(d, d, disc, opts, 0);
}
int isoburn_prepare_new_image(struct burn_drive *d, struct burn_disc **disc,
struct isoburn_imgen_opts *opts,
struct burn_drive *out_drive)
{
int ret;
struct isoburn *in_o, *out_o;
ret= isoburn_prepare_disc_aux(d, disc, opts, 1);
ret= isoburn_prepare_disc_aux(d, out_drive, disc, opts, 1);
if (ret<=0)
return ret;
#ifdef NIX
struct isoburn *in_o, *out_o;
/* Hand over source reference for optional fifo status inquiry */
if(out_drive==NULL)
return 1;
@ -443,6 +453,8 @@ int isoburn_prepare_new_image(struct burn_drive *d, struct burn_disc **disc,
burn_source_free(out_o->iso_source);
out_o->iso_source= in_o->iso_source;
in_o->iso_source= NULL;
#endif /* NIX */
return 1;
}

View File

@ -188,7 +188,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libisofs_req_major 0
#define isoburn_libisofs_req_minor 6
#define isoburn_libisofs_req_micro 4
#define isoburn_libisofs_req_micro 6
/** The minimum version of libburn to be used with this version of libisoburn
at compile time.
@ -196,7 +196,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libburn_req_major 0
#define isoburn_libburn_req_minor 4
#define isoburn_libburn_req_micro 7
#define isoburn_libburn_req_micro 8
/** The minimum version of libisofs to be used with this version of libisoburn
@ -232,7 +232,7 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
*/
#define isoburn_header_version_major 0
#define isoburn_header_version_minor 1
#define isoburn_header_version_micro 5
#define isoburn_header_version_micro 8
/** Note:
Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time.

View File

@ -4,7 +4,7 @@
xorriso. By Thomas Schmitt <scdbackup@gmx.net>
Integrated sub project of libburnia-project.org but also published via:
http://scdbackup.sourceforge.net/xorriso_eng.html
http://scdbackup.sourceforge.net/xorriso-0.1.5.tar.gz
http://scdbackup.sourceforge.net/xorriso-0.1.8.pl00.tar.gz
Copyright (C) 2006-2008 Thomas Schmitt, provided under GPL version 2.
------------------------------------------------------------------------------
@ -35,10 +35,10 @@ The tarball contains anything that is needed except libc and libpthread.
libreadline and the readline-dev headers will make dialog mode more convenient,
but are not mandatory.
Obtain xorriso-0.1.5.tar.gz, take it to a directory of your choice and do:
Obtain xorriso-0.1.8.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf xorriso-0.1.5.tar.gz
cd xorriso-0.1.5
tar xzf xorriso-0.1.8.pl00.tar.gz
cd xorriso-0.1.8
Within that directory execute:
@ -160,9 +160,9 @@ and a matching dynamically linked xorriso binary.
This binary is leaner but depends on properly installed libraries of suitable
revision.
Dynamic library and compile time header requirements for libisoburn-0.1.5 :
- libburn.so.4 , version libburn-0.4.4 or higher
- libisofs.so.6 , version libisofs-0.6.4 or higher
Dynamic library and compile time header requirements for libisoburn-0.1.8 :
- libburn.so.4 , version libburn-0.4.8 or higher
- libisofs.so.6 , version libisofs-0.6.6 or higher
libisoburn and xorriso will not start with libraries which are older than their
headers seen at compile time. So compile in the oldest possible installation
setup unless you have reason to enforce a newer bug fix level.

View File

@ -2346,7 +2346,7 @@ xorriso/xorriso.c
xorriso/xorriso.1
New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m
4 May 2008 []
4 May 2008 [1727]
xorriso/xorriso_eng.html
xorriso/changelog.txt
Mentioned new options
@ -2356,8 +2356,399 @@ Mentioned new options
* New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m
2008.05.05.210317 [1728]
xorriso/xorrisoburn.c
After formatting DVD-RW write 128 MB and close track to end Intermediate State
2008.05.06.084439 [1731]
xorriso/xorrisoburn.c
Calling isoburn_cancel_prepared_write() after failed isoburn_disc_write()
2008.05.06.144606 [1732]
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
libisoburn/burn_wrap.c
Experiment for TOC on overwriteables: Keep a target_head copy of session #1
2008.05.07.071427 [1737]
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/burn_wrap.c
libisoburn/isofs_wrap.c
Removed some outdated ifdef cases
2008.05.07.175508 [1738]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/burn_wrap.c
Reading emulated toc info from overwriteable media, new API isoburn_toc_*()
2008.05.07.175640 [1739]
xorriso/xorrisoburn.c
Making use of new isoburn_toc_* functions
2008.05.07.214343 [1740]
libisoburn/libisoburn.h
libisoburn/burn_wrap.c
New API function isoburn_read_iso_head()
2008.05.07.214442 [1741]
xorriso/xorrisoburn.c
New format with -toc is more concise and shows volume id
2008.05.08.141054 [1742]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/burn_wrap.c
Try to read header chain from alleged -ROM media (e.g. DVD+RW in -ROM drive)
2008.05.08.141920 [1743]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.1
xorriso/xorriso_eng.html
New TOC layout with volume id and sbsector=, new option -rom_toc_scan
8 May 2008 [1744]
xorriso/xorriso_eng.html
Mentioned new features
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.08.141920
* Emulated TOC on overwriteable media
* New TOC layout with volume id and sbsector=
* New option -rom_toc_scan
2008.05.08.185350 [1745]
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/burn_wrap.c
Adjusted reply of isoburn_disc_get_msc1() to eventual -rom_toc_scan result
8 May 2008 [1746]
xorriso/xorriso.1
Updated man page examples
8 May 2008 [1747]
xorriso/xorriso.1
Updated man page examples
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.08.205551
9 May 2008 [1751]
xorriso/xorriso_eng.html
Updated details in web page
2008.05.09.205517 [1752]
libisoburn/isofs_wrap.c
Trying to better handle non ISO images on -indev
10 May 2008 [1761]
xorriso/configure_ac.txt
Adapted xorriso standalone production to new libburn cycle 0.4.7
10 May 2008 [1762]
xorriso/xorriso.1
xorriso/xorriso_eng.html
Minor change in -update_r example
2008.05.10.194336 [1763]
xorriso/xorrisoburn.h
xorriso/xorrisoburn.c
xorriso/xorriso.c
Better behavior of update_r with no image present
2008.05.12.080812 [1765]
configure.ac
libisoburn/libisoburn.h
Switched requirements to libburn-0.4.6
2008.05.12.081331 [1766]
libisoburn/libisoburn.h
libisoburn/burn_wrap.c
New API call isoburn_set_msc1()
2008.05.12.082733 [1767]
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.1
xorriso/xorriso_eng.html
New option -load session|track|sbsector|volid
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.12.082733
* New option -load session|track|sbsector|volid
* Now depending on libburn-0.4.6
2008.05.12.193341 [1768]
libisoburn/burn_wrap.c
Reacted on harmless compiler warning
2008.05.12.193642 [1769]
xorriso/xorriso.c
xorriso/xorrisoburn.h
xorriso/xorrisoburn.c
xorriso/xorriso.1
New -blank and -format modes as_needed
2008.05.13.115901 [1770]
xorriso/xorriso.h
xorriso/xorriso.c
xorriso/xorrisoburn.h
xorriso/xorrisoburn.c
xorriso/xorriso.1
xorriso/xorriso_eng.html
New option -list_formats
2008.05.13.135251 [1771]
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
libisoburn/burn_wrap.c
xorriso/xorrisoburn.c
xorriso/xorriso.1
Corrected strange behavior with non-ISO images on overwriteable media
2008.05.13.153837 [1772]
xorriso/xorrisoburn.c
Prepared Xorriso_get_profile() for potential call without flag bit1
2008.05.13.180624 [1773]
xorriso/xorrisoburn.c
Handled -list_format with non MMC drives
2008.05.13.180912 [1774]
xorriso/xorriso.h
xorriso/xorriso.c
xorriso/xorriso.1
Eat up leading dashes with command options, convert inner dashes to underscores
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.13.180912
* New -blank and -format modes as_needed
* New option -list_formats
2008.05.14.114548 [1775]
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.1
New -format types by_index and fast_by_index
2008.05.14.173201 [1779]
configure.ac
libisoburn/libisoburn.h
Required libburn version is now 0.4.7 (because of DVD-RAM BD-RE bug fix)
2008.05.14.173430 [1780]
xorriso/xorrisoburn.c
Automatic fast format on attempt to write to unformatted DVD-RAM or BD-RE
2008.05.14.174846 [1781]
xorriso/xorriso_private.h
Uploaded forgotten enhancements
2008.05.15.092028 [1783]
xorriso/xorriso.c
Enabled a pacifier for compare_r
2008.05.15.150041 [1784]
xorriso/xorriso.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.1
xorriso/xorriso_eng.html
New options -map and -map_single
2008.05.15.192118 [1785]
xorriso/xorriso.c
Bug fix: -update_r and others did not work properly with relative paths
------------------------------------ cycle - xorriso-0.1.5 -
------------------------------------ cycle - xorriso-0.1.5 -
* New options -map and -map_single
* Bug fix: -update_r and others did not work properly with relative paths
2008.05.17.162753 [1794]
xorriso/xorriso.c
xorriso/xorrisoburn.c
Corrected ugly message with -update_r and root directory
2008.05.17.170001 [1796]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README
xorriso/xorriso_timestamp.h
xorriso/xorriso_private.h
xorriso/xorrisoburn.h
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
Version leap to 0.1.6, requiring libburn-0.4.8 now
2008.05.18.070001 [1797]
xorriso/xorriso.c
xorriso/xorrisoburn.c
Bug fix: -findi operated on nodes which ceased existence shortly before
18 May 2008 [1799]
xorriso/changelog.txt
Documented changes and release timestamp
---------------------------------- release - xorriso-0.1.6 - 2008.05.18.070001
* New option -error_behavior with a first occasion 'image_loading'
* New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m
* Emulated TOC on overwriteable media
* New TOC layout with volume id and sbsector=
* New option -rom_toc_scan
* New option -load session|track|sbsector|volid
* Now depending on libburn-0.4.8
* New -blank and -format modes as_needed
* New option -list_formats
* New options -map and -map_single
* Bug fix: -update_r and others did not work properly with relative paths
* Bug fix: -findi operated on nodes which ceased existence shortly before
2008.05.18.082208 [1798]
xorriso/xorriso.c
xorriso/xorrisoburn.c
Bug fix: -findi operated on nodes which ceased existence shortly before
2008.05.18.084729 [1800]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README
xorriso/xorriso_timestamp.h
xorriso/xorriso_private.h
xorriso/xorrisoburn.h
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/changelog.txt
Version leap to 0.1.7, requiring libburn-0.4.8 now
------------------------------------ cycle - xorriso-0.1.7 - 2008.05.18.084729
2008.05.20.075142 [1804]
xorriso/xorriso.c
Making Xorriso_prescan_args() safe against misunderstandings
2008.05.22.192618 [1808]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.h
xorriso/xorrisoburn.c
First experiments of osirrox ISO-to-disk copying
2008.05.22.192737 [1809]
libisoburn/data_source.c
Removed outdated code branch
2008.05.22.210835 [1810]
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.1
New options -osirrox and -cpx
2008.05.24.092546 [1812]
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.1
Enabled osirrox of more file types, curbed with device files
2008.05.24.092853 [1813]
libisoburn/isoburn.c
Bug fix: modifying to overwriteable target yielded unmountable results
------------------------------------ cycle - xorriso-0.1.7 - 2008.05.24.092853
* Bug fix: Modifying to overwriteable target yielded unmountable results
* New options -osirrox and -cpx
2008.05.24.170109 [1814]
xorriso/xorriso.c
xorriso/xorrisoburn.c
Some polishing with -cpx
26 May 2008 [1815]
xorriso/configure_ac.txt
standalone version switch to libisofs-0.6.5
2008.05.26.181210 [1816]
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
Improved access permission restauration by osirrox
2008.05.27.201513 [1817]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.1
xorriso/xorriso_eng.html
New option -stream_recording
2008.05.31.174045 [1819]
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.h
xorriso/xorrisoburn.c
xorriso/xorriso.1
Implemented concatenation of split files during -cpx
------------------------------------ cycle - xorriso-0.1.7 - 2008.05.31.174045
* New option -stream_recording
2008.06.01.134322 [1820]
xorriso/xorrisoburn.c
Reacted on harmless compiler warning
2008.06.01.145038 [1821]
xorriso/configure_ac.txt
standalone version switch to libisofs-0.6.6
2008.06.01.145155 [1822]
configure.ac
libisoburn/libisoburn.h
Switched requirements to libisofs-0.6.6
------------------------------------ cycle - xorriso-0.1.7 - 2008.06.01.145155
* Bug fix: major,minor numbers of device files appeared as 0,1 in next session
2008.06.02.070301 [1824]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README
xorriso/xorriso_timestamp.h
xorriso/xorriso_private.h
xorriso/xorrisoburn.h
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
Version leap to 0.1.8
2 Jun 2008 []
xorriso/changelog.txt
Document changes and release timestamp
---------------------------------- release - xorriso-0.1.8 - 2008.06.02.070301
* Bug fix: Modifying to overwriteable target yielded unmountable results
* Bug fix: major,minor numbers of device files appeared as 0,1 in next session
* New option -stream_recording for full speed with DVD-RAM and BD-RE
* New options -osirrox and -cpx allow to extract single files from ISO image
------------------------------------ cycle - xorriso-0.1.9 -
------------------------------------ cycle - xorriso-0.1.9 -
===============================================================================
@ -2366,25 +2757,14 @@ Mentioned new options
------------------------------------------------- bugs
- update_r with no media in drive issues messages about changes updated
------------------------------------------------- important
- pacifier for -compare_r : try read pacifier without newline
------------------------------------------------- development
- evaluate possibility of emulated session table on overwriteables
- option -map disk_path iso_rr_path for no-fuzz file mapping
- mkisofs,cdrecord multi session
- -restore
??? -compare_l -update_l /disk_path_start iso_rr_path_start path[s] --
??? backup area shaping with -yes -not for -compare_r and -update_r ?
- Make use of iso_tree_add_new_node() in Xorriso_tree_graft_node()
> Relative addressing and pattern matching :
@ -2392,6 +2772,11 @@ Mentioned new options
cd /u/FERTIG
lsd nonexist/..
- perform any long lasting operation in separate threads while
the main thread cares for user and message queues.
- Introduce an interrupt key for dialog
- regularly do valgrind check for memory leaks
- ??? http://scan.coverity.com/faq.html
@ -2410,13 +2795,33 @@ Mentioned new options
> Make transactional the tree deletions meant for replacing
- Introduce an interrupt key for dialog
-------------------------------------------- jump to libburn 0.4.4
------------------------------------------------- libisofs wishes
- make use of burn_sev_to_text() in libisoburn and xorriso
------ problem fixes :
- If iso_msgs_submit() : use it in isoburn_report_iso_error()
- Error code for libisoburn data source read errors.
- #define ISO_ERR_PRIO(e) ((e & 0x00700000) << 8)
(rather than 0x00F00000, see ticket 135)
------ feature enhancements :
- Data files >= 4 GiB.
- A repeatable shell command as origin ("disk_file")
of a regular file in the ISO image.
- Image checksum tag in the last data blocks of an image.
A data file entry should point to that block.
------ extended attribute stunts: Not visible for mount but for libisofs
- file checksums
- ACLs
- man attr(5) extended attributes
===============================================================================

View File

@ -1,4 +1,4 @@
AC_INIT([xorriso], [0.1.5], [http://libburnia-project.org])
AC_INIT([xorriso], [0.1.8], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -9,14 +9,14 @@ AM_INIT_AUTOMAKE([subdir-objects])
BURN_MAJOR_VERSION=0
BURN_MINOR_VERSION=4
BURN_MICRO_VERSION=7
BURN_MICRO_VERSION=9
AC_SUBST(BURN_MAJOR_VERSION)
AC_SUBST(BURN_MINOR_VERSION)
AC_SUBST(BURN_MICRO_VERSION)
LIBISOFS_MAJOR_VERSION=0
LIBISOFS_MINOR_VERSION=6
LIBISOFS_MICRO_VERSION=4
LIBISOFS_MICRO_VERSION=6
AC_SUBST(LIBISOFS_MAJOR_VERSION)
AC_SUBST(LIBISOFS_MINOR_VERSION)
AC_SUBST(LIBISOFS_MICRO_VERSION)

View File

@ -25,11 +25,11 @@
current_dir=$(pwd)
lone_dir="$current_dir"/"xorriso-standalone"
xorriso_rev=0.1.5
xorriso_rev=0.1.8
# For unstable uploads:
xorriso_pl=""
# xorriso_pl=""
# For stable releases:
# xorriso_pl=".pl00"
xorriso_pl=".pl00"
with_bootstrap_tarball=1

View File

@ -1202,8 +1202,15 @@ MMC drives usually activate their own idea of speed and take
the speed value given by the burn program only as upper limit
for their own decision.
.TP
\fB\-stream_recording\fR "on"|"off"
Setting "on" tries to circumvent the management of defects on DVD-RAM and
DVD+RW. Defect management keeps partly damaged media usable. But it reduces
write speed to half nominal speed even if the media is in perfect shape.
For the case of flawless media, one may use -stream_recording "on" to get
full speed.
.TP
\fB\-dummy\fR "on"|"off"
If "on" simulate burning or refuse with FAILURE event if
If "on" then simulate burning or refuse with FAILURE event if
no simulation is possible, do neither blank nor format.
.TP
\fB-fs\fR number["k"|"m"]
@ -1589,6 +1596,48 @@ Like -compare but working recursively. I.e. all file objects below both
addresses get compared whether they have counterparts below the other address
and whether both counterparts match.
.TP
.B osirrox restore options:
.PP
Normally xorriso only writes to disk files which were given as stdio:
pseudo-drives or as log files.
But its alter ego, osirrox, is able to extract file objects
from ISO images and to create, overwrite, or delete file objects on disk.
.TP
\fB\-osirrox\fR ["on"|"device_files"|"off"][:"concat_split_on"|"concat_split_off"]
Setting "off" disables disk filesystem manipulations. This is the default
unless the program was started with leafname "osirrox". Elsewise
the capability to restore files can be enabled explicitly by -osirrox "on".
.br
To enable restoring of special files by "device_files" is potentially
dangerous.
The meaning of the number st_rdev (see man 2 stat) depends much on the
operating system. Best is to restore device files only to the same system
from where they were copied. If not enabled, device files in the ISO image
are ignored during restore operations.
.br
Due to a bug of previous versions, device files from previous sessions might
have been altered to major=0, minor=1. So this combination does not get
restored.
.br
"concat_split_on" is default. It enables restoring of split file directories
as data files if the directory contains a complete collection of -cut_out
part files. With "concat_split_off" such directories are handled as any
other ISO image directory.
.TP
\fB\-cpx\fR iso_rr_path [***] disk_path
Extract single leaf file objects from the ISO image and store them under
the address given by disk_path. If more then one iso_rr_path is given then
disk_path must be a directory or non-existent. In the latter case it gets
created. The extracted files get installed in it with the same leafnames.
.br
Missing directory components in disk_path will get created, if possible.
Disk file exclusions are in effect. If this is undesired then perform
-not_mgt "off" first.
.br
Directories are allowed as iso_rr_path only with -osirrox "concat_split_on"
and only if they actually represent a complete collection of -cut_out split
file parts.
.TP
.B Command compatibility emulations:
.PP
Writing of ISO 9660 on CD is traditionally done by program mkisofs

File diff suppressed because it is too large Load Diff

View File

@ -233,6 +233,10 @@ int Xorriso_option_compare(struct XorrisO *xorriso, char *disk_path,
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -cpx */
int Xorriso_option_cpx(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -cut_out */
int Xorriso_option_cut_out(struct XorrisO *xorriso, char *disk_path,
char *start, char *count, char *iso_rr_path, int flag);
@ -372,6 +376,9 @@ int Xorriso_option_not_paths(struct XorrisO *xorriso, int argc, char **argv,
int Xorriso_option_options_from_file(struct XorrisO *xorriso, char *adr,
int flag);
/* Option -osirrox "on"|"off" */
int Xorriso_option_osirrox(struct XorrisO *xorriso, char *mode, int flag);
/* Option -overwrite "on"|"nondir"|"off" */
int Xorriso_option_overwrite(struct XorrisO *xorriso, char *mode, int flag);
@ -458,6 +465,10 @@ int Xorriso_option_status(struct XorrisO *xorriso, char *mode, int flag);
int Xorriso_option_status_history_max(struct XorrisO *xorriso, int num1,
int flag);
/* Option -stream_recording */
int Xorriso_option_stream_recording(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -tell_media_space */
int Xorriso_option_tell_media_space(struct XorrisO *xorriso, int flag);

View File

@ -2,7 +2,7 @@
<HEAD>
<META NAME="description" CONTENT="xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions">
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, linux, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R/DL, scdbackup">
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, linux, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, scdbackup">
<META NAME="robots" CONTENT="follow">
<TITLE>xorriso homepage english</TITLE>
</HEAD>
@ -33,10 +33,10 @@ optical media or to filesystem objects.
<P>
<H2>Hardware requirements:</H2>
A CD/DVD recorder suitable for
A CD/DVD/BD recorder suitable for
<A HREF="http://libburnia-project.org">http://libburnia-project.org</A> <BR>
(SCSI , ATA , USB , or SATA writers compliant to standard MMC-3 for CD
and to MMC-5 for DVD).
and to MMC-5 for DVD or BD).
<BR>
</P>
@ -58,14 +58,14 @@ and to MMC-5 for DVD).
GPL software included:<BR>
</H2>
<DL>
<DT>libburn-0.4.5</DT>
<DD>reads and writes data from and to CD and DVD.</DD>
<DT>libburn-0.4.9</DT>
<DD>reads and writes data from and to CD, DVD, BD-RE.</DD>
<DD>(founded by Derek Foreman and Ben Jansens,
furthered since August 2006 by team of libburnia-project.org)</DD>
<DT>libisofs-0.6.4</DT>
<DT>libisofs-0.6.6</DT>
<DD>operates ISO 9660 images.</DD>
<DD>(By Vreixo Formoso and Mario Danic from team of libburnia-project.org)</DD>
<DT>libisoburn-0.1.4</DT>
<DT>libisoburn-0.1.8</DT>
<DD>coordinates libburn and libisofs, emulates multi-session where needed.</DD>
<DD>(By Vreixo Formoso and Thomas Schmitt
from team of libburnia-project.org)</DD>
@ -86,7 +86,7 @@ For ports to other usable systems <A HREF="#contact">contact us</A>.
<H2>Special features:</H2>
<UL>
<LI>
ISO 9660 formatter and burner for CD or DVD are fixely integrated.
ISO 9660 formatter and burner for CD, DVD, BD-RE are fixely integrated.
</LI>
<LI>
Operates on an existing ISO image or creates a new one.
@ -112,10 +112,14 @@ Can write result as add-on session to appendable multi-session media,
to overwriteable media, to regular files, and to block devices.
</LI>
<LI>
Scans for optical drives, blanks re-useable optical media.
Can copy single files from ISO image to disk filesystem.
</LI>
<LI>
Suitable for: CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R/DL, DVD+RW, DVD-RAM.
Scans for optical drives, blanks re-useable optical media, formats media.
</LI>
<LI>
Suitable for:
CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM, BD-RE.
</LI>
<LI>
Reads its instructions from command line arguments, dialog, and batch files.
@ -151,8 +155,9 @@ may accept pathspecs of form target=source as known from program mkisofs.</DT>
<DT>Get info about a particular drive and loaded media:</DT>
<DD>$<KBD>&nbsp;xorriso -indev /dev/sr0 -du / -- -toc 2>&amp;1 | less</KBD></DD>
<DT>Make re-usable media writable again, delete any ISO 9660 image:</DT>
<DD>$<KBD>&nbsp;xorriso -outdev /dev/sr0 -blank fast -eject all</KBD></DD>
<DT>Make re-usable media writable again, delete any ISO 9660 image,
eventually prepare yet unused BD-RE:</DT>
<DD>$<KBD>&nbsp;xorriso -outdev /dev/sr0 -blank as_needed -eject all</KBD></DD>
<DT>
<HR>
@ -174,17 +179,17 @@ adjust permissions to make it publicly read-only,
write it to media and immediately eject media without
previously reloading the written image.
</DT>
<DD>$<KBD>&nbsp;xorriso -outdev /dev/sr0 -blank fast -pathspecs on \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-add /sounds=/home/me/sounds \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
/pictures=/home/me/pictures -- \</KBD></DD>
<DD>$<KBD>&nbsp;cd /home/me</KBD></DD>
<DD>$<KBD>&nbsp;xorriso -outdev /dev/sr0 -blank as_needed \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-map /home/me/sounds /sounds \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-map /home/me/pictures /pictures \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-rm_r /sounds/indecent '/pictures/*private*' -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-add /pictures/private/horses=/home/me/pictures/private/horses -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-cd / \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-add pictures/private/horses* -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-chmod_r a+r,a-w / -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-find / -type d -exec chmod a+x -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-volid SOUNDS_PICS_2008_01_16 \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-commit_eject all</KBD></DD>
<DT>
<HR>
</DT>
@ -195,15 +200,14 @@ rename /pictures/private/horses,
add new directory trees /sounds and /movies,
disallow any access for group and others.
Finally write as additional session to media and eject:</DT>
<DD>$<KBD>&nbsp;xorriso -dev /dev/sr0 -pathspecs on \</KBD></DD>
<DD>$<KBD>&nbsp;xorriso -dev /dev/sr0 \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-rm_r /sounds -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-mv /pictures/private/horses /horse_show -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-add /sounds=/home/me/prepared_for_dvd/sounds_dummy \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /movies=/home/me/prepared_for_dvd/movies -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-map /home/me/prepared_for_dvd/sounds_dummy /sounds \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-map /home/me/prepared_for_dvd/movies /movies \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-chmod_r go-rwx / -- \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-volid SOUNDS_PICS_2008_01_17 \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;-commit_eject all</KBD></DD>
<DT>
<HR>
</DT>
@ -230,9 +234,11 @@ run. It will write eventually pending changes to media, if that has not
already been done by a previous -commit.</DT>
<DD>$<KBD>&nbsp;xorriso -dialog on</KBD></DD>
<DD><KBD>enter option and arguments :</KBD></DD>
<DD><KBD><B>-dev /dev/sr0 -pathspecs on</B></KBD></DD>
<DD><KBD><B>-dev /dev/sr0</B></KBD></DD>
<DD><KBD>enter option and arguments :</KBD></DD>
<DD><KBD><B>-add /sounds=/home/me/prepared_for_dvd/sounds_dummy /movies=/home/me/prepared_for_dvd/movies</B></KBD></DD>
<DD><KBD><B>-map /home/me/prepared_for_dvd/sounds_dummy /sounds</B></KBD></DD>
<DD><KBD>enter option and arguments :</KBD></DD>
<DD><KBD><B>-map /home/me/prepared_for_dvd/movies /movies</B></KBD></DD>
<DD>Available navigation commands: -cd, -ls, -du, -find</DD>
<DD><KBD>enter option and arguments :</KBD></DD>
<DD><KBD><B>-commit</B></KBD></DD>
@ -244,27 +250,20 @@ already been done by a previous -commit.</DT>
<HR>
</DT>
<DT>The following command can be run on blank media to create a complete
<DT>The following command can be run on blank media to create a
copy of the mentioned disk directory trees, and it can be run on appendable
media to perform a minimal set of change operations which update the
old ISO copies to match the new disk trees. Older states can be retrieved
by help of mount option "session=" from CD-R[W], by help of "sbsector="
from DVD-R[W] and DVD+R.
So this constitutes true incremental backup.
On overwriteable media only the newest state is accessible.
<!--
old ISO copies to match the new disk trees.
Older states can be retrieved by help of mount option "session=" from CD-R[W],
by help of "sbsector=" from other media.
So this constitutes true incremental backup.
-->
<BR>
The copies will be complete, except all file names ending
with ".o" or ".swp" which are excluded by options -not_leaf.
</DT>
<DD>$<KBD>&nbsp;xorriso -dev /dev/sr0 \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \</KBD></DD>
<!--
<DD><KBD>&nbsp;&nbsp; -not_leaf '*.o' -not_leaf '*.swp' \</KBD></DD>
-->
<DD><KBD>&nbsp;&nbsp; -update_r /home/thomas/open_source_projects /open_source_projects \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -update_r /home/thomas/personal_mail /personal_mail \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -commit -toc -eject all</KBD></DD>
@ -282,6 +281,17 @@ output will be redirected to stderr in this case.</DT>
<HR>
</DT>
<DT>Enable reverse operation of xorriso and copy some single files to disk:
<DD>$<KBD>&nbsp;xorriso -indev /dev/sr0 \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -osirrox on \</KBD></DD>
<DD><KBD>&nbsp;&nbsp; -cpx /pictures/private/horses*/*buttercup* \</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /home/her/buttercup_dir \</KBD>
</DD>
<DT>
<HR>
</DT>
<DT>Get overview of the options:</DT>
<DD>$<KBD>&nbsp;<A HREF="xorriso_help">xorriso -help</A></KBD></DD>
@ -291,7 +301,8 @@ output will be redirected to stderr in this case.</DT>
</DL>
Testers wanted who are willing to risk some double layer DVD media.
Testers wanted who are willing to risk some double layer DVD media or
are interested in using BD-R media.
</P>
@ -300,8 +311,8 @@ Testers wanted who are willing to risk some double layer DVD media.
<P>
<DL>
<DT><H3>Download as source code (see README):</H3></DT>
<DD><A HREF="xorriso-0.1.4.pl00.tar.gz">xorriso-0.1.4.pl00.tar.gz</A>
(955 KB).
<DD><A HREF="xorriso-0.1.8.pl00.tar.gz">xorriso-0.1.8.pl00.tar.gz</A>
(990 KB).
</DD>
</DL>
</DD>
@ -325,20 +336,18 @@ an <A HREF="http://www.opensource.org/">Open Source</A> approved license</DD>
</P>
<HR>
<P>
Enhancements towards previous stable version xorriso-0.1.2.pl00:
Bug fixes towards xorriso-0.1.6.pl00:
<UL>
<LI>Coordination of -cut_out, -compare and -update</LI>
<LI>New option -split_size, automated splitting of oversized files</LI>
<LI>Improved performance with reading directory trees</LI>
<LI>New option -session_log</LI>
<LI>Dynamically linkable with release version 0.6.4 of libisofs</LI>
<LI>-indev -outdev modifying to overwriteable target yielded unmountable results</LI>
<LI>Major,minor numbers of device files appeared as 0,1 in next session</LI>
</UL>
Bug fixes towards xorriso-0.1.2.pl00:
</P>
<P>
Enhancements towards previous stable version xorriso-0.1.6.pl00:
<UL>
<LI>-as mkisofs -no-pad was misspelled -nopad</LI>
<LI>Implicite directory attribute copying with -cut_out was wrong</LI>
<LI>New option -stream_recording for full speed with DVD-RAM and BD-RE</LI>
<LI>New options -osirrox and -cpx allow to extract single files from ISO image
</UL>
</P>
@ -346,31 +355,26 @@ Bug fixes towards xorriso-0.1.2.pl00:
<P>
<DL>
<DT><H3>Development snapshot, version 0.1.5 :</H3></DT>
<DD>Bug fixes towards xorriso-0.1.4.pl00:
<DT><H3>Development snapshot, version 0.1.9 :</H3></DT>
<DD>Bug fixes towards xorriso-0.1.8.pl00:
<UL>
<LI>- none yet -</LI>
<!-- <LI>- none yet -</LI> -->
<!--
-->
</UL>
</DD>
<DD>Enhancements towards stable version 0.1.4.pl00:
<DD>Enhancements towards stable version 0.1.8.pl00:
<UL>
<LI>Support for BD-RE</LI>
<LI>New options -map and -map_single</LI>
<LI>New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m</LI>
<LI>Emulated -toc on overwriteable media, new -toc layout with volume id</LI>
<LI>New option -rom_toc_scan for read-only drive problems</LI>
<LI>New option -load makes alternative sessions accessible</LI>
<LI>New option -error_behavior with a first occasion 'image_loading'</LI>
<LI>New -blank and -format option 'as_needed'</LI>
<LI>New option -list_formats</LI>
<!-- <LI>- none yet -</LI> -->
</LI>
<LI>- none yet -</LI>
<!--
-->
</UL>
</DD>
<DD>&nbsp;</DD>
<DD><A HREF="README_xorriso_devel">README 0.1.5</A>
<DD><A HREF="xorriso_help_devel">xorriso_0.1.5 -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.1.5)</A></DD>
<DD><A HREF="README_xorriso_devel">README 0.1.9</A>
<DD><A HREF="xorriso_help_devel">xorriso_0.1.9 -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.1.9)</A></DD>
<DD>&nbsp;</DD>
<DT>If you want to distribute development versions of xorriso, then use
this tarball which produces static linking between xorriso and the
@ -380,8 +384,8 @@ libburnia libraries.
installation see README)
</DD>
<DD>
<A HREF="xorriso-0.1.5.tar.gz">xorriso-0.1.5.tar.gz</A>
(980 KB).
<A HREF="xorriso-0.1.9.tar.gz">xorriso-0.1.9.tar.gz</A>
(990 KB).
</DD>
<DT>A dynamically linked development version of xorriso can be obtained
from repositories of
@ -403,13 +407,12 @@ versions for dynamic linking. Only release versions are safe for that.
</KBD></DD>
<DD>Install: <KBD><B>cd libisoburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
</KBD></DD>
<DD>Build of SVN versions needs <A HREF="http://sources.redhat.com/autobook/">
<DT>Build of SVN versions needs <A HREF="http://sources.redhat.com/autobook/">
autotools</A> of at least version 1.7 installed.
But after the run of <KBD>./bootstrap</KBD>, only
vanilla tools like make and gcc are needed.</DD>
</DD>
vanilla tools like make and gcc are needed.
</DT>
<DD>&nbsp;</DD>
</DL>
</P>

View File

@ -18,7 +18,7 @@
#ifndef Xorriso_private_includeD
#define Xorriso_private_includeD yes
#define Xorriso_program_versioN "0.1.5"
#define Xorriso_program_versioN "0.1.8"
/** The source code release timestamp */
#include "xorriso_timestamp.h"
@ -45,8 +45,9 @@
/* <<< ??? */
typedef int (*Cleanup_app_handler_T)();
struct LinkiteM;
struct ExclusionS;
struct LinkiteM; /* Trace of hops during symbolic link resolution */
struct ExclusionS; /* List of -not_* conditions */
struct PermiteM; /* Stack of temporarily altered access permissions */
/* maximum number of history lines to be reported with -status:long_history */
@ -150,6 +151,7 @@ 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_stream_recording;
int keep_boot_image;
int patch_isolinux_image;
@ -158,6 +160,11 @@ struct XorrisO { /* the global context of xorriso */
/* XORRISO options */
int allow_graft_points;
int allow_restore; /* 0= disallowed, 1=allowed, 2=device files allowed */
int do_concat_split; /* 1= restore complete split file directories as
regular files
*/
int dialog;
@ -257,6 +264,8 @@ struct XorrisO { /* the global context of xorriso */
int find_compare_result; /* 1=everything matches , 0=mismatch , -1=error */
struct PermiteM *perm_stack; /* Temporarily altered dir access permissions */
/* result (stdout, R: ) */
char result_line[5*SfileadrL];
int result_line_counter;
@ -386,6 +395,28 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso, void *boss_iter,
int Xorriso_path_is_excluded(struct XorrisO *xorriso, char *path, int flag);
/* @param flag bit0= long format
bit1= do not print count of nodes
bit2= du format
bit3= print directories as themselves (ls -d)
*/
int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
int filec, char **filev, off_t boss_mem, int flag);
/*
@param flag >>> bit0= remove whole sub tree: rm -r
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
@return <=0 = error
1 = removed leaf file object
2 = removed directory or tree
3 = did not remove on user revocation
*/
int Xorriso_rmx(struct XorrisO *xorriso, off_t boss_mem, char *path, int flag);
int Sfile_str(char target[SfileadrL], char *source, int flag);
@ -403,6 +434,26 @@ int Sfile_destroy_argv(int *argc, char ***argv, int flag);
*/
int Sfile_count_components(char *path, int flag);
/*
@param flag
bit0= return -1 if file is missing
bit1= return a hardlink with siblings as type 5
bit2= evaluate eventual link target rather than the link object itself
bit3= return a socket or a char device as types 7 or 8 rather than 0
@return
0=unknown
1=regular
2=directory
3=symbolic link
4=named pipe
5=multiple hardlink (with bit1)
6=block device
7=socket (with bit3)
8=character device (with bit3)
*/
int Sfile_type(char *filename, int flag);
char *Text_shellsafe(char *in_text, char *out_text, int flag);
@ -486,6 +537,42 @@ int Splitpart__parse(char *name, int *partno, int *total_parts,
int Splitpart__compose(char *adr, int partno, int total_parts,
off_t offset, off_t bytes, off_t total_bytes, int flag);
int Splitparts_sort(struct SplitparT *o, int count, int flag);
struct LstrinG {
char *text;
struct LstrinG *prev,*next;
};
int Lstring_destroy(struct LstrinG **lstring, int flag);
int Lstring_destroy_all(struct LstrinG **lstring, int flag);
/*
@param flag Bitfield for control purposes
bit0= insert before link rather than after it
bit1= do not copy data (e.g. because *data is invalid)
*/
int Lstring_new_binary(struct LstrinG **lstring, char *data, int data_len,
struct LstrinG *link, int flag);
/*
@param flag Bitfield for control purposes
bit0= insert before link rather than after it
*/
int Lstring_new(struct LstrinG **lstring, char *text, struct LstrinG *link,
int flag);
int Lstring_append_binary(struct LstrinG **entry, char *data, int data_len,
int flag);
int Permstack_push(struct PermiteM **o, char *disk_path, struct stat *stbuf,
int flag);
int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper,
struct XorrisO *xorriso, int flag);
#endif /* Xorriso_private_includeD */

View File

@ -1 +1 @@
#define Xorriso_timestamP "2008.05.15.192118"
#define Xorriso_timestamP "2008.06.02.070301"

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@ struct FindjoB;
*/
#define xorriso_libisoburn_req_major 0
#define xorriso_libisoburn_req_minor 1
#define xorriso_libisoburn_req_micro 5
#define xorriso_libisoburn_req_micro 8
int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag);
@ -225,5 +225,26 @@ int Xorriso_identify_split(struct XorrisO *xorriso, char *iso_adr,
struct SplitparT **parts, int *count,
struct stat *total_stbuf, int flag);
/* @param flag bit0= node is valid, do not resolve path
bit1= insist in complete collection of part files
*/
int Xorriso_is_split(struct XorrisO *xorriso, char *path, void *node,
int flag);
/* @param flag
>>> bit0= mkdir: graft in as empty directory, not as copy from iso
bit1= do not report copied files
bit2= -follow, -not_*: this is not a command parameter
??? <<< bit3= use offset and cut_size for cut_out_node
bit4= return 3 on rejection by exclusion or user
bit5= if directory then do not add sub tree
bit6= this is a copy action: do not fake times and ownership
@return <=0 = error , 1 = added leaf file object , 2 = added directory ,
3 = rejected
*/
int Xorriso_restore(struct XorrisO *xorriso,
char *img_path, char *disk_path, int flag);
#endif /* Xorrisoburn_includeD */