Compare commits

...

38 Commits

Author SHA1 Message Date
2acdac105c Promoted branch to tag 2010-09-19 17:03:04 +00:00
057ac2ebe0 Documented changes and release timestamp 2010-09-19 07:12:10 +00:00
268f114fbf Fixed a bug with uninitialized variable introduced by rev 3364 2010-09-19 06:46:25 +00:00
c1cbd169f8 Documented changes and release timestamp 2010-09-18 13:38:01 +00:00
33109cfd8e Version leap to libisoburn-0.6.2 2010-09-18 13:36:02 +00:00
fc98907c16 Branching for libisoburn release 0.6.2 2010-09-18 11:06:51 +00:00
b82abcf210 Version leap to libburn-0.8.7 2010-09-17 08:22:19 +00:00
252a845f2b Adapted GNU xorriso to version leap libisofs-0.6.37 2010-09-15 09:20:58 +00:00
44310ae57e Requiring libisofs-0.6.36 now 2010-09-15 09:16:32 +00:00
8d9d900608 Meaningful change log file derived by George Danchev from web site 2010-09-15 06:57:53 +00:00
06c1540797 Removed development marks 2010-09-11 12:51:27 +00:00
cc672d525b Removed development marks 2010-09-11 12:50:36 +00:00
8239d082ca Enabled multi-session with partition offset 2010-09-10 17:13:00 +00:00
d54efd4bc2 Enabled multi-session with partition offset 2010-09-10 17:10:03 +00:00
5af8ad46f4 Bug fix: Re-enabled use of iso_write_opts_set_rrip_1_10_px_ino() 2010-09-06 10:34:35 +00:00
9ce2aabe28 New -as mkisofs options -partition_offset, -partition_hd_cyl, -partition_sec_hd 2010-09-05 11:40:13 +00:00
21bd5b5d42 New boot_image boot specs partition_offset, partition_hd_cyl, partition_sec_hd 2010-09-05 11:37:45 +00:00
0e755f48c9 New API function isoburn_igopt_set_part_offset(), requiring libisofs 0.6.35 2010-09-05 11:36:53 +00:00
4e4b789753 This was obviously forgotten to commit with rev 3289 2010-09-04 10:08:55 +00:00
87ebfde08b Mentioned support for DVD-R DL as single-session media 2010-08-21 10:30:45 +00:00
4771254d1f New -as mkisofs option -hard-disk-boot, enabled -b without -no-emul-boot 2010-08-18 18:19:30 +00:00
689bcf0168 New -boot_image specifier emul_type=none|hard_disk|floppy 2010-08-18 18:17:14 +00:00
fb35f70c6e New -as mkisofs option -e from Fedora genisoimage 2010-08-18 10:33:04 +00:00
3d933149ff Hopefully silenced warnings of doxygen on Debian buildd 2010-08-09 09:21:16 +00:00
6c939780e8 Missing device,inode numbers caused -compare_r to report a difference 2010-07-31 08:55:15 +00:00
d06c6e69f8 Corrected FILE_PATTERNS 2010-07-30 17:10:22 +00:00
1c0ee8fc32 Removed problematic DETAILS_AT_TOP to silence warning of Debian buildd 2010-07-30 17:06:40 +00:00
3ee02c766d New option -preparer_id, -as mkisofs options -p and -preparer 2010-07-30 15:52:09 +00:00
bb16a5615f Corrected manual text about -read_mkisofsrc 2010-07-29 20:17:05 +00:00
d78b29005d Detached make target "doc" from target "all". 2010-07-29 16:50:16 +00:00
df685e89ac Made behavior of -as mkisofs with unknown options more similar to original 2010-07-08 15:59:45 +00:00
1942a636f3 Mentioned that public API calls must be in libisofs/libisofs.ver 2010-07-06 11:45:45 +00:00
050871e1f2 Let configure perform linker test with --version-script if enabled 2010-07-06 11:41:46 +00:00
a58ca098b7 Hiding all non-API symbols from the linker by use of --version-script 2010-07-05 12:29:50 +00:00
75f864a061 Removed definition of phantom xorriso options 2010-07-05 09:05:01 +00:00
592424a420 Added -L/usr/local/lib to libisoburn LDFLAGS for Solaris 2010-07-04 13:30:32 +00:00
f2ac46cbc0 Documented changes and release timestamp 2010-07-02 20:26:48 +00:00
04bd02972d Version leap to libisoburn-0.6.1 2010-07-02 20:25:51 +00:00
37 changed files with 2451 additions and 383 deletions

360
ChangeLog Normal file
View File

@ -0,0 +1,360 @@
libisoburn-0.6.2.pl00.tar.gz Sat Sep 18 2010
===============================================================================
libisoburn novelties:
* New API function isoburn_igopt_set_part_offset()
* Hiding all non-API symbols from the linker by use of --version-script
* Now with history of release notes in ./ChangeLog file.
xorriso novelties:
* Bug fix: Regression with -hardlinks and -compliance old_rr, 0.4.2, Aug 2009
* New option -preparer_id, -as mkisofs options -p and -preparer
* New -boot_image specifier emul_type=none|hard_disk|floppy
* New boot_image boot specs partition_offset,partition_hd_cyl,partition_sec_hd
* Made behavior of -as mkisofs with unknown options more similar to original
* New -as mkisofs option -hard-disk-boot, enabled -b without -no-emul-boot
* New -as mkisofs option -e from Fedora genisoimage
* New -as mkisofs options -partition_offset,-partition_hd_cyl,-partition_sec_hd
libisoburn-0.6.0.pl00.tar.gz Fri Jul 02 2010
===============================================================================
libisoburn novelties:
xorriso novelties:
* New option -read_mkisofsrc interprets .mkisofsrc To be performed before -as
mkisofs. Performed automatically with program alias name "xorrisofs".
* Implemented -as mkisofs options -dir-mode, -file-mode, -abstract, -biblio,
-copyright
* Implemented -as mkisofs options -hide, -hide-joliet, -hide-list,
-hide-joliet-list
* New -as mkisofs option --boot-catalog-hide
* New option -hide, -find action -hide, -find test -hidden
* New -boot_image bootspec cat_hidden=on
* New options -copright_file , -biblio_file , -abstract_file
* New find test -disk_name
* Enabled use of libreadline on Solaris
* Bug fix: -check_media patch_lba0= could install wrong image size
* Bug fix: -as mkisofs option -volset was wrongly interpreted like -volid
libisoburn-0.5.8.pl00.tar.gz Mon Jun 14 2010
===============================================================================
libisoburn novelties:
* xorriso source split into more modules, object code moved into libisoburn
xorriso novelties:
* New write extension option isoburn_igopt_no_emul_toc
* New -compliance rule no_emul_toc, new -as mkisofs --no-emul-toc
* Implemented -as cdrecord -V
* Implemented -as mkisofs options -U, -N, -l, -d, -allow-lowercase
libisoburn-0.5.6.pl00.tar.gz Tue May 04 2010
===============================================================================
libisoburn novelties:
xorriso novelties:
* Allowing up to 32 boot images
* New -boot_image bootspecs
efi_path=, platform_id=, sel_crit=, id_string=, next
* New -as mkisofs options --efi-boot, -eltorito-alt-boot
libisoburn-0.5.4.pl00.tar.gz Mon Apr 19 2010
===============================================================================
libisoburn novelties:
* 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
xorriso novelties:
* New -boot_image any system_area=, -as mkisofs option -G
* New -boot_image grub partition_table=on, -as mkisofs --protective-msdos-label
* New -boot_image isolinux partition_table=on, -as mkisofs -isohybrid-mbr
* New option -volume_date, -as mkisofs --modification-date=
* New -find action mkisofs_r,-as mkisofs -r
* New -find action sort_weight, -as mkisofs --sort-weight
* New -compliance options only_iso_version, no_j_force_dots avoid
a bug in GRUB 1.96. They are default now.
libisoburn-0.5.2.pl00.tar.gz Tue Mar 30 2010
===============================================================================
xorriso novelties:
* xorriso documentation is now based on a hybrid format of Texinfo and man-
page. Copies included: .texi, .info, .1 (man page)
libisoburn-0.5.0.pl00.tar.gz Tue Feb 22 2010
===============================================================================
xorriso novelties:
* The former xorriso-standalone project is now GNU xorriso under GPLv3+. This
affects some documentation and the generator script, but not the license of
libisoburn or its program xorriso.
* Bug fix: xorriso -update_r could lead to SIGSEGV if applied to a data file
rather than a directory.
* Bug fix on FreeBSD: xorriso could leave the drive tray locked.
* New option -scsi_log
libisoburn-0.4.8.pl00.tar.gz Tue Jan 26 2010
===============================================================================
xorriso novelties:
* Bug fix: xorriso did not blank CD-RW with images that were prepared
on hard disk.
* New configure option --enable-libcdio for system adapter to libcdio-0.83git
libisoburn-0.4.6.pl00.tar.gz Wed Dec 09 2009
===============================================================================
xorriso novelties:
* New options -dvd_obs and -stdio_sync
* New configure option --enable-dvd-obs-64k
libisoburn-0.4.4.pl00.tar.gz Wed Oct 28 2009
===============================================================================
xorriso novelties:
* Bug fix: With -as cdrecord : -xa1 and -xamix were ignored although they do
matter.
* Option -toc now reports the individual media type. E.g. with a DVD+RW:
"Media product: RICOHJPN/W11/49 , Ricoh Company Limited"
* New option -pvd_info displays image id strings. New options -system_id , -
volset_id allow to set such image id strings.
* New option -mount_opts tries to circumvent an eventual ban to mount the same
device twice. Some Linux systems allow to mount two sessions of the same
media only if they get fooled via the loop device.
* New option -scdbackup_tag performs the task of the scdbackup MD5 checksum
filter inside xorriso.
Already fixed by patch releases of xorriso-0.4.2:
* Bug fix: -cut_out deleted previously cut-out pieces of the same file
* Bug fix libisofs: Filenames could lose blanks during a multi-session cycle
* Bug fix: -for_backup did not enable -xattr and -md5 if no drive was chosen
yet
* Bug fix: xorrisofs -help, xorrecord -help displayed original xorriso -help
libisoburn-0.4.2.pl02.tar.gz Thu Oct 08 2009
===============================================================================
* Bug fix: -for_backup did not enable -xattr and -md5 if no drive was chosen
yet
* Bug fix: xorrisofs -help, xorrecord -help displayed original xorriso -help
Libisoburn 0.4.2.pl01
===============================================================================
* Bug fix: xorriso option -cut_out deleted previously cut-out pieces of the
same file. The bug was introduced with release 0.1.4 in March 2008.
Libisoburn 0.4.2
===============================================================================
* New write options isoburn_igopt_session_md5, isoburn_igopt_file_md5,
isoburn_igopt_file_stability allow to record MD5 checksums of session and
single data files.
* New read option isoburn_ropt_nomd5 allows to read those MD5 sums when
importing an ISO image.
xorriso novelties:
* New option -md5, new -as mkisofs option --md5 allow to record in the image
MD5 checksums for the whole session and for each single data file.
* New options -check_md5, -check_md5_r allow to verify the whole session or
single files by comparing their image data with their MD5 sums.
* Options -compare, -compare_r, -update, update_r now can use recorded MD5.
* New -find actions check_md5, get_md5, make_md5 allow to check, to display or
to recompute MD5 checksums of data files. New find test -has_md5
distinguishes data files which have recorded MD5 from files which have none.
* New -find test -has_any_xattr and action get_any_xattr allow to inspect the
libisofs specific attributes of namespace "isofs".
* Options -lsl and lsdl now display correct link counts if -hardlinks is on.
* New option -calm_drive allows to reduce drive noise if no data reading is
intended for a while.
* New option -list_profiles allows to inquire and process the list of supported
media types.
* Bug fix: xorriso -as mkisofs did not understand the -C option of growisofs
any more. (Already fixed by release 0.4.0.pl01, 20 Jul 2009)
libisoburn-0.4.0.pl01.tar.gz Mon Jul 20 2009
===============================================================================
xorriso novelties:
* New option -hardlinks enables recording and restoring of hard link relations.
* Improved reading performance with -update_r and -extract.
* New option -for_backup as shortcut for -acl -xattr -hardlinks
* Operators with option -find : -not, -or, -and, (, ), -if, -then, -else
* New -find tests -wholename, -prune
* Bug fix: SIGSEGV with option -status and no search string
* Bug fix: -load volid did not perform pattern search
* Bug fix: Copies of overwriteable media on sequential were mistaken in ROM
drives
Libisoburn 0.4.0.pl01 release notes:
* Bug fix: xorriso -as mkisofs did not understand the -C option of growisofs
any more
libisoburn-0.3.8.pl00.tar.gz Sun Apr 19 2009
===============================================================================
libisoburn novelties:
* New API calls isoburn_ropt_set_auto_incharset() and
isoburn_ropt_get_auto_incharset()
xorriso novelties:
* New options -set_filter, -set_filter_r, -find -exec set_filter allow to
manipulate the content of data files on the fly.
* New option -zisofs, built-in filters --zisofs , --gzip , --gunzip enable
compression and decompression of data file content.
* New options -external_filter , -unregister_filter, -close_filter_list allow
arbitrary external processes to do content filtering.
* New options -show_stream, -show_stream_r allow to inspect the origin and the
filters of data files in an emerging image.
* New option -auto_charset based on xattr "isofs.cs" allows to tag an ISO
filesystem image with the character set name that is in use on the current
terminal.
libisoburn-0.3.6.pl00.tar.gz Mon Mar 16 2009
===============================================================================
xorriso novelties:
* Dummy MMC adapter of libburn allows compilation on systems other than Linux,
FreeBSD
* Default of -compliance has been changed to "old_rr", new rule "new_rr"
* New -stream_recording modes with start address or "data". "on" is now 32s.
libisoburn-0.3.4.pl00.tar.gz Sun Mar 01 2009
===============================================================================
* New isoburn_read_opts values: isoburn_ropt_noaaip, isoburn_ropt_noacl,
isoburn_ropt_noea
xorriso novelties:
* New option -acl enables ACL import and export
* New options -getfacl, -getfacl_r, -setfacl, -setfacl_r, -setfacl_list
* New find tests -has_acl, -has_no_acl , new find actions getfacl, setfacl
* New option -xattr enables import and export of Extended Attributes
* New options -getfattr, -getfattr_r, -setfattr, -setfattr_r, -setfattr_list
* New find tests -has_xattr, -has_aaip, new find actions getfattr, setfattr
* New -as mkisofs options --acl and --xattr
* New option -disk_dev_ino accelerates incremental backups
libisoburn-0.3.2.pl00.tar.gz Tue Jan 06 2009
===============================================================================
* New API function isoburn_get_mount_params()
* Now depending on libburn-0.6.0 which supports BD-R media
xorriso novelties:
* Bug fix: Options -extract and -extract_single were enabled with -osirrox off
* New options -mount , -mount_cmd , -session_string
* New -format modes by_size_ and fast_by_size_
* New option -assert_volid
* New option -drive_class for safety management of pseudo-drive access
libisoburn-0.3.0.pl00.tar.gz Tue Dec 2 2008
===============================================================================
* Now depending on libisofs-0.6.12 and libburn-0.5.6 to ensure use of their
recent bug fixes
xorriso novelties:
* New options -quoted_path_list, -quoted_not_list
* New option -backslash_codes for weird file names and terminal safety
* New options -charset, -in_charset, -out_charset
* New option -local_charset allows to override locale
* New option -application_id
* New option -compliance allows certain deviations from standards
* Suitable ISOLINUX boot images are made alternatively bootable via an MBR
* Bug fix: Forgot exit value registration to -return_with.
Thanks to Steve Dodd.
* Bug fix: -format as_needed did not recognize unformatted BD-RE
* Bug fix: disk patterns with relative addresses were not properly resolved
libisoburn-0.2.8.pl00.tar.gz Wed Oct 15 2008
===============================================================================
* Now depending on libisofs-0.6.10 and libburn-0.5.4 to ensure use of their
recent bug fixes
xorriso novelties:
* Ability to write and maintain bootable ISO images based on ISOLINUX
* New ./configure option --disable-libreadline to make binary more portable
* Bug fix: -as mkisofs -iso-level was accused to be an unknown option
* Bug fix: -follow link attributed random target filenames to looping links
libisoburn-0.2.6.pl00.tar.gz Sat Sep 20 2008
===============================================================================
xorriso novelties:
* Capability to insert and extract files far larger than 4 GB
* New option -file_size_limit, -as mkisofs now supports -iso-level 1 to 3
* New option -extract_cut
* New -error_behavior "file_extraction" behavior "best_effort"
* New option -check_media_defaults
* New option -list_delimiter
* Bug fix: -format full did not re-format already formatted DVD+RW
libisoburn-0.2.4.pl00.tar.gz Mo Aug 25 2008
===============================================================================
xorriso novelties:
* New option -check_media
* New -find test -damaged, new -find actions "report_damage", "report_lba"
* New -error_behavior occasion "file_extraction"
libisoburn-0.2.2.pl01.tar.gz Fr Jul 25 2008
===============================================================================
Libisoburn 0.2.2 release notes (Jul 19 2008)
* New API function isoburn_prepare_blind_grow()
* New flag bits with isoburn_set_msc1(), isoburn_read_iso_head()
xorriso novelties:
* New option -grow_blindly
* Options -C and -M for -as mkisofs emulation
* Options for -as cdrecord emulation: -multi, -msinfo, -isosize, tsize, --
grow_overwriteable_iso, write_start_address,
* New option -pacifier, more compatible pacifier with -as mkisofs
* make install creates aliases as symbolic links: osirrox, xorrisofs, xorrecord
* Can serve growisofs if started as xorrisofs, genisofs, mkisofs, genisoimage
pl01 changes (Jul 25 2008):
* Bug fix: Variable DESTDIR was not properly respected during make install
libisoburn-0.2.0.pl00.tar.gz Mon Jun 23 2008
===============================================================================
Libisoburn 0.2.0 release notes:
* New API functions isoburn_set_msgs_submit(), isoburn_drive_set_msgs_submit()
xorriso novelties:
* Bug fix: -chmod unintentionally performed o-x as first operation
* New options -cpax, -cp_rx, -cp_rax, -extract to restore files and trees from
ISO image to disk filesystem.
* New option -paste_in to copy ISO files into parts of disk files
* New options -map_l, -compare_l, -update_l, -extract_l
libisoburn-0.1.8.pl00.tar.gz Tue Jun 3 2008
===============================================================================
* Bug fix: Major,minor numbers of device files appeared as 0,1 in next session
* Bug fix: modifying to overwriteable target yielded unmountable results
xorriso novelties:
* New option -stream_recording for full speed with DVD-RAM and BD-RE
* New options -osirrox and -cpx allow to extract single files from ISO image
libisoburn-0.1.6.pl00.tar.gz Mon May 19 2008
===============================================================================
* Support for BD-RE (by depending on libburn-0.4.8)
* New API wrapper calls isoburn_toc_*() around libburn TOC inquiry calls
* New API call isoburn_read_iso_head() identifies ISO 9660 filesystems
* New API call isoburn_set_msc1() (like mount -o sbsector=)
xorriso novelties:
* Bug fix: -update_r and others did not work properly with relative paths
* New options -map and -map_single
* New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m
* Emulated -toc on overwriteable media, new -toc layout with volume id
* New option -load makes alternative sessions accessible
* New -blank and -format modes 'as_needed'
* New option -list_formats and -format mode 'by_index_'
libisoburn-0.1.4.pl00.tar.gz Wed Apr 30 2008
===============================================================================
* Improved performance with reading directory trees
* xorriso: Improved attribute transfer from disk for target
* xorriso: Incremental backup functionality by new option -update_r
* xorriso: Options -cut_out and split_size map byte intervals of oversized
files into ISO files
* xorriso: Emulation of some basic mkisofs and cdrecord options
* Dynamically linkable with release version 0.6.4 of libisofs
Version 0.1.2 was not released as libisoburn
but only as xorriso standalone version. Wed Mar 12 2008
===============================================================================
* Bug fix: -report_about HINT or higher did not report at all
* Bug fix: speed=number without unit or media type letter was always CD speed
* Bug fix: it was possible to write to appendable media which was not -indev
* Bug fix: -follow param did not work for adding non-directory symbolic links
* Bug fix: It was not possible to -add /THIS=a /b=THIS
* Improved attribute transfer from disk for implicit target directories
* New option -as "cdrecord" emulates a narrow set of cdrecord gestures
* New option -as "mkisofs" emulates a narrow set of mkisofs gestures
* New option -publisher
* New option -errfile_log
* Support for DVD+R/DL media
* New options -compare, -compare_r and according -find -exec action
* New options -update, -update_r and according -find -exec action
* New -find actions "rm", "rm_r", new -findx -type "m" -exec "empty_iso_dir"
* New option -cut_out
libisoburn-0.1.0.pl01.tar.gz Fri Feb 15 2008
===============================================================================
* Initial release of libisoburn/xorriso
* libisoburn connects libisofs and libburn
* libisoburn emulates multi-session on media without session history
* xorriso is an integrated multi-session tool for ISO 9660 Rock Ridge images
* due to a subtle mistake in ABI usage with libisofs this release had to be
restricted to dynamic linking with exactly libisofs-0.6.2 where the mistake
does no harm. A version of libisoburn which is open to all future libisofs
versions will be released shortly after libisofs.0.6.4.

View File

@ -183,7 +183,9 @@ doc/html: doc/doxygen.conf
doc-upload: doc/html
scp -r $</* $(webhost):$(webpath)
all: doc
## Not by default any more.
## It is unclear who is supposed to create file ./doc/doc.lock
# all: doc
install-data-local:
if [ -f ./doc/doc.lock ]; then \
@ -231,6 +233,8 @@ EXTRA_DIST = \
COPYRIGHT \
COPYING \
INSTALL \
ChangeLog \
libisoburn/libisoburn.ver \
xorriso/changelog.txt \
xorriso/xorriso_buildstamp_none.h \
xorriso/README_gnu_xorriso \

40
README
View File

@ -4,7 +4,7 @@
libisoburn and xorriso. By Vreixo Formoso <metalpain2002@yahoo.es>
and Thomas Schmitt <scdbackup@gmx.net>
Integrated sub project of libburnia-project.org.
http://files.libburnia-project.org/releases/libisoburn-0.5.8.pl00.tar.gz
http://files.libburnia-project.org/releases/libisoburn-0.6.2.pl00.tar.gz
Copyright (C) 2006-2010 Vreixo Formoso, Thomas Schmitt.
Provided under GPL version 2 or later.
------------------------------------------------------------------------------
@ -34,17 +34,17 @@ By using this software you agree to the disclaimer at the end of this text:
Compilation, First Glimpse, Installation
Dynamic library and compile time header requirements for libisoburn-0.5.8 :
- libburn.so.4 , version libburn-0.8.2 or higher
- libisofs.so.6 , version libisofs-0.6.32 or higher
Dynamic library and compile time header requirements for libisoburn-0.6.2 :
- libburn.so.4 , version libburn-0.8.4 or higher
- libisofs.so.6 , version libisofs-0.6.36 or higher
libisoburn and xorriso will not start with libraries which are older than their
headers seen at compile time.
include headers seen at compile time.
Obtain libisoburn-0.5.8.pl00.tar.gz, take it to a directory of your choice
Obtain libisoburn-0.6.2.pl00.tar.gz, take it to a directory of your choice
and do:
tar xzf libisoburn-0.5.8.pl00.tar.gz
cd libisoburn-0.5.8
tar xzf libisoburn-0.6.2.pl00.tar.gz
cd libisoburn-0.6.2
Within that directory execute:
@ -55,11 +55,14 @@ 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
By use of a version script, the libisoburn.so library exposes no other function
names but those of the API definitions in <libsoburn/libisoburn.h> and
<libisoburn/xorriso.h>.
If -Wl,--version-script=... makes problems with the local compiler, then
disable this encapsulation feature by
./configure --disable-versioned-libs
make clean ; make
xorriso
@ -103,6 +106,15 @@ if 64 KB rather than 32 KB are transmitted in each write operation.
--enable-dvd-obs-64k
libisoburn, libisofs, and libburn C language API
For the lower API concepts and calls see
./libisoburn/libisoburn.h
as well as
/usr/include/libisofs/libisofs.h
/usr/include/libburn/libburn.h
xorriso C language API
Actually the dynamically linked xorriso binary is only a small start program
@ -119,7 +131,7 @@ The header file xorriso.h gets installed suitable for
#include <libisoburn/xorriso.h>
So after installation of a binary libisoburn package you may find it e.g. as
/usr/local/include/libisoburn/xorriso.h
/usr/include/libisoburn/xorriso.h
Drives and Disk File Objects

View File

@ -5,6 +5,8 @@ freebsd*)
LDFLAGS="$LDFLAGS -L/usr/local/lib"
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
;;
solaris*)
LDFLAGS="$LDFLAGS -L/usr/local/lib"
esac
])
@ -191,6 +193,21 @@ AC_DEFUN([LIBBURNIA_ASSERT_READLINE],
])
dnl LIBISOBURN_ASSERT_VERS_LIBS is by Thomas Schmitt, libburnia project
dnl It tests whether -Wl,--version-script=... works with the compiler
AC_DEFUN([LIBISOBURN_ASSERT_VERS_LIBS],
[
libburnia_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -Wl,--version-script=libisoburn/libisoburn.ver"
AC_TRY_LINK([#include <stdio.h>], [printf("Hello\n");],
[vers_libs_test="yes"], [vers_libs_test="no"])
if test x$vers_libs_test = xno
then
LDFLAGS="$libburnia_save_LDFLAGS"
fi
])
dnl LIBBURNIA_SET_PKGCONFIG is by Thomas Schmitt, libburnia project
dnl It determines the install directory for the *.pc file.
dnl Important: Must be performed _after_ TARGET_SHIZZLE

View File

@ -1,4 +1,4 @@
AC_INIT([libisoburn], [0.5.9], [http://libburnia-project.org])
AC_INIT([libisoburn], [0.6.2], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -22,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=5
ISOBURN_MICRO_VERSION=9
ISOBURN_MINOR_VERSION=6
ISOBURN_MICRO_VERSION=2
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
@ -36,16 +36,16 @@ dnl Libtool versioning
dnl Generate libisoburn.so.1.x.y
dnl SONAME will become LT_CURRENT - LT_AGE
dnl
dnl ts B00613
dnl ### This is the release version 0.5.8 = libisoburn.so.1.47.0
dnl This is the development version after above stable release
dnl ts B00918
dnl This is the release version 0.6.2 = libisoburn.so.1.51.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 = 48 - 47 = 1 . Library name = libisoburn.so.1.47.0
dnl SONAME = 52 - 51 = 1 . Library name = libisoburn.so.1.51.0
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
LT_CURRENT=48
LT_AGE=47
LT_CURRENT=52
LT_AGE=51
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@ -251,6 +251,25 @@ else
fi
AC_SUBST(XORRISO_DVD_OBS_64K)
# Library versioning normally serves a complex purpose.
# Since libisoburn obeys strict ABI backward compatibility, it needs only the
# simple feature to declare function names "global:" or "local:". Only the
# global ones are visible to applications at library load time.
AC_ARG_ENABLE(versioned-libs,
[ --enable-versioned-libs Enable strict symbol encapsulation , default=yes],
, enable_versioned_libs=yes)
if test x$enable_versioned_libs = xyes; then
vers_libs_test=no
LIBISOBURN_ASSERT_VERS_LIBS
if test x$vers_libs_test = xno
then
echo "disabled strict symbol encapsulation (test failed)"
else
echo "enabled strict symbol encapsulation"
fi
else
echo "disabled strict symbol encapsulation"
fi
AC_CHECK_HEADER(libburn/libburn.h)
AC_CHECK_HEADER(libisofs/libisofs.h)
@ -260,7 +279,7 @@ AC_CHECK_HEADER(libisofs/libisofs.h)
dnl Check for proper library versions
LIBBURN_REQUIRED=0.8.4
LIBISOFS_REQUIRED=0.6.34
LIBISOFS_REQUIRED=0.6.36
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)

View File

@ -10,7 +10,7 @@ optical discs. This page is about its capability to read, manipulate, and
write ISO 9660 filesystems with Rock Ridge extensions. Media can be optical
media or filesystem objects.
Our scope is currently Linux 2.4 and 2.6, or FreeBSD .
Our scope is currently Linux 2.4 and 2.6, or FreeBSD, or OpenSolaris.
libisoburn is an add-on to libburn and libisofs which coordinates both and
also allows to grow ISO-9660 filesystem images on multi-session media as well
@ -21,7 +21,9 @@ xorriso is an application of all three libraries which creates, loads,
manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions.
Manipulation is not only adding or overwriting of files but also deletion,
renaming, and attribute changing. An incremental backup feature is provided.
See xorriso/README for more
The xorriso features are accessible via built-in command interpreters and
via a C language API.
SONAME:
libisoburn.so.1 (since 0.1.0, February 2008).
@ -32,7 +34,7 @@ libisoburn.so.1 (since 0.1.0, February 2008).
Our build system is based on autotools.
User experience tells us that you will need at least autotools version 1.7.
To build libisoburn go into its toplevel directory and execute
To build libisoburn go into its toplevel directory and execute:
- ./bootstrap (needed if you downloaded from SVN)
@ -40,14 +42,28 @@ To build libisoburn go into its toplevel directory and execute
- make
To make the libraries accessible for running resp. developing applications
To make the library and the xorriso application accessible for running resp.
software development:
- make install
Read libisoburn/libisoburn.h for a description of the API.
See also README, xorriso/README, and the man page xorriso/xorriso.1 which
gives an idea of the capabilities provided by Libburnia.
For direct use as command line tool use the xorriso binary which among many
other features provides a mkisofs emulation via command "-as mkisofs".
See man page xorriso/xorriso.1 or GNU info document xorriso/xorriso.info.
If you want to link an own application with libisoburn, you have
two alternative APIs for choice:
- libisoburn, together with libburn and libisofs.
- xorriso, a complete representation of xorriso command line options.
It encapsulates the three lower level libraries.
Calls of both API families shall not be mixed.
For a description of the lbisoburn API read libisoburn/libisoburn.h
See file README for download and installation of a release tarball.
You will also have to install and understand the two libraries of the
Libburnia project which provide fundamental services:
libburn is the library by which preformatted data get onto optical media.
@ -55,4 +71,15 @@ See libburn/libburn.h for its API description.
libisofs is the library to handle ISO 9660 filesystems with Rock Ridge
extensions. Its API is described in libisofs/libisofs.h .
For xorriso features see its man page xorriso/xorriso.1 or
its GNU info document xorriso/xorriso.info.
For the corresponding C language API see libisoburn/xorriso.h (resp.
xorriso/xorriso.h in the build directory).
The implementation this API is part of libisoburn.
The xorriso command line tool gets installed as dynamically linked
binary together with libisoburn.
There is also a statically linked release named GNU xorriso.
See xorriso/README_gnu_xorriso for its download and installation.
*/

View File

@ -154,13 +154,6 @@ QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = YES
# If the DETAILS_AT_TOP tag is set to YES then Doxygen
# will output the detailed description near the top, like JavaDoc.
# If set to NO, the detailed description appears after the member
# documentation.
DETAILS_AT_TOP = YES
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# re-implements.
@ -495,7 +488,9 @@ INPUT_ENCODING = UTF-8
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
FILE_PATTERNS =
FILE_PATTERNS = libisoburn.h \
xorriso.h \
comments
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.

View File

@ -1192,7 +1192,7 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
ret= isoburn_read_iso_head(d, lba, &image_size, NULL, 0);
if(ret<=0)
{ret= 0; goto failure;}
lba= Libisoburn_overwriteable_starT;
lba= o->target_iso_head_size / 2048;
with_enclosure= 1;
if((flag & 16) && o->emulation_mode == 1) {
ret= 1;
@ -1219,7 +1219,7 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
/* growisofs aligns to 16 rather than 32. Overwriteable TOC emulation
relies on not accidentially seeing inter-session trash data.
But one can safely access 16 blocks earlier because a xorriso header
would have overwritten with the unused 16 blocks at its start.
would have been overwritten with the unused 16 blocks at its start.
If libisoburn alignment would increase, then this would not be
possible any more.
*/

View File

@ -115,7 +115,7 @@ struct isoburn *isoburn_list_start= NULL;
int isoburn_new(struct isoburn **objpt, int flag)
{
struct isoburn *o;
int i, ret;
int ret;
*objpt= o= (struct isoburn *) malloc(sizeof(struct isoburn));
if(o==NULL) {
@ -137,8 +137,9 @@ int isoburn_new(struct isoburn **objpt, int flag)
o->fabricated_disc_status= BURN_DISC_UNREADY;
o->toc= NULL;
o->wrote_well= -1;
for(i=0;i<Libisoburn_target_head_sizE;i++)
o->target_iso_head[i]= 0;
o->loaded_partition_offset= 0;
o->target_iso_head_size= Libisoburn_target_head_sizE;
o->target_iso_head= NULL;
o->image= NULL;
o->iso_data_source= NULL;
o->read_pacifier= NULL;
@ -148,9 +149,15 @@ int isoburn_new(struct isoburn **objpt, int flag)
o->msgs_submit_flag= 0;
o->prev= NULL;
o->next= NULL;
o->target_iso_head= calloc(1, o->target_iso_head_size);
if(o->target_iso_head == NULL) {
isoburn_report_iso_error(ISO_OUT_OF_MEM, "Cannot allocate overwrite buffer",
0, "FATAL", 0);
goto failed;
}
ret= iso_image_new("ISOIMAGE", &o->image);
if(ret<0) {
isoburn_report_iso_error(ret, "Cannot create image", 0, "FATAL", 0);
isoburn_report_iso_error(ret, "Cannot create image object", 0, "FATAL", 0);
goto failed;
}
isoburn_link(o, isoburn_list_start, 1);
@ -188,6 +195,8 @@ int isoburn_destroy(struct isoburn **objpt, int flag)
burn_source_free(o->iso_source);
if(o->iso_data_source!=NULL)
iso_data_source_unref(o->iso_data_source);
if(o->target_iso_head != NULL)
free(o->target_iso_head);
free((char *) o);
*objpt= NULL;
return(1);
@ -346,6 +355,36 @@ int isoburn_msgs_submit(struct isoburn *o, int error_code, char msg_text[],
}
/** Check whether the size of target_iso_head matches the given partition
offset. Eventually adjust size.
*/
int isoburn_adjust_target_iso_head(struct isoburn *o,
uint32_t offst, int flag)
{
uint8_t *new_buf;
uint32_t new_size;
if(o->target_iso_head_size == Libisoburn_target_head_sizE + 2048 * offst)
return(1);
new_size= Libisoburn_target_head_sizE + 2048 * offst;
new_buf= calloc(1, new_size);
if(new_buf == NULL) {
isoburn_msgs_submit(o, 0x00060000,
"Cannot re-allocate overwrite buffer", 0, "FATAL", 0);
return(-1);
}
memcpy(new_buf, o->target_iso_head,
o->target_iso_head_size < new_size ? o->target_iso_head_size : new_size);
free(o->target_iso_head);
o->target_iso_head= new_buf;
o->target_iso_head_size= new_size;
if(o->nwa == o->zero_nwa)
o->nwa= Libisoburn_overwriteable_starT + offst;
o->zero_nwa= Libisoburn_overwriteable_starT + offst;
return(1);
}
/* @param flag bit0= modifying rather than growing
bit1= prepare for early release of input drive:
wait until input and then disable image data source
@ -415,16 +454,9 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
iso_write_opts_set_rockridge(wopts, opts->rockridge);
iso_write_opts_set_joliet(wopts, opts->joliet);
iso_write_opts_set_iso1999(wopts, opts->iso1999);
/* <<< #ifdef shall be removed when libisofs-0.6.20 is released */
#ifdef Libisofs_hardlink_prooF
iso_write_opts_set_hardlinks(wopts, opts->hardlinks);
if(opts->hardlinks)
iso_write_opts_set_rrip_1_10_px_ino(wopts, 1);
#endif
iso_write_opts_set_aaip(wopts, opts->aaip);
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers);
iso_write_opts_set_allow_deep_paths(wopts, opts->allow_deep_paths);
@ -465,10 +497,14 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
opts->vol_expiration_time, opts->vol_effective_time,
opts->vol_uuid);
ret= isoburn_adjust_target_iso_head(out_o, opts->partition_offset, 0);
if(ret <= 0)
{ret= -1; goto ex;}
if(opts->no_emul_toc) {
if(out_o->nwa == out_o->zero_nwa &&
out_o->zero_nwa == Libisoburn_overwriteable_starT &&
out_o->emulation_mode == 1) {
out_o->zero_nwa == Libisoburn_overwriteable_starT
+ opts->partition_offset
&& out_o->emulation_mode == 1) {
out_o->nwa= 0;
out_o->zero_nwa= 0;
out_o->min_start_byte= 0;
@ -486,6 +522,9 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
iso_write_opts_set_appendable(wopts, !new_img);
iso_write_opts_set_overwrite_buf(wopts,
nwa>0 ? out_o->target_iso_head : NULL);
iso_write_opts_set_part_offset(wopts, opts->partition_offset,
opts->partition_secs_per_head,
opts->partition_heads_per_cyl);
ret = iso_image_create_burn_source(in_o->image, wopts, &wsrc);
if (ret < 0) {
@ -877,6 +916,9 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
o->data_start_lba= -1;
o->system_area_data= NULL;
o->system_area_options= 0;
o->partition_offset= 0;
o->partition_secs_per_head= 0;
o->partition_heads_per_cyl= 0;
o->vol_creation_time= 0;
o->vol_modification_time= 0;
o->vol_expiration_time= 0;
@ -1157,3 +1199,26 @@ int isoburn_igopt_get_pvd_times(struct isoburn_imgen_opts *opts,
}
int isoburn_igopt_set_part_offset(struct isoburn_imgen_opts *opts,
uint32_t block_offset_2k,
int secs_512_per_head, int heads_per_cyl)
{
if (block_offset_2k > 0 && block_offset_2k < 16)
return(0);
opts->partition_offset = block_offset_2k;
opts->partition_secs_per_head = secs_512_per_head;
opts->partition_heads_per_cyl = heads_per_cyl;
return(1);
}
int isoburn_igopt_get_part_offset(struct isoburn_imgen_opts *opts,
uint32_t *block_offset_2k,
int *secs_512_per_head, int *heads_per_cyl)
{
*block_offset_2k = opts->partition_offset;
*secs_512_per_head = opts->partition_secs_per_head;
*heads_per_cyl = opts->partition_heads_per_cyl;
return 1;
}

View File

@ -36,11 +36,15 @@ int isoburn_toc_entry_new(struct isoburn_toc_entry **objpt,
int isoburn_toc_entry_destroy(struct isoburn_toc_entry **o, int flag);
/* Size of target_iso_head which is to be written during
isoburn_activate_session()
/* Minimal size of target_iso_head which is to be written during
isoburn_activate_session().
Within this size there is everything that is needed for image access with
no partition offset. The actual target_iso_head buffer must be larger by
the evential partition offset.
*/
#define Libisoburn_target_head_sizE (32*2048)
struct isoburn {
@ -104,9 +108,14 @@ struct isoburn {
int wrote_well;
/* Buffered ISO head from media (should that become part of
ecma119_read_opts ?) */
uint8_t target_iso_head[Libisoburn_target_head_sizE];
/* ISO head buffer to be filled by write run */
int target_iso_head_size;
uint8_t *target_iso_head;
/* The 2k offset which was read from a loaded image.
*/
uint32_t loaded_partition_offset;
/* Libisofs image context */
IsoImage *image;
@ -243,6 +252,12 @@ isoburn_data_source_new(struct burn_drive *d);
int isoburn_data_source_shutdown(IsoDataSource *src, int flag);
/** Check whether the size of target_iso_head matches the given partition
offset. Eventually adjust size.
*/
int isoburn_adjust_target_iso_head(struct isoburn *o,
uint32_t offst, int flag);
/**
* Options for image reading.
(Comments here may be outdated. API getter/setter function descriptions
@ -520,6 +535,16 @@ struct isoburn_imgen_opts {
and timezone 0 */
char vol_uuid[17];
/* The number of unclaimed 2K blocks before start of partition 1 as of
the MBR in system area. If not 0 this will cause double volume
descriptor sets and double tree.
*/
uint32_t partition_offset;
/* Partition table parameter: 1 to 63, 0= disabled/default */
int partition_secs_per_head;
/* 1 to 255, 0= disabled/default */
int partition_heads_per_cyl;
};
@ -555,6 +580,9 @@ struct isoburn_imgen_opts {
written by random access before they were written sequentially.
In this case, no copy of the session 1 header is maintained and no TOC
will be possible. Thus writing begins sequentially at LBA 0.
IMPORTANT: This macro gives the minimal size of an image header.
It has to be enlarged by the eventual partition offset.
*/
#define Libisoburn_overwriteable_starT \
((off_t) (Libisoburn_target_head_sizE/2048))

View File

@ -32,8 +32,8 @@
#endif /* Xorriso_standalonE */
#include "isoburn.h"
#include "libisoburn.h"
#include "isoburn.h"
#define BP(a,b) [(b) - (a) + 1]
@ -299,12 +299,109 @@ int isoburn_activate_session(struct burn_drive *drive)
return 1;
ret = burn_random_access_write(drive, (off_t) 0, (char*)o->target_iso_head,
Libisoburn_target_head_sizE, 1);
o->target_iso_head_size, 1);
return ret;
}
/** API @since 0.6.2
*/
int isoburn_get_img_partition_offset(struct burn_drive *drive,
uint32_t *block_offset_2k)
{
int ret;
struct isoburn *o;
ret = isoburn_find_emulator(&o, drive, 0);
if(ret < 0 || o == NULL)
return -1;
*block_offset_2k= o->loaded_partition_offset;
if(o->loaded_partition_offset == 0)
return(0);
if(o->target_iso_head_size == (off_t) Libisoburn_target_head_sizE
+ (off_t) 2048 * (off_t) o->loaded_partition_offset)
return(1);
return(2);
}
/* Check for MBR signature and a first partition that starts at a 2k block
and ends where the image ends.
If not too large or too small, accept its start as partition offset.
*/
static int isoburn_inspect_partition(struct isoburn *o, uint32_t img_size,
int flag)
{
uint8_t *mbr, *part, buf[2048];
uint32_t offst, numsec;
struct ecma119_pri_vol_desc *pvm;
off_t data_count;
int ret;
char msg[160];
static int max_offst= 512 - 32;
mbr= o->target_iso_head;
part= mbr + 446;
if(mbr[510] != 0x55 || mbr[511] != 0xAA)
return(2); /* not an MBR */
/* Does the first partition entry look credible ? */
if(part[0] != 0x80 && part[0] != 0x00)
return(2); /* Invalid partition status */
if(part[1] == 0 && part[2] == 0 && part[3] == 0)
return(2); /* Zero C/H/S start address */
/* Does it match the normal ISO image ? */
offst= iso_read_lsb(part + 8, 4);
numsec= iso_read_lsb(part + 12, 4);
if(offst < 64)
return(2); /* Zero or unusably small partition start */
if((offst % 4) || (numsec % 4))
return(2); /* Not aligned to 2k */
if(numsec < 72)
return(2); /* No room for volume descriptors */
offst/= 4;
numsec/= 4;
if(offst + numsec != img_size)
return(2); /* Partition end does not match image end */
/* Is there a PVD at the partition start ? */
ret = burn_read_data(o->drive, (off_t) (offst + 16) * (off_t) 2048,
(char*) buf, 2048, &data_count, 2);
if(ret <= 0)
return(2);
pvm = (struct ecma119_pri_vol_desc *) buf;
if (strncmp((char*) pvm->std_identifier, "CD001", 5) != 0)
return(2); /* not a PVD */
if (pvm->vol_desc_type[0] != 1 || pvm->vol_desc_version[0] != 1
|| pvm->file_structure_version[0] != 1 )
return(2); /* failed sanity check */
if(iso_read_lsb(pvm->vol_space_size, 4) + offst != img_size)
return(2); /* Image ends do not match */
/* Now it is credible. Not yet clear is whether it is acceptable. */
o->loaded_partition_offset= offst;
/* If the partition start is too large: Report but do not accept. */
if(offst > max_offst) { /* Not more than 1 MB of .target_iso_head */
sprintf(msg,
"Detected partition offset of %.f blocks. Maximum for load buffer is %d",
(double) offst, max_offst);
isoburn_msgs_submit(NULL, 0x00060000, msg, 0, "WARNING", 0);
return(3);
}
/* Accept partition start and adjust buffer size */
ret= isoburn_adjust_target_iso_head(o, offst, 0);
if(ret <= 0)
return(ret);
return(1);
}
/** Initialize the emulation of multi-session on random access media.
The need for emulation is confirmed already.
@param o A freshly created isoburn object. isoburn_create_data_source() was
@ -337,8 +434,8 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
if (capacity > 0 || role == 2) {
/* Might be a block device on a system where libburn cannot determine its
size. Try to read anyway. */
memset(o->target_iso_head, 0, Libisoburn_target_head_sizE);
to_read = Libisoburn_target_head_sizE;
to_read = o->target_iso_head_size;
memset(o->target_iso_head, 0, to_read);
if(capacity > 0 && (off_t) capacity * (off_t) 2048 < to_read)
to_read = (off_t) capacity * (off_t) 2048;
ret = burn_read_data(drive, (off_t) 0, (char*)o->target_iso_head,
@ -370,7 +467,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
pvm = (struct ecma119_pri_vol_desc *)(o->target_iso_head + 16 * 2048);
if (!strncmp((char*)pvm->std_identifier, "CD001", 5)) {
if (strncmp((char*)pvm->std_identifier, "CD001", 5) == 0) {
off_t size;
/* sanity check */
@ -383,6 +480,9 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
/* ok, PVM found, set size */
size = (off_t) iso_read_lsb(pvm->vol_space_size, 4);
ret= isoburn_inspect_partition(o, (uint32_t) size, 0);
if (ret <= 0)
return ret;
size *= (off_t) 2048; /* block size in bytes */
isoburn_set_start_byte(o, size, 0);
o->fabricated_disc_status= BURN_DISC_APPENDABLE;
@ -395,6 +495,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
/* treat any disc in an unknown format as full */
o->fabricated_disc_status= BURN_DISC_FULL;
}
return 1;
}

View File

@ -146,6 +146,10 @@ size.
*/
/* Important: If you add a public API function then add its name to file
libisoburn/libisoburn.ver
*/
/* API functions */
@ -220,7 +224,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 34
#define isoburn_libisofs_req_micro 36
/** The minimum version of libburn to be used with this version of libisoburn
at compile time.
@ -263,8 +267,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 5
#define isoburn_header_version_micro 9
#define isoburn_header_version_minor 6
#define isoburn_header_version_micro 2
/** Note:
Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time.
@ -1169,7 +1173,7 @@ int isoburn_igopt_get_data_start(struct isoburn_imgen_opts *o, int *lba);
/** Set resp. get parameters "name" and "timestamp" for a scdbackup checksum
tag. It will be appended to the libisofs session tag if the image starts at
LBA 0. See isoburn_disc_track_lba_nwa. The scdbackup tag can be used
to verify the image by command scdbackup_verify <device> -auto_end.
to verify the image by command scdbackup_verify $device -auto_end.
See scdbackup/README appendix VERIFY for its inner details.
@since 0.4.4
@param o The option set to work on
@ -1218,20 +1222,59 @@ int isoburn_igopt_set_system_area(struct isoburn_imgen_opts *o,
int isoburn_igopt_get_system_area(struct isoburn_imgen_opts *o,
char data[32768], int *options);
/** Control production of a second set of volume descriptors (superblock)
and directory trees, together with a partition table in the MBR where the
first partition has non-zero start address and the others are zeroed.
The first partition stretches to the end of the whole ISO image.
The additional volume descriptor set and trees will allow to mount the
ISO image at the start of the first partition, while it is still possible
to mount it via the normal first volume descriptor set and tree at the
start of the image resp. storage device.
This makes few sense on optical media. But on USB sticks it creates a
conventional partition table which makes it mountable on e.g. Linux via
/dev/sdb and /dev/sdb1 alike.
@since 0.6.2
@param opts
The option set to be manipulated.
@param block_offset_2k
The offset of the partition start relative to device start.
This is counted in 2 kB blocks. The partition table will show the
according number of 512 byte sectors.
Default is 0 which causes no second set and trees.
If it is not 0 then it must not be smaller than 16.
@param secs_512_per_head
Number of 512 byte sectors per head. 1 to 63. 0=automatic.
@param heads_per_cyl
Number of heads per cylinder. 1 to 255. 0=automatic.
@return 1 success, <=0 failure
*/
int isoburn_igopt_set_part_offset(struct isoburn_imgen_opts *opts,
uint32_t block_offset_2k,
int secs_512_per_head, int heads_per_cyl);
int isoburn_igopt_get_part_offset(struct isoburn_imgen_opts *opts,
uint32_t *block_offset_2k,
int *secs_512_per_head, int *heads_per_cyl);
/** 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 opts
The option set to work on
@param creation_time
ECMA-119 Volume Creation Date and 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
ECMA-119 Volume Modification Date and 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
ECMA-119 Volume Expiration Date and 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
ECMA-119 Volume Effective Date and Time
When "the information in the volume may be used."
A value of 0 means that not such retention is intended.
@param uuid
@ -1251,6 +1294,7 @@ int isoburn_igopt_get_pvd_times(struct isoburn_imgen_opts *opts,
time_t *expiration_time, time_t *effective_time,
char uuid[17]);
/* ----------------------------------------------------------------------- */
/* End of Options for image generation */
/* ----------------------------------------------------------------------- */
@ -1313,6 +1357,23 @@ int isoburn_set_read_pacifier(struct burn_drive *drive,
int (*read_pacifier)(IsoImage*, IsoFileSource*),
void *app_handle);
/** Inquire the partition offset of the loaded image. The first 512 bytes of
the image get examined whether they bear an MBR signature and a first
partition table entry which matches the size of the image. In this case
the start address is recorded as partition offset and internal buffers
get adjusted.
See also isoburn_igopt_set_part_offset().
@since 0.6.2
@param drive The drive with the loaded image
@param block_offset_2k returns the recognized partition offset
@return <0 = error
0 = no partition offset recognized
1 = acceptable non-zero offset, buffers are adjusted
2 = offset is credible but not acceptable for buffer size
*/
int isoburn_get_img_partition_offset(struct burn_drive *drive,
uint32_t *block_offset_2k);
/** Set the IsoImage to be used with a drive. This eventually releases
the reference to the old IsoImage attached to the drive.
@ -1611,3 +1672,7 @@ void isoburn_finish(void);
int isoburn_needs_emulation(struct burn_drive *d);
/* ---------------------------- Test area ----------------------------- */
/* no tests active, currently */

255
libisoburn/libisoburn.ver Normal file
View File

@ -0,0 +1,255 @@
LIBISOBURN1 {
global:
isoburn_activate_session;
isoburn_attach_image;
isoburn_cancel_prepared_write;
isoburn_disc_available_space;
isoburn_disc_erasable;
isoburn_disc_erase;
isoburn_disc_get_msc1;
isoburn_disc_get_status;
isoburn_disc_track_lba_nwa;
isoburn_disc_write;
isoburn_drive_aquire;
isoburn_drive_grab;
isoburn_drive_release;
isoburn_drive_scan_and_grab;
isoburn_drive_set_msgs_submit;
isoburn_drive_wrote_well;
isoburn_finish;
isoburn_get_attached_image;
isoburn_get_fifo_status;
isoburn_get_min_start_byte;
isoburn_get_mount_params;
isoburn_igopt_destroy;
isoburn_igopt_get_data_start;
isoburn_igopt_get_effective_lba;
isoburn_igopt_get_extensions;
isoburn_igopt_get_fifo_size;
isoburn_igopt_get_level;
isoburn_igopt_get_out_charset;
isoburn_igopt_get_over_mode;
isoburn_igopt_get_over_ugid;
isoburn_igopt_get_pvd_times;
isoburn_igopt_get_relaxed;
isoburn_igopt_get_scdbackup_tag;
isoburn_igopt_get_sort_files;
isoburn_igopt_get_system_area;
isoburn_igopt_new;
isoburn_igopt_set_extensions;
isoburn_igopt_set_fifo_size;
isoburn_igopt_set_level;
isoburn_igopt_set_out_charset;
isoburn_igopt_set_over_mode;
isoburn_igopt_set_over_ugid;
isoburn_igopt_set_pvd_times;
isoburn_igopt_set_relaxed;
isoburn_igopt_set_scdbackup_tag;
isoburn_igopt_set_sort_files;
isoburn_igopt_set_system_area;
isoburn_initialize;
isoburn_is_compatible;
isoburn_libburn_req;
isoburn_libisofs_req;
isoburn_needs_emulation;
isoburn_prepare_blind_grow;
isoburn_prepare_disc;
isoburn_prepare_new_image;
isoburn_read_image;
isoburn_read_iso_head;
isoburn_ropt_destroy;
isoburn_ropt_get_auto_incharset;
isoburn_ropt_get_default_dirperms;
isoburn_ropt_get_default_perms;
isoburn_ropt_get_extensions;
isoburn_ropt_get_input_charset;
isoburn_ropt_get_size_what;
isoburn_ropt_new;
isoburn_ropt_set_auto_incharset;
isoburn_ropt_set_default_dirperms;
isoburn_ropt_set_default_perms;
isoburn_ropt_set_extensions;
isoburn_ropt_set_input_charset;
isoburn_set_msc1;
isoburn_set_msgs_submit;
isoburn_set_read_pacifier;
isoburn_sync_after_write;
isoburn_toc_disc_free;
isoburn_toc_disc_get_sectors;
isoburn_toc_disc_get_sessions;
isoburn_toc_drive_get_disc;
isoburn_toc_session_get_leadout_entry;
isoburn_toc_session_get_sectors;
isoburn_toc_session_get_tracks;
isoburn_toc_track_get_emul;
isoburn_toc_track_get_entry;
isoburn_version;
Xorriso_change_is_pending;
Xorriso_destroy;
Xorriso_dialog;
Xorriso_eval_problem_status;
Xorriso_execute_option;
Xorriso__get_patch_level_text;
Xorriso_get_problem_status;
Xorriso_interpreter;
Xorriso__is_compatible;
Xorriso_lst_destroy_all;
Xorriso_lst_get_next;
Xorriso_lst_get_prev;
Xorriso_lst_get_text;
Xorriso_make_return_value;
Xorriso_msgs_submit;
Xorriso_msgs_submit_void;
Xorriso_new;
Xorriso_option_abort_on;
Xorriso_option_abstract_file;
Xorriso_option_acl;
Xorriso_option_add;
Xorriso_option_add_plainly;
Xorriso_option_alter_date;
Xorriso_option_application_id;
Xorriso_option_as;
Xorriso_option_assert_volid;
Xorriso_option_auto_charset;
Xorriso_option_backslash_codes;
Xorriso_option_ban_stdio_write;
Xorriso_option_biblio_file;
Xorriso_option_blank;
Xorriso_option_boot_image;
Xorriso_option_calm_drive;
Xorriso_option_cdi;
Xorriso_option_cdx;
Xorriso_option_charset;
Xorriso_option_check_md5;
Xorriso_option_check_media;
Xorriso_option_check_media_defaults;
Xorriso_option_chgrpi;
Xorriso_option_chmodi;
Xorriso_option_chowni;
Xorriso_option_close;
Xorriso_option_close_filter_list;
Xorriso_option_commit;
Xorriso_option_commit_eject;
Xorriso_option_compare;
Xorriso_option_compliance;
Xorriso_option_copyright_file;
Xorriso_option_cpri;
Xorriso_option_cpx;
Xorriso_option_cut_out;
Xorriso_option_dev;
Xorriso_option_devices;
Xorriso_option_dialog;
Xorriso_option_disk_dev_ino;
Xorriso_option_disk_pattern;
Xorriso_option_drive_class;
Xorriso_option_dummy;
Xorriso_option_dvd_obs;
Xorriso_option_eject;
Xorriso_option_end;
Xorriso_option_errfile_log;
Xorriso_option_error_behavior;
Xorriso_option_external_filter;
Xorriso_option_extract;
Xorriso_option_extract_cut;
Xorriso_option_file_size_limit;
Xorriso_option_find;
Xorriso_option_follow;
Xorriso_option_fs;
Xorriso_option_getfacli;
Xorriso_option_gid;
Xorriso_option_grow_blindly;
Xorriso_option_hardlinks;
Xorriso_option_help;
Xorriso_option_hide;
Xorriso_option_history;
Xorriso_option_iso_rr_pattern;
Xorriso_option_joliet;
Xorriso_option_list_delimiter;
Xorriso_option_list_formats;
Xorriso_option_list_profiles;
Xorriso_option_load;
Xorriso_option_logfile;
Xorriso_option_lsi;
Xorriso_option_lsx;
Xorriso_option_map;
Xorriso_option_map_l;
Xorriso_option_mark;
Xorriso_option_md5;
Xorriso_option_mkdiri;
Xorriso_option_mount;
Xorriso_option_mount_opts;
Xorriso_option_mvi;
Xorriso_option_no_rc;
Xorriso_option_not_leaf;
Xorriso_option_not_list;
Xorriso_option_not_mgt;
Xorriso_option_not_paths;
Xorriso_option_options_from_file;
Xorriso_option_osirrox;
Xorriso_option_overwrite;
Xorriso_option_pacifier;
Xorriso_option_padding;
Xorriso_option_page;
Xorriso_option_paste_in;
Xorriso_option_path_list;
Xorriso_option_pathspecs;
Xorriso_option_pkt_output;
Xorriso_option_preparer_id;
Xorriso_option_print;
Xorriso_option_print_size;
Xorriso_option_prog;
Xorriso_option_prog_help;
Xorriso_option_prompt;
Xorriso_option_publisher;
Xorriso_option_pvd_info;
Xorriso_option_pwdi;
Xorriso_option_pwdx;
Xorriso_option_read_mkisofsrc;
Xorriso_option_reassure;
Xorriso_option_report_about;
Xorriso_option_return_with;
Xorriso_option_rmi;
Xorriso_option_rollback;
Xorriso_option_rom_toc_scan;
Xorriso_option_scdbackup_tag;
Xorriso_option_scsi_log;
Xorriso_option_session_log;
Xorriso_option_setfacli;
Xorriso_option_setfacl_listi;
Xorriso_option_setfattri;
Xorriso_option_setfattr_listi;
Xorriso_option_set_filter;
Xorriso_option_speed;
Xorriso_option_split_size;
Xorriso_option_status;
Xorriso_option_status_history_max;
Xorriso_option_stdio_sync;
Xorriso_option_stream_recording;
Xorriso_option_system_id;
Xorriso_option_tell_media_space;
Xorriso_option_temp_mem_limit;
Xorriso_option_toc;
Xorriso_option_uid;
Xorriso_option_unregister_filter;
Xorriso_option_update;
Xorriso_option_use_readline;
Xorriso_option_version;
Xorriso_option_volid;
Xorriso_option_volset_id;
Xorriso_option_volume_date;
Xorriso_option_xattr;
Xorriso_option_zisofs;
Xorriso_prescan_args;
Xorriso__preset_signal_behavior;
Xorriso_process_errfile;
Xorriso_process_msg_queues;
Xorriso_program_arg_bsl;
Xorriso_pull_outlists;
Xorriso_push_outlists;
Xorriso_read_rc;
Xorriso_set_problem_status;
Xorriso_startup_libraries;
Xorriso__version;
local: *;
};

View File

@ -4,7 +4,7 @@
GNU xorriso. By Thomas Schmitt <scdbackup@gmx.net>
Derived from and supported by libburnia-project.org, published via:
http://www.gnu.org/software/xorriso/xorriso_eng.html
ftp://ftp.gnu.org/gnu/xorriso/xorriso-0.5.9.tar.gz
ftp://ftp.gnu.org/gnu/xorriso/xorriso-0.6.2.tar.gz
Provided under GPL version 3 or later. No warranty.
------------------------------------------------------------------------------
@ -46,10 +46,10 @@ Optional at compile time are:
If they were present at compile time, then the optional libraries have to
be present at runtime, too.
Obtain xorriso-0.5.9.tar.gz, take it to a directory of your choice and do:
Obtain xorriso-0.6.2.tar.gz, take it to a directory of your choice and do:
tar xzf xorriso-0.5.9.tar.gz
cd xorriso-0.5.9
tar xzf xorriso-0.6.2.tar.gz
cd xorriso-0.6.2
Within that directory execute:
@ -290,9 +290,9 @@ and a matching dynamically linked xorriso binary.
This binary is very lean but depends on properly installed libraries of
suitable revision.
Dynamic library and compile time header requirements for libisoburn-0.5.8 :
- libburn.so.4 , version libburn-0.8.2 or higher
- libisofs.so.6 , version libisofs-0.6.32 or higher
Dynamic library and compile time header requirements for libisoburn-0.6.2 :
- libburn.so.4 , version libburn-0.8.4 or higher
- libisofs.so.6 , version libisofs-0.6.36 or higher
libisoburn and xorriso will not start with libraries which are older than their
headers seen at compile time. So compile in the oldest possible installation
setup unless you have reason to enforce a newer bug fix level.

View File

@ -125,6 +125,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->loaded_volid[0]= 0;
m->assert_volid[0]= 0;
m->assert_volid_sev[0]= 0;
m->preparer_id[0]= 0;
m->publisher[0]= 0;
m->application_id[0]= 0;
m->system_id[0]= 0;
@ -206,6 +207,9 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->system_area_disk_path[0]= 0;
m->system_area_options= 0;
m->patch_system_area= 0;
m->partition_offset= 0;
m->partition_secs_per_head= 0;
m->partition_heads_per_cyl= 0;
m->vol_creation_time= 0;
m->vol_modification_time= 0;
m->vol_expiration_time= 0;
@ -352,6 +356,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
ret= Xorriso_lst_new(&(m->drive_greylist), "/dev", m->drive_greylist, 1);
if(ret <= 0)
goto failure;
Xorriso_preparer_string(m, m->preparer_id, 1); /* avoids library calls */
return(1);
failure:;

View File

@ -7947,7 +7947,7 @@ Documented changes and release timestamp
* xorriso source split into more modules, object code moved into libisoburn
* New write extension option isoburn_igopt_no_emul_toc
* New -compliance rule no_emul_toc, new -as mkisofs --no-emul-toc
* Implemented -as cdrecord -V
* Implemented -as cdrecord option -V
* Implemented -as mkisofs options -U, -N, -l, -d, -allow-lowercase
@ -7969,38 +7969,586 @@ xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-0.5.9
[]
14 Jun 2010 [3270]
xorriso/changelog.txt
Documented changes and release timestamp
[]
14 Jun 2010 [3271]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/ZeroFiveEight
http://svn.libburnia-project.org/libisoburn/tags/ZeroFiveEight
------------------------------------ cycle - xorriso-0.5.9 -
------------------------------------ cycle - xorriso-0.5.9 - 2010.06.14.081834
------------------------------------ cycle - xorriso-0.5.9 -
------------------------------------ cycle - xorriso-0.5.9 -
2010.06.15.160133 [3275]
configure.ac
libisoburn/libisoburn.h
Requiring libburn-0.8.3 now (because SIGWINCH handling on Solaris)
2010.06.15.160501 [3276]
acinclude.m4
Enabled use of libreadline on Solaris by eventually linking -lcurses
2010.06.16.105449 [3278]
libisoburn/libisoburn.h
Clarified API description of isoburn_read_iso_head()
2010.06.16.105652 [3279]
xorriso/write_run.c
Bug fix: check_media patch_lba0= could install wrong image size
2010.06.16.140253 [3280]
xorriso/write_run.c
Made patch_lba0= more modest with overwriting.
2010.06.18.053105 [3281]
xorriso/emulators.c
Bug fix: -as mkisofs option -volset was wrongly interpreted like -volid
2010.06.18.113147 [3282]
configure.ac
libisoburn/libisoburn.h
Requiring libisofs-0.6.33 now
2010.06.19.152046 [3283]
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/write_run.c
xorriso/opts_a_c.c
xorriso/iso_img.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -boot_image bootspec cat_hidden=
2010.06.19.152046 [3284]
xorriso/iso_tree.h
xorriso/iso_tree.c
xorriso/findjob.h
xorriso/findjob.c
xorriso/iso_manip.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New find test -disk_name
2010.06.20.072130 [3285]
xorriso/opts_a_c.c
xorriso/opts_d_h.c
xorriso/iso_manip.c
xorriso/findjob.h
xorriso/findjob.c
xorriso/misc_funct.h
xorriso/misc_funct.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New find action -hide, new find test -hidden
2010.06.20.141555 [3286]
xorriso/aux_objects.c
xorriso/emulators.c
xorriso/opts_p_z.c
xorriso/read_run.c
libisoburn/burn_wrap.c
Trying to silence compiler warnings of OpenSuse Build Service
2010.06.20.164738 [3287]
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/iso_manip.c
xorriso/disk_ops.c
xorriso/iso_tree.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New option -hide
2010.06.22.132641 [3288]
xorriso/opts_p_z.c
Made -quoted_path_list continue to execute words after error in the same line
2010.06.23.134250 [3289]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/aux_objects.c
xorriso/parse_exec.c
xorriso/opts_i_o.c
xorriso/emulators.c
xorriso/disk_ops.c
xorriso/misc_funct.h
xorriso/misc_funct.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -as mkisofs options -hide, -hide-joliet, -hide-list, -hide-joliet-list
2010.06.23.134250 [3290]
xorriso/emulators.c
Included a missing header file
2010.06.23.151900 [3291]
xorriso/parse_exec.h
Updated the missing header file
2010.06.23.152337 [3292]
xorriso/emulators.c
Revoked unneeded change of revision 3290
2010.06.23.175357 [3293]
xorriso/xorriso_private.h
xorriso/lib_mgt.c
xorriso/drive_mgt.c
xorriso/iso_img.c
Reset xorriso->boot_count when image gets discarded
2010.06.23.175613 [3294]
xorriso/write_run.c
Moved call of iso_image_set_boot_catalog_hidden() to Xorriso_write_session()
------------------------------------ cycle - xorriso-0.5.9 - 2010.06.23.175613
Bug fix: -check_media patch_lba0= could install wrong image size
Bug fix: -as mkisofs option -volset was wrongly interpreted like -volid
Enabled use of libreadline on Solaris
New find test -disk_name
New option -hide, -find action -hide, -find test -hidden
New -boot_image bootspec cat_hidden=on
New -as mkisofs options -hide, -hide-joliet, -hide-list, -hide-joliet-list
2010.06.24.084800 [3295]
xorriso/emulators.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -as mkisofs option --boot-catalog-hide
2010.06.25.095836 [3296]
xorriso/emulators.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -as mkisofs option -dir-mode
2010.06.25.102140 [3297]
xorriso/emulators.c
New -as mkisofs option -file-mode
2010.06.25.174329 [3298]
xorriso/text_io.c
Appending eventual strerror() to event message line rather than to new line
2010.06.25.175810 [3299]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/parse_exec.h
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/opts_p_z.c
xorriso/sfile.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New option -read_mkisofsrc interprets .mkisofsrc
2010.06.26.113947 [3300]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/parse_exec.c
xorriso/opts_a_c.c
xorriso/opts_d_h.c
xorriso/drive_mgt.c
xorriso/iso_img.c
xorriso/text_io.c
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New options -copright_file , -biblio_file , -abstract_file
2010.06.26.114315 [3301]
xorriso/emulators.c
New -as mkisofs options -abstract, -biblio, -copyright
------------------------------------ cycle - xorriso-0.5.9 - 2010.06.26.114315
New -as mkisofs option --boot-catalog-hide
New options -copright_file , -biblio_file , -abstract_file
New option -read_mkisofsrc interprets .mkisofsrc
New -as mkisofs options -dir-mode, -file-mode
New -as mkisofs options -abstract, -biblio, -copyright
2010.06.28.100903 [3302]
xorriso/text_io.c
Supressing "Thank you for being patient" with times smaller than 2
2010.06.28.101019 [3303]
xorriso/iso_tree.c
Made option -lsl mark files in hidden directories as hidden
27 Jun 2010 [3304]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Removed outdated doc statement about hidden files
2010.06.29.102043 [3305]
configure.ac
libisoburn/libisoburn.h
Requiring libisofs-0.6.34 now
2010.06.29.102229 [3306]
xorriso/configure_ac.txt
Adapted GNU xorriso to version leap libisofs-0.6.35
2010.06.30.181822 [3315]
configure.ac
libisoburn/libisoburn.h
Requiring libburn-0.8.4 now
2010.06.30.181908 [3316]
xorriso/configure_ac.txt
Adapted GNU xorriso to version leap libburn-0.8.5
02 Jul 2010 [3317]
svn copy -m Branching for libisoburn release 0.6.0 \
http://svn.libburnia-project.org/libisoburn/trunk \
http://svn.libburnia-project.org/libisoburn/branches/ZeroSixZero
2010.07.02.090001 [3318]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-0.6.0
02 Jul 2010 [3319]
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-0.6.0 - 2010.07.02.090001
Bug fix: -check_media patch_lba0= could install wrong image size
Bug fix: -as mkisofs option -volset was wrongly interpreted like -volid
Enabled use of libreadline on Solaris
New find test -disk_name
New option -hide, -find action -hide, -find test -hidden
New -boot_image bootspec cat_hidden=on
New options -copright_file , -biblio_file , -abstract_file
New option -read_mkisofsrc interprets .mkisofsrc
Implemented -as mkisofs options -hide,-hide-joliet,-hide-list,-hide-joliet-list
New -as mkisofs option --boot-catalog-hide
Implemented -as mkisofs options -dir-mode, -file-mode
Implemented -as mkisofs options -abstract, -biblio, -copyright
2010.07.02.195907 [3320]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-0.6.1
2 Jul 2010 [3321]
xorriso/changelog.txt
Documented changes and release timestamp
2 Jul 2010 [3322]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/ZeroSixZero
http://svn.libburnia-project.org/libisoburn/tags/ZeroSixZero
------------------------------------ cycle - xorriso-0.6.1 - 2010.07.02.195907
4 Jul 2010 [3324]
acinclude.m4
Added -L/usr/local/lib to libisoburn LDFLAGS for Solaris
2010.07.05.090409 [3327]
xorriso/xorriso.h
Removed definition of phantom xorriso options
2010.07.05.122901 [3328]
configure.ac
Makefile.am
README
+ libisoburn/libisoburn.ver
Hiding all non-API symbols from the linker by use of --version-script
2010.07.06.114102 [3331]
configure.ac
acinclude.m4
Let configure perform linker test with --version-script if enabled
2010.07.06.114503 [3332]
libisoburn/libisoburn.h
xorriso/xorriso.h
Mentioned that public API calls must be in libisofs/libisofs.ver
2010.07.08.155900 [3333]
xorriso/emulators.c
Made behavior of -as mkisofs with unknown options more similar to original
------------------------------------ cycle - xorriso-0.6.1 - 2010.07.08.155900
* Made behavior of -as mkisofs with unknown options more similar to original
2010.07.29.164843 [3338]
Makefile.am
Detached make target "doc" from target "all".
29 Jul 2010 [3339]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Corrected manual text about -read_mkisofsrc
2010.07.30.155123 [3340]
libisoburn/libisoburn.ver
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/xorrisoburn.h
xorriso/base_obj.c
xorriso/lib_mgt.c
xorriso/parse_exec.c
xorriso/opts_a_c.c
xorriso/opts_p_z.c
xorriso/emulators.c
xorriso/text_io.c
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New option -preparer_id, -as mkisofs options -p and -preparer
30 Jul 2010 [3342]
doc/doxygen.conf.in
Removed problematic DETAILS_AT_TOP to silence warning of Debian buildd
30 Jul 2010 [3343]
doc/doxygen.conf.in
Corrected FILE_PATTERNS
2010.07.31.085437 [3344]
xorriso/cmp_update.c
Missing device,inode numbers caused -compare_r to report a difference
------------------------------------ cycle - xorriso-0.6.1 - 2010.07.31.085437
* New option -preparer_id, -as mkisofs options -p and -preparer
2010.08.09.092037 [3351]
libisoburn/libisoburn.h
doc/comments
Hopefully silenced warnings of doxygen on Debian buildd
2010.08.18.102709 [3353]
xorriso/emulators.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -as mkisofs option -e from Fedora genisoimage
2010.08.18.181640 [3354]
xorriso/xorriso_private.h
xorriso/opts_a_c.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -boot_image specifier emul_type=none|hard_disk|floppy
2010.08.18.181855 [3355]
xorriso/emulators.c
New -as mkisofs option -hard-disk-boot, enabled -b without -no-emul-boot
2010.08.21.103003 [3357]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
xorriso/xorriso_eng.html
Mentioned support for DVD-R DL as single-session media
2010.09.04.100823 [3359]
xorriso/iso_manip.c
This was obviously forgotten to commit with rev 3289
2010.09.05.113621 [3360]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
New API function isoburn_igopt_set_part_offset(), requiring libisofs 0.6.35
2010.09.05.113655 [3361]
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/opts_a_c.c
xorriso/text_io.c
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New boot_image boot specs partition_offset, partition_hd_cyl, partition_sec_hd
2010.09.05.113945 [3362]
xorriso/emulators.c
New -as mkisofs options -partition_offset, -partition_hd_cyl, -partition_sec_hd
------------------------------------ cycle - xorriso-0.6.1 - 2010.09.05.113945
* New API function isoburn_igopt_set_part_offset()
* New -boot_image specifier emul_type=none|hard_disk|floppy
* New -as mkisofs option -hard-disk-boot, enabled -b without -no-emul-boot
* New -as mkisofs option -e from Fedora genisoimage
* New boot_image boot specs partition_offset, partition_hd_cyl, partition_sec_hd
* New -as mkisofs options -partition_offset, -partition_hd_cyl, -partition_sec_hd
2010.09.06.103347 [3363]
libisoburn/isoburn.c
Bug fix: Re-enabled use of iso_write_opts_set_rrip_1_10_px_ino()
2010.09.10.170925 [3364]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
libisoburn/burn_wrap.c
Enabled multi-session with partition offset
2010.09.10.171223 [3365]
xorriso/drive_mgt.c
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Enabled multi-session with partition offset
2010.09.11.125002 [3366]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
Removed development marks
2010.09.11.125039 [3367]
xorriso/xorriso_private.h
Removed development marks
------------------------------------ cycle - xorriso-0.6.1 - 2010.09.11.125039
* Bug fix: Regression with -hardlinks and -compliance old_rr, 0.4.2, Aug 2009
2010.09.15.065722 [3370]
Makefile.am
ChangeLog
Meaningful change log file derived by George Danchev from web site
2010.09.15.091546 [3371]
configure.ac
libisoburn/libisoburn.h
Requiring libisofs-0.6.36 now
2010.09.15.092023 [3372]
xorriso/configure_ac.txt
Version leap to 0.6.37
17 Sep 2010 [3380]
xorriso/configure_ac.txt
Version leap to libburn-0.8.7
18 Sep 2010 [3382]
svn copy -m Branching for libisoburn release 0.6.0
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/ZeroSixZero
18 Sep 2010 [3383]
svn delete http://svn.libburnia-project.org/libisoburn/branches/ZeroSixZero
Removed falsely named branch
18 Sep 2010 [3384]
svn copy -m Branching for libisoburn release 0.6.2
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/ZeroSixTwo
2010.09.18.120001 [3385]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-0.6.2
18 Sep 2010 [3386]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
2010.09.18.210001 [3387]
libisoburn/isoburn.c
Fixed a bug with uninitialized variable introduced by rev 3364
19 Sep 2010 []
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-0.6.2 - 2010.09.18.210001
libisoburn novelties:
* New API function isoburn_igopt_set_part_offset()
* Hiding all non-API symbols from the linker by use of --version-script
* Now with history of release notes in ./ChangeLog file.
xorriso novelties:
* Bug fix: Regression with -hardlinks and -compliance old_rr, 0.4.2, Aug 2009
* New option -preparer_id, -as mkisofs options -p and -preparer
* New -boot_image specifier emul_type=none|hard_disk|floppy
* New boot_image boot specs partition_offset, partition_hd_cyl, partition_sec_hd
* Made behavior of -as mkisofs with unknown options more similar to original
* New -as mkisofs option -hard-disk-boot, enabled -b without -no-emul-boot
* New -as mkisofs option -e from Fedora genisoimage
* New -as mkisofs options -partition_offset,-partition_hd_cyl,-partition_sec_hd
------------------------------------ cycle - xorriso-0.6.3 -
------------------------------------ cycle - xorriso-0.6.3 -
**********************************************************************
Important: When adding a public API function then add its name to file
libisoburn/libisoburn.ver
**********************************************************************
===============================================================================
TODO
===============================================================================
------------------------------------------------- For Solaris
libreadline does not know that it needs
libcurses. (On Linux and on FreeBSD it
links -lcurses automatically.)
I need a smarter ./configure test.
The OS adapter header os-dummy.h for general
X/Open systems does not know that it shall
ignore SIGWINCH (which libreadline throws).
The mount command needs to be adapted to Solaris.
(What is possible, at all ?)
(The mount command needs to be adapted to Solaris.
But currently there is no sector address option with mount.)
------------------------------------------------- For GRUB
@ -8017,16 +8565,54 @@ The mount command needs to be adapted to Solaris.
- warn that multiple boot images work only if they stem from
distinct disk files
- Option to avoid TOC-emulation and save 64 to 126 kB
------------------------------------------------- FreeBSD
- Examine and replay:
http://wiki.freebsd.org/AvgLiveCD
- looks ok now:
mkisofs -R -l -ldots -allow-lowercase -allow-multidot \
-V 'My FreeBSD' -volset 'My FreeBSDs' \
-hide boot.catalog -o ../R.iso -no-emul-boot \
-b boot/cdboot .
- try
qemu -m 256 -cdrom /tmp/R.iso -boot d
>>> does not do anything recognizable. Not even fails.
------------------------------------------------- bugs
- Empty boot image file
-boot_image any bin_path=/with_bytes
-boot_image any next
-boot_image any bin_path=/empty_file
reports no problems during write but causes strange load messages
xorriso : NOTE : Loading ISO image tree from LBA 0
libisofs: WARNING : More than one ISO node has been found for the same boot image.
xorriso : UPDATE : 3905 nodes read in 1 seconds
libisofs: WARNING : More than one ISO node has been found for the same boot image.
libisofs: WARNING : Found hidden El-Torito image. Its size could not be figure out, so image modify or boot image patching may lead to bad results.
-boot_image any show_status
yields
Boot record : El Torito
Boot catalog : '/u/boot.cat'
Boot image : '/u/x'
Boot image : -not-found-any-more-
- xorriso ... -b ... -c does/not/exist/in/image ...
yields riddling error message:
libisofs: FAILURE : A requested node does not exist
xorriso : FAILURE : Could not attach El-Torito boot image to ISO 9660 image
- An ISO image as first file of a stdout stream might start at LBA 32
and thus look like a session. It has not the proper offset, though.
- reduce xorriso -abort_on default to FAILURE ?
or increase "Not a known option" to FATAL ?
- xorriso_eng.html on www.gnu.org it should rather be xorriso.html
- DVD-ROM drives report CD tracks with size up to the next track start.
@ -8036,13 +8622,6 @@ The mount command needs to be adapted to Solaris.
- 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 ?
- xorriso -as cdrecord in rare cases reports intermediate "X of X MB"
@ -8062,8 +8641,6 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
- options -print_info , -print_mark
- (ECMA-119 names in: -copyright_id , -abstract_id , -biblio_id)
- Mark data blocks of -check_md5 matching files as valid in sector map ?
- tree of name nodes to represent the cached paths of hardlink candidates.
@ -8078,6 +8655,10 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
- what about differently filtered streams ?
It is not wrong but a waste to update them as siblings.
- one-time delimiter which overrides -list_delimiter for only the
next command.
E.g. for --back_to_xorriso in emulations
- sudo and setuid chapter in man page

View File

@ -297,7 +297,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
{
struct stat s1, s2, stbuf;
int ret, missing= 0, is_split= 0, i, was_error= 0, diff_count= 0;
int content_shortcut= 0;
int content_shortcut= 0, mask;
char *respt;
char a[5*SfileadrL], sfe[5*SfileadrL];
char ttx1[40], ttx2[40];
@ -636,8 +636,12 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
}
if(was_error)
ret= -1;
else
ret= (((*result) & ~((1 << 17) | (1 << 18) | (1 << 23)))==0);
else {
mask= ~((1 << 17) | (1 << 18) | (1 << 22) | (1 << 23));
if(xorriso->do_aaip & 32)
mask|= 1 << 22;
ret= (((*result) & mask)==0);
}
ex:;
if(split_parts!=NULL)
Splitparts_destroy(&split_parts, split_count, 0);

View File

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

View File

@ -155,7 +155,7 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
{
int ret, hret, not_writeable= 0, has_what, aquire_flag, load_lba, ext;
int lba, track, session, params_flag, adr_mode, read_ret;
uint32_t size;
uint32_t size, offst;
struct burn_drive_info *dinfo= NULL, *out_dinfo, *in_dinfo;
struct burn_drive *drive= NULL, *out_drive, *in_drive;
enum burn_disc_status state;
@ -233,6 +233,16 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
state= isoburn_disc_get_status(dinfo[0].drive);
ret= isoburn_get_img_partition_offset(dinfo[0].drive, &offst);
if((state == BURN_DISC_APPENDABLE || state == BURN_DISC_FULL) && ret == 1) {
sprintf(xorriso->info_text,
"ISO image bears MBR with -boot_image any partition_offset=%lu",
(unsigned long) offst);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
}
if(flag&1)
if(xorriso->image_start_mode&(1<<31)) /* used up setting */
xorriso->image_start_mode= 0; /* no need to perform auto setting */
@ -242,6 +252,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
xorriso->outdev_is_exclusive= xorriso->drives_exclusive;
}
drive= dinfo[0].drive;
state= isoburn_disc_get_status(drive);
Xorriso_process_msg_queues(xorriso,0);
if(flag&1) {
if(xorriso->image_start_mode&(1<<31)) /* used up setting */
xorriso->image_start_mode&= ~0xffff; /* perform auto setting */
@ -279,8 +291,6 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
xorriso->image_start_mode|= (1<<31); /* mark as used up */
}
}
state= isoburn_disc_get_status(drive);
Xorriso_process_msg_queues(xorriso,0);
if(flag&1) {
volset= isoburn_get_attached_image(drive);
if(volset != NULL) { /* The image object is already created */

View File

@ -494,6 +494,110 @@ ex:;
}
/* This function shall know all options of mkisofs, genisoimage, xorrisofs, ...
and the number of arguments which they expect and consume.
*/
int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
int *count, int flag)
{
int i;
char *cmd;
static char partial_options[][41]= {
"errctl=",
"isolinux_mbr=", "--modification-date=",
""
};
static char arg0_options[][41]= {
"-allow-leading-dots", "-ldots", "-allow-lowercase", "-allow-multidot",
"-cache-inodes", "-no-cache-inodes", "-eltorito-alt-boot",
"-hard-disk-boot", "-no-emul-boot", "-no-boot", "-boot-info-table",
"-check-oldnames", "-d", "-D", "-dvd-video", "-f", "-gui", "-graft-points",
"-hide-joliet-trans-tbl", "-hide-rr-moved", "-J", "-joliet-long", "-l",
"-L", "-max-iso9660-filenames", "-N", "-nobak", "-no-bak",
"-no-limit-pathtables", "-force-rr", "-no-rr",
"-no-split-symlink-components", "-no-split-symlink-fields", "-pad",
"-no-pad", "-posix-H", "-posix-L", "-posix-P", "-print-size",
"-quiet", "-R", "-r", "-relaxed-filenames", "-rrip110", "-rrip112",
"-split-output", "-T", "-UDF", "-udf", "-udf-symlinks", "-no-udf-symlinks",
"-U", "-no-iso-translate", "-v", "-XA", "-xa", "-z",
"-hfs", "-no-hfs", "-apple", "-probe", "-no-desktop", "-mac-name",
"-part", "-icon-position", "-chrp-t", "-hfs-unlock", "--cap", "--netatalk",
"--double", "--ethershare", "--ushare", "--exchange", "--sgi", "--xinet",
"--macbin", "--single", "--dave", "--sfm", "--osx-double", "--osx-hfs",
"-debug", "-omit-period", "-disable-deep-relocation", "-joliet",
"-full-iso9660-filenames", "-follow-links", "-help",
"-transparent-compression",
"-omit-version-number", "-rational-rock", "-rock", "-translation-table",
"-untranslated-filenames", "-verbose", "-version", "-g", "-h",
"-no-mac-files", "-chrp-boot",
"--hardlinks", "--acl", "--xattr", "--md5", "--for_backup",
"--protective-msdos-label", "--boot-catalog-hide", "--no-emul-toc",
""
};
static char arg1_options[][41]= {
"-abstract", "-A", "-appid", "-biblio", "-b", "-B", "-boot-load-seg",
"-boot-load-size", "-C", "-c", "-check-session", "-copyright",
"-dir-mode", "-file-mode", "-G", "-gid", "-hide", "-hide-list",
"-hidden", "-hidden-list", "-hide-joliet", "-hide-joliet-list",
"-hide-udf", "-hide-udf-list", "-input-charset", "-output-charset",
"-iso-level", "-jcharset", "-log-file", "-m", "-exclude-list", "-M",
"-dev", "-new-dir-mode", "-o", "-p", "-preparer",
"-path-list", "-publisher", "-root",
"-old-root", "-s", "-sectype", "-sort", "-sparc-boot", "-sparc-label",
"-stream-media-size", "-stream-file-name", "-sunx86-boot", "-sunx86-label",
"-sysid", "-table-name", "-ucs-level", "-uid", "-V", "-volset",
"-volset-size", "-volset-seqno", "-x", "-P",
"-map", "-magic", "-hfs-creator", "-hfs-type", "-boot-hfs-file", "-auto",
"-cluster-size", "-hide-hfs", "-hide-hfs-list", "-hfs-volid",
"-root-info", "-prep-boot", "-input-hfs-charset", "-output-hfs-charset",
"-hfs-bless", "-hfs-parms",
"-eltorito-boot", "-generic-boot", "-eltorito-catalog", "-cdrecord-params",
"-errctl", "-exclude", "-prev-session", "-output", "-use-fileversion",
"-volid", "-old-exclude",
"-alpha-boot", "-hppa-cmdline", "-hppa-kernel-32", "-hppa-kernel-64",
"-hppa-bootloader", "-hppa-ramdisk", "-mips-boot", "-mipsel-boot",
"-jigdo-jigdo", "-jigdo-template", "-jigdo-min-file-size",
"-jigdo-force-md5", "-jigdo-exclude", "-jigdo-map", "-md5-list",
"--stdio_sync", "--quoted_path_list", "--efi-boot", "--embedded-boot",
"-isohybrid-mbr", "-e", "-partition_offset", "-partition_hd_cyl",
"-partition_sec_hd",
""
};
static char arg2_options[][41]= {
"--scdbackup_tag", "--sort-weight",
""
};
static char final_options[][41]= {
"-find",
""
};
cmd= argv[0];
*count= 0;
for(i=0; partial_options[i][0]!=0; i++)
if(strncmp(partial_options[i], cmd, strlen(partial_options[i]))==0)
return(1);
for(i=0; arg0_options[i][0]!=0; i++)
if(strcmp(arg0_options[i], cmd)==0)
return(1);
*count= 1;
for(i=0; arg1_options[i][0]!=0; i++)
if(strcmp(arg1_options[i], cmd)==0)
return(1);
*count= 2;
for(i=0; arg2_options[i][0]!=0; i++)
if(strcmp(arg2_options[i], cmd)==0)
return(1);
*count= argc - 1;
for(i=0; final_options[i][0]!=0; i++)
if(strcmp(final_options[i], cmd)==0)
return(1);
*count= 0;
return(0);
}
/* @param flag bit0= do not report eventual ignore decision
*/
int Xorriso_genisofs_ignore(struct XorrisO *xorriso, char *whom,
@ -509,7 +613,7 @@ int Xorriso_genisofs_ignore(struct XorrisO *xorriso, char *whom,
""
};
static char ignored_arg1_options[][41]= {
"-check-session", "-hide-hfs", "-hide-hfs-list", "-p", "-preparer", "-root",
"-check-session", "-hide-hfs", "-hide-hfs-list", "-root",
"-old-root", "-table-name", "-volset-seqno", "-volset-size",
""
};
@ -536,23 +640,19 @@ no_volunteer:;
int Xorriso_genisofs_add_boot(struct XorrisO *xorriso, char *whom,
int *option_b, int *no_emul_boot, int flag)
int *option_b, int *emul_boot, int flag)
{
int ret;
if(*option_b && !*no_emul_boot) {
xorriso->boot_image_bin_path[0]= 0;
sprintf(xorriso->info_text,
"-as %s: Option -b is supported only if option -no-emul-boot is given",
whom);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
if(*option_b)
xorriso->boot_image_emul= *emul_boot;
else
xorriso->boot_image_emul= 0;
ret= Xorriso_attach_boot_image(xorriso, 0);
if(ret <= 0)
xorriso->boot_image_bin_path[0]= 0;
*option_b= 0;
*no_emul_boot= 1;
*emul_boot= 2;
return(ret);
}
@ -611,18 +711,24 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" -abstract FILE Set Abstract filename",
" -biblio FILE Set Bibliographic filename",
" -copyright FILE Set Copyright filename",
" -p PREP, -preparer PREP Set Volume preparer",
" -b FILE, -eltorito-boot FILE",
" Set El Torito boot image name",
" -eltorito-alt-boot Start specifying alternative El Torito boot parameters",
" --efi-boot FILE Set El Torito EFI boot image name and type",
" -e FILE Set EFI boot image name (more rawly)",
" -c FILE, -eltorito-catalog FILE",
" Set El Torito boot catalog name",
" --boot-catalog-hide Hide boot catalog from ISO9660/RR and Joliet",
" -boot-load-size # Set numbers of load sectors",
" -hard-disk-boot Boot image is a hard disk image",
" -no-emul-boot Boot image is 'no emulation' image",
" -boot-info-table Patch boot image with info table",
" -G FILE, -generic-boot FILE Set generic boot image name",
" --protective-msdos-label Patch System Area by partition table",
" -partition_offset LBA Make image mountable by first partition, too",
" -partition_sec_hd NUMBER Define number of sectors per head",
" -partition_hd_cyl NUMBER Define number of heads per cylinder",
" --modification-date=YYYYMMDDhhmmsscc",
" Override date of creation and modification",
" -isohybrid-mbr FILE Set SYSLINUX mbr/isohdp[fp]x*.bin for isohybrid",
@ -738,9 +844,9 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int argc, char **argv, int flag)
{
int ret, i, j, was_path= 0, was_other_option= 0, mem_graft_points, mem;
int do_print_size= 0, fd, idx, iso_level= 0, no_emul_boot= 0;
int do_print_size= 0, fd, idx, iso_level= 0, emul_boot= 2;
int option_b= 0, was_failure= 0, fret, lower_r= 0, zero= 0;
int dir_mode= -1, file_mode= -1;
int dir_mode= -1, file_mode= -1, count;
mode_t mode_and, mode_or;
int with_boot_image= 0, with_cat_path= 0;
int *weight_list= NULL, weight_count= 0;
@ -907,7 +1013,9 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
Xorriso_option_stdio_sync(xorriso, argv[i], 0);
} else
was_other_option= 1;
ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 0);
if(ret > 0)
i+= count; /* skip eventual arguments of known option */
continue; /* regular bottom of loop */
problem_handler_1:;
was_failure= 1;
@ -1038,6 +1146,7 @@ not_enough_args:;
/* was already handled in first argument scan */;
} else if(strcmp(argv[i], "-V")==0 || strcmp(argv[i], "-volid")==0 ||
strcmp(argv[i], "-volset")==0 ||
strcmp(argv[i], "-p")==0 || strcmp(argv[i], "-preparer")==0 ||
strcmp(argv[i], "-P")==0 || strcmp(argv[i], "-publisher")==0 ||
strcmp(argv[i], "-A")==0 || strcmp(argv[i], "-appid")==0 ||
strcmp(argv[i], "-sysid")==0 ||
@ -1052,6 +1161,9 @@ not_enough_args:;
ret= Xorriso_option_volid(xorriso, argv[i], 0);
else if(strcmp(argv[i - 1], "-volset")==0)
ret= Xorriso_option_volset_id(xorriso, argv[i], 0);
else if(strcmp(argv[i - 1], "-p")==0 ||
strcmp(argv[i - 1], "-preparer")==0)
ret= Xorriso_option_preparer_id(xorriso, argv[i], 0);
else if(strcmp(argv[i - 1], "-P")==0 ||
strcmp(argv[i - 1], "-publisher")==0)
ret= Xorriso_option_publisher(xorriso, argv[i], 0);
@ -1092,13 +1204,15 @@ not_enough_args:;
xorriso->do_disk_pattern= mem;
if(ret<=0)
goto problem_handler_2;
} else if(strcmp(argv[i], "-v")==0 || strcmp(argv[i], "-quiet")==0) {
} else if(strcmp(argv[i], "-v")==0 || strcmp(argv[i], "-verbose")==0 ||
strcmp(argv[i], "-quiet")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argv[i], "-iso-level")==0) {
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argv[i], "-no-emul-boot")==0 ||
strcmp(argv[i], "-hard-disk-boot")==0 ||
strcmp(argv[i], "-boot-info-table")==0 ||
strncmp(argv[i], "isolinux_mbr=", 13)==0 ||
strcmp(argv[i], "-eltorito-alt-boot")==0 ||
@ -1108,12 +1222,16 @@ not_enough_args:;
} else if(strcmp(argv[i], "-b") == 0 ||
strcmp(argv[i], "-eltorito-boot") == 0 ||
strcmp(argv[i], "--efi-boot") == 0 ||
strcmp(argv[i], "-e") == 0 ||
strcmp(argv[i], "-c") == 0 ||
strcmp(argv[i], "-eltorito-catalog") == 0 ||
strcmp(argv[i], "-boot-load-size") == 0 ||
strcmp(argv[i], "--embedded-boot")==0 ||
strcmp(argv[i], "-generic-boot")==0 ||
strcmp(argv[i], "-G") == 0 ||
strcmp(argv[i], "-partition_offset") == 0 ||
strcmp(argv[i], "-partition_hd_cyl") == 0 ||
strcmp(argv[i], "-partition_sec_hd") == 0 ||
strcmp(argv[i], "-isohybrid-mbr")==0) {
if(i+1>=argc)
goto not_enough_args;
@ -1193,12 +1311,17 @@ not_enough_args:;
goto problem_handler_2;
file_mode= mode_or;
} else if(argv[i][0]=='-' && argv[i][1]!=0) {
sprintf(xorriso->info_text, "-as %s: Unknown option %s",
whom, Text_shellsafe(argv[i], sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 1);
if(ret > 0) {
sprintf(xorriso->info_text, "-as %s: Unsupported option %s",
whom, Text_shellsafe(argv[i], sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
i+= count;
goto problem_handler_2;
} else
goto is_pathspec_2;
} else {
int zero= 0;
is_pathspec_2:;
/* implementing mkisofs tendency to map single-path pathspecs to / */
if((!xorriso->allow_graft_points) ||
Fileliste__target_source_limit(argv[i], '=', &ept, 0)<=0) {
@ -1225,6 +1348,7 @@ not_enough_args:;
add_pt= argv[i];
mem_graft_points= xorriso->allow_graft_points;
xorriso->allow_graft_points= 1;
zero= 0;
ret= Xorriso_option_add(xorriso, 1, &add_pt, &zero, was_path<<1);
xorriso->allow_graft_points= mem_graft_points;
if(ret<=0)
@ -1292,27 +1416,35 @@ problem_handler_2:;
for(j= 0; j < delay_opt_count; j++) {
i= delay_opt_list[j];
if(strcmp(argv[i], "-no-emul-boot")==0) {
no_emul_boot= 1;
emul_boot= xorriso->boot_image_emul= 0;
} else if(strcmp(argv[i], "-hard-disk-boot")==0) {
emul_boot= xorriso->boot_image_emul= 1;
} else if(strcmp(argv[i], "-boot-info-table")==0) {
xorriso->patch_isolinux_image= 1;
} else if(strcmp(argv[i], "-b") == 0 ||
strcmp(argv[i], "-eltorito-boot") == 0 ||
strcmp(argv[i], "--efi-boot") == 0) {
strcmp(argv[i], "--efi-boot") == 0 ||
strcmp(argv[i], "-e") == 0) {
i++;
if(strcmp(argv[i - 1], "--efi-boot") == 0) {
if(xorriso->boot_image_bin_path[0]) {
ret= Xorriso_genisofs_add_boot(xorriso, whom,
&option_b, &no_emul_boot, 0);
&option_b, &emul_boot, 0);
if(ret <= 0)
goto problem_handler_boot;
}
boot_path= xorriso->boot_image_bin_path;
xorriso->boot_efi_default= 1;
emul_boot= xorriso->boot_image_emul= 0;
} else {
boot_path= xorriso->boot_image_bin_path;
xorriso->boot_platform_id= 0x00;
if(strcmp(argv[i - 1], "-e") == 0)
xorriso->boot_platform_id= 0xef;
else
xorriso->boot_platform_id= 0x00;
xorriso->boot_efi_default= 0;
option_b= 1;
xorriso->boot_image_emul= emul_boot;
}
boot_path[0]= 0;
if(argv[i][0] != '/')
@ -1322,8 +1454,9 @@ problem_handler_2:;
goto ex;
if(xorriso->boot_efi_default && xorriso->boot_image_bin_path[0]) {
option_b= 0;
emul_boot= 0;
ret= Xorriso_genisofs_add_boot(xorriso, whom,
&option_b, &no_emul_boot, 0);
&option_b, &emul_boot, 0);
if(ret <= 0)
goto problem_handler_boot;
}
@ -1356,7 +1489,7 @@ problem_handler_2:;
goto problem_handler_boot;
} else if(strcmp(argv[i], "-eltorito-alt-boot")==0) {
ret= Xorriso_genisofs_add_boot(xorriso, whom,
&option_b, &no_emul_boot, 0);
&option_b, &emul_boot, 0);
if(ret <= 0)
goto problem_handler_boot;
} else if(strcmp(argv[i], "--embedded-boot")==0 ||
@ -1375,6 +1508,16 @@ problem_handler_2:;
xorriso->system_area_options= (xorriso->system_area_options & ~3) | 1;
} else if(strcmp(argv[i], "--boot-catalog-hide")==0) {
xorriso->boot_image_cat_hidden|= 3;
} else if(strcmp(argv[i], "-partition_offset") == 0 ||
strcmp(argv[i], "-partition_sec_hd") == 0 ||
strcmp(argv[i], "-partition_dh_cyl") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
sprintf(sfe, "%s=%.16s", argv[i-1] + 1, argv[i]);
ret= Xorriso_option_boot_image(xorriso, "any", sfe, 0);
if(ret <= 0)
goto problem_handler_boot;
}
continue; /* regular bottom of loop */
problem_handler_boot:;
@ -1388,7 +1531,7 @@ problem_handler_boot:;
if(with_boot_image && with_cat_path == 0)
strcpy(xorriso->boot_image_cat_path, "/boot.catalog");
if(xorriso->boot_image_bin_path[0]) {
ret= Xorriso_genisofs_add_boot(xorriso, whom, &option_b, &no_emul_boot, 0);
ret= Xorriso_genisofs_add_boot(xorriso, whom, &option_b, &emul_boot, 0);
if(ret <= 0)
goto ex;
}

View File

@ -33,6 +33,7 @@
#include "iso_tree.h"
#include "iso_manip.h"
#include "sort_cmp.h"
#include "parse_exec.h"
@ -149,6 +150,8 @@ int Xorriso_graft_split(struct XorrisO *xorriso, IsoImage *volume,
/*
@param flag bit3= cut_out_node: offset and size are valid
bit8= hide in iso_rr
bit9= hide in joliet
*/
int Xorriso_tree_graft_node(struct XorrisO *xorriso, IsoImage *volume,
IsoDir *dir, char *disk_path, char *img_name,
@ -199,7 +202,11 @@ int Xorriso_tree_graft_node(struct XorrisO *xorriso, IsoImage *volume,
goto ex;
}
}
if(flag & (256 | 512)) {
ret= Xorriso_set_hidden(xorriso, (void *) *node, "", (flag >> 8) & 3, 0);
if(ret <= 0)
goto ex;
}
if(stbuf_valid && ((xorriso->do_aaip & 16) || !(xorriso->ino_behavior & 2))) {
ret= Xorriso_record_dev_inode(xorriso, disk_path,
stbuf.st_dev, stbuf.st_ino, (void *) *node, "", 1);
@ -224,6 +231,8 @@ ex:;
bit1= do not report added files
bit6= do not delete eventually existing node from di_array
bit7= no special handling of split file directories
bit8= hide in iso_rr
bit9= hide in joliet
*/
int Xorriso_add_tree(struct XorrisO *xorriso, IsoDir *dir,
char *img_dir_path, char *disk_dir_path,
@ -232,7 +241,7 @@ int Xorriso_add_tree(struct XorrisO *xorriso, IsoDir *dir,
IsoImage *volume;
IsoNode *node;
int ret, target_is_dir, source_is_dir, source_is_link, fret, was_failure= 0;
int do_not_dive, target_is_split= 0;
int do_not_dive, target_is_split= 0, hide_attrs;
struct DirseQ *dirseq= NULL;
char *name, *img_name, *srcpt, *stbuf_src= "";
struct stat stbuf, hstbuf;
@ -313,12 +322,21 @@ cannot_open_dir:;
{ret= -1; goto ex;}
}
/* compare exclusions against disk_path resp. name */
/* Compare exclusions against disk_path resp. name */
ret= Xorriso_path_is_excluded(xorriso, disk_path, 0); /* (is never param) */
if(ret<0)
{ret= -1; goto ex;}
if(ret>0)
continue;
/* Check for mkisofs-style hidings */
hide_attrs= (flag >> 8) & 3;
if(hide_attrs != 3) {
ret= Xorriso_path_is_hidden(xorriso, disk_path, 0);
if(ret<0)
return(ret);
if(ret>=0)
hide_attrs|= ret;
}
strcpy(img_name, name);
if(Xorriso_much_too_long(xorriso, strlen(img_path), 0)<=0)
@ -409,7 +427,7 @@ cannot_lstat:;
if(node==NULL) {
ret= Xorriso_tree_graft_node(xorriso, volume, dir, srcpt, img_name,
"", img_path, (off_t) 0, (off_t) 0,
&node, 0);
&node, (hide_attrs << 8));
}
if(node==NULL) {
Xorriso_process_msg_queues(xorriso,0);
@ -470,11 +488,12 @@ ex:
/* @param flag bit0= cut_out mode : base on leaf parent directory
bit1= do not check and perform hidings
*/
int Xorriso_copy_implicit_properties(struct XorrisO *xorriso, IsoDir *dir,
char *full_img_path, char *img_path, char *full_disk_path, int flag)
{
int ret, nfic, nic, nfdc, d, i;
int ret, nfic, nic, nfdc, d, i, hide_attrs;
char nfi[SfileadrL], ni[SfileadrL], nfd[SfileadrL], *cpt;
char sfe[5*SfileadrL];
struct stat stbuf;
@ -516,6 +535,20 @@ int Xorriso_copy_implicit_properties(struct XorrisO *xorriso, IsoDir *dir,
" from %s", Text_shellsafe(nfd, sfe, 0));
if(!((flag&1) && d==0))
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
if(!(flag & 2)) {
/* Check for mkisofs-style hidings */
hide_attrs= 0;
ret= Xorriso_path_is_hidden(xorriso, nfd, 0);
if(ret<0)
return(ret);
if(ret>=0) {
/* Hide dir */
ret= Xorriso_set_hidden(xorriso, (void *) dir, "", ret, 0);
if(ret <= 0)
return(ret);
}
}
return(1);
}
@ -558,6 +591,8 @@ int Xorriso_copy_properties(struct XorrisO *xorriso,
bit5= if directory then do not add sub tree
bit6= do not delete eventually existing node from di_array
bit7= no special handling of split file directories
bit8= hide in iso_rr
bit9= hide in joliet
@return <=0 = error , 1 = added simple node , 2 = added directory ,
3 = rejected
*/
@ -571,7 +606,7 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
IsoDir *dir, *hdir;
IsoNode *node;
int done= 0, is_dir= 0, l, ret, target_is_dir, source_is_dir, resolve_link= 0;
int target_is_split;
int target_is_split, hide_attrs;
struct stat stbuf;
ret= Xorriso_path_is_excluded(xorriso, disk_path, !(flag&4));
@ -580,6 +615,16 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
if(ret>0)
return(3*!!(flag&16));
/* Check for mkisofs-style hidings */
hide_attrs= (flag >> 8) & 3;
if(hide_attrs != 3) {
ret= Xorriso_path_is_hidden(xorriso, disk_path, 0);
if(ret<0)
return(ret);
if(ret>=0)
hide_attrs|= ret;
}
for(cpt= img_path; 1; cpt++) {
cpt= strstr(cpt,"/.");
if(cpt==NULL)
@ -731,9 +776,10 @@ handle_path_node:;
iso_node_set_gid((IsoNode *) dir, getegid());
if(disk_path!=NULL && !done)
/* This not only copies disk directory properties
but also sets eventual hide_attrs */
Xorriso_copy_implicit_properties(xorriso, dir, img_path, path, disk_path,
!!(flag&8));
}
if(done) {
attach_source:;
@ -759,8 +805,8 @@ attach_source:;
disk_path_pt= disk_path;
ret= Xorriso_tree_graft_node(xorriso, volume, dir, disk_path_pt, apt,
disk_path, img_path,
offset, cut_size, &node, flag&8);
disk_path, img_path, offset, cut_size,
&node, (flag&8) | (hide_attrs << 8));
if(ret<=0) {
sprintf(xorriso->info_text, "Grafting failed: %s = %s",
Text_shellsafe(img_path,sfe,0), Text_shellsafe(disk_path,sfe2,0));
@ -2649,14 +2695,11 @@ int Xorriso_perform_attr_from_list(struct XorrisO *xorriso, char *path,
}
value_lengths= calloc(num_attr, sizeof(size_t));
if(value_lengths== NULL) {
free(names);
Xorriso_no_malloc_memory(xorriso, NULL, 0);
ret= -1; goto ex;
}
values= calloc(num_attr, sizeof(char *));
if(values== NULL) {
free(names);
free(value_lengths);
Xorriso_no_malloc_memory(xorriso, NULL, 0);
ret= -1; goto ex;
}

View File

@ -181,6 +181,10 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
xorriso->zlib_level= xorriso->zlib_level_default=
zisofs_ctrl.compression_level;
}
/* Second initialization. This time with libs. */
Xorriso_preparer_string(xorriso, xorriso->preparer_id, 0);
Xorriso_process_msg_queues(xorriso,0);
if(reason[0]) {
sprintf(xorriso->info_text, "%s", reason);
@ -486,3 +490,34 @@ int Xorriso_md5_end(struct XorrisO *xorriso, void **ctx, char md5[16],
return(1);
}
/* @param flag bit0= avoid library calls
*/
int Xorriso_preparer_string(struct XorrisO *xorriso, char xorriso_id[129],
int flag)
{
int major, minor, micro;
xorriso_id[0]= 0;
sprintf(xorriso_id, "XORRISO-%d.%d.%d",
Xorriso_header_version_majoR, Xorriso_header_version_minoR,
Xorriso_header_version_micrO);
if(strlen(xorriso_id) + strlen(Xorriso_timestamP) < 128)
strcat(xorriso_id, Xorriso_timestamP);
if(flag & 1)
return(1);
isoburn_version(&major, &minor, &micro);
if(strlen(xorriso_id) < 100)
sprintf(xorriso_id + strlen(xorriso_id),
", LIBISOBURN-%d.%d.%d", major, minor, micro);
iso_lib_version(&major, &minor, &micro);
if(strlen(xorriso_id) < 100)
sprintf(xorriso_id + strlen(xorriso_id),
", LIBISOFS-%d.%d.%d", major, minor, micro);
burn_version(&major, &minor, &micro);
if(strlen(xorriso_id) < 100)
sprintf(xorriso_id + strlen(xorriso_id),
", LIBBURN-%d.%d.%d", major, minor, micro);
return(1);
}

View File

@ -40,7 +40,7 @@ create_gnu_xorriso="yes"
current_dir=$(pwd)
lone_dir="$current_dir"/"xorriso-standalone"
xorriso_rev=0.5.9
xorriso_rev=0.6.2
# For unstable uploads and patch level 0 of stable releases:
xorriso_pl=""
# For higher patch levels of stable releases:

View File

@ -259,11 +259,14 @@ ex:;
int Xorriso_option_application_id(struct XorrisO *xorriso, char *name,
int flag)
{
if(Xorriso_check_name_len(xorriso, name,
(int) sizeof(xorriso->application_id),
"-application_id", 0) <= 0)
return(0);
strcpy(xorriso->application_id,name);
if(Xorriso_check_name_len(xorriso, name,
(int) sizeof(xorriso->application_id),
"-application_id", 0) <= 0)
return(0);
if(strcmp(name, "@xorriso@") == 0)
Xorriso_preparer_string(xorriso, xorriso->application_id, 0);
else
strcpy(xorriso->application_id,name);
Xorriso_set_change_pending(xorriso, 1);
return(1);
}
@ -788,6 +791,40 @@ treatment_patch:;
} else
was_ok= 0;
} else if(strncmp(treatpt, "partition_offset=", 17)==0) {
u= 0;
sscanf(treatpt + 17, "%u", &u);
if(u > 0 && u < 16) {
sprintf(xorriso->info_text,
"-boot_image %s partition_offset= : Non-zero number too small (<16).",
formpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
xorriso->partition_offset= u;
} else if(strncmp(treatpt, "partition_hd_cyl=", 17)==0) {
u= 0;
sscanf(treatpt + 17, "%u", &u);
if(u > 255) {
sprintf(xorriso->info_text,
"-boot_image %s partition_hd_cyl= : Number too large (>255).", formpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
xorriso->partition_heads_per_cyl= u;
} else if(strncmp(treatpt, "partition_sec_hd=", 17)==0) {
u= 0;
sscanf(treatpt + 17, "%u", &u);
if(u > 63) {
sprintf(xorriso->info_text,
"-boot_image %s partition_sec_hd= : Number too large (>63).", formpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
xorriso->partition_secs_per_head= u;
} else if(strncmp(treatpt, "platform_id=", 12)==0) {
if(strncmp(treatpt + 12, "0x", 2) == 0)
sscanf(treatpt + 14, "%x", &u);
@ -802,6 +839,23 @@ treatment_patch:;
}
xorriso->boot_platform_id= u;
} else if(strncmp(treatpt, "emul_type=", 10)==0) {
if(strcmp(treatpt + 10, "none") == 0 ||
strcmp(treatpt + 10, "no_emulation") == 0) {
xorriso->boot_image_emul= 0;
} else if(strcmp(treatpt + 10, "hard_disk") == 0) {
xorriso->boot_image_emul= 1;
} else if(strcmp(treatpt + 10, "floppy") == 0 ||
strcmp(treatpt + 10, "diskette") == 0) {
xorriso->boot_image_emul= 2;
} else {
sprintf(xorriso->info_text,
"-boot_image %s : Unknown media_type : %s",
formpt, treatpt + 10);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
} else if(strncmp(treatpt, "isohybrid=", 10) == 0 &&
strcmp(formpt, "isolinux")==0) {

View File

@ -218,6 +218,22 @@ int Xorriso_option_pkt_output(struct XorrisO *xorriso, char *mode, int flag)
}
/* Option -preparer_id */
int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag)
{
if(Xorriso_check_name_len(xorriso, name,
(int) sizeof(xorriso->preparer_id),
"-preparer_id", 0) <= 0)
return(0);
if(strcmp(name, "@xorriso@") == 0)
Xorriso_preparer_string(xorriso, xorriso->preparer_id, 0);
else
strcpy(xorriso->preparer_id, name);
Xorriso_set_change_pending(xorriso, 1);
return(1);
}
/* Option -print */
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag)
{

View File

@ -465,7 +465,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"list_delimiter","list_profiles","local_charset",
"mark","md5","mount_opts","not_leaf","not_list","not_mgt",
"options_from_file","osirrox","outdev","out_charset","overwrite",
"pacifier","padding","path_list","pathspecs","pkt_output","print","prompt",
"pacifier","padding","path_list","pathspecs","pkt_output",
"preparer_id","print","prompt",
"prog","prog_help","publisher","quoted_not_list","quoted_path_list",
"reassure","report_about","rom_toc_scan","scsi_log",
"session_log","speed","split_size","status","status_history_max",
@ -1114,6 +1115,10 @@ next_command:;
(*idx)++;
ret= Xorriso_option_pkt_output(xorriso, arg1, 0);
} else if(strcmp(cmd,"preparer_id")==0) {
(*idx)++;
ret= Xorriso_option_preparer_id(xorriso, arg1, 0);
} else if(strcmp(cmd,"print")==0) {
(*idx)++;
ret= Xorriso_option_print(xorriso, arg1, 0);

View File

@ -512,7 +512,7 @@ int Xorriso_write_to_channel(struct XorrisO *xorriso,
bit15= with bit1 or bit2: close depicted log file
*/
{
char *rpt, *npt, *text;
char *rpt, *npt, *text= NULL;
int ret= 1, info_redirected= 0, result_redirected= 0;
char prefix[16];
FILE *logfile_fp, *pktlog_fp;
@ -520,11 +520,11 @@ bit15= with bit1 or bit2: close depicted log file
static int num_channels= 4;
static char channel_prefixes[4][4]= {".","R","I","M"};
text= in_text; /* might change due to backslash encoding */
if(channel_no<0 || channel_no>=num_channels)
{ret= -1; goto ex;}
text= in_text; /* might change due to backslash encoding */
/* Logfiles */
logfile_fp= xorriso->logfile_fp[channel_no];
pktlog_fp= xorriso->pktlog_fp;
@ -1087,7 +1087,7 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
int part_table_implicit= 0;
char *line, sfe[5 * SfileadrL + 80], mode[80], *form, *treatment;
char *in_pt, *out_pt, *nl_charset, *local_charset, *mode_pt;
char *dev_filter= NULL;
char *dev_filter= NULL, xorriso_id[129];
static char channel_prefixes[4][4]= {".","R","I","M"};
static char load_names[][20]= {"auto", "session", "track", "lba", "volid"};
static int max_load_mode= 4;
@ -1278,7 +1278,25 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
Text_shellsafe(xorriso->system_area_disk_path, sfe, 0));
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
if(xorriso->system_area_disk_path[0] || !part_table_implicit) {
is_default= (xorriso->partition_offset == 0);
sprintf(line,"-boot_image any partition_offset=%lu\n",
(unsigned long int) xorriso->partition_offset);
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->partition_secs_per_head == 0);
sprintf(line,"-boot_image any partition_sec_hd=%lu\n",
(unsigned long int) xorriso->partition_secs_per_head);
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->partition_heads_per_cyl == 0);
sprintf(line,"-boot_image any partition_hd_cyl=%lu\n",
(unsigned long int) xorriso->partition_heads_per_cyl);
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
if((xorriso->system_area_disk_path[0] || !part_table_implicit) &&
(xorriso->partition_offset == 0 || (xorriso->system_area_options & 2))) {
is_default= ((xorriso->system_area_options & 3) == 0);
sprintf(line,"-boot_image %s partition_table=%s\n",
xorriso->system_area_options & 2 ? "isolinux" : "grub",
@ -1382,6 +1400,12 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
Xorriso_status_result(xorriso,filter,fp,flag&2);
}
Xorriso_preparer_string(xorriso, xorriso_id, 0);
is_default= (strcmp(xorriso->preparer_id, xorriso_id) == 0);
sprintf(line,"-preparer_id %s\n",Text_shellsafe(xorriso->preparer_id,sfe,0));
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->publisher[0]==0);
sprintf(line,"-publisher %s\n",Text_shellsafe(xorriso->publisher,sfe,0));
if(!(is_default && no_defaults))

View File

@ -213,6 +213,8 @@ int Xorriso_set_system_area(struct XorrisO *xorriso, struct burn_drive *drive,
unsigned char *ub;
ElToritoBootImage *bootimg;
IsoFile *bootimg_node;
uint32_t offst;
enum burn_disc_status state;
system_area_options= xorriso->system_area_options;
memset(buf, 0, 32768);
@ -308,6 +310,27 @@ do_set:;
0, "FAILURE", 1);
{ret= 0; goto ex;}
}
offst= xorriso->partition_offset;
state= isoburn_disc_get_status(drive);
if(state == BURN_DISC_APPENDABLE) {
ret= isoburn_get_img_partition_offset(drive, &offst);
if(ret == 1) {
sprintf(xorriso->info_text,
"Preserving in ISO image: -boot_image any partition_offset=%lu",
(unsigned long) offst);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
} else
offst= xorriso->partition_offset;
}
ret= isoburn_igopt_set_part_offset(sopts, offst,
xorriso->partition_secs_per_head,
xorriso->partition_heads_per_cyl);
if(ret != ISO_SUCCESS) {
Xorriso_process_msg_queues(xorriso,0);
Xorriso_report_iso_error(xorriso, "", ret,
"Error when setting partition offset", 0, "FAILURE", 1);
{ret= 0; goto ex;}
}
ret= 1;
ex:;
if(fp != NULL && fp != stdin)
@ -487,7 +510,7 @@ ex:;
int Xorriso_write_session(struct XorrisO *xorriso, int flag)
{
int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext, is_bootable= 0;
int major, minor, micro, freshly_bootable= 0, hide_attr;
int freshly_bootable= 0, hide_attr;
char xorriso_id[256], *img_id, sfe[5*SfileadrL], *out_cs;
struct isoburn_imgen_opts *sopts= NULL;
struct burn_drive_info *dinfo, *source_dinfo;
@ -522,6 +545,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
"on attempt to write", 2);
if(ret<=0)
return(0);
if(xorriso->out_drive_handle == xorriso->in_drive_handle) {
source_drive= drive;
} else {
@ -692,22 +716,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
xorriso->scdbackup_tag_time,
xorriso->scdbackup_tag_written);
if(image!=NULL && 12+strlen(Xorriso_timestamP)<80) {
sprintf(xorriso_id, "XORRISO-%d.%d.%d %s",
Xorriso_header_version_majoR, Xorriso_header_version_minoR,
Xorriso_header_version_micrO, Xorriso_timestamP);
isoburn_version(&major, &minor, &micro);
if(strlen(xorriso_id)<80)
sprintf(xorriso_id+strlen(xorriso_id),
", LIBISOBURN-%d.%d.%d", major, minor, micro);
iso_lib_version(&major, &minor, &micro);
if(strlen(xorriso_id)<80)
sprintf(xorriso_id+strlen(xorriso_id),
", LIBISOFS-%d.%d.%d", major, minor, micro);
burn_version(&major, &minor, &micro);
if(strlen(xorriso_id)<80)
sprintf(xorriso_id+strlen(xorriso_id),
", LIBBURN-%d.%d.%d", major, minor, micro);
xorriso_id[128]= 0;
strcpy(xorriso_id, xorriso->preparer_id);
img_id= (char *) iso_image_get_data_preparer_id(image);
if(img_id!=NULL) {
for(i= strlen(img_id)-1; i>=0 && img_id[i]==' '; i--);

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Jun 27, 2010"
.TH XORRISO 1 "Sep 10, 2010"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -168,6 +168,10 @@ There are two families of media in the MMC standard:
unformatted DVD-RW. These media provide a table of content which
describes their existing sessions. See option \fB\-toc\fR.
.br
Similar to multi-session media are DVD-R DL and minimally blanked DVD-RW.
They allow only a single session of which the size must be known in advance.
xorriso will write onto them only if option -close is set to "on".
.br
\fBOverwriteable media\fR are DVD-RAM, DVD+RW, BD-RE, and formatted DVD-RW.
They allow random write access but do not provide information about their
session history. If they contain one or more ISO 9660 sessions and if the
@ -241,7 +245,7 @@ The write method of \fBmodifying\fR produces compact filesystem
images with no outdated files or directory trees. Modifying can write its
images to target media which are completely unsuitable for multi-session
operations. E.g. DVD-RW which were treated with -blank deformat_quickest,
named pipes, character devices, sockets.
DVD-R DL, named pipes, character devices, sockets.
On the other hand modified sessions cannot be written to appendable media
but to blank media only.
.br
@ -2043,6 +2047,10 @@ Set the application id string to be written with the next -commit. This may
identify the specification of how the data are recorded.
Permissible are up to 128 characters. This setting gets overridden by
image loading.
.br
The special text "@xorriso@" gets converted to the id string of xorriso
which is normally written as -preparer_id. It is a wrong tradition to write
the program id as -application_id.
.TP
\fB\-system_id\fR text
Set the system id string to be written with the next -commit. This may
@ -2099,6 +2107,18 @@ records.
Permissible are up to 37 characters. This setting gets overridden by
image loading.
.TP
\fB\-preparer_id\fR
Set the preparer id string to be written with the next -commit. This may
identify the person or other entity which controls the preparation of the data
which shall be recorded. Normally this should be the id of xorriso and not
of the person or program which operates xorriso. Please avoid to change it.
Permissible are up to 128 characters.
.br
The special text "@xorriso@" gets converted to the id string of xorriso
which is default at program startup.
.br
Unlike other id strings, this setting is not influenced by image loading.
.TP
\fB\-out_charset\fR character_set_name
Set the character set to which file names get converted when writing an
image. See paragraph "Character sets" for more explanations.
@ -2289,13 +2309,6 @@ which bundles these individual settings:
.br
-boot_image any boot_info_table=on
.br
\fBbin_path=\fR depicts the boot image file, a binary program which is to be
started by the hardware boot facility (e.g. the BIOS) at boot time.
.br
\fBefi_path=\fR depicts a boot image file that is ready for EFI booting.
Its load_size is determined automatically, no boot info table gets
written, platform_id is 0xef.
.br
An El Torito boot catalog file gets inserted into the ISO image with address
\fBcat_path=\fR at -commit time.
It is subject to normal -overwrite and -reassure processing if there is already
@ -2305,6 +2318,17 @@ one of the boot images. But it is not necessary that it appears in the
directory tree at all. One may hide it in all trees by \fBcat_hidden=on\fR.
Other possible values are "iso_rr", "joliet", and the default "off".
.br
\fBbin_path=\fR depicts a boot image file, a binary program which is to be
started by the hardware boot facility (e.g. the BIOS) at boot time.
.br
\fBefi_path=\fR depicts a boot image file that is ready for EFI booting.
Its load_size is determined automatically, no boot info table gets
written, no boot media gets emulated, platform_id is 0xef.
.br
\fBemul_type=\fR can be one of "no_emulation", "hard_disk", "diskette".
It controls the boot media emulation code of a boot image.
The default "no_emulation" is suitable for ISOLINUX, GRUB, FreeBSD cdboot.
.br
\fBload_size=\fR is a value which depends on the boot image.
Default 2048 should be overridden only if a better value is known.
.br
@ -2369,6 +2393,22 @@ then those parameters get updated when the new System Area is written.
Special "system_area=/dev/zero" causes 32k of NUL-bytes.
Use this to discard an MBR which eventually was loaded with the ISO image.
.br
\fBpartition_offset=\fR2kb_block_adr causes a partition table with a single
partition that begins at the given block address. This is counted in 2048 byte
blocks, not in 512 byte blocks. If the block address is non-zero then it must
be at least 16. A non-zero partition offset causes two superblocks to be
generated and two sets of directory trees. The image is then mountable from its
absolute start as well as from the partition start.
.br
The offset value of an ISO image gets preserved when a new session is added.
So the value defined here is only in effect if a new ISO image gets written.
.br
\fBpartition_sec_hd=\fRnumber gives the number of sectors per head for
partition offset. 0 chooses a default value.
.br
\fBpartition_hd_cyl=\fRnumber gives the number of heads per cylinder for
partition offset. 0 chooses a default value.
.br
.TP
.B Character sets:
.PP
@ -3251,8 +3291,12 @@ of all regular files underneath directory iso_rr_path.
Adopted from grub-mkisofs are --protective-msdos-label
(see -boot_image grub partition_table=on) and
--modification-date=YYYYMMDDhhmmsscc
(see -volume_date uuid). For EFI bootable GRUB boot images use --efi-boot.
It performs -boot_image grub efi_path= surrounded by two -boot_image any next.
(see -volume_date uuid). For EFI bootable GRUB boot images use
--efi-boot.
It performs -boot_image grub efi_path= surrounded by two
-boot_image "any" "next".
Alternative option -e from Fedora genisoimage sets bin_path and
platform_id for EFI, but performs no "next".
.br
For MBR bootable ISOLINUX images there is -isohybrid-mbr FILE, where
FILE is one of the Syslinux files mbr/isohdp[fp]x*.bin . Use this
@ -3260,6 +3304,9 @@ instead of -G to apply the effect of -boot_image isolinux partition_table=on.
.br
--boot-catalog-hide is -boot_image any cat_hidden=on.
.br
-partition_offset number is
-boot_image any partition_offset=number.
.br
Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR",
and "\fBgenisofs\fR" are aliases for "mkisofs".
.br
@ -3315,11 +3362,11 @@ From then on, options are interpreted as xorriso options.
.TP
\fB\-read_mkisofsrc\fR
Try one by one to open for reading:
./.mkisofsrc , $MKISOFSRC , $HOME/.mkisofsrc , $(basename $0)/.mkisofs
./.mkisofsrc , $MKISOFSRC , $HOME/.mkisofsrc , $(dirname $0)/.mkisofsrc
.br
On success interpret the file content as of man mkisofs CONFIGURATION,
and end this command. Do not try further files.
The last address is used only if start argument 0 has a non-trivial basename.
The last address is used only if start argument 0 has a non-trivial dirname.
.br
The reader currently interprets the following NAME=VALUE pairs:
APPI (-application_id) , PUBL (-publisher) , SYSI (-system_id) ,

View File

@ -32,6 +32,11 @@
libisoburn.h. One should not mix those calls with the ones of xorriso.h .
*/
/* Important: If you add a public API function then add its name to file
libisoburn/libisoburn.ver
*/
#ifndef Xorriso_includeD
#define Xorriso_includeD yes
@ -55,8 +60,8 @@ struct XorrisO;
@since 0.5.8
*/
#define Xorriso_header_version_majoR 0
#define Xorriso_header_version_minoR 5
#define Xorriso_header_version_micrO 9
#define Xorriso_header_version_minoR 6
#define Xorriso_header_version_micrO 2
/** Eventually something like ".pl01" to indicate a bug fix. Normally empty.
@ -110,7 +115,7 @@ void Xorriso__version(int *major, int *minor, int *micro);
@param flag Bitfield for control purposes. Unused yet. Submit 0.
@return 1= library can work for caller
0= library is not usable in some aspects. Caller must restrict
itself to an earlier API version or must not use this libray
itself to an earlier API version or must not use this library
at all.
*/
int Xorriso__is_compatible(int major, int minor, int micro, int flag);
@ -185,7 +190,7 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag);
functions from the Options API.
Wenn all desired activities are done, you may check whether there are
uncommited chages pending, compute an exit value, destroy the XorrisO
uncommited changes pending, compute an exit value, destroy the XorrisO
object, and exit your program.
*/
@ -290,8 +295,9 @@ int Xorriso_program_arg_bsl(struct XorrisO *xorriso, int argc, char ***argv,
be at least 1, argv[*idx] must be a command.
*idx will iterate over commands and parameters until this
function aborts or until argc is reached.
@param flag bit0= recursion
bit1= these are the main() program start arguments
@param flag bit0= reserved. Indicates recursion. Submit 0.
bit1= Indicates that these are the main() program start
arguments
@return <=0 = error
1 = success
2 = problem event ignored
@ -348,8 +354,9 @@ int Xorriso_dialog(struct XorrisO *xorriso, int flag);
A final newline character gets appended automatically.
@param os_errno Eventual errno related to the message. Submit 0 if
the message is not related to a operating system error.
@param severity One of "ABORT", "FATAL", "SORRY", "WARNING", "HINT",
"NOTE", "UPDATE", "DEBUG". Defaults to "FATAL".
@param severity One of "ABORT", "FATAL", "FAILURE", "MISHAP", "SORRY",
"WARNING", "HINT", "NOTE", "UPDATE", "DEBUG".
Defaults to "FATAL".
@param flag Bitfield for control purposes
bit0= use pager (as with result)
bit1= permission to suppress output
@ -995,6 +1002,9 @@ int Xorriso_option_pathspecs(struct XorrisO *xorriso, char *mode, int flag);
/* Option -pkt_output */
int Xorriso_option_pkt_output(struct XorrisO *xorriso, char *mode, int flag);
/* Option -preparer_id */
int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag);
/* Option -print */
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag);
@ -1030,10 +1040,6 @@ int Xorriso_option_read_mkisofsrc(struct XorrisO *xorriso, int flag);
/* Option -reassure "on"|"tree"|"off" */
int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag);
/* Option -relax_compliance */
int Xorriso_option_relax_compliance(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -report_about */
int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity,
int flag);
@ -1042,9 +1048,6 @@ int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity,
int Xorriso_option_return_with(struct XorrisO *xorriso, char *severity,
int exit_value, int flag);
/* Option -revoke_exclusions */
int Xorriso_option_revoke_exclusions(struct XorrisO *xorriso, int flag);
/* Options -rm alias -rmi , -rm_r alias -rm_ri , -rmdir alias -rmdiri */
/* @param flag bit0=recursive , bit2= remove empty directory: rmdir */
int Xorriso_option_rmi(struct XorrisO *xorriso, int argc, char **argv,

View File

@ -149,6 +149,10 @@ There are two families of media in the MMC standard:
*Multi-session media* are CD-R, CD-RW, DVD-R, DVD+R, DVD+R/DL, BD-R, and
unformatted DVD-RW. These media provide a table of content which
describes their existing sessions. See option *-toc*.
Similar to multi-session media are DVD-R DL and minimally blanked
DVD-RW. They allow only a single session of which the size must be
known in advance. xorriso will write onto them only if option -close
is set to "on".
*Overwriteable media* are DVD-RAM, DVD+RW, BD-RE, and formatted DVD-RW.
They allow random write access but do not provide information about
their session history. If they contain one or more ISO 9660 sessions
@ -221,9 +225,9 @@ Growing is achieved by option -dev.
with no outdated files or directory trees. Modifying can write its
images to target media which are completely unsuitable for multi-session
operations. E.g. DVD-RW which were treated with -blank
deformat_quickest, named pipes, character devices, sockets. On the
other hand modified sessions cannot be written to appendable media but
to blank media only.
deformat_quickest, DVD-R DL, named pipes, character devices, sockets.
On the other hand modified sessions cannot be written to appendable
media but to blank media only.
So for this method one needs either two optical drives or has to work
with filesystem objects as source and/or target media.
Modifying takes place if input drive and output drive are not the same
@ -1830,6 +1834,9 @@ will be written according to the setting of option -acl.
This may identify the specification of how the data are recorded.
Permissible are up to 128 characters. This setting gets overridden
by image loading.
The special text "@xorriso@" gets converted to the id string of
xorriso which is normally written as -preparer_id. It is a wrong
tradition to write the program id as -application_id.
-system_id text
Set the system id string to be written with the next -commit. This
@ -1849,7 +1856,7 @@ will be written according to the setting of option -acl.
literally. It must consist of 16 decimal digits which form
YYYYMMDDhhmmsscc, with YYYY between 1970 and 2999. Time zone is
GMT. It is supposed to match this GRUB line:
search -fs-uuid -set YYYY-MM-DD-hh-mm-ss-cc
search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc
E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
Timestrings for the other types may be given as with option
-alter_date. They are prone to timezone computations. The
@ -1876,6 +1883,18 @@ will be written according to the setting of option -acl.
bibliographic records. Permissible are up to 37 characters. This
setting gets overridden by image loading.
-preparer_id
Set the preparer id string to be written with the next -commit.
This may identify the person or other entity which controls the
preparation of the data which shall be recorded. Normally this
should be the id of xorriso and not of the person or program which
operates xorriso. Please avoid to change it. Permissible are up
to 128 characters.
The special text "@xorriso@" gets converted to the id string of
xorriso which is default at program startup.
Unlike other id strings, this setting is not influenced by image
loading.
-out_charset character_set_name
Set the character set to which file names get converted when
writing an image. See paragraph "Character sets" for more
@ -2039,12 +2058,6 @@ of the existing sessions, unless one can assume overwriteable media.
-boot_image isolinux cat_path=/boot/isolinux/boot.cat
-boot_image isolinux load_size=2048
-boot_image any boot_info_table=on
*bin_path=* depicts the boot image file, a binary program which is
to be started by the hardware boot facility (e.g. the BIOS) at
boot time.
*efi_path=* depicts a boot image file that is ready for EFI
booting. Its load_size is determined automatically, no boot info
table gets written, platform_id is 0xef.
An El Torito boot catalog file gets inserted into the ISO image
with address *cat_path=* at -commit time. It is subject to normal
-overwrite and -reassure processing if there is already a file
@ -2053,6 +2066,17 @@ of the existing sessions, unless one can assume overwriteable media.
not necessary that it appears in the directory tree at all. One
may hide it in all trees by *cat_hidden=on*. Other possible
values are "iso_rr", "joliet", and the default "off".
*bin_path=* depicts a boot image file, a binary program which is
to be started by the hardware boot facility (e.g. the BIOS) at
boot time.
*efi_path=* depicts a boot image file that is ready for EFI
booting. Its load_size is determined automatically, no boot info
table gets written, no boot media gets emulated, platform_id is
0xef.
*emul_type=* can be one of "no_emulation", "hard_disk", "diskette".
It controls the boot media emulation code of a boot image. The
default "no_emulation" is suitable for ISOLINUX, GRUB, FreeBSD
cdboot.
*load_size=* is a value which depends on the boot image. Default
2048 should be overridden only if a better value is known.
*boot_info_table=on* may be used to apply patching to a boot image
@ -2105,6 +2129,20 @@ of the existing sessions, unless one can assume overwriteable media.
when the new System Area is written.
Special "system_area=/dev/zero" causes 32k of NUL-bytes. Use this
to discard an MBR which eventually was loaded with the ISO image.
*partition_offset=*2kb_block_adr causes a partition table with a
single partition that begins at the given block address. This is
counted in 2048 byte blocks, not in 512 byte blocks. If the block
address is non-zero then it must be at least 16. A non-zero
partition offset causes two superblocks to be generated and two
sets of directory trees. The image is then mountable from its
absolute start as well as from the partition start.
The offset value of an ISO image gets preserved when a new session
is added. So the value defined here is only in effect if a new
ISO image gets written.
*partition_sec_hd=*number gives the number of sectors per head for
partition offset. 0 chooses a default value.
*partition_hd_cyl=*number gives the number of heads per cylinder
for partition offset. 0 chooses a default value.

File: xorriso.info, Node: Charset, Next: Exception, Prev: Bootable, Up: Options
@ -2905,13 +2943,17 @@ programs trigger comparable actions.
Adopted from grub-mkisofs are --protective-msdos-label (see
-boot_image grub partition_table=on) and
--modification-date=YYYYMMDDhhmmsscc (see -volume_date uuid). For
EFI bootable GRUB boot images use -efi-boot. It performs
-boot_image grub efi_path= surrounded by two -boot_image any next.
EFI bootable GRUB boot images use --efi-boot. It performs
-boot_image grub efi_path= surrounded by two -boot_image "any"
"next". Alternative option -e from Fedora genisoimage sets
bin_path and platform_id for EFI, but performs no "next".
For MBR bootable ISOLINUX images there is -isohybrid-mbr FILE,
where FILE is one of the Syslinux files mbr/isohdp[fp]x*.bin . Use
this instead of -G to apply the effect of -boot_image isolinux
partition_table=on.
-boot-catalog-hide is -boot_image any cat_hidden=on.
--boot-catalog-hide is -boot_image any cat_hidden=on.
-partition_offset number is -boot_image any
partition_offset=number.
Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are
aliases for "mkisofs".
If xorriso is started with one of the leafnames "xorrisofs",
@ -2955,11 +2997,11 @@ programs trigger comparable actions.
-read_mkisofsrc
Try one by one to open for reading: ./.mkisofsrc , $MKISOFSRC ,
$HOME/.mkisofsrc , $(basename $0)/.mkisofs
$HOME/.mkisofsrc , $(dirname $0)/.mkisofsrc
On success interpret the file content as of man mkisofs
CONFIGURATION, and end this command. Do not try further files.
The last address is used only if start argument 0 has a
non-trivial basename.
non-trivial dirname.
The reader currently interprets the following NAME=VALUE pairs:
APPI (-application_id) , PUBL (-publisher) , SYSI (-system_id) ,
VOLI (-volid) , VOLS (-volset_id)
@ -3711,7 +3753,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* # starts a comment line: Scripting. (line 128)
* -abort_on controls abort on error: Exception. (line 27)
* -abstract_file sets abstract file name: SetWrite. (line 128)
* -abstract_file sets abstract file name: SetWrite. (line 131)
* -acl controls handling of ACLs: Loading. (line 123)
* -add inserts one or more paths: Insert. (line 42)
* -add_plainly inserts one or more paths: Insert. (line 61)
@ -3723,7 +3765,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -auto_charset learns character set from image: Loading. (line 80)
* -backslash_codes enables backslash conversion: Scripting. (line 45)
* -ban_stdio_write demands real drive: Loading. (line 220)
* -biblio_file sets biblio file name: SetWrite. (line 135)
* -biblio_file sets biblio file name: SetWrite. (line 138)
* -blank erases media: Writing. (line 45)
* -boot_image controls bootability: Bootable. (line 20)
* -calm_drive reduces drive activity: Loading. (line 209)
@ -3740,7 +3782,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chmod_r sets permissions in ISO image: Manip. (line 70)
* -chown sets ownership in ISO image: Manip. (line 42)
* -chown_r sets ownership in ISO image: Manip. (line 47)
* -close controls media closing: SetWrite. (line 218)
* -close controls media closing: SetWrite. (line 233)
* -close_filter_list bans filter registration: Filter. (line 52)
* -commit writes pending ISO image: Writing. (line 13)
* -commit_eject writes and ejects: Writing. (line 40)
@ -3748,7 +3790,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -compare_l reports ISO/disk differences: Navigate. (line 152)
* -compare_r reports ISO/disk differences: Navigate. (line 147)
* -compliance controls standard compliance: SetWrite. (line 14)
* -copyright_file sets copyright file name: SetWrite. (line 122)
* -copyright_file sets copyright file name: SetWrite. (line 125)
* -cp_rx copies file trees to disk: Restore. (line 104)
* -cpax copies files to disk: Restore. (line 100)
* -cpr inserts like with cp -r: Insert. (line 152)
@ -3761,11 +3803,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -disk_pattern controls pattern expansion: Insert. (line 31)
* -drive_class controls drive accessability: Loading. (line 35)
* -du show directory size in ISO image: Navigate. (line 88)
* -dummy controls write simulation: SetWrite. (line 207)
* -dummy controls write simulation: SetWrite. (line 222)
* -dus show directory size in ISO image: Navigate. (line 92)
* -dusx show directory size on disk: Navigate. (line 101)
* -dux show directory size on disk: Navigate. (line 96)
* -dvd_obs set write block size: SetWrite. (line 194)
* -dvd_obs set write block size: SetWrite. (line 209)
* -eject ejects drive tray: Writing. (line 36)
* -end writes pending session and ends program: Scripting. (line 122)
* -errfile_log logs problematic disk files: Scripting. (line 84)
@ -3782,12 +3824,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -follow softlinks and mount points: SetInsert. (line 76)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 158)
* -format formats media: Writing. (line 69)
* -fs sets size of fifo: SetWrite. (line 211)
* -fs sets size of fifo: SetWrite. (line 226)
* -getfacl shows ACL in ISO image: Navigate. (line 69)
* -getfacl_r shows ACL in ISO image: Navigate. (line 76)
* -getfattr shows xattr in ISO image: Navigate. (line 80)
* -getfattr_r shows xattr in ISO image: Navigate. (line 84)
* -gid sets global ownership: SetWrite. (line 151)
* -gid sets global ownership: SetWrite. (line 166)
* -grow_blindly overides next writeable address: AqDrive. (line 44)
* -hardlinks controls handling of hard links: Loading. (line 91)
* -help prints help text: Scripting. (line 16)
@ -3828,16 +3870,17 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -not_paths sets absolute exclusion paths: SetInsert. (line 55)
* -options_from_file reads commands from file: Scripting. (line 12)
* -osirrox enables ISO-to-disk copying: Restore. (line 18)
* -out_charset sets output character set: SetWrite. (line 141)
* -out_charset sets output character set: SetWrite. (line 156)
* -outdev aquires a drive for output: AqDrive. (line 29)
* -overwrite enables overwriting in ISO: SetInsert. (line 127)
* -pacifier controls pacifier text form: Emulation. (line 119)
* -padding sets amount of image padding: SetWrite. (line 224)
* -pacifier controls pacifier text form: Emulation. (line 123)
* -padding sets amount of image padding: SetWrite. (line 239)
* -page set terminal geometry: DialogCtl. (line 15)
* -paste_in copies file into disk file: Restore. (line 117)
* -path_list inserts paths from disk file: Insert. (line 75)
* -pathspecs sets meaning of = with -add: SetInsert. (line 118)
* -pkt_output consolidates text output: Frontend. (line 7)
* -preparer_id sets preparer id: SetWrite. (line 144)
* -print prints text line: Scripting. (line 77)
* -print_size predicts image size: Inquiry. (line 69)
* -prog sets program name: Frontend. (line 29)
@ -3850,7 +3893,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -quoted_not_list sets exclusions: SetInsert. (line 72)
* -quoted_path_list inserts paths from disk file: Insert. (line 80)
* -read_mkisofsrc searches and reads .mkisofsrc file: Emulation.
(line 107)
(line 111)
* -reassure enables confirmation question: DialogCtl. (line 28)
* -report_about controls verbosity: Exception. (line 55)
* -return_with controls exit value: Exception. (line 39)
@ -3860,7 +3903,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -rollback discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 125)
* -rom_toc_scan searches for sessions: Loading. (line 184)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 129)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 133)
* -scsi_log reports SCSI commands: Scripting. (line 113)
* -session_log logs written sessions: Scripting. (line 104)
* -session_string composes session info line: Inquiry. (line 56)
@ -3874,17 +3917,17 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -setfattr_r sets xattr in ISO image: Manip. (line 123)
* -show_stream shows data source and filters: Navigate. (line 157)
* -show_stream_r shows data source and filters: Navigate. (line 172)
* -speed set write speed: SetWrite. (line 167)
* -speed set write speed: SetWrite. (line 182)
* -split_size enables large file splitting: SetInsert. (line 140)
* -status shows current settings: Scripting. (line 25)
* -status_history_max curbs -status history: Scripting. (line 34)
* -stdio_sync controls stdio buffer: SetWrite. (line 201)
* -stream_recording controls defect management: SetWrite. (line 182)
* -system_id sets system id: SetWrite. (line 96)
* -stdio_sync controls stdio buffer: SetWrite. (line 216)
* -stream_recording controls defect management: SetWrite. (line 197)
* -system_id sets system id: SetWrite. (line 99)
* -tell_media_space reports free space: Inquiry. (line 74)
* -temp_mem_limit curbs memory consumption: Scripting. (line 70)
* -toc shows list of sessions: Inquiry. (line 18)
* -uid sets global ownership: SetWrite. (line 147)
* -uid sets global ownership: SetWrite. (line 162)
* -update inserts path if different: Insert. (line 99)
* -update_l inserts paths if different: Insert. (line 121)
* -update_r inserts paths if different: Insert. (line 110)
@ -3892,9 +3935,9 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -version prints help text: Scripting. (line 19)
* -volid sets volume id: SetWrite. (line 60)
* -volset_id sets volume set id: SetWrite. (line 79)
* -volume_date sets volume timestamp: SetWrite. (line 103)
* -volume_date sets volume timestamp: SetWrite. (line 106)
* -xattr controls handling of xattr (EA): Loading. (line 131)
* -zisofs controls zisofs production: SetWrite. (line 155)
* -zisofs controls zisofs production: SetWrite. (line 170)

File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
@ -3912,22 +3955,22 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* ACL, set in ISO image, -setfacl_r: Manip. (line 97)
* ACL, show in ISO image, -getfacl: Navigate. (line 69)
* ACL, show in ISO image, -getfacl_r: Navigate. (line 76)
* Appendable media, _definition: Media. (line 34)
* Appendable media, _definition: Media. (line 38)
* Backslash Interpretation, _definition: Processing. (line 49)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 163)
* Backup, enable features, -for_backup: Loading. (line 158)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 129)
* Blank media, _definition: Media. (line 25)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 133)
* Blank media, _definition: Media. (line 29)
* Blind growing, _definition: Methods. (line 40)
* Bootability, control, -boot_image: Bootable. (line 20)
* cdrecord, Emulation: Emulation. (line 74)
* cdrecord, Emulation: Emulation. (line 78)
* Character Set, _definition: Charset. (line 6)
* Character Set, for input, -in_charset: Loading. (line 73)
* Character Set, for input/output, -charset: Charset. (line 43)
* Character Set, for output, -out_charset: SetWrite. (line 141)
* Character Set, for output, -out_charset: SetWrite. (line 156)
* Character set, learn from image, -auto_charset: Loading. (line 80)
* Character Set, of terminal, -local_charset: Charset. (line 47)
* Closed media, _definition: Media. (line 39)
* Closed media, _definition: Media. (line 43)
* Comment, #: Scripting. (line 128)
* Create, new ISO image, _definiton: Methods. (line 6)
* Delete, from ISO image, -rm: Manip. (line 21)
@ -3955,10 +3998,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, write and eject, -commit_eject: Writing. (line 40)
* El Torito, _definiton: Extras. (line 19)
* Emulation, -as: Emulation. (line 13)
* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 107)
* Emulation, cdrecord, -as: Emulation. (line 74)
* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 111)
* Emulation, cdrecord, -as: Emulation. (line 78)
* Emulation, mkisofs, -as: Emulation. (line 16)
* Emulation, pacifier form, -pacifier: Emulation. (line 119)
* Emulation, pacifier form, -pacifier: Emulation. (line 123)
* Examples: Examples. (line 6)
* Filter, _definition: Filter. (line 6)
* Filter, apply to file tree, -set_filter_r: Filter. (line 84)
@ -3968,8 +4011,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Filter, show chain, -show_stream: Navigate. (line 157)
* Filter, show chains of tree, -show_stream_r: Navigate. (line 172)
* Filter, unregister, -unregister_filter: Filter. (line 48)
* Filter, zisofs parameters, -zisofs: SetWrite. (line 155)
* Group, global in ISO image, -gid: SetWrite. (line 151)
* Filter, zisofs parameters, -zisofs: SetWrite. (line 170)
* Group, global in ISO image, -gid: SetWrite. (line 166)
* Group, in ISO image, -chgrp: Manip. (line 50)
* Group, in ISO image, -chgrp_r: Manip. (line 55)
* Growing, _definition: Methods. (line 19)
@ -3978,15 +4021,16 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Image, _definition: Model. (line 9)
* Image, demand volume id, -assert_volid: Loading. (line 65)
* Image, discard pending changes, -rollback: Writing. (line 9)
* Image, set abstract file name, -abstract_file: SetWrite. (line 128)
* Image, set abstract file name, -abstract_file: SetWrite. (line 131)
* Image, set application id, -application_id: SetWrite. (line 90)
* Image, set biblio file name, -biblio_file: SetWrite. (line 135)
* Image, set copyright file name, -copyright_file: SetWrite. (line 122)
* Image, set biblio file name, -biblio_file: SetWrite. (line 138)
* Image, set copyright file name, -copyright_file: SetWrite. (line 125)
* Image, set preparer id, -preparer_id: SetWrite. (line 144)
* Image, set publisher id, -publisher: SetWrite. (line 84)
* Image, set system id, -system_id: SetWrite. (line 96)
* Image, set system id, -system_id: SetWrite. (line 99)
* Image, set volume id, -volid: SetWrite. (line 60)
* Image, set volume set id, -volset_id: SetWrite. (line 79)
* Image, set volume timestamp, -volume_date: SetWrite. (line 103)
* Image, set volume timestamp, -volume_date: SetWrite. (line 106)
* Image, show id strings, -pvd_info: Inquiry. (line 78)
* Insert, enable overwriting, -overwrite: SetInsert. (line 127)
* Insert, file exclusion absolute, -not_paths: SetInsert. (line 55)
@ -4013,7 +4057,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* iso_rr_path, _definition: Insert. (line 7)
* List delimiter, _definiton: Processing. (line 8)
* MBR, _definiton: Extras. (line 26)
* MBR, set, -boot_image system_area=: Bootable. (line 112)
* MBR, set, -boot_image system_area=: Bootable. (line 117)
* MD5, control handling, -md5: Loading. (line 136)
* Media, erase, -blank: Writing. (line 45)
* Media, format, -format: Writing. (line 69)
@ -4039,11 +4083,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Navigate, tell disk working directory, -pwdx: Navigate. (line 23)
* Navigate, tell ISO working directory, -pwd: Navigate. (line 20)
* Next writeable address, -grow_blindly: AqDrive. (line 44)
* Overwriteable media, _definition: Media. (line 10)
* Ownership, global in ISO image, -uid: SetWrite. (line 147)
* Overwriteable media, _definition: Media. (line 14)
* Ownership, global in ISO image, -uid: SetWrite. (line 162)
* Ownership, in ISO image, -chown: Manip. (line 42)
* Ownership, in ISO image, -chown_r: Manip. (line 47)
* Partition table, _definiton: Bootable. (line 119)
* Partition offset, _definiton: Bootable. (line 142)
* Partition table, _definiton: Bootable. (line 124)
* Pathspec, _definition: SetInsert. (line 120)
* Pattern expansion, _definition: Processing. (line 22)
* Pattern expansion, for disk paths, -disk_pattern: Insert. (line 31)
@ -4094,7 +4139,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Session, mount command line, -mount_cmd: Inquiry. (line 31)
* Session, mount parameters, -mount_opts: Inquiry. (line 47)
* Session, select as input, -load: Loading. (line 11)
* System area, _definiton: Bootable. (line 112)
* System area, _definiton: Bootable. (line 117)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 184)
* Table-of-content, show, -toc: Inquiry. (line 18)
* Timestamps, set in ISO image, -alter_date: Manip. (line 146)
@ -4108,22 +4153,22 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, file checksum, -check_md5: Verify. (line 144)
* Verify, file tree checksums, -check_md5_r: Verify. (line 160)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
* Write, block size, -dvd_obs: SetWrite. (line 194)
* Write, block size, -dvd_obs: SetWrite. (line 209)
* Write, bootability, -boot_image: Bootable. (line 20)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 201)
* Write, close media, -close: SetWrite. (line 218)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 216)
* Write, close media, -close: SetWrite. (line 233)
* Write, compliance to specs, -compliance: SetWrite. (line 14)
* Write, defect management, -stream_recording: SetWrite. (line 182)
* Write, defect management, -stream_recording: SetWrite. (line 197)
* Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 211)
* Write, fifo size, -fs: SetWrite. (line 226)
* Write, free space, -tell_media_space: Inquiry. (line 74)
* Write, log problematic disk files, -errfile_log: Scripting. (line 84)
* Write, log written sessions, -session_log: Scripting. (line 104)
* Write, padding image, -padding: SetWrite. (line 224)
* Write, padding image, -padding: SetWrite. (line 239)
* Write, pending ISO image, -commit: Writing. (line 13)
* Write, predict image size, -print_size: Inquiry. (line 69)
* Write, set speed, -speed: SetWrite. (line 167)
* Write, simulation, -dummy: SetWrite. (line 207)
* Write, set speed, -speed: SetWrite. (line 182)
* Write, simulation, -dummy: SetWrite. (line 222)
* xattr, _definiton: Extras. (line 51)
* xattr, control handling, -xattr: Loading. (line 131)
* xattr, set in ISO image, -setfattr: Manip. (line 110)
@ -4139,53 +4184,53 @@ Node: Top420
Node: Overview1324
Node: Model3209
Node: Media6089
Node: Methods8519
Node: Drives11066
Node: Extras14372
Node: Processing17799
Node: Dialog21295
Node: Options22952
Node: AqDrive24520
Node: Loading27426
Node: Insert39605
Node: SetInsert47962
Node: Manip56529
Node: CmdFind65210
Node: Filter75161
Node: Writing79510
Node: SetWrite85799
Node: Bootable96961
Node: Charset104913
Node: Exception107667
Node: DialogCtl112182
Node: Inquiry114527
Node: Navigate118657
Node: Verify126255
Node: Restore134675
Node: Emulation141331
Node: Scripting148929
Node: Frontend154491
Node: Examples155692
Node: ExDevices156861
Node: ExCreate157495
Node: ExDialog158769
Node: ExGrowing160031
Node: ExModifying160833
Node: ExBootable161334
Node: ExCharset161881
Node: ExPseudo162709
Node: ExCdrecord163603
Node: ExMkisofs163918
Node: ExGrowisofs164921
Node: ExException166045
Node: ExTime166499
Node: ExIncBackup166958
Node: ExRestore170430
Node: ExRecovery171399
Node: Files171965
Node: Seealso173193
Node: Legal173717
Node: CommandIdx174639
Node: ConceptIdx188372
Node: Methods8739
Node: Drives11295
Node: Extras14601
Node: Processing18028
Node: Dialog21524
Node: Options23181
Node: AqDrive24749
Node: Loading27655
Node: Insert39834
Node: SetInsert48191
Node: Manip56758
Node: CmdFind65439
Node: Filter75390
Node: Writing79739
Node: SetWrite86028
Node: Bootable97979
Node: Charset107071
Node: Exception109825
Node: DialogCtl114340
Node: Inquiry116685
Node: Navigate120815
Node: Verify128413
Node: Restore136833
Node: Emulation143489
Node: Scripting151292
Node: Frontend156854
Node: Examples158055
Node: ExDevices159224
Node: ExCreate159858
Node: ExDialog161132
Node: ExGrowing162394
Node: ExModifying163196
Node: ExBootable163697
Node: ExCharset164244
Node: ExPseudo165072
Node: ExCdrecord165966
Node: ExMkisofs166281
Node: ExGrowisofs167284
Node: ExException168408
Node: ExTime168862
Node: ExIncBackup169321
Node: ExRestore172793
Node: ExRecovery173762
Node: Files174328
Node: Seealso175556
Node: Legal176080
Node: CommandIdx177002
Node: ConceptIdx190808

End Tag Table

View File

@ -44,7 +44,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Jun 27, 2010"
@c man .TH XORRISO 1 "Sep 10, 2010"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -264,6 +264,10 @@ There are two families of media in the MMC standard:
unformatted DVD-RW. These media provide a table of content which
describes their existing sessions. See option @strong{-toc}.
@*
Similar to multi-session media are DVD-R DL and minimally blanked DVD-RW.
They allow only a single session of which the size must be known in advance.
xorriso will write onto them only if option -close is set to "on".
@*
@cindex Overwriteable media, _definition
@strong{Overwriteable media} are DVD-RAM, DVD+RW, BD-RE, and formatted DVD-RW.
They allow random write access but do not provide information about their
@ -353,7 +357,7 @@ The write method of @strong{modifying} produces compact filesystem
images with no outdated files or directory trees. Modifying can write its
images to target media which are completely unsuitable for multi-session
operations. E.g. DVD-RW which were treated with -blank deformat_quickest,
named pipes, character devices, sockets.
DVD-R DL, named pipes, character devices, sockets.
On the other hand modified sessions cannot be written to appendable media
but to blank media only.
@*
@ -2461,6 +2465,10 @@ Set the application id string to be written with the next -commit. This may
identify the specification of how the data are recorded.
Permissible are up to 128 characters. This setting gets overridden by
image loading.
@*
The special text "@@xorriso@@" gets converted to the id string of xorriso
which is normally written as -preparer_id. It is a wrong tradition to write
the program id as -application_id.
@c man .TP
@item -system_id text
@kindex -system_id sets system id
@ -2490,7 +2498,7 @@ It must consist of 16 decimal digits which form YYYYMMDDhhmmsscc, with
YYYY between 1970 and 2999. Time zone is GMT.
It is supposed to match this GRUB line:
@*
search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc
search @minus{}@minus{}fs-uuid @minus{}@minus{}set YYYY-MM-DD-hh-mm-ss-cc
@*
E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
@*
@ -2527,6 +2535,20 @@ records.
Permissible are up to 37 characters. This setting gets overridden by
image loading.
@c man .TP
@item -preparer_id
@kindex -preparer_id sets preparer id
@cindex Image, set preparer id, -preparer_id
Set the preparer id string to be written with the next -commit. This may
identify the person or other entity which controls the preparation of the data
which shall be recorded. Normally this should be the id of xorriso and not
of the person or program which operates xorriso. Please avoid to change it.
Permissible are up to 128 characters.
@*
The special text "@@xorriso@@" gets converted to the id string of xorriso
which is default at program startup.
@*
Unlike other id strings, this setting is not influenced by image loading.
@c man .TP
@item -out_charset character_set_name
@kindex -out_charset sets output character set
@cindex Character Set, for output, -out_charset
@ -2752,13 +2774,6 @@ which bundles these individual settings:
@*
-boot_image any boot_info_table=on
@*
@strong{bin_path=} depicts the boot image file, a binary program which is to be
started by the hardware boot facility (e.g. the BIOS) at boot time.
@*
@strong{efi_path=} depicts a boot image file that is ready for EFI booting.
Its load_size is determined automatically, no boot info table gets
written, platform_id is 0xef.
@*
An El Torito boot catalog file gets inserted into the ISO image with address
@strong{cat_path=} at -commit time.
It is subject to normal -overwrite and -reassure processing if there is already
@ -2768,6 +2783,17 @@ one of the boot images. But it is not necessary that it appears in the
directory tree at all. One may hide it in all trees by @strong{cat_hidden=on}.
Other possible values are "iso_rr", "joliet", and the default "off".
@*
@strong{bin_path=} depicts a boot image file, a binary program which is to be
started by the hardware boot facility (e.g. the BIOS) at boot time.
@*
@strong{efi_path=} depicts a boot image file that is ready for EFI booting.
Its load_size is determined automatically, no boot info table gets
written, no boot media gets emulated, platform_id is 0xef.
@*
@strong{emul_type=} can be one of "no_emulation", "hard_disk", "diskette".
It controls the boot media emulation code of a boot image.
The default "no_emulation" is suitable for ISOLINUX, GRUB, FreeBSD cdboot.
@*
@strong{load_size=} is a value which depends on the boot image.
Default 2048 should be overridden only if a better value is known.
@*
@ -2835,6 +2861,23 @@ then those parameters get updated when the new System Area is written.
Special "system_area=/dev/zero" causes 32k of NUL-bytes.
Use this to discard an MBR which eventually was loaded with the ISO image.
@*
@cindex Partition offset, _definiton
@strong{partition_offset=}2kb_block_adr causes a partition table with a single
partition that begins at the given block address. This is counted in 2048 byte
blocks, not in 512 byte blocks. If the block address is non-zero then it must
be at least 16. A non-zero partition offset causes two superblocks to be
generated and two sets of directory trees. The image is then mountable from its
absolute start as well as from the partition start.
@*
The offset value of an ISO image gets preserved when a new session is added.
So the value defined here is only in effect if a new ISO image gets written.
@*
@strong{partition_sec_hd=}number gives the number of sectors per head for
partition offset. 0 chooses a default value.
@*
@strong{partition_hd_cyl=}number gives the number of heads per cylinder for
partition offset. 0 chooses a default value.
@*
@end table
@c man .TP
@c man .B Character sets:
@ -3885,14 +3928,21 @@ of all regular files underneath directory iso_rr_path.
Adopted from grub-mkisofs are @minus{}@minus{}protective-msdos-label
(see -boot_image grub partition_table=on) and
@minus{}@minus{}modification-date=YYYYMMDDhhmmsscc
(see -volume_date uuid). For EFI bootable GRUB boot images use --efi-boot.
It performs -boot_image grub efi_path= surrounded by two -boot_image any next.
(see -volume_date uuid). For EFI bootable GRUB boot images use
@minus{}@minus{}efi-boot.
It performs @minus{}boot_image grub efi_path= surrounded by two
@minus{}boot_image "any" "next".
Alternative option @minus{}e from Fedora genisoimage sets bin_path and
platform_id for EFI, but performs no "next".
@*
For MBR bootable ISOLINUX images there is -isohybrid-mbr FILE, where
FILE is one of the Syslinux files mbr/isohdp[fp]x*.bin . Use this
instead of -G to apply the effect of -boot_image isolinux partition_table=on.
@*
--boot-catalog-hide is -boot_image any cat_hidden=on.
@minus{}@minus{}boot-catalog-hide is -boot_image any cat_hidden=on.
@*
@minus{}partition_offset number is
@minus{}boot_image any partition_offset=number.
@*
Personalites "@strong{xorrisofs}", "@strong{genisoimage}",
and "@strong{genisofs}" are aliases for "mkisofs".
@ -3954,11 +4004,11 @@ From then on, options are interpreted as xorriso options.
@kindex -read_mkisofsrc searches and reads .mkisofsrc file
@cindex Emulation, .mkisofsrc, -read_mkisofsrc
Try one by one to open for reading:
./.mkisofsrc , $MKISOFSRC , $HOME/.mkisofsrc , $(basename $0)/.mkisofs
./.mkisofsrc , $MKISOFSRC , $HOME/.mkisofsrc , $(dirname $0)/.mkisofsrc
@*
On success interpret the file content as of man mkisofs CONFIGURATION,
and end this command. Do not try further files.
The last address is used only if start argument 0 has a non-trivial basename.
The last address is used only if start argument 0 has a non-trivial dirname.
@*
The reader currently interprets the following NAME=VALUE pairs:
APPI (-application_id) , PUBL (-publisher) , SYSI (-system_id) ,

View File

@ -15,8 +15,8 @@
<P>
<H1>GNU xorriso</H1>
<H2>ISO 9660 Rock Ridge Filesystem Manipulator for GNU/Linux, FreeBSD, Solaris
</H2>
<H2>ISO 9660 Rock Ridge Filesystem Manipulator<BR>
for GNU/Linux, FreeBSD, Solaris</H2>
</P>
</CENTER>
@ -59,7 +59,7 @@ Images or add-on sessions may be written to about any kind of file object.
<DD>With kernel 2.6 ide-scsi is not needed.</DD>
<DT>or FreeBSD, libc, libpthread :</DT>
<DD>PATA/IDE drives need atapicam running.</DD>
<DD>SATA drives need atapicam or ahci running.</DD>
<DD>SATA drives need atapicam running or need to be driven by ahci.</DD>
<DD>libcam has to be installed.</DD>
<DD>libiconv has to be installed.</DD>
<DT>or Solaris, libc, libpthread :</DT>
@ -142,7 +142,8 @@ Scans for optical drives, blanks re-useable optical media, formats media.
</LI>
<LI>
Suitable for:
CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM, BD-R, BD-RE.
CD-R, CD-RW, DVD-R, DVD-R DL, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM,
BD-R, BD-RE.
</LI>
<LI>
Reads its instructions from command line arguments, dialog, and batch files.
@ -439,19 +440,19 @@ files or trees to disk:
<P>
<DL>
<DT><H3>Download as source code (see README):</H3></DT>
<DD><A HREF="xorriso-0.5.8.tar.gz">xorriso-0.5.8.tar.gz</A>
(1640 KB).
<DD><A HREF="xorriso-0.6.2.tar.gz">xorriso-0.6.2.tar.gz</A>
(1670 KB).
</DD>
<DD>(Released 13 Jun 2010)</DD>
<DD><A HREF="xorriso-0.5.8.tar.gz.sig">xorriso-0.5.8.tar.gz.sig</A></DD>
<DD>(Released 18 Sep 2010)</DD>
<DD><A HREF="xorriso-0.6.2.tar.gz.sig">xorriso-0.6.2.tar.gz.sig</A></DD>
<DD>
(detached GPG signature for verification by
<KBD>gpg --verify xorriso-0.5.8.tar.gz.sig xorriso-0.5.8.tar.gz</KBD>).
<KBD>gpg --verify xorriso-0.6.2.tar.gz.sig xorriso-0.6.2.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.8.tar.gz
as xorriso/xorriso-0.6.2.tar.gz
</DD>
</DL>
</DD>
@ -479,18 +480,9 @@ as xorriso/xorriso-0.5.8.tar.gz
<HR>
<P>
Bug fixes towards xorriso-0.5.6:
Bug fixes towards xorriso-0.6.0:
<UL>
<LI>
CD TOC was not read if the first track did not start at LBA 0
</LI>
<LI>
CD-ROM media got attributed random lead-in and lead-out adresses
</LI>
<LI>
SIGSEGV of experimental libcdio system adapter if drive list is empty
</LI>
<LI>Regression with -hardlinks and -compliance old_rr, 0.4.2, Aug 2009</LI>
<!--
<LI>- none -</LI>
-->
@ -508,12 +500,35 @@ Bug fixes in .pl01 towards xorriso-:
-->
<P>
Enhancements towards previous stable version xorriso-0.5.6:
Enhancements towards previous stable version xorriso-0.6.0:
<UL>
<LI>A new system adapter allows to burn CD, DVD and BD on OpenSolaris</LI>
<LI>New -compliance rule no_emul_toc, new -as mkisofs --no-emul-toc</LI>
<LI>Implemented -as cdrecord -V</LI>
<LI>Implemented -as mkisofs options -U, -N, -l, -d, -allow-lowercase</LI>
<LI>
New option -preparer_id, -as mkisofs options -p and -preparer
</LI>
<LI>
New -boot_image specifier emul_type=none|hard_disk|floppy
</LI>
<LI>
New boot_image boot specs partition_offset, partition_hd_cyl, partition_sec_hd
</LI>
<LI>
Made behavior of -as mkisofs with unknown options more similar to original
</LI>
<LI>
New -as mkisofs option -hard-disk-boot, enabled -b without -no-emul-boot
</LI>
<LI>
New -as mkisofs option -e from Fedora genisoimage
</LI>
<LI>
New -as mkisofs options -partition_offset,-partition_hd_cyl,-partition_sec_hd
</LI>
<LI>
DVD-R DL are supported as single-session media.
I.e. only with option -close "on".
</LI>
<!--
<LI>- none -</LI>
-->
@ -536,18 +551,20 @@ libburnia project and the legal intentions of
<A HREF="http://www.fsf.org/"> FSF </A> match completely.
</DT>
<DD>&nbsp;</DD>
<DT>libburn-0.8.3</DT>
<DT>libburn-0.8.7</DT>
<DD>reads and writes data from and to CD, DVD, BD.</DD>
<DD>(founded by Derek Foreman and Ben Jansens,
developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org)</DD>
<DT>libisofs-0.6.33</DT>
<DT>libisofs-0.6.37</DT>
<DD>operates on ISO 9660 filesystem images.</DD>
<DD>(By Vreixo Formoso, Mario Danic and Thomas Schmitt
from team of libburnia-project.org)</DD>
<DT>libisoburn-0.5.8</DT>
<DT>libisoburn-0.6.2</DT>
<DD>coordinates libburn and libisofs, emulates multi-session where needed,
and hosts the original source code of program xorriso.</DD>
<DD>It provides the complete functionality of xorriso via
a C language API.</DD>
<DD>(By Vreixo Formoso and Thomas Schmitt
from team of libburnia-project.org)</DD>
<DD>&nbsp;</DD>
@ -560,8 +577,8 @@ cdrecord and mkisofs.</DT>
<P>
<DL>
<DT><H3>Development snapshot, version 0.5.9 :</H3></DT>
<DD>Bug fixes towards xorriso-0.5.8:
<DT><H3>Development snapshot, version 0.6.3 :</H3></DT>
<DD>Bug fixes towards xorriso-0.6.2:
<UL>
<LI>- none yet -</LI>
<!--
@ -569,7 +586,7 @@ cdrecord and mkisofs.</DT>
-->
</UL>
</DD>
<DD>Enhancements towards stable version 0.5.8:
<DD>Enhancements towards stable version 0.6.2:
<UL>
<LI>- none yet -</LI>
<!--
@ -578,9 +595,9 @@ cdrecord and mkisofs.</DT>
</UL>
</DD>
<DD>&nbsp;</DD>
<DD><A HREF="README_xorriso_devel">README 0.5.9</A>
<DD><A HREF="xorriso_help_devel">xorriso_0.5.9 -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.5.9)</A></DD>
<DD><A HREF="README_xorriso_devel">README 0.6.3</A>
<DD><A HREF="xorriso_help_devel">xorriso_0.6.3 -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.6.3)</A></DD>
<DD>&nbsp;</DD>
<DT>If you want to distribute development versions of xorriso, then use
this tarball which produces static linking between xorriso and the
@ -590,8 +607,8 @@ libburnia libraries.
installation see README)
</DD>
<DD>
<A HREF="xorriso-0.5.9.tar.gz">xorriso-0.5.9.tar.gz</A>
(1630 KB).
<A HREF="xorriso-0.6.3.tar.gz">xorriso-0.6.3.tar.gz</A>
(1670 KB).
</DD>
<DT>A dynamically linked development version of xorriso can be obtained
from repositories of

View File

@ -30,7 +30,7 @@
xorriso is the higher level API of libisoburn which allows to operate all
three libraries by a unified set of commands.
xorriso.h exposes the public functions.
<libisoburn/xorriso.h> exposes the public functions.
Among these functions are direct equivalents of the xorriso interpreter
commands. There are also functions for fundamental management and for
handling event messages.
@ -40,6 +40,12 @@
One should not mix the use of the xorriso API with the use of the lower
level APIs of libburn, libisofs, libisoburn.
--------------------------------------------------------------------------
The following overview is relevant for development but not for usage of
xorriso. An application programmer should read xorriso.h and man xorriso
resp. info xorriso, rather than diving into its source code.
For examples see the functions main() and check_compatibility() below.
--------------------------------------------------------------------------
The xorriso source is divided in two groups:
@ -104,8 +110,8 @@
version of xorriso.
*/
#define Xorriso_req_majoR 0
#define Xorriso_req_minoR 5
#define Xorriso_req_micrO 8
#define Xorriso_req_minoR 6
#define Xorriso_req_micrO 2
static void yell_xorriso()

View File

@ -19,6 +19,10 @@
#define Xorriso_private_includeD yes
/* for uint32_t */
#include <stdint.h>
/** The source code release timestamp */
#include "xorriso_timestamp.h"
#ifndef Xorriso_timestamP
@ -169,6 +173,8 @@ struct XorrisO { /* the global context of xorriso */
char assert_volid[SfileadrL];
char assert_volid_sev[80];
char preparer_id[129];
char publisher[129];
char application_id[129];
char system_id[33];
@ -277,8 +283,8 @@ struct XorrisO { /* the global context of xorriso */
int boot_platform_id;
int patch_isolinux_image; /* bit0= boot-info-table , bit1= not with EFI */
int boot_image_emul; /* 0=no emulation
(1=emulation as hard disk)
(2=emulation as floppy)
1=emulation as hard disk
2=emulation as floppy
*/
off_t boot_image_load_size;
unsigned char boot_id_string[29];
@ -300,6 +306,17 @@ struct XorrisO { /* the global context of xorriso */
area of the image, if no
system_area_disk_path is set.
*/
/* The number of unclaimed 2K blocks before start of partition 1 as of
the MBR in system area.
If not 0 this will cause double volume descriptor sets and double tree.
*/
uint32_t partition_offset;
/* Partition table parameter: 1 to 63, 0= disabled/default */
int partition_secs_per_head;
/* 1 to 255, 0= disabled/default */
int partition_heads_per_cyl;
/* User settable PVD time stamps */
time_t vol_creation_time;
time_t vol_modification_time;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.06.30.181908"
#define Xorriso_timestamP "2010.09.18.210001"

View File

@ -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 5
#define xorriso_libisoburn_req_micro 8
#define xorriso_libisoburn_req_minor 6
#define xorriso_libisoburn_req_micro 2
struct SpotlisT; /* List of intervals with different read qualities */
@ -534,5 +534,11 @@ int Xorriso_set_system_area_path(struct XorrisO *xorriso, char *path,
int Xorriso_set_hidden(struct XorrisO *xorriso, void *in_node, char *path,
int hide_state, int flag);
/* @param flag bit0= avoid library calls
*/
int Xorriso_preparer_string(struct XorrisO *xorriso, char xorriso_id[129],
int flag);
#endif /* Xorrisoburn_includeD */