New -compliance rules max_ce_entries=, max_ce_drop=

This commit is contained in:
Thomas Schmitt 2023-01-22 16:19:28 +01:00
parent 9a578a657f
commit b4e10ced99
7 changed files with 228 additions and 105 deletions

View File

@ -3,7 +3,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2021 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2023 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -322,6 +322,8 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->iso_mbr_part_flag= 0; m->iso_mbr_part_flag= 0;
memset(m->gpt_guid, 0, 16); memset(m->gpt_guid, 0, 16);
m->gpt_guid_mode= 0; m->gpt_guid_mode= 0;
m->max_ce_entries= 31; /* Linux hates >= RR_MAX_CE_ENTRIES = 32 */
m->max_ce_entries_flag= 2; /* omit non-isofs fattr and ACL if needed */
m->ascii_disc_label[0]= 0; m->ascii_disc_label[0]= 0;
m->grub2_sparc_core[0]= 0; m->grub2_sparc_core[0]= 0;
memset(m->hfsp_serial_number, 0, 8); memset(m->hfsp_serial_number, 0, 8);

View File

@ -2,7 +2,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2022 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2023 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -988,6 +988,10 @@ int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image,
isoburn_igopt_set_iso_type_guid(sopts, xorriso->iso_gpt_type_guid, isoburn_igopt_set_iso_type_guid(sopts, xorriso->iso_gpt_type_guid,
xorriso->iso_mbr_part_flag & 1); xorriso->iso_mbr_part_flag & 1);
isoburn_igopt_set_gpt_guid(sopts, xorriso->gpt_guid, xorriso->gpt_guid_mode); isoburn_igopt_set_gpt_guid(sopts, xorriso->gpt_guid, xorriso->gpt_guid_mode);
ret= isoburn_igopt_set_max_ce_entries(sopts, xorriso->max_ce_entries,
xorriso->max_ce_entries_flag);
if(ret <= 0)
{ret= 0; goto ex;}
isoburn_igopt_set_disc_label(sopts, xorriso->ascii_disc_label); isoburn_igopt_set_disc_label(sopts, xorriso->ascii_disc_label);
isoburn_igopt_set_hfsp_serial_number(sopts, xorriso->hfsp_serial_number); isoburn_igopt_set_hfsp_serial_number(sopts, xorriso->hfsp_serial_number);
isoburn_igopt_set_hfsp_block_size(sopts, xorriso->hfsp_block_size, isoburn_igopt_set_hfsp_block_size(sopts, xorriso->hfsp_block_size,
@ -1059,6 +1063,7 @@ fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
ret= 1; ret= 1;
ex:; ex:;
Xorriso_process_msg_queues(xorriso, 0);
return(ret); return(ret);
} }
@ -2564,9 +2569,10 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
int flag) int flag)
{ {
char *npt, *cpt; char *npt, *cpt;
int l, was, value, ret; int l, was, value, ret, endl;
struct isoburn_imgen_opts *opts= NULL; struct isoburn_imgen_opts *opts= NULL;
char *msg= NULL; char *msg= NULL;
char submode[41], *endpt;
off_t limit; off_t limit;
was= xorriso->relax_compliance; was= xorriso->relax_compliance;
@ -2783,6 +2789,41 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
} else if(l == 13 && strncmp(cpt, "old_empty_off", l) == 0) { } else if(l == 13 && strncmp(cpt, "old_empty_off", l) == 0) {
xorriso->do_old_empty= 0; xorriso->do_old_empty= 0;
} else if(l >= 15 && strncmp(cpt, "max_ce_entries=", 15) == 0) {
value= 0;
sscanf(cpt + 15, "%d", &value);
if(value < 1 || value > 100000) {
if(msg == NULL)
Xorriso_alloc_meM(msg, char, 160);
sprintf(msg,
"-compliance max_ce_entries=%d : Permissible is 1 to 100000",
value);
Xorriso_msgs_submit(xorriso, 0, msg, 0, "FAILURE", 0);
xorriso->relax_compliance= was;
ret= 0; goto ex;
} else {
xorriso->max_ce_entries= value;
}
} else if(l >= 12 && strncmp(cpt, "max_ce_drop=", 12) == 0) {
endl= sizeof(submode) - 1;
endpt= strchr(cpt + 12, ':');
if(endpt != NULL)
if(endl > endpt - (cpt + 12))
endl= endpt - (cpt + 12);
strncpy(submode, cpt + 12, endl);
submode[endl]= 0;
if(strcmp(submode, "off") == 0) {
xorriso->max_ce_entries_flag&= ~15;
} else if(strcmp(submode, "xattr") == 0) {
xorriso->max_ce_entries_flag= (xorriso->max_ce_entries_flag & ~15) | 1;
} else if(strcmp(submode, "xattr_acl") == 0) {
xorriso->max_ce_entries_flag= (xorriso->max_ce_entries_flag & ~15) | 2;
} else {
sprintf(xorriso->info_text,
"-compliance: unknown mode in max_ce_drop='%s'", submode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
} else { } else {
if(l<SfileadrL) if(l<SfileadrL)
sprintf(xorriso->info_text, "-compliance: unknown rule '%s'", sprintf(xorriso->info_text, "-compliance: unknown rule '%s'",
@ -2806,7 +2847,7 @@ ex:;
int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024], int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
int flag) int flag)
{ {
int r; int r, drop;
r= xorriso->relax_compliance; r= xorriso->relax_compliance;
if(r == 0) { if(r == 0) {
@ -2865,10 +2906,15 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
sprintf(mode + strlen(mode), ":iso_9660_1999"); sprintf(mode + strlen(mode), ":iso_9660_1999");
if(xorriso->do_old_empty) if(xorriso->do_old_empty)
sprintf(mode + strlen(mode), ":old_empty"); sprintf(mode + strlen(mode), ":old_empty");
sprintf(mode + strlen(mode), ":max_ce_entries=%u", xorriso->max_ce_entries);
drop= xorriso->max_ce_entries_flag & 15;
sprintf(mode + strlen(mode), ":max_ce_drop=%s",
drop == 0 ? "off" : drop == 1 ? "xattr" : "xattr_acl");
return(1 + return(1 +
(r == Xorriso_relax_compliance_defaulT && !(xorriso->no_emul_toc & 1) (r == Xorriso_relax_compliance_defaulT && !(xorriso->no_emul_toc & 1)
&& xorriso->untranslated_name_len == 0 && !xorriso->do_iso1999 && && xorriso->untranslated_name_len == 0 && !xorriso->do_iso1999 &&
xorriso->iso_level == 3)); xorriso->iso_level == 3 && xorriso->max_ce_entries == 31 &&
drop == 2));
} }

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.5.5, Jan 10, 2023" .TH XORRISO 1 "Version 1.5.5, Jan 15, 2023"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -2975,11 +2975,36 @@ do not understand Rock Ridge.
of [0,31] to files with no own data content. The new way is to have of [0,31] to files with no own data content. The new way is to have
a dedicated block to which all such files will point. a dedicated block to which all such files will point.
.br .br
"max_ce_entries="number sets the maximum number of SUSP CE entries and thus
continuation areas. Each continuation area can hold at most 2048 bytes of
SUSP data (Rock Ridge or AAIP). The first area can be smaller. There might
be some waste at the end of each area.
When the maximum number is exceeded during ISO filesystem production
then either xattr and ACL get dropped from the affected file or an error
gets reported and image production is prevented.
.br
Linux silently ignores a file when encountering its 32th CE entry.
(Workaround is to mount the filesystem with option "norock".)
So the default setting is 31. Minimum is 1, maximum is 100000.
If a limit higher than 31 is chosen and 31 gets surpassed, then a warning
message gets reported.
.br
"max_ce_drop="mode sets the behavior when the limit of max_ce_entries= is
surpassed. Mode "off" causes an error message and prevents image production.
Mode "xattr" and "xattr_acl" report a warning, delete from the affected
file all xattr of namespaces other than "isofs", and then try again.
If this still surpasses the limit, then mode "xattr_acl" deletes all ACL from
the file and retries.
If this still surpasses the limit, then an error message gets reported and
image production is prevented.
.br
Default setting is Default setting is
.br .br
"clear:only_iso_version:deep_paths:long_paths:no_j_force_dots: "clear:iso_9660_level=3:only_iso_version:deep_paths:long_paths:
.br .br
always_gmt:old_rr". no_j_force_dots:always_gmt:rec_mtime:old_rr:max_ce_entries=31:
.br
max_ce_drop=xattr_acl"
.br .br
Note: The term "ECMA\-119 name" means the plain ISO 9660 names and attributes Note: The term "ECMA\-119 name" means the plain ISO 9660 names and attributes
which get visible if the reader ignores Rock Ridge. which get visible if the reader ignores Rock Ridge.

View File

@ -2539,9 +2539,30 @@ according to the setting of command -acl.
"old_empty" uses the old way of of giving block addresses in the "old_empty" uses the old way of of giving block addresses in the
range of [0,31] to files with no own data content. The new way is range of [0,31] to files with no own data content. The new way is
to have a dedicated block to which all such files will point. to have a dedicated block to which all such files will point.
"max_ce_entries="number sets the maximum number of SUSP CE entries
and thus continuation areas. Each continuation area can hold at
most 2048 bytes of SUSP data (Rock Ridge or AAIP). The first area
can be smaller. There might be some waste at the end of each area.
When the maximum number is exceeded during ISO filesystem
production then either xattr and ACL get dropped from the affected
file or an error gets reported and image production is prevented.
Linux silently ignores a file when encountering its 32th CE entry.
(Workaround is to mount the filesystem with option "norock".) So
the default setting is 31. Minimum is 1, maximum is 100000. If a
limit higher than 31 is chosen and 31 gets surpassed, then a
warning message gets reported.
"max_ce_drop="mode sets the behavior when the limit of
max_ce_entries= is surpassed. Mode "off" causes an error message
and prevents image production. Mode "xattr" and "xattr_acl" report
a warning, delete from the affected file all xattr of namespaces
other than "isofs", and then try again. If this still surpasses
the limit, then mode "xattr_acl" deletes all ACL from the file and
retries. If this still surpasses the limit, then an error message
gets reported and image production is prevented.
Default setting is Default setting is
"clear:only_iso_version:deep_paths:long_paths:no_j_force_dots: "clear:iso_9660_level=3:only_iso_version:deep_paths:long_paths:
always_gmt:old_rr". no_j_force_dots:always_gmt:rec_mtime:old_rr:max_ce_entries=31:
max_ce_drop=xattr_acl"
Note: The term "ECMA-119 name" means the plain ISO 9660 names and Note: The term "ECMA-119 name" means the plain ISO 9660 names and
attributes which get visible if the reader ignores Rock Ridge. attributes which get visible if the reader ignores Rock Ridge.
-rr_reloc_dir name -rr_reloc_dir name
@ -5653,7 +5674,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* # starts a comment line: Scripting. (line 156) * # starts a comment line: Scripting. (line 156)
* -abort_on controls abort on error: Exception. (line 27) * -abort_on controls abort on error: Exception. (line 27)
* -abstract_file sets abstract file name: SetWrite. (line 250) * -abstract_file sets abstract file name: SetWrite. (line 271)
* -acl controls handling of ACLs: Loading. (line 165) * -acl controls handling of ACLs: Loading. (line 165)
* -add inserts one or more paths: Insert. (line 44) * -add inserts one or more paths: Insert. (line 44)
* -add_plainly inserts one or more paths: Insert. (line 68) * -add_plainly inserts one or more paths: Insert. (line 68)
@ -5661,15 +5682,15 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -alter_date_r sets timestamps in ISO image: Manip. (line 174) * -alter_date_r sets timestamps in ISO image: Manip. (line 174)
* -append_partition adds arbitrary file after image end: Bootable. * -append_partition adds arbitrary file after image end: Bootable.
(line 433) (line 433)
* -application_id sets application id: SetWrite. (line 197) * -application_id sets application id: SetWrite. (line 218)
* -application_use sets application use field: SetWrite. (line 272) * -application_use sets application use field: SetWrite. (line 293)
* -as emulates mkisofs or cdrecord: Emulation. (line 13) * -as emulates mkisofs or cdrecord: Emulation. (line 13)
* -assert_volid rejects undesired images: Loading. (line 105) * -assert_volid rejects undesired images: Loading. (line 105)
* -assess_indev_features shows filesystem features: Inquiry. (line 49) * -assess_indev_features shows filesystem features: Inquiry. (line 49)
* -auto_charset learns character set from image: Loading. (line 117) * -auto_charset learns character set from image: Loading. (line 117)
* -backslash_codes enables backslash conversion: Scripting. (line 71) * -backslash_codes enables backslash conversion: Scripting. (line 71)
* -ban_stdio_write demands real drive: Loading. (line 345) * -ban_stdio_write demands real drive: Loading. (line 345)
* -biblio_file sets biblio file name: SetWrite. (line 256) * -biblio_file sets biblio file name: SetWrite. (line 277)
* -blank erases media: Writing. (line 57) * -blank erases media: Writing. (line 57)
* -boot_image controls bootability: Bootable. (line 75) * -boot_image controls bootability: Bootable. (line 75)
* -calm_drive reduces drive activity: Loading. (line 335) * -calm_drive reduces drive activity: Loading. (line 335)
@ -5688,7 +5709,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chown sets ownership in ISO image: Manip. (line 43) * -chown sets ownership in ISO image: Manip. (line 43)
* -chown_r sets ownership in ISO image: Manip. (line 47) * -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 195) * -clone copies ISO directory tree: Insert. (line 195)
* -close controls media closing: SetWrite. (line 484) * -close controls media closing: SetWrite. (line 505)
* -close_damaged closes damaged track and session: Writing. (line 205) * -close_damaged closes damaged track and session: Writing. (line 205)
* -close_filter_list bans filter registration: Filter. (line 50) * -close_filter_list bans filter registration: Filter. (line 50)
* -commit writes pending ISO image: Writing. (line 27) * -commit writes pending ISO image: Writing. (line 27)
@ -5698,7 +5719,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -compare_r reports ISO/disk differences: Navigate. (line 143) * -compare_r reports ISO/disk differences: Navigate. (line 143)
* -compliance controls standard compliance: SetWrite. (line 62) * -compliance controls standard compliance: SetWrite. (line 62)
* -concat copies ISO file content: Restore. (line 148) * -concat copies ISO file content: Restore. (line 148)
* -copyright_file sets copyright file name: SetWrite. (line 245) * -copyright_file sets copyright file name: SetWrite. (line 266)
* -cpax copies files to disk: Restore. (line 128) * -cpax copies files to disk: Restore. (line 128)
* -cpr inserts like with cp -r: Insert. (line 174) * -cpr inserts like with cp -r: Insert. (line 174)
* -cpx copies files to disk: Restore. (line 117) * -cpx copies files to disk: Restore. (line 117)
@ -5718,11 +5739,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -drive_access control device file locking: AqDrive. (line 72) * -drive_access control device file locking: AqDrive. (line 72)
* -drive_class controls drive accessability: AqDrive. (line 43) * -drive_class controls drive accessability: AqDrive. (line 43)
* -du show directory size in ISO image: Navigate. (line 78) * -du show directory size in ISO image: Navigate. (line 78)
* -dummy controls write simulation: SetWrite. (line 476) * -dummy controls write simulation: SetWrite. (line 497)
* -dus show directory size in ISO image: Navigate. (line 81) * -dus show directory size in ISO image: Navigate. (line 81)
* -dusx show directory size on disk: Navigate. (line 88) * -dusx show directory size on disk: Navigate. (line 88)
* -dux show directory size on disk: Navigate. (line 84) * -dux show directory size on disk: Navigate. (line 84)
* -dvd_obs set write block size and end alignment: SetWrite. (line 400) * -dvd_obs set write block size and end alignment: SetWrite. (line 421)
* -early_stdio_test classifies stdio drives: Loading. (line 349) * -early_stdio_test classifies stdio drives: Loading. (line 349)
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 228) * -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 228)
* -eject ejects drive tray: Writing. (line 50) * -eject ejects drive tray: Writing. (line 50)
@ -5744,12 +5765,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -follow softlinks and mount points: SetInsert. (line 77) * -follow softlinks and mount points: SetInsert. (line 77)
* -format formats media: Writing. (line 87) * -format formats media: Writing. (line 87)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 214) * -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 214)
* -fs sets size of fifo: SetWrite. (line 479) * -fs sets size of fifo: SetWrite. (line 500)
* -getfacl shows ACL in ISO image: Navigate. (line 60) * -getfacl shows ACL in ISO image: Navigate. (line 60)
* -getfacl_r shows ACL in ISO image: Navigate. (line 66) * -getfacl_r shows ACL in ISO image: Navigate. (line 66)
* -getfattr shows xattr in ISO image: Navigate. (line 69) * -getfattr shows xattr in ISO image: Navigate. (line 69)
* -getfattr_r shows xattr in ISO image: Navigate. (line 75) * -getfattr_r shows xattr in ISO image: Navigate. (line 75)
* -gid sets global ownership: SetWrite. (line 293) * -gid sets global ownership: SetWrite. (line 314)
* -grow_blindly overrides next writeable address: AqDrive. (line 112) * -grow_blindly overrides next writeable address: AqDrive. (line 112)
* -hardlinks controls handling of hard links: Loading. (line 128) * -hardlinks controls handling of hard links: Loading. (line 128)
* -help prints help text: Scripting. (line 19) * -help prints help text: Scripting. (line 19)
@ -5790,7 +5811,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -mark sets synchronizing message: Frontend. (line 23) * -mark sets synchronizing message: Frontend. (line 23)
* -md5 controls handling of MD5 sums: Loading. (line 183) * -md5 controls handling of MD5 sums: Loading. (line 183)
* -mkdir creates ISO directory: Insert. (line 187) * -mkdir creates ISO directory: Insert. (line 187)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 440)
* -mount issues mount command for ISO session: Restore. (line 204) * -mount issues mount command for ISO session: Restore. (line 204)
* -mount_cmd composes mount command line: Inquiry. (line 83) * -mount_cmd composes mount command line: Inquiry. (line 83)
* -mount_cmd controls mount command: Inquiry. (line 99) * -mount_cmd controls mount command: Inquiry. (line 99)
@ -5806,16 +5827,16 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -options_from_file reads commands from file: Scripting. (line 12) * -options_from_file reads commands from file: Scripting. (line 12)
* -osirrox enables ISO-to-disk copying: Restore. (line 25) * -osirrox enables ISO-to-disk copying: Restore. (line 25)
* -outdev acquires a drive for output: AqDrive. (line 29) * -outdev acquires a drive for output: AqDrive. (line 29)
* -out_charset sets output character set: SetWrite. (line 285) * -out_charset sets output character set: SetWrite. (line 306)
* -overwrite enables overwriting in ISO: SetInsert. (line 139) * -overwrite enables overwriting in ISO: SetInsert. (line 139)
* -pacifier controls pacifier text form: Emulation. (line 166) * -pacifier controls pacifier text form: Emulation. (line 166)
* -padding sets amount or mode of image padding: SetWrite. (line 507) * -padding sets amount or mode of image padding: SetWrite. (line 528)
* -page set terminal geometry: DialogCtl. (line 18) * -page set terminal geometry: DialogCtl. (line 18)
* -paste_in copies file into disk file: Restore. (line 142) * -paste_in copies file into disk file: Restore. (line 142)
* -pathspecs sets meaning of = with -add: SetInsert. (line 123) * -pathspecs sets meaning of = with -add: SetInsert. (line 123)
* -path_list inserts paths from disk file: Insert. (line 81) * -path_list inserts paths from disk file: Insert. (line 81)
* -pkt_output consolidates text output: Frontend. (line 7) * -pkt_output consolidates text output: Frontend. (line 7)
* -preparer_id sets preparer id: SetWrite. (line 261) * -preparer_id sets preparer id: SetWrite. (line 282)
* -print prints result text line: Scripting. (line 102) * -print prints result text line: Scripting. (line 102)
* -print_info prints message text line: Scripting. (line 104) * -print_info prints message text line: Scripting. (line 104)
* -print_mark prints synchronizing text line: Scripting. (line 106) * -print_mark prints synchronizing text line: Scripting. (line 106)
@ -5823,7 +5844,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -prog sets program name: Frontend. (line 176) * -prog sets program name: Frontend. (line 176)
* -prog_help prints help text: Frontend. (line 178) * -prog_help prints help text: Frontend. (line 178)
* -prompt prompts for enter key: Scripting. (line 110) * -prompt prompts for enter key: Scripting. (line 110)
* -publisher sets publisher id: SetWrite. (line 192) * -publisher sets publisher id: SetWrite. (line 213)
* -pvd_info shows image id strings: Inquiry. (line 142) * -pvd_info shows image id strings: Inquiry. (line 142)
* -pwd tells working directory in ISO: Navigate. (line 19) * -pwd tells working directory in ISO: Navigate. (line 19)
* -pwdx tells working directory on disk: Navigate. (line 21) * -pwdx tells working directory on disk: Navigate. (line 21)
@ -5846,7 +5867,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -rollback discards pending changes: Writing. (line 9) * -rollback discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 154) * -rollback_end ends program without writing: Scripting. (line 154)
* -rom_toc_scan searches for sessions: Loading. (line 307) * -rom_toc_scan searches for sessions: Loading. (line 307)
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 150) * -rr_reloc_dir sets name of relocation directory: SetWrite. (line 171)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179) * -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179)
* -scsi_dev_family choose Linux device file type: AqDrive. (line 95) * -scsi_dev_family choose Linux device file type: AqDrive. (line 95)
* -scsi_log reports SCSI commands: Scripting. (line 143) * -scsi_log reports SCSI commands: Scripting. (line 143)
@ -5867,34 +5888,34 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -signal_handling controls handling of system signals: Exception. * -signal_handling controls handling of system signals: Exception.
(line 66) (line 66)
* -sleep waits for a given time span: Scripting. (line 113) * -sleep waits for a given time span: Scripting. (line 113)
* -speed set write speed: SetWrite. (line 371) * -speed set write speed: SetWrite. (line 392)
* -split_size enables large file splitting: SetInsert. (line 153) * -split_size enables large file splitting: SetInsert. (line 153)
* -status shows current settings: Scripting. (line 44) * -status shows current settings: Scripting. (line 44)
* -status_history_max curbs -status history: Scripting. (line 52) * -status_history_max curbs -status history: Scripting. (line 52)
* -stdio_sync controls stdio buffer: SetWrite. (line 469) * -stdio_sync controls stdio buffer: SetWrite. (line 490)
* -stream_recording controls defect management: SetWrite. (line 389) * -stream_recording controls defect management: SetWrite. (line 410)
* -system_id sets system id: SetWrite. (line 205) * -system_id sets system id: SetWrite. (line 226)
* -tell_media_space reports free space: Inquiry. (line 132) * -tell_media_space reports free space: Inquiry. (line 132)
* -temp_mem_limit curbs memory consumption: Scripting. (line 96) * -temp_mem_limit curbs memory consumption: Scripting. (line 96)
* -toc shows list of sessions: Inquiry. (line 27) * -toc shows list of sessions: Inquiry. (line 27)
* -toc_of shows list of sessions: Inquiry. (line 41) * -toc_of shows list of sessions: Inquiry. (line 41)
* -truncate_overwritable activates older session: Writing. (line 167) * -truncate_overwritable activates older session: Writing. (line 167)
* -uid sets global ownership: SetWrite. (line 290) * -uid sets global ownership: SetWrite. (line 311)
* -update inserts path if different: Insert. (line 100) * -update inserts path if different: Insert. (line 100)
* -update_l inserts paths if different: Insert. (line 120) * -update_l inserts paths if different: Insert. (line 120)
* -update_l inserts paths if different <1>: Insert. (line 128) * -update_l inserts paths if different <1>: Insert. (line 128)
* -update_li inserts paths if different: Insert. (line 124) * -update_li inserts paths if different: Insert. (line 124)
* -update_r inserts paths if different: Insert. (line 110) * -update_r inserts paths if different: Insert. (line 110)
* -use_immed_bit controls use of Immed bit: SetWrite. (line 457) * -use_immed_bit controls use of Immed bit: SetWrite. (line 478)
* -use_readline enables readline for dialog: DialogCtl. (line 26) * -use_readline enables readline for dialog: DialogCtl. (line 26)
* -version prints help text: Scripting. (line 22) * -version prints help text: Scripting. (line 22)
* -volid sets volume id: SetWrite. (line 168) * -volid sets volume id: SetWrite. (line 189)
* -volset_id sets volume set id: SetWrite. (line 188) * -volset_id sets volume set id: SetWrite. (line 209)
* -volume_date sets volume timestamp: SetWrite. (line 211) * -volume_date sets volume timestamp: SetWrite. (line 232)
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 500) * -write_type chooses TAO or SAO/DAO: SetWrite. (line 521)
* -x enables automatic execution order of arguments: ArgSort. (line 16) * -x enables automatic execution order of arguments: ArgSort. (line 16)
* -xattr controls handling of xattr (EA): Loading. (line 172) * -xattr controls handling of xattr (EA): Loading. (line 172)
* -zisofs controls zisofs production: SetWrite. (line 296) * -zisofs controls zisofs production: SetWrite. (line 317)
 
File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
@ -5924,14 +5945,14 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Backup, enable features, -for_backup: Loading. (line 214) * Backup, enable features, -for_backup: Loading. (line 214)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179)
* Blank media, _definition: Media. (line 34) * Blank media, _definition: Media. (line 34)
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 457) * Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 478)
* Blind growing, _definition: Methods. (line 41) * Blind growing, _definition: Methods. (line 41)
* Bootability, control, -boot_image: Bootable. (line 75) * Bootability, control, -boot_image: Bootable. (line 75)
* Bugs, reporting: Bugreport. (line 6) * Bugs, reporting: Bugreport. (line 6)
* cdrecord, Emulation: Emulation. (line 120) * cdrecord, Emulation: Emulation. (line 120)
* Character Set, for input, -in_charset: Loading. (line 112) * Character Set, for input, -in_charset: Loading. (line 112)
* Character Set, for input/output, -charset: Charset. (line 54) * Character Set, for input/output, -charset: Charset. (line 54)
* Character Set, for output, -out_charset: SetWrite. (line 285) * Character Set, for output, -out_charset: SetWrite. (line 306)
* Character set, learn from image, -auto_charset: Loading. (line 117) * Character set, learn from image, -auto_charset: Loading. (line 117)
* Character Set, of terminal, -local_charset: Charset. (line 57) * Character Set, of terminal, -local_charset: Charset. (line 57)
* Character Set, _definition: Charset. (line 6) * Character Set, _definition: Charset. (line 6)
@ -5996,7 +6017,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Filter, show chain, -show_stream: Navigate. (line 151) * Filter, show chain, -show_stream: Navigate. (line 151)
* Filter, show chains of tree, -show_stream_r: Navigate. (line 169) * Filter, show chains of tree, -show_stream_r: Navigate. (line 169)
* Filter, unregister, -unregister_filter: Filter. (line 47) * Filter, unregister, -unregister_filter: Filter. (line 47)
* Filter, zisofs parameters, -zisofs: SetWrite. (line 296) * Filter, zisofs parameters, -zisofs: SetWrite. (line 317)
* Filter, _definition: Filter. (line 6) * Filter, _definition: Filter. (line 6)
* Frontend program, start at pipes, -launch_frontend: Frontend. * Frontend program, start at pipes, -launch_frontend: Frontend.
(line 141) (line 141)
@ -6004,7 +6025,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* GPT read-only flag, do not set for ISO: Bootable. (line 367) * GPT read-only flag, do not set for ISO: Bootable. (line 367)
* GPT, control GUID, -boot_image gpt_disk_guid=: Bootable. (line 225) * GPT, control GUID, -boot_image gpt_disk_guid=: Bootable. (line 225)
* GPT, _definition: Extras. (line 39) * GPT, _definition: Extras. (line 39)
* Group, global in ISO image, -gid: SetWrite. (line 293) * Group, global in ISO image, -gid: SetWrite. (line 314)
* Group, in ISO image, -chgrp: Manip. (line 49) * Group, in ISO image, -chgrp: Manip. (line 49)
* Group, in ISO image, -chgrp_r: Manip. (line 53) * Group, in ISO image, -chgrp_r: Manip. (line 53)
* Growing, _definition: Methods. (line 20) * Growing, _definition: Methods. (line 20)
@ -6018,18 +6039,18 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Image, discard pending changes, -rollback: Writing. (line 9) * Image, discard pending changes, -rollback: Writing. (line 9)
* Image, filesystem to load, -read_fs: Loading. (line 96) * Image, filesystem to load, -read_fs: Loading. (line 96)
* Image, override change status, -changes_pending: Writing. (line 12) * Image, override change status, -changes_pending: Writing. (line 12)
* Image, set abstract file name, -abstract_file: SetWrite. (line 250) * Image, set abstract file name, -abstract_file: SetWrite. (line 271)
* Image, set application id, -application_id: SetWrite. (line 197) * Image, set application id, -application_id: SetWrite. (line 218)
* Image, set application iuse field, -application_use: SetWrite. * Image, set application iuse field, -application_use: SetWrite.
(line 272) (line 293)
* Image, set biblio file name, -biblio_file: SetWrite. (line 256) * Image, set biblio file name, -biblio_file: SetWrite. (line 277)
* Image, set copyright file name, -copyright_file: SetWrite. (line 245) * Image, set copyright file name, -copyright_file: SetWrite. (line 266)
* Image, set preparer id, -preparer_id: SetWrite. (line 261) * Image, set preparer id, -preparer_id: SetWrite. (line 282)
* Image, set publisher id, -publisher: SetWrite. (line 192) * Image, set publisher id, -publisher: SetWrite. (line 213)
* Image, set system id, -system_id: SetWrite. (line 205) * Image, set system id, -system_id: SetWrite. (line 226)
* Image, set volume id, -volid: SetWrite. (line 168) * Image, set volume id, -volid: SetWrite. (line 189)
* Image, set volume set id, -volset_id: SetWrite. (line 188) * Image, set volume set id, -volset_id: SetWrite. (line 209)
* Image, set volume timestamp, -volume_date: SetWrite. (line 211) * Image, set volume timestamp, -volume_date: SetWrite. (line 232)
* Image, show Boot Catalog: Inquiry. (line 150) * Image, show Boot Catalog: Inquiry. (line 150)
* Image, show id strings, -pvd_info: Inquiry. (line 142) * Image, show id strings, -pvd_info: Inquiry. (line 142)
* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 180) * Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 180)
@ -6102,7 +6123,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Older session, activate, -truncate_overwritable: Writing. (line 167) * Older session, activate, -truncate_overwritable: Writing. (line 167)
* Output Character Set, _definition: Charset. (line 26) * Output Character Set, _definition: Charset. (line 26)
* Overwritable media, _definition: Media. (line 14) * Overwritable media, _definition: Media. (line 14)
* Ownership, global in ISO image, -uid: SetWrite. (line 290) * Ownership, global in ISO image, -uid: SetWrite. (line 311)
* Ownership, in ISO image, -chown: Manip. (line 43) * Ownership, in ISO image, -chown: Manip. (line 43)
* Ownership, in ISO image, -chown_r: Manip. (line 47) * Ownership, in ISO image, -chown_r: Manip. (line 47)
* Partition offset, _definition: Bootable. (line 315) * Partition offset, _definition: Bootable. (line 315)
@ -6148,7 +6169,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Quoted input, _definition: Processing. (line 51) * Quoted input, _definition: Processing. (line 51)
* Read, set speed, -read_speed: Loading. (line 11) * Read, set speed, -read_speed: Loading. (line 11)
* Recovery, retrieve blocks, -check_media: Verify. (line 21) * Recovery, retrieve blocks, -check_media: Verify. (line 21)
* Relocation directory, set name, -rr_reloc_dir: SetWrite. (line 150) * Relocation directory, set name, -rr_reloc_dir: SetWrite. (line 171)
* Rename, in ISO image, -move: Manip. (line 31) * Rename, in ISO image, -move: Manip. (line 31)
* Rename, in ISO image, -mv: Manip. (line 37) * Rename, in ISO image, -mv: Manip. (line 37)
* Restore, copy boot equipment to disk, -extract_boot_images: Restore. * Restore, copy boot equipment to disk, -extract_boot_images: Restore.
@ -6194,26 +6215,26 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, file checksum, -check_md5: Verify. (line 184) * Verify, file checksum, -check_md5: Verify. (line 184)
* Verify, file tree checksums, -check_md5_r: Verify. (line 198) * Verify, file tree checksums, -check_md5_r: Verify. (line 198)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40) * Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
* Write, block size and end alignment, -dvd_obs: SetWrite. (line 400) * Write, block size and end alignment, -dvd_obs: SetWrite. (line 421)
* Write, bootability, -boot_image: Bootable. (line 75) * Write, bootability, -boot_image: Bootable. (line 75)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 469) * Write, buffer syncing, -stdio_sync: SetWrite. (line 490)
* Write, close media, -close: SetWrite. (line 484) * Write, close media, -close: SetWrite. (line 505)
* Write, compliance to specs, -compliance: SetWrite. (line 62) * Write, compliance to specs, -compliance: SetWrite. (line 62)
* Write, defect management, -stream_recording: SetWrite. (line 389) * Write, defect management, -stream_recording: SetWrite. (line 410)
* Write, disable Rock Ridge, -rockridge: SetWrite. (line 57) * Write, disable Rock Ridge, -rockridge: SetWrite. (line 57)
* Write, drive buffer, -modesty_on_drive: SetWrite. (line 419) * Write, drive buffer, -modesty_on_drive: SetWrite. (line 440)
* Write, enable HFS+, -hfsplus: SetWrite. (line 14) * Write, enable HFS+, -hfsplus: SetWrite. (line 14)
* Write, enable Joliet, -joliet: SetWrite. (line 10) * Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 479) * Write, fifo size, -fs: SetWrite. (line 500)
* Write, free space, -tell_media_space: Inquiry. (line 132) * Write, free space, -tell_media_space: Inquiry. (line 132)
* Write, log problematic disk files, -errfile_log: Scripting. (line 116) * Write, log problematic disk files, -errfile_log: Scripting. (line 116)
* Write, log written sessions, -session_log: Scripting. (line 134) * Write, log written sessions, -session_log: Scripting. (line 134)
* Write, padding image, -padding: SetWrite. (line 507) * Write, padding image, -padding: SetWrite. (line 528)
* Write, pending ISO image, -commit: Writing. (line 27) * Write, pending ISO image, -commit: Writing. (line 27)
* Write, predict image size, -print_size: Inquiry. (line 120) * Write, predict image size, -print_size: Inquiry. (line 120)
* Write, set speed, -speed: SetWrite. (line 371) * Write, set speed, -speed: SetWrite. (line 392)
* Write, simulation, -dummy: SetWrite. (line 476) * Write, simulation, -dummy: SetWrite. (line 497)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 500) * Write, TAO or SAO/DAO, -write_type: SetWrite. (line 521)
* xattr, control handling, -xattr: Loading. (line 172) * xattr, control handling, -xattr: Loading. (line 172)
* xattr, set in ISO image, -setfattr: Manip. (line 103) * xattr, set in ISO image, -setfattr: Manip. (line 103)
* xattr, set in ISO image, -setfattr_list: Manip. (line 120) * xattr, set in ISO image, -setfattr_list: Manip. (line 120)
@ -6245,41 +6266,41 @@ Node: CmdFind90474
Node: Filter110498 Node: Filter110498
Node: Writing115120 Node: Writing115120
Node: SetWrite127375 Node: SetWrite127375
Node: Bootable157227 Node: Bootable158650
Node: Jigdo185108 Node: Jigdo186531
Node: Charset190111 Node: Charset191534
Node: Exception193440 Node: Exception194863
Node: DialogCtl199569 Node: DialogCtl200992
Node: Inquiry202171 Node: Inquiry203594
Node: Navigate213429 Node: Navigate214852
Node: Verify222136 Node: Verify223559
Node: Restore233285 Node: Restore234708
Node: Emulation245493 Node: Emulation246916
Node: Scripting255949 Node: Scripting257372
Node: Frontend263732 Node: Frontend265155
Node: Examples273358 Node: Examples274781
Node: ExDevices274536 Node: ExDevices275959
Node: ExCreate275197 Node: ExCreate276620
Node: ExDialog276497 Node: ExDialog277920
Node: ExGrowing277768 Node: ExGrowing279191
Node: ExModifying278577 Node: ExModifying280000
Node: ExBootable279087 Node: ExBootable280510
Node: ExCharset279642 Node: ExCharset281065
Node: ExPseudo280538 Node: ExPseudo281961
Node: ExCdrecord281465 Node: ExCdrecord282888
Node: ExMkisofs281785 Node: ExMkisofs283208
Node: ExGrowisofs283682 Node: ExGrowisofs285105
Node: ExException284835 Node: ExException286258
Node: ExTime285293 Node: ExTime286716
Node: ExIncBackup285751 Node: ExIncBackup287174
Node: ExRestore289777 Node: ExRestore291200
Node: ExRecovery290723 Node: ExRecovery292146
Node: Files291295 Node: Files292718
Node: Environ292629 Node: Environ294052
Node: Seealso293377 Node: Seealso294800
Node: Bugreport294094 Node: Bugreport295517
Node: Legal294685 Node: Legal296108
Node: CommandIdx295697 Node: CommandIdx297120
Node: ConceptIdx313595 Node: ConceptIdx315018
 
End Tag Table End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps @c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @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 .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.5, Jan 10, 2023" @c man .TH XORRISO 1 "Version 1.5.5, Jan 15, 2023"
@c man .\" Please adjust this date whenever revising the manpage. @c man .\" Please adjust this date whenever revising the manpage.
@c man .\" @c man .\"
@c man .\" Some roff macros, for reference: @c man .\" Some roff macros, for reference:
@ -3460,11 +3460,36 @@ do not understand Rock Ridge.
of [0,31] to files with no own data content. The new way is to have of [0,31] to files with no own data content. The new way is to have
a dedicated block to which all such files will point. a dedicated block to which all such files will point.
@* @*
"max_ce_entries="number sets the maximum number of SUSP CE entries and thus
continuation areas. Each continuation area can hold at most 2048 bytes of
SUSP data (Rock Ridge or AAIP). The first area can be smaller. There might
be some waste at the end of each area.
When the maximum number is exceeded during ISO filesystem production
then either xattr and ACL get dropped from the affected file or an error
gets reported and image production is prevented.
@*
Linux silently ignores a file when encountering its 32th CE entry.
(Workaround is to mount the filesystem with option "norock".)
So the default setting is 31. Minimum is 1, maximum is 100000.
If a limit higher than 31 is chosen and 31 gets surpassed, then a warning
message gets reported.
@*
"max_ce_drop="mode sets the behavior when the limit of max_ce_entries= is
surpassed. Mode "off" causes an error message and prevents image production.
Mode "xattr" and "xattr_acl" report a warning, delete from the affected
file all xattr of namespaces other than "isofs", and then try again.
If this still surpasses the limit, then mode "xattr_acl" deletes all ACL from
the file and retries.
If this still surpasses the limit, then an error message gets reported and
image production is prevented.
@*
Default setting is Default setting is
@* @*
"clear:only_iso_version:deep_paths:long_paths:no_j_force_dots: "clear:iso_9660_level=3:only_iso_version:deep_paths:long_paths:
@* @*
always_gmt:old_rr". no_j_force_dots:always_gmt:rec_mtime:old_rr:max_ce_entries=31:
@*
max_ce_drop=xattr_acl"
@* @*
Note: The term "ECMA-119 name" means the plain ISO 9660 names and attributes Note: The term "ECMA-119 name" means the plain ISO 9660 names and attributes
which get visible if the reader ignores Rock Ridge. which get visible if the reader ignores Rock Ridge.

View File

@ -2,7 +2,7 @@
/* Command line oriented batch and dialog tool which creates, loads, /* Command line oriented batch and dialog tool which creates, loads,
manipulates and burns ISO 9660 filesystem images. manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2021 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2023 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -558,6 +558,10 @@ struct XorrisO { /* the global context of xorriso */
uint8_t gpt_guid[16]; uint8_t gpt_guid[16];
int gpt_guid_mode; int gpt_guid_mode;
/* See libisoburn.h isoburn_igopt_set_max_ce_entries() */
uint32_t max_ce_entries;
uint32_t max_ce_entries_flag;
/* Eventual name of the non-ISO aspect of the image. E.g. SUN ASCII label. /* Eventual name of the non-ISO aspect of the image. E.g. SUN ASCII label.
*/ */
char ascii_disc_label[Xorriso_disc_label_sizE]; char ascii_disc_label[Xorriso_disc_label_sizE];

View File

@ -1 +1 @@
#define Xorriso_timestamP "2023.01.22.151329" #define Xorriso_timestamP "2023.01.22.151757"