Compare commits
80 Commits
ZeroFourEi
...
ZeroFiveFo
Author | SHA1 | Date | |
---|---|---|---|
ed61d8f53b | |||
ee169a6df1 | |||
d5601e4e06 | |||
7d79d06765 | |||
38d296423b | |||
83216597c2 | |||
5b369d3c52 | |||
f4b46cf499 | |||
1a18491b03 | |||
270fdd77f2 | |||
3076ce56fb | |||
932a7e84e1 | |||
dfd0466291 | |||
8a3b4e2207 | |||
ee4f766c27 | |||
9832edf4a1 | |||
4c91872b2a | |||
f75d454b6a | |||
7b0c712719 | |||
ae874e4d5b | |||
4f7a2556bd | |||
45c12f0844 | |||
d1855c8895 | |||
fd0f3467ad | |||
642a2bc48e | |||
006fb7078e | |||
2bd7307dfa | |||
cc0ddbeb10 | |||
a65aa4f804 | |||
6f63c6388c | |||
1afe1443be | |||
df5d4a2f90 | |||
8d7df2b2ff | |||
24bbe47f18 | |||
7878f1f039 | |||
1e4e51edfe | |||
2fc5bf7849 | |||
d5e640d788 | |||
576af9ea89 | |||
214d6e6741 | |||
0c655d438e | |||
f68f875a6c | |||
13c327e370 | |||
3f42df50a3 | |||
9e78c78e43 | |||
99e2df2208 | |||
04c6625024 | |||
f68ee78352 | |||
b76161a698 | |||
2eec5bf40a | |||
2d11c253e3 | |||
a2a778c72f | |||
78fc4007ba | |||
27ba46494d | |||
0aec43a06a | |||
5656343e94 | |||
a08a616676 | |||
62777e93aa | |||
f4507fca34 | |||
4374d984d1 | |||
6a9c99cbd8 | |||
eec4dd9915 | |||
7ae90cc334 | |||
38e16d9370 | |||
91e0b07080 | |||
fe63ef9481 | |||
3451559feb | |||
829c0404c3 | |||
b353d04204 | |||
c139b45c26 | |||
2ee8fa58d7 | |||
60454fbf63 | |||
ccb22c3ef3 | |||
b4d9c81fe8 | |||
50e5349d09 | |||
d348c6dac6 | |||
ffbcb13040 | |||
7d389e0889 | |||
e7bde25551 | |||
bd18a89bc2 |
@ -9,8 +9,8 @@ libburn (if included) is Copyright (C) 2002-2006 Derek Foreman, Ben Jansens
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 as
|
||||
published by the Free Software Foundation.
|
||||
it under the terms of the GNU General Public License version 2
|
||||
or later as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
17
Makefile.am
17
Makefile.am
@ -92,9 +92,10 @@ buildstamped: buildstamp
|
||||
|
||||
|
||||
|
||||
## Build test applications
|
||||
## Build companion applications
|
||||
noinst_PROGRAMS = \
|
||||
test/compare_file
|
||||
test/compare_file \
|
||||
xorriso/make_xorriso_1
|
||||
|
||||
# A program to compare two files in mirrored trees in mounted filesystems
|
||||
# To compare tree /media/dvd and /original/dir :
|
||||
@ -105,6 +106,12 @@ 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
|
||||
|
||||
## ========================================================================= ##
|
||||
|
||||
@ -159,6 +166,8 @@ nodist_pkgconfig_DATA = \
|
||||
|
||||
man_MANS = xorriso/xorriso.1
|
||||
|
||||
info_TEXINFOS = xorriso/xorriso.texi
|
||||
|
||||
EXTRA_DIST = \
|
||||
libisoburn-1.pc.in \
|
||||
version.h.in \
|
||||
@ -172,6 +181,8 @@ EXTRA_DIST = \
|
||||
INSTALL \
|
||||
xorriso/changelog.txt \
|
||||
xorriso/xorriso_buildstamp_none.h \
|
||||
xorriso/README \
|
||||
xorriso/README_gnu_xorriso \
|
||||
xorriso/make_docs.sh \
|
||||
$(man_MANS)
|
||||
|
||||
|
||||
|
44
README
44
README
@ -1,10 +1,10 @@
|
||||
------------------------------------------------------------------------------
|
||||
http:libburnia-project.org
|
||||
------------------------------------------------------------------------------
|
||||
libisoburn. By Vreixo Formoso <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
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.4.8.pl00.tar.gz
|
||||
http://files.libburnia-project.org/releases/libisoburn-0.5.4.pl00.tar.gz
|
||||
Copyright (C) 2006-2010 Vreixo Formoso, Thomas Schmitt.
|
||||
Provided under GPL version 2 or later.
|
||||
------------------------------------------------------------------------------
|
||||
@ -18,7 +18,9 @@ The price for that is thorough specialization on data files in ISO-9660
|
||||
filesystem images. So libisoburn is not suitable for audio (CD-DA) or any
|
||||
other CD layout which does not entirely consist of ISO-9660 sessions.
|
||||
|
||||
Currently it is fully supported on Linux with kernels >= 2.4 and on
|
||||
xorriso is a command line application of libisoburn, libisofs, and libburn.
|
||||
|
||||
Currently they are fully supported on Linux with kernels >= 2.4 and on
|
||||
FreeBSD versions with ATAPI/CAM support enabled in the kernel, see atapicam(4).
|
||||
On other X/Open compliant systems libburn will only offer POSIX i/o with disk
|
||||
file objects, but no direct MMC operation on CD/DVD/BD drives.
|
||||
@ -29,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.4.8 :
|
||||
- libburn.so.4 , version libburn-0.7.6 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.26 or higher
|
||||
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
|
||||
libisoburn and xorriso will not start with libraries which are older than their
|
||||
headers seen at compile time.
|
||||
|
||||
Obtain libisoburn-0.4.8.pl00.tar.gz, take it to a directory of your choice
|
||||
Obtain libisoburn-0.5.4.pl00.tar.gz, take it to a directory of your choice
|
||||
and do:
|
||||
|
||||
tar xzf libisoburn-0.4.8.pl00.tar.gz
|
||||
cd libisoburn-0.4.8
|
||||
tar xzf libisoburn-0.5.4.pl00.tar.gz
|
||||
cd libisoburn-0.5.4
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -61,8 +63,9 @@ as well as
|
||||
|
||||
libisoburn comes with a command line and dialog application named xorriso,
|
||||
which offers a substantial part of libisoburn features to shell scripts and
|
||||
users. Its file xorriso/README describes a standalone tarball as first
|
||||
preference for statically linked xorriso installation.
|
||||
users. Its file xorriso/README_gnu_xorriso describes the tarball of the
|
||||
derived package GNU xorriso as first preference for a statically linked
|
||||
xorriso installation.
|
||||
The libisoburn installation described above produces a dynamically linked
|
||||
xorriso binary depending on libburn.so, libisofs.so, libisoburn.so.
|
||||
|
||||
@ -134,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 xorriso tarball as test/compare_file . Usually it is
|
||||
directory of the libisoburn 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
|
||||
@ -158,8 +161,8 @@ and vice versa:
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 as
|
||||
published by the Free Software Foundation.
|
||||
it under the terms of the GNU General Public License version 2 or later
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
@ -178,15 +181,10 @@ By Mario Danic <mario.danic@gmail.com>,
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
Copyright (C) 2006-2010 Mario Danic, Vreixo Formoso, Thomas Schmitt.
|
||||
|
||||
We, the copyright holders, agree on the interpretation that dynamical linking
|
||||
of our libraries constitutes "use of" and not "derivation from" our work in
|
||||
the sense of GPL, provided those libraries are compiled from our unaltered
|
||||
code or from altered code published under GPL.
|
||||
|
||||
So we will not raise any legal protest to dynamic linking of our
|
||||
libraries with applications not under GPL, as long as they fulfill
|
||||
We will not raise any legal protest to dynamic linking of our libraries
|
||||
with applications that are not under GPL, as long as they fulfill
|
||||
the condition of offering the library source code used, whether
|
||||
altered or unaltered, under the GPL, along with the application.
|
||||
altered or unaltered, under the GPLv2+, along with the application.
|
||||
Nevertheless, the safest legal position is not to link libburn with
|
||||
non-GPL compatible programs.
|
||||
|
||||
|
100
acinclude.m4
100
acinclude.m4
@ -1,3 +1,14 @@
|
||||
AC_DEFUN([LIBBURNIA_SET_FLAGS],
|
||||
[
|
||||
case $target_os in
|
||||
freebsd*)
|
||||
LDFLAGS="$LDFLAGS -L/usr/local/lib"
|
||||
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN([TARGET_SHIZZLE],
|
||||
[
|
||||
ARCH=""
|
||||
@ -39,8 +50,9 @@ dnl From Bruno Haible.
|
||||
dnl
|
||||
AC_DEFUN([LIBBURNIA_CHECK_ICONV],
|
||||
[
|
||||
|
||||
dnl Check whether it is allowed to link with -liconv
|
||||
AC_MSG_CHECKING([for separate -liconv ])
|
||||
AC_MSG_CHECKING([for iconv() in separate -liconv ])
|
||||
libburnia_liconv="no"
|
||||
libburnia_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -liconv"
|
||||
@ -54,6 +66,13 @@ 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([
|
||||
@ -68,6 +87,85 @@ 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
|
||||
|
50
configure.ac
50
configure.ac
@ -1,10 +1,12 @@
|
||||
AC_INIT([libisoburn], [0.4.8], [http://libburnia-project.org])
|
||||
AC_INIT([libisoburn], [0.5.4], [http://libburnia-project.org])
|
||||
AC_PREREQ([2.50])
|
||||
dnl AC_CONFIG_HEADER([config.h])
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
AC_CANONICAL_TARGET
|
||||
|
||||
LIBBURNIA_SET_FLAGS
|
||||
|
||||
AM_INIT_AUTOMAKE([subdir-objects])
|
||||
|
||||
dnl Hint: Search list for version code aspects:
|
||||
@ -20,8 +22,8 @@ dnl LT_CURREN, LT_AGE, LT_REVISION where SONAME becomes LT_CURRENT - LT_AGE
|
||||
dnl
|
||||
dnl These three are only copies to provide libtool with unused LT_RELEASE
|
||||
ISOBURN_MAJOR_VERSION=0
|
||||
ISOBURN_MINOR_VERSION=4
|
||||
ISOBURN_MICRO_VERSION=8
|
||||
ISOBURN_MINOR_VERSION=5
|
||||
ISOBURN_MICRO_VERSION=4
|
||||
|
||||
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
|
||||
|
||||
@ -34,16 +36,16 @@ dnl Libtool versioning
|
||||
dnl Generate libisoburn.so.1.x.y
|
||||
dnl SONAME will become LT_CURRENT - LT_AGE
|
||||
dnl
|
||||
dnl ts B00125
|
||||
dnl This is the release version 0.4.8 = libisoburn.so.1.37.0
|
||||
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 LT_CURRENT++, LT_AGE++ have not happened yet.
|
||||
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
|
||||
dnl
|
||||
dnl SONAME = 38 - 37 = 1 . Library name = libisoburn.so.1.37.0
|
||||
dnl SONAME = 44 - 43 = 1 . Library name = libisoburn.so.1.43.0
|
||||
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
|
||||
LT_CURRENT=38
|
||||
LT_AGE=37
|
||||
LT_CURRENT=44
|
||||
LT_AGE=43
|
||||
LT_REVISION=0
|
||||
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||
|
||||
@ -71,11 +73,22 @@ 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, , )
|
||||
AC_CHECK_LIB(iconv, libiconv, , )
|
||||
|
||||
fi
|
||||
|
||||
AC_PROG_LIBTOOL
|
||||
AC_SUBST(LIBTOOL_DEPS)
|
||||
@ -107,10 +120,19 @@ 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= )
|
||||
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
|
||||
fi
|
||||
else
|
||||
READLINE_DEF=
|
||||
fi
|
||||
@ -234,8 +256,8 @@ AC_CHECK_HEADER(libburn/libburn.h)
|
||||
AC_CHECK_HEADER(libisofs/libisofs.h)
|
||||
|
||||
dnl Check for proper library versions
|
||||
LIBBURN_REQUIRED=0.7.6
|
||||
LIBISOFS_REQUIRED=0.6.26
|
||||
LIBBURN_REQUIRED=0.7.8
|
||||
LIBISOFS_REQUIRED=0.6.30
|
||||
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
|
||||
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
/* libburn wrappers for libisoburn
|
||||
|
||||
Copyright 2007 - 2010 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
/* <<< A70929 : hardcoded CD-RW with fabricated -msinfo
|
||||
@ -281,7 +282,9 @@ 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)
|
||||
@ -338,7 +341,7 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
|
||||
|
||||
/* >>> recognize unsuitable media (but allow read-only media) */;
|
||||
|
||||
if(readonly) {
|
||||
if(readonly && s != BURN_DISC_EMPTY) {
|
||||
(*o)->fabricated_disc_status= BURN_DISC_FULL;
|
||||
/* This might be overwriteable media in a -ROM drive.
|
||||
Pitfall:
|
||||
@ -1067,7 +1070,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;
|
||||
off_t data_count, to_read;
|
||||
|
||||
info_mode= flag&255;
|
||||
*image_blocks= 0;
|
||||
@ -1082,11 +1085,15 @@ int isoburn_read_iso_head(struct burn_drive *d, int lba,
|
||||
capacity = 0x7ffffff0;
|
||||
ret = 1;
|
||||
}
|
||||
if(ret > 0 && (off_t) capacity * (off_t) 2048 >= (off_t) (64 * 1024)) {
|
||||
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;
|
||||
ret = burn_read_data(d, ((off_t) lba) * (off_t) 2048, (char *) buffer,
|
||||
(off_t) 64*1024, &data_count, 2); /* no error messages */
|
||||
} else
|
||||
ret= 0;
|
||||
to_read, &data_count, 2); /* no error messages */
|
||||
} else
|
||||
ret= 0;
|
||||
if(ret<=0)
|
||||
return(-1*!!(flag&(1<<15)));
|
||||
if(info_mode==2)
|
||||
@ -1633,7 +1640,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, num_tracks, adr_num, i, j, total_tracks;
|
||||
int ret, num_sessions= 0, 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];
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
|
@ -8,6 +8,8 @@
|
||||
|
||||
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
/* ( derived from stub generated by CgeN on Sat, 01 Sep 2007 12:04:36 GMT ) */
|
||||
@ -447,6 +449,17 @@ 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;
|
||||
@ -848,6 +861,12 @@ 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);
|
||||
}
|
||||
|
||||
@ -900,11 +919,13 @@ 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);
|
||||
o->omit_version_numbers= (!!(relax&1)) |
|
||||
(2 * !!(relax & isoburn_igopt_only_iso_versions));
|
||||
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);
|
||||
o->no_force_dots= (!!(relax&16)) |
|
||||
(2 * !!(relax & isoburn_igopt_no_j_force_dots));
|
||||
o->allow_lowercase= !!(relax&32);
|
||||
o->allow_full_ascii= !!(relax&64);
|
||||
o->joliet_longer_paths= !!(relax&128);
|
||||
@ -1059,3 +1080,64 @@ 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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,8 +2,9 @@
|
||||
/*
|
||||
Class struct of libisoburn.
|
||||
|
||||
Copyright 2007 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
#ifndef Isoburn_includeD
|
||||
@ -349,8 +350,10 @@ 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 :1;
|
||||
unsigned int omit_version_numbers :2;
|
||||
|
||||
/**
|
||||
* Allow ISO-9660 directory hierarchy to be deeper than 8 levels.
|
||||
@ -374,8 +377,10 @@ 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 :1;
|
||||
unsigned int no_force_dots :2;
|
||||
|
||||
/**
|
||||
* Allow lowercase characters in ISO-9660 filenames. By default, only
|
||||
@ -487,6 +492,29 @@ 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];
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
@ -214,6 +215,7 @@ 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)
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
Copyright 2007-2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
/** Overview
|
||||
@ -132,7 +133,7 @@ file itself: libisoburn/libisoburn.h .
|
||||
They shall link with -lisofs -lburn -lisoburn or with the .o files emerging
|
||||
from building those libraries from their sources.
|
||||
|
||||
Applications must use 64 bit off_t, e.g. on 32-bit Linux by defining
|
||||
Applications must use 64 bit off_t, e.g. on 32-bit GNU/Linux by defining
|
||||
#define _LARGEFILE_SOURCE
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
or take special precautions to interface with the library by 64 bit integers
|
||||
@ -216,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 26
|
||||
#define isoburn_libisofs_req_micro 30
|
||||
|
||||
/** The minimum version of libburn to be used with this version of libisoburn
|
||||
at compile time.
|
||||
@ -224,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 6
|
||||
#define isoburn_libburn_req_micro 8
|
||||
|
||||
|
||||
/** The minimum version of libisofs to be used with this version of libisoburn
|
||||
@ -259,8 +260,8 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
|
||||
@since 0.1.0
|
||||
*/
|
||||
#define isoburn_header_version_major 0
|
||||
#define isoburn_header_version_minor 4
|
||||
#define isoburn_header_version_micro 8
|
||||
#define isoburn_header_version_minor 5
|
||||
#define isoburn_header_version_micro 4
|
||||
/** Note:
|
||||
Above version numbers are also recorded in configure.ac because libtool
|
||||
wants them as parameters at build time.
|
||||
@ -916,7 +917,7 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
|
||||
advisable if the designed audience has Unix style systems.
|
||||
bit1= joliet
|
||||
Longer filenames for Windows systems.
|
||||
Weaker than RockRidge, but also readable with Linux.
|
||||
Weaker than RockRidge, but also readable with GNU/Linux.
|
||||
bit2= iso1999
|
||||
This is rather exotic. Better do not surprise the readers.
|
||||
bit3= hardlinks
|
||||
@ -961,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 identifiers. Version numbers are usually
|
||||
not used.
|
||||
ISO-9660 and Joliet identifiers.
|
||||
Version numbers are usually not used by readers.
|
||||
bit1= allow_deep_paths
|
||||
Allow ISO-9660 directory hierarchy to be deeper
|
||||
than 8 levels.
|
||||
@ -1011,7 +1012,18 @@ 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
|
||||
@ -1026,6 +1038,8 @@ 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);
|
||||
|
||||
@ -1166,6 +1180,67 @@ 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 */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
|
@ -126,11 +126,13 @@ 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 : %d <> %d\n", a, s1.st_uid, s2.st_uid);
|
||||
printf("%s : st_uid : %lu <> %lu\n",
|
||||
a, (unsigned long) s1.st_uid, (unsigned long) s2.st_uid);
|
||||
differs= 1;
|
||||
}
|
||||
if(s1.st_gid != s2.st_gid) {
|
||||
printf("%s : st_gid : %d <> %d\n", a, s1.st_gid, s2.st_gid);
|
||||
printf("%s : st_gid : %lu <> %lu\n",
|
||||
a, (unsigned long) s1.st_gid, (unsigned long) s2.st_gid);
|
||||
differs= 1;
|
||||
}
|
||||
if((S_ISCHR(s1.st_mode) && S_ISCHR(s2.st_mode)) ||
|
||||
|
6
xorriso/AUTHORS_gnu_xorriso
Normal file
6
xorriso/AUTHORS_gnu_xorriso
Normal file
@ -0,0 +1,6 @@
|
||||
Derek Foreman
|
||||
Ben Jansens
|
||||
Thomas Schmitt
|
||||
Mario Danic
|
||||
Vreixo Formoso Lopes
|
||||
|
674
xorriso/COPYING_gnu_xorriso
Normal file
674
xorriso/COPYING_gnu_xorriso
Normal file
@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
27
xorriso/COPYRIGHT_gnu_xorriso
Normal file
27
xorriso/COPYRIGHT_gnu_xorriso
Normal file
@ -0,0 +1,27 @@
|
||||
Derek Foreman <derek@signalmarketing.com>
|
||||
Ben Jansens <xor@orodu.net>
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
Mario Danic <mario.danic@gmail.com>,
|
||||
Vreixo Formoso <metalpain2002@yahoo.es>
|
||||
|
||||
GNU xorriso is a compilation of
|
||||
xorriso Copyright (C) 2007-2010 Thomas Schmitt
|
||||
libisoburn Copyright (C) 2007-2010 Vreixo Formoso, Thomas Schmitt
|
||||
libisofs Copyright (C) 2007-2010 Vreixo Formoso, Mario Danic, Thomas Schmitt
|
||||
libburn Copyright (C) 2002-2006 Derek Foreman, Ben Jansens
|
||||
2006-2010 Mario Danic, Thomas Schmitt
|
||||
from libburnia-project.org with a license derived from GPLv2+.
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 3
|
||||
or later as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
@ -1,11 +1,11 @@
|
||||
------------------------------------------------------------------------------
|
||||
libburnia-project.org scdbackup.sourceforge.net/xorriso_eng.html
|
||||
Contribution of libburnia-project.org to the GNU Operating System
|
||||
------------------------------------------------------------------------------
|
||||
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.4.8.pl00.tar.gz
|
||||
Copyright (C) 2006-2010 Thomas Schmitt, provided under GPL version 2 or later.
|
||||
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
|
||||
Provided under GPL version 3 or later. No warranty.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ A special property of xorriso is that it needs neither an external ISO 9660
|
||||
formatter program nor an external burn program for CD or DVD but rather
|
||||
incorporates the libraries of libburnia-project.org .
|
||||
|
||||
Currently it is fully supported on Linux with kernels >= 2.4 and on
|
||||
Currently it is fully supported on GNU/Linux with kernels >= 2.4 and on
|
||||
FreeBSD versions with ATAPI/CAM support enabled in the kernel, see atapicam(4).
|
||||
On other X/Open compliant systems there will only be POSIX i/o with disk
|
||||
file objects, but no direct MMC operation on CD/DVD/BD drives.
|
||||
@ -31,8 +31,7 @@ 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 xorriso standalone
|
||||
tarball.
|
||||
The most simple way to get xorriso from source code is the GNU xorriso tarball.
|
||||
|
||||
Prerequisites:
|
||||
The tarball contains everything that is needed except the following system
|
||||
@ -41,15 +40,15 @@ components:
|
||||
plus on FreeBSD: libiconv, libcam, IDE and SATA drives need atapicam
|
||||
Optional at compile time are:
|
||||
libreadline and the readline-dev headers make dialog mode more convenient.
|
||||
on Linux: libacl and libacl-devel allow getting and setting ACLs.
|
||||
on GNU/Linux: libacl and libacl-devel allow getting and setting ACLs.
|
||||
zlib and zlib-devel allow zisofs compression.
|
||||
If they were present at compile time, then the optional libraries have to
|
||||
be present at runtime, too.
|
||||
|
||||
Obtain xorriso-0.4.8.pl00.tar.gz, take it to a directory of your choice and do:
|
||||
Obtain xorriso-0.5.4.tar.gz, take it to a directory of your choice and do:
|
||||
|
||||
tar xzf xorriso-0.4.8.pl00.tar.gz
|
||||
cd xorriso-0.4.8
|
||||
tar xzf xorriso-0.5.4.tar.gz
|
||||
cd xorriso-0.5.4
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -71,22 +70,25 @@ or you may execute as superuser:
|
||||
make install
|
||||
|
||||
For general concepts, options and usage examples see
|
||||
info xorriso
|
||||
or
|
||||
man 1 xorriso
|
||||
|
||||
This man page is part of the tarball as
|
||||
The documents are part of the tarball as
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Original source text of both is
|
||||
xorriso/xorriso.texi
|
||||
You may get a first glimpse by
|
||||
info ./xorriso/xorriso.info
|
||||
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
|
||||
@ -97,9 +99,9 @@ Other deliberate dependency reduction options of ./configure are:
|
||||
--disable-xattr avoid use of xattr functions like listxattr()
|
||||
--disable-zlib avoid use of zlib functions like compress2()
|
||||
|
||||
xorriso brings own system adapters which allow burning optical media on Linux
|
||||
and FreeBSD. Alternatively it can use libcdio-0.83 or later for sending
|
||||
commands to optical drives:
|
||||
xorriso brings own system adapters which allow burning optical media on
|
||||
GNU/Linux and FreeBSD. Alternatively it can use libcdio-0.83 or later for
|
||||
sending commands to optical drives:
|
||||
--enable-libcdio
|
||||
|
||||
xorriso allows to use external processes as file content filters. This is
|
||||
@ -110,14 +112,14 @@ By default the filter feature is disabled if effective user id and real
|
||||
user id differ. This ban can be lifted by
|
||||
--enable-external-filters-setuid
|
||||
|
||||
Sometimes xorriso will yield better write performance on Linux if 64 KB are
|
||||
Sometimes xorriso will yield better write performance on GNU/Linux if 64 KB are
|
||||
transmitted in each write operation rather than 32 KB. See option -dvd_obs .
|
||||
64k can be made default at configure time by:
|
||||
--enable-dvd-obs-64k
|
||||
|
||||
For xorriso -as cdrecord emulation only:
|
||||
In some situations Linux may deliver a better write performance to drives if
|
||||
the track input is read with O_DIRECT (see man 2 open). The included libburn
|
||||
In some situations GNU/Linux may deliver a better write performance to drives
|
||||
if the track input is read with O_DIRECT (see man 2 open). The included libburn
|
||||
and the cdrecord emulation of xorriso can be told to use this peculiar read
|
||||
mode by:
|
||||
--enable-track-src-odirect
|
||||
@ -280,20 +282,20 @@ 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.4.8 :
|
||||
- libburn.so.4 , version libburn-0.7.6 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.26 or higher
|
||||
Dynamic library and compile time header requirements for libisoburn-0.5.2 :
|
||||
- libburn.so.4 , version libburn-0.7.8 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.
|
||||
|
||||
Standalone xorriso has less runtime dependencies and can be moved more freely.
|
||||
GNU xorriso has less runtime dependencies and can be moved more freely.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 or later
|
||||
it under the terms of the GNU General Public License version 3 or later
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
@ -306,16 +308,36 @@ Standalone xorriso has less runtime dependencies and can be moved more freely.
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
Based on and sub project of:
|
||||
|
||||
GNU xorriso is feature-wise equivalent to the dynamic compilation of
|
||||
libburnia libraries and libburnia program xorriso.
|
||||
It restricts itself to a technical form where the legal commitments of the
|
||||
libburnia project and the legal intentions of FSF match completely.
|
||||
|
||||
Libburnia project is committed to provide support for this copy in the same
|
||||
way as for its own software releases. It is further committed to keep its
|
||||
own licenses open for obtaining future copies under GPLv2+.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
libburnia program xorriso is based on and sub project of:
|
||||
libburnia-project.org
|
||||
By Mario Danic <mario.danic@gmail.com>,
|
||||
Vreixo Formoso <metalpain2002@yahoo.es>
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
By Mario Danic <mario.danic@gmail.com>, libburn, libisofs
|
||||
Vreixo Formoso <metalpain2002@yahoo.es>, libisofs, libisoburn
|
||||
Thomas Schmitt <scdbackup@gmx.net>, libburn, libisofs,
|
||||
libisoburn, xorriso
|
||||
Copyright (C) 2006-2010 Mario Danic, Vreixo Formoso, Thomas Schmitt.
|
||||
|
||||
libburnia-project.org is inspired by and in other components still containing
|
||||
parts of old
|
||||
libburnia-project.org is inspired by and in libburn still containing parts
|
||||
of old
|
||||
Libburn. By Derek Foreman <derek@signalmarketing.com> and
|
||||
Ben Jansens <xor@orodu.net>
|
||||
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
This text itself is
|
||||
Copyright (c) 2007 - 2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
and is freely distributable.
|
||||
It shall only be modified in sync with the technical properties of xorriso.
|
||||
If you make use of the license to derive modified versions of xorriso
|
||||
then you are entitled to modify this text under that same license.
|
||||
|
@ -6843,7 +6843,7 @@ Lifted ban to derive GPLv3, extended copyright range to 2010
|
||||
configure.ac
|
||||
Corrected wrong micro version number
|
||||
|
||||
25 Jan 2010 []
|
||||
25 Jan 2010 [3048]
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
@ -6871,22 +6871,664 @@ xorriso/xorriso_private.h
|
||||
test/compare_file.c
|
||||
Lifted ban to derive GPLv3, extended copyright range to 2010
|
||||
|
||||
[] ([3044])
|
||||
25 Jan 2010 [3049] ([3044])
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------------ cycle - xorriso-0.4.9 - 2010.01.25.142705
|
||||
|
||||
------------------------------------ cycle - xorriso-0.4.9 -
|
||||
------------------------------------ cycle - xorriso-0.4.9 -
|
||||
|
||||
25 Jan 2010 [3050]
|
||||
move -m Promoted branch to tag \
|
||||
http://svn.libburnia-project.org/libisoburn/branches/ZeroFourEight \
|
||||
http://svn.libburnia-project.org/libisoburn/tags/ZeroFourEight
|
||||
|
||||
27 Jan 2010 [3051]
|
||||
README
|
||||
Changed leftover text which disallowed GPLv3
|
||||
|
||||
04 Feb 2010 [3052]
|
||||
xorriso/xorriso.1
|
||||
Small corrections in xorriso man page
|
||||
|
||||
2010.02.04.082710 [3053]
|
||||
acinclude.m4
|
||||
configure.ac
|
||||
xorriso/configure_ac.txt
|
||||
Forcing use of /usr/local on FreeBSD by LDFLAGS and CPPFLAGS
|
||||
|
||||
2010.02.08.110814 [3055]
|
||||
xorriso/xorrisoburn.c
|
||||
Removed surplus quotes from an error message
|
||||
|
||||
8 Feb 2010 [3056]
|
||||
svn move -m 'Marked libisofs SVN copy as outdated (use bzr on lp)'
|
||||
http://svn.libburnia-project.org/libisofs
|
||||
http://svn.libburnia-project.org/libisofs_outdated
|
||||
|
||||
2010.02.10.150252 [3057]
|
||||
README
|
||||
Updated license statement about our legal view and future licenses
|
||||
|
||||
2010.02.10.150501 [3058]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
Requiring libisofs-0.6.28 now
|
||||
|
||||
2010.02.10.150547 [3059]
|
||||
xorriso/configure_ac.txt
|
||||
Adapted xorriso-standalone to version leap libisofs-0.6.29
|
||||
|
||||
10 Feb 2010 [3060]
|
||||
xorriso/xorriso_eng.html
|
||||
Updated xorriso web page
|
||||
|
||||
------------------------------------ cycle - xorriso-0.4.9 - 2010.02.10.150547
|
||||
Bug fix: Regression in libisofs introduced with xorriso-0.4.2 in August 2009:
|
||||
-boot_image could lead to SIGSEGV
|
||||
|
||||
|
||||
12 Feb 2010 [3061]
|
||||
xorriso/README
|
||||
Switched from xorriso-standalone GPLv2+ to GNU xorriso GPLv3+
|
||||
|
||||
svn move -m 'Renamed xorriso/README to xorriso/README_gnu_xorriso' \
|
||||
xorriso/README xorriso/README_gnu_xorriso
|
||||
|
||||
2010.02.12.153945 [3062]
|
||||
xorriso/xorriso.c
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/README_gnu_xorriso
|
||||
+ xorriso/COPYING_gnu_xorriso
|
||||
xorriso/xorriso_eng.html
|
||||
Switched from xorriso-standalone GPLv2+ to GNU xorriso GPLv3+
|
||||
|
||||
2010.02.12.213121 [3065]
|
||||
xorriso/xorriso.1
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/xorriso_eng.html
|
||||
Changed docs and comments to "GNU/Linux" where appropriate
|
||||
|
||||
------------------------------------ cycle - xorriso-0.4.9 - 2010.02.12.213121
|
||||
|
||||
2010.02.14.151045 [3067]
|
||||
README
|
||||
COPYRIGHT
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/isoburn.h
|
||||
libisoburn/isoburn.c
|
||||
libisoburn/data_source.c
|
||||
libisoburn/burn_wrap.c
|
||||
libisoburn/isofs_wrap.c
|
||||
Added or adjusted copyright and license statements in single files
|
||||
|
||||
2010.02.14.151610 [3068]
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
xorriso/xorriso_makefile_am.txt
|
||||
xorriso/xorriso.1
|
||||
xorriso/xorriso_eng.html
|
||||
+ xorriso/AUTHORS_gnu_xorriso
|
||||
+ xorriso/COPYRIGHT_gnu_xorriso
|
||||
Added or adjusted copyright and license statements in single files
|
||||
|
||||
2010.02.14.172124 [3070]
|
||||
README
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/xorriso_makefile_am.txt
|
||||
Excluded unused libburn source module crc.c from GNU xorriso tarball
|
||||
|
||||
2010.02.15.204530 [3072]
|
||||
xorriso/xorriso_eng.html
|
||||
Adjustments with web page of GNU xorriso
|
||||
|
||||
------------------------------------ cycle - xorriso-0.4.9 - 2010.02.15.204530
|
||||
|
||||
2010.02.17.140002 [3074]
|
||||
xorriso/xorriso.c
|
||||
Bug fix for FreeBSD: xorriso could leave the drive tray locked
|
||||
|
||||
2010.02.18.125019 [3076]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorriso.c
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorrisoburn.c
|
||||
xorriso/xorriso.1
|
||||
New option -scsi_log
|
||||
|
||||
2010.02.19.172125 [3077]
|
||||
xorriso/xorrisoburn.c
|
||||
Bug fix: xorriso -update_r could lead to SIGSEGV if applied to a data file
|
||||
|
||||
19 Feb 2010 [3078] [3079]
|
||||
xorriso/xorriso_eng.html
|
||||
Adjustments with web page of GNU xorriso
|
||||
|
||||
------------------------------------ cycle - xorriso-0.4.9 - 2010.02.19.172125
|
||||
Bug fix on FreeBSD: xorriso could leave the drive tray locked
|
||||
Bug fix on FreeBSD: Piped input was falsely attributed a small fixed size
|
||||
Bug fix: xorriso -update_r could lead to SIGSEGV if applied to a data file
|
||||
New option -scsi_log
|
||||
|
||||
22 Feb 2010 [3081]
|
||||
xorriso/README_gnu_xorriso
|
||||
xorriso/xorriso_eng.html
|
||||
Mentioned bug-xorriso@gnu.org as a contact address for GNU xorriso
|
||||
|
||||
2010.02.22.195623 [3082]
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso.c
|
||||
Changed versioning and tarball name to match unpack directory name
|
||||
|
||||
22 Feb 2010 [3083]
|
||||
svn copy -m Branching for libisoburn release 0.5.0
|
||||
http://svn.libburnia-project.org/libisoburn/trunk
|
||||
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveZero
|
||||
|
||||
2010.02.22.213001 [3084]
|
||||
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.0
|
||||
|
||||
22 Feb 2010 [3085]
|
||||
Makefile.am
|
||||
Delivering xorriso/README_gnu_xorriso with libisoburn
|
||||
|
||||
22 Feb 2010 [3086]
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
----------------------------------- release - xorriso-0.5.0 - 2010.02.22.213001
|
||||
Bug fix: Regression in libisofs introduced with xorriso-0.4.2 in August 2009:
|
||||
-boot_image could lead to SIGSEGV
|
||||
Bug fix on FreeBSD: xorriso could leave the drive tray locked
|
||||
Bug fix on FreeBSD: Piped input was falsely attributed a small fixed size
|
||||
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
|
||||
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.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 -
|
||||
|
||||
===============================================================================
|
||||
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 ?
|
||||
|
||||
- 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
|
||||
by mkisofs ... -hide boot.catalog ...
|
||||
xorriso -toc reports:
|
||||
Boot bin_path: '/boot/isolinux/isolinux.bin'
|
||||
Boot cat_path: -not-found-at-load-time-
|
||||
|
||||
- what about split files and hard links ?
|
||||
|
||||
@ -6902,6 +7544,9 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
||||
|
||||
------------------------------------------------- important
|
||||
|
||||
- introduce a read offset for displaced ISO images ?
|
||||
(Copy from CD block 123456 to disk. Apply -img_displaced_by 123456s )
|
||||
|
||||
- options -print_info , -print_mark
|
||||
|
||||
- (ECMA-119 names in: -copyright_id , -abstract_id , -biblio_id)
|
||||
@ -6932,8 +7577,9 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
||||
|
||||
------------------------------------------------- development
|
||||
|
||||
- Replace Libisofs_new_fs_image_inO by Libisofs_hardlink_prooF
|
||||
and make the latter unconditional.
|
||||
- Is it possible to make use of iso_node_set_hidden()
|
||||
to hide e.g. boot catalogs ?
|
||||
Eventually emulate mkisofs -hide -hide-list
|
||||
|
||||
- Special pseudo ACL: "--remove-default"
|
||||
|
||||
@ -7000,11 +7646,6 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
||||
iso_node_set_name("xyz");
|
||||
}
|
||||
|
||||
- demo/ produces on FreeBSD several binaries of 500k each.
|
||||
On all systems gcc issues warnings.
|
||||
- Which demo binary is still valid ?
|
||||
|
||||
|
||||
------ feature enhancements :
|
||||
|
||||
- With 100,000 files in a single directory, adding new nodes becomes
|
||||
@ -7027,14 +7668,6 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
||||
- $partok {0...1} = 0
|
||||
|
||||
|
||||
- File checksums as backpack and as xattr values.
|
||||
Problem: If they are scattered over the data section then they will cause
|
||||
a lot of random access and thus be slow with BD. They need to be buffered
|
||||
in memory as zinfo and written all together after data section.
|
||||
|
||||
- Image checksum tag in the last data blocks of an image.
|
||||
A data file entry should point to that block.
|
||||
|
||||
- A dummy option in IsoWriteOpts which causes iso_image_create_burn_source()
|
||||
to end before actually data get written. (For -print_size)
|
||||
|
||||
|
@ -1,22 +1,29 @@
|
||||
AC_INIT([xorriso], [0.4.8], [http://libburnia-project.org])
|
||||
|
||||
# configure.ac stems from xorriso/configure_ac.txt and leads to ./configure
|
||||
# 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_PREREQ([2.50])
|
||||
dnl AC_CONFIG_HEADER([config.h])
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
AC_CANONICAL_TARGET
|
||||
|
||||
LIBBURNIA_SET_FLAGS
|
||||
|
||||
AM_INIT_AUTOMAKE([subdir-objects])
|
||||
|
||||
BURN_MAJOR_VERSION=0
|
||||
BURN_MINOR_VERSION=7
|
||||
BURN_MICRO_VERSION=7
|
||||
BURN_MINOR_VERSION=8
|
||||
BURN_MICRO_VERSION=1
|
||||
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=27
|
||||
LIBISOFS_MICRO_VERSION=31
|
||||
AC_SUBST(LIBISOFS_MAJOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MINOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MICRO_VERSION)
|
||||
@ -43,12 +50,25 @@ 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"
|
||||
@ -83,7 +103,6 @@ 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)
|
||||
@ -126,10 +145,20 @@ 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= )
|
||||
AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= )
|
||||
|
||||
fi
|
||||
else
|
||||
READLINE_DEF=
|
||||
fi
|
||||
@ -155,7 +184,7 @@ AC_ARG_ENABLE(xattr,
|
||||
[ --enable-xattr Enable use of xattr by libisofs, default=yes],
|
||||
, enable_xattr=yes)
|
||||
if test x$enable_xattr = xyes; then
|
||||
dnl Check whether there is the header for Linux xattr.
|
||||
dnl Check whether there is the header for GNU/Linux xattr.
|
||||
dnl If not, erase this macro which would enable use of listxattr and others
|
||||
XATTR_DEF="-DLibisofs_with_aaip_xattR"
|
||||
AC_CHECK_HEADER(attr/xattr.h, AC_CHECK_LIB(c, listxattr, X= , XATTR_DEF= ), XATTR_DEF= )
|
||||
|
@ -55,12 +55,16 @@ then
|
||||
-e 's/<b>Command processing:<\/b>/\ <BR><b>Command processing:<\/b>/' \
|
||||
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\ <BR><b>Dialog, Readline, Result pager:<\/b>/' \
|
||||
-e 's/<b>Aquiring source and target drive:<\/b>/\ <BR><b>Aquiring source and target drive:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Data manipulations:<\/b>/\ <BR><b>Data manipulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Influencing the behavior of image/\ <BR><b>Influencing the behavior of image/' \
|
||||
-e 's/<b>Inserting files into ISO image:<\/b>/\ <BR><b>Inserting files into ISO image:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>File manipulations:<\/b>/\ <BR><b>File manipulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Tree traversal command -find:<\/b>/\ <BR><b>Tree traversal command -find:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−iso_rr_pattern/<p>\ <BR><b>\−iso_rr_pattern/' \
|
||||
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
|
||||
-e 's/<b>Writing the result:<\/b>/\ <BR><b>Writing the result:<\/b><BR>/' \
|
||||
-e 's/<b>Filters for data file content:<\/b>/\ <BR><b>Filters for data file content:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Writing the result, drive control:<\/b>/\ <BR><b>Writing the result, drive control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^-find \/ /\ \ -find \/ /' \
|
||||
-e 's/<b>Settings for data insertion:<\/b>/\ <BR><b>Settings for data insertion:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Settings for file insertion:<\/b>/\ <BR><b>Settings for file insertion:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^$<\/b> ln -s/\ \ $<\/b> ln -s/' \
|
||||
-e 's/<b>Settings for result writing:<\/b>/\ <BR><b>Settings for result writing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^706k = 706kB/\ \ 706k = 706kB/' \
|
||||
@ -73,7 +77,7 @@ then
|
||||
-e 's/<b>Navigation in ISO image/\ <BR><b>Navigation in ISO image/' \
|
||||
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Evaluation of readability and recovery:<\/b>/\ <BR><b>Evaluation of readability and recovery:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>osirrox restore options:<\/b>/\ <BR><b>osirrox restore options:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>osirrox ISO-to-disk restore options:<\/b>/\ <BR><b>osirrox ISO-to-disk restore options:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Command compatibility emulations:<\/b>/\ <BR><b>Command compatibility emulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−as</<p>\ <BR><b>\−as</' \
|
||||
-e 's/<b>Scripting, dialog and/\ <BR><b>Scripting, dialog and/' \
|
||||
|
10
xorriso/make_docs.sh
Executable file
10
xorriso/make_docs.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/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
|
||||
|
||||
|
329
xorriso/make_xorriso_1.c
Normal file
329
xorriso/make_xorriso_1.c
Normal file
@ -0,0 +1,329 @@
|
||||
|
||||
/*
|
||||
( 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);
|
||||
}
|
@ -1,35 +1,50 @@
|
||||
#!/bin/sh
|
||||
|
||||
# make_xorriso_standalone.sh
|
||||
# Copyright 2008 - 2010 Thomas Schmitt, scdbackup@gmx.net, GPL
|
||||
# Copyright 2008 - 2010 Thomas Schmitt, scdbackup@gmx.net, GPLv2+
|
||||
#
|
||||
# Not intended for general use in production installations !
|
||||
#
|
||||
# This is a development tool which expects a special setup of directories.
|
||||
# It is to be executed in a common parent of the directories
|
||||
# nglibisofs-develop libburn-develop libisoburn-develop
|
||||
# where tarballs or repository copies have been installed of
|
||||
# libisofs libburn libisoburn
|
||||
# obtained by following instructions on http://libburnia-project.org.
|
||||
#
|
||||
# Creates a standalone tree for building xorriso
|
||||
# from the contents of a unified libburnia development tree.
|
||||
# It creates a new directory tree
|
||||
# xorriso-standalone
|
||||
# for building GNU xorriso.
|
||||
#
|
||||
# The ./bootstrap script gets applied and a source tarball
|
||||
# is made.
|
||||
#
|
||||
# From that tree can be build a binary xorriso/xorriso
|
||||
# which at runtime depends only on libc and libpthread.
|
||||
# Execute in $lone_dir :
|
||||
# From that tree can be build a binary xorriso/xorriso which at runtime
|
||||
# does not depend on installed libburnia libraries.
|
||||
# Execute in xorriso-standalone :
|
||||
#
|
||||
# ./configure && make
|
||||
#
|
||||
|
||||
# By the variable setting create_gnu_xorriso="yes"
|
||||
# the result will become a GNU xorriso tarball under GPLv3+.
|
||||
# Without this setting, the result is technically equivalent but
|
||||
# stays under GPLv2+. In that case the files xorriso/*_gnu_xorriso
|
||||
# are merely informative.
|
||||
# Note that it is not permissible to revert the transition from
|
||||
# GPLv2+ to GPLv3+. (Rather derive a new GPLv2+ from libburnia.)
|
||||
|
||||
create_gnu_xorriso="yes"
|
||||
|
||||
|
||||
current_dir=$(pwd)
|
||||
lone_dir="$current_dir"/"xorriso-standalone"
|
||||
|
||||
xorriso_rev=0.4.8
|
||||
# For unstable uploads:
|
||||
## xorriso_pl=""
|
||||
# For stable releases:
|
||||
xorriso_pl=".pl00"
|
||||
xorriso_rev=0.5.4
|
||||
# For unstable uploads and patch level 0 of stable releases:
|
||||
xorriso_pl=""
|
||||
# For higher patch levels of stable releases:
|
||||
## xorriso_pl=".pl01"
|
||||
|
||||
with_bootstrap_tarball=1
|
||||
|
||||
@ -105,8 +120,6 @@ copy_files xorriso/xorriso_makefile_am.txt "$lone_dir"/Makefile.am
|
||||
|
||||
# copy_files xorriso/xorriso_pc_in.txt "$lone_dir"/xorriso.pc.in
|
||||
|
||||
copy_files xorriso/README "$lone_dir"/README
|
||||
|
||||
# echo "See end of xorriso/changelog.txt" >"$lone_dir"/TODO
|
||||
|
||||
|
||||
@ -122,13 +135,17 @@ xorriso/convert_man_to_html.sh
|
||||
create_dir "$lone_dir"/xorriso
|
||||
copy_files \
|
||||
xorriso/xorrisoburn.[ch] \
|
||||
xorriso/xorriso.[ch1] \
|
||||
xorriso/xorriso.[ch] \
|
||||
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
|
||||
|
||||
@ -155,6 +172,7 @@ copy_files doc/susp_aaip*.txt "$lone_dir"/doc
|
||||
copy_files doc/zisofs_format.txt "$lone_dir"/doc
|
||||
copy_files doc/checksums.txt "$lone_dir"/doc
|
||||
copy_files COPYRIGHT "$lone_dir"/libisofs
|
||||
test -e CONTRIBUTORS && cat CONTRIBUTORS >>"$lone_dir"/CONTRIBUTORS
|
||||
|
||||
# To get a common version.h
|
||||
cat version.h.in >> "$lone_dir"/version.h.in
|
||||
@ -197,18 +215,43 @@ create_dir "$lone_dir"/libburn
|
||||
goto_dir "$current_dir"/libburn-develop
|
||||
copy_files libburn/*.[ch] "$lone_dir"/libburn
|
||||
copy_files COPYRIGHT "$lone_dir"/libburn
|
||||
cat CONTRIBUTORS >>"$lone_dir"/CONTRIBUTORS
|
||||
|
||||
# Delete a source module of yet unclear ancestry.
|
||||
# The build process will avoid to use it.
|
||||
rm "$lone_dir"/libburn/crc.c
|
||||
|
||||
|
||||
# To get a common version.h
|
||||
cat version.h.in >> "$lone_dir"/version.h.in
|
||||
|
||||
# Decision about legal situation
|
||||
goto_dir "$current_dir"/libisoburn-develop
|
||||
if test "$create_gnu_xorriso" = "yes"
|
||||
then
|
||||
copy_files xorriso/README_gnu_xorriso "$lone_dir"/README
|
||||
copy_files xorriso/COPYRIGHT_gnu_xorriso "$lone_dir"/COPYRIGHT
|
||||
copy_files xorriso/COPYING_gnu_xorriso "$lone_dir"/COPYING
|
||||
copy_files xorriso/AUTHORS_gnu_xorriso "$lone_dir"/AUTHORS
|
||||
|
||||
# patch xorriso/xorriso.c to be GNU xorriso
|
||||
sed -e's/define Xorriso_libburnia_xorrisO/define Xorriso_GNU_xorrisO/' \
|
||||
-e's/This may be changed to Xorriso_GNU_xorrisO in order to c/C/' \
|
||||
<xorriso/xorriso.c >"$lone_dir"/xorriso/xorriso.c
|
||||
|
||||
else
|
||||
|
||||
copy_files README "$lone_dir"/README
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# tarball
|
||||
|
||||
if test "$with_bootstrap_tarball" = 1
|
||||
then
|
||||
|
||||
tarball_dir="$current_dir"/xorriso-"$xorriso_rev"
|
||||
tarball_dir="$current_dir"/xorriso-"$xorriso_rev""$xorriso_pl"
|
||||
mv "$lone_dir" "$tarball_dir"
|
||||
|
||||
goto_dir "$tarball_dir"
|
||||
@ -231,6 +274,16 @@ rm -r ./autom4te.cache
|
||||
chmod a+rx,go-w,u+w ./configure
|
||||
)
|
||||
|
||||
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/' \
|
||||
< Makefile.in > new_Makefile.in
|
||||
|
||||
mv new_Makefile.in Makefile.in
|
||||
fi
|
||||
|
||||
|
||||
cd "$current_dir"
|
||||
tar czf ./xorriso-"$xorriso_rev""$xorriso_pl".tar.gz $(basename "$tarball_dir")
|
||||
|
||||
|
1332
xorriso/xorriso.1
1332
xorriso/xorriso.1
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -16,19 +16,43 @@
|
||||
struct XorrisO;
|
||||
|
||||
|
||||
#define Xorriso_program_versioN "0.4.8"
|
||||
#define Xorriso_program_versioN "0.5.4"
|
||||
#define Xorriso_program_patch_leveL ""
|
||||
|
||||
|
||||
/* --------------------- Fundamental Management ------------------- */
|
||||
|
||||
|
||||
/* Get the version text (e.g. "0.4.2") of the program code.
|
||||
This may differ from Xorriso_program_versioN if xorriso is dynamically
|
||||
linked to an application.
|
||||
@param flag unused yet, submit 0
|
||||
@return readonly character string
|
||||
*/
|
||||
char *Xorriso__get_version_text(int flag);
|
||||
|
||||
|
||||
/* Get the patch level text (e.g. "" or ".pl01") of the program code.
|
||||
@param flag unused yet, submit 0
|
||||
@return readonly character string
|
||||
*/
|
||||
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.
|
||||
@ -887,6 +911,8 @@ int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode,
|
||||
/* Option -scdbackup_tag */
|
||||
int Xorriso_option_scdbackup_tag(struct XorrisO *xorriso, char *list_path,
|
||||
char *record_name, int flag);
|
||||
/* Option -scsi_log */
|
||||
int Xorriso_option_scsi_log(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -session_log */
|
||||
int Xorriso_option_session_log(struct XorrisO *xorriso, char *path, int flag);
|
||||
@ -978,6 +1004,10 @@ 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);
|
||||
|
||||
|
4079
xorriso/xorriso.info
Normal file
4079
xorriso/xorriso.info
Normal file
File diff suppressed because it is too large
Load Diff
4874
xorriso/xorriso.texi
Normal file
4874
xorriso/xorriso.texi
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,20 +1,22 @@
|
||||
<HTML>
|
||||
|
||||
<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, FreeBSD, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, BD-R, scdbackup">
|
||||
<META NAME="description" CONTENT="GNU xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions">
|
||||
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, GNU/Linux, Linux, FreeBSD, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, BD-R, scdbackup">
|
||||
<META NAME="robots" CONTENT="follow">
|
||||
<TITLE>xorriso homepage english</TITLE>
|
||||
<TITLE>GNU xorriso - GNU Project - Free Software Foundation</TITLE>
|
||||
<LINK rev="made" href="mailto:webmasters@gnu.org">
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000>
|
||||
<BODY BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000 ALINK=#A000A0>
|
||||
<FONT SIZE=+1>
|
||||
|
||||
<CENTER>
|
||||
<P><H2> Homepage of </H2>
|
||||
<H1> xorriso </H1>
|
||||
<P>
|
||||
<H1>GNU xorriso</H1>
|
||||
|
||||
<H2>ISO 9660 Rock Ridge Filesystem Manipulator for Linux and FreeBSD</H2>
|
||||
<H2>ISO 9660 Rock Ridge Filesystem Manipulator for GNU/Linux and FreeBSD</H2>
|
||||
</P>
|
||||
</CENTER>
|
||||
|
||||
<P>
|
||||
@ -39,19 +41,24 @@ About any CD, DVD, or BD recorder produced in the recent ten years.
|
||||
<BR>
|
||||
<A HREF="http://libburnia-project.org">libburn</A>
|
||||
supports recorders which are compliant to standards MMC-1 for CD and
|
||||
MMC-5 for DVD or BD. Linux and FreeBSD allow to access drives connected
|
||||
MMC-5 for DVD or BD.
|
||||
<BR>
|
||||
GNU/Linux and FreeBSD allow to access drives connected
|
||||
via SCSI, PATA (aka IDE, ATA), USB, or SATA.
|
||||
<BR>
|
||||
xorriso also operates on ISO images in data files or block devices.
|
||||
Images or add-on sessions may be written to about any kind of file object.
|
||||
</P>
|
||||
|
||||
<P>
|
||||
<H2>Software requirements :</H2>
|
||||
<DL>
|
||||
<DT>Linux with kernel 2.4 or higher, libc, libpthread :</DT>
|
||||
<DD>With kernel 2.4 an ATA drive has to be under ide-scsi emulation.</DD>
|
||||
<DT>GNU/Linux with kernel 2.4 or higher, libc, libpthread :</DT>
|
||||
<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 and SATA drives need atapicam running.</DD>
|
||||
<DD>PATA/IDE drives need atapicam running.</DD>
|
||||
<DD>SATA drives need atapicam or ahci 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>
|
||||
@ -70,14 +77,14 @@ but rather not with CD, DVD-R, DVD+R, BD-R.
|
||||
<DT>libreadline and libreadline-dev</DT>
|
||||
<DD>eventually make dialog more convenient.</DD>
|
||||
<DT>libacl and libacl-devel</DT>
|
||||
<DD>eventually allow on Linux to get and set ACLs.</DD>
|
||||
<DD>eventually allow on GNU/Linux to get and set ACLs.</DD>
|
||||
<DT>zlib and zlib-devel</DT>
|
||||
<DD>eventually allow zisofs and gzip compression.</DD>
|
||||
</DL>
|
||||
</P>
|
||||
|
||||
<P>
|
||||
This program has been tested on Linux, FreeBSD, and Solaris systems.<BR>
|
||||
This program has been tested on GNU/Linux, FreeBSD, and Solaris systems.<BR>
|
||||
For ports to other usable systems <A HREF="#contact">contact us</A>.
|
||||
</P>
|
||||
|
||||
@ -116,13 +123,13 @@ Writes result as completely new image or as add-on session
|
||||
to optical media or filesystem objects.
|
||||
</LI>
|
||||
<LI>
|
||||
Can activate ISOLINUX boot images by El Torito boot record.
|
||||
Can activate ISOLINUX and GRUB boot images by El Torito boot record.
|
||||
</LI>
|
||||
<LI>
|
||||
Can perform multi-session tasks as emulation of mkisofs and cdrecord.
|
||||
</LI>
|
||||
<LI>
|
||||
Can issue commands to mount older sessions on Linux or FreeBSD.
|
||||
Can issue commands to mount older sessions on GNU/Linux or FreeBSD.
|
||||
</LI>
|
||||
<LI>
|
||||
Can check media for damages and copy readable blocks to disk.
|
||||
@ -292,7 +299,7 @@ Files with names ending by ".o" or ".swp" are excluded by options -not_leaf.
|
||||
<DD><KBD> -dev /dev/sr0 \</KBD></DD>
|
||||
<DD><KBD> -volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \</KBD></DD>
|
||||
<DD><KBD> -not_leaf '*.o' -not_leaf '*.swp' \</KBD></DD>
|
||||
<DD><KBD> -update_r /home/thomas/open_source_projects /open_source_projects \</KBD></DD>
|
||||
<DD><KBD> -update_r /home/thomas/projects /projects \</KBD></DD>
|
||||
<DD><KBD> -update_r /home/thomas/personal_mail /personal_mail \</KBD></DD>
|
||||
<DD><KBD> -commit -toc -check_md5 FAILURE -- -eject all</KBD></DD>
|
||||
|
||||
@ -429,10 +436,20 @@ files or trees to disk:
|
||||
<P>
|
||||
<DL>
|
||||
<DT><H3>Download as source code (see README):</H3></DT>
|
||||
<DD><A HREF="xorriso-0.4.8.pl00.tar.gz">xorriso-0.4.8.pl00.tar.gz</A>
|
||||
(1360 KB).
|
||||
<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>
|
||||
<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
|
||||
</DD>
|
||||
<DD>(Released 25 Jan 2010)</DD>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
@ -443,13 +460,15 @@ files or trees to disk:
|
||||
</DL>
|
||||
<A NAME="contact"></A>
|
||||
<DL><DT>Contact:</DT>
|
||||
<DD>Thomas Schmitt, <A HREF="mailto:scdbackup@gmx.net">scdbackup@gmx.net</A></DD>
|
||||
<DD>libburn development mailing list,
|
||||
<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 2 or later</A>,
|
||||
an <A HREF="http://www.opensource.org/">Open Source</A> approved license</DD>
|
||||
<DD><A HREF="COPYING_xorriso">GPL version 3 or later.</A>
|
||||
</DD>
|
||||
<DD> </DD>
|
||||
</DL>
|
||||
</P>
|
||||
@ -457,18 +476,9 @@ an <A HREF="http://www.opensource.org/">Open Source</A> approved license</DD>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
Bug fixes towards xorriso-0.4.6.pl00:
|
||||
Bug fixes towards xorriso-0.5.2:
|
||||
<UL>
|
||||
<LI>
|
||||
With non-Linux system adapters there were 0 readable bytes on block devices
|
||||
which acted as pseudo drives.
|
||||
</LI>
|
||||
<LI>
|
||||
xorriso did not blank CD-RW with images that were prepared on hard disk
|
||||
</LI>
|
||||
<LI>
|
||||
Invalid checksum tags were preserved if the new session produced no checksums
|
||||
</LI>
|
||||
<LI>- none -</LI>
|
||||
<!--
|
||||
<LI>- none -</LI>
|
||||
-->
|
||||
@ -477,28 +487,34 @@ Invalid checksum tags were preserved if the new session produced no checksums
|
||||
|
||||
<!--
|
||||
<P>
|
||||
Bug fixes towards xorriso-0.4.4.pl00:
|
||||
Bug fixes in .pl01 towards xorriso-:
|
||||
<UL>
|
||||
<LI>
|
||||
</LI>
|
||||
</UL>
|
||||
</P>
|
||||
-->
|
||||
|
||||
<P>
|
||||
Enhancements towards previous stable version xorriso-0.4.6.pl00:
|
||||
Enhancements towards previous stable version xorriso-0.5.2.pl00:
|
||||
<UL>
|
||||
<LI>
|
||||
New configure option --enable-libcdio for system adapter to libcdio-0.83git
|
||||
New -as mkisofs options -G and --protective-msdos-label for grub-mkrescue
|
||||
</LI>
|
||||
<LI>
|
||||
The checksum buffer for the emerging image gets now marked as invalid if
|
||||
image generation is canceled.
|
||||
New option -volume_date, for grub-mkrescue: -as mkisofs --modification-date=
|
||||
</LI>
|
||||
<LI>
|
||||
More graceful reaction on filesystems where ACL are not enabled but
|
||||
nevertheless requested by the application.
|
||||
New: -boot_image isolinux partition_table=on, -as mkisofs -isohybrid-mbr
|
||||
</LI>
|
||||
<LI>
|
||||
Made FreeBSD system adapter safe from mutal burn spoiling and drive deadlock.
|
||||
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
|
||||
</LI>
|
||||
<!--
|
||||
<LI>- none -</LI>
|
||||
@ -510,20 +526,30 @@ Made FreeBSD system adapter safe from mutal burn spoiling and drive deadlock.
|
||||
|
||||
<P>
|
||||
<H3>
|
||||
Library copies included in xorriso tarballs:
|
||||
Libburnia software copies included in GNU xorriso:
|
||||
</H3>
|
||||
<DL>
|
||||
<DT>libburn-0.7.7</DT>
|
||||
<DT>
|
||||
GNU xorriso is feature-wise equivalent to the dynamic compilation of
|
||||
<A HREF="http://libburnia-project.org/"> libburnia </A>
|
||||
libraries and libburnia program xorriso.
|
||||
It restricts itself to a technical form where the legal commitments of the
|
||||
libburnia project and the legal intentions of
|
||||
<A HREF="http://www.fsf.org/"> FSF </A> match completely.
|
||||
</DT>
|
||||
<DD> </DD>
|
||||
<DT>libburn-0.8.1</DT>
|
||||
<DD>reads and writes data from and to CD, DVD, BD.</DD>
|
||||
<DD>(founded by Derek Foreman and Ben Jansens,
|
||||
developed and maintained since August 2006 by
|
||||
Thomas Schmitt from team of libburnia-project.org)</DD>
|
||||
<DT>libisofs-0.6.27</DT>
|
||||
<DT>libisofs-0.6.31</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.4.6</DT>
|
||||
<DD>coordinates libburn and libisofs, emulates multi-session where needed.</DD>
|
||||
<DT>libisoburn-0.5.4</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
|
||||
from team of libburnia-project.org)</DD>
|
||||
<DD> </DD>
|
||||
@ -536,26 +562,27 @@ cdrecord and mkisofs.</DT>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><H3>Development snapshot, version 0.4.9 :</H3></DT>
|
||||
<DD>Bug fixes towards xorriso-0.4.8.pl00:
|
||||
<DT><H3>Development snapshot, version 0.5.5 :</H3></DT>
|
||||
<DD>Bug fixes towards xorriso-0.5.4:
|
||||
<UL>
|
||||
<LI>- none yet -</LI>
|
||||
<!--
|
||||
<LI>- none yet -</LI>
|
||||
-->
|
||||
</UL>
|
||||
</DD>
|
||||
<DD>Enhancements towards stable version 0.4.8.pl00:
|
||||
<DD>Enhancements towards stable version 0.5.4:
|
||||
<UL>
|
||||
|
||||
<LI>- none yet -</LI>
|
||||
<!--
|
||||
<LI>- none yet -</LI>
|
||||
-->
|
||||
</UL>
|
||||
</DD>
|
||||
<DD> </DD>
|
||||
<DD><A HREF="README_xorriso_devel">README 0.4.9</A>
|
||||
<DD><A HREF="xorriso_help_devel">xorriso_0.4.9 -help</A></DD>
|
||||
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.4.9)</A></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> </DD>
|
||||
<DT>If you want to distribute development versions of xorriso, then use
|
||||
this tarball which produces static linking between xorriso and the
|
||||
@ -565,8 +592,8 @@ libburnia libraries.
|
||||
installation see README)
|
||||
</DD>
|
||||
<DD>
|
||||
<A HREF="xorriso-0.4.9.tar.gz">xorriso-0.4.9.tar.gz</A>
|
||||
(1360 KB).
|
||||
<A HREF="xorriso-0.5.5.tar.gz">xorriso-0.5.5.tar.gz</A>
|
||||
(1580 KB).
|
||||
</DD>
|
||||
<DT>A dynamically linked development version of xorriso can be obtained
|
||||
from repositories of
|
||||
@ -611,41 +638,46 @@ with DVD media and how to emulate multi-session on overwriteable media.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
|
||||
<CENTER><FONT SIZE=+0>
|
||||
<!-- <A NAME="bottom" HREF="main_ger.html#bottom">deutsch (german)</A>
|
||||
<BR><BR>
|
||||
-->
|
||||
<BR><BR>
|
||||
<FONT SIZE=+0>Enjoying free Open Source hosting by <A HREF="http://www.webframe.org">www.webframe.org</A><BR>
|
||||
<A HREF="http://www.webframe.org">
|
||||
<IMG SRC="msfree.gif" ALT="100 % Microsoft free" BORDER=0></A><BR>
|
||||
and by <A HREF="http://sourceforge.net">sourceforge.net</A><BR>
|
||||
<A href="http://sourceforge.net">
|
||||
<IMG src="sflogo-88-1.png" BORDER="0" ALT="SourceForge Logo"></A>
|
||||
<!-- on sourceforge use : <IMG src="http://sourceforge.net/sflogo.php?group_id=16010" width="88" height="31" border="0" alt="SourceForge Logo"></A> -->
|
||||
<P>
|
||||
<CENTER><FONT SIZE=+0>
|
||||
<FONT SIZE=+0>Enjoying free hosting by<BR>
|
||||
<A HREF="http://www.gnu.org">www.gnu.org</A><BR>
|
||||
<A HREF="http://www.webframe.org">www.webframe.org</A><BR>
|
||||
<A HREF="http://sourceforge.net">sourceforge.net</A><BR>
|
||||
|
||||
Enjoying a FreeBSD shell account with the opportunity to
|
||||
build, install and test xorriso at<BR>
|
||||
<A HREF="http://www.en.free-shells.com.ar">free-shells.com.ar</A>
|
||||
</P>
|
||||
</FONT></CENTER>
|
||||
</P>
|
||||
|
||||
<HR>
|
||||
<DL>
|
||||
<DT>Links to my other published software projects :</DT>
|
||||
<DT>Links to related free software projects of Thomas Schmitt:</DT>
|
||||
<DD><A HREF=http://scdbackup.webframe.org/cdrskin_eng.html>
|
||||
cdrskin, a cdrecord emulator</A></DD>
|
||||
<DD><A HREF=http://scdbackup.webframe.org/main_eng.html>
|
||||
scdbackup, multi volume CD backup</A></DD>
|
||||
scdbackup, multi volume CD/DVD/BD backup</A></DD>
|
||||
<DL><DD><A HREF=http://scdbackup.sourceforge.net/main_eng.html>
|
||||
(a second source of above)</A></DD></DL>
|
||||
<DD><A HREF=http://stic.sourceforge.net>Some Tools for Image Collectors</A></DD>
|
||||
<DD><A HREF=http://scdbackup.webframe.org/pppoem>
|
||||
pppoem, a DSL throughput monitor (mainly for Linux kernel 2.4)</A></DD>
|
||||
</DL>
|
||||
<BR>
|
||||
Legal statement: This website does not serve any commercial purpose.
|
||||
<BR><BR>
|
||||
Legal statement: This website does not serve any commercial purpose.<BR>
|
||||
<BR><BR>
|
||||
Copyright © 2008 - 2010 Thomas Schmitt.
|
||||
<BR>
|
||||
This text is freely distributable. It shall only be modified in sync with
|
||||
the factual properties of xorriso and its public storage locations.
|
||||
If you make use of the license to derive modified versions of xorriso
|
||||
then you are entitled to modify this text under that same license.
|
||||
<DL>
|
||||
<DT>Contact for issues of this web page or the described program:</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>
|
||||
</DL>
|
||||
</FONT>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,4 +1,7 @@
|
||||
|
||||
# Copyright (c) 2007 - 2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
# Provided under GPL version 2 or later.
|
||||
|
||||
# ts A90315 : LIBBURNIA_PKGCONFDIR is defined OS specific in acinclude.m4
|
||||
# was: pkgconfigdir=$(libdir)/pkgconfig
|
||||
pkgconfigdir=$(LIBBURNIA_PKGCONFDIR)
|
||||
@ -119,7 +122,6 @@ xorriso_xorriso_SOURCES = \
|
||||
libburn/back_hacks.h \
|
||||
libburn/cleanup.c \
|
||||
libburn/cleanup.h \
|
||||
libburn/crc.c \
|
||||
libburn/crc.h \
|
||||
libburn/debug.c \
|
||||
libburn/debug.h \
|
||||
@ -168,8 +170,12 @@ xorriso_xorriso_SOURCES = \
|
||||
\
|
||||
version.h
|
||||
|
||||
# Disabled because unneeded and of unclear ancestry
|
||||
# libburn/crc.c
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
test/compare_file
|
||||
test/compare_file \
|
||||
xorriso/make_xorriso_1
|
||||
|
||||
# A program to compare two trees of files in mounted filesystems
|
||||
# To compare tree /media/dvd and /original/dir :
|
||||
@ -180,6 +186,13 @@ 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
|
||||
#
|
||||
@ -228,6 +241,8 @@ indent: $(indent_files)
|
||||
|
||||
man_MANS = xorriso/xorriso.1
|
||||
|
||||
info_TEXINFOS = xorriso/xorriso.texi
|
||||
|
||||
EXTRA_DIST = \
|
||||
xorriso.pc.in \
|
||||
version.h.in \
|
||||
@ -239,6 +254,7 @@ 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 \
|
||||
@ -254,3 +270,4 @@ EXTRA_DIST = \
|
||||
libburn/sg-freebsd.c \
|
||||
libburn/sg-libcdio.c \
|
||||
libburn/sg-linux.c
|
||||
|
||||
|
@ -50,10 +50,6 @@ 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
|
||||
@ -265,6 +261,7 @@ 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)
|
||||
@ -272,6 +269,25 @@ 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;
|
||||
@ -368,6 +384,8 @@ struct XorrisO { /* the global context of xorriso */
|
||||
|
||||
int status_history_max; /* for -status long_history */
|
||||
|
||||
/* 0= no logging of SCSI commands, 1= to stderr */
|
||||
int scsi_log;
|
||||
|
||||
char report_about_text[20];
|
||||
int report_about_severity;
|
||||
@ -473,6 +491,8 @@ 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);
|
||||
@ -711,6 +731,9 @@ 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);
|
||||
|
||||
@ -988,6 +1011,8 @@ struct FindjoB {
|
||||
34= get_md5
|
||||
35= check_md5
|
||||
36= make_md5
|
||||
37= mkisofs_r
|
||||
38= sort_weight number
|
||||
*/
|
||||
int action;
|
||||
int prune;
|
||||
@ -998,7 +1023,7 @@ struct FindjoB {
|
||||
uid_t user;
|
||||
gid_t group;
|
||||
mode_t mode_and, mode_or;
|
||||
int type; /* see Xorriso_set_time flag */
|
||||
int type; /* see Xorriso_set_time flag, also used as weight */
|
||||
time_t date;
|
||||
char *found_path;
|
||||
struct FindjoB *subjob;
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2010.01.25.120001"
|
||||
#define Xorriso_timestamP "2010.04.19.080001"
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2.
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
@ -125,7 +125,8 @@ 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_rrip_version_1_10 | isoburn_igopt_aaip_susp_1_10 | \
|
||||
isoburn_igopt_only_iso_versions | isoburn_igopt_no_j_force_dots)
|
||||
|
||||
#ifdef NIX
|
||||
/* <<< */
|
||||
@ -144,6 +145,25 @@ 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;
|
||||
@ -537,11 +557,31 @@ 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};
|
||||
|
||||
@ -587,13 +627,6 @@ 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) {
|
||||
@ -602,7 +635,6 @@ 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,
|
||||
@ -640,8 +672,9 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
|
||||
isoburn_set_msgs_submit(Xorriso_msgs_submit_void, (void *) xorriso,
|
||||
(3<<2) | 128 , 0);
|
||||
|
||||
sprintf(handler_prefix, "%s : ", xorriso->progname);
|
||||
burn_set_signal_handling(handler_prefix, NULL, 0);
|
||||
ret= Xorriso_set_signal_handling(xorriso, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
|
||||
ret = iso_zisofs_get_params(&zisofs_ctrl, 0);
|
||||
if (ret == 1) {
|
||||
@ -658,7 +691,6 @@ 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);
|
||||
}
|
||||
|
||||
@ -1146,8 +1178,12 @@ 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");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
{ret= 0; goto ex;}
|
||||
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;
|
||||
}
|
||||
/* fill read opts */
|
||||
ret= isoburn_ropt_new(&ropts, 0);
|
||||
@ -1272,9 +1308,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 an isolinux image";
|
||||
boot_fate= "replaced by new boot image";
|
||||
else if(xorriso->patch_isolinux_image)
|
||||
boot_fate= "patched as isolinux image";
|
||||
boot_fate= "patched at boot info table";
|
||||
else if(xorriso->keep_boot_image)
|
||||
boot_fate= "kept unchanged";
|
||||
else
|
||||
@ -1574,7 +1610,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;
|
||||
int make_isohybrid_mbr= 0, ret, patch_table= 0;
|
||||
ElToritoBootImage *bootimg;
|
||||
IsoFile *bootimg_node;
|
||||
|
||||
@ -1584,9 +1620,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, 1, 0);
|
||||
ret= el_torito_set_isolinux_options(bootimg, patch_table, 0);
|
||||
return(ret == 1);
|
||||
}
|
||||
if(xorriso->boot_image_isohybrid == 3) {
|
||||
@ -1611,7 +1647,8 @@ int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
|
||||
xorriso->alignment= 512;
|
||||
}
|
||||
|
||||
ret= el_torito_set_isolinux_options(bootimg, 1 | (make_isohybrid_mbr << 1),0);
|
||||
ret= el_torito_set_isolinux_options(bootimg,
|
||||
patch_table | (make_isohybrid_mbr << 1),0);
|
||||
return(ret == 1);
|
||||
}
|
||||
|
||||
@ -1654,7 +1691,120 @@ int Xorriso_auto_format(struct XorrisO *xorriso, int flag)
|
||||
}
|
||||
|
||||
|
||||
#define Xorriso_with_make_isohybrid_mbR 1
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* @param flag bit0= do not write but only prepare and return size in sectors
|
||||
@ -1755,11 +1905,16 @@ 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)
|
||||
@ -1777,7 +1932,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
cpt++;
|
||||
strcpy(cpt, "boot.cat");
|
||||
}
|
||||
sprintf(xorriso->info_text, "Activating alleged isolinux boot image %s",
|
||||
sprintf(xorriso->info_text, "Activating 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",
|
||||
@ -1828,21 +1983,13 @@ 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 alleged isolinux boot image");
|
||||
sprintf(xorriso->info_text, "Patching boot info table");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
|
||||
ret= Xorriso_path_from_lba(xorriso, NULL, xorriso->loaded_boot_bin_lba,
|
||||
@ -1861,20 +2008,12 @@ 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 isolinux patch");
|
||||
"Could not find any boot image for -boot_image patching");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||
}
|
||||
} else if(xorriso->keep_boot_image && ret==1) {
|
||||
@ -1887,7 +2026,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";
|
||||
@ -1950,6 +2089,10 @@ 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);
|
||||
@ -2041,11 +2184,17 @@ 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)) {
|
||||
@ -2116,6 +2265,8 @@ 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);
|
||||
@ -3282,7 +3433,7 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
if(l==0) {
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
sprintf(xorriso->info_text,
|
||||
"Source '%s' is not a directory. Target '%s' would be.",
|
||||
"Source %s is not a directory. Target %s would be.",
|
||||
Text_shellsafe(disk_path, sfe, 0), Text_shellsafe(img_path, sfe2, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
@ -5169,11 +5320,11 @@ int Xorriso_show_boot_info(struct XorrisO *xorriso, int flag)
|
||||
IsoFile *bootimg_node;
|
||||
IsoBoot *bootcat_node;
|
||||
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"on attempt to print boot info", 0);
|
||||
if(ret<=0)
|
||||
return(0);
|
||||
respt= xorriso->result_line;
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"on attempt to print boot info", 16);
|
||||
if(ret<=0)
|
||||
goto no_boot;
|
||||
image= isoburn_get_attached_image(drive);
|
||||
if(image == NULL) {
|
||||
ret= 0;
|
||||
@ -5318,7 +5469,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;
|
||||
int num_payload= 0, num_wasted= 0, num_nondata= 0, not_reconizable= 0;
|
||||
char profile_name[80],*respt,*devadr, *typetext= "";
|
||||
struct burn_toc_entry toc_entry;
|
||||
struct burn_drive_info *dinfo;
|
||||
@ -5377,8 +5528,10 @@ 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)) {
|
||||
@ -5389,7 +5542,10 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
||||
|
||||
sprintf(respt, "Media status : ");
|
||||
if (s == BURN_DISC_FULL) {
|
||||
sprintf(respt+strlen(respt), "is written , is closed\n");
|
||||
if(not_reconizable)
|
||||
sprintf(respt+strlen(respt), "is not recognizable\n");
|
||||
else
|
||||
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) {
|
||||
@ -5762,6 +5918,9 @@ 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
|
||||
@ -5778,7 +5937,9 @@ 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);
|
||||
@ -5915,6 +6076,10 @@ 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);
|
||||
@ -5928,8 +6093,10 @@ 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");
|
||||
@ -7737,6 +7904,26 @@ 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,
|
||||
@ -7859,9 +8046,13 @@ 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);
|
||||
@ -8098,6 +8289,26 @@ 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
|
||||
@ -8134,18 +8345,8 @@ int Xorriso_findi(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
action= Findjob_get_action(job, 0);
|
||||
if(action<0)
|
||||
action= 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);
|
||||
}
|
||||
}
|
||||
if(!(flag & 1))
|
||||
Xorriso_findi_headline(xorriso, job, 0);
|
||||
|
||||
dir_node= (IsoDir *) dir_node_generic;
|
||||
if(dir_node==NULL) {
|
||||
@ -8176,15 +8377,18 @@ int Xorriso_findi(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
if(job->prune)
|
||||
no_dive= 1;
|
||||
if(ret>0) {
|
||||
iso_node_ref(iso_node); /* protect from real disposal */
|
||||
ret= Xorriso_findi_action(xorriso, job,
|
||||
(IsoDirIter *) boss_iter, boss_mem,
|
||||
path, dir_path, (IsoNode *) dir_node, depth,
|
||||
path, dir_path, iso_node, depth,
|
||||
flag&(1|2));
|
||||
deleted= (iso_node_get_parent(iso_node) == NULL); /* still in tree ? */
|
||||
iso_node_unref(iso_node); /* eventually do real disposal */
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
if(xorriso->request_to_abort)
|
||||
{ret= 0; goto ex;}
|
||||
if(ret==2) {
|
||||
if(ret==2 || deleted) {
|
||||
/* re-determine dir_node in case it has a new persona */
|
||||
ret= Xorriso_node_from_path(xorriso, volume, path, &iso_node, 1);
|
||||
if(ret==0) {
|
||||
@ -8526,6 +8730,10 @@ 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);
|
||||
@ -9141,10 +9349,16 @@ 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)) {
|
||||
@ -10397,6 +10611,12 @@ 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;
|
||||
@ -10421,6 +10641,12 @@ 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;
|
||||
@ -10510,6 +10736,8 @@ 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)
|
||||
@ -10518,6 +10746,8 @@ 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)
|
||||
@ -13014,3 +13244,13 @@ int Xorriso_set_change_pending(struct XorrisO *xorriso, int flag)
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= enable SCSI command logging to stderr */
|
||||
int Xorriso_scsi_log(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
if(flag == 0)
|
||||
burn_set_scsi_logging(0);
|
||||
else
|
||||
burn_set_scsi_logging(2|4);
|
||||
return(1);
|
||||
}
|
||||
|
@ -18,8 +18,8 @@
|
||||
/* The minimum version of libisoburn to be used with this version of xorriso
|
||||
*/
|
||||
#define xorriso_libisoburn_req_major 0
|
||||
#define xorriso_libisoburn_req_minor 4
|
||||
#define xorriso_libisoburn_req_micro 8
|
||||
#define xorriso_libisoburn_req_minor 5
|
||||
#define xorriso_libisoburn_req_micro 4
|
||||
|
||||
|
||||
struct SpotlisT; /* List of intervals with different read qualities */
|
||||
@ -488,6 +488,10 @@ int Xorriso_pvd_info(struct XorrisO *xorriso, int flag);
|
||||
/* @param flag bit0= do not set hln_change_pending */
|
||||
int Xorriso_set_change_pending(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* @param flag bit0= enable SCSI command logging to stderr */
|
||||
int Xorriso_scsi_log(struct XorrisO *xorriso, int flag);
|
||||
|
||||
|
||||
|
||||
/* A pseudo file type for El-Torito bootsectors as in man 2 stat :
|
||||
For now take the highest possible value.
|
||||
|
Reference in New Issue
Block a user