2009-12-08 11:22:45 +00:00
|
|
|
------------------------------------------------------------------------------
|
|
|
|
http:libburnia-project.org
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
libisoburn. By Vreixo Formoso <metalpain2002@yahoo.es>
|
|
|
|
and Thomas Schmitt <scdbackup@gmx.net>
|
|
|
|
Integrated sub project of libburnia-project.org.
|
2009-12-08 12:32:59 +00:00
|
|
|
http://files.libburnia-project.org/releases/libisoburn-0.4.6.pl00.tar.gz
|
2009-12-08 11:22:45 +00:00
|
|
|
Copyright (C) 2006-2009 Vreixo Formoso, Thomas Schmitt.
|
|
|
|
Provided under GPL version 2.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
libisoburn is a frontend for libraries libburn and libisofs which enables
|
|
|
|
creation and expansion of ISO-9660 filesystems on all CD/DVD/BD media supported
|
|
|
|
by libburn. This includes media like DVD+RW, which do not support multi-session
|
|
|
|
management on media level and even plain disk files or block devices.
|
|
|
|
|
|
|
|
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
|
|
|
|
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.
|
|
|
|
|
|
|
|
By using this software you agree to the disclaimer at the end of this text:
|
|
|
|
"... without even the implied warranty ..."
|
|
|
|
|
|
|
|
|
|
|
|
Compilation, First Glimpse, Installation
|
|
|
|
|
2009-12-08 12:32:59 +00:00
|
|
|
Dynamic library and compile time header requirements for libisoburn-0.4.6 :
|
2009-12-08 11:22:45 +00:00
|
|
|
- libburn.so.4 , version libburn-0.7.4 or higher
|
|
|
|
- libisofs.so.6 , version libisofs-0.6.24 or higher
|
|
|
|
libisoburn and xorriso will not start with libraries which are older than their
|
|
|
|
headers seen at compile time.
|
|
|
|
|
2009-12-08 12:32:59 +00:00
|
|
|
Obtain libisoburn-0.4.6.pl00.tar.gz, take it to a directory of your choice
|
2009-12-08 11:22:45 +00:00
|
|
|
and do:
|
|
|
|
|
2009-12-08 12:32:59 +00:00
|
|
|
tar xzf libisoburn-0.4.6.pl00.tar.gz
|
|
|
|
cd libisoburn-0.4.6
|
2009-12-08 11:22:45 +00:00
|
|
|
|
|
|
|
Within that directory execute:
|
|
|
|
|
|
|
|
./configure --prefix=/usr
|
|
|
|
make
|
|
|
|
|
|
|
|
Then become superuser and execute
|
|
|
|
make install
|
|
|
|
which will make available libisoburn.so.1 and the program xorriso.
|
|
|
|
|
|
|
|
For the API concepts and calls see
|
|
|
|
./libisoburn/libisoburn.h
|
|
|
|
as well as
|
|
|
|
/usr/lib/libisofs/libisofs.h
|
|
|
|
/usr/lib/libburn/libburn.h
|
|
|
|
|
|
|
|
|
|
|
|
xorriso
|
|
|
|
|
|
|
|
libisoburn comes with a command line and dialog application named xorriso,
|
|
|
|
which offers a substantial part of libisoburn features to shell scripts and
|
|
|
|
users. Its file xorriso/README describes a standalone tarball as first
|
|
|
|
preference for statically linked xorriso installation.
|
|
|
|
The libisoburn installation described above produces a dynamically linked
|
|
|
|
xorriso binary depending on libburn.so, libisofs.so, libisoburn.so.
|
|
|
|
|
|
|
|
After installation documentation is available via
|
|
|
|
man xorriso
|
|
|
|
|
|
|
|
Several alias links point 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
|
|
|
|
|
|
|
|
By default xorriso will depend on libreadline if the readline-dev headers
|
|
|
|
are present. This dependcy can be avoided by running
|
|
|
|
./configure --prefix=/usr --disable-libreadline
|
|
|
|
make clean ; make
|
|
|
|
Never omit the "make clean" command after switching libreadline enabling.
|
|
|
|
Other deliberate dependency reduction options of ./configure are:
|
|
|
|
--disable-libacl avoid use of ACL functions like acl_to_text()
|
|
|
|
--disable-xattr avoid use of xattr functions like listxattr()
|
|
|
|
--disable-zlib avoid use of zlib functions like compress2()
|
|
|
|
|
|
|
|
xorriso allows to use external processes as file content filters. This is
|
|
|
|
a potential security risk which may be avoided by ./configure option
|
|
|
|
--disable-external-filters
|
|
|
|
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
|
|
|
|
|
|
|
|
In some situations Linux may deliver a better write performance to DVD drives
|
|
|
|
if 64 KB rather than 32 KB are transmitted in each write operation.
|
|
|
|
64k can be made default at configure time by:
|
|
|
|
--enable-dvd-obs-64k
|
|
|
|
|
|
|
|
|
|
|
|
Drives and Disk File Objects
|
|
|
|
|
|
|
|
The user of libisoburn applications needs rw-permission for the CD/DVD/BD
|
|
|
|
drives which shall be used, even if only reading is intended.
|
|
|
|
A list of rw-accessible drives can be obtained by
|
|
|
|
xorriso -devices
|
|
|
|
resp. by libburn API call
|
|
|
|
burn_drive_scan()
|
|
|
|
|
|
|
|
|
|
|
|
A possible source of problems are hald or other automounters.
|
|
|
|
If you can spot a process "hald-addon-storage" with the address of
|
|
|
|
your desired drive, then consider to kill it.
|
|
|
|
|
|
|
|
If you cannot get rid of the automounter that easily, try whether it helps
|
|
|
|
to always load the drive tray manually before starting a write run of
|
|
|
|
xorriso. Wait until the drive light is off.
|
|
|
|
Better try to unmount an eventually mounted media before a write run.
|
|
|
|
|
|
|
|
|
|
|
|
Besides true optical drives, libisoburn can also address disk files as input or
|
|
|
|
output drives. The addresses of the disk files have to be preceded by "stdio:".
|
|
|
|
Like:
|
|
|
|
"stdio:/tmp/pseudo_drive"
|
|
|
|
|
|
|
|
Note: xorriso by default prefixes "stdio:" to addresses outside the /dev tree
|
|
|
|
if they do not lead to an optical drive device file.
|
|
|
|
|
|
|
|
|
|
|
|
Testing
|
|
|
|
|
|
|
|
We are quite sure that libisofs produces accurate representations of the disk
|
|
|
|
files. This opinion is founded on a lot of test burns and checks by a little
|
|
|
|
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
|
|
|
|
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
|
|
|
|
second file to compare.
|
|
|
|
As further argument there can be -no_ctime which suppresses the comparison
|
|
|
|
of ctime date stamps.
|
|
|
|
The exit value is 0 if no difference was detected, non-0 else.
|
|
|
|
|
|
|
|
Example: After
|
|
|
|
xorriso ... -pathspecs on -add /=/original/dir --
|
|
|
|
mount /media/dvd
|
|
|
|
cd test
|
|
|
|
compare tree /media/dvd with tree /original/dir :
|
|
|
|
find /original/dir -exec ./compare_file '{}' /original/dir /media/dvd ';' \
|
|
|
|
| less
|
|
|
|
and vice versa:
|
|
|
|
find /media/dvd -exec ./compare_file '{}' /media/dvd /original/dir ';' \
|
|
|
|
| less
|
|
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
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>
|
|
|
|
Copyright (C) 2006-2009 Mario Danic, Vreixo Formoso, Thomas Schmitt.
|
|
|
|
|
|
|
|
libburnia-project.org is inspired by and in other components 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
|
|
|
|
|