Compare commits
92 Commits
ZeroSixZer
...
ZeroSixFou
Author | SHA1 | Date | |
---|---|---|---|
3a4a03a4c6 | |||
ba5c0c7be9 | |||
7436e99f5e | |||
d2b130c079 | |||
5deefe053b | |||
5f798e535b | |||
2e7d10b6b7 | |||
d4872c7d83 | |||
32a7b0fd4d | |||
61e803a3a7 | |||
47d6c59b26 | |||
ae886b6154 | |||
b16dfb5cad | |||
caffd6c7da | |||
38e1dc8a22 | |||
25f1eab3ac | |||
b7030ca35b | |||
3ff054d60f | |||
3abcb244c7 | |||
97415e3f63 | |||
2e956586c1 | |||
e7992747e5 | |||
7019473212 | |||
0b175bab97 | |||
ba0871a814 | |||
399cbf6d66 | |||
55c8f1d964 | |||
82941f4c99 | |||
b70f5a9041 | |||
96ee0fae23 | |||
0159052d92 | |||
f46bcf9d5f | |||
e942108ad7 | |||
25460413ce | |||
9b788a2c32 | |||
0b263e8c78 | |||
851dd76849 | |||
5a3acfc41a | |||
147ef216ce | |||
c41c83b279 | |||
68dc026cf9 | |||
6f2aac75ce | |||
3bec7c5c77 | |||
4c81b329ef | |||
daebb44722 | |||
54a493f382 | |||
e4ef8c6582 | |||
d02bd410b3 | |||
7b4bd76d9b | |||
538b70068f | |||
d5583ce58c | |||
be11642977 | |||
4fd78f9049 | |||
d02d8642b9 | |||
b86abe8c65 | |||
41d0d1c03f | |||
4b3a671d27 | |||
aeaa715d8d | |||
641b696764 | |||
c2ff24cf89 | |||
b82abcf210 | |||
252a845f2b | |||
44310ae57e | |||
8d9d900608 | |||
06c1540797 | |||
cc672d525b | |||
8239d082ca | |||
d54efd4bc2 | |||
5af8ad46f4 | |||
9ce2aabe28 | |||
21bd5b5d42 | |||
0e755f48c9 | |||
4e4b789753 | |||
87ebfde08b | |||
4771254d1f | |||
689bcf0168 | |||
fb35f70c6e | |||
3d933149ff | |||
6c939780e8 | |||
d06c6e69f8 | |||
1c0ee8fc32 | |||
3ee02c766d | |||
bb16a5615f | |||
d78b29005d | |||
df685e89ac | |||
1942a636f3 | |||
050871e1f2 | |||
a58ca098b7 | |||
75f864a061 | |||
592424a420 | |||
f2ac46cbc0 | |||
04bd02972d |
@ -3,10 +3,6 @@ Vreixo Formoso <metalpain2002@yahoo.es>
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
libisoburn is Copyright (C) 2007-2010 Vreixo Formoso, Thomas Schmitt
|
||||
xorriso is Copyright (C) 2007-2010 Thomas Schmitt
|
||||
libisofs (if included) is Copyright (C) 2007-2010 Vreixo Formoso, Mario Danic
|
||||
libburn (if included) is Copyright (C) 2002-2006 Derek Foreman, Ben Jansens
|
||||
and Copyright (C) 2006-2010 Mario Danic, Thomas Schmitt
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2
|
||||
|
382
ChangeLog
Normal file
382
ChangeLog
Normal file
@ -0,0 +1,382 @@
|
||||
SVN trunk (to become libisoburn-0.6.6.pl00.tar.gz)
|
||||
===============================================================================
|
||||
libisoburn novelties:
|
||||
- none yet -
|
||||
xorriso novelties:
|
||||
- none yet -
|
||||
|
||||
libisoburn-0.6.4.pl00.tar.gz Tue Oct 26 2010
|
||||
===============================================================================
|
||||
libisoburn novelties:
|
||||
* New API call isoburn_libjte_req()
|
||||
* New API calls isoburn_igopt_attach_jte() and isoburn_igopt_detach_jte()
|
||||
* New API call isoburn_igopt_set_tail_blocks()
|
||||
* New API call isoburn_libjte_req()
|
||||
xorriso novelties:
|
||||
* New option -jigdo
|
||||
* New -as mkisofs options -jigdo-* and -md5-list as of genisoimage
|
||||
* New -as mkisofs options -checksum_algorithm_iso, -checksum_algorithm_template
|
||||
* New bootspecs mips_path= and mipsel_path= for Debian MIPS releases
|
||||
* New -as mkisofs options -mips-boot and -mipsel-boot
|
||||
* New option -append_partition, -as mkisofs -append_partition
|
||||
|
||||
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.
|
||||
|
@ -129,6 +129,7 @@ install-exec-hook:
|
||||
ln -s xorriso "$(DESTDIR)$(bindir)"/osirrox
|
||||
if test -e "$(DESTDIR)$(bindir)"/xorrecord ; then rm "$(DESTDIR)$(bindir)"/xorrecord ; else echo ; fi
|
||||
ln -s xorriso "$(DESTDIR)$(bindir)"/xorrecord
|
||||
$(LIBBURNIA_LDCONFIG_CMD) "$(DESTDIR)$(libdir)" || echo 'NOTE: Explicite dynamic library configuration failed. If needed, configure manually for:' "$(DESTDIR)$(libdir)"
|
||||
|
||||
|
||||
# Alternative to the disabled .PHONY above.
|
||||
@ -183,7 +184,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 \
|
||||
@ -225,12 +228,15 @@ EXTRA_DIST = \
|
||||
version.h.in \
|
||||
doc/comments \
|
||||
doc/doxygen.conf.in \
|
||||
doc/partition_offset.wiki \
|
||||
README \
|
||||
AUTHORS \
|
||||
CONTRIBUTORS \
|
||||
COPYRIGHT \
|
||||
COPYING \
|
||||
INSTALL \
|
||||
ChangeLog \
|
||||
libisoburn/libisoburn.ver \
|
||||
xorriso/changelog.txt \
|
||||
xorriso/xorriso_buildstamp_none.h \
|
||||
xorriso/README_gnu_xorriso \
|
||||
|
45
README
45
README
@ -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.6.0.pl00.tar.gz
|
||||
http://files.libburnia-project.org/releases/libisoburn-0.6.4.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.6.0 :
|
||||
- libburn.so.4 , version libburn-0.8.4 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.34 or higher
|
||||
Dynamic library and compile time header requirements for libisoburn-0.6.4 :
|
||||
- libburn.so.4 , version libburn-0.8.8 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.38 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.6.0.pl00.tar.gz, take it to a directory of your choice
|
||||
Obtain libisoburn-0.6.4.pl00.tar.gz, take it to a directory of your choice
|
||||
and do:
|
||||
|
||||
tar xzf libisoburn-0.6.0.pl00.tar.gz
|
||||
cd libisoburn-0.6.0
|
||||
tar xzf libisoburn-0.6.4.pl00.tar.gz
|
||||
cd libisoburn-0.6.4
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -55,11 +55,18 @@ 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
|
||||
On GNU/Linux it will try to run program ldconfig with the library installation
|
||||
directory as only argument. Failure to do so will not abort installation.
|
||||
One may disable ldconfig by ./configure option --disable-ldconfig-at-install .
|
||||
|
||||
|
||||
By use of a version script, the libisoburn.so library exposes no other function
|
||||
names but those of the API definitions in <libisoburn/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
|
||||
@ -89,6 +96,7 @@ Other deliberate dependency reduction options of ./configure are:
|
||||
--disable-libacl avoid use of ACL functions like acl_to_text()
|
||||
--disable-xattr avoid use of xattr functions like listxattr()
|
||||
--disable-zlib avoid use of zlib functions like compress2()
|
||||
--disable-libjte avoid use of libjte for -jigdo command
|
||||
|
||||
xorriso allows to use external processes as file content filters. This is
|
||||
a potential security risk which may be avoided by ./configure option
|
||||
@ -103,6 +111,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 +136,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
|
||||
|
19
acinclude.m4
19
acinclude.m4
@ -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
|
||||
])
|
||||
|
||||
@ -16,10 +18,12 @@ AC_DEFUN([TARGET_SHIZZLE],
|
||||
|
||||
AC_MSG_CHECKING([target operating system])
|
||||
|
||||
LIBBURNIA_LDCONFIG_CMD="echo 'No ldconfig run performed. If needed, configure manually for:'"
|
||||
case $target in
|
||||
*-*-linux*)
|
||||
ARCH=linux
|
||||
LIBBURN_ARCH_LIBS=
|
||||
LIBBURNIA_LDCONFIG_CMD=ldconfig
|
||||
;;
|
||||
*-*-freebsd*)
|
||||
ARCH=freebsd
|
||||
@ -191,6 +195,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
|
||||
|
65
configure.ac
65
configure.ac
@ -1,4 +1,4 @@
|
||||
AC_INIT([libisoburn], [0.6.0], [http://libburnia-project.org])
|
||||
AC_INIT([libisoburn], [0.6.4], [http://libburnia-project.org])
|
||||
AC_PREREQ([2.50])
|
||||
dnl AC_CONFIG_HEADER([config.h])
|
||||
|
||||
@ -23,7 +23,7 @@ dnl
|
||||
dnl These three are only copies to provide libtool with unused LT_RELEASE
|
||||
ISOBURN_MAJOR_VERSION=0
|
||||
ISOBURN_MINOR_VERSION=6
|
||||
ISOBURN_MICRO_VERSION=0
|
||||
ISOBURN_MICRO_VERSION=4
|
||||
|
||||
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 B00702
|
||||
dnl This is the release version 0.6.0 = libisoburn.so.1.49.0
|
||||
dnl ts B01026
|
||||
dnl This is the release version 0.6.4 = libisoburn.so.1.53.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 = 50 - 49 = 1 . Library name = libisoburn.so.1.49.0
|
||||
dnl SONAME = 54 - 53 = 1 . Library name = libisoburn.so.1.53.0
|
||||
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
|
||||
LT_CURRENT=50
|
||||
LT_AGE=49
|
||||
LT_CURRENT=54
|
||||
LT_AGE=53
|
||||
LT_REVISION=0
|
||||
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||
|
||||
@ -195,6 +195,17 @@ else
|
||||
fi
|
||||
AC_SUBST(ZLIB_DEF)
|
||||
|
||||
dnl ts B00928
|
||||
AC_ARG_ENABLE(libjte,
|
||||
[ --enable-libjte Enable use of libjte by xorriso, default=yes],
|
||||
, enable_libjte=yes)
|
||||
if test "x$enable_libjte" = xyes; then
|
||||
LIBJTE_DEF="-DXorriso_with_libjtE"
|
||||
AC_CHECK_HEADER(libjte/libjte.h, AC_CHECK_LIB(jte, libjte_new, , LIBJTE_DEF= ), LIBJTE_DEF= )
|
||||
else
|
||||
LIBJTE_DEF=
|
||||
fi
|
||||
AC_SUBST(LIBJTE_DEF)
|
||||
|
||||
dnl ts B00107
|
||||
dnl Just for the case that it is necessary to give link option -lcdio not only
|
||||
@ -241,7 +252,7 @@ AC_SUBST(EXTF_SUID_DEF)
|
||||
|
||||
AC_ARG_ENABLE(dvd-obs-64k,
|
||||
[ --enable-dvd-obs-64k 64 KB default size for xorriso DVD/BD writing, default=no],
|
||||
, enable_fifo_odirect=no)
|
||||
, enable_dvd_obs_64=no)
|
||||
if test x$enable_dvd_obs_64k = xyes; then
|
||||
XORRISO_DVD_OBS_64K="-DXorriso_dvd_obs_default_64K"
|
||||
echo "enabled xorriso write size default 64 KB on DVD and BD"
|
||||
@ -251,6 +262,38 @@ 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_ARG_ENABLE(ldconfig-at-install,
|
||||
[ --enable-ldconfig-at-install On GNU/Linux run ldconfig, default=yes],
|
||||
, ldconfig_at_install=yes)
|
||||
if test x$ldconfig_at_install = xyes; then
|
||||
dummy=dummy
|
||||
else
|
||||
LIBBURNIA_LDCONFIG_CMD="echo 'NOTE: ldconfig is disabled. If needed, configure manually for:'"
|
||||
echo "disabled run of ldconfig during installation on GNU/Linux"
|
||||
fi
|
||||
AC_SUBST(LIBBURNIA_LDCONFIG_CMD)
|
||||
|
||||
|
||||
|
||||
AC_CHECK_HEADER(libburn/libburn.h)
|
||||
AC_CHECK_HEADER(libisofs/libisofs.h)
|
||||
@ -259,8 +302,8 @@ AC_CHECK_HEADER(libisofs/libisofs.h)
|
||||
# ------- Visible mark in configure : Start of library check
|
||||
|
||||
dnl Check for proper library versions
|
||||
LIBBURN_REQUIRED=0.8.4
|
||||
LIBISOFS_REQUIRED=0.6.34
|
||||
LIBBURN_REQUIRED=0.8.8
|
||||
LIBISOFS_REQUIRED=0.6.38
|
||||
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
|
||||
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)
|
||||
|
||||
@ -301,7 +344,7 @@ else
|
||||
CFLAGS="$CFLAGS -DDEBUG"
|
||||
fi
|
||||
|
||||
CFLAGS="$CFLAGS $READLINE_DEF $LIBACL_DEF $XATTR_DEF $EXTF_DEF $EXTF_SUID_DEF $ZLIB_DEF $XORRISO_DVD_OBS_64K"
|
||||
CFLAGS="$CFLAGS $READLINE_DEF $LIBACL_DEF $XATTR_DEF $EXTF_DEF $EXTF_SUID_DEF $ZLIB_DEF $LIBJTE_DEF $XORRISO_DVD_OBS_64K"
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
|
41
doc/comments
41
doc/comments
@ -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.
|
||||
|
||||
*/
|
||||
|
@ -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.
|
||||
|
191
doc/partition_offset.wiki
Normal file
191
doc/partition_offset.wiki
Normal file
@ -0,0 +1,191 @@
|
||||
|
||||
The partition offset feature of libisofs can produce ISO 9660 images which bear
|
||||
a quite conventional partition table if copied onto a USB stick. The first
|
||||
partition marks the size of the ISO image but starts at a non-zero address.
|
||||
Thus it marks a small part of the device as unclaimed by partitions and
|
||||
available for storing boot loader code.
|
||||
|
||||
Nevertheless the USB stick is mountable via its overall device file as well as
|
||||
via the partition device file. E.g. on GNU/Linux: /dev/sdb and /dev/sdb1.
|
||||
This is achieved by two distinct sets of meta-data which refer to the same
|
||||
file content.
|
||||
|
||||
The dual-mount feature supports Rock Ridge and eventually Joliet too.
|
||||
It is capable of multi-session.
|
||||
|
||||
Currently only offset 32 kB seems to make sense. Smaller offsets are prohibited
|
||||
by fundamental assumptions of libisofs and libisoburn. Larger offsets would
|
||||
extend the unclaimed area into vital blocks of the ISO image.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Example:
|
||||
|
||||
Testing mountability and ISOLINUX bootability from USB stick and CD.
|
||||
|
||||
Overview:
|
||||
|
||||
The test image was derived from one year old RIPLinux-9.3-non-X.iso which
|
||||
has an isohybrid MBR. Syslinux version seems to be 3.82. That MBR and the file
|
||||
tree from the mounted RIPLinux image was used to build a new ISO image
|
||||
with 16 * 2kB partition offset. Isohybrid MBR patching was done by xorriso.
|
||||
|
||||
Details:
|
||||
|
||||
The first 32 kB of an ISO 9660 image are called System Area and may host any
|
||||
byte pattern. In the case of RIPLinux-9.3-non-X.iso only the first 512 bytes
|
||||
are non-zero. But to avoid any assumptions, all 32 kB get copied here.
|
||||
{{{
|
||||
dd if=RIPLinux-9.3-non-X.iso bs=1K count=32 of=RIPLinux-9.3-non-X.sysarea
|
||||
}}}
|
||||
The files of the image are made accessible for reading
|
||||
{{{
|
||||
mount -o loop RIPLinux-9.3-non-X.iso /mnt
|
||||
}}}
|
||||
|
||||
A new ISO image gets composed. The first three lines of arguments are taken
|
||||
from the prescriptions of ISOLINUX wiki and adapted to the names used in
|
||||
RIPLinux-9.3-non-X.iso.
|
||||
Option -isohybrid-mbr imports the copied System Area and patches the MBR
|
||||
according to rules published by hpa on Syslinux mailing list.
|
||||
Option -partition_offset 16 causes the first partition to start at 2 kB block
|
||||
number 16. It also prepares the image to be mountable by this partition, too.
|
||||
{{{
|
||||
xorriso -as mkisofs \
|
||||
-o new_image.iso \
|
||||
-b boot/isolinux/isolinux.bin -c boot/boot.cat \
|
||||
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||
-isohybrid-mbr RIPLinux-9.3-non-X.sysarea \
|
||||
-partition_offset 16 \
|
||||
/mnt
|
||||
}}}
|
||||
The image was copied onto a USB stick
|
||||
{{{
|
||||
dd if=new_image.iso of=/dev/sdc
|
||||
}}}
|
||||
and plugged into a Debian system.
|
||||
{{{
|
||||
fdisk -lu /dev/sdb
|
||||
}}}
|
||||
yields
|
||||
{{{
|
||||
Device Boot Start End Blocks Id System
|
||||
/dev/sdb1 * 64 119215 59576 17 Hidden HPFS/NTFS
|
||||
}}}
|
||||
|
||||
I can mount /dev/sdb and /dev/sdb1 alike:
|
||||
{{{
|
||||
mount /dev/sdb1 /mnt1
|
||||
mount -o loop /dev/sdb /mnt
|
||||
}}}
|
||||
-o loop avoids failure with "mount: /dev/sdb already mounted or /mnt busy".
|
||||
A comparison by
|
||||
{{{
|
||||
diff -r /mnt /mnt1
|
||||
}}}
|
||||
reports no difference.
|
||||
Human readable files look ok.
|
||||
Test-reading all content by
|
||||
{{{
|
||||
tar cf - /mnt | wc
|
||||
}}}
|
||||
yields a reasonable byte count of 60743680 and no errors.
|
||||
|
||||
The machine boots RIPLinux from this USB stick with no visible problems.
|
||||
It can then mount /dev/sdb as well as /dev/sdb1.
|
||||
The ISO image boots from CD too.
|
||||
|
||||
Mounting the partition can be simulated with an image file on hard disk by
|
||||
cutting off the first partition_offset blocks of 2 KB:
|
||||
{{{
|
||||
dd if=new_image.iso of=partition_image.iso bs=2048 skip=16
|
||||
mount -o loop partition_image.iso /mnt1
|
||||
}}}
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Another test was made with GRUB 2 by downloading
|
||||
{{{
|
||||
bzr branch http://bzr.savannah.gnu.org/r/grub/trunk/grub
|
||||
}}}
|
||||
|
||||
Before building GRUB 2, the file
|
||||
{{{
|
||||
util/grub-mkrescue.in
|
||||
}}}
|
||||
was edited to replace in the options of the xorriso command:
|
||||
{{{
|
||||
--protective-msdos-label
|
||||
}}}
|
||||
by
|
||||
{{{
|
||||
-partition_offset 16 -no-pad --no-emul-toc
|
||||
}}}
|
||||
Then GRUB 2 was built and installed.
|
||||
|
||||
The resulting image from
|
||||
{{{
|
||||
./grub-mkrescue -o image.iso
|
||||
}}}
|
||||
was put onto USB stick. It passed the same tests on Debian
|
||||
as above RIPLinux example. It boots to a GRUB prompt.
|
||||
|
||||
Due to options -no-pad --no-emul-toc the image is about 300 kB smaller than
|
||||
the image produced by original grub-mkrescue. Else it would have grown by
|
||||
about 130 kB.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Open questions:
|
||||
|
||||
- Shall the partition of an isohybrid image be marked bootable ?
|
||||
Currently xorriso keeps the 0x80 mark of an eventually imported MBR
|
||||
resp. the 0x80 mark which xorriso eventually sets by its own MBR
|
||||
preparations.
|
||||
- If not to be marked bootable:
|
||||
What equipment would the partition need to justify having the mark ?
|
||||
|
||||
- I am still puzzled by the cylinder-head-sector ambiguity. How does a reader
|
||||
of the partition table determine the numbers for heads/cylinder and
|
||||
sectors/head ?
|
||||
fdisk tells about my /dev/sdb
|
||||
{{{
|
||||
105 heads, 17 sectors/track, 2193 cylinders, total 3915776 sectors
|
||||
}}}
|
||||
My partiton table rather was computed with 255 heads/cylinder, 63 sectors/head
|
||||
Debian does not mind the difference. (It uses the 32 bit LBAs, i assume.)
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Application:
|
||||
|
||||
The partition offset feature can be controlled by libisofs API call
|
||||
{{{
|
||||
int iso_write_opts_set_part_offset(IsoWriteOpts *opts,
|
||||
uint32_t block_offset_2k,
|
||||
int secs_512_per_head,
|
||||
int heads_per_cyl);
|
||||
}}}
|
||||
resp. by libisoburn calls
|
||||
{{{
|
||||
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);
|
||||
}}}
|
||||
resp. by xorriso options
|
||||
{{{
|
||||
-boot_image any partition_offset=(2kb_block_adr)
|
||||
-boot_image any partition_sec_hd=(number)
|
||||
-boot_image any partition_hd_cyl=(number)
|
||||
-as mkisofs ... -partition_offset (2kb_block_adr) ...
|
||||
}}}
|
||||
|
||||
As stated above, an offset larger than 16 would expose vital parts of the
|
||||
ISO image as unclaimed space. Values smaller than 16 are not accepted.
|
||||
So use either an offset of 16 blocks or keep the feature disabled by
|
||||
offset 0.
|
||||
|
@ -31,17 +31,21 @@
|
||||
#include <time.h>
|
||||
#include <regex.h>
|
||||
|
||||
|
||||
#ifndef Xorriso_standalonE
|
||||
|
||||
#include <libburn/libburn.h>
|
||||
|
||||
#include <libisofs/libisofs.h>
|
||||
#ifdef Xorriso_with_libjtE
|
||||
#include <libjte/libjte.h>
|
||||
#endif
|
||||
|
||||
#else /* ! Xorriso_standalonE */
|
||||
|
||||
#include "../libisofs/libisofs.h"
|
||||
#include "../libburn/libburn.h"
|
||||
#ifdef Xorriso_with_libjtE
|
||||
#include "../libjte/libjte.h"
|
||||
#endif
|
||||
|
||||
#endif /* Xorriso_standalonE */
|
||||
|
||||
@ -69,10 +73,10 @@ static int isoburn_emulate_toc(struct burn_drive *d, int flag);
|
||||
|
||||
int isoburn_initialize(char msg[1024], int flag)
|
||||
{
|
||||
int major, minor, micro, bad_match= 0;
|
||||
int major, minor, micro, bad_match= 0, no_iso_init= 0;
|
||||
|
||||
|
||||
/* First two ugly compile time checks for header version compatibility.
|
||||
/* First the ugly compile time checks for header version compatibility.
|
||||
If everthing matches, then they produce no C code. In case of mismatch,
|
||||
intentionally faulty C code will be inserted.
|
||||
*/
|
||||
@ -108,7 +112,7 @@ int isoburn_initialize(char msg[1024], int flag)
|
||||
|
||||
#ifdef Isoburn_libisofs_dot_h_too_olD
|
||||
LIBISOFS_MISCONFIGURATION = 0;
|
||||
INTENTIONAL_ABORT_OF_COMPILATION__HEADERFILE_libisofs_dot_h_TOO_OLD__SEE_libisoburn_dot_h_AND_burn_wrap_dot_h = 0;
|
||||
INTENTIONAL_ABORT_OF_COMPILATION__HEADERFILE_libisofs_dot_h_TOO_OLD__SEE_libisoburn_dot_h_AND_burn_wrap_dot_c = 0;
|
||||
LIBISOFS_MISCONFIGURATION_ = 0;
|
||||
#endif
|
||||
|
||||
@ -149,15 +153,63 @@ INTENTIONAL_ABORT_OF_COMPILATION__HEADERFILE_libburn_dot_h_TOO_OLD__SEE_libisobu
|
||||
LIBBURN_MISCONFIGURATION_ = 0;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
|
||||
/* The minimum requirement of libisoburn towards the libjte header
|
||||
at compile time is the same as the one of a usable libisfs itowards libjte.
|
||||
So the requirement is defined in libisofs/libisofs.h :
|
||||
iso_libjte_req_major , iso_libjte_req_minor , iso_libjte_req_micro
|
||||
*/
|
||||
/* The indendation is an advise of man gcc to help old compilers ignoring */
|
||||
#if iso_libjte_req_major > LIBJTE_VERSION_MAJOR
|
||||
#define Libisofs_libjte_dot_h_too_olD 1
|
||||
#endif
|
||||
#if iso_libjte_req_major == LIBJTE_VERSION_MAJOR && iso_libjte_req_minor > LIBJTE_VERSION_MINOR
|
||||
#define Libisofs_libjte_dot_h_too_olD 1
|
||||
#endif
|
||||
#if iso_libjte_req_minor == LIBJTE_VERSION_MINOR && iso_libjte_req_micro > LIBJTE_VERSION_MICRO
|
||||
#define Libisofs_libjte_dot_h_too_olD 1
|
||||
#endif
|
||||
|
||||
#ifdef Libisofs_libjte_dot_h_too_olD
|
||||
LIBJTE_MISCONFIGURATION = 0;
|
||||
INTENTIONAL_ABORT_OF_COMPILATION__HEADERFILE_libjte_dot_h_TOO_OLD__SEE_libisofs_dot_h_AND_burn_wrap.c_c = 0;
|
||||
LIBJTE_MISCONFIGURATION_ = 0;
|
||||
#endif
|
||||
|
||||
#endif /* Xorriso_with_libjtE */
|
||||
|
||||
|
||||
/* End of ugly compile time tests (scroll up for explanation) */
|
||||
|
||||
|
||||
|
||||
msg[0]= 0;
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
|
||||
libjte__version(&major, &minor, µ);
|
||||
sprintf(msg + strlen(msg), "libjte-%d.%d.%d ", major, minor, micro);
|
||||
if (libjte__is_compatible(LIBJTE_VERSION_MAJOR, LIBJTE_VERSION_MINOR,
|
||||
LIBJTE_VERSION_MICRO, 0)) {
|
||||
sprintf(msg+strlen(msg), "ok, ");
|
||||
} else {
|
||||
sprintf(msg + strlen(msg),
|
||||
"- TOO OLD -, need at least libjte-%d.%d.%d ,\n",
|
||||
LIBJTE_VERSION_MAJOR, LIBJTE_VERSION_MINOR,
|
||||
LIBJTE_VERSION_MICRO);
|
||||
bad_match= 1;
|
||||
no_iso_init= 1; /* iso_init() will fail anyway */
|
||||
}
|
||||
|
||||
#endif /* Xorriso_with_libjtE */
|
||||
|
||||
if(!no_iso_init) {
|
||||
if(iso_init()<0) {
|
||||
sprintf(msg+strlen(msg), "Cannot initialize libisofs\n");
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
iso_lib_version(&major, &minor, µ);
|
||||
sprintf(msg+strlen(msg), "libisofs-%d.%d.%d ", major, minor, micro);
|
||||
#ifdef iso_lib_header_version_major
|
||||
@ -233,6 +285,20 @@ int isoburn_libburn_req(int *major, int *minor, int *micro)
|
||||
}
|
||||
|
||||
|
||||
/* API @since 0.6.4 */
|
||||
int isoburn_libjte_req(int *major, int *minor, int *micro)
|
||||
{
|
||||
#ifdef Xorriso_with_libjtE
|
||||
*major= LIBJTE_VERSION_MAJOR;
|
||||
*minor= LIBJTE_VERSION_MINOR;
|
||||
*micro= LIBJTE_VERSION_MICRO;
|
||||
#else
|
||||
*major= *minor= *micro= 0;
|
||||
#endif /* ! Xorriso_with_libjtE */
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_set_msgs_submit(int (*msgs_submit)(void *handle, int error_code,
|
||||
char msg_text[], int os_errno,
|
||||
char severity[], int flag),
|
||||
@ -1192,7 +1258,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 +1285,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.
|
||||
*/
|
||||
|
@ -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
|
||||
@ -398,6 +437,12 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
||||
0, "FAILURE", 0);
|
||||
{ret= -2; goto ex;}
|
||||
}
|
||||
if (state != BURN_DISC_BLANK && opts->libjte_handle != NULL) {
|
||||
isoburn_msgs_submit(out_o, 0x00060000,
|
||||
"Jigdo Template Extraction works only on blank target media",
|
||||
0, "FAILURE", 0);
|
||||
{ret= -2; goto ex;}
|
||||
}
|
||||
|
||||
fifo_chunks= 32;
|
||||
if(opts->fifo_size >= 64*1024 && opts->fifo_size <= 1024.0 * 1024.0 * 1024.0){
|
||||
@ -415,16 +460,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);
|
||||
@ -464,11 +502,16 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
||||
opts->vol_creation_time, opts->vol_modification_time,
|
||||
opts->vol_expiration_time, opts->vol_effective_time,
|
||||
opts->vol_uuid);
|
||||
iso_write_opts_attach_jte(wopts, opts->libjte_handle);
|
||||
|
||||
if(opts->no_emul_toc) {
|
||||
ret= isoburn_adjust_target_iso_head(out_o, opts->partition_offset, 0);
|
||||
if(ret <= 0)
|
||||
{ret= -1; goto ex;}
|
||||
if(opts->no_emul_toc || opts->libjte_handle != NULL) {
|
||||
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 +529,22 @@ 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);
|
||||
iso_write_opts_set_tail_blocks(wopts, opts->tail_blocks);
|
||||
for(i= 0; i < 4; i++) {
|
||||
if(opts->appended_partitions[i] == NULL)
|
||||
continue;
|
||||
ret= iso_write_opts_set_partition_img(wopts, i + 1,
|
||||
opts->appended_part_types[i],
|
||||
opts->appended_partitions[i], 0);
|
||||
if(ret < 0) {
|
||||
isoburn_report_iso_error(ret, "Cannot set path for appended partition",
|
||||
0, "FAILURE", 0);
|
||||
{ret= -1; goto ex;}
|
||||
}
|
||||
}
|
||||
|
||||
ret = iso_image_create_burn_source(in_o->image, wopts, &wsrc);
|
||||
if (ret < 0) {
|
||||
@ -836,6 +895,7 @@ int isoburn_ropt_get_size_what(struct isoburn_read_opts *o,
|
||||
int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
||||
{
|
||||
struct isoburn_imgen_opts *o;
|
||||
int i;
|
||||
|
||||
o= (*new_o)= calloc(1, sizeof(struct isoburn_imgen_opts));
|
||||
if(o==NULL) {
|
||||
@ -877,18 +937,32 @@ 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;
|
||||
o->vol_effective_time= 0;
|
||||
o->libjte_handle= NULL;
|
||||
o->tail_blocks= 0;
|
||||
for(i= 0; i < 4; i++) {
|
||||
o->appended_partitions[i]= NULL;
|
||||
o->appended_part_types[i]= 0;
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_igopt_destroy(struct isoburn_imgen_opts **o, int flag)
|
||||
{
|
||||
int i;
|
||||
|
||||
if(*o==NULL)
|
||||
return(0);
|
||||
for(i= 0; i < 4; i++)
|
||||
if((*o)->appended_partitions[i] != NULL)
|
||||
free((*o)->appended_partitions[i]);
|
||||
free(*o);
|
||||
*o= NULL;
|
||||
return(1);
|
||||
@ -1112,7 +1186,7 @@ int isoburn_igopt_set_system_area(struct isoburn_imgen_opts *opts,
|
||||
}
|
||||
memcpy(opts->system_area_data, data, 32768);
|
||||
}
|
||||
opts->system_area_options = options & 3;
|
||||
opts->system_area_options = options & 0xff;
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -1157,3 +1231,101 @@ 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;
|
||||
}
|
||||
|
||||
|
||||
int isoburn_igopt_attach_jte(struct isoburn_imgen_opts *opts,
|
||||
void *libjte_handle)
|
||||
{
|
||||
opts->libjte_handle = libjte_handle;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int isoburn_igopt_detach_jte(struct isoburn_imgen_opts *opts,
|
||||
void **libjte_handle)
|
||||
{
|
||||
if(libjte_handle != NULL)
|
||||
*libjte_handle = opts->libjte_handle;
|
||||
opts->libjte_handle = NULL;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int isoburn_igopt_set_tail_blocks(struct isoburn_imgen_opts *opts,
|
||||
uint32_t num_blocks)
|
||||
{
|
||||
opts->tail_blocks = num_blocks;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int isoburn_igopt_get_tail_blocks(struct isoburn_imgen_opts *opts,
|
||||
uint32_t *num_blocks)
|
||||
{
|
||||
*num_blocks = opts->tail_blocks;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int isoburn_igopt_set_partition_img(struct isoburn_imgen_opts *opts,
|
||||
int partition_number, uint8_t partition_type,
|
||||
char *image_path)
|
||||
{
|
||||
if (partition_number < 1 || partition_number > 4) {
|
||||
isoburn_msgs_submit(NULL, 0x00060000,
|
||||
"Partition number is out of range (1...4)",
|
||||
0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
if (opts->appended_partitions[partition_number - 1] != NULL)
|
||||
free(opts->appended_partitions[partition_number - 1]);
|
||||
opts->appended_partitions[partition_number - 1] = strdup(image_path);
|
||||
if (opts->appended_partitions[partition_number - 1] == NULL)
|
||||
return(-1);
|
||||
opts->appended_part_types[partition_number - 1] = partition_type;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_igopt_get_partition_img(struct isoburn_imgen_opts *opts,
|
||||
int num_entries,
|
||||
uint8_t partition_types[],
|
||||
char *image_paths[])
|
||||
{
|
||||
int i, max_entry= 0;
|
||||
|
||||
for(i= 0; i < num_entries; i++)
|
||||
image_paths[i]= NULL;
|
||||
for(i= 0; i < 4; i++) {
|
||||
if(opts->appended_partitions[i] == NULL)
|
||||
continue;
|
||||
if(i < num_entries) {
|
||||
image_paths[i]= opts->appended_partitions[i];
|
||||
partition_types[i]= opts->appended_part_types[i];
|
||||
}
|
||||
max_entry= i + 1;
|
||||
}
|
||||
return(max_entry);
|
||||
}
|
||||
|
||||
|
@ -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,30 @@ 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;
|
||||
|
||||
/* Parameters and state of Jigdo Template Export environment.
|
||||
*/
|
||||
void *libjte_handle;
|
||||
|
||||
/* A trailing padding of zero bytes which belongs to the image
|
||||
*/
|
||||
uint32_t tail_blocks;
|
||||
|
||||
/* Eventual disk file paths of prepared images which shall be appended
|
||||
after the ISO image and described by partiton table entries in a MBR.
|
||||
*/
|
||||
char *appended_partitions[4];
|
||||
uint8_t appended_part_types[4];
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -555,6 +594,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))
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 38
|
||||
|
||||
/** The minimum version of libburn to be used with this version of libisoburn
|
||||
at compile time.
|
||||
@ -228,8 +232,16 @@ void isoburn_version(int *major, int *minor, int *micro);
|
||||
*/
|
||||
#define isoburn_libburn_req_major 0
|
||||
#define isoburn_libburn_req_minor 8
|
||||
#define isoburn_libburn_req_micro 4
|
||||
#define isoburn_libburn_req_micro 8
|
||||
|
||||
/** The minimum compile time requirements of libisoburn towards libjte are
|
||||
the same as of a suitable libisofs towards libjte.
|
||||
So use these macros from libisofs.h :
|
||||
iso_libjte_req_major
|
||||
iso_libjte_req_minor
|
||||
iso_libjte_req_micro
|
||||
@since 0.6.4
|
||||
*/
|
||||
|
||||
/** The minimum version of libisofs to be used with this version of libisoburn
|
||||
at runtime. This is checked already in isoburn_initialize() which will
|
||||
@ -244,6 +256,17 @@ void isoburn_version(int *major, int *minor, int *micro);
|
||||
int isoburn_libisofs_req(int *major, int *minor, int *micro);
|
||||
|
||||
|
||||
/** The minimum version of libjte to be used with this version of libisoburn
|
||||
at runtime. The use of libjte is optional and depends on configure
|
||||
tests. It can be prevented by ./configure option --disable-libjte .
|
||||
This is checked already in isoburn_initialize() which will refuse on
|
||||
outdated version. So this call is for information purposes after
|
||||
successful startup only.
|
||||
@since 0.6.4
|
||||
*/
|
||||
int isoburn_libjte_req(int *major, int *minor, int *micro);
|
||||
|
||||
|
||||
/** The minimum version of libburn to be used with this version of libisoburn
|
||||
at runtime. This is checked already in isoburn_initialize() which will
|
||||
refuse on outdated version. So this call is for information purposes after
|
||||
@ -264,7 +287,7 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
|
||||
*/
|
||||
#define isoburn_header_version_major 0
|
||||
#define isoburn_header_version_minor 6
|
||||
#define isoburn_header_version_micro 0
|
||||
#define isoburn_header_version_micro 4
|
||||
/** Note:
|
||||
Above version numbers are also recorded in configure.ac because libtool
|
||||
wants them as parameters at build time.
|
||||
@ -1169,7 +1192,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
|
||||
@ -1211,6 +1234,16 @@ int isoburn_igopt_get_scdbackup_tag(struct isoburn_imgen_opts *o,
|
||||
SYSLINUX plus an ISOLINUX boot image (see
|
||||
iso_image_set_boot_image()) and only if not bit0
|
||||
is set.
|
||||
bit2-7= System area type
|
||||
0= with bit0 or bit1: MBR
|
||||
else: unspecified type
|
||||
@since 0.6.4
|
||||
1= MIPS Big Endian Volume Header
|
||||
>>> EXPERIMENTAL:
|
||||
Submit MIPS boot image files as El Torito Boot image to
|
||||
iso_image_set_boot_image() , iso_image_add_boot_image().
|
||||
No El Torito info will be produced with system area type 1.
|
||||
|
||||
@return 1 success, 0 no data to get, <0 failure
|
||||
*/
|
||||
int isoburn_igopt_set_system_area(struct isoburn_imgen_opts *o,
|
||||
@ -1218,20 +1251,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 +1323,106 @@ int isoburn_igopt_get_pvd_times(struct isoburn_imgen_opts *opts,
|
||||
time_t *expiration_time, time_t *effective_time,
|
||||
char uuid[17]);
|
||||
|
||||
|
||||
/** Associate a libjte environment object to the upcomming write run.
|
||||
libjte implements Jigdo Template Extraction as of Steve McIntyre and
|
||||
Richard Atterer.
|
||||
A non-NULL libjte_handle will cause failure to write if libjte was not
|
||||
enabled in libisofs at compile time.
|
||||
@since 0.6.4
|
||||
@param opts
|
||||
The option set to work on
|
||||
@param libjte_handle
|
||||
Pointer to a struct libjte_env e.g. created by libjte_new().
|
||||
It must stay existent from the start of image writing by
|
||||
isoburn_prepare_*() until the write thread has ended.
|
||||
E.g. until libburn indicates the end of its write run.
|
||||
@return 1 success, <=0 failure
|
||||
*/
|
||||
int isoburn_igopt_attach_jte(struct isoburn_imgen_opts *opts,
|
||||
void *libjte_handle);
|
||||
|
||||
/** Remove eventual association to a libjte environment handle.
|
||||
@since 0.6.4
|
||||
@param opts
|
||||
The option set to work on
|
||||
@param libjte_handle
|
||||
If not submitted as NULL, this will return the previously set
|
||||
libjte handle.
|
||||
@return 1 success, <=0 failure
|
||||
*/
|
||||
int isoburn_igopt_detach_jte(struct isoburn_imgen_opts *opts,
|
||||
void **libjte_handle);
|
||||
|
||||
|
||||
/** Set resp. get the number of trailing zero byte blocks to be written by
|
||||
libisofs. The image size counter of the emerging ISO image will include
|
||||
them. Eventual checksums will take them into respect.
|
||||
They will be written immediately before the eventual image checksum area
|
||||
which is at the very end of the image.
|
||||
For a motivation see iso_write_opts_set_tail_blocks() in libisofs.h .
|
||||
@since 0.6.4
|
||||
@param opts
|
||||
The option set to work on
|
||||
@aram num_blocks
|
||||
Number of extra 2 kB blocks to be written by libisofs.
|
||||
@return 1 success, <=0 failure
|
||||
*/
|
||||
int isoburn_igopt_set_tail_blocks(struct isoburn_imgen_opts *opts,
|
||||
uint32_t num_blocks);
|
||||
int isoburn_igopt_get_tail_blocks(struct isoburn_imgen_opts *opts,
|
||||
uint32_t *num_blocks);
|
||||
|
||||
|
||||
/** Cause an arbitrary data file to be appended to the ISO image and to be
|
||||
described by a partition table entry in an MBR at the start of the
|
||||
ISO image.
|
||||
The partition entry will bear the size of the image file rounded up to
|
||||
the next multiple of 2048 bytes.
|
||||
@since 0.6.4
|
||||
@param opts
|
||||
The option set to be manipulated.
|
||||
@param partition_number
|
||||
Depicts the partition table entry which shall describe the
|
||||
appended image. Range 1 to 4.
|
||||
1 will cause the whole ISO image to be unclaimable space before
|
||||
partition 1.
|
||||
@param image_path
|
||||
File address in the local file system.
|
||||
@param image_type
|
||||
The partition type. E.g. FAT12 = 0x01 , FAT16 = 0x06,
|
||||
Linux Native Partition = 0x83. See fdisk command L.
|
||||
@return
|
||||
<=0 = error, 1 = success
|
||||
*/
|
||||
int isoburn_igopt_set_partition_img(struct isoburn_imgen_opts *opts,
|
||||
int partition_number, uint8_t partition_type,
|
||||
char *image_path);
|
||||
|
||||
/** Inquire the current settings made by isoburn_igopt_set_partition_img().
|
||||
@since 0.6.4
|
||||
@param opts
|
||||
The option set to be inquired.
|
||||
@param num_entries
|
||||
Number of array elements in partition_types[] and image_paths[].
|
||||
@param partition_types
|
||||
The partition type associated with the partition. Valid only if
|
||||
image_paths[] of the same index is not NULL.
|
||||
@param image_paths
|
||||
Its elements get filled with either NULL or a pointer to a string
|
||||
with a file address,
|
||||
@return
|
||||
<0 = error
|
||||
0 = no partition image set
|
||||
>0 highest used partition number
|
||||
*/
|
||||
int isoburn_igopt_get_partition_img(struct isoburn_imgen_opts *opts,
|
||||
int num_entries,
|
||||
uint8_t partition_types[],
|
||||
char *image_paths[]);
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/* End of Options for image generation */
|
||||
/* ----------------------------------------------------------------------- */
|
||||
@ -1313,6 +1485,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 +1800,7 @@ void isoburn_finish(void);
|
||||
int isoburn_needs_emulation(struct burn_drive *d);
|
||||
|
||||
|
||||
/* ---------------------------- Test area ----------------------------- */
|
||||
|
||||
/* no tests active, currently */
|
||||
|
||||
|
264
libisoburn/libisoburn.ver
Normal file
264
libisoburn/libisoburn.ver
Normal file
@ -0,0 +1,264 @@
|
||||
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_attach_jte;
|
||||
isoburn_igopt_destroy;
|
||||
isoburn_igopt_detach_jte;
|
||||
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_partition_img;
|
||||
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_get_tail_blocks;
|
||||
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_partition_img;
|
||||
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_igopt_set_tail_blocks;
|
||||
isoburn_initialize;
|
||||
isoburn_is_compatible;
|
||||
isoburn_libburn_req;
|
||||
isoburn_libisofs_req;
|
||||
isoburn_libjte_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_append_partition;
|
||||
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_jigdo;
|
||||
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: *;
|
||||
};
|
||||
|
@ -3,4 +3,13 @@ Ben Jansens
|
||||
Thomas Schmitt
|
||||
Mario Danic
|
||||
Vreixo Formoso Lopes
|
||||
Colin Plumb
|
||||
Tatu Ylonen
|
||||
Jim Kingdon
|
||||
Scott G. Miller
|
||||
Ulrich Drepper
|
||||
Richard Atterer
|
||||
Steve McIntyre
|
||||
George Danchev
|
||||
and possibly others who gave their copyright to Free Software Foundation, Inc.
|
||||
|
||||
|
@ -3,15 +3,22 @@ Ben Jansens <xor@orodu.net>
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
Mario Danic <mario.danic@gmail.com>,
|
||||
Vreixo Formoso <metalpain2002@yahoo.es>
|
||||
Steve McIntyre <steve@einval.com>
|
||||
George Danchev <danchev@spnet.net>
|
||||
|
||||
GNU xorriso is a compilation of
|
||||
GNU xorriso is a compilation of modules from libburnia-project.org :
|
||||
xorriso Copyright (C) 2007-2010 Thomas Schmitt
|
||||
libisoburn Copyright (C) 2007-2010 Vreixo Formoso, Thomas Schmitt
|
||||
libisofs Copyright (C) 2007-2010 Vreixo Formoso, Mario Danic, Thomas Schmitt
|
||||
libburn Copyright (C) 2002-2006 Derek Foreman, Ben Jansens
|
||||
2006-2010 Mario Danic, Thomas Schmitt
|
||||
from libburnia-project.org with a license derived from GPLv2+.
|
||||
Further included is :
|
||||
libjte Copyright (C) 2000-2007 Free Software Foundation, Inc.
|
||||
2004-2010 Steve McIntyre
|
||||
2010-2010 George Danchev, Thomas Schmitt
|
||||
|
||||
Originally they all are licensed directly or indirectly as GPLv2+.
|
||||
GNU xorriso is licensed by the following statement:
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 3
|
||||
|
@ -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.6.0.tar.gz
|
||||
ftp://ftp.gnu.org/gnu/xorriso/xorriso-0.6.4.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.6.0.tar.gz, take it to a directory of your choice and do:
|
||||
Obtain xorriso-0.6.4.tar.gz, take it to a directory of your choice and do:
|
||||
|
||||
tar xzf xorriso-0.6.0.tar.gz
|
||||
cd xorriso-0.6.0
|
||||
tar xzf xorriso-0.6.4.tar.gz
|
||||
cd xorriso-0.6.4
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -99,6 +99,7 @@ Other deliberate dependency reduction options of ./configure are:
|
||||
--disable-libacl avoid use of ACL functions like acl_to_text()
|
||||
--disable-xattr avoid use of xattr functions like listxattr()
|
||||
--disable-zlib avoid use of zlib functions like compress2()
|
||||
this also avoids the use of libjte and option -jigdo.
|
||||
|
||||
xorriso brings own system adapters which allow burning optical media on
|
||||
GNU/Linux, FreeBSD, Solaris.
|
||||
@ -290,9 +291,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.6.0 :
|
||||
- libburn.so.4 , version libburn-0.8.4 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.34 or higher
|
||||
Dynamic library and compile time header requirements for libisoburn-0.6.4 :
|
||||
- libburn.so.4 , version libburn-0.8.8 or higher
|
||||
- libisofs.so.6 , version libisofs-0.6.38 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.
|
||||
@ -417,6 +418,12 @@ of old
|
||||
Libburn. By Derek Foreman <derek@signalmarketing.com> and
|
||||
Ben Jansens <xor@orodu.net>
|
||||
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
|
||||
|
||||
GNU xorriso contains libjte
|
||||
Copyright (C) 2000-2007 Free Software Foundation, Inc.
|
||||
2004-2010 Steve McIntyre
|
||||
2010-2010 George Danchev, Thomas Schmitt
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
This text itself is
|
||||
|
@ -640,6 +640,16 @@ int Xorriso_lst_detach_text(struct Xorriso_lsT *entry, int flag)
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_lst_get_last(struct Xorriso_lsT *entry, struct Xorriso_lsT **last,
|
||||
int flag)
|
||||
{
|
||||
*last= NULL;
|
||||
if(entry != NULL)
|
||||
for((*last)= entry; (*last)->next != NULL; (*last)= (*last)->next);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* --------------------------- End Xorriso_lsT ---------------------------- */
|
||||
|
||||
|
||||
|
@ -130,6 +130,8 @@ char *Xorriso_lst_get_text(struct Xorriso_lsT *entry, int flag);
|
||||
|
||||
int Xorriso_lst_detach_text(struct Xorriso_lsT *entry, int flag);
|
||||
|
||||
int Xorriso_lst_get_last(struct Xorriso_lsT *entry, struct Xorriso_lsT **last,
|
||||
int flag);
|
||||
|
||||
|
||||
int Exclusions_new(struct ExclusionS **o, int flag);
|
||||
|
@ -25,6 +25,21 @@
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef Xorriso_standalonE
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
#include "../libjte/libjte.h"
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
#include <libjte/libjte.h>
|
||||
#endif
|
||||
|
||||
#endif /* ! Xorriso_standalonE */
|
||||
|
||||
#include "xorriso.h"
|
||||
#include "xorriso_private.h"
|
||||
@ -125,6 +140,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,11 +222,25 @@ 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;
|
||||
for(i= 0; i < 4; i++) {
|
||||
m->appended_partitions[i][0]= 0;
|
||||
m->appended_part_types[i]= 0;
|
||||
}
|
||||
m->vol_creation_time= 0;
|
||||
m->vol_modification_time= 0;
|
||||
m->vol_expiration_time= 0;
|
||||
m->vol_effective_time= 0;
|
||||
m->vol_uuid[0]= 0;
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
m->libjte_handle= NULL;
|
||||
#endif
|
||||
|
||||
m->jigdo_params= NULL;
|
||||
m->jigdo_values= NULL;
|
||||
m->loaded_boot_bin_lba= 0;
|
||||
m->loaded_boot_cat_path[0]= 0;
|
||||
m->allow_graft_points= 0;
|
||||
@ -352,6 +382,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:;
|
||||
@ -412,6 +443,13 @@ int Xorriso_destroy(struct XorrisO **xorriso, int flag)
|
||||
Xorriso_destroy_hln_array(m, 0);
|
||||
Xorriso_destroy_di_array(m, 0);
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
if(m->libjte_handle)
|
||||
libjte_destroy(&(m->libjte_handle));
|
||||
#endif
|
||||
|
||||
Xorriso_lst_destroy_all(&(m->jigdo_params), 0);
|
||||
Xorriso_lst_destroy_all(&(m->jigdo_values), 0);
|
||||
Xorriso_detach_libraries(m, flag&1);
|
||||
|
||||
free((char *) m);
|
||||
|
@ -8235,7 +8235,7 @@ xorriso/configure_ac.txt
|
||||
xorriso/xorriso_timestamp.h
|
||||
Version leap to libisoburn-0.6.0
|
||||
|
||||
02 Jul 2010 []
|
||||
02 Jul 2010 [3319]
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
@ -8253,13 +8253,811 @@ New -as mkisofs option --boot-catalog-hide
|
||||
Implemented -as mkisofs options -dir-mode, -file-mode
|
||||
Implemented -as mkisofs options -abstract, -biblio, -copyright
|
||||
|
||||
------------------------------------ cycle - xorriso-0.5.9 -
|
||||
------------------------------------ cycle - xorriso-0.5.9 -
|
||||
|
||||
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 [3388]
|
||||
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
|
||||
|
||||
2010.09.19.134042 [3389]
|
||||
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.3
|
||||
|
||||
2010.09.19.135354 [3390]
|
||||
libisoburn/isoburn.c
|
||||
Fixed a bug with uninitialized variable introduced by rev 3364
|
||||
|
||||
19 Sep 2010 [3391]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------------ cycle - xorriso-0.6.3 - 2010.09.19.135354
|
||||
|
||||
|
||||
19 Sep 2010 [3392]
|
||||
svn move -m Promoted branch to tag
|
||||
http://svn.libburnia-project.org/libisoburn/branches/ZeroSixTwo
|
||||
http://svn.libburnia-project.org/libisoburn/tags/ZeroSixTwo
|
||||
|
||||
2010.09.21.142424 [3393]
|
||||
acinclude.m4
|
||||
configure.ac
|
||||
Makefile.am
|
||||
On Linux: Run ldconfig during make install,if not --disable-ldconfig-at-install
|
||||
|
||||
2010.09.21.150325 [3394]
|
||||
acinclude.m4
|
||||
configure.ac
|
||||
Makefile.am
|
||||
On Linux: More tolerance towards failures of ldconfig
|
||||
|
||||
22 Sep 2009 [3396]
|
||||
README
|
||||
Mentioned --disable-ldconfig-at-install
|
||||
|
||||
2010.09.23.135551 [3400]
|
||||
Makefile.am
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
+ doc/partition_offset.wiki
|
||||
Explaining the partition offset feature
|
||||
|
||||
2010.09.24.110727 [3406]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
Requiring libburn-0.8.7 now
|
||||
|
||||
2010.09.24.110841 [3407]
|
||||
xorriso/drive_mgt.c
|
||||
Reporting BD spare area info with -list_formats
|
||||
|
||||
29 Sep 2010 [3409]
|
||||
doc/partition_offset.wiki
|
||||
Updated partition offset wike about GRUB experiment
|
||||
|
||||
2010.09.29.091541 [3410]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/isoburn.h
|
||||
libisoburn/isoburn.c
|
||||
libisoburn/libisoburn.ver
|
||||
ChangeLog
|
||||
New API calls isoburn_igopt_attach_jte() and isoburn_igopt_detach_jte()
|
||||
|
||||
2010.09.29.092348 [3411]
|
||||
configure.ac
|
||||
xorriso/xorriso.h
|
||||
libisoburn/libisoburn.ver
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/base_obj.c
|
||||
xorriso/parse_exec.c
|
||||
xorriso/opts_i_o.c
|
||||
xorriso/emulators.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/write_run.c
|
||||
ChangeLog
|
||||
New -as mkisofs options -jigdo-* and -md5-list as of genisoimage
|
||||
|
||||
2010.09.29.092537 [3412]
|
||||
xorriso/configure_ac.txt
|
||||
Enabled use of libjte for GNU xorriso
|
||||
|
||||
2010.09.29.124423 [3413]
|
||||
xorriso/write_run.c
|
||||
Avoided trailing 64 kB alignment with -compliance no_emul_toc
|
||||
|
||||
2010.09.29.152827 [3414]
|
||||
xorriso/parse_exec.c
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/emulators.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
xorriso/convert_man_to_html.sh
|
||||
ChangeLog
|
||||
New option -jigdo
|
||||
|
||||
2010.09.29.164121 [3415]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/base_obj.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/text_io.c
|
||||
xorriso/aux_objects.h
|
||||
xorriso/aux_objects.c
|
||||
Enabled -status -jigdo
|
||||
|
||||
2010.09.30.074208 [3416]
|
||||
xorriso/lib_mgt.c
|
||||
Switched from old libjte API names to new ones
|
||||
|
||||
2010.10.01.190235 [3417]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/base_obj.c
|
||||
Made two non-public parameters independent of Xorriso_with_libjtE
|
||||
|
||||
------------------------------------ cycle - xorriso-0.6.3 - 2010.10.01.190235
|
||||
* New API calls isoburn_igopt_attach_jte() and isoburn_igopt_detach_jte()
|
||||
* New -as mkisofs options -jigdo-* and -md5-list as of genisoimage
|
||||
* New option -jigdo
|
||||
|
||||
|
||||
2010.10.02.121147 [3418]
|
||||
xorriso/emulators.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New -as mkisofs option -jigdo-template-compress
|
||||
|
||||
2010.10.02.150240 [3419]
|
||||
xorriso/lib_mgt.c
|
||||
Added a blank to xorriso Preparer Id string
|
||||
|
||||
2010.10.02.164306 [3420]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
Requiring libisofs-0.6.37 now
|
||||
|
||||
2010.10.02.210023 [3421]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/isoburn.h
|
||||
libisoburn/isoburn.c
|
||||
libisoburn/libisoburn.ver
|
||||
ChangeLog
|
||||
New API call isoburn_igopt_set_tail_blocks()
|
||||
|
||||
2010.10.02.210305 [3422]
|
||||
xorriso/write_run.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Letting libisofs do the padding with -jigdo, rather than disabling padding
|
||||
|
||||
2010.10.03.082304 [3423]
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/emulators.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New -as mkisofs options -checksum_algorithm_iso, -checksum_algorithm_template
|
||||
|
||||
03 Oct 2010 [3424]
|
||||
ChangeLog
|
||||
Forgot to commit ChangeLog
|
||||
|
||||
2010.10.03.171305 [3425]
|
||||
xorriso/lib_mgt.c
|
||||
Reacting with FATAL event on failure to create libjte_handle
|
||||
|
||||
03 Oct 2010 [3426]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Corrected xorriso docs about meaning of -jigdo-map and .md5 file addresses
|
||||
|
||||
------------------------------------ cycle - xorriso-0.6.3 - 2010.10.03.171305
|
||||
* New API call isoburn_igopt_set_tail_blocks()
|
||||
* New -as mkisofs options -checksum_algorithm_iso, -checksum_algorithm_template
|
||||
|
||||
|
||||
2010.10.04.112234 [3427]
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/emulators.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/write_run.c
|
||||
Enabled use of libjte message list
|
||||
|
||||
2010.10.04.113140 [3428]
|
||||
xorriso/lib_mgt.c
|
||||
Silenced compiler warning about unused variable
|
||||
|
||||
2010.10.04.155110 [3429]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/burn_wrap.c
|
||||
libisoburn/libisoburn.ver
|
||||
ChangeLog
|
||||
Tests for version of libjte, new API call isoburn_libjte_req()
|
||||
|
||||
2010.10.04.155226 [3430]
|
||||
xorriso/lib_mgt.c
|
||||
Reporting libjte version with option -version
|
||||
|
||||
2010.10.05.180016 [3431]
|
||||
xorriso/iso_manip.c
|
||||
Fixed a potential SIGSEGV by pointer offset -1. Detected by valgrind.
|
||||
|
||||
2010.10.06.162230 [3432]
|
||||
xorriso/write_run.c
|
||||
Fixed a theoretically possible race condition of burn end and ISO generator end
|
||||
|
||||
2010.10.07.114916 [3433]
|
||||
libisoburn/burn_wrap.c
|
||||
xorriso/base_obj.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/write_run.c
|
||||
Preparing for GNU xorriso to include libjte source
|
||||
|
||||
7 Oct 2010 [3434]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Enhanced xorriso docs about meaning of .md5 file addresses
|
||||
|
||||
2010.10.07.180935 [3435]
|
||||
libisoburn/burn_wrap.c
|
||||
xorriso/base_obj.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/write_run.c
|
||||
Corrected compile problems introduced with rev 3433
|
||||
|
||||
2010.10.08.093338 [3436]
|
||||
libisoburn/burn_wrap.c
|
||||
Fixed inability to compile without enabled libjte. Introduced by rev 3429.
|
||||
|
||||
8 Oct 2010 [3437]
|
||||
COPYRIGHT
|
||||
Removed unrelated copyright statements from libisoburn COPYRIGHT
|
||||
|
||||
2010.10.12.103027 [3438]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/isoburn.c
|
||||
Allowed to set System Area type via isoburn_igopt_set_system_area()
|
||||
|
||||
2010.10.12.103157 [3439]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/emulators.c
|
||||
Provisorily: -boot_image mips_path= , -as mkisofs -mips-boot. No Eltorito then.
|
||||
|
||||
2010.10.12.183125 [3440]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/emulators.c
|
||||
xorriso/iso_img.c
|
||||
Lifted the ban to combine MIPS Big Endian boot with El Torito
|
||||
|
||||
2010.10.13.170641 [3441]
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/emulators.c
|
||||
xorriso/iso_img.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Polished and documented MIPS booting option
|
||||
|
||||
2010.10.15.112050 [3442]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/emulators.c
|
||||
xorriso/iso_img.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
-boot_image mipsel_path= , -as mkisofs -mipsel-boot.
|
||||
|
||||
2010.10.15.121533 [3443]
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
xorriso/xorriso_makefile_am.txt
|
||||
xorriso/COPYRIGHT_gnu_xorriso
|
||||
xorriso/README_gnu_xorriso
|
||||
xorriso/AUTHORS_gnu_xorriso
|
||||
xorriso/xorriso_eng.html
|
||||
Included libjte in GNU xorriso
|
||||
|
||||
2010.10.15.125440 [3444]
|
||||
libisoburn/burn_wrap.c
|
||||
xorriso/base_obj.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/configure_ac.txt
|
||||
United macro Xorriso_jte_standalonE with macro Xorriso_standalonE
|
||||
|
||||
------------------------------------ cycle - xorriso-0.6.3 - 2010.10.15.125440
|
||||
* New API call isoburn_libjte_req()
|
||||
* New bootspecs mips_path= and mipsel_path= for Debian MIPS releases
|
||||
* New -as mkisofs options -mips-boot and -mipsel-boot
|
||||
|
||||
|
||||
2010.10.18.155353 [3446]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/isoburn.h
|
||||
libisoburn/isoburn.c
|
||||
libisoburn/libisoburn.ver
|
||||
New API calls isoburn_igopt_set_partition_img, isoburn_igopt_get_partition_img
|
||||
|
||||
2010.10.18.160132 [3448]
|
||||
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/emulators.c
|
||||
xorriso/iso_img.c
|
||||
xorriso/write_run.c
|
||||
libisoburn/libisoburn.ver
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New option -append_partition, -as mkisofs -append_partition
|
||||
|
||||
------------------------------------ cycle - xorriso-0.6.3 - 2010.10.18.160132
|
||||
* New option -append_partition, -as mkisofs -append_partition
|
||||
|
||||
|
||||
2010.10.19.104814 [3449]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Minor adjustments
|
||||
|
||||
------------------------------------ cycle - xorriso-0.6.3 - 2010.10.19.104814
|
||||
|
||||
2010.10.19.170704 [3451]
|
||||
ChangeLog
|
||||
xorriso/write_run.c
|
||||
Avoiding potential endless write pacifier loop. Introduced with rev 3432.
|
||||
|
||||
2010.10.20.075221 [3452]
|
||||
xorriso/write_run.c
|
||||
Cancelling libisofs write thread in case of early libburn end
|
||||
|
||||
2010.10.20.170430 [3461]
|
||||
xorriso/configure_ac.txt
|
||||
Version leap to libburn-0.8.9
|
||||
|
||||
2010.10.20.170546 [3462]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
Requiring libburn-0.8.8 now
|
||||
|
||||
2010.10.21.180343 [3463]
|
||||
xorriso/drive_mgt.c
|
||||
Corrected -check_media handling of last track on BD-R resp. BD-ROM
|
||||
|
||||
2010.10.23.162213 [3464]
|
||||
configure.ac
|
||||
libisoburn/libisoburn.h
|
||||
Requiring libisofs-0.6.38 now
|
||||
|
||||
2010.10.23.162302 [3465]
|
||||
xorriso/configure_ac.txt
|
||||
Adapted GNU xorriso to version leap libisofs-0.6.39
|
||||
|
||||
26 Oct 2010 [3466]
|
||||
svn copy -m Branching for libisoburn release 0.6.4
|
||||
http://svn.libburnia-project.org/libisoburn/trunk
|
||||
http://svn.libburnia-project.org/libisoburn/branches/ZeroSixFour
|
||||
|
||||
2010.10.26.100001 [3467]
|
||||
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
|
||||
|
||||
26 Oct 2010 []
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
----------------------------------- release - xorriso-0.6.4 - 2010.10.26.100001
|
||||
* New API call isoburn_libjte_req()
|
||||
* New API calls isoburn_igopt_attach_jte() and isoburn_igopt_detach_jte()
|
||||
* New API call isoburn_igopt_set_tail_blocks()
|
||||
* New API call isoburn_libjte_req()
|
||||
* New option -jigdo
|
||||
* New -as mkisofs options -jigdo-* and -md5-list as of genisoimage
|
||||
* New -as mkisofs options -checksum_algorithm_iso, -checksum_algorithm_template
|
||||
* New bootspecs mips_path= and mipsel_path= for Debian MIPS releases
|
||||
* New -as mkisofs options -mips-boot and -mipsel-boot
|
||||
* New option -append_partition, -as mkisofs -append_partition
|
||||
|
||||
------------------------------------ cycle - xorriso-0.6.5 -
|
||||
------------------------------------ cycle - xorriso-0.6.5 -
|
||||
|
||||
|
||||
**********************************************************************
|
||||
Important: When adding a public API function then add its name to file
|
||||
libisoburn/libisoburn.ver
|
||||
**********************************************************************
|
||||
|
||||
===============================================================================
|
||||
TODO
|
||||
===============================================================================
|
||||
|
||||
|
||||
- If libburn ends reading before libisofs is done and without canceling
|
||||
burn source, then xorriso pacifier finally has to give up waiting
|
||||
- Does isoburn_cancel_prepared_write() guarantee wait until it is done ?
|
||||
- Does ecma119.c:bs_cancel() guarantee this ?
|
||||
|
||||
|
||||
/sbin/mkfs.msdos -n Bla -C /dvdbuffer/test.fat 8192
|
||||
|
||||
dd if=/dvdbuffer/RIPLinux-9.3-non-X.iso bs=1K count=32 \
|
||||
of=/dvdbuffer/RIPLinux-9.3-non-X.sysarea
|
||||
|
||||
mount -o loop /dvdbuffer/RIPLinux-9.3-non-X.iso /mnt
|
||||
|
||||
../jte/bin/jigdo-gen-md5-list /mnt >/dvdbuffer/riplinux-9.3-non-X.md5
|
||||
|
||||
r -as mkisofs \
|
||||
-o /dvdbuffer/riplinux-9.3-non-X.iso \
|
||||
-b boot/isolinux/isolinux.bin -c boot/boot.cat \
|
||||
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||
-isohybrid-mbr /dvdbuffer/RIPLinux-9.3-non-X.sysarea \
|
||||
-partition_offset 16 \
|
||||
-append_partition 2 0x01 /dvdbuffer/test.fat \
|
||||
\
|
||||
-R -V 'RIPLinux_9_3' \
|
||||
-jigdo-template-compress gzip \
|
||||
-checksum_algorithm_iso md5,sha1,sha256,sha512 \
|
||||
-checksum_algorithm_template all \
|
||||
-jigdo-jigdo /dvdbuffer/riplinux-9.3-non-X.jigdo \
|
||||
-jigdo-template /dvdbuffer/riplinux-9.3-non-X.template \
|
||||
-jigdo-map Debian=/mnt/ \
|
||||
-jigdo-exclude boot/syslinux \
|
||||
-md5-list /dvdbuffer/riplinux-9.3-non-X.md5 \
|
||||
-jigdo-min-file-size 0 \
|
||||
-J -joliet-long -cache-inodes \
|
||||
\
|
||||
/mnt
|
||||
|
||||
On debian:
|
||||
$ jigit-mkimage \
|
||||
-t ~/test/test_jte.template \
|
||||
-j ~/test/test_jte.jigdo \
|
||||
-m Debian=/home/thomas/projekte/libburn_dir/cdrskin-0.7.2/ \
|
||||
-o ~/test/test_jte.rebuilt
|
||||
|
||||
|
||||
|
||||
r -as mkisofs \
|
||||
-jigdo-template-compress gzip \
|
||||
-checksum_algorithm_iso md5,sha1,sha256,sha512 \
|
||||
-checksum_algorithm_template md5,sha512 \
|
||||
-R -V 'Debian 5.0.6 amd64 Bin-1' \
|
||||
-o /home/test/test_jte.iso \
|
||||
-jigdo-jigdo /home/test/test_jte.jigdo \
|
||||
-jigdo-template /home/test/test_jte.template \
|
||||
-jigdo-map Debian=/home/test/cdrskin-0.7.2/ \
|
||||
-jigdo-exclude xorriso-0.5.6 \
|
||||
-md5-list /home/test/test_jte.md5 \
|
||||
-jigdo-min-file-size 0 \
|
||||
-jigdo-exclude 'README*' \
|
||||
-jigdo-exclude /doc/ \
|
||||
-jigdo-exclude /md5sum.txt \
|
||||
-jigdo-exclude /.disk/ \
|
||||
-jigdo-exclude /pics/ \
|
||||
-jigdo-exclude 'Release*' \
|
||||
-jigdo-exclude 'Packages*' \
|
||||
-jigdo-exclude 'Sources*' \
|
||||
-J -J -joliet-long -cache-inodes \
|
||||
-b libburn/libdax_audioxtr.h \
|
||||
-c libburn/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||
/home/test/xorriso-0.5.6 \
|
||||
/home/test/cdrskin-0.7.2 \
|
||||
|
||||
? jte-develop/bin/jigdo-gen-md5-list
|
||||
? jte-develop/doc/jigdo-gen-md5-list.1
|
||||
|
||||
|
||||
- Should iso_write() buffer up to full 2k blocks ?
|
||||
Currently it forwards many small chunks to .template.
|
||||
|
||||
|
||||
------------------------------------------------- For Debian:
|
||||
|
||||
- Need specs for the exotic boot options
|
||||
-mips-boot is implemented
|
||||
- recognize at load time and build boot file list
|
||||
-mipsel-boot is implemented
|
||||
- recognize at load time and build boot file list
|
||||
-sparc-boot
|
||||
|
||||
|
||||
# Make the firmware volume.
|
||||
tmpdir="$(mktemp -d)"
|
||||
firmware_volume_file="$tmpdir/fat"
|
||||
mkfs.msdos -n "$firmware_volume_name" -C "$firmware_volume_file" \
|
||||
$(expr $firmware_volume_size_M \* 1024)
|
||||
|
||||
|
||||
------------------------------------------------- For Solaris
|
||||
|
||||
(The mount command needs to be adapted to Solaris.
|
||||
@ -8294,19 +9092,39 @@ Implemented -as mkisofs options -abstract, -biblio, -copyright
|
||||
|
||||
- try
|
||||
qemu -m 256 -cdrom /tmp/R.iso -boot d
|
||||
>>> does not do anything recognizable. Not even fails.
|
||||
|
||||
------------------------------------------------- bugs
|
||||
|
||||
- Make first pass of -as mkisofs fool proof.
|
||||
Currently it would accept arguments of unhandled options as options.
|
||||
- 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
|
||||
|
||||
- one-time delimiter which overrides -list_delimiter for only the
|
||||
next command.
|
||||
E.g. for --back_to_xorriso in emulations
|
||||
|
||||
- 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 ofsset, though.
|
||||
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
|
||||
|
||||
@ -8336,8 +9154,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.
|
||||
@ -8352,6 +9168,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
|
||||
@ -8439,21 +9259,6 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
|
||||
very slow with high workload.
|
||||
Some hash accelerator would be nice.
|
||||
|
||||
- isohybrid
|
||||
- as of syslinux-3.81pre10/utils/isohybrid.in :
|
||||
- new signature {0xf7, 0xe3, 0xef, 0x0d}
|
||||
- read $id from previous session: byte 440, 4 bytes,
|
||||
if not {0,0,0,0} write the same byte string to new MBR byte 440
|
||||
- user adjustable parameters
|
||||
- $pentry {1..4} = 1
|
||||
- $fstype {0...255} = 0x17
|
||||
- $offset {0...64} = 0
|
||||
- $h {1...256} = 64
|
||||
- $s {1...63} = 32
|
||||
- $id {0...0xffffffff]
|
||||
- $hd0 {0...2} = 0
|
||||
- $partok {0...1} = 0
|
||||
|
||||
|
||||
- A dummy option in IsoWriteOpts which causes iso_image_create_burn_source()
|
||||
to end before actually data get written. (For -print_size)
|
||||
|
@ -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);
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Copyright (c) 2007 - 2010 Thomas Schmitt <scdbackup@gmx.net>
|
||||
# Provided under GPL version 2 or later.
|
||||
|
||||
AC_INIT([xorriso], [0.6.0], [http://libburnia-project.org])
|
||||
AC_INIT([xorriso], [0.6.4], [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=9
|
||||
AC_SUBST(BURN_MAJOR_VERSION)
|
||||
AC_SUBST(BURN_MINOR_VERSION)
|
||||
AC_SUBST(BURN_MICRO_VERSION)
|
||||
|
||||
LIBISOFS_MAJOR_VERSION=0
|
||||
LIBISOFS_MINOR_VERSION=6
|
||||
LIBISOFS_MICRO_VERSION=35
|
||||
LIBISOFS_MICRO_VERSION=39
|
||||
AC_SUBST(LIBISOFS_MAJOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MINOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MICRO_VERSION)
|
||||
@ -215,7 +215,8 @@ then
|
||||
fi
|
||||
|
||||
|
||||
AH_TEMPLATE([Libisofs_with_zliB], [Define to use compression via libz])
|
||||
AH_TEMPLATE([Libisofs_with_zliB], [Define to use compression via zlib])
|
||||
AH_TEMPLATE([LIBJTE_WITH_ZLIB], [Allow libjte to use zlib])
|
||||
AC_ARG_ENABLE(zlib,
|
||||
[ --enable-zlib Enable use of zlib by libisofs, default=yes],
|
||||
, enable_zlib=yes)
|
||||
@ -225,14 +226,68 @@ dnl If not, erase this macro which would enable use of compress2() and others.
|
||||
dnl Linking fails on SuSE 9.0 because zlib has compress2() but lacks
|
||||
dnl compressBound(). So compressBound is the more modern thing to test.
|
||||
dnl The empty parameter after "compressBound" causes -lz.
|
||||
ZLIB_DEF="-DLibisofs_with_zliB"
|
||||
ZLIB_DEF=yes
|
||||
AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, compressBound, , ZLIB_DEF= ), ZLIB_DEF= )
|
||||
else
|
||||
ZLIB_DEF=
|
||||
fi
|
||||
if test x$ZLIB_DEF = x-DLibisofs_with_zliB
|
||||
if test x$ZLIB_DEF = xyes
|
||||
then
|
||||
AC_DEFINE([Libisofs_with_zliB], [])
|
||||
AC_DEFINE([LIBJTE_WITH_ZLIB], [])
|
||||
fi
|
||||
|
||||
|
||||
# libjte source is included in GNU xorriso. Enable it if zlib is enabled.
|
||||
AH_TEMPLATE([Xorriso_with_libjtE],
|
||||
[Define to use Jigdo Template Extraction via libjte])
|
||||
AH_TEMPLATE([Libisofs_with_libjtE],
|
||||
[Define to use Jigdo Template Extraction via libjte])
|
||||
if test x$ZLIB_DEF = xyes
|
||||
then
|
||||
AC_DEFINE([Xorriso_with_libjtE], [])
|
||||
AC_DEFINE([Libisofs_with_libjtE], [])
|
||||
LIBJTE_DEF=yes
|
||||
echo "enabled built-in libjte"
|
||||
else
|
||||
LIBJTE_DEF=
|
||||
echo "disabled libjte because zlib not enabled or not available"
|
||||
fi
|
||||
|
||||
|
||||
AH_TEMPLATE([THREADED_CHECKSUMS],
|
||||
[Define to use multi-threading in built-in libjte])
|
||||
AC_ARG_ENABLE(jtethreads,
|
||||
[ --enable-jtethreads Enable multi-threading in libjte, default=yes],
|
||||
, enable_jtethreads=yes)
|
||||
if test x$LIBJTE_DEF = xyes
|
||||
then
|
||||
if test "x$enable_jtethreads" = xyes; then
|
||||
AC_DEFINE([THREADED_CHECKSUMS], [])
|
||||
echo "enabled multi-threading in libjte"
|
||||
else
|
||||
echo "disabled multi-threading in libjte"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
AH_TEMPLATE([LIBJTE_WITH_LIBBZ2],
|
||||
[Define to use libbz2 by built-in libjte])
|
||||
AC_ARG_ENABLE(libbz2,
|
||||
[ --enable-libbz2 Enable use of libbz2 by libjte, default=yes],
|
||||
, enable_libbz2=yes)
|
||||
if test "x$enable_libbz2" = xyes -a x$LIBJTE_DEF = xyes ; then
|
||||
dnl Check whether there is the header for libbz2.
|
||||
BZIP2_DEF=yes
|
||||
AC_CHECK_HEADER(bzlib.h, AC_CHECK_LIB(bz2, BZ2_bzCompressInit, , BZIP2_DEF= ), BZIP2_DEF= )
|
||||
else
|
||||
BZIP2_DEF=
|
||||
fi
|
||||
if test x$BZIP2_DEF = xyes
|
||||
then
|
||||
AC_DEFINE([LIBJTE_WITH_LIBBZ2], [])
|
||||
BZIP2_DEF="-DLIBJTE_WITH_LIBBZ2"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -72,6 +72,7 @@ then
|
||||
-e 's/<b>Character sets:<\/b>/\ <BR><b>Character sets:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Exception processing:<\/b>/\ <BR><b>Exception processing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>El Torito bootable ISO images:<\/b>/\ <BR><b>El Torito bootable ISO images:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Jigdo Template Extraction:<\/b>/\ <BR><b>Jigdo Template Extraction:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Dialog mode control:<\/b>/\ <BR><b>Dialog mode control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Drive and media related inquiry actions:<\/b>/\ <BR><b>Drive and media related inquiry actions:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Navigation in ISO image/\ <BR><b>Navigation in ISO image/' \
|
||||
|
@ -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 */
|
||||
@ -1147,7 +1157,7 @@ int Xorriso_tell_media_space(struct XorrisO *xorriso,
|
||||
*/
|
||||
int Xorriso_list_formats(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, i, status, num_formats, profile_no, type;
|
||||
int ret, i, status, num_formats, profile_no, type, alloc_blocks, free_blocks;
|
||||
off_t size;
|
||||
unsigned dummy;
|
||||
char status_text[80], profile_name[90], *respt;
|
||||
@ -1196,6 +1206,12 @@ int Xorriso_list_formats(struct XorrisO *xorriso, int flag)
|
||||
sprintf(status_text, "illegal status according to MMC-5");
|
||||
sprintf(respt, "Format status: %s\n", status_text);
|
||||
Xorriso_result(xorriso,0);
|
||||
ret= burn_disc_get_bd_spare_info(drive, &alloc_blocks, &free_blocks, 0);
|
||||
if(ret == 1) {
|
||||
sprintf(respt, "BD Spare Area: %d blocks consumed, %d blocks available\n",
|
||||
alloc_blocks - free_blocks, free_blocks);
|
||||
Xorriso_result(xorriso,0);
|
||||
}
|
||||
|
||||
for (i= 0; i < num_formats; i++) {
|
||||
ret= burn_disc_get_format_descr(drive, i, &type, &size, &dummy);
|
||||
@ -1993,8 +2009,8 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
int media_blocks= 0, read_chunk= 16, ret, mode, start_lba= 0;
|
||||
int blocks, os_errno, i, j, last_track_end= -1, track_blocks, track_lba;
|
||||
int num_sessions, num_tracks, declare_untested= 0, md5_start;
|
||||
int read_capacity= -1, end_lba, hret, count, quality;
|
||||
char *toc_info= NULL;
|
||||
int read_capacity= -1, end_lba, hret, count, quality, profile_no;
|
||||
char *toc_info= NULL, profile_name[80];
|
||||
struct burn_drive *drive;
|
||||
struct burn_drive_info *dinfo;
|
||||
struct isoburn_toc_disc *isoburn_disc= NULL;
|
||||
@ -2053,6 +2069,9 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
ret= burn_get_read_capacity(drive, &read_capacity, 0);
|
||||
if(ret <= 0)
|
||||
read_capacity= -1;
|
||||
ret = burn_disc_get_profile(drive, &profile_no, profile_name);
|
||||
if(ret <= 0)
|
||||
profile_no= 0;
|
||||
|
||||
if(job->max_lba >= 0) {
|
||||
blocks= job->max_lba + 1 - start_lba;
|
||||
@ -2077,6 +2096,16 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
continue;
|
||||
track_lba= isoburn_entry.start_lba;
|
||||
track_blocks= isoburn_entry.track_blocks;
|
||||
|
||||
/* The last track of an appendable BD-R reports more blocks than the
|
||||
read capacity allows. All BD-R track sizes are multiple of 64 kB.
|
||||
*/
|
||||
if (i == num_sessions - 1 &&
|
||||
(track_lba + track_blocks > read_capacity &&
|
||||
track_lba + track_blocks < read_capacity + 32 &&
|
||||
(profile_no == 0x41 || profile_no == 0x40)))
|
||||
track_blocks= read_capacity - track_lba;
|
||||
|
||||
md5_start= track_lba;
|
||||
if(i == 0 && j == 0) {
|
||||
if(track_lba == 32) {
|
||||
|
@ -494,6 +494,120 @@ 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",
|
||||
"-jigdo-template-compress",
|
||||
"-checksum_algorithm_iso", "-checksum_algorithm_template",
|
||||
"--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 arg3_options[][41]= {
|
||||
"-append_partition",
|
||||
""
|
||||
};
|
||||
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= 3;
|
||||
for(i=0; arg3_options[i][0]!=0; i++)
|
||||
if(strcmp(arg3_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 +623,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 +650,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 +721,41 @@ 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",
|
||||
" -jigdo-jigdo FILE Produce a jigdo .jigdo file as well as the .iso",
|
||||
" -jigdo-template FILE Produce a jigdo .template file as well as the .iso",
|
||||
" -jigdo-min-file-size SIZE Minimum size for a file to be listed in the jigdo file",
|
||||
" -jigdo-force-md5 PATTERN Pattern(s) where files MUST match an externally-supplied MD5sum",
|
||||
" -jigdo-exclude PATTERN Pattern(s) to exclude from the jigdo file",
|
||||
" -jigdo-map PATTERN1=PATTERN2",
|
||||
" Pattern(s) to map paths (e.g. Debian=/mirror/debian)",
|
||||
" -md5-list FILE File containing MD5 sums of the files that should be checked",
|
||||
" -jigdo-template-compress ALGORITHM",
|
||||
" Choose to use gzip or bzip2 compression for template data; default is gzip",
|
||||
" -checksum_algorithm_iso alg1,alg2,...",
|
||||
" Specify the checksum types desired for the output image (in .jigdo)",
|
||||
" -checksum_algorithm_template alg1,alg2,...",
|
||||
" Specify the checksum types desired for the output jigdo template"
|
||||
" -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",
|
||||
" -mips-boot FILE Set mips boot image name (relative to image root)",
|
||||
" -append_partition NUMBER TYPE FILE",
|
||||
" Append FILE after image. TYPE is hex: 0x..",
|
||||
" --modification-date=YYYYMMDDhhmmsscc",
|
||||
" Override date of creation and modification",
|
||||
" -isohybrid-mbr FILE Set SYSLINUX mbr/isohdp[fp]x*.bin for isohybrid",
|
||||
@ -738,9 +871,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 +1040,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 +1173,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 +1188,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 +1231,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 +1249,18 @@ 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], "-mips-boot") == 0 ||
|
||||
strcmp(argv[i], "-mipsel-boot") == 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;
|
||||
@ -1192,13 +1339,39 @@ not_enough_args:;
|
||||
if(ret<=0)
|
||||
goto problem_handler_2;
|
||||
file_mode= mode_or;
|
||||
} else if(strcmp(argv[i], "-jigdo-jigdo") == 0 ||
|
||||
strcmp(argv[i], "-jigdo-template") == 0 ||
|
||||
strcmp(argv[i], "-jigdo-min-file-size") == 0 ||
|
||||
strcmp(argv[i], "-jigdo-exclude") == 0 ||
|
||||
strcmp(argv[i], "-jigdo-force-md5") == 0 ||
|
||||
strcmp(argv[i], "-jigdo-map") == 0 ||
|
||||
strcmp(argv[i], "-jigdo-template-compress") == 0 ||
|
||||
strcmp(argv[i], "-checksum_algorithm_iso") == 0 ||
|
||||
strcmp(argv[i], "-checksum_algorithm_template") == 0 ||
|
||||
strcmp(argv[i], "-md5-list") == 0) {
|
||||
i++;
|
||||
ret= Xorriso_option_jigdo(xorriso, argv[i - 1], argv[i], 0);
|
||||
if(ret <= 0)
|
||||
goto problem_handler_2;
|
||||
} else if(strcmp(argv[i], "-append_partition") == 0) {
|
||||
i+= 3;
|
||||
ret= Xorriso_option_append_partition(xorriso, argv[i - 2], argv[i - 1],
|
||||
argv[i], 0);
|
||||
if(ret <= 0)
|
||||
goto problem_handler_2;
|
||||
|
||||
} else if(argv[i][0]=='-' && argv[i][1]!=0) {
|
||||
sprintf(xorriso->info_text, "-as %s: Unknown option %s",
|
||||
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 +1398,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 +1466,36 @@ 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;
|
||||
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 +1505,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 +1540,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 +1559,34 @@ 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;
|
||||
|
||||
} else if(strcmp(argv[i], "-mips-boot") == 0 ||
|
||||
strcmp(argv[i], "-mipsel-boot") == 0) {
|
||||
if(i + 1 >= argc)
|
||||
goto not_enough_args;
|
||||
i++;
|
||||
if(strcmp(argv[i - 1], "-mipsel-boot") == 0)
|
||||
strcpy(sfe, "mipsel_path=");
|
||||
else
|
||||
strcpy(sfe, "mips_path=");
|
||||
ret= Sfile_str(sfe, argv[i], 1);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
||||
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 +1600,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;
|
||||
}
|
||||
|
@ -376,7 +376,7 @@ int Xorriso_boot_item_status(struct XorrisO *xorriso, char *cat_path,
|
||||
strcpy(bspec, "dir=/boot/isolinux");
|
||||
memset(zeros, 0, 28);
|
||||
if(bspec[0] && platform_id == 0 && patch_isolinux &&
|
||||
load_size == 2048 && is_default_id) {
|
||||
load_size == 2048 && is_default_id && emul == 0) {
|
||||
sprintf(line, "-boot_image isolinux %s\n", bspec);
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
return(1);
|
||||
@ -388,7 +388,7 @@ int Xorriso_boot_item_status(struct XorrisO *xorriso, char *cat_path,
|
||||
file_size= ((stbuf.st_size / (off_t) 512) +
|
||||
!!(stbuf.st_size % (off_t) 512)) * 512;
|
||||
if(platform_id == 0xef && !patch_isolinux &&
|
||||
load_size == file_size && is_default_id) {
|
||||
load_size == file_size && is_default_id && emul == 0) {
|
||||
sprintf(line, "-boot_image any efi_path=");
|
||||
Text_shellsafe(bin_path, line, 1);
|
||||
strcat(line, "\n");
|
||||
@ -404,6 +404,12 @@ int Xorriso_boot_item_status(struct XorrisO *xorriso, char *cat_path,
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
is_default= (emul == 0);
|
||||
sprintf(line, "-boot_image %s emul_type=%s\n",
|
||||
form, emul == 2 ? "diskette" : emul == 1 ? "hard_disk" : "no_emulation");
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
is_default= (platform_id == 0 || (flag & 4));
|
||||
sprintf(line, "-boot_image %s platform_id=0x%-2.2x\n", form, platform_id);
|
||||
if(!(is_default && no_defaults))
|
||||
@ -449,6 +455,57 @@ int Xorriso_boot_item_status(struct XorrisO *xorriso, char *cat_path,
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
bit0= do only report non-default settings
|
||||
bit1= do only report to fp
|
||||
*/
|
||||
int Xorriso_boot_status_mips(struct XorrisO *xorriso, IsoImage *image,
|
||||
char *filter, FILE *fp, int flag)
|
||||
{
|
||||
int i, num_boots, sa_type;
|
||||
char *paths[15], *line;
|
||||
|
||||
line= xorriso->result_line;
|
||||
|
||||
sa_type= (xorriso->system_area_options & 0xfc) >> 2;
|
||||
num_boots= iso_image_get_mips_boot_files(image, paths, 0);
|
||||
Xorriso_process_msg_queues(xorriso, 0);
|
||||
if(num_boots <= 0)
|
||||
return(num_boots);
|
||||
if(sa_type == 2)
|
||||
num_boots= 1;
|
||||
for(i= 0; i < num_boots; i++) {
|
||||
sprintf(line, "-boot_image any mips%s_path=", sa_type ==2 ? "el" : "");
|
||||
Text_shellsafe(paths[i], line, 1);
|
||||
strcat(line, "\n");
|
||||
Xorriso_status_result(xorriso, filter, fp, flag & 2);
|
||||
}
|
||||
return(num_boots);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
bit0= do only report non-default settings
|
||||
bit1= do only report to fp
|
||||
*/
|
||||
int Xorriso_append_part_status(struct XorrisO *xorriso, IsoImage *image,
|
||||
char *filter, FILE *fp, int flag)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i= 0; i < 4; i++) {
|
||||
if(xorriso->appended_partitions[i][0] == 0)
|
||||
continue;
|
||||
sprintf(xorriso->result_line, "-append_partition %d 0x%2.2x ",
|
||||
i + 1, (unsigned int) xorriso->appended_part_types[i]);
|
||||
Text_shellsafe(xorriso->appended_partitions[i], xorriso->result_line, 1);
|
||||
strcat(xorriso->result_line, "\n");
|
||||
Xorriso_status_result(xorriso, filter, fp, flag & 2);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
bit0= do only report non-default settings
|
||||
bit1= do only report to fp
|
||||
@ -471,7 +528,21 @@ int Xorriso_boot_image_status(struct XorrisO *xorriso, char *filter, FILE *fp,
|
||||
line= xorriso->result_line;
|
||||
no_defaults= flag & 1;
|
||||
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"on attempt to print boot info", 2 | 16);
|
||||
if(ret<=0)
|
||||
goto no_image;
|
||||
image= isoburn_get_attached_image(drive);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(image == NULL)
|
||||
goto no_image;
|
||||
|
||||
ret= Xorriso_boot_status_mips(xorriso, image, filter, fp, flag & 3);
|
||||
if(ret < 0) /* == 0 is normal */
|
||||
{ret= 0; goto ex;}
|
||||
|
||||
if(xorriso->boot_count == 0 && xorriso->boot_image_bin_path[0] == 0) {
|
||||
no_image:;
|
||||
if(xorriso->patch_isolinux_image & 1) {
|
||||
sprintf(line, "-boot_image %s patch\n",
|
||||
xorriso->patch_isolinux_image & 2 ? "grub" : form);
|
||||
@ -485,17 +556,9 @@ int Xorriso_boot_image_status(struct XorrisO *xorriso, char *filter, FILE *fp,
|
||||
}
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
ret= 1; goto ex;
|
||||
ret= 1; goto after_el_torito;
|
||||
}
|
||||
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"on attempt to print boot info", 16);
|
||||
if(ret<=0)
|
||||
{ret= 0; goto ex;}
|
||||
image= isoburn_get_attached_image(drive);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(image == NULL)
|
||||
{ret= 0; goto ex;}
|
||||
|
||||
if(xorriso->boot_image_bin_path[0] || xorriso->boot_count > 0)
|
||||
bin_path_in_use= 1;
|
||||
@ -531,6 +594,12 @@ int Xorriso_boot_image_status(struct XorrisO *xorriso, char *filter, FILE *fp,
|
||||
load_size= el_torito_get_load_size(boots[i]) * 512;
|
||||
el_torito_get_id_string(boots[i], id_string);
|
||||
el_torito_get_selection_crit(boots[i], sel_crit);
|
||||
if(media_type == ELTORITO_FLOPPY_EMUL)
|
||||
media_type= 2;
|
||||
else if(media_type == ELTORITO_HARD_DISC_EMUL)
|
||||
media_type= 1;
|
||||
else
|
||||
media_type= 0;
|
||||
ret= Xorriso_boot_item_status(xorriso, xorriso->boot_image_cat_path,
|
||||
path, platform_id, patch & 1, media_type,
|
||||
load_size, id_string, sel_crit, "any",
|
||||
@ -577,6 +646,11 @@ int Xorriso_boot_image_status(struct XorrisO *xorriso, char *filter, FILE *fp,
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
||||
after_el_torito:;
|
||||
ret = Xorriso_append_part_status(xorriso, image, filter, fp, flag & 3);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
||||
ret= 1;
|
||||
ex:
|
||||
if(boots != NULL)
|
||||
@ -959,3 +1033,81 @@ ex:;
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= give up all boot file paths
|
||||
bit1= refuse if already a path is added
|
||||
*/
|
||||
int Xorriso_add_mips_boot_file(struct XorrisO *xorriso, char *path, int flag)
|
||||
{
|
||||
int ret;
|
||||
IsoImage *image;
|
||||
char *paths[15];
|
||||
|
||||
ret= Xorriso_get_volume(xorriso, &image, 0);
|
||||
if(ret <= 0)
|
||||
return ret;
|
||||
if(flag & 1) {
|
||||
iso_image_give_up_mips_boot(image, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
return(1);
|
||||
}
|
||||
if(flag & 2) {
|
||||
ret= iso_image_get_mips_boot_files(image, paths, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(ret < 0)
|
||||
goto report_error;
|
||||
if(ret > 0) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"There is already a boot image file registered.",
|
||||
0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
ret = iso_image_add_mips_boot_file(image, path, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if (ret < 0) {
|
||||
report_error:;
|
||||
Xorriso_report_iso_error(xorriso, "", ret,
|
||||
"Error when adding MIPS boot file",
|
||||
0, "FAILURE", 1);
|
||||
return(0);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_coordinate_system_area(struct XorrisO *xorriso, int sa_type,
|
||||
int options, char *cmd, int flag)
|
||||
{
|
||||
int old_type, old_options;
|
||||
static char *type_names[3] = {
|
||||
"MBR", "MIPS Big Endian Volume Header", "MIPS Little Endian Boot Block"};
|
||||
|
||||
old_type= (xorriso->system_area_options & 0xfc) >> 2;
|
||||
old_options= xorriso->system_area_options & ~0xfc;
|
||||
if((old_type != 0 || old_options != 0) &&
|
||||
(old_type != sa_type || (old_options != 0 && old_options != options))) {
|
||||
sprintf(xorriso->info_text, "%s : First sector already occupied by %s",
|
||||
cmd, old_type < 2 ? type_names[old_type] : "other boot facility");
|
||||
if(old_type == 0 && old_options == 2)
|
||||
strcat(xorriso->info_text, " for ISOLINUX isohybrid");
|
||||
if(old_type == 0 && old_options == 1)
|
||||
strcat(xorriso->info_text, " for partition table");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
goto hint_revoke;
|
||||
}
|
||||
xorriso->system_area_options= ((sa_type << 2) & 0xfc) | (options & ~0xfc);
|
||||
if(sa_type == 0)
|
||||
xorriso->patch_system_area= xorriso->system_area_options;
|
||||
return(1);
|
||||
|
||||
hint_revoke:;
|
||||
if(old_type == 0)
|
||||
sprintf(xorriso->info_text, "Revokable by -boot_image any discard");
|
||||
else if(old_type == 1 || old_type == 2)
|
||||
sprintf(xorriso->info_text, "Revokable by -boot_image any mips_discard");
|
||||
if(old_type < 2)
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0);
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
@ -295,8 +304,10 @@ cannot_open_dir:;
|
||||
name= disk_path+strlen(disk_path);
|
||||
if(Sfile_str(img_path, img_dir_path, 0)<=0)
|
||||
{ret= -1; goto ex;}
|
||||
if(img_path[0] || img_path[strlen(img_path)-1]!='/')
|
||||
strcat(img_path,"/");
|
||||
if(img_path[0] == 0)
|
||||
strcat(img_path, "/");
|
||||
else if(img_path[strlen(img_path) - 1] != '/')
|
||||
strcat(img_path, "/");
|
||||
img_name= img_path+strlen(img_path);
|
||||
|
||||
while(1) { /* loop over directory content */
|
||||
@ -313,12 +324,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 +429,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 +490,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 +537,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 +593,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 +608,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 +617,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 +778,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 +807,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 +2697,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;
|
||||
}
|
||||
|
@ -23,11 +23,25 @@
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* for -charset */
|
||||
#include <iconv.h>
|
||||
#include <langinfo.h>
|
||||
|
||||
#ifdef Xorriso_standalonE
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
#include "../libjte/libjte.h"
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
#include <libjte/libjte.h>
|
||||
#endif
|
||||
|
||||
#endif /* ! Xorriso_standalonE */
|
||||
|
||||
#include "xorriso.h"
|
||||
#include "xorriso_private.h"
|
||||
@ -181,6 +195,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);
|
||||
@ -271,6 +289,16 @@ int Xorriso_report_lib_versions(struct XorrisO *xorriso, int flag)
|
||||
"libisofs in use : %d.%d.%d (min. %d.%d.%d)\n",
|
||||
major, minor, micro, req_major, req_minor, req_micro);
|
||||
Xorriso_result(xorriso, 0);
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
libjte__version(&major, &minor, µ);
|
||||
isoburn_libjte_req(&req_major, &req_minor, &req_micro);
|
||||
sprintf(xorriso->result_line,
|
||||
"libjte in use : %d.%d.%d (min. %d.%d.%d)\n",
|
||||
major, minor, micro, req_major, req_minor, req_micro);
|
||||
Xorriso_result(xorriso, 0);
|
||||
#endif
|
||||
|
||||
burn_version(&major, &minor, µ);
|
||||
isoburn_libburn_req(&req_major, &req_minor, &req_micro);
|
||||
sprintf(xorriso->result_line,
|
||||
@ -409,14 +437,36 @@ cannot:;
|
||||
int Xorriso_process_msg_queues(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, error_code= 0, os_errno= 0, count= 0, pass, imgid, tunneled;
|
||||
int name_prefix_code;
|
||||
char severity[80];
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
char *msg;
|
||||
#endif
|
||||
|
||||
if(!xorriso->libs_are_started)
|
||||
return(1);
|
||||
for(pass= 0; pass< 2; pass++) {
|
||||
for(pass= 0; pass< 3; pass++) {
|
||||
while(1) {
|
||||
tunneled= 0;
|
||||
if(pass==0)
|
||||
if(pass==0) {
|
||||
|
||||
ret= 0;
|
||||
#ifdef Xorriso_with_libjtE
|
||||
if(xorriso->libjte_handle != NULL) {
|
||||
msg= libjte_get_next_message(xorriso->libjte_handle);
|
||||
if(msg != NULL) {
|
||||
sprintf(xorriso->info_text, "%1.4095s", msg);
|
||||
free(msg);
|
||||
strcpy(severity, "NOTE");
|
||||
error_code= 0;
|
||||
os_errno= 0;
|
||||
ret= 1;
|
||||
}
|
||||
}
|
||||
#endif /* Xorriso_with_libjtE */
|
||||
|
||||
} else if(pass==1)
|
||||
ret= iso_obtain_msgs("ALL", &error_code, &imgid,
|
||||
xorriso->info_text, severity);
|
||||
else {
|
||||
@ -440,8 +490,12 @@ int Xorriso_process_msg_queues(struct XorrisO *xorriso, int flag)
|
||||
else if(error_code==0x51001)
|
||||
strcpy(severity, "ERRFILE");
|
||||
|
||||
if(pass == 0)
|
||||
name_prefix_code= 0;
|
||||
else
|
||||
name_prefix_code= pass + tunneled;
|
||||
Xorriso_msgs_submit(xorriso, error_code, xorriso->info_text, os_errno,
|
||||
severity, ((pass+tunneled)+1)<<2);
|
||||
severity, name_prefix_code << 2);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@ -486,3 +540,190 @@ 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, µ);
|
||||
if(strlen(xorriso_id) < 100)
|
||||
sprintf(xorriso_id + strlen(xorriso_id),
|
||||
", LIBISOBURN-%d.%d.%d", major, minor, micro);
|
||||
iso_lib_version(&major, &minor, µ);
|
||||
if(strlen(xorriso_id) < 100)
|
||||
sprintf(xorriso_id + strlen(xorriso_id),
|
||||
", LIBISOFS-%d.%d.%d", major, minor, micro);
|
||||
burn_version(&major, &minor, µ);
|
||||
if(strlen(xorriso_id) < 100)
|
||||
sprintf(xorriso_id + strlen(xorriso_id),
|
||||
", LIBBURN-%d.%d.%d", major, minor, micro);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
|
||||
int Xorriso_assert_jte_handle(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if(xorriso->libjte_handle == NULL) {
|
||||
ret= libjte_new(&(xorriso->libjte_handle), 0);
|
||||
if(ret <= 0 || xorriso->libjte_handle == NULL) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-jigdo: Failed to create libjte environment object");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
|
||||
return(-1);
|
||||
}
|
||||
/* no stderr, no exit() */
|
||||
libjte_set_error_behavior(xorriso->libjte_handle, 0, 0);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
#endif /* Xorriso_with_libjtE */
|
||||
|
||||
|
||||
int Xorriso_jigdo_interpreter(struct XorrisO *xorriso, char *aspect, char *arg,
|
||||
int flag)
|
||||
{
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
|
||||
int ret, num;
|
||||
struct libjte_env *jte;
|
||||
char *msg = NULL;
|
||||
|
||||
if(strcmp(aspect, "clear") == 0) {
|
||||
if(xorriso->libjte_handle != NULL)
|
||||
libjte_destroy(&(xorriso->libjte_handle));
|
||||
Xorriso_lst_destroy_all(&(xorriso->jigdo_params), 0);
|
||||
Xorriso_lst_destroy_all(&(xorriso->jigdo_values), 0);
|
||||
return(1);
|
||||
}
|
||||
ret= Xorriso_assert_jte_handle(xorriso, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
jte= xorriso->libjte_handle;
|
||||
|
||||
if(strcmp(aspect, "verbose") == 0) {
|
||||
if(strcmp(arg, "on") == 0) {
|
||||
libjte_set_verbose(jte, 1);
|
||||
/* Direct libjte messages to stderr, rather than message list */
|
||||
libjte_set_error_behavior(xorriso->libjte_handle, 1, 0);
|
||||
} else if(strcmp(arg, "off") == 0) {
|
||||
libjte_set_verbose(jte, 0);
|
||||
libjte_set_error_behavior(xorriso->libjte_handle, 0, 0);
|
||||
} else
|
||||
goto bad_arg;
|
||||
} else if(strcmp(aspect, "template_path") == 0 ||
|
||||
strcmp(aspect, "-jigdo-template") == 0) {
|
||||
ret= libjte_set_template_path(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "jigdo_path") == 0 ||
|
||||
strcmp(aspect, "-jigdo-jigdo") == 0) {
|
||||
ret= libjte_set_jigdo_path(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "md5_path") == 0 ||
|
||||
strcmp(aspect, "-md5-list") == 0) {
|
||||
ret= libjte_set_md5_path(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "min_size") == 0 ||
|
||||
strcmp(aspect, "-jigdo-min-file-size") == 0) {
|
||||
num= Scanf_io_size(arg, 0);
|
||||
ret= libjte_set_min_size(jte, num);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "checksum_iso") == 0 ||
|
||||
strcmp(aspect, "-checksum_algorithm_iso") == 0) {
|
||||
ret= libjte_set_checksum_iso(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "checksum_template") == 0 ||
|
||||
strcmp(aspect, "-checksum_algorithm_template") == 0) {
|
||||
ret= libjte_set_checksum_template(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "compression") == 0 ||
|
||||
strcmp(aspect, "-jigdo-template-compress") == 0) {
|
||||
ret= libjte_set_compression(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "exclude") == 0 ||
|
||||
strcmp(aspect, "-jigdo-exclude") == 0) {
|
||||
ret= libjte_add_exclude(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "demand_md5") == 0 ||
|
||||
strcmp(aspect, "-jigdo-force-md5") == 0) {
|
||||
ret= libjte_add_md5_demand(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else if(strcmp(aspect, "mapping") == 0 ||
|
||||
strcmp(aspect, "-jigdo-map") == 0) {
|
||||
ret= libjte_add_mapping(jte, arg);
|
||||
if(ret <= 0)
|
||||
goto jte_failed;
|
||||
} else {
|
||||
sprintf(xorriso->info_text, "-jigdo: unknown aspect '%s'", aspect);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
|
||||
ret= Xorriso_lst_new(&(xorriso->jigdo_params), aspect, xorriso->jigdo_params,
|
||||
1);
|
||||
if(ret > 0)
|
||||
ret= Xorriso_lst_new(&(xorriso->jigdo_values), arg, xorriso->jigdo_values,
|
||||
1);
|
||||
if(ret <= 0) {
|
||||
Xorriso_no_malloc_memory(xorriso, NULL, 0);
|
||||
return(-1);
|
||||
}
|
||||
Xorriso_process_msg_queues(xorriso, 0);
|
||||
return(1);
|
||||
|
||||
bad_arg:
|
||||
sprintf(xorriso->info_text, "-jigdo %s : unknown argument '%s'", aspect, arg);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
|
||||
jte_failed:
|
||||
while(1) {
|
||||
msg= libjte_get_next_message(xorriso->libjte_handle);
|
||||
if(msg == NULL)
|
||||
break;
|
||||
sprintf(xorriso->info_text, "%1.4095s", msg);
|
||||
free(msg);
|
||||
msg= NULL;
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
}
|
||||
sprintf(xorriso->info_text, "Experienced libjte failure with: -jigdo %s %s",
|
||||
aspect, arg);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
|
||||
#else /* Xorriso_with_libjtE */
|
||||
|
||||
sprintf(xorriso->info_text,
|
||||
"Jigdo Template Extraction was not enabled at compile time");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
|
||||
#endif /* ! Xorriso_with_libjtE */
|
||||
|
||||
}
|
||||
|
||||
|
@ -7,9 +7,9 @@
|
||||
#
|
||||
# This is a development tool which expects a special setup of directories.
|
||||
# It is to be executed in a common parent of the directories
|
||||
# nglibisofs-develop libburn-develop libisoburn-develop
|
||||
# nglibisofs-develop jte-develop libburn-develop libisoburn-develop
|
||||
# where tarballs or repository copies have been installed of
|
||||
# libisofs libburn libisoburn
|
||||
# libisofs jte libburn libisoburn
|
||||
# obtained according to instructions on http://libburnia-project.org.
|
||||
#
|
||||
# It creates a new directory tree
|
||||
@ -40,7 +40,7 @@ create_gnu_xorriso="yes"
|
||||
current_dir=$(pwd)
|
||||
lone_dir="$current_dir"/"xorriso-standalone"
|
||||
|
||||
xorriso_rev=0.6.0
|
||||
xorriso_rev=0.6.4
|
||||
# For unstable uploads and patch level 0 of stable releases:
|
||||
xorriso_pl=""
|
||||
# For higher patch levels of stable releases:
|
||||
@ -120,10 +120,6 @@ copy_files xorriso/configure_ac.txt "$lone_dir"/configure.ac
|
||||
|
||||
copy_files xorriso/xorriso_makefile_am.txt "$lone_dir"/Makefile.am
|
||||
|
||||
# copy_files xorriso/xorriso_pc_in.txt "$lone_dir"/xorriso.pc.in
|
||||
|
||||
# echo "See end of xorriso/changelog.txt" >"$lone_dir"/TODO
|
||||
|
||||
|
||||
# libisoburn
|
||||
|
||||
@ -131,6 +127,7 @@ create_dir "$lone_dir"/libisoburn
|
||||
copy_files \
|
||||
libisoburn/*.[ch] \
|
||||
"$lone_dir"/libisoburn
|
||||
copy_files COPYRIGHT "$lone_dir"/libisoburn
|
||||
|
||||
xorriso/convert_man_to_html.sh
|
||||
|
||||
@ -198,12 +195,16 @@ copy_files \
|
||||
xorriso/xorriso.1 \
|
||||
xorriso/man_1_xorriso.html \
|
||||
"$lone_dir"/xorriso
|
||||
copy_files COPYRIGHT "$lone_dir"/xorriso
|
||||
|
||||
copy_files xorriso/xorriso_buildstamp_none.h \
|
||||
"$lone_dir"/xorriso/xorriso_buildstamp.h
|
||||
copy_files xorriso/xorriso_buildstamp_none.h \
|
||||
"$lone_dir"/xorriso/xorriso_buildstamp_none.h
|
||||
|
||||
create_dir "$lone_dir"/doc
|
||||
copy_files doc/partition_offset.wiki "$lone_dir"/doc
|
||||
|
||||
create_dir "$lone_dir"/test
|
||||
copy_files \
|
||||
test/compare_file.c \
|
||||
@ -214,13 +215,13 @@ copy_files \
|
||||
|
||||
create_dir "$lone_dir"/libisofs
|
||||
create_dir "$lone_dir"/libisofs/filters
|
||||
create_dir "$lone_dir"/doc
|
||||
goto_dir "$current_dir"/nglibisofs-develop
|
||||
copy_files libisofs/*.[ch] "$lone_dir"/libisofs
|
||||
copy_files libisofs/filters/*.[ch] "$lone_dir"/libisofs/filters
|
||||
copy_files doc/susp_aaip*.txt "$lone_dir"/doc
|
||||
copy_files doc/zisofs_format.txt "$lone_dir"/doc
|
||||
copy_files doc/checksums.txt "$lone_dir"/doc
|
||||
copy_files doc/boot_sectors.txt "$lone_dir"/doc
|
||||
copy_files COPYRIGHT "$lone_dir"/libisofs
|
||||
test -e CONTRIBUTORS && cat CONTRIBUTORS >>"$lone_dir"/CONTRIBUTORS
|
||||
|
||||
@ -228,35 +229,12 @@ test -e CONTRIBUTORS && cat CONTRIBUTORS >>"$lone_dir"/CONTRIBUTORS
|
||||
cat version.h.in >> "$lone_dir"/version.h.in
|
||||
|
||||
|
||||
# <<< obsoleted patchings
|
||||
|
||||
if test 1 = 0
|
||||
then
|
||||
|
||||
# Change GNU macro name to POSIX name
|
||||
sed -e 's/FNM_FILE_NAME/FNM_PATHNAME/g' \
|
||||
<libisofs/tree.c >"$lone_dir"/libisofs/tree.c
|
||||
|
||||
# Filter out the semi-illegal TODO comments
|
||||
( cd "$lone_dir"/libisofs && grep '^[[:space:]]*//' *.[ch] | less )
|
||||
echo "Is it ok delete all shown //-lines ?"
|
||||
read yesno
|
||||
if test "$yesno" = "y" -o "$yesno" = "1"
|
||||
then
|
||||
for i in "$lone_dir"/libisofs/*.[ch]
|
||||
do
|
||||
# first copy attributes
|
||||
cp "$i" "$lone_dir"/libisofs/tmpfile
|
||||
# now filter away // lines
|
||||
grep -v '^[[:space:]]*//' <"$i" >"$lone_dir"/libisofs/tmpfile && \
|
||||
mv "$lone_dir"/libisofs/tmpfile "$i"
|
||||
done
|
||||
fi
|
||||
echo "Remaining // lines:"
|
||||
( cd "$lone_dir"/libisofs && grep '//' *.[ch] )
|
||||
|
||||
fi
|
||||
# libjte
|
||||
|
||||
create_dir "$lone_dir"/libjte
|
||||
goto_dir "$current_dir"/jte-develop
|
||||
copy_files *.[ch] "$lone_dir"/libjte
|
||||
copy_files COPYRIGHT "$lone_dir"/libjte
|
||||
|
||||
|
||||
# libburn
|
||||
|
@ -255,6 +255,55 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
/* Option -append_partition */
|
||||
int Xorriso_option_append_partition(struct XorrisO *xorriso, char *partno_text,
|
||||
char *type_text, char *image_path, int flag)
|
||||
{
|
||||
int partno = 0, type_code= -1, i;
|
||||
unsigned int unum;
|
||||
char *tpt;
|
||||
static char *part_type_names[] = {"FAT12", "FAT16", "Linux", NULL};
|
||||
static int part_type_codes[] = { 0x01, 0x06, 0x83};
|
||||
|
||||
sscanf(partno_text, "%d", &partno);
|
||||
if(partno < 1 || partno > 4) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-append_partition: Partition number '%s' is out of range (1...4)",
|
||||
partno_text);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
for(i= 0; part_type_names[i] != NULL; i++)
|
||||
if(strcmp(part_type_names[i], type_text) == 0)
|
||||
break;
|
||||
if(part_type_names[i] != NULL)
|
||||
type_code= part_type_codes[i];
|
||||
if(type_code < 0) {
|
||||
tpt= type_text;
|
||||
if(strncmp(tpt, "0x", 2) == 0)
|
||||
tpt+= 2;
|
||||
else
|
||||
goto bad_type;
|
||||
unum= 0xffffffff;
|
||||
sscanf(tpt, "%X", &unum);
|
||||
if(unum > 0xff) {
|
||||
bad_type:;
|
||||
sprintf(xorriso->info_text,
|
||||
"-append_partition: Partition type '%s' is out of range (0x00...0xff)",
|
||||
type_text);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
type_code= unum;
|
||||
}
|
||||
|
||||
if(Sfile_str(xorriso->appended_partitions[partno - 1], image_path, 0) <= 0)
|
||||
return(-1);
|
||||
xorriso->appended_part_types[partno - 1]= type_code;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* Option -application_id */
|
||||
int Xorriso_option_application_id(struct XorrisO *xorriso, char *name,
|
||||
int flag)
|
||||
@ -263,6 +312,9 @@ int Xorriso_option_application_id(struct XorrisO *xorriso, char *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);
|
||||
@ -564,7 +616,7 @@ int Xorriso_option_boot_image(struct XorrisO *xorriso, char *form,
|
||||
{
|
||||
int was_ok= 1, ret, isolinux_grub= 0, count;
|
||||
unsigned int u;
|
||||
char *formpt, *treatpt;
|
||||
char *formpt, *treatpt, eff_path[SfileadrL];
|
||||
double num;
|
||||
|
||||
formpt= form;
|
||||
@ -611,6 +663,8 @@ treatment_patch:;
|
||||
xorriso->patch_isolinux_image= 0;
|
||||
xorriso->boot_image_bin_path[0]= 0;
|
||||
xorriso->patch_system_area= 0;
|
||||
if((xorriso->system_area_options & 0xfc ) == 0)
|
||||
xorriso->system_area_options= 0; /* Reset eventual type 0 flags */
|
||||
if(xorriso->boot_count > 0) {
|
||||
ret= Xorriso_attach_boot_image(xorriso, 2); /* dispose boot images */
|
||||
if(ret <= 0)
|
||||
@ -727,6 +781,37 @@ treatment_patch:;
|
||||
xorriso->keep_boot_image= 0;
|
||||
xorriso->boot_efi_default= 1;
|
||||
|
||||
} else if(strncmp(treatpt, "mips_path=", 10) == 0) {
|
||||
sprintf(eff_path, "-boot_image %s mips_path=", formpt);
|
||||
ret= Xorriso_coordinate_system_area(xorriso, 1, 0, eff_path, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, treatpt + 10,
|
||||
eff_path, 2);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
ret= Xorriso_add_mips_boot_file(xorriso, eff_path, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
|
||||
} else if(strncmp(treatpt, "mipsel_path=", 12) == 0) {
|
||||
sprintf(eff_path, "-boot_image %s mipsel_path=", formpt);
|
||||
ret= Xorriso_coordinate_system_area(xorriso, 2, 0, eff_path, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, treatpt + 12,
|
||||
eff_path, 2);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
ret= Xorriso_add_mips_boot_file(xorriso, eff_path, 2);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
|
||||
} else if(strcmp(treatpt, "mips_discard") == 0 ||
|
||||
strcmp(treatpt, "mipsel_discard") == 0) {
|
||||
xorriso->system_area_options&= ~0xfc; /* system area type 0 */
|
||||
Xorriso_add_mips_boot_file(xorriso, "", 1); /* give up MIPS boot files */
|
||||
|
||||
} else if(strncmp(treatpt, "boot_info_table=", 16)==0) {
|
||||
if(strcmp(treatpt + 16, "off") == 0)
|
||||
xorriso->patch_isolinux_image= 0;
|
||||
@ -768,26 +853,64 @@ treatment_patch:;
|
||||
}
|
||||
|
||||
} else if(strncmp(treatpt, "system_area=", 12) == 0) {
|
||||
if(strcmp(formpt, "isolinux")==0) {
|
||||
ret= Xorriso_coordinate_system_area(xorriso, 0, 2,
|
||||
"-boot_image isolinux system_area=", 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
}
|
||||
ret= Xorriso_set_system_area_path(xorriso, treatpt + 12, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
if(strcmp(formpt, "isolinux")==0)
|
||||
xorriso->system_area_options= (xorriso->system_area_options & ~3) | 2;
|
||||
|
||||
} else if(strncmp(treatpt, "partition_table=", 16)==0) {
|
||||
if(strcmp(treatpt + 16, "off") == 0) {
|
||||
xorriso->system_area_options&= ~3;
|
||||
xorriso->patch_system_area= xorriso->system_area_options;
|
||||
} else if(strcmp(treatpt + 16, "on") == 0) {
|
||||
xorriso->system_area_options&= ~3;
|
||||
sprintf(eff_path, "-boot_image %s partition_table=", formpt);
|
||||
if(strcmp(formpt, "isolinux")==0)
|
||||
xorriso->system_area_options|= 2;
|
||||
ret= Xorriso_coordinate_system_area(xorriso, 0, 2, eff_path, 0);
|
||||
else
|
||||
xorriso->system_area_options|= 1;
|
||||
xorriso->patch_system_area= xorriso->system_area_options;
|
||||
ret= Xorriso_coordinate_system_area(xorriso, 0, 1, eff_path, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
} 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 +925,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) {
|
||||
|
||||
|
@ -1376,6 +1376,13 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" Specifies the name of the Abstract File. (37 chars)",
|
||||
" -joliet \"on\"|\"off\"",
|
||||
" Generate Joliet info additional to Rock Ridge info.",
|
||||
" -jigdo \"clear\"|\"template_path\"|\"jigdo_path\"|\"md5_path\"",
|
||||
" |\"min_size\"|\"checksum_iso\"|\"checksum_template\"",
|
||||
" |\"compression\"|\"exclude\"|\"demand_md5\"|\"mapping\"",
|
||||
" |\"checksum_iso\"|\"checksum_template\"",
|
||||
" value",
|
||||
" Clear Jigdo Template Extraction parameter list or add a",
|
||||
" parameter with its value to that list.",
|
||||
" -compliance rule[:rule...]",
|
||||
" Allow more or less harmless deviations from strict standards",
|
||||
" compliance.",
|
||||
@ -1383,6 +1390,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" |\"discard\"|\"keep\"|\"patch\"|\"dir=\"|\"bin_path=\"",
|
||||
" |\"cat_path=\"|\"cat_hidden=on|iso_rr|joliet|off\"",
|
||||
" |\"load_size=\"|\"system_area=\"|\"partition_table=on|off\"",
|
||||
" |\"mips_path=\"|\"mipsel_path=\"|\"mips_discard\"",
|
||||
" |\"show_status\"",
|
||||
" Whether to discard or keep an exiting El Torito boot image.",
|
||||
" ISOLINUX can be made bootable by dir=/ or dir=/isolinux",
|
||||
" or dir=/boot/isolinux. Others, like GRUB, by bin_path=...",
|
||||
@ -1391,6 +1400,12 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" ISO image by the usual commands like -map or -add.",
|
||||
" system_area= and partition_table= are for MBR based booting",
|
||||
" from USB stick. The system_area= file needs not to be added.",
|
||||
" mips_path= adds Big Endian MIPS boot files. mipsel_path=",
|
||||
" sets one Little Endian MIPS boot file. Both are mutually",
|
||||
" exclusive and exclusive to MBR production.",
|
||||
" -append_partition partition_number type_code disk_path",
|
||||
" Append a prepared filesystem image after the end of the",
|
||||
" ISO image. Caution: Will be overwritten by multi-session.",
|
||||
"",
|
||||
" -uid uid User id to be used for the whole multi-session ISO image.",
|
||||
" -gid gid Group id for the same purpose.",
|
||||
|
@ -47,6 +47,17 @@ int Xorriso_option_iso_rr_pattern(struct XorrisO *xorriso, char *mode,int flag)
|
||||
}
|
||||
|
||||
|
||||
/* Option -jigdo aspect argument */
|
||||
int Xorriso_option_jigdo(struct XorrisO *xorriso, char *aspect, char *arg,
|
||||
int flag)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret= Xorriso_jigdo_interpreter(xorriso, aspect, arg, 0);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* Option -joliet "on"|"off" */
|
||||
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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",
|
||||
@ -477,11 +478,15 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
static char arg2_commands[][40]= {
|
||||
"assert_volid","boot_image","compare","compare_r","drive_class",
|
||||
"errfile_log","error_behavior","extract","extract_single",
|
||||
"load","logfile",
|
||||
"jigdo","load","logfile",
|
||||
"map","map_single","page","return_with",
|
||||
"scdbackup_tag","update","update_r","volume_date",
|
||||
""
|
||||
};
|
||||
static char arg3_commands[][40]= {
|
||||
"append_partition",
|
||||
""
|
||||
};
|
||||
static char arg4_commands[][40]= {
|
||||
"cut_out","extract_cut","mount","mount_cmd","paste_in","session_string",
|
||||
""
|
||||
@ -529,6 +534,10 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
for(i=0; arg2_commands[i][0]!=0; i++)
|
||||
if(strcmp(arg2_commands[i], cmd)==0)
|
||||
return(1);
|
||||
*count= 3;
|
||||
for(i=0; arg3_commands[i][0]!=0; i++)
|
||||
if(strcmp(arg3_commands[i], cmd)==0)
|
||||
return(1);
|
||||
*count= 4;
|
||||
for(i=0; arg4_commands[i][0]!=0; i++)
|
||||
if(strcmp(arg4_commands[i], cmd)==0)
|
||||
@ -647,6 +656,11 @@ next_command:;
|
||||
ret= Xorriso_option_alter_date(xorriso, arg1, arg2, argc, argv, idx,
|
||||
strlen(cmd)>10);
|
||||
|
||||
} else if(strcmp(cmd,"append_partition")==0) {
|
||||
(*idx)+= 3;
|
||||
ret= Xorriso_option_append_partition(xorriso, arg1, arg2, argv[*idx - 1],
|
||||
0);
|
||||
|
||||
} else if(strcmp(cmd,"application_id")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_application_id(xorriso, arg1, 0);
|
||||
@ -947,6 +961,10 @@ next_command:;
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_iso_rr_pattern(xorriso, arg1, 0);
|
||||
|
||||
} else if(strcmp(cmd,"jigdo")==0) {
|
||||
(*idx)+= 2;
|
||||
ret= Xorriso_option_jigdo(xorriso, arg1, arg2, 0);
|
||||
|
||||
} else if(strcmp(cmd,"joliet")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_joliet(xorriso, arg1, 0);
|
||||
@ -1114,6 +1132,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);
|
||||
|
@ -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,11 +1087,11 @@ 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;
|
||||
struct Xorriso_lsT *paths, *leafs, *s;
|
||||
struct Xorriso_lsT *paths, *leafs, *s, *plst, *vlst;
|
||||
|
||||
no_defaults= flag&1;
|
||||
line= xorriso->result_line;
|
||||
@ -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))
|
||||
@ -1460,6 +1484,22 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
Xorriso_lst_get_last(xorriso->jigdo_params, &plst, 0);
|
||||
Xorriso_lst_get_last(xorriso->jigdo_values, &vlst, 0);
|
||||
if(plst == NULL || vlst == NULL) {
|
||||
is_default= 1;
|
||||
sprintf(line,"-jigdo clear 'all'\n");
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso, filter, fp, flag & 2);
|
||||
}
|
||||
while(plst != NULL && vlst != NULL) {
|
||||
sprintf(line,"-jigdo %s %s\n", Xorriso_lst_get_text(plst, 0),
|
||||
Text_shellsafe(Xorriso_lst_get_text(vlst, 0), sfe, 0));
|
||||
Xorriso_status_result(xorriso, filter, fp, flag & 2);
|
||||
plst= Xorriso_lst_get_prev(plst, 0);
|
||||
vlst= Xorriso_lst_get_prev(vlst, 0);
|
||||
}
|
||||
|
||||
if(xorriso->do_global_uid) {
|
||||
sprintf(line,"-uid %lu\n", (unsigned long) xorriso->global_uid);
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
@ -25,6 +25,21 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef Xorriso_standalonE
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
#include "../libjte/libjte.h"
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
#include <libjte/libjte.h>
|
||||
#endif
|
||||
|
||||
#endif /* ! Xorriso_standalonE */
|
||||
|
||||
#include "xorriso.h"
|
||||
#include "xorriso_private.h"
|
||||
@ -117,7 +132,7 @@ no_track:;
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
}
|
||||
}
|
||||
if(xorriso->alignment == 0) {
|
||||
if(xorriso->alignment == 0 && ! (xorriso->no_emul_toc & 1)) {
|
||||
ret= isoburn_needs_emulation(drive);
|
||||
if(ret > 0) {
|
||||
/* Take care that the session is padded up to the future NWA.
|
||||
@ -138,6 +153,12 @@ no_track:;
|
||||
} else if(padding < xorriso->alignment)
|
||||
padding= xorriso->alignment;
|
||||
}
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
if(xorriso->libjte_handle != NULL)
|
||||
padding= 0; /* JTE : no multi-session, no_emul_toc, padding in libisofs */
|
||||
#endif /* ! Xorriso_with_libjtE */
|
||||
|
||||
burn_track_define_data(tracks[0], 0, padding * 2048, 0, BURN_MODE1);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
|
||||
@ -213,6 +234,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 +331,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 +531,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 +566,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 {
|
||||
@ -691,23 +736,14 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
isoburn_igopt_set_scdbackup_tag(sopts, xorriso->scdbackup_tag_name,
|
||||
xorriso->scdbackup_tag_time,
|
||||
xorriso->scdbackup_tag_written);
|
||||
for(i= 0; i < 4; i++) {
|
||||
if(xorriso->appended_partitions[i][0] == 0)
|
||||
continue;
|
||||
ret= isoburn_igopt_set_partition_img(sopts, i + 1,
|
||||
xorriso->appended_part_types[i], xorriso->appended_partitions[i]);
|
||||
}
|
||||
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, µ);
|
||||
if(strlen(xorriso_id)<80)
|
||||
sprintf(xorriso_id+strlen(xorriso_id),
|
||||
", LIBISOBURN-%d.%d.%d", major, minor, micro);
|
||||
iso_lib_version(&major, &minor, µ);
|
||||
if(strlen(xorriso_id)<80)
|
||||
sprintf(xorriso_id+strlen(xorriso_id),
|
||||
", LIBISOFS-%d.%d.%d", major, minor, micro);
|
||||
burn_version(&major, &minor, µ);
|
||||
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--);
|
||||
@ -724,6 +760,23 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
xorriso->vol_expiration_time, xorriso->vol_effective_time,
|
||||
xorriso->vol_uuid);
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
if(xorriso->libjte_handle) {
|
||||
ret= libjte_set_outfile(xorriso->libjte_handle, xorriso->outdev);
|
||||
Xorriso_process_msg_queues(xorriso, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
||||
/* >>> Check whether the mandatory parameters are set */;
|
||||
|
||||
isoburn_igopt_attach_jte(sopts, xorriso->libjte_handle);
|
||||
|
||||
/* Padding to be done by libisofs, not by libburn */
|
||||
isoburn_igopt_set_tail_blocks(sopts, (uint32_t) (xorriso->padding / 2048));
|
||||
}
|
||||
#endif /* Xorriso_with_libjtE */
|
||||
|
||||
|
||||
/* Make final abort check before starting expensive activities */
|
||||
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
|
||||
if(ret<0)
|
||||
@ -934,6 +987,8 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
int flag)
|
||||
{
|
||||
int ret, size, free_bytes, i, aborting= 0, emul, buffer_fill= 50, last_sector;
|
||||
int iso_wait_counter= 0, iso_cancel_limit= 5, iso_break_limit= 20;
|
||||
int iso_cancelled= 0;
|
||||
struct burn_progress progress;
|
||||
char *status_text, date_text[80], *speed_unit, mem_text[8];
|
||||
enum burn_drive_status drive_status;
|
||||
@ -942,6 +997,9 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
double first_base_count= 0.0, norm= 0.0, now_time, fract_offset= 0.0;
|
||||
double measured_speed, speed_factor= 1385000, quot;
|
||||
time_t time_prediction;
|
||||
IsoImage *image= NULL;
|
||||
|
||||
image= isoburn_get_attached_image(drive);
|
||||
|
||||
start_time= Sfile_microtime(0);
|
||||
while(burn_drive_get_status(drive, NULL) == BURN_DRIVE_SPAWNING)
|
||||
@ -966,8 +1024,33 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
last_time= current_time;
|
||||
last_sector= progress.sector;
|
||||
drive_status= burn_drive_get_status(drive, &progress);
|
||||
if(drive_status == BURN_DRIVE_IDLE)
|
||||
|
||||
if(drive_status == BURN_DRIVE_IDLE) {
|
||||
|
||||
/* To avoid a race condition between burn_source and libisofs
|
||||
writer thread: Wait for ISO generator thread to have finished.
|
||||
*/
|
||||
if(image == NULL)
|
||||
break;
|
||||
if(!iso_image_generator_is_running(image))
|
||||
break;
|
||||
iso_wait_counter++;
|
||||
if(iso_wait_counter > iso_cancel_limit && !iso_cancelled) {
|
||||
isoburn_cancel_prepared_write(drive, NULL, 0);
|
||||
iso_cancelled= 1;
|
||||
} else if(iso_wait_counter > iso_break_limit) {
|
||||
|
||||
/* >>> This can be dangerous. xorriso will free memory objects which
|
||||
might be in use in the unstoppable libisofs thread.
|
||||
The current implementation of ecma119.c:bs_cancel() seems to
|
||||
wait for the writer thread to end. Probably one should make
|
||||
this a part of the libisofs API specs and break the loop
|
||||
directly after isoburn_cancel_prepared_write().
|
||||
*/
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
current_time= Sfile_microtime(0);
|
||||
if(drive_status == BURN_DRIVE_WRITING && progress.sectors > 0) {
|
||||
if(current_time-last_time>0.2)
|
||||
|
@ -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 "Oct 18, 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.
|
||||
@ -2201,7 +2221,7 @@ xorriso adds the traditional 300k of padding by default to all images.
|
||||
.br
|
||||
For images which will never get to a CD it is safe to use -padding 0 .
|
||||
.TP
|
||||
.B El Torito bootable ISO images:
|
||||
.B Bootable ISO images:
|
||||
.PP
|
||||
Contrary to published specifications many BIOSes will load an El Torito
|
||||
record from the first session on media and not from the last one, which
|
||||
@ -2218,6 +2238,14 @@ it is advised to patch it
|
||||
when a follow-up session gets written. But one should not rely on the
|
||||
capability to influence the bootability of the existing sessions, unless one
|
||||
can assume overwriteable media.
|
||||
.br
|
||||
There are booting mechanisms which do not use an El Torito record but rather
|
||||
start at the first bytes of the image: PC-BIOS MBR for hard-disk-like devices,
|
||||
MIPS Volume Header for old SGI computers, DEC Boot Block for old DECstation.
|
||||
.br
|
||||
The boot firmware EFI may use programs which are located in a FAT filesystem
|
||||
and announced by an MBR partition table entry.
|
||||
.br
|
||||
.TP
|
||||
\fB\-boot_image\fR "any"|"isolinux"|"grub"
|
||||
.br
|
||||
@ -2289,13 +2317,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 +2326,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 +2401,159 @@ 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
|
||||
\fBmips_path=\fRiso_rr_path declares a data file in the image to be a
|
||||
MIPS Big Endian boot file. Enable production of a MIPS Big Endian Volume
|
||||
Header. This is mutually exclusive with MBR production and mipsel_path=.
|
||||
It will overwrite the first 512 bytes of any data eventually provided by
|
||||
system_area=.
|
||||
Up to 15 boot files can be declared by mips_path=.
|
||||
.br
|
||||
\fBmipsel_path=\fRiso_rr_path declares a data file in the image to be the
|
||||
MIPS Little Endian boot file. This is mutually exclusive with MBR production
|
||||
and mips_path=. It will overwrite the first 512 bytes of any data eventually
|
||||
provided by system_area=.
|
||||
Only a single boot file can be declared by mipsel_path=.
|
||||
.br
|
||||
\fBmips_discard\fR revokes any boot file declarations made by mips_path=.
|
||||
This removes the ban on MBR production.
|
||||
.br
|
||||
.br
|
||||
.TP
|
||||
\fB\-append_partition\fR partition_number type_code disk_path
|
||||
Cause a prepared filesystem image to be appended to the ISO image and to be
|
||||
described by a partition table entry in an MBR at the start of the emerging
|
||||
ISO image. The partition entry will bear the size of the submitted file
|
||||
rounded up to the next multiple of 2048 bytes.
|
||||
.br
|
||||
Beware of subsequent multi-session runs. The appended partition will get
|
||||
overwritten.
|
||||
.br
|
||||
partition_number may be 1 to 4. Number 1 will put the whole ISO image into
|
||||
the unclaimed space before partition 1. So together with most xorriso MBR
|
||||
features, number 2 would be the most natural choice.
|
||||
.br
|
||||
The type_code may be "FAT12", "FAT16", "Linux",
|
||||
or a hexadecimal number between 0x00 and 0xff. Not all those numbers will
|
||||
yield usable results. For a list of codes search the Internet for
|
||||
"Partition Types" or run fdisk command "L".
|
||||
.br
|
||||
The disk_path must provide the necessary data bytes at commit time.
|
||||
An empty disk_path disables this feature for the given partition number.
|
||||
.TP
|
||||
.B Jigdo Template Extraction:
|
||||
.PP
|
||||
From man genisoimage:
|
||||
"Jigdo is a tool to help in the distribution of large files like CD and
|
||||
DVD images; see http://atterer.net/jigdo/ for more details. Debian CDs
|
||||
and DVD ISO images are published on the web in jigdo format to allow
|
||||
end users to download them more efficiently."
|
||||
.br
|
||||
xorriso can produce a .jigdo and a .template file together with a
|
||||
single-session ISO image.
|
||||
The .jigdo file contains checksums and symbolic file addresses.
|
||||
The .template file contains the compressed ISO image with reference tags
|
||||
instead of the content bytes of the listed files.
|
||||
.br
|
||||
Input for this process are the normal arguments for a xorriso session
|
||||
on a blank -outdev, and a .md5 file which lists those data files which may be
|
||||
listed in the .jigdo file and externally referenced in the .template file.
|
||||
Each designated file is represented in the .md5 file by a single text line:
|
||||
.br
|
||||
MD5 as 32 hex digits, 2 blanks, size as 12 decimal digits or blanks, 2 blanks,
|
||||
symbolic file address
|
||||
.br
|
||||
The file address in an .md5 line has to bear the same basename as the
|
||||
disk_path of the file which it shall match. The directory path of
|
||||
the file address is decisive for To=From mapping, not for file recognition.
|
||||
After eventual To=From mapping, the file address gets written into the .jigdo
|
||||
file. Jigdo restore tools will convert these addresses into really
|
||||
reachable data source addresses from which they can read.
|
||||
.br
|
||||
If the list of jigdo parameters is not empty, then xorriso will refuse to
|
||||
write to non-blank targets, it will disable multi-session emulation, and
|
||||
eventual padding will be counted as part of the ISO image.
|
||||
.br
|
||||
.TP
|
||||
\fB\-jigdo\fR parameter_name value
|
||||
Clear Jigdo Template Extraction parameter list or add a parameter to that list.
|
||||
The alias names are the corresponding genisoimage options. They are accepted
|
||||
as parameter names as well. Especially they are recognized by the -as mkisofs
|
||||
emulation command.
|
||||
.br
|
||||
Parameter \fBclear\fR with any value empties the whole list.
|
||||
No .jigdo and .template file will be produced.
|
||||
.br
|
||||
\fBtemplate_path\fR sets the disk_path for the .template file with the
|
||||
holed and compressed ISO image copy.
|
||||
.br
|
||||
Alias: -jigdo-template
|
||||
.br
|
||||
\fBjigdo_path\fR sets the disk_path for the .jigdo file with the checksums
|
||||
and download addresses for filling the holes in .template.
|
||||
.br
|
||||
Alias: -jigdo-jigdo
|
||||
.br
|
||||
\fBmd5_path\fR sets the disk_path where to find the .md5 input file.
|
||||
.br
|
||||
Alias: -md5-list
|
||||
.br
|
||||
\fBmin_size\fR sets the minimum size for a data file to be listed
|
||||
in the .jigdo file and being a hole in the .template file.
|
||||
.br
|
||||
Alias: -jigdo-min-file-size
|
||||
.br
|
||||
\fBexclude\fR adds a regular expression pattern which will get compared
|
||||
with the absolute disk_path of any data file. A match causes the file to
|
||||
stay in .template in any case.
|
||||
.br
|
||||
Alias: -jigdo-exclude
|
||||
.br
|
||||
\fBdemand_md5\fR adds a regular expression pattern which will get compared
|
||||
with the absolute disk_path of any data file that was not found in the .md5
|
||||
list. A match causes a MISHAP event.
|
||||
.br
|
||||
Alias: -jigdo-force-md5
|
||||
.br
|
||||
\fBmapping\fR adds a string pair of the form To=From to the parameter list.
|
||||
If a data file gets listed in the .jigdo file, then it is referred by the
|
||||
file address from its line in the .md5 file. This file address gets checked
|
||||
whether it begins with the From string. If so, then this string will be
|
||||
replaced by the To string and a ':' character, before it goes into the .jigdo
|
||||
file. The From string should end by a '/' character.
|
||||
.br
|
||||
Alias: -jigdo-map
|
||||
.br
|
||||
\fBcompression\fR chooses one of "bzip2" or "gzip" for the compression of
|
||||
the template file. The jigdo file is put out uncompressed.
|
||||
.br
|
||||
Alias: -jigdo-template-compress
|
||||
.br
|
||||
\fBchecksum_iso\fR chooses one or more of "md5", "sha1", "sha256", "sha512"
|
||||
for the auxiliary "# Image Hex" checksums in the jigdo file. The value may e.g.
|
||||
look like "md5,sha1,sha512". Value "all" chooses all available algorithms.
|
||||
Note that MD5 stays always enabled.
|
||||
.br
|
||||
Alias: -checksum_algorithm_iso
|
||||
.br
|
||||
\fBchecksum_template\fR is like checksum_iso but for "# Template Hex".
|
||||
.br
|
||||
Alias: -checksum_algorithm_template
|
||||
.TP
|
||||
.B Character sets:
|
||||
.PP
|
||||
@ -3251,8 +3436,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 +3449,20 @@ 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
|
||||
-mips-boot is the same as -boot_image any mips_path= .
|
||||
.br
|
||||
-mipsel-boot leads to mipsel_path= .
|
||||
.br
|
||||
-partition_offset number is
|
||||
-boot_image any partition_offset=number.
|
||||
.br
|
||||
Option -append_partition is supported.
|
||||
.br
|
||||
The options of genisoimage Jigdo Template Extraction are recognized and
|
||||
performed via xorriso option -jigdo. See the "Alias:" names there for the
|
||||
meaning of the genisoimage options.
|
||||
.br
|
||||
|
||||
Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR",
|
||||
and "\fBgenisofs\fR" are aliases for "mkisofs".
|
||||
.br
|
||||
@ -3315,11 +3518,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) ,
|
||||
|
@ -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
|
||||
|
||||
@ -56,7 +61,7 @@ struct XorrisO;
|
||||
*/
|
||||
#define Xorriso_header_version_majoR 0
|
||||
#define Xorriso_header_version_minoR 6
|
||||
#define Xorriso_header_version_micrO 0
|
||||
#define Xorriso_header_version_micrO 4
|
||||
|
||||
|
||||
/** 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
|
||||
@ -555,15 +562,15 @@ int Xorriso_lst_destroy_all(struct Xorriso_lsT **lstring, int flag);
|
||||
Xorriso_eval_problem_status()
|
||||
One should follow its eventual advice to abort.
|
||||
|
||||
Options with a varying number of arguments get them passed like
|
||||
Options with a varying number of arguments get then passed like
|
||||
Xorriso_interpreter(). E.g.:
|
||||
int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
They begin to read the arguments at position *idx and will see the list
|
||||
end either at the next argv which contains the -list_delimiter text or
|
||||
at argv[argc-1]. After the call, *idx will be the index of the first not
|
||||
yet interpreted argv.
|
||||
|
||||
The option functions will begin to read the arguments at position *idx
|
||||
and will see the list end either at the next argv which contains the
|
||||
-list_delimiter text or at argv[argc-1].
|
||||
After the call, *idx will be the index of the first not yet interpreted
|
||||
argv.
|
||||
*/
|
||||
|
||||
|
||||
@ -596,6 +603,10 @@ int Xorriso_option_alter_date(struct XorrisO *xorriso,
|
||||
char *time_type, char *timestring,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -append_partition */
|
||||
int Xorriso_option_append_partition(struct XorrisO *xorriso, char *partno_text,
|
||||
char *type_text, char *image_path, int flag);
|
||||
|
||||
/* Option -application_id */
|
||||
int Xorriso_option_application_id(struct XorrisO *xorriso, char *name,
|
||||
int flag);
|
||||
@ -847,6 +858,10 @@ int Xorriso_option_history(struct XorrisO *xorriso, char *line, int flag);
|
||||
int Xorriso_option_iso_rr_pattern(struct XorrisO *xorriso, char *mode,
|
||||
int flag);
|
||||
|
||||
/* Option -jigdo aspect argument */
|
||||
int Xorriso_option_jigdo(struct XorrisO *xorriso, char *aspect, char *arg,
|
||||
int flag);
|
||||
|
||||
/* Option -joliet "on"|"off" */
|
||||
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
@ -995,6 +1010,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 +1048,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 +1056,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,
|
||||
|
@ -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
|
||||
@ -498,7 +502,8 @@ inner dashes are interpreted as underscores.
|
||||
* Filter:: Filters for data file content
|
||||
* Writing:: Writing the result, drive control
|
||||
* SetWrite:: Settings for result writing
|
||||
* Bootable:: El Torito bootable ISO images
|
||||
* Bootable:: Bootable ISO images
|
||||
* Jigdo:: Jigdo Template Extraction
|
||||
* Charset:: Character sets
|
||||
* Exception:: Exception processing
|
||||
* DialogCtl:: Dialog mode control
|
||||
@ -1830,6 +1835,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 +1857,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 +1884,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
|
||||
@ -1969,10 +1989,10 @@ will be written according to the setting of option -acl.
|
||||
0 .
|
||||
|
||||
|
||||
File: xorriso.info, Node: Bootable, Next: Charset, Prev: SetWrite, Up: Options
|
||||
File: xorriso.info, Node: Bootable, Next: Jigdo, Prev: SetWrite, Up: Options
|
||||
|
||||
9.10 El Torito bootable ISO images
|
||||
==================================
|
||||
9.10 Bootable ISO images
|
||||
========================
|
||||
|
||||
Contrary to published specifications many BIOSes will load an El Torito
|
||||
record from the first session on media and not from the last one, which
|
||||
@ -1986,6 +2006,12 @@ If a boot image from ISOLINUX or GRUB is known to be present on media
|
||||
then it is advised to patch it when a follow-up session gets written.
|
||||
But one should not rely on the capability to influence the bootability
|
||||
of the existing sessions, unless one can assume overwriteable media.
|
||||
There are booting mechanisms which do not use an El Torito record but
|
||||
rather start at the first bytes of the image: PC-BIOS MBR for
|
||||
hard-disk-like devices, MIPS Volume Header for old SGI computers, DEC
|
||||
Boot Block for old DECstation.
|
||||
The boot firmware EFI may use programs which are located in a FAT
|
||||
filesystem and announced by an MBR partition table entry.
|
||||
|
||||
-boot_image "any"|"isolinux"|"grub"
|
||||
"discard"|"keep"|"patch"|"show_status"|bootspec|"next"
|
||||
@ -2039,12 +2065,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 +2073,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,11 +2136,138 @@ 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.
|
||||
*mips_path=*iso_rr_path declares a data file in the image to be a
|
||||
MIPS Big Endian boot file. Enable production of a MIPS Big Endian
|
||||
Volume Header. This is mutually exclusive with MBR production and
|
||||
mipsel_path=. It will overwrite the first 512 bytes of any data
|
||||
eventually provided by system_area=. Up to 15 boot files can be
|
||||
declared by mips_path=.
|
||||
*mipsel_path=*iso_rr_path declares a data file in the image to be
|
||||
the MIPS Little Endian boot file. This is mutually exclusive with
|
||||
MBR production and mips_path=. It will overwrite the first 512
|
||||
bytes of any data eventually provided by system_area=. Only a
|
||||
single boot file can be declared by mipsel_path=.
|
||||
*mips_discard* revokes any boot file declarations made by
|
||||
mips_path=. This removes the ban on MBR production.
|
||||
|
||||
|
||||
-append_partition partition_number type_code disk_path
|
||||
Cause a prepared filesystem image to be appended to the ISO image
|
||||
and to be described by a partition table entry in an MBR at the
|
||||
start of the emerging ISO image. The partition entry will bear the
|
||||
size of the submitted file rounded up to the next multiple of 2048
|
||||
bytes.
|
||||
Beware of subsequent multi-session runs. The appended partition
|
||||
will get overwritten.
|
||||
partition_number may be 1 to 4. Number 1 will put the whole ISO
|
||||
image into the unclaimed space before partition 1. So together
|
||||
with most xorriso MBR features, number 2 would be the most natural
|
||||
choice.
|
||||
The type_code may be "FAT12", "FAT16", "Linux", or a hexadecimal
|
||||
number between 0x00 and 0xff. Not all those numbers will yield
|
||||
usable results. For a list of codes search the Internet for
|
||||
"Partition Types" or run fdisk command "L".
|
||||
The disk_path must provide the necessary data bytes at commit time.
|
||||
An empty disk_path disables this feature for the given partition
|
||||
number.
|
||||
|
||||
|
||||
File: xorriso.info, Node: Charset, Next: Exception, Prev: Bootable, Up: Options
|
||||
File: xorriso.info, Node: Jigdo, Next: Charset, Prev: Bootable, Up: Options
|
||||
|
||||
9.11 Character sets
|
||||
9.11 Jigdo Template Extraction
|
||||
==============================
|
||||
|
||||
From man genisoimage: "Jigdo is a tool to help in the distribution of
|
||||
large files like CD and DVD images; see http://atterer.net/jigdo/ for
|
||||
more details. Debian CDs and DVD ISO images are published on the web in
|
||||
jigdo format to allow end users to download them more efficiently."
|
||||
xorriso can produce a .jigdo and a .template file together with a
|
||||
single-session ISO image. The .jigdo file contains checksums and
|
||||
symbolic file addresses. The .template file contains the compressed
|
||||
ISO image with reference tags instead of the content bytes of the
|
||||
listed files.
|
||||
Input for this process are the normal arguments for a xorriso session
|
||||
on a blank -outdev, and a .md5 file which lists those data files which
|
||||
may be listed in the .jigdo file and externally referenced in the
|
||||
.template file. Each designated file is represented in the .md5 file
|
||||
by a single text line:
|
||||
MD5 as 32 hex digits, 2 blanks, size as 12 decimal digits or blanks, 2
|
||||
blanks, symbolic file address
|
||||
The file address in an .md5 line has to bear the same basename as the
|
||||
disk_path of the file which it shall match. The directory path of the
|
||||
file address is decisive for To=From mapping, not for file recognition.
|
||||
After eventual To=From mapping, the file address gets written into the
|
||||
.jigdo file. Jigdo restore tools will convert these addresses into
|
||||
really reachable data source addresses from which they can read.
|
||||
If the list of jigdo parameters is not empty, then xorriso will refuse
|
||||
to write to non-blank targets, it will disable multi-session emulation,
|
||||
and eventual padding will be counted as part of the ISO image.
|
||||
|
||||
-jigdo parameter_name value
|
||||
Clear Jigdo Template Extraction parameter list or add a parameter
|
||||
to that list. The alias names are the corresponding genisoimage
|
||||
options. They are accepted as parameter names as well. Especially
|
||||
they are recognized by the -as mkisofs emulation command.
|
||||
Parameter *clear* with any value empties the whole list. No
|
||||
.jigdo and .template file will be produced.
|
||||
*template_path* sets the disk_path for the .template file with the
|
||||
holed and compressed ISO image copy.
|
||||
Alias: -jigdo-template
|
||||
*jigdo_path* sets the disk_path for the .jigdo file with the
|
||||
checksums and download addresses for filling the holes in
|
||||
.template.
|
||||
Alias: -jigdo-jigdo
|
||||
*md5_path* sets the disk_path where to find the .md5 input file.
|
||||
Alias: -md5-list
|
||||
*min_size* sets the minimum size for a data file to be listed in
|
||||
the .jigdo file and being a hole in the .template file.
|
||||
Alias: -jigdo-min-file-size
|
||||
*exclude* adds a regular expression pattern which will get compared
|
||||
with the absolute disk_path of any data file. A match causes the
|
||||
file to stay in .template in any case.
|
||||
Alias: -jigdo-exclude
|
||||
*demand_md5* adds a regular expression pattern which will get
|
||||
compared with the absolute disk_path of any data file that was not
|
||||
found in the .md5 list. A match causes a MISHAP event.
|
||||
Alias: -jigdo-force-md5
|
||||
*mapping* adds a string pair of the form To=From to the parameter
|
||||
list. If a data file gets listed in the .jigdo file, then it is
|
||||
referred by the file address from its line in the .md5 file. This
|
||||
file address gets checked whether it begins with the From string.
|
||||
If so, then this string will be replaced by the To string and a
|
||||
':' character, before it goes into the .jigdo file. The From
|
||||
string should end by a '/' character.
|
||||
Alias: -jigdo-map
|
||||
*compression* chooses one of "bzip2" or "gzip" for the compression
|
||||
of the template file. The jigdo file is put out uncompressed.
|
||||
Alias: -jigdo-template-compress
|
||||
*checksum_iso* chooses one or more of "md5", "sha1", "sha256",
|
||||
"sha512" for the auxiliary "# Image Hex" checksums in the jigdo
|
||||
file. The value may e.g. look like "md5,sha1,sha512". Value "all"
|
||||
chooses all available algorithms. Note that MD5 stays always
|
||||
enabled.
|
||||
Alias: -checksum_algorithm_iso
|
||||
*checksum_template* is like checksum_iso but for "# Template Hex".
|
||||
Alias: -checksum_algorithm_template
|
||||
|
||||
|
||||
File: xorriso.info, Node: Charset, Next: Exception, Prev: Jigdo, Up: Options
|
||||
|
||||
9.12 Character sets
|
||||
===================
|
||||
|
||||
File names are strings of non-zero bytes with 8 bit each. Unfortunately
|
||||
@ -2161,7 +2319,7 @@ display on your terminal.
|
||||
|
||||
File: xorriso.info, Node: Exception, Next: DialogCtl, Prev: Charset, Up: Options
|
||||
|
||||
9.12 Exception processing
|
||||
9.13 Exception processing
|
||||
=========================
|
||||
|
||||
Since the tasks of xorriso are manifold and prone to external
|
||||
@ -2250,7 +2408,7 @@ failed unexpectedly.
|
||||
|
||||
File: xorriso.info, Node: DialogCtl, Next: Inquiry, Prev: Exception, Up: Options
|
||||
|
||||
9.13 Dialog mode control
|
||||
9.14 Dialog mode control
|
||||
========================
|
||||
|
||||
-dialog "on"|"off"|"single_line"
|
||||
@ -2301,7 +2459,7 @@ File: xorriso.info, Node: DialogCtl, Next: Inquiry, Prev: Exception, Up: Opt
|
||||
|
||||
File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Options
|
||||
|
||||
9.14 Drive and media related inquiry actions
|
||||
9.15 Drive and media related inquiry actions
|
||||
============================================
|
||||
|
||||
-devices
|
||||
@ -2384,7 +2542,7 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Opti
|
||||
|
||||
File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Options
|
||||
|
||||
9.15 Navigation in ISO image and disk filesystem
|
||||
9.16 Navigation in ISO image and disk filesystem
|
||||
================================================
|
||||
|
||||
-cd iso_rr_path
|
||||
@ -2558,7 +2716,7 @@ File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Options
|
||||
|
||||
File: xorriso.info, Node: Verify, Next: Restore, Prev: Navigate, Up: Options
|
||||
|
||||
9.16 Evaluation of readability and recovery
|
||||
9.17 Evaluation of readability and recovery
|
||||
===========================================
|
||||
|
||||
It is not uncommon that optical media produce read errors. The reasons
|
||||
@ -2721,7 +2879,7 @@ transmission errors.
|
||||
|
||||
File: xorriso.info, Node: Restore, Next: Emulation, Prev: Verify, Up: Options
|
||||
|
||||
9.17 osirrox ISO-to-disk restore options
|
||||
9.18 osirrox ISO-to-disk restore options
|
||||
========================================
|
||||
|
||||
Normally xorriso only writes to disk files which were given as stdio:
|
||||
@ -2850,7 +3008,7 @@ The directory permissions on disk have to allow rwx.
|
||||
|
||||
File: xorriso.info, Node: Emulation, Next: Scripting, Prev: Restore, Up: Options
|
||||
|
||||
9.18 Command compatibility emulations (cdrtools)
|
||||
9.19 Command compatibility emulations (cdrtools)
|
||||
================================================
|
||||
|
||||
Writing of ISO 9660 on CD is traditionally done by program mkisofs as
|
||||
@ -2905,13 +3063,24 @@ 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.
|
||||
-mips-boot is the same as -boot_image any mips_path= .
|
||||
-mipsel-boot leads to mipsel_path= .
|
||||
-partition_offset number is -boot_image any
|
||||
partition_offset=number.
|
||||
Option -append_partition is supported.
|
||||
The options of genisoimage Jigdo Template Extraction are
|
||||
recognized and performed via xorriso option -jigdo. See the
|
||||
"Alias:" names there for the meaning of the genisoimage options.
|
||||
|
||||
Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are
|
||||
aliases for "mkisofs".
|
||||
If xorriso is started with one of the leafnames "xorrisofs",
|
||||
@ -2955,11 +3124,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)
|
||||
@ -2989,7 +3158,7 @@ programs trigger comparable actions.
|
||||
|
||||
File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Options
|
||||
|
||||
9.19 Scripting, dialog and program control features
|
||||
9.20 Scripting, dialog and program control features
|
||||
===================================================
|
||||
|
||||
-no_rc
|
||||
@ -3121,7 +3290,7 @@ File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Op
|
||||
|
||||
File: xorriso.info, Node: Frontend, Next: ExDevices, Prev: Scripting, Up: Options
|
||||
|
||||
9.20 Support for frontend programs via stdin and stdout
|
||||
9.21 Support for frontend programs via stdin and stdout
|
||||
=======================================================
|
||||
|
||||
-pkt_output "on"|"off"
|
||||
@ -3711,21 +3880,23 @@ 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)
|
||||
* -alter_date sets timestamps in ISO image: Manip. (line 146)
|
||||
* -alter_date_r sets timestamps in ISO image: Manip. (line 166)
|
||||
* -append_partition adds arbitrary file after image end: Bootable.
|
||||
(line 178)
|
||||
* -application_id sets application id: SetWrite. (line 90)
|
||||
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
|
||||
* -assert_volid rejects undesired images: Loading. (line 65)
|
||||
* -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)
|
||||
* -boot_image controls bootability: Bootable. (line 26)
|
||||
* -calm_drive reduces drive activity: Loading. (line 209)
|
||||
* -cd sets working directory in ISO: Navigate. (line 7)
|
||||
* -cdx sets working directory on disk: Navigate. (line 16)
|
||||
@ -3740,7 +3911,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 +3919,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 +3932,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 +3953,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)
|
||||
@ -3796,6 +3967,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -in_charset sets input character set: Loading. (line 73)
|
||||
* -indev aquires a drive for input: AqDrive. (line 22)
|
||||
* -iso_rr_pattern controls pattern expansion: Manip. (line 10)
|
||||
* -jigdo clears JTE or sets input/output character set: Jigdo.
|
||||
(line 33)
|
||||
* -joliet enables production of Joliet tree: SetWrite. (line 10)
|
||||
* -list_delimiter replaces '--': Scripting. (line 38)
|
||||
* -list_formats lists available formats: Writing. (line 107)
|
||||
@ -3828,16 +4001,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 130)
|
||||
* -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 +4024,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 118)
|
||||
* -reassure enables confirmation question: DialogCtl. (line 28)
|
||||
* -report_about controls verbosity: Exception. (line 55)
|
||||
* -return_with controls exit value: Exception. (line 39)
|
||||
@ -3860,7 +4034,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 140)
|
||||
* -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 +4048,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 +4066,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 +4086,23 @@ 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)
|
||||
* Appended Filesystem Image, -append_partition: Bootable. (line 178)
|
||||
* 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 140)
|
||||
* Blank media, _definition: Media. (line 29)
|
||||
* Blind growing, _definition: Methods. (line 40)
|
||||
* Bootability, control, -boot_image: Bootable. (line 20)
|
||||
* cdrecord, Emulation: Emulation. (line 74)
|
||||
* Bootability, control, -boot_image: Bootable. (line 26)
|
||||
* cdrecord, Emulation: Emulation. (line 85)
|
||||
* 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 +4130,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 118)
|
||||
* Emulation, cdrecord, -as: Emulation. (line 85)
|
||||
* Emulation, mkisofs, -as: Emulation. (line 16)
|
||||
* Emulation, pacifier form, -pacifier: Emulation. (line 119)
|
||||
* Emulation, pacifier form, -pacifier: Emulation. (line 130)
|
||||
* Examples: Examples. (line 6)
|
||||
* Filter, _definition: Filter. (line 6)
|
||||
* Filter, apply to file tree, -set_filter_r: Filter. (line 84)
|
||||
@ -3968,8 +4143,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 +4153,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)
|
||||
@ -4011,13 +4187,16 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Insert, pathspecs, -add: Insert. (line 42)
|
||||
* Insert, piece of data file, -cut_out: Insert. (line 126)
|
||||
* iso_rr_path, _definition: Insert. (line 7)
|
||||
* Jigdo Template Extraction, -jigdo: Jigdo. (line 33)
|
||||
* Jigdo Template Extraction, _definition: Jigdo. (line 6)
|
||||
* 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 123)
|
||||
* MD5, control handling, -md5: Loading. (line 136)
|
||||
* Media, erase, -blank: Writing. (line 45)
|
||||
* Media, format, -format: Writing. (line 69)
|
||||
* Media, list formats, -list_formats: Writing. (line 107)
|
||||
* MIPS boot file, activation: Bootable. (line 162)
|
||||
* mkisofs, Emulation: Emulation. (line 16)
|
||||
* Modifying, _definition: Methods. (line 27)
|
||||
* Multi-session media, _definition: Media. (line 7)
|
||||
@ -4039,11 +4218,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 148)
|
||||
* Partition table, _definiton: Bootable. (line 130)
|
||||
* Pathspec, _definition: SetInsert. (line 120)
|
||||
* Pattern expansion, _definition: Processing. (line 22)
|
||||
* Pattern expansion, for disk paths, -disk_pattern: Insert. (line 31)
|
||||
@ -4094,7 +4274,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 123)
|
||||
* 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 +4288,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, bootability, -boot_image: Bootable. (line 20)
|
||||
* Write, buffer syncing, -stdio_sync: SetWrite. (line 201)
|
||||
* Write, close media, -close: SetWrite. (line 218)
|
||||
* Write, block size, -dvd_obs: SetWrite. (line 209)
|
||||
* Write, bootability, -boot_image: Bootable. (line 26)
|
||||
* 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 +4319,54 @@ 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: AqDrive24789
|
||||
Node: Loading27695
|
||||
Node: Insert39874
|
||||
Node: SetInsert48231
|
||||
Node: Manip56798
|
||||
Node: CmdFind65479
|
||||
Node: Filter75430
|
||||
Node: Writing79779
|
||||
Node: SetWrite86068
|
||||
Node: Bootable98019
|
||||
Node: Jigdo109361
|
||||
Node: Charset113619
|
||||
Node: Exception116370
|
||||
Node: DialogCtl120885
|
||||
Node: Inquiry123230
|
||||
Node: Navigate127360
|
||||
Node: Verify134958
|
||||
Node: Restore143378
|
||||
Node: Emulation150034
|
||||
Node: Scripting158181
|
||||
Node: Frontend163743
|
||||
Node: Examples164944
|
||||
Node: ExDevices166113
|
||||
Node: ExCreate166747
|
||||
Node: ExDialog168021
|
||||
Node: ExGrowing169283
|
||||
Node: ExModifying170085
|
||||
Node: ExBootable170586
|
||||
Node: ExCharset171133
|
||||
Node: ExPseudo171961
|
||||
Node: ExCdrecord172855
|
||||
Node: ExMkisofs173170
|
||||
Node: ExGrowisofs174173
|
||||
Node: ExException175297
|
||||
Node: ExTime175751
|
||||
Node: ExIncBackup176210
|
||||
Node: ExRestore179682
|
||||
Node: ExRecovery180651
|
||||
Node: Files181217
|
||||
Node: Seealso182445
|
||||
Node: Legal182969
|
||||
Node: CommandIdx183891
|
||||
Node: ConceptIdx197977
|
||||
|
||||
End Tag Table
|
||||
|
@ -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 "Oct 19, 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.
|
||||
@*
|
||||
@ -710,7 +714,8 @@ inner dashes are interpreted as underscores.
|
||||
* Filter:: Filters for data file content
|
||||
* Writing:: Writing the result, drive control
|
||||
* SetWrite:: Settings for result writing
|
||||
* Bootable:: El Torito bootable ISO images
|
||||
* Bootable:: Bootable ISO images
|
||||
* Jigdo:: Jigdo Template Extraction
|
||||
* Charset:: Character sets
|
||||
* Exception:: Exception processing
|
||||
* DialogCtl:: Dialog mode control
|
||||
@ -2461,6 +2466,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 +2499,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 +2536,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
|
||||
@ -2654,9 +2677,9 @@ xorriso adds the traditional 300k of padding by default to all images.
|
||||
For images which will never get to a CD it is safe to use -padding 0 .
|
||||
@end table
|
||||
@c man .TP
|
||||
@c man .B El Torito bootable ISO images:
|
||||
@node Bootable, Charset, SetWrite, Options
|
||||
@section El Torito bootable ISO images
|
||||
@c man .B Bootable ISO images:
|
||||
@node Bootable, Jigdo, SetWrite, Options
|
||||
@section Bootable ISO images
|
||||
@c man .PP
|
||||
Contrary to published specifications many BIOSes will load an El Torito
|
||||
record from the first session on media and not from the last one, which
|
||||
@ -2673,6 +2696,14 @@ it is advised to patch it
|
||||
when a follow-up session gets written. But one should not rely on the
|
||||
capability to influence the bootability of the existing sessions, unless one
|
||||
can assume overwriteable media.
|
||||
@*
|
||||
There are booting mechanisms which do not use an El Torito record but rather
|
||||
start at the first bytes of the image: PC-BIOS MBR for hard-disk-like devices,
|
||||
MIPS Volume Header for old SGI computers, DEC Boot Block for old DECstation.
|
||||
@*
|
||||
The boot firmware EFI may use programs which are located in a FAT filesystem
|
||||
and announced by an MBR partition table entry.
|
||||
@*
|
||||
@table @asis
|
||||
@sp 1
|
||||
@c man .TP
|
||||
@ -2752,13 +2783,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 +2792,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,10 +2870,178 @@ 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.
|
||||
@*
|
||||
@cindex MIPS boot file, activation
|
||||
@strong{mips_path=}iso_rr_path declares a data file in the image to be a
|
||||
MIPS Big Endian boot file. Enable production of a MIPS Big Endian Volume
|
||||
Header. This is mutually exclusive with MBR production and mipsel_path=.
|
||||
It will overwrite the first 512 bytes of any data eventually provided by
|
||||
system_area=.
|
||||
Up to 15 boot files can be declared by mips_path=.
|
||||
@*
|
||||
@strong{mipsel_path=}iso_rr_path declares a data file in the image to be the
|
||||
MIPS Little Endian boot file. This is mutually exclusive with MBR production
|
||||
and mips_path=. It will overwrite the first 512 bytes of any data eventually
|
||||
provided by system_area=.
|
||||
Only a single boot file can be declared by mipsel_path=.
|
||||
@*
|
||||
@strong{mips_discard} revokes any boot file declarations made by mips_path=.
|
||||
This removes the ban on MBR production.
|
||||
@*
|
||||
@end table
|
||||
@*
|
||||
@table @asis
|
||||
@sp 1
|
||||
@c man .TP
|
||||
@item -append_partition partition_number type_code disk_path
|
||||
@kindex -append_partition adds arbitrary file after image end
|
||||
@cindex Appended Filesystem Image, -append_partition
|
||||
Cause a prepared filesystem image to be appended to the ISO image and to be
|
||||
described by a partition table entry in an MBR at the start of the emerging
|
||||
ISO image. The partition entry will bear the size of the submitted file
|
||||
rounded up to the next multiple of 2048 bytes.
|
||||
@*
|
||||
Beware of subsequent multi-session runs. The appended partition will get
|
||||
overwritten.
|
||||
@*
|
||||
partition_number may be 1 to 4. Number 1 will put the whole ISO image into
|
||||
the unclaimed space before partition 1. So together with most xorriso MBR
|
||||
features, number 2 would be the most natural choice.
|
||||
@*
|
||||
The type_code may be "FAT12", "FAT16", "Linux",
|
||||
or a hexadecimal number between 0x00 and 0xff. Not all those numbers will
|
||||
yield usable results. For a list of codes search the Internet for
|
||||
"Partition Types" or run fdisk command "L".
|
||||
@*
|
||||
The disk_path must provide the necessary data bytes at commit time.
|
||||
An empty disk_path disables this feature for the given partition number.
|
||||
@end table
|
||||
@c man .TP
|
||||
@c man .B Jigdo Template Extraction:
|
||||
@node Jigdo, Charset, Bootable, Options
|
||||
@section Jigdo Template Extraction
|
||||
@c man .PP
|
||||
@cindex Jigdo Template Extraction, _definition
|
||||
From man genisoimage:
|
||||
"Jigdo is a tool to help in the distribution of large files like CD and
|
||||
DVD images; see http://atterer.net/jigdo/ for more details. Debian CDs
|
||||
and DVD ISO images are published on the web in jigdo format to allow
|
||||
end users to download them more efficiently."
|
||||
@*
|
||||
xorriso can produce a .jigdo and a .template file together with a
|
||||
single-session ISO image.
|
||||
The .jigdo file contains checksums and symbolic file addresses.
|
||||
The .template file contains the compressed ISO image with reference tags
|
||||
instead of the content bytes of the listed files.
|
||||
@*
|
||||
Input for this process are the normal arguments for a xorriso session
|
||||
on a blank -outdev, and a .md5 file which lists those data files which may be
|
||||
listed in the .jigdo file and externally referenced in the .template file.
|
||||
Each designated file is represented in the .md5 file by a single text line:
|
||||
@*
|
||||
MD5 as 32 hex digits, 2 blanks, size as 12 decimal digits or blanks, 2 blanks,
|
||||
symbolic file address
|
||||
@*
|
||||
The file address in an .md5 line has to bear the same basename as the
|
||||
disk_path of the file which it shall match. The directory path of
|
||||
the file address is decisive for To=From mapping, not for file recognition.
|
||||
After eventual To=From mapping, the file address gets written into the .jigdo
|
||||
file. Jigdo restore tools will convert these addresses into really
|
||||
reachable data source addresses from which they can read.
|
||||
@*
|
||||
If the list of jigdo parameters is not empty, then xorriso will refuse to
|
||||
write to non-blank targets, it will disable multi-session emulation, and
|
||||
eventual padding will be counted as part of the ISO image.
|
||||
@*
|
||||
@table @asis
|
||||
@sp 1
|
||||
@c man .TP
|
||||
@item -jigdo parameter_name value
|
||||
@kindex -jigdo clears JTE or sets input/output character set
|
||||
@cindex Jigdo Template Extraction, -jigdo
|
||||
Clear Jigdo Template Extraction parameter list or add a parameter to that list.
|
||||
The alias names are the corresponding genisoimage options. They are accepted
|
||||
as parameter names as well. Especially they are recognized by the -as mkisofs
|
||||
emulation command.
|
||||
@*
|
||||
Parameter @strong{clear} with any value empties the whole list.
|
||||
No .jigdo and .template file will be produced.
|
||||
@*
|
||||
@strong{template_path} sets the disk_path for the .template file with the
|
||||
holed and compressed ISO image copy.
|
||||
@*
|
||||
Alias: -jigdo-template
|
||||
@*
|
||||
@strong{jigdo_path} sets the disk_path for the .jigdo file with the checksums
|
||||
and download addresses for filling the holes in .template.
|
||||
@*
|
||||
Alias: -jigdo-jigdo
|
||||
@*
|
||||
@strong{md5_path} sets the disk_path where to find the .md5 input file.
|
||||
@*
|
||||
Alias: -md5-list
|
||||
@*
|
||||
@strong{min_size} sets the minimum size for a data file to be listed
|
||||
in the .jigdo file and being a hole in the .template file.
|
||||
@*
|
||||
Alias: -jigdo-min-file-size
|
||||
@*
|
||||
@strong{exclude} adds a regular expression pattern which will get compared
|
||||
with the absolute disk_path of any data file. A match causes the file to
|
||||
stay in .template in any case.
|
||||
@*
|
||||
Alias: -jigdo-exclude
|
||||
@*
|
||||
@strong{demand_md5} adds a regular expression pattern which will get compared
|
||||
with the absolute disk_path of any data file that was not found in the .md5
|
||||
list. A match causes a MISHAP event.
|
||||
@*
|
||||
Alias: -jigdo-force-md5
|
||||
@*
|
||||
@strong{mapping} adds a string pair of the form To=From to the parameter list.
|
||||
If a data file gets listed in the .jigdo file, then it is referred by the
|
||||
file address from its line in the .md5 file. This file address gets checked
|
||||
whether it begins with the From string. If so, then this string will be
|
||||
replaced by the To string and a ':' character, before it goes into the .jigdo
|
||||
file. The From string should end by a '/' character.
|
||||
@*
|
||||
Alias: -jigdo-map
|
||||
@*
|
||||
@strong{compression} chooses one of "bzip2" or "gzip" for the compression of
|
||||
the template file. The jigdo file is put out uncompressed.
|
||||
@*
|
||||
Alias: -jigdo-template-compress
|
||||
@*
|
||||
@strong{checksum_iso} chooses one or more of "md5", "sha1", "sha256", "sha512"
|
||||
for the auxiliary "# Image Hex" checksums in the jigdo file. The value may e.g.
|
||||
look like "md5,sha1,sha512". Value "all" chooses all available algorithms.
|
||||
Note that MD5 stays always enabled.
|
||||
@*
|
||||
Alias: -checksum_algorithm_iso
|
||||
@*
|
||||
@strong{checksum_template} is like checksum_iso but for "# Template Hex".
|
||||
@*
|
||||
Alias: -checksum_algorithm_template
|
||||
@end table
|
||||
@c man .TP
|
||||
@c man .B Character sets:
|
||||
@node Charset, Exception, Bootable, Options
|
||||
@node Charset, Exception, Jigdo, Options
|
||||
@section Character sets
|
||||
@c man .PP
|
||||
@cindex Character Set, _definition
|
||||
@ -3885,15 +4088,34 @@ 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{}mips-boot is the same as -boot_image any mips_path= .
|
||||
@*
|
||||
@minus{}mipsel-boot leads to mipsel_path= .
|
||||
@*
|
||||
@minus{}partition_offset number is
|
||||
@minus{}boot_image any partition_offset=number.
|
||||
@*
|
||||
Option @minus{}append_partition is supported.
|
||||
@*
|
||||
The options of genisoimage Jigdo Template Extraction are recognized and
|
||||
performed via xorriso option -jigdo. See the "Alias:" names there for the
|
||||
meaning of the genisoimage options.
|
||||
@*
|
||||
@sp 1
|
||||
|
||||
Personalites "@strong{xorrisofs}", "@strong{genisoimage}",
|
||||
and "@strong{genisofs}" are aliases for "mkisofs".
|
||||
@*
|
||||
@ -3954,11 +4176,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) ,
|
||||
|
@ -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>
|
||||
@ -82,7 +82,9 @@ but rather not with CD, DVD-R, DVD+R, BD-R.
|
||||
<DT>libacl and libacl-devel</DT>
|
||||
<DD>eventually allow on GNU/Linux to get and set ACLs.</DD>
|
||||
<DT>zlib and zlib-devel</DT>
|
||||
<DD>eventually allow zisofs and gzip compression.</DD>
|
||||
<DD>eventually allow zisofs, gzip compression, and Jigdo file production.</DD>
|
||||
<DT>libbz2 and libbz2-devel</DT>
|
||||
<DD>eventually allow bzip2 compression of Jigdo template files.</DD>
|
||||
</DL>
|
||||
</P>
|
||||
|
||||
@ -142,7 +144,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 +442,19 @@ files or trees to disk:
|
||||
<P>
|
||||
<DL>
|
||||
<DT><H3>Download as source code (see README):</H3></DT>
|
||||
<DD><A HREF="xorriso-0.6.0.tar.gz">xorriso-0.6.0.tar.gz</A>
|
||||
(1650 KB).
|
||||
<DD><A HREF="xorriso-0.6.4.tar.gz">xorriso-0.6.4.tar.gz</A>
|
||||
(1670 KB).
|
||||
</DD>
|
||||
<DD>(Released 02 Jul 2010)</DD>
|
||||
<DD><A HREF="xorriso-0.6.0.tar.gz.sig">xorriso-0.6.0.tar.gz.sig</A></DD>
|
||||
<DD>(Released 26 Oct 2010)</DD>
|
||||
<DD><A HREF="xorriso-0.6.4.tar.gz.sig">xorriso-0.6.4.tar.gz.sig</A></DD>
|
||||
<DD>
|
||||
(detached GPG signature for verification by
|
||||
<KBD>gpg --verify xorriso-0.6.0.tar.gz.sig xorriso-0.6.0.tar.gz</KBD>).
|
||||
<KBD>gpg --verify xorriso-0.6.4.tar.gz.sig xorriso-0.6.4.tar.gz</KBD>).
|
||||
</DD>
|
||||
<DD>
|
||||
Also on <A HREF="http://www.gnu.org/prep/ftp.html">
|
||||
mirrors of ftp://ftp.gnu.org/gnu/ </A>
|
||||
as xorriso/xorriso-0.6.0.tar.gz
|
||||
as xorriso/xorriso-0.6.4.tar.gz
|
||||
</DD>
|
||||
</DL>
|
||||
</DD>
|
||||
@ -479,10 +482,9 @@ as xorriso/xorriso-0.6.0.tar.gz
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
Bug fixes towards xorriso-0.5.8:
|
||||
Bug fixes towards xorriso-0.6.2:
|
||||
<UL>
|
||||
<LI>-check_media patch_lba0= could install wrong image size</LI>
|
||||
<LI>-as mkisofs option -volset was wrongly interpreted like -volid</LI>
|
||||
<LI>- none -</LI>
|
||||
<!--
|
||||
<LI>- none -</LI>
|
||||
-->
|
||||
@ -500,26 +502,23 @@ Bug fixes in .pl01 towards xorriso-:
|
||||
-->
|
||||
|
||||
<P>
|
||||
Enhancements towards previous stable version xorriso-0.5.8:
|
||||
Enhancements towards previous stable version xorriso-0.6.2:
|
||||
<UL>
|
||||
<LI>Enabled use of libreadline on Solaris</LI>
|
||||
<LI>New find test -disk_name</LI>
|
||||
<LI>New option -hide, -find action -hide, -find test -hidden</LI>
|
||||
<LI>New -boot_image bootspec cat_hidden=on</LI>
|
||||
|
||||
<LI>
|
||||
New options -copyright_file , -biblio_file , -abstract_file
|
||||
New option -jigdo
|
||||
</LI>
|
||||
<LI>
|
||||
New option -read_mkisofsrc interprets .mkisofsrc
|
||||
New -as mkisofs options -jigdo-* , -md5-list , -checksum_algorithm_* as of genisoimage
|
||||
</LI>
|
||||
<LI>
|
||||
Implemented -as mkisofs options -hide, -hide-joliet, -hide-list, -hide-joliet-list
|
||||
New bootspecs mips_path= and mipsel_path= for Debian MIPS releases
|
||||
</LI>
|
||||
<LI>
|
||||
New -as mkisofs option --boot-catalog-hide
|
||||
New -as mkisofs options -mips-boot and -mipsel-boot
|
||||
</LI>
|
||||
<LI>
|
||||
Implemented -as mkisofs options -dir-mode, -file-mode, -abstract, -biblio, -copyright
|
||||
New option -append_partition, -as mkisofs -append_partition
|
||||
</LI>
|
||||
|
||||
<!--
|
||||
@ -532,34 +531,38 @@ Implemented -as mkisofs options -dir-mode, -file-mode, -abstract, -biblio, -copy
|
||||
|
||||
<P>
|
||||
<H3>
|
||||
Libburnia software copies included in GNU xorriso:
|
||||
Software copies included in GNU xorriso:
|
||||
</H3>
|
||||
<DL>
|
||||
<DT>
|
||||
GNU xorriso is feature-wise equivalent to the dynamic compilation of
|
||||
<A HREF="http://libburnia-project.org/"> libburnia </A>
|
||||
libraries and libburnia program xorriso.
|
||||
libraries, libjte, and libburnia program xorriso.
|
||||
It restricts itself to a technical form where the legal commitments of the
|
||||
libburnia project and the legal intentions of
|
||||
<A HREF="http://www.fsf.org/"> FSF </A> match completely.
|
||||
</DT>
|
||||
<DD> </DD>
|
||||
<DT>libburn-0.8.5</DT>
|
||||
<DT>libburn-0.8.9</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.35</DT>
|
||||
<DT>libisofs-0.6.39</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.6.0</DT>
|
||||
<DT>libisoburn-0.6.4</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>
|
||||
<DT>libjte-0.1.1</DT>
|
||||
<DD>produces jigdo and template file together with the emerging ISO image.</DD>
|
||||
<DD>(By Free Software Foundation, Steve McIntyre, George Danchev,
|
||||
Thomas Schmitt)</DD>
|
||||
<DD> </DD>
|
||||
<DT>The source code of this software is independent of
|
||||
cdrecord and mkisofs.</DT>
|
||||
@ -570,8 +573,8 @@ cdrecord and mkisofs.</DT>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><H3>Development snapshot, version 0.6.1 :</H3></DT>
|
||||
<DD>Bug fixes towards xorriso-0.6.0:
|
||||
<DT><H3>Development snapshot, version 0.6.5 :</H3></DT>
|
||||
<DD>Bug fixes towards xorriso-0.6.4:
|
||||
<UL>
|
||||
<LI>- none yet -</LI>
|
||||
<!--
|
||||
@ -579,18 +582,22 @@ cdrecord and mkisofs.</DT>
|
||||
-->
|
||||
</UL>
|
||||
</DD>
|
||||
<DD>Enhancements towards stable version 0.6.0:
|
||||
<DD>Enhancements towards stable version 0.6.4:
|
||||
<UL>
|
||||
<LI>- none yet -</LI>
|
||||
<!--
|
||||
<LI>- none yet -</LI>
|
||||
-->
|
||||
</UL>
|
||||
|
||||
</DD>
|
||||
|
||||
<DD> </DD>
|
||||
<DD><A HREF="README_xorriso_devel">README 0.6.1</A>
|
||||
<DD><A HREF="xorriso_help_devel">xorriso_0.6.1 -help</A></DD>
|
||||
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.6.1)</A></DD>
|
||||
|
||||
<DD> </DD>
|
||||
<DD><A HREF="README_xorriso_devel">README 0.6.5</A>
|
||||
<DD><A HREF="xorriso_help_devel">xorriso_0.6.5 -help</A></DD>
|
||||
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.6.5)</A></DD>
|
||||
<DD> </DD>
|
||||
<DT>If you want to distribute development versions of xorriso, then use
|
||||
this tarball which produces static linking between xorriso and the
|
||||
@ -600,14 +607,15 @@ libburnia libraries.
|
||||
installation see README)
|
||||
</DD>
|
||||
<DD>
|
||||
<A HREF="xorriso-0.6.1.tar.gz">xorriso-0.6.1.tar.gz</A>
|
||||
(1650 KB).
|
||||
<A HREF="xorriso-0.6.5.tar.gz">xorriso-0.6.5.tar.gz</A>
|
||||
(1750 KB).
|
||||
</DD>
|
||||
<DT>A dynamically linked development version of xorriso can be obtained
|
||||
from repositories of
|
||||
<A HREF="http://libburnia-project.org"> libburnia-project.org</A>.
|
||||
xorriso is part of libisoburn/trunk and will get built by its "make".
|
||||
</DT>
|
||||
|
||||
<DT>Be warned that the libraries in SVN and bzr are development versions with
|
||||
possibly unstable API/ABI enhancements. Do not distribute development
|
||||
versions for dynamic linking. Only release versions are safe for that.
|
||||
@ -629,6 +637,18 @@ versions for dynamic linking. Only release versions are safe for that.
|
||||
But after the run of <KBD>./bootstrap</KBD>, only
|
||||
vanilla tools like make and gcc are needed.
|
||||
</DT>
|
||||
<DT>GNU xorriso contains a copy of libjte-0.1.1
|
||||
which produces jigdo and template file together with the emerging ISO image.
|
||||
(By Free Software Foundation, Steve McIntyre, George Danchev,
|
||||
Thomas Schmitt)
|
||||
</DT>
|
||||
<DD>Important: If desired, libjte has to be already installed when libisofs
|
||||
and libisoburn get built.</DD>
|
||||
<DD>Download: <KBD><B>svn co http://svn.openfmi.net/dev/people/danchev/jte libjte</B>
|
||||
</KBD></DD>
|
||||
<DD>Install: <KBD><B>cd libjte ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
|
||||
</KBD></DD>
|
||||
|
||||
<DD> </DD>
|
||||
</DL>
|
||||
</P>
|
||||
|
@ -44,6 +44,7 @@
|
||||
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:
|
||||
@ -110,7 +111,7 @@
|
||||
*/
|
||||
#define Xorriso_req_majoR 0
|
||||
#define Xorriso_req_minoR 6
|
||||
#define Xorriso_req_micrO 0
|
||||
#define Xorriso_req_micrO 4
|
||||
|
||||
|
||||
static void yell_xorriso()
|
||||
|
@ -32,18 +32,6 @@ xorriso_xorriso_CFLAGS =
|
||||
xorriso_xorriso_LDADD = $(THREAD_LIBS) $(LIBBURN_ARCH_LIBS)
|
||||
|
||||
|
||||
# This looks quite ugly with make install: xorriso.c is compiled twice again
|
||||
#
|
||||
# Trying to create a build timestamp file
|
||||
#
|
||||
# BUILT_SOURCES = xorriso/xorriso_buildstamp.h
|
||||
# phony targets get rebuilt every time
|
||||
# .PHONY: xorriso/xorriso_buildstamp.h
|
||||
# xorriso/xorriso_buildstamp.h:
|
||||
# date -u '+#define Xorriso_build_timestamP "%Y.%m.%d.%H%M%S"' >xorriso/xorriso_buildstamp.h
|
||||
# cat xorriso/xorriso_buildstamp.h
|
||||
|
||||
|
||||
xorriso_xorriso_SOURCES = \
|
||||
\
|
||||
xorriso/xorriso.h \
|
||||
@ -164,6 +152,26 @@ xorriso_xorriso_SOURCES = \
|
||||
libisofs/md5.h \
|
||||
libisofs/md5.c \
|
||||
\
|
||||
libjte/libjte.h \
|
||||
libjte/libjte_private.h \
|
||||
libjte/libjte.c \
|
||||
libjte/jte.h \
|
||||
libjte/jte.c \
|
||||
libjte/checksum.h \
|
||||
libjte/checksum.c \
|
||||
libjte/endian.c \
|
||||
libjte/endianconv.h \
|
||||
libjte/md5.h \
|
||||
libjte/md5.c \
|
||||
libjte/rsync.h \
|
||||
libjte/rsync.c \
|
||||
libjte/sha1.h \
|
||||
libjte/sha1.c \
|
||||
libjte/sha256.h \
|
||||
libjte/sha256.c \
|
||||
libjte/sha512.h \
|
||||
libjte/sha512.c \
|
||||
\
|
||||
libburn/async.c \
|
||||
libburn/async.h \
|
||||
libburn/back_hacks.h \
|
||||
@ -253,7 +261,6 @@ install-exec-hook:
|
||||
|
||||
|
||||
|
||||
# Alternative to the disabled .PHONY above.
|
||||
# Trying to create a build timestamp file semi-manually: make buildstamped
|
||||
#
|
||||
buildstamp:
|
||||
@ -283,8 +290,6 @@ indent: $(indent_files)
|
||||
## ========================================================================= ##
|
||||
|
||||
# Extra things
|
||||
# nodist_pkgconfig_DATA = \
|
||||
# xorriso.pc
|
||||
|
||||
man_MANS = xorriso/xorriso.1
|
||||
|
||||
|
@ -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];
|
||||
@ -294,12 +300,32 @@ struct XorrisO { /* the global context of xorriso */
|
||||
(a simple partition table)
|
||||
bit1= isohybrid boot image pointer
|
||||
and partition table
|
||||
bit2-7= System area type
|
||||
0= with bit0 or bit1: MBR
|
||||
else: unspecified type
|
||||
1= MIPS Big Endian Volume Header
|
||||
2= MIPS Little Endian Boot Block
|
||||
*/
|
||||
int patch_system_area; /* Bits as of system_area_options.
|
||||
to be applied to the loaded system
|
||||
area of the image, if no
|
||||
system_area_disk_path is set.
|
||||
*/
|
||||
|
||||
/* 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;
|
||||
|
||||
/* Path and type of image files to be appended as MBR partitions */
|
||||
char appended_partitions[4][SfileadrL];
|
||||
uint8_t appended_part_types[4];
|
||||
|
||||
/* User settable PVD time stamps */
|
||||
time_t vol_creation_time;
|
||||
time_t vol_modification_time;
|
||||
@ -309,6 +335,16 @@ struct XorrisO { /* the global context of xorriso */
|
||||
and timezone 0 */
|
||||
char vol_uuid[17];
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
/* Parameters and state of Jigdo Template Export environment */
|
||||
struct libjte_env *libjte_handle;
|
||||
#endif
|
||||
|
||||
/* List of -jigdo parameters since the most recent -jigdo clear */
|
||||
struct Xorriso_lsT *jigdo_params;
|
||||
struct Xorriso_lsT *jigdo_values;
|
||||
|
||||
|
||||
/* LBA of boot image after image loading */
|
||||
int loaded_boot_bin_lba;
|
||||
/* Path of the catalog node after image loading */
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2010.07.02.090001"
|
||||
#define Xorriso_timestamP "2010.10.26.100001"
|
||||
|
@ -19,7 +19,7 @@
|
||||
*/
|
||||
#define xorriso_libisoburn_req_major 0
|
||||
#define xorriso_libisoburn_req_minor 6
|
||||
#define xorriso_libisoburn_req_micro 0
|
||||
#define xorriso_libisoburn_req_micro 4
|
||||
|
||||
|
||||
struct SpotlisT; /* List of intervals with different read qualities */
|
||||
@ -512,12 +512,21 @@ int Xorriso_attach_boot_image(struct XorrisO *xorriso, int flag);
|
||||
int Xorriso_boot_image_status(struct XorrisO *xorriso, char *filter, FILE *fp,
|
||||
int flag);
|
||||
|
||||
int Xorriso_add_mips_boot_file(struct XorrisO *xorriso, char *path, int flag);
|
||||
|
||||
int Xorriso_coordinate_system_area(struct XorrisO *xorriso, int sa_type,
|
||||
int options, char *cmd, int flag);
|
||||
|
||||
|
||||
|
||||
|
||||
/* A pseudo file type for El-Torito bootsectors as in man 2 stat :
|
||||
For now take the highest possible value.
|
||||
*/
|
||||
#define Xorriso_IFBOOT S_IFMT
|
||||
|
||||
|
||||
|
||||
int Exprtest_match(struct XorrisO *xorriso, struct ExprtesT *ftest,
|
||||
void *node_pt, char *name, char *path,
|
||||
struct stat *boss_stbuf, struct stat *stbuf, int flag);
|
||||
@ -534,5 +543,14 @@ 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);
|
||||
|
||||
int Xorriso_jigdo_interpreter(struct XorrisO *xorriso, char *aspect, char *arg,
|
||||
int flag);
|
||||
|
||||
#endif /* Xorrisoburn_includeD */
|
||||
|
||||
|
Reference in New Issue
Block a user