Compare commits

..

5 Commits

28 changed files with 793 additions and 11957 deletions

View File

@ -92,10 +92,9 @@ buildstamped: buildstamp
## Build companion applications
## Build test applications
noinst_PROGRAMS = \
test/compare_file \
xorriso/make_xorriso_1
test/compare_file
# A program to compare two files in mirrored trees in mounted filesystems
# To compare tree /media/dvd and /original/dir :
@ -106,12 +105,6 @@ test_compare_file_CFLAGS =
test_compare_file_LDADD =
test_compare_file_SOURCES = test/compare_file.c
# Specialized converter from xorriso/xorriso.texi to xorriso/xorriso.1
#
xorriso_make_xorriso_1_CPPFLAGS =
xorriso_make_xorriso_1_CFLAGS =
xorriso_make_xorriso_1_LDADD =
xorriso_make_xorriso_1_SOURCES = xorriso/make_xorriso_1.c
## ========================================================================= ##
@ -166,8 +159,6 @@ nodist_pkgconfig_DATA = \
man_MANS = xorriso/xorriso.1
info_TEXINFOS = xorriso/xorriso.texi
EXTRA_DIST = \
libisoburn-1.pc.in \
version.h.in \
@ -182,7 +173,5 @@ EXTRA_DIST = \
xorriso/changelog.txt \
xorriso/xorriso_buildstamp_none.h \
xorriso/README_gnu_xorriso \
xorriso/make_docs.sh \
$(man_MANS)

16
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-0.5.4.pl00.tar.gz
http://files.libburnia-project.org/releases/libisoburn-0.5.0.pl00.tar.gz
Copyright (C) 2006-2010 Vreixo Formoso, Thomas Schmitt.
Provided under GPL version 2 or later.
------------------------------------------------------------------------------
@ -31,17 +31,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-0.5.4 :
- libburn.so.4 , version libburn-0.7.8 or higher
- libisofs.so.6 , version libisofs-0.6.30 or higher
Dynamic library and compile time header requirements for libisoburn-0.5.0 :
- libburn.so.4 , version libburn-0.7.6 or higher
- libisofs.so.6 , version libisofs-0.6.28 or higher
libisoburn and xorriso will not start with libraries which are older than their
headers seen at compile time.
Obtain libisoburn-0.5.4.pl00.tar.gz, take it to a directory of your choice
Obtain libisoburn-0.5.0.pl00.tar.gz, take it to a directory of your choice
and do:
tar xzf libisoburn-0.5.4.pl00.tar.gz
cd libisoburn-0.5.4
tar xzf libisoburn-0.5.0.pl00.tar.gz
cd libisoburn-0.5.0
Within that directory execute:
@ -137,7 +137,7 @@ test program which compares files from the mounted image with the orignals
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 libisoburn tarball as test/compare_file . Usually it is
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 file to compare, the prefix1 to be cut off from path
and the prefix2 which gets prepended afterwards to obtain the path of the

View File

@ -50,9 +50,8 @@ dnl From Bruno Haible.
dnl
AC_DEFUN([LIBBURNIA_CHECK_ICONV],
[
dnl Check whether it is allowed to link with -liconv
AC_MSG_CHECKING([for iconv() in separate -liconv ])
AC_MSG_CHECKING([for separate -liconv ])
libburnia_liconv="no"
libburnia_save_LIBS="$LIBS"
LIBS="$LIBS -liconv"
@ -66,13 +65,6 @@ AC_DEFUN([LIBBURNIA_CHECK_ICONV],
)
AC_MSG_RESULT([$libburnia_liconv])
if test x"$libburnia_save_LIBS" = x"$LIBS"
then
dnl GNU iconv has no function iconv() but libiconv() and a macro iconv()
dnl It is not tested whether this is detected by above macro.
AC_CHECK_LIB(iconv, libiconv, , )
fi
dnl Check for iconv(..., const char **inbuf, ...)
AC_MSG_CHECKING([for const qualifier with iconv() ])
AC_TRY_COMPILE([
@ -87,85 +79,6 @@ size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, si
])
dnl LIBBURNIA_ASSERT_ICONV is by Thomas Schmitt, libburnia project
dnl
AC_DEFUN([LIBBURNIA_ASSERT_ICONV],
[
if test x$XORRISO_ASSUME_ICONV = x
then
dnl Check for the essential gestures of libisofs/util.c
AC_MSG_CHECKING([for iconv() to be accessible now ])
AC_TRY_LINK([
#include <stdlib.h>
#include <wchar.h>
#include <string.h>
#include <errno.h>
#include <ctype.h>
#include <stdio.h>
#include <limits.h>
#include <iconv.h>
#include <locale.h>
#include <langinfo.h>
#include <unistd.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);
], [iconv_test="yes"], [iconv_test="no"]
)
AC_MSG_RESULT([$iconv_test])
if test x$iconv_test = xno
then
echo >&2
echo "Cannot get function iconv() to work. Configuration aborted." >&2
echo "Check whether your system needs a separate libiconv installed." >&2
echo "If it is installed but not found, try something like" >&2
echo ' export LDFLAGS="$LDFLAGS -L/usr/local/lib"' >&2
echo ' export CPPFLAGS="$CPPFLAGS -I/usr/local/include"' >&2
echo ' export LIBS="$LIBS -liconv"' >&2
echo "You may override this test by exporting variable" >&2
echo " XORRISO_ASSUME_ICONV=yes" >&2
echo >&2
(exit 1); exit 1;
fi
fi
])
dnl LIBBURNIA_ASSERT_READLINE disables xorriso readline if not all needed
dnl functions are present
AC_DEFUN([LIBBURNIA_ASSERT_READLINE],
[
if test x$XORRISO_ASSUME_READLINE = x
then
dnl Check for the essential gestures of libisofs/util.c
AC_MSG_CHECKING([for desired functions in libreadline])
libburnia_save_LIBS="$LIBS"
LIBS="$LIBS -lreadline"
AC_TRY_LINK([
#include <ctype.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <readline/readline.h>
#include <readline/history.h>],
[HIST_ENTRY **hl;
readline("");
add_history("");
hl= history_list();
], [readline_test="yes"], [readline_test="no"]
)
AC_MSG_RESULT([$readline_test])
if test x$readline_test = xno
then
READLINE_DEF=
LIBS="$libburnia_save_LIBS"
fi
fi
])
dnl LIBBURNIA_SET_PKGCONFIG determines the install directory for the *.pc file.
dnl Important: Must be performed _after_ TARGET_SHIZZLE
dnl

View File

@ -1,4 +1,4 @@
AC_INIT([libisoburn], [0.5.4], [http://libburnia-project.org])
AC_INIT([libisoburn], [0.5.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=0
ISOBURN_MINOR_VERSION=5
ISOBURN_MICRO_VERSION=4
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 B00419
dnl This is the release version 0.5.4 = libisoburn.so.1.43.0
dnl ### This is the development version after above stable release
dnl ts B00222
dnl ### This is the release version 0.5.0 = libisoburn.so.1.39.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 = 44 - 43 = 1 . Library name = libisoburn.so.1.43.0
dnl SONAME = 40 - 39 = 1 . Library name = libisoburn.so.1.39.0
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
LT_CURRENT=44
LT_AGE=43
LT_CURRENT=40
LT_AGE=39
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@ -73,22 +73,11 @@ if test ! $ac_cv_func_fseeko; then
AC_ERROR([Libburn requires largefile support.])
fi
if test x$LIBISOBURN_OLD_ICONV_CONFIGURE = x
then
dnl ts B00410 : To detect the need for -liconv and const argument of iconv()
LIBBURNIA_CHECK_ICONV
else
dnl Outdated: produces double -liconv and warnings about parameter mismatch
dnl If iconv(3) is in an extra lib, then it gets added to variable LIBS.
dnl If not, then no -liconv will be added.
AC_CHECK_LIB(iconv, iconv, , )
AC_CHECK_LIB(iconv, iconv, , )
dnl GNU iconv has no function iconv() but libiconv() and a macro iconv()
AC_CHECK_LIB(iconv, libiconv, , )
fi
AC_CHECK_LIB(iconv, libiconv, , )
AC_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
@ -120,19 +109,10 @@ if test x$enable_libreadline = xyes; then
dnl Check whether there is readline-devel and readline-runtime.
dnl If not, erase this macro which would enable use of readline(),add_history()
READLINE_DEF="-DXorriso_with_readlinE"
if test x$XORRISO_OLD_READLINE_CONFIGURE = x
then
dnl ts B00411 : To disable readline if not all needed functions are present
LIBBURNIA_ASSERT_READLINE
else
dnl The empty yes case obviously causes -lreadline to be linked
AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= )
AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= )
dnl The X= in the yes case prevents that -lreadline gets linked twice
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
fi
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
else
READLINE_DEF=
fi
@ -256,8 +236,8 @@ AC_CHECK_HEADER(libburn/libburn.h)
AC_CHECK_HEADER(libisofs/libisofs.h)
dnl Check for proper library versions
LIBBURN_REQUIRED=0.7.8
LIBISOFS_REQUIRED=0.6.30
LIBBURN_REQUIRED=0.7.6
LIBISOFS_REQUIRED=0.6.28
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)

View File

@ -282,9 +282,7 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
struct isoburn_toc_track **tracks;
int num_sessions= 0, num_tracks= 0, track_count= 0, session_no= 0;
char msg[80];
enum burn_disc_status s;
s= burn_disc_get_status(d);
profile_name[0]= 0;
ret= burn_disc_get_profile(d, &profile, profile_name);
if(ret<=0)
@ -341,7 +339,7 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
/* >>> recognize unsuitable media (but allow read-only media) */;
if(readonly && s != BURN_DISC_EMPTY) {
if(readonly) {
(*o)->fabricated_disc_status= BURN_DISC_FULL;
/* This might be overwriteable media in a -ROM drive.
Pitfall:
@ -1070,7 +1068,7 @@ 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;
off_t data_count;
info_mode= flag&255;
*image_blocks= 0;
@ -1085,15 +1083,11 @@ int isoburn_read_iso_head(struct burn_drive *d, int lba,
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))
to_read= 64 * 1024;
if(ret > 0 && (off_t) capacity * (off_t) 2048 >= (off_t) (64 * 1024)) {
ret = burn_read_data(d, ((off_t) lba) * (off_t) 2048, (char *) buffer,
to_read, &data_count, 2); /* no error messages */
} else
ret= 0;
(off_t) 64*1024, &data_count, 2); /* no error messages */
} else
ret= 0;
if(ret<=0)
return(-1*!!(flag&(1<<15)));
if(info_mode==2)
@ -1640,7 +1634,7 @@ int isoburn_drive_set_msgs_submit(struct burn_drive *d,
int isoburn_set_msc1(struct burn_drive *d, int adr_mode, char *adr_value,
int flag)
{
int ret, num_sessions= 0, num_tracks, adr_num, i, j, total_tracks;
int ret, num_sessions, num_tracks, adr_num, i, j, total_tracks;
int lba, best_lba, size, re_valid= 0, track_count= 0;
time_t start_time= 0, last_pacifier= 0, now;
char volid[33], msg[160];

View File

@ -449,17 +449,6 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
iso_write_opts_set_default_gid(wopts, opts->gid);
iso_write_opts_set_output_charset(wopts, opts->output_charset);
iso_write_opts_set_fifo_size(wopts, fifo_chunks);
ret = iso_write_opts_set_system_area(wopts, opts->system_area_data,
opts->system_area_options, 0);
if (ret < 0) {
isoburn_report_iso_error(ret, "Cannot set content of System Area",
0, "FAILURE", 0);
{ret= -1; goto ex;}
}
iso_write_opts_set_pvd_times(wopts,
opts->vol_creation_time, opts->vol_modification_time,
opts->vol_expiration_time, opts->vol_effective_time,
opts->vol_uuid);
ret = isoburn_disc_track_lba_nwa(out_d, NULL, 0, &lba, &nwa);
opts->effective_lba= nwa;
@ -861,12 +850,6 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
o->fifo_size= 4*1024*1024;
o->effective_lba= -1;
o->data_start_lba= -1;
o->system_area_data= NULL;
o->system_area_options= 0;
o->vol_creation_time= 0;
o->vol_modification_time= 0;
o->vol_expiration_time= 0;
o->vol_effective_time= 0;
return(1);
}
@ -919,13 +902,11 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax)
{
o->omit_version_numbers= (!!(relax&1)) |
(2 * !!(relax & isoburn_igopt_only_iso_versions));
o->omit_version_numbers= !!(relax&1);
o->allow_deep_paths= !!(relax&2);
o->allow_longer_paths= !!(relax&4);
o->max_37_char_filenames= !!(relax&8);
o->no_force_dots= (!!(relax&16)) |
(2 * !!(relax & isoburn_igopt_no_j_force_dots));
o->no_force_dots= !!(relax&16);
o->allow_lowercase= !!(relax&32);
o->allow_full_ascii= !!(relax&64);
o->joliet_longer_paths= !!(relax&128);
@ -1080,64 +1061,3 @@ int isoburn_igopt_get_scdbackup_tag(struct isoburn_imgen_opts *o,
return(1);
}
int isoburn_igopt_set_system_area(struct isoburn_imgen_opts *opts,
char data[32768], int options)
{
if (data == NULL) { /* Disable */
if (opts->system_area_data != NULL)
free(opts->system_area_data);
opts->system_area_data = NULL;
} else {
if (opts->system_area_data == NULL) {
opts->system_area_data = calloc(32768, 1);
if (opts->system_area_data == NULL)
return(-1);
}
memcpy(opts->system_area_data, data, 32768);
}
opts->system_area_options = options & 3;
return(1);
}
int isoburn_igopt_get_system_area(struct isoburn_imgen_opts *opts,
char data[32768], int *options)
{
*options= opts->system_area_options;
if(opts->system_area_data == NULL)
return(0);
memcpy(data, opts->system_area_data, 32768);
return(1);
}
int isoburn_igopt_set_pvd_times(struct isoburn_imgen_opts *opts,
time_t vol_creation_time, time_t vol_modification_time,
time_t vol_expiration_time, time_t vol_effective_time,
char *vol_uuid)
{
opts->vol_creation_time = vol_creation_time;
opts->vol_modification_time = vol_modification_time;
opts->vol_expiration_time = vol_expiration_time;
opts->vol_effective_time = vol_effective_time;
strncpy(opts->vol_uuid, vol_uuid, 16);
opts->vol_uuid[16] = 0;
return(1);
}
int isoburn_igopt_get_pvd_times(struct isoburn_imgen_opts *opts,
time_t *vol_creation_time, time_t *vol_modification_time,
time_t *vol_expiration_time, time_t *vol_effective_time,
char vol_uuid[17])
{
*vol_creation_time = opts->vol_creation_time;
*vol_modification_time = opts->vol_modification_time;
*vol_expiration_time = opts->vol_expiration_time;
*vol_effective_time = opts->vol_effective_time;
strcpy(vol_uuid, opts->vol_uuid);
return(1);
}

View File

@ -350,10 +350,8 @@ struct isoburn_imgen_opts {
/**
* Omit the version number (";1") at the end of the ISO-9660 identifiers.
* Version numbers are usually not used.
* bit0= omit version number with ECMA-119 and Joliet
* bit1= omit version number with Joliet alone
*/
unsigned int omit_version_numbers :2;
unsigned int omit_version_numbers :1;
/**
* Allow ISO-9660 directory hierarchy to be deeper than 8 levels.
@ -377,10 +375,8 @@ struct isoburn_imgen_opts {
* ISO-9660 forces filenames to have a ".", that separates file name from
* extension. libisofs adds it if original filename doesn't has one. Set
* this to 1 to prevent this behavior
* bit0= no forced dot with ECMA-119
* bit1= no forced dot with Joliet
*/
unsigned int no_force_dots :2;
unsigned int no_force_dots :1;
/**
* Allow lowercase characters in ISO-9660 filenames. By default, only
@ -492,29 +488,6 @@ struct isoburn_imgen_opts {
char scdbackup_tag_time[19];
char *scdbackup_tag_written;
/* Content of an embedded boot image. Valid if not NULL.
* In that case it must point to a memory buffer at least 32 kB.
*/
char *system_area_data;
/*
* bit0= make bytes 446 - 512 of the system area a partition
* table which reserves partition 1 from byte 63*512 to the
* end of the ISO image. Assumed are 63 secs/hed, 255 head/cyl.
* (GRUB protective msdos label.)
* This works with and without system_area_data.
*/
int system_area_options;
/* User settable PVD time stamps */
time_t vol_creation_time;
time_t vol_modification_time;
time_t vol_expiration_time;
time_t vol_effective_time;
/* To eventually override vol_modification_time by unconverted string
and timezone 0 */
char vol_uuid[17];
};

View File

@ -215,7 +215,6 @@ create_blank_image:;
iso_read_opts_set_default_gid(ropts, read_opts->gid);
iso_read_opts_set_input_charset(ropts, read_opts->input_charset);
iso_read_opts_auto_input_charset(ropts, read_opts->auto_input_charset);
iso_read_opts_load_system_area(ropts, 1);
ds = isoburn_data_source_new(d);
if(o->iso_data_source!=NULL)

View File

@ -217,7 +217,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 30
#define isoburn_libisofs_req_micro 28
/** The minimum version of libburn to be used with this version of libisoburn
at compile time.
@ -225,7 +225,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libburn_req_major 0
#define isoburn_libburn_req_minor 7
#define isoburn_libburn_req_micro 8
#define isoburn_libburn_req_micro 6
/** The minimum version of libisofs to be used with this version of libisoburn
@ -261,7 +261,7 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
*/
#define isoburn_header_version_major 0
#define isoburn_header_version_minor 5
#define isoburn_header_version_micro 4
#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.
@ -962,8 +962,8 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
@param relax Bitfield:
bit0= omit_version_numbers
Omit the version number (";1") at the end of the
ISO-9660 and Joliet identifiers.
Version numbers are usually not used by readers.
ISO-9660 identifiers. Version numbers are usually
not used.
bit1= allow_deep_paths
Allow ISO-9660 directory hierarchy to be deeper
than 8 levels.
@ -1012,18 +1012,7 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
prefixed ES fields. This saves 5 to 10 bytes per file and
might avoid problems with readers which only accept RRIP.
SUSP-1.10 allows it, SUSP-1.12 frowns on it.
bit12= only_iso_numbers
Same as bit1 omit_version_number but restricted to the names
in the eventual Joliet tree.
@since 0.5.4
For reasons of backward compatibility it is not possible yet
to disable version numbers for ISO 9660 while enabling them
for Joliet.
bit13= no_j_force_dots
Same as no_force_dots but affecting the names in the eventual
Joliet tree rather than the ISO 9660 / ECMA-119 names.
@since 0.5.4
Previous versions added dots to Joliet names unconditionally.
@return 1 success, <=0 failure
*/
#define isoburn_igopt_omit_version_numbers 1
@ -1038,8 +1027,6 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
#define isoburn_igopt_rrip_version_1_10 512
#define isoburn_igopt_dir_rec_mtime 1024
#define isoburn_igopt_aaip_susp_1_10 2048
#define isoburn_igopt_only_iso_versions 4096
#define isoburn_igopt_no_j_force_dots 8192
int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax);
int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax);
@ -1180,67 +1167,6 @@ int isoburn_igopt_get_scdbackup_tag(struct isoburn_imgen_opts *o,
char **tag_written);
/** Attach 32 kB of binary data which shall get written to the first 32 kB
of the ISO image, the System Area.
options can cause manipulations of these data before writing happens.
If system area data are giveni or options bit0 is set, then bit1 of
el_torito_set_isolinux_options() is automatically disabled.
@since 0.5.4
@param o The option set to work on
@param data Either NULL or 32 kB of data. Do not submit less bytes !
@param options Can cause manipulations of submitted data before they
get written:
bit0= apply a --protective-msdos-label as of grub-mkisofs.
This means to patch bytes 446 to 512 of the system
area so that one partition is defined which begins
at the second 512-byte block of the image and ends
where the image ends.
This works with and without system_area_data.
bit1= apply isohybrid MBR patching to the system area.
This works only with system area data from
SYSLINUX plus an ISOLINUX boot image (see
iso_image_set_boot_image()) and only if not bit0
is set.
@return 1 success, 0 no data to get, <0 failure
*/
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);
/** Explicitely set the four timestamps of the emerging ISO image.
Default with all parameters is 0.
@since 0.5.4
ECMA-119 defines the timestamps in the Primary Volume Descriptor as:
@param creation_time
When "the information in the volume was created."
A value of 0 means that the timepoint of write start is to be used.
@param modification_time
When "the informationin the volume was last modified."
A value of 0 means that the timepoint of write start is to be used.
@param expiration_time
When "the information in the volume may be regarded as obsolete."
A value of 0 means that the information never shall expire.
@param effective_time
When "the information in the volume may be used."
A value of 0 means that not such retention is intended.
@param uuid
If this text is not empty, then it overrides vol_modification_time
by copying the first 16 decimal digits from uuid, eventually
padding up with decimal '1', and writing a NUL-byte as timezone GMT.
It should express a reasonable time in form YYYYMMDDhhmmsscc
E.g.: 2010040711405800 = 7 Apr 2010 11:40:58 (+0 centiseconds)
@return 1 success, <=0 failure
*/
int isoburn_igopt_set_pvd_times(struct isoburn_imgen_opts *opts,
time_t creation_time, time_t modification_time,
time_t expiration_time, time_t effective_time,
char *uuid);
int isoburn_igopt_get_pvd_times(struct isoburn_imgen_opts *opts,
time_t *creation_time, time_t *modification_time,
time_t *expiration_time, time_t *effective_time,
char uuid[17]);
/* ----------------------------------------------------------------------- */
/* End of Options for image generation */
/* ----------------------------------------------------------------------- */

View File

@ -126,13 +126,11 @@ int Compare_2_files(char *adr1, char *adr2, char *adrc, int flag)
differs= 1;
}
if(s1.st_uid != s2.st_uid) {
printf("%s : st_uid : %lu <> %lu\n",
a, (unsigned long) s1.st_uid, (unsigned long) s2.st_uid);
printf("%s : st_uid : %d <> %d\n", a, s1.st_uid, s2.st_uid);
differs= 1;
}
if(s1.st_gid != s2.st_gid) {
printf("%s : st_gid : %lu <> %lu\n",
a, (unsigned long) s1.st_gid, (unsigned long) s2.st_gid);
printf("%s : st_gid : %d <> %d\n", a, s1.st_gid, s2.st_gid);
differs= 1;
}
if((S_ISCHR(s1.st_mode) && S_ISCHR(s2.st_mode)) ||

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-0.5.4.tar.gz
ftp://ftp.gnu.org/gnu/xorriso/xorriso-0.5.0.tar.gz
Provided under GPL version 3 or later. No warranty.
------------------------------------------------------------------------------
@ -31,7 +31,8 @@ By using this software you agree to the disclaimer at the end of this text:
Compilation, First Glimpse, Installation
The most simple way to get xorriso from source code is the GNU xorriso tarball.
The most simple way to get xorriso from source code is the xorriso standalone
tarball.
Prerequisites:
The tarball contains everything that is needed except the following system
@ -45,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-0.5.4.tar.gz, take it to a directory of your choice and do:
Obtain xorriso-0.5.0.tar.gz, take it to a directory of your choice and do:
tar xzf xorriso-0.5.4.tar.gz
cd xorriso-0.5.4
tar xzf xorriso-0.5.0.tar.gz
cd xorriso-0.5.0
Within that directory execute:
@ -70,25 +71,22 @@ or you may execute as superuser:
make install
For general concepts, options and usage examples see
info xorriso
or
man 1 xorriso
The documents are part of the tarball as
xorriso/xorriso.info
This man page is part of the tarball as
xorriso/xorriso.1
Original source text of both is
xorriso/xorriso.texi
You may get a first glimpse by
info ./xorriso/xorriso.info
man ./xorriso/xorriso.1
It gets installed with "make install" but may also be placed manually in the
./man1 directory below one of the directories mentioned in environment
variable $MANPATH.
The installation creates several alias links pointing to the xorriso binary:
xorrisofs starts xorriso with -as mkisofs emulation already enabled
xorrecord starts xorriso with -as cdrecord emulation already enabled
osirrox starts with -osirrox image-to-disk copying already enabled
If you want to avoid dependecy on libreadline although the libreadline
development package is installed, then rather build xorriso by:
./configure --prefix=/usr --disable-libreadline
@ -282,14 +280,14 @@ 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.5.2 :
- libburn.so.4 , version libburn-0.7.8 or higher
Dynamic library and compile time header requirements for libisoburn-0.5.0 :
- libburn.so.4 , version libburn-0.7.6 or higher
- libisofs.so.6 , version libisofs-0.6.28 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.
GNU xorriso has less runtime dependencies and can be moved more freely.
Standalone xorriso has less runtime dependencies and can be moved more freely.
------------------------------------------------------------------------------

View File

@ -7047,7 +7047,7 @@ Version leap to libisoburn-0.5.0
Makefile.am
Delivering xorriso/README_gnu_xorriso with libisoburn
22 Feb 2010 [3086]
22 Feb 2010 []
xorriso/changelog.txt
Documented changes and release timestamp
@ -7060,7 +7060,7 @@ Bug fix: xorriso -update_r could lead to SIGSEGV if applied to a data file
New option -scsi_log
2010.02.23.093924 [3087]
[]
configure.ac
README
libisoburn/libisoburn.h
@ -7074,454 +7074,21 @@ xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-0.5.1
23 Feb 2010 [3088]
[]
Makefile.am
Delivering xorriso/README_gnu_xorriso with libisoburn
23 Feb 2010 [3089]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveZero
http://svn.libburnia-project.org/libisoburn/tags/ZeroFiveZero
------------------------------------ cycle - xorriso-0.5.1 - 2010.02.23.093924
28 Feb 2010 [3094]
xorriso/make_xorriso_standalone.sh
Adjusted patcher of Makefile.in for GNU xorriso
28 Feb 2010 [3095]
xorriso/xorriso.1
Corrected spelling errors in xorriso man page
2010.03.09.065117 [3109]
libisoburn/libisoburn.h
Requiring libburn-0.7.7 now
2010.03.09.065408 [3110]
xorriso/xorriso_private.h
xorriso/xorriso.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
Adapted xorriso signal handling to new libburn advise
2010.03.10.183348 [3121]
configure.ac
libisoburn/libisoburn.h
Requiring libburn-0.7.8 now
2010.03.10.183426 [3122]
xorriso/configure_ac.txt
Adapted GNU xorriso to version leap libburn-0.7.9
2010.03.18.101202 [3125]
Makefile.am
xorriso/xorriso_makefile_am.txt
xorriso/make_xorriso_standalone.sh
+ xorriso/xorriso.texi
+ xorriso/xorriso.info
+ xorriso/make_xorriso_1.c
+ xorriso/make_docs.sh
xorriso/xorriso.1
xorriso/convert_man_to_html.sh
Switched xorriso documentation to a hybrid of texinfo and man page
------------------------------------ cycle - xorriso-0.5.1 - 2010.03.18.101202
* xorriso documentation now also available in (tex)info format
2010.03.20.165317 [3126]
xorriso/make_docs.sh
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
xorriso/convert_man_to_html.sh
Restructured xorriso documentation and added index
2010.03.21.124435 [3127]
Makefile.am
xorriso/xorriso_makefile_am.txt
xorriso/xorriso.texi
xorriso/xorriso.info
Distributing and installing xorriso.info
2010.03.21.124517 [3128]
libisoburn/burn_wrap.c
Silenced a harmless compiler warning
22 Mar 2010 [3129]
xorriso/xorriso.texi
Changed global info dir entry of xorriso.texi
22 Mar 2010 [3130]
xorriso/xorriso.info
Changed global info dir entry of xorriso.info
2010.03.29.103419 [3136]
libisoburn/burn_wrap.c
Avoided to declare empty tray as written media
2010.03.29.103533 [3137]
xorriso/xorrisoburn.c
Better handling of empty tray when aquiring drive
------------------------------------ cycle - xorriso-0.5.1 - 2010.03.29.103533
29 Mar 2010 [3138]
svn copy -m Branching for libisoburn release 0.5.2
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveTwo
2010.03.29.190001 [3139]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorriso.c
xorriso/xorrisoburn.h
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-0.5.2
30 Mar 2010 [3141]
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-0.5.2 - 2010.03.29.190001
* xorriso documentation now also available in (tex)info format
* Prepared FreeBSD system adapter to work with ahci driver
2010.03.30.082405 [3140]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorriso.c
xorriso/xorrisoburn.h
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-0.5.3
30 Mar 2010 [3142]
xorriso/changelog.txt
Documented changes and release timestamp
30 Mar 2010 [3143]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveTwo
http://svn.libburnia-project.org/libisoburn/tags/ZeroFiveTwo
------------------------------------ cycle - xorriso-0.5.3 - 2010.03.30.082405
2010.04.01.140653 [3144]
libisoburn/burn_wrap.c
libisoburn refused to recognize ISO images smaller than 64 kB
2010.04.01.140653 [3145]
xorriso/xorriso.c
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
Disabled isohybrid MBR production on request of H. Peter Anvin
2010.04.05.192817 [3147]
configure.ac
libisoburn/libisoburn.h
Requiring libisofs-0.6.29 now
2010.04.06.125013 [3148]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
New API call isoburn_igopt_set_system_area()
2010.04.06.151750 [3149]
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
New -as mkisofs options -G and --protective-msdos-label for GRUB
2010.04.06.192328 [3150]
xorriso/xorriso.c
xorriso/xorriso_eng.html
Polishing of new GRUB supporting features
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.06.192328
* New API call isoburn_igopt_set_system_area()
* New -as mkisofs options -G and --protective-msdos-label for GRUB
2010.04.07.073024 [3151]
libisoburn/burn_wrap.c
Fixed image reading bug introduced with revision 3144
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.07.073024
2010.04.07.202148 [3152]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
New API call isoburn_igopt_set_pvd_times()
2010.04.07.202559 [3153]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
New option -volume_date, for grub-mkrescue: -as mkisofs --modification-date=
2010.04.08.185744 [3154]
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
New find action mkisofs_r and emulation -as mkisofs -r
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.08.185744
* New API call isoburn_igopt_set_pvd_times()
* New option -volume_date, for grub-mkrescue: -as mkisofs --modification-date=
* New find action mkisofs_r and emulation -as mkisofs -r
2010.04.09.171108 [3164]
xorriso/configure_ac.txt
Adapted GNU xorriso to version leap libburn-0.8.1
2010.04.10.150747 [3165]
configure.ac
xorriso/configure_ac.txt
Trying to avoid iconv const warning and multiple -liconv options on FreeBSD
2010.04.10.170927 [3166]
libisoburn/libisoburn.h
libisoburn/isoburn.c
New options bit1 of isoburn_igopt_set_system_area() for isohybrid production
2010.04.10.171214 [3167]
xorriso/xorriso.c
xorriso/xorrisoburn.c
New -boot_image isolinux partition_table=on, -as mkisofs -isohybrid-mbr
2010.04.10.180103 [3168]
xorriso/xorriso.c
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
Updated help text and documentation
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.10.180103
* New options bit1 of isoburn_igopt_set_system_area() for isohybrid production
* New: -boot_image isolinux partition_table=on, -as mkisofs -isohybrid-mbr
2010.04.11.120902 [3169]
xorriso/xorriso.c
test/compare_file.c
Reacted on compiler warnings of cygwin
2010.04.11.121002 [3170]
xorriso/xorrisoburn.c
Avoided printing of possibly uninitialized integer
2010.04.11.121418 [3171]
acinclude.m4
xorriso/configure_ac.txt
Realistic iconv() linking test in ./configure with eventual abort
2010.04.11.122253 [3172]
xorriso/xorriso.c
test/compare_file.c
xorriso/xorrisoburn.c
acinclude.m4
xorriso/configure_ac.txt
(Payload files of revisions 3169, 3170, 3171)
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.11.122253
12 Apr 2010 [3173]
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
Mentioned xorriso alias names in chapter FILES of documentation
2010.04.12.111137 [3174]
xorriso/xorriso.c
test/compare_file.c
Decided to put out uid_t and gid_t as unsigned long
2010.04.13.103037 [3175]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
New isoburn_igopt_set_relaxed() options: only_iso_versions, no_j_force_dots
2010.04.13.103917 [3176]
xorriso/xorrisoburn.c
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
New -compliance options only_iso_version, no_j_force_dots
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.13.103917
* New isoburn_igopt_set_relaxed() options: only_iso_versions, no_j_force_dots
* New -compliance options only_iso_version, no_j_force_dots
2010.04.13.154201 [3177]
acinclude.m4
configure.ac
xorriso/configure_ac.txt
More carefully checking for libreadline suitability
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.13.154201
2010.04.16.195349 [3178]
libisoburn/isofs_wrap.c
libisoburn now always loads the System Area with the ISO image
2010.04.16.195835 [3179]
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
Made -boot_image isolinux|grub patch and partition_table=on patch System Area
2010.04.17.171147 [3180]
configure.ac
libisoburn/libisoburn.h
Requiring libisofs-0.6.30 now
2010.04.17.171232 [3181]
xorriso/configure_ac.txt
Adapted xorriso-standalone to version leap libisofs-0.6.31
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.17.171232
2010.04.18.095808 [3182]
xorriso/xorriso_private.h
xorriso/xorriso.c
xorriso/xorrisoburn.c
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
New -find action sort_weight, new -as mkisofs --sort-weight
2010.04.18.100814 [3183]
xorriso/xorriso.c
Added --sort-weight to -as mkisofs -help
------------------------------------ cycle - xorriso-0.5.3 - 2010.04.18.100814
* New -find action sort_weight, new -as mkisofs --sort-weight
2010.04.18.141143 [3184]
xorriso/xorrisoburn.c
Corrected image size computation for comparison with partition table
18 Apr 2010 [3185]
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
Updated documentation about MBR
19 Apr 2010 [3186]
svn copy -m Branching for libisoburn release 0.5.4
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveFour
2010.04.19.080001 [3187]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorriso.c
xorriso/xorrisoburn.h
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-0.5.4
19 Apr 2010 []
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-0.5.4 - 2010.04.19.080001
* New API call isoburn_igopt_set_system_area()
* New API call isoburn_igopt_set_pvd_times()
* New isoburn_igopt_set_relaxed() options: only_iso_versions, no_j_force_dots
* New -boot_image any system_area=, -as mkisofs option -G
* New -boot_image grub partition_table=on, --protective-msdos-label
* New -boot_image isolinux partition_table=on, -as mkisofs -isohybrid-mbr
* New option -volume_date, for grub-mkrescue: -as mkisofs --modification-date=
* New -find action mkisofs_r and emulation -as mkisofs -r
* New -compliance options only_iso_version, no_j_force_dots
* New -find action sort_weight, new -as mkisofs --sort-weight
------------------------------------ cycle - xorriso-0.5.5 -
------------------------------------ cycle - xorriso-0.5.5 -
------------------------------------ cycle - xorriso-0.5.1 -
------------------------------------ cycle - xorriso-0.5.1 -
===============================================================================
TODO
===============================================================================
------------------------------------------------- For GRUB
libisofs:
- allow to adjust the weight of the virtual boot catalog node
(is currently 1000)
- libisofs API to control in write_validation_entry() : ve->platform_id[0] = X;
and multi-boot BIOS + EFI :
Date: Sat, 17 Apr 2010 22:30:45 +0200
From: Vladimir '?-coder/phcoder' Serbinenko <phcoder@gmail.com>
Reply-To: The development of GNU GRUB <grub-devel@gnu.org>
BIOS+EFI one should look like
Validation entry with id = 0
Default entry (BIOS). I would like that on hybrid BIOS always come in
default entry to avoid hitting BIOS bugs
Section header entry: 0x91, 0xef, 0x0001, 0, ..., 0
Section entry: 0x88, 0x00, 0x0000, 0, 0, <number of sectors in EFI boot
image>, <LBA start>, 0, ..., 0
In case of just EFI the Section header entry and Section entry become
Validation entry and default entry.
------------------------------------------------- FreeBSD
- Examine and replay:
http://wiki.freebsd.org/AvgLiveCD
------------------------------------------------- bugs
- DVD-ROM drives report CD tracks with size up to the next track start.
Why ? -> libburn
Eventually restrict -check_media to ISO image size ?
- ??? disable isohybrid by default ?
- make iso_init() and iso_finish() safe against multiple calls
from multiple threads.
- Is it harmless to have an empty xorriso->loaded_boot_cat_path ?
This situation appears if an image gets loaded that was created
@ -7530,6 +7097,27 @@ Validation entry and default entry.
Boot bin_path: '/boot/isolinux/isolinux.bin'
Boot cat_path: -not-found-at-load-time-
- Not reproducible any more ?
Sesssion without MD5 does not get loaded if -md5 on
e.g. intenso USB when session 45 was youngest (w/o MD5)
libburn : DEBUG : burn_drive_is_enumerable_adr( stdio:/dev/sdb ) is true
libisoburn: DEBUG : Found 45 ISO sessions by scanning 2880 kB in 0 seconds
xorriso : NOTE : Loading ISO image tree from LBA 0
libisofs: FAILURE : Checksum mismatch between checksum tag and data blocks
libisofs: FAILURE : Image loading aborted due to MD5 mismatch of image tree data
libisofs: HINT : You may override this refusal by disabling MD5 checking
libisofs: FAILURE : Checksum mismatch in System Area, Volume Descriptors, or directory tree
Only the output drive remains. Created empty ISO image.
Drive current: -outdev '/dev/sdb'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Media summary: 45 sessions, 774442 data blocks, 1513m data, 398m free
xorriso : FATAL : Cannot read ISO image tree
xorriso : HINT : You might get a questionable ISO image tree by option -md5 'off'.
xorriso : NOTE : Tolerated problem event of severity 'FATAL'
- what about split files and hard links ?
- xorriso -as cdrecord in rare cases reports intermediate "X of X MB"

View File

@ -3,7 +3,7 @@
# Copyright (c) 2007 - 2010 Thomas Schmitt <scdbackup@gmx.net>
# Provided under GPL version 2 or later.
AC_INIT([xorriso], [0.5.4], [http://libburnia-project.org])
AC_INIT([xorriso], [0.5.0], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -15,15 +15,15 @@ LIBBURNIA_SET_FLAGS
AM_INIT_AUTOMAKE([subdir-objects])
BURN_MAJOR_VERSION=0
BURN_MINOR_VERSION=8
BURN_MICRO_VERSION=1
BURN_MINOR_VERSION=7
BURN_MICRO_VERSION=7
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=31
LIBISOFS_MICRO_VERSION=29
AC_SUBST(LIBISOFS_MAJOR_VERSION)
AC_SUBST(LIBISOFS_MINOR_VERSION)
AC_SUBST(LIBISOFS_MICRO_VERSION)
@ -50,25 +50,12 @@ if test ! $ac_cv_func_fseeko; then
AC_ERROR([Libburn requires largefile support.])
fi
if test x$XORRISO_OLD_ICONV_CONFIGURE = x
then
dnl ts B00410 : To detect the need for -liconv and const argument of iconv()
LIBBURNIA_CHECK_ICONV
dnl ts B00411 : To abort configuration if iconv() still cannot be compiled
LIBBURNIA_ASSERT_ICONV
else
dnl Outdated: produces double -liconv and warnings about parameter mismatch
dnl If iconv(3) is in an extra libiconv, then it gets added to variable LIBS.
dnl If not, then no -liconv will be added.
AC_CHECK_LIB(iconv, iconv, , )
dnl GNU iconv has no function iconv() but libiconv() and a macro iconv()
AC_CHECK_LIB(iconv, libiconv, , )
fi
AC_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
LIBTOOL="$LIBTOOL --silent"
@ -103,6 +90,7 @@ AC_SUBST(ARCH)
AC_SUBST(LIBBURNIA_PKGCONFDIR)
AC_SUBST(LIBBURN_ARCH_LIBS)
dnl ts A90303
dnl Check the preconditions for using statvfs() in sg-dummy
dnl (sg-linux and sg-freebsd use statvfs() unconditionally)
@ -145,20 +133,10 @@ if test x$enable_libreadline = xyes; then
dnl Check whether there is readline-devel and readline-runtime.
dnl If not, erase this macro which would enable use of readline(),add_history()
READLINE_DEF="-DXorriso_with_readlinE"
if test x$XORRISO_OLD_READLINE_CONFIGURE = x
then
dnl ts B00411 : To disable readline if not all needed functions are present
LIBBURNIA_ASSERT_READLINE
else
dnl The empty yes case obviously causes -lreadline to be linked
AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= )
AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= )
dnl The X= in the yes case prevents that -lreadline gets linked twice
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
fi
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
else
READLINE_DEF=
fi

View File

@ -55,16 +55,12 @@ then
-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/<b>Data manipulations:<\/b>/\&nbsp;<BR><b>Data manipulations:<\/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/<b>Writing the result:<\/b>/\&nbsp;<BR><b>Writing the result:<\/b><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>Settings for data insertion:<\/b>/\&nbsp;<BR><b>Settings for data 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/' \
@ -77,7 +73,7 @@ then
-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>osirrox restore options:<\/b>/\&nbsp;<BR><b>osirrox restore options:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Command compatibility emulations:<\/b>/\&nbsp;<BR><b>Command compatibility emulations:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^<p><b>&minus;as</<p>\&nbsp;<BR><b>\&minus;as</' \
-e 's/<b>Scripting, dialog and/\&nbsp;<BR><b>Scripting, dialog and/' \

View File

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

View File

@ -1,329 +0,0 @@
/*
( cd xorriso ; cc -g -Wall -o make_xorriso_1 make_xorriso_1.c )
*/
/*
Specialized converter from xorriso/xorriso.texi to xorriso/xorriso.1.
The conversion rules are described at the beginning of xorriso/xorriso.texi
Copyright 2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
*/
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
/* The conversion state
*/
struct Mx1 {
char prog[4096];
int count_in;
int count_out;
int skipping; /* <0 stacked skipping , 0= no , >0 counting down */
};
int Mx1_init(struct Mx1 *m, char *prog, int flag)
{
strncpy(m->prog, prog, sizeof(m->prog) - 1);
m->prog[sizeof(m->prog) - 1]= 0;
m->count_in= 0;
m->count_out= 0;
m->skipping= 0;
return(1);
}
int Mx1_report_error(struct Mx1 *m, char *text, int flag)
{
fprintf(stderr, "%s : line %d : %s\n", m->prog, m->count_in, text);
return(1);
}
int Mx1__get_word(char *line, char word[256], char **remainder, int flag)
{
char *cpt, *start;
int l;
word[0]= 0;
*remainder= NULL;
for(cpt= line; *cpt != 0 && isspace(*cpt); cpt++);
if(*cpt == 0)
return(0);
start= cpt;
for(cpt= line; *cpt != 0 && ! isspace(*cpt); cpt++);
l= cpt - start;
if(l > 0)
strncpy(word, start, l);
word[l]= 0;
*remainder= cpt;
return(1);
}
int Mx1_substitute(struct Mx1 *m, char line_in[256], char line_out[256],
int raw, int flag)
{
char *rpt, *wpt, *ept;
int l;
wpt= line_out;
for(rpt= line_in; *rpt != 0; rpt++) {
if(rpt - line_in < raw) {
*(wpt++)= *rpt;
continue;
}
if(*rpt == '@') {
if(strncmp(rpt, "@strong{", 8) == 0) {
/* @strong{-...} gets mapped to \fB\-...\fR . */;
/* @strong{... } gets mapped to \fB...\fR . */
ept= strchr(rpt, '}');
if(ept == NULL) {
Mx1_report_error(m, "No closing bracket found for '@strong{'", 0);
return(-1);
}
l= ept - rpt - 8;
if((wpt - line_out) + l + 6 + (rpt[8] == '-') > 255)
goto overflow;
strcpy(wpt, "\\fB");
wpt+= 3;
if(rpt[8] == '-')
*(wpt++)= '\\';
strncpy(wpt, rpt + 8, l);
wpt+= l;
strcpy(wpt, "\\fR");
wpt+= 3;
rpt+= ept - rpt;
} else if(strncmp(rpt, "@minus{}", 8) == 0) {
/* @minus{} will become "-". */
if((wpt - line_out) + 1 > 255)
goto overflow;
*(wpt++)= '-';
rpt+= 7;
} else if(strncmp(rpt, "@@", 2) == 0 ||
strncmp(rpt, "@{", 2) == 0 ||
strncmp(rpt, "@}", 2) == 0) {
/* @@ , @{, @} will get stripped of their first @. */
*(wpt++)= *(rpt + 1);
rpt++;
}
} else if(*rpt == '\\') {
/* "\" becomes "\\" */
if((wpt - line_out) + 2 > 255)
goto overflow;
*(wpt++)= '\\';
*(wpt++)= '\\';
} else if((wpt - line_out) + 1 > 255) {
overflow:;
Mx1_report_error(m, "Line length overflow while text substitution", 0);
return(-1);
} else
*(wpt++)= *rpt;
}
*wpt= 0;
return(1);
}
/*
@return 1= line_out is valid, 0= do not put out line_out, -1 = error
*/
int Mx1_convert(struct Mx1 *m, char line_in[256], char line_out[256], int flag)
{
int l, num, keep= 0, ret, raw;
char word[256], buf[256], *remainder;
m->count_in++;
l= strlen(line_in);
if(m->skipping > 0) {
m->skipping--;
return(0);
}
/* The first line gets discarded. */
if(m->count_in == 1)
return(0);
/* Line start "@c man " will become "", the remainder is put out unaltered. */
if(strncmp(line_in, "@c man ", 7) == 0) {
strcpy(line_out, line_in + 7);
m->count_out++;
return(1);
}
/* Lines "@*" will be converted to ".br" */
if(strcmp(line_in, "@*") == 0) {
strcpy(line_out, ".br");
m->count_out++;
return(1);
}
/* @c man-ignore-lines N will discard N following lines.
"@c man-ignore-lines begin" discards all following lines
up to "@c man-ignore-lines end".
*/
if(strncmp(line_in, "@c man-ignore-lines ", 20) == 0) {
if(strcmp(line_in + 20, "begin") == 0) {
m->skipping--;
return(0);
} else if(strcmp(line_in + 20, "end") == 0) {
if(m->skipping < 0)
m->skipping++;
return(0);
} else if(m->skipping == 0) {
num= 0;
sscanf(line_in + 20, "%d", &num);
if(num > 0) {
m->skipping= num;
return(0);
}
}
Mx1_report_error(m, "Inappropriate use of '@c man-ignore-lines'", 0);
return(-1);
}
/* Line blocks of "@menu" "@end menu" will be discarded. */
if(strcmp(line_in, "@menu") == 0) {
m->skipping--;
return(0);
}
if(strcmp(line_in, "@end menu") == 0) {
if(m->skipping < 0)
m->skipping++;
return(0);
}
if(m->skipping)
return(0);
/* "@item -word words" becomes "\fB\-word\fR words". */
/* "@item word words" becomes "\fBword\fR words". */
if(strncmp(line_in, "@item ", 6) == 0) {
ret= Mx1__get_word(line_in + 6, word, &remainder, 0);
if(ret <= 0) {
Mx1_report_error(m, "Found no word after @item", 0);
return(0);
}
strcpy(buf, "\\fB");
if(word[0] == '-') {
if(l >= 255) {
Mx1_report_error(m, "Line length overflow while converting @item", 0);
return(-1);
}
strcat(buf, "\\");
}
strcat(buf, word);
strcat(buf, "\\fR");
raw= strlen(buf);
strcat(buf, remainder);
ret= Mx1_substitute(m, buf, line_out, raw, 0);
if(ret <= 0)
return(-1);
m->count_out++;
return(1);
}
/* @strong{-...} gets mapped to \fB\-...\fR . */
/* @strong{... } gets mapped to \fB...\fR . */
/* @minus{} will become "-". */
/* @@ , @{, @} will get stripped of their first @. */
/* "\" becomes "\\" */
if(line_in[0] != '@' ||
strncmp(line_in, "@strong{", 8) == 0 ||
strncmp(line_in, "@minus{}", 8) == 0 ||
strncmp(line_in, "@@", 2) == 0 ||
strncmp(line_in, "@{", 2) == 0 ||
strncmp(line_in, "@}", 2) == 0) {
keep= 1;
ret= Mx1_substitute(m, line_in, line_out, 0, 0);
if(ret <= 0)
return(-1);
}
/* Other lines which begin by "@" will be discarded. */
if(! keep) {
if(line_in[0] == '@')
return(0);
strcpy(line_out, line_in);
}
m->count_out++;
return(1);
}
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[]= {"xorriso/xorriso.texi"};
static char name_out[]= {"xorriso/xorriso.1"};
struct Mx1 m;
FILE *fp_in= stdin, *fp_out= stdout;
Mx1_init(&m, argv[0], 0);
if(argc < 2) {
usage:;
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++) {
if(strcmp(argv[i], "-filter") == 0)
as_filter= 1;
else if(strcmp(argv[i], "-auto") == 0)
as_filter= 0;
else {
fprintf(stderr, "%s : unknown option %s\n", argv[0], argv[i]);
goto usage;
}
}
if(!as_filter) {
fp_in= fopen(name_in, "r");
if(fp_in == NULL) {
fprintf(stderr, "%s : failed to fopen( %s ,r) : %d %s\n",
argv[0], name_in, errno, strerror(errno));
exit(3);
}
fp_out= fopen(name_out, "w");
if(fp_out == NULL) {
fprintf(stderr, "%s : failed to fopen( %s ,w) : %d %s\n",
argv[0], name_out, errno, strerror(errno));
exit(4);
}
}
while(1) {
got= fgets(line_in, sizeof(line_in), fp_in);
if(got == NULL)
break;
l= strlen(line_in);
while(l > 0) {
if(line_in[l - 1] == '\r' || line_in[l - 1] == '\n') {
line_in[l - 1] = 0;
l--;
} else
break;
}
ret= Mx1_convert(&m, line_in, line_out, 0);
if(ret < 0)
exit(1);
if(ret == 0)
continue;
fprintf(fp_out, "%s\n", line_out);
}
exit(0);
}

View File

@ -40,7 +40,7 @@ create_gnu_xorriso="yes"
current_dir=$(pwd)
lone_dir="$current_dir"/"xorriso-standalone"
xorriso_rev=0.5.4
xorriso_rev=0.5.0
# For unstable uploads and patch level 0 of stable releases:
xorriso_pl=""
# For higher patch levels of stable releases:
@ -135,17 +135,13 @@ xorriso/convert_man_to_html.sh
create_dir "$lone_dir"/xorriso
copy_files \
xorriso/xorrisoburn.[ch] \
xorriso/xorriso.[ch] \
xorriso/xorriso.[ch1] \
xorriso/xorriso_private.h \
\
xorriso/xorriso_timestamp.h \
\
xorriso/changelog.txt \
xorriso/xorriso_eng.html \
xorriso/xorriso.texi \
xorriso/xorriso.info \
xorriso/make_xorriso_1.c \
xorriso/xorriso.1 \
xorriso/man_1_xorriso.html \
"$lone_dir"/xorriso
@ -276,8 +272,9 @@ rm -r ./autom4te.cache
if test "$create_gnu_xorriso" = "yes"
then
# ftp-upload@gnu.org rejects Makefile.in with a dangerous chmod on make dist
sed -e 's/-perm -777 -exec chmod a+rwx/-perm -755 -exec chmod u+rwx,go+rx/' \
# ftp-upload@gnu.org dislikes my automake 1.9 and its chmod a+rwx
sed -e 's/by automake 1.9.6/by automake 1.11.1/' \
-e 's/-perm -777 -exec chmod a+rwx/-perm -755 -exec chmod u+rwx,go+rx/' \
< Makefile.in > new_Makefile.in
mv new_Makefile.in Makefile.in

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,7 @@
struct XorrisO;
#define Xorriso_program_versioN "0.5.4"
#define Xorriso_program_versioN "0.5.0"
#define Xorriso_program_patch_leveL ""
@ -39,20 +39,6 @@ char *Xorriso__get_version_text(int flag);
char *Xorriso__get_patch_level_text(int flag);
/* Choose how Xorriso_startup_libraries() and the XorrisO object shall
prepare for eventual signals.
@param behavior Default is behavior 1.
0= no own signal handling. The main application has to do
that. Do not start burn runs without any handling !
1= use libburn signal handler. Most time with action
0. During writing, formatting, blanking: 0x30.
Only usable with a single xorriso object.
@param flag unused yet, submit 0
@return <= 0 is error, >0 is success
*/
int Xorriso__preset_signal_behavior(int behavior, int flag);
/* Mandatory call:
Create a new xorriso object and tell it the program name to be used
with messages and for decision of special behavior.
@ -1004,10 +990,6 @@ int Xorriso_option_volid(struct XorrisO *xorriso, char *volid, int flag);
/* Option -volset_id */
int Xorriso_option_volset_id(struct XorrisO *xorriso, char *name, int flag);
/* Option -volume_date */
int Xorriso_option_volume_date(struct XorrisO *xorriso,
char *time_type, char *timestring, int flag);
/* Option -xattr "on"|"off" */
int Xorriso_option_xattr(struct XorrisO *xorriso, char *mode, int flag);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -57,8 +57,7 @@ Images or add-on sessions may be written to about any kind of file object.
<DD>With kernel 2.4 a PATA/IDE drive has to be under ide-scsi emulation.</DD>
<DD>With kernel 2.6 ide-scsi is not needed.</DD>
<DT>or FreeBSD, libc, libpthread :</DT>
<DD>PATA/IDE drives need atapicam running.</DD>
<DD>SATA drives need atapicam or ahci running.</DD>
<DD>PATA/IDE and SATA drives need atapicam running.</DD>
<DD>libcam has to be installed.</DD>
<DD>libiconv has to be installed.</DD>
<DT>or some other X/Open system, libc, libpthread :</DT>
@ -123,7 +122,7 @@ Writes result as completely new image or as add-on session
to optical media or filesystem objects.
</LI>
<LI>
Can activate ISOLINUX and GRUB boot images by El Torito boot record.
Can activate ISOLINUX boot images by El Torito boot record.
</LI>
<LI>
Can perform multi-session tasks as emulation of mkisofs and cdrecord.
@ -436,19 +435,14 @@ files or trees to disk:
<P>
<DL>
<DT><H3>Download as source code (see README):</H3></DT>
<DD><A HREF="xorriso-0.5.4.tar.gz">xorriso-0.5.4.tar.gz</A>
(1580 KB).
</DD>
<DD>(Released 18 Apr 2010)</DD>
<DD><A HREF="xorriso-0.5.4.tar.gz.sig">xorriso-0.5.4.tar.gz.sig</A></DD>
<DD>
(detached GPG signature for verification by
<KBD>gpg --verify xorriso-0.5.4.tar.gz.sig xorriso-0.5.4.tar.gz</KBD>).
<DD><A HREF="xorriso-0.5.0.tar.gz">xorriso-0.5.0.tar.gz</A>
(1370 KB).
<DD>(Released 22 Feb 2010)</DD>
</DD>
<DD>
Also on <A HREF="http://www.gnu.org/prep/ftp.html">
mirrors of ftp://ftp.gnu.org/gnu/ </A>
as xorriso/xorriso-0.5.4.tar.gz
as xorriso/xorriso-0.5.0.tar.gz
</DD>
</DL>
</DD>
@ -460,11 +454,11 @@ as xorriso/xorriso-0.5.4.tar.gz
</DL>
<A NAME="contact"></A>
<DL><DT>Contact:</DT>
<DD>Thomas Schmitt, <A HREF="mailto:scdbackup@gmx.net">scdbackup@gmx.net</A></DD>
<DD>GNU xorriso support mailing list,
<A HREF="mailto:bug-xorriso@gnu.org">bug-xorriso@gnu.org</A></DD>
<DD>libburnia development mailing list,
<A HREF="mailto:libburn-hackers@pykix.org">libburn-hackers@pykix.org</A></DD>
<DD>Thomas Schmitt, <A HREF="mailto:scdbackup@gmx.net">scdbackup@gmx.net</A></DD>
</DL>
<DL><DT>License:</DT>
<DD><A HREF="COPYING_xorriso">GPL version 3 or later.</A>
@ -476,9 +470,21 @@ as xorriso/xorriso-0.5.4.tar.gz
<HR>
<P>
Bug fixes towards xorriso-0.5.2:
Bug fixes towards xorriso-0.4.8.pl00:
<UL>
<LI>- none -</LI>
<LI>
Regression in libisofs introduced with xorriso-0.4.2:
-boot_image isolinux patch could lead to SIGSEGV
</LI>
<LI>
On FreeBSD: xorriso could leave the drive tray locked
</LI>
<LI>
On FreeBSD: Piped input was falsely attributed a small fixed size
</LI>
<LI>
xorriso -update_r could lead to SIGSEGV if applied to a data file
</LI>
<!--
<LI>- none -</LI>
-->
@ -487,7 +493,7 @@ Bug fixes towards xorriso-0.5.2:
<!--
<P>
Bug fixes in .pl01 towards xorriso-:
Bug fixes towards xorriso-0.4.8.pl00:
<UL>
<LI>
</LI>
@ -496,25 +502,11 @@ Bug fixes in .pl01 towards xorriso-:
-->
<P>
Enhancements towards previous stable version xorriso-0.5.2.pl00:
Enhancements towards previous stable version xorriso-0.4.8.pl00:
<UL>
<LI>Transition of documentation and program messages towards GNU xorriso</LI>
<LI>
New -as mkisofs options -G and --protective-msdos-label for grub-mkrescue
</LI>
<LI>
New option -volume_date, for grub-mkrescue: -as mkisofs --modification-date=
</LI>
<LI>
New: -boot_image isolinux partition_table=on, -as mkisofs -isohybrid-mbr
</LI>
<LI>
New find action mkisofs_r and emulation -as mkisofs -r
</LI>
<LI>
New -find action sort_weight, new -as mkisofs --sort-weight
</LI>
<LI>
New -compliance options only_iso_version, no_j_force_dots
New option -scsi_log
</LI>
<!--
<LI>- none -</LI>
@ -538,16 +530,16 @@ libburnia project and the legal intentions of
<A HREF="http://www.fsf.org/"> FSF </A> match completely.
</DT>
<DD>&nbsp;</DD>
<DT>libburn-0.8.1</DT>
<DT>libburn-0.7.7</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-0.6.31</DT>
<DT>libisofs-0.6.29</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-0.5.4</DT>
<DT>libisoburn-0.5.0</DT>
<DD>coordinates libburn and libisofs, emulates multi-session where needed,
and hosts the original source code of program xorriso.</DD>
<DD>(By Vreixo Formoso and Thomas Schmitt
@ -562,27 +554,26 @@ cdrecord and mkisofs.</DT>
<P>
<DL>
<DT><H3>Development snapshot, version 0.5.5 :</H3></DT>
<DD>Bug fixes towards xorriso-0.5.4:
<DT><H3>Development snapshot, version 0.5.1 :</H3></DT>
<DD>Bug fixes towards xorriso-0.5.0:
<UL>
<LI>- none yet -</LI>
<!--
<LI>- none yet -</LI>
-->
</UL>
</DD>
<DD>Enhancements towards stable version 0.5.4:
<DD>Enhancements towards stable version 0.5.0:
<UL>
<LI>- none yet -</LI>
<!--
<LI>- none yet -</LI>
-->
</UL>
</DD>
<DD>&nbsp;</DD>
<DD><A HREF="README_xorriso_devel">README 0.5.5</A>
<DD><A HREF="xorriso_help_devel">xorriso_0.5.5 -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.5.5)</A></DD>
<DD><A HREF="README_xorriso_devel">README 0.5.1</A>
<DD><A HREF="xorriso_help_devel">xorriso_0.5.1 -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.5.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
@ -592,8 +583,8 @@ libburnia libraries.
installation see README)
</DD>
<DD>
<A HREF="xorriso-0.5.5.tar.gz">xorriso-0.5.5.tar.gz</A>
(1580 KB).
<A HREF="xorriso-0.5.1.tar.gz">xorriso-0.5.1.tar.gz</A>
(1370 KB).
</DD>
<DT>A dynamically linked development version of xorriso can be obtained
from repositories of

View File

@ -174,8 +174,7 @@ xorriso_xorriso_SOURCES = \
# libburn/crc.c
noinst_PROGRAMS = \
test/compare_file \
xorriso/make_xorriso_1
test/compare_file
# A program to compare two trees of files in mounted filesystems
# To compare tree /media/dvd and /original/dir :
@ -186,13 +185,6 @@ test_compare_file_CFLAGS =
test_compare_file_LDADD =
test_compare_file_SOURCES = test/compare_file.c
# Specialized converter from xorriso/xorriso.texi to xorriso/xorriso.1
#
xorriso_make_xorriso_1_CPPFLAGS =
xorriso_make_xorriso_1_CFLAGS =
xorriso_make_xorriso_1_LDADD =
xorriso_make_xorriso_1_SOURCES = xorriso/make_xorriso_1.c
# Install symbolic links to the xorriso binary
#
@ -241,8 +233,6 @@ indent: $(indent_files)
man_MANS = xorriso/xorriso.1
info_TEXINFOS = xorriso/xorriso.texi
EXTRA_DIST = \
xorriso.pc.in \
version.h.in \
@ -254,7 +244,6 @@ EXTRA_DIST = \
INSTALL \
xorriso/changelog.txt \
xorriso/xorriso_buildstamp_none.h \
xorriso/make_docs.sh \
$(man_MANS) \
doc/susp_aaip_2_0.txt \
doc/susp_aaip_isofs_names.txt \
@ -270,4 +259,3 @@ EXTRA_DIST = \
libburn/sg-freebsd.c \
libburn/sg-libcdio.c \
libburn/sg-linux.c

View File

@ -50,6 +50,10 @@ struct SectorbitmaP; /* Distiniction between valid and invalid sectors */
/* maximum number of history lines to be reported with -status:long_history */
#define Xorriso_status_history_maX 100
/* <<< ??? */
/* try to catch signals and ignore them during abort handling */
#define Xorriso_abort_handler_defaulT (1|(2<<4))
/** The list of startup file names */
#define Xorriso_rc_nuM 4
@ -261,7 +265,6 @@ struct XorrisO { /* the global context of xorriso */
int keep_boot_image;
int patch_isolinux_image;
char boot_image_bin_path[SfileadrL];
char boot_image_bin_form[16];
int boot_image_emul; /* 0=no emulation
(1=emulation as hard disk)
(2=emulation as floppy)
@ -269,25 +272,6 @@ struct XorrisO { /* the global context of xorriso */
char boot_image_cat_path[SfileadrL];
off_t boot_image_load_size;
int boot_image_isohybrid; /* 0=off , 1=auto , 2=on , 3=force */
char system_area_disk_path[SfileadrL];
int system_area_options; /* bit0= "GRUB protective msdos label"
(a simple partition table)
bit1= isohybrid boot image pointer
and partition table
*/
int patch_system_area; /* Bits as of system_area_options.
to be applied to the loaded system
area of the image, if no
system_area_disk_path is set.
*/
/* User settable PVD time stamps */
time_t vol_creation_time;
time_t vol_modification_time;
time_t vol_expiration_time;
time_t vol_effective_time;
/* To eventually override vol_modification_time by unconverted string
and timezone 0 */
char vol_uuid[17];
/* LBA of boot image after image loading */
int loaded_boot_bin_lba;
@ -491,8 +475,6 @@ struct XorrisO { /* the global context of xorriso */
};
int Xorriso__get_signal_behavior(int flag);
int Xorriso_prepare_regex(struct XorrisO *xorriso, char *adr, int flag);
int Xorriso_result(struct XorrisO *xorriso, int flag);
@ -731,9 +713,6 @@ int Xorriso_append_scdbackup_record(struct XorrisO *xorriso, int flag);
int Xorriso_may_burn(struct XorrisO *xorriso, int flag);
int Xorriso_afile_fopen(struct XorrisO *xorriso,
char *filename, char *mode, FILE **ret_fp, int flag);
int Sfile_str(char target[SfileadrL], char *source, int flag);
@ -1011,8 +990,6 @@ struct FindjoB {
34= get_md5
35= check_md5
36= make_md5
37= mkisofs_r
38= sort_weight number
*/
int action;
int prune;
@ -1023,7 +1000,7 @@ struct FindjoB {
uid_t user;
gid_t group;
mode_t mode_and, mode_or;
int type; /* see Xorriso_set_time flag, also used as weight */
int type; /* see Xorriso_set_time flag */
time_t date;
char *found_path;
struct FindjoB *subjob;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.04.19.080001"
#define Xorriso_timestamP "2010.02.22.213001"

View File

@ -125,8 +125,7 @@ int Xorriso_search_hardlinks(struct XorrisO *xorriso, IsoNode *node,
#define Xorriso_relax_compliance_defaulT \
(isoburn_igopt_allow_deep_paths | isoburn_igopt_allow_longer_paths | \
isoburn_igopt_always_gmt | \
isoburn_igopt_rrip_version_1_10 | isoburn_igopt_aaip_susp_1_10 | \
isoburn_igopt_only_iso_versions | isoburn_igopt_no_j_force_dots)
isoburn_igopt_rrip_version_1_10 | isoburn_igopt_aaip_susp_1_10 )
#ifdef NIX
/* <<< */
@ -145,25 +144,6 @@ static const char *un0(const char *text)
}
int Xorriso_abort(struct XorrisO *xorriso, int flag)
{
int ret;
ret= burn_abort(4440, burn_abort_pacifier, "xorriso : ");
if(ret<=0) {
fprintf(stderr,
"\nxorriso : ABORT : Cannot cancel burn session and release drive.\n");
return(0);
}
fprintf(stderr,
"xorriso : ABORT : Drive is released and library is shut down now.\n");
fprintf(stderr,
"xorriso : ABORT : Program done. Even if you do not see a shell prompt.\n");
fprintf(stderr, "\n");
exit(1);
}
int Xorriso_destroy_node_array(struct XorrisO *xorriso, int flag)
{
int i;
@ -557,31 +537,11 @@ int Xorriso_search_di_range(struct XorrisO *xorriso, IsoNode *node,
/* ------------------------------------------------------------------------ */
/* @param flag bit0= asynchronous handling (else catch thread, wait, and exit)
*/
int Xorriso_set_signal_handling(struct XorrisO *xorriso, int flag)
{
char *handler_prefix= NULL;
if(Xorriso__get_signal_behavior(0) != 1)
return(2);
handler_prefix= calloc(strlen(xorriso->progname)+3+1, 1);
if(handler_prefix==NULL) {
sprintf(xorriso->info_text,
"Cannot allocate memory for for setting signal handler");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
return(-1);
}
sprintf(handler_prefix, "%s : ", xorriso->progname);
burn_set_signal_handling(handler_prefix, NULL, (flag & 1) * 0x30);
free(handler_prefix);
return(1);
}
int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag)
{
int ret, major, minor, micro;
char *handler_prefix= NULL;
char *queue_sev, *print_sev, reason[1024];
struct iso_zisofs_ctrl zisofs_ctrl= {0, 6, 15};
@ -627,6 +587,13 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
/* End of ugly compile time test (scroll up for explanation) */
handler_prefix= calloc(strlen(xorriso->progname)+3+1, 1);
if(handler_prefix==NULL) {
sprintf(xorriso->info_text,
"Cannot allocate memory for initializing libraries");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
return(-1);
}
reason[0]= 0;
ret= isoburn_initialize(reason, 0);
if(ret==0) {
@ -635,6 +602,7 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
sprintf(xorriso->info_text+strlen(xorriso->info_text),
". Reason given:\n%s", reason);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
free(handler_prefix);
return(0);
}
ret= isoburn_is_compatible(isoburn_header_version_major,
@ -672,9 +640,8 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
isoburn_set_msgs_submit(Xorriso_msgs_submit_void, (void *) xorriso,
(3<<2) | 128 , 0);
ret= Xorriso_set_signal_handling(xorriso, 0);
if(ret <= 0)
return(ret);
sprintf(handler_prefix, "%s : ", xorriso->progname);
burn_set_signal_handling(handler_prefix, NULL, 0);
ret = iso_zisofs_get_params(&zisofs_ctrl, 0);
if (ret == 1) {
@ -691,6 +658,7 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
strcpy(xorriso->info_text, "Using ");
strncat(xorriso->info_text, burn_scsi_transport_id(0), 1024);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
free(handler_prefix);
return(1);
}
@ -1178,12 +1146,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
state != BURN_DISC_FULL) {
sprintf(xorriso->info_text,
"Disc status not blank and unsuitable for reading");
sev= "FAILURE";
if(xorriso->img_read_error_mode==2)
sev= "FATAL";
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, sev, 0);
Xorriso_give_up_drive(xorriso, 1|((flag&32)>>2));
ret= 3; goto ex;
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
{ret= 0; goto ex;}
}
/* fill read opts */
ret= isoburn_ropt_new(&ropts, 0);
@ -1308,9 +1272,9 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
isoburn_ropt_get_size_what(ropts, &size, &has_what);
if(has_what & isoburn_ropt_has_el_torito) {
if(xorriso->boot_image_bin_path[0])
boot_fate= "replaced by new boot image";
boot_fate= "replaced by an isolinux image";
else if(xorriso->patch_isolinux_image)
boot_fate= "patched at boot info table";
boot_fate= "patched as isolinux image";
else if(xorriso->keep_boot_image)
boot_fate= "kept unchanged";
else
@ -1610,7 +1574,7 @@ int Xorriso_is_isohybrid(struct XorrisO *xorriso, IsoFile *bootimg_node,
int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
IsoImage *image, int flag)
{
int make_isohybrid_mbr= 0, ret, patch_table= 0;
int make_isohybrid_mbr= 0, ret;
ElToritoBootImage *bootimg;
IsoFile *bootimg_node;
@ -1620,9 +1584,9 @@ int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
return(-1);
}
patch_table = !!xorriso->patch_isolinux_image;
if(xorriso->boot_image_isohybrid == 0) {
ret= el_torito_set_isolinux_options(bootimg, patch_table, 0);
ret= el_torito_set_isolinux_options(bootimg, 1, 0);
return(ret == 1);
}
if(xorriso->boot_image_isohybrid == 3) {
@ -1647,8 +1611,7 @@ int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
xorriso->alignment= 512;
}
ret= el_torito_set_isolinux_options(bootimg,
patch_table | (make_isohybrid_mbr << 1),0);
ret= el_torito_set_isolinux_options(bootimg, 1 | (make_isohybrid_mbr << 1),0);
return(ret == 1);
}
@ -1691,120 +1654,7 @@ int Xorriso_auto_format(struct XorrisO *xorriso, int flag)
}
int Xorriso_set_system_area(struct XorrisO *xorriso, struct burn_drive *drive,
IsoImage *img, struct isoburn_imgen_opts *sopts,
int flag)
{
int ret, options, system_area_options, iso_lba= -1, start_lba, image_blocks;
char volid[33];
FILE *fp= NULL;
char buf[32768], *bufpt= NULL;
off_t hd_lba;
unsigned char *ub;
ElToritoBootImage *bootimg;
IsoFile *bootimg_node;
system_area_options= xorriso->system_area_options;
memset(buf, 0, 32768);
if(xorriso->system_area_disk_path[0] == 0) {
if(xorriso->patch_system_area) {
ret= iso_image_get_system_area(img, buf, &options, 0);
if(ret == 0) {
goto do_set;
} else if(ret < 0) {
Xorriso_process_msg_queues(xorriso,0);
Xorriso_report_iso_error(xorriso, "", ret,
"Error when inquiring System Area data of ISO 9660 image",
0, "FAILURE", 1);
{ret= 0; goto ex;}
} else {
system_area_options= xorriso->patch_system_area;
/* Check whether partition 1 ends at image end */;
ub= (unsigned char *) buf;
hd_lba= (ub[454] | (ub[455] << 8) | (ub[456] << 16) | (ub[457] << 24)) +
(ub[458] | (ub[459] << 8) | (ub[460] << 16) | (ub[461] << 24));
iso_lba= -1;
ret= isoburn_disc_get_msc1(drive, &start_lba);
if(ret > 0) {
ret= isoburn_read_iso_head(drive, start_lba, &image_blocks,
volid, 1);
if(ret > 0)
iso_lba= start_lba + image_blocks;
}
if(((off_t) iso_lba) * (off_t) 4 > hd_lba) {
system_area_options= 0;
} else if((xorriso->patch_system_area & 1) &&
((off_t) iso_lba) * (off_t) 4 != hd_lba) {
system_area_options= 0;
} else if((xorriso->patch_system_area & 2) &&
((off_t) iso_lba) * (off_t) 4 + (off_t) (63 * 256) < hd_lba) {
system_area_options= 0;
} else if(xorriso->patch_system_area & 2) { /* isohybrid patching */
/* Check whether bytes 432-345 point to ElTorito LBA */
hd_lba= ub[432] | (ub[433] << 8) | (ub[434] << 16) | (ub[435] << 24);
ret= iso_image_get_boot_image(img, &bootimg, &bootimg_node, NULL);
if(ret != 1)
system_area_options= 0;
else if(bootimg_node != NULL) {
Xorriso__file_start_lba((IsoNode *) bootimg_node, &(iso_lba), 0);
if(((off_t) iso_lba) * (off_t) 4 != hd_lba)
system_area_options= 0;
}
}
if(system_area_options == 0) {
Xorriso_msgs_submit(xorriso, 0,
"Loaded System Area data are not suitable for MBR patching.",
0, "DEBUG", 0);
}
}
bufpt= buf;
ret= 1;
} else
ret= 0;
goto do_set;
}
if(strcmp(xorriso->system_area_disk_path, "/dev/zero") == 0)
{ret= 1; goto do_set;}
ret= Xorriso_afile_fopen(xorriso, xorriso->system_area_disk_path,
"rb", &fp, 2);
if(ret <= 0)
{ret= 0; goto ex;}
ret= fread(buf, 1, 32768, fp);
if(ret < 32768) {
if(ferror(fp)) {
sprintf(xorriso->info_text,
"Error when reading -boot_image system_area=");
Text_shellsafe(xorriso->system_area_disk_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
{ret= 0; goto ex;}
}
}
bufpt= buf;
do_set:;
if(ret > 0 && xorriso->system_area_disk_path[0]) {
sprintf(xorriso->info_text, "Copying to System Area: %d bytes from file ",
ret);
Text_shellsafe(xorriso->system_area_disk_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
}
ret= isoburn_igopt_set_system_area(sopts, bufpt, system_area_options);
if(ret != ISO_SUCCESS) {
Xorriso_process_msg_queues(xorriso,0);
Xorriso_report_iso_error(xorriso, "", ret,
"Error when attaching System Area data to ISO 9660 image",
0, "FAILURE", 1);
{ret= 0; goto ex;}
}
ret= 1;
ex:;
if(fp != NULL && fp != stdin)
fclose(fp);
return(ret);
}
#define Xorriso_with_make_isohybrid_mbR 1
/* @param flag bit0= do not write but only prepare and return size in sectors
@ -1905,16 +1755,11 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
goto ex;
}
ret= Xorriso_set_system_area(xorriso, source_drive, image, sopts, 0);
if(ret <= 0)
goto ex;
/* Activate, adjust or discard boot image */
/* >>> ??? move down to libisoburn ? */
if(image!=NULL && !(flag&1)) {
ret= iso_image_get_boot_image(image, &bootimg, NULL, NULL);
/* >>> || xorriso->system_area_disk_path[0] */
if(xorriso->boot_image_bin_path[0]) {
/* discard old boot image, set new one */
if(ret == 1)
@ -1932,7 +1777,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
cpt++;
strcpy(cpt, "boot.cat");
}
sprintf(xorriso->info_text, "Activating boot image %s",
sprintf(xorriso->info_text, "Activating alleged isolinux boot image %s",
Text_shellsafe(xorriso->boot_image_bin_path, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
sprintf(xorriso->info_text, "Creating El Torito boot catalog file %s",
@ -1983,13 +1828,21 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
{ret= 0; goto ex;}
}
el_torito_set_load_size(bootimg, xorriso->boot_image_load_size / 512);
#ifdef Xorriso_with_make_isohybrid_mbR
ret= Xorriso_set_isolinux_options(xorriso, image, 0);
if(ret <= 0)
goto ex;
#else
el_torito_patch_isolinux_image(bootimg);
#endif
} else if(xorriso->patch_isolinux_image) {
if(ret==1) {
relax|= isoburn_igopt_allow_full_ascii;
sprintf(xorriso->info_text, "Patching boot info table");
sprintf(xorriso->info_text, "Patching alleged isolinux boot image");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
ret= Xorriso_path_from_lba(xorriso, NULL, xorriso->loaded_boot_bin_lba,
@ -2008,12 +1861,20 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0);
goto ex;
}
#ifdef Xorriso_with_make_isohybrid_mbR
ret= Xorriso_set_isolinux_options(xorriso, image, 0);
if(ret <= 0)
goto ex;
#else
el_torito_patch_isolinux_image(bootimg);
#endif
} else {
sprintf(xorriso->info_text,
"Could not find any boot image for -boot_image patching");
"Could not find any boot image for -boot_image isolinux patch");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
}
} else if(xorriso->keep_boot_image && ret==1) {
@ -2026,7 +1887,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
}
}
if((xorriso->do_aaip & 16) || !(xorriso->ino_behavior & 2)) {
/* Overwrite isofs.st of root node by xorriso->isofs_st_out */
char *name= "isofs.st";
@ -2089,10 +1950,6 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
}
iso_image_set_data_preparer_id(image, xorriso_id);
}
isoburn_igopt_set_pvd_times(sopts,
xorriso->vol_creation_time, xorriso->vol_modification_time,
xorriso->vol_expiration_time, xorriso->vol_effective_time,
xorriso->vol_uuid);
/* Make final abort check before starting expensive activities */
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
@ -2184,17 +2041,11 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
if(ret <= 0)
goto ex;
/* Important: do not return until burn_is_aborting() was checked */
Xorriso_set_signal_handling(xorriso, 1);
xorriso->run_state= 1; /* Indicate that burning has started */
isoburn_disc_write(burn_options, disc);
burn_write_opts_free(burn_options);
ret= Xorriso_pacifier_loop(xorriso, drive, pacifier_speed << 4);
if(burn_is_aborting(0))
Xorriso_abort(xorriso, 0); /* Never comes back */
Xorriso_set_signal_handling(xorriso, 0);
if(ret<=0)
goto ex;
if(!isoburn_drive_wrote_well(drive)) {
@ -2265,8 +2116,6 @@ int Xorriso_check_burn_abort(struct XorrisO *xorriso, int flag)
struct burn_drive_info *dinfo;
struct burn_drive *drive;
if(burn_is_aborting(0))
return(2);
if(xorriso->run_state!=1)
return(0);
ret= Xorriso_eval_problem_status(xorriso, 1, 1);
@ -5320,11 +5169,11 @@ int Xorriso_show_boot_info(struct XorrisO *xorriso, int flag)
IsoFile *bootimg_node;
IsoBoot *bootcat_node;
respt= xorriso->result_line;
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
"on attempt to print boot info", 16);
"on attempt to print boot info", 0);
if(ret<=0)
goto no_boot;
return(0);
respt= xorriso->result_line;
image= isoburn_get_attached_image(drive);
if(image == NULL) {
ret= 0;
@ -5469,7 +5318,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
int track_count= 0, session_no, track_no, profile_no= -1, track_size;
int last_track_start= 0, last_track_size= -1, num_data= 0, is_data= 0;
int is_inout_drive= 0, drive_role, status, num_formats, emul_lba;
int num_payload= 0, num_wasted= 0, num_nondata= 0, not_reconizable= 0;
int num_payload= 0, num_wasted= 0, num_nondata= 0;
char profile_name[80],*respt,*devadr, *typetext= "";
struct burn_toc_entry toc_entry;
struct burn_drive_info *dinfo;
@ -5528,10 +5377,8 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
else if(drive_role==0 || drive_role==3)
sprintf(respt+strlen(respt), ", sequential");
strcat(respt, "\n");
} else {
} else
sprintf(respt+strlen(respt), "is not recognizable\n");
not_reconizable= 1;
}
Xorriso_toc_line(xorriso, flag & 8);
if((flag & 64) || !(flag & 1)) {
@ -5542,10 +5389,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
sprintf(respt, "Media status : ");
if (s == BURN_DISC_FULL) {
if(not_reconizable)
sprintf(respt+strlen(respt), "is not recognizable\n");
else
sprintf(respt+strlen(respt), "is written , is closed\n");
sprintf(respt+strlen(respt), "is written , is closed\n");
} else if (s == BURN_DISC_APPENDABLE) {
sprintf(respt+strlen(respt), "is written , is appendable\n");
} else if (s == BURN_DISC_BLANK) {
@ -5918,9 +5762,6 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
mode_names[flag&3]);
Xorriso_info(xorriso,0);
/* Important: do not return until burn_is_aborting() was checked */
Xorriso_set_signal_handling(xorriso, 1);
if(do_deformat)
burn_disc_erase(drive, (flag&1));
else
@ -5937,9 +5778,7 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
usleep(1000000);
}
Xorriso_process_msg_queues(xorriso,0);
if(burn_is_aborting(0))
Xorriso_abort(xorriso, 0); /* Never comes back */
Xorriso_set_signal_handling(xorriso, 0);
if(burn_drive_wrote_well(drive)) {
sprintf(xorriso->info_text, "Blanking done\n");
Xorriso_info(xorriso,0);
@ -6076,10 +5915,6 @@ int Xorriso_format_media(struct XorrisO *xorriso, off_t in_size, int flag)
Xorriso_info(xorriso, 0);
if(flag & 2)
size= in_size;
/* Important: do not return until burn_is_aborting() was checked */
Xorriso_set_signal_handling(xorriso, 1);
burn_disc_format(drive, size, mode_flag);
start_time= time(0);
@ -6093,10 +5928,8 @@ int Xorriso_format_media(struct XorrisO *xorriso, off_t in_size, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
usleep(1000000);
}
Xorriso_process_msg_queues(xorriso,0);
if(burn_is_aborting(0))
Xorriso_abort(xorriso, 0); /* Never comes back */
Xorriso_set_signal_handling(xorriso, 0);
if(burn_drive_wrote_well(drive)) {
sprintf(xorriso->info_text, "Formatting done\n");
@ -7904,26 +7737,6 @@ int Xorriso_widen_hardlink(struct XorrisO *xorriso, void * boss_iter,
}
/*
Apply the effect of mkisofs -r to a single node
*/
int Xorriso_mkisofs_lower_r(struct XorrisO *xorriso, IsoNode *node, int flag)
{
mode_t perms;
perms= iso_node_get_permissions(node);
iso_node_set_uid(node, (uid_t) 0);
iso_node_set_gid(node, (gid_t) 0);
perms|= S_IRUSR | S_IRGRP | S_IROTH;
perms&= ~(S_IWUSR | S_IWGRP | S_IWOTH);
if(perms & (S_IXUSR | S_IXGRP | S_IXOTH))
perms|= (S_IXUSR | S_IXGRP | S_IXOTH);
perms&= ~(S_ISUID | S_ISGID | S_ISVTX);
iso_node_set_permissions(node, perms);
return(1);
}
/* @param flag bit0= not a command parameter (directory iteration or recursion)
bit1= do not count deleted files with rm and rm_r
@return <=0 error,
@ -8046,13 +7859,9 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
if(ret >= 0)
ret= 1;
} else if(action == 36) { /* make_md5 */
ret= Xorriso_make_md5(xorriso, (void *) node, show_path, 0);
ret = Xorriso_make_md5(xorriso, (void *) node, show_path, 0);
if(ret >= 0)
ret= 1;
} else if(action == 37) { /* mkisofs_r */
ret= Xorriso_mkisofs_lower_r(xorriso, node, 0);
} else if(action == 38) { /* sort_weight */
iso_node_set_sort_weight(node, type);
} else { /* includes : 15 in_iso */
sprintf(xorriso->result_line, "%s\n", Text_shellsafe(show_path, sfe, 0));
Xorriso_result(xorriso, 0);
@ -8289,26 +8098,6 @@ int Xorriso_findi_test(struct XorrisO *xorriso, struct FindjoB *job,
}
int Xorriso_findi_headline(struct XorrisO *xorriso, struct FindjoB *job,
int flag)
{
int action;
action= Findjob_get_action(job, 0);
if(action == 21) { /* report_damage */
sprintf(xorriso->result_line, "Report layout: %8s , %8s , %8s , %s\n",
"at byte", "Range", "Filesize", "ISO image path");
Xorriso_result(xorriso, 0);
} else if(action == 22) { /* report_lba */
sprintf(xorriso->result_line,
"Report layout: %2s , %8s , %8s , %8s , %s\n",
"xt", "Startlba", "Blocks", "Filesize", "ISO image path");
Xorriso_result(xorriso, 0);
}
return(1);
}
/* @param flag bit0= recursion
bit1= do not count deleted files with rm and rm_r
bit2= do not dive into split file directories
@ -8345,8 +8134,18 @@ int Xorriso_findi(struct XorrisO *xorriso, struct FindjoB *job,
action= Findjob_get_action(job, 0);
if(action<0)
action= 0;
if(!(flag & 1))
Xorriso_findi_headline(xorriso, job, 0);
if(!(flag & 1)) {
if(action == 21) {
sprintf(xorriso->result_line, "Report layout: %8s , %8s , %8s , %s\n",
"at byte", "Range", "Filesize", "ISO image path");
Xorriso_result(xorriso, 0);
} else if(action == 22) {
sprintf(xorriso->result_line,
"Report layout: %2s , %8s , %8s , %8s , %s\n",
"xt", "Startlba", "Blocks", "Filesize", "ISO image path");
Xorriso_result(xorriso, 0);
}
}
dir_node= (IsoDir *) dir_node_generic;
if(dir_node==NULL) {
@ -8730,10 +8529,6 @@ int Xorriso_findi_sorted(struct XorrisO *xorriso, struct FindjoB *job,
{ret= 1; goto ex;}
/* Perform job->action on xorriso->node_array */
/* Headlines of actions report_damage , report_lba */;
Xorriso_findi_headline(xorriso, job, 0);
for(i= 0; i < xorriso->node_counter; i++) {
node= xorriso->node_array[i];
ret= Xorriso_path_from_node(xorriso, node, abs_path, 0);
@ -9349,16 +9144,10 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
if(ret<=0)
goto ex;
/* Important: do not return until burn_is_aborting() was checked */
Xorriso_set_signal_handling(xorriso, 1);
xorriso->run_state= 1; /* Indicate that burning has started */
burn_disc_write(burn_options, disc);
ret= Xorriso_pacifier_loop(xorriso, drive, 2 | (is_cd << 4) | (is_bd << 5));
if(burn_is_aborting(0))
Xorriso_abort(xorriso, 0); /* Never comes back */
Xorriso_set_signal_handling(xorriso, 0);
if(ret<=0)
goto ex;
if(!burn_drive_wrote_well(drive)) {
@ -10611,12 +10400,6 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
} else if((l == 16 && strncmp(cpt, "omit_version_off", l) == 0)) {
xorriso->relax_compliance&= ~isoburn_igopt_omit_version_numbers;
} else if((l == 16 && strncmp(cpt, "only_iso_version", l) == 0) ||
(l == 19 && strncmp(cpt, "only_iso_version_on", l) == 0) ) {
xorriso->relax_compliance|= isoburn_igopt_only_iso_versions;
} else if((l == 20 && strncmp(cpt, "only_iso_version_off", l) == 0)) {
xorriso->relax_compliance&= ~isoburn_igopt_only_iso_versions;
} else if((l == 10 && strncmp(cpt, "deep_paths", l) == 0) ||
(l == 13 && strncmp(cpt, "deep_paths_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_allow_deep_paths;
@ -10641,12 +10424,6 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
} else if(l == 17 && strncmp(cpt, "no_force_dots_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_no_force_dots;
} else if((l == 15 && strncmp(cpt, "no_j_force_dots", l) == 0) ||
(l == 18 && strncmp(cpt, "no_j_force_dots_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_no_j_force_dots;
} else if(l == 19 && strncmp(cpt, "no_j_force_dots_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_no_j_force_dots;
} else if((l == 9 && strncmp(cpt, "lowercase", l) == 0) ||
(l == 12 && strncmp(cpt, "lowercase_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_allow_lowercase;
@ -10736,8 +10513,6 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
strcpy(mode, "clear");
if(r & isoburn_igopt_omit_version_numbers)
strcat(mode, ":omit_version");
if(r & isoburn_igopt_only_iso_versions)
strcat(mode, ":only_iso_version");
if(r & isoburn_igopt_allow_deep_paths)
strcat(mode, ":deep_paths");
if(r & isoburn_igopt_allow_longer_paths)
@ -10746,8 +10521,6 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
strcat(mode, ":long_names");
if(r & isoburn_igopt_no_force_dots)
strcat(mode, ":no_force_dots");
if(r & isoburn_igopt_no_j_force_dots)
strcat(mode, ":no_j_force_dots");
if(r & isoburn_igopt_allow_lowercase)
strcat(mode, ":lowercase");
if(r & isoburn_igopt_allow_full_ascii)

View File

@ -19,7 +19,7 @@
*/
#define xorriso_libisoburn_req_major 0
#define xorriso_libisoburn_req_minor 5
#define xorriso_libisoburn_req_micro 4
#define xorriso_libisoburn_req_micro 0
struct SpotlisT; /* List of intervals with different read qualities */