From cdd17e814d42cd56c138b559caf5a53f2cc557f7 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 27 Aug 2024 11:01:37 +0200 Subject: [PATCH] New -lfa_flags modes "import_non_settable", "import_only_settable" --- xorriso/drive_mgt.c | 4 + xorriso/iso_img.c | 2 + xorriso/opts_i_o.c | 8 +- xorriso/text_io.c | 9 ++ xorriso/xorriso.1 | 31 +++++- xorriso/xorriso.info | 186 ++++++++++++++++++++---------------- xorriso/xorriso.texi | 31 +++++- xorriso/xorriso_private.h | 5 +- xorriso/xorriso_timestamp.h | 2 +- 9 files changed, 180 insertions(+), 98 deletions(-) diff --git a/xorriso/drive_mgt.c b/xorriso/drive_mgt.c index c4d57e7a..834a0b61 100644 --- a/xorriso/drive_mgt.c +++ b/xorriso/drive_mgt.c @@ -285,6 +285,8 @@ int Xorriso_make_read_options(struct XorrisO *xorriso, ext|= isoburn_ropt_noea; if(xorriso->do_aaip & (1 << 11)) ext|= isoburn_ropt_lfa_flags; + if(xorriso->do_aaip & (1 << 15)) + ext|= isoburn_ropt_lfa_only_settable; if(xorriso->ino_behavior & 1) ext|= isoburn_ropt_noino; if(!(xorriso->do_md5 & 1)) @@ -477,6 +479,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr, } if(xorriso->do_aaip & (1 << 11)) aquire_flag|= 1 << 11; + if(xorriso->do_aaip & (1 << 15)) + aquire_flag|= 1 << 15; if(flag & 128) aquire_flag|= 256; burn_preset_device_open(xorriso->drives_exclusive | diff --git a/xorriso/iso_img.c b/xorriso/iso_img.c index 82d8a67c..d9a7afb5 100644 --- a/xorriso/iso_img.c +++ b/xorriso/iso_img.c @@ -51,6 +51,8 @@ int Xorriso_set_ignore_aclea(struct XorrisO *xorriso, int flag) hflag|= 8; if(xorriso->do_aaip & 2048) hflag|= 4; + if(xorriso->do_aaip & (1 << 15)) + hflag|= 32; iso_image_set_ignore_aclea(volume, hflag); return(1); } diff --git a/xorriso/opts_i_o.c b/xorriso/opts_i_o.c index cafc886e..5d9e996d 100644 --- a/xorriso/opts_i_o.c +++ b/xorriso/opts_i_o.c @@ -196,6 +196,10 @@ int Xorriso_option_lfa_flags(struct XorrisO *xorriso, char *mode, int flag) xorriso->lfa_flags_setting|= 1 << 14; } else if(l == 15 && strncmp(cpt, "restore_unknown", l) == 0) { xorriso->lfa_flags_setting&= ~(1 << 14); + } else if(l == 19 && strncmp(cpt, "import_non_settable", l) == 0) { + xorriso->lfa_flags_setting&= ~(1 << 15); + } else if(l == 20 && strncmp(cpt, "import_only_settable", l) == 0) { + xorriso->lfa_flags_setting|= 1 << 15; } else if(l >= 13 && strncmp(cpt, "restore_mask=", 13) == 0) { if(l == 13) { xorriso->lfa_restore_mask= ~((uint64_t) 0); @@ -252,9 +256,9 @@ int Xorriso_option_lfa_flags(struct XorrisO *xorriso, char *mode, int flag) else xorriso->lfa_flags_setting|= 1 << 13; } - xorriso->do_aaip&= ~(15 << 11); + xorriso->do_aaip&= ~(31 << 11); if(xorriso->lfa_flags_setting & 1) - xorriso->do_aaip|= xorriso->lfa_flags_setting & (15 << 11); + xorriso->do_aaip|= xorriso->lfa_flags_setting & (31 << 11); ret= Xorriso_set_ignore_aclea(xorriso, 0); if(ret <= 0) goto ex; diff --git a/xorriso/text_io.c b/xorriso/text_io.c index 7782703d..7d2ccada 100644 --- a/xorriso/text_io.c +++ b/xorriso/text_io.c @@ -3805,6 +3805,15 @@ 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); + strcpy(line, "-lfa_flags "); + if(xorriso->lfa_flags_setting & (1 << 15)) + strcat(line, "import_only_settable"); + else + strcat(line, "import_non_settable"); + strcat(line, "\n"); + if(!(is_default && no_defaults)) + Xorriso_status_result(xorriso, filter, fp, flag & 2); + strcpy(line, "-lfa_flags "); if(xorriso->lfa_flags_setting & (1 << 13)) strcat(line, "no_restore_su"); diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index b66f919b..d000b953 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -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 "Version 1.5.7, Aug 07, 2024" +.TH XORRISO 1 "Version 1.5.7, Aug 27, 2024" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -1082,13 +1082,23 @@ any file attributes, run before \-commit : .br \-chattr_r \-\-remove\-lfa\-flags / \-\- .br +Mode "import_non_settable" enables obtaining of non\-settable attributes from +disk and attaching of attributes to files in the emerging ISO image even if +all attribute flags are zero. +.br +Mode "import_only_settable" causes non\-settable attributes ("eEhINVZ") to be +ignored when file objects get read from disk. If the remaining attribute flags +are all zero, then no attribute information gets attached to the file in the +ISO. This saves storage and eases finding of non\-trivial attributes in the +ISO image. +.br Mode "restore" enables restoring of attributes when their file gets restored and comparing them during comparisons between files on disk and in ISO. Several modes below modify the behavior during restoring of attributes. .br Mode "no_restore" disables restoring of attributes. .br -Mode "restore_su" enables restoring of the attributes "iaj" which are only +Mode "restore_su" enables restoring of the attributes "aij" which are only changeable by the bearer of superuser capabilities. "no_restore_su" disables restoring of these attributes. "restore_su_auto" enables it only if the effective user id is 0. @@ -1110,11 +1120,19 @@ like "off" does. Example: .br \-lfa_flags restore_mask=SdCiaj .br +Mode "restore_error=" sets the behavior for the event that restoring of +attribute flags to the local filesystem fails. Available are the +keyword "silent" and the severities from "all" to "fatal". +"silent" and severity "all" suppress any error messages and abort +considerations caused by restore attemps of attribute flags. Else the error +message is issued with the given severity. Then it depends on the setting +of command \-abort_on whether restoring goes on or gets aborted. +.br Mode "default" reinstates the default settings: .br \-lfa_flags off:read:restore:restore_su_auto:restore_only_known .br - \-lfa_flags restore_mask= + \-lfa_flags restore_mask=:restore_error=sorry .br Use "default:on" to get default settings with enabled processing. .TP @@ -1789,7 +1807,7 @@ and re\-enables \-disk_pattern expansion. .TP \fB\-overwrite\fR "on"|"nondir"|"off" Allow or disallow overwriting of existing files in the -ISO image by files with the same name. +ISO image or in the local filesystem by files with the same name. .br With setting "off", name collisions with at least one non\-directory file cause FAILURE events. Collisions of two directories lead to merging of their @@ -1800,7 +1818,8 @@ existing file types get treated with \-rm before the new file gets added. Setting "on" enables automatic \-rm_r. I.e. a non\-directory can replace an existing directory and all its subordinates. .br -If restoring of files is enabled, then the overwrite rule applies to the +If restoring of files to the disk filesystem is enabled by \-osirrox, then the +overwrite rule applies to the target file objects on disk as well, but "on" is downgraded to "nondir". .TP \fB\-split_size\fR number["k"|"m"] @@ -4524,6 +4543,8 @@ or an important resource failed unexpectedly. .br "DEBUG" A message which would only interest the program developers. .br +"ERRFILE" A filename for the \-errfile_log if it is enabled. +.br "ALL" The lower end of the severity spectrum. .TP \fB\-abort_on\fR severity diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index 77989a1d..5be36ed4 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -969,12 +969,21 @@ activate them only after image loading. data, then file attributes might still get stored in the emerging ISO. To surely exclude any file attributes, run before -commit : -chattr_r -remove-lfa-flags / - + Mode "import_non_settable" enables obtaining of non-settable + attributes from disk and attaching of attributes to files in the + emerging ISO image even if all attribute flags are zero. + Mode "import_only_settable" causes non-settable attributes + ("eEhINVZ") to be ignored when file objects get read from disk. If + the remaining attribute flags are all zero, then no attribute + information gets attached to the file in the ISO. This saves + storage and eases finding of non-trivial attributes in the ISO + image. Mode "restore" enables restoring of attributes when their file gets restored and comparing them during comparisons between files on disk and in ISO. Several modes below modify the behavior during restoring of attributes. Mode "no_restore" disables restoring of attributes. - Mode "restore_su" enables restoring of the attributes "iaj" which + Mode "restore_su" enables restoring of the attributes "aij" which are only changeable by the bearer of superuser capabilities. "no_restore_su" disables restoring of these attributes. "restore_su_auto" enables it only if the effective user id is 0. @@ -993,9 +1002,17 @@ activate them only after image loading. single character "-" bans all attributes from restoring, like "off" does. Example: -lfa_flags restore_mask=SdCiaj + Mode "restore_error=" sets the behavior for the event that + restoring of attribute flags to the local filesystem fails. + Available are the keyword "silent" and the severities from "all" to + "fatal". "silent" and severity "all" suppress any error messages + and abort considerations caused by restore attemps of attribute + flags. Else the error message is issued with the given severity. + Then it depends on the setting of command -abort_on whether + restoring goes on or gets aborted. Mode "default" reinstates the default settings: -lfa_flags off:read:restore:restore_su_auto:restore_only_known - -lfa_flags restore_mask= + -lfa_flags restore_mask=:restore_error=sorry Use "default:on" to get default settings with enabled processing. -md5 "on"|"all"|"off"|"load_check_off" Enable or disable processing of MD5 checksums for the overall @@ -1557,8 +1574,8 @@ File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Commands Mode "off" disables pathspecs of the form target=source and re-enables -disk_pattern expansion. -overwrite "on"|"nondir"|"off" - Allow or disallow overwriting of existing files in the ISO image by - files with the same name. + Allow or disallow overwriting of existing files in the ISO image or + in the local filesystem by files with the same name. With setting "off", name collisions with at least one non-directory file cause FAILURE events. Collisions of two directories lead to merging of their file lists. @@ -1567,9 +1584,9 @@ File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Commands new file gets added. Setting "on" enables automatic -rm_r. I.e. a non-directory can replace an existing directory and all its subordinates. - If restoring of files is enabled, then the overwrite rule applies - to the target file objects on disk as well, but "on" is downgraded - to "nondir". + If restoring of files to the disk filesystem is enabled by + -osirrox, then the overwrite rule applies to the target file + objects on disk as well, but "on" is downgraded to "nondir". -split_size number["k"|"m"] Set the threshold for automatic splitting of regular files. Such splitting maps a large disk file onto a ISO directory with several @@ -3811,6 +3828,7 @@ failed unexpectedly. "NOTE" A harmless information about noteworthy circumstances. "UPDATE" A pacifier message during long running operations. "DEBUG" A message which would only interest the program developers. +"ERRFILE" A filename for the -errfile_log if it is enabled. "ALL" The lower end of the severity spectrum. -abort_on severity @@ -5933,7 +5951,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * Menu: * # starts a comment line: Scripting. (line 158) -* -abort_on controls abort on error: Exception. (line 27) +* -abort_on controls abort on error: Exception. (line 28) * -abstract_file sets abstract file name: SetWrite. (line 271) * -acl controls handling of ACLs: Loading. (line 189) * -add inserts one or more paths: Insert. (line 44) @@ -5949,11 +5967,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -assess_indev_features shows filesystem features: Inquiry. (line 61) * -auto_charset learns character set from image: Loading. (line 141) * -backslash_codes enables backslash conversion: Scripting. (line 73) -* -ban_stdio_write demands real drive: Loading. (line 428) +* -ban_stdio_write demands real drive: Loading. (line 445) * -biblio_file sets biblio file name: SetWrite. (line 277) * -blank erases media: Writing. (line 57) * -boot_image controls bootability: Bootable. (line 75) -* -calm_drive reduces drive activity: Loading. (line 418) +* -calm_drive reduces drive activity: Loading. (line 435) * -cd sets working directory in ISO: Navigate. (line 7) * -cdx sets working directory on disk: Navigate. (line 15) * -changes_pending overrides change status: Writing. (line 12) @@ -5989,12 +6007,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -cp_rx copies file trees to disk: Restore. (line 131) * -cp_rx copies file trees to disk <1>: Restore. (line 139) * -cut_out inserts piece of data file or device: Insert. (line 139) -* -data_cache_size adjusts read cache size: Loading. (line 444) +* -data_cache_size adjusts read cache size: Loading. (line 461) * -dev acquires one drive for input and output: AqDrive. (line 12) * -devices gets list of drives: Inquiry. (line 7) * -device_links gets list of drives: Inquiry. (line 17) * -dialog enables dialog mode: DialogCtl. (line 7) -* -disk_dev_ino fast incremental backup: Loading. (line 338) +* -disk_dev_ino fast incremental backup: Loading. (line 355) * -disk_pattern controls pattern expansion: Insert. (line 34) * -displacement compensate altered image start address: Loading. (line 102) @@ -6006,12 +6024,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -dusx show directory size on disk: Navigate. (line 96) * -dux show directory size on disk: Navigate. (line 92) * -dvd_obs set write block size and end alignment: SetWrite. (line 421) -* -early_stdio_test classifies stdio drives: Loading. (line 432) -* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 311) +* -early_stdio_test classifies stdio drives: Loading. (line 449) +* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 328) * -eject ejects drive tray: Writing. (line 50) * -end writes pending session and ends program: Scripting. (line 153) * -errfile_log logs problematic disk files: Scripting. (line 118) -* -error_behavior controls error workarounds: Exception. (line 92) +* -error_behavior controls error workarounds: Exception. (line 93) * -external_filter registers data filter: Filter. (line 20) * -external_filter unregisters data filter: Filter. (line 47) * -extract copies file tree to disk: Restore. (line 90) @@ -6020,13 +6038,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -extract_cut copies file piece to disk: Restore. (line 108) * -extract_l copies files to disk: Restore. (line 104) * -extract_single copies file to disk: Restore. (line 101) -* -file_name_limit curbs length of file names: Loading. (line 358) +* -file_name_limit curbs length of file names: Loading. (line 375) * -file_size_limit limits data file size: SetInsert. (line 7) * -find traverses and alters ISO tree: CmdFind. (line 7) * -findx traverses disk tree: Navigate. (line 99) * -follow softlinks and mount points: SetInsert. (line 77) * -format formats media: Writing. (line 87) -* -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 287) +* -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 304) * -fs sets size of fifo: SetWrite. (line 500) * -getfacl shows ACL in ISO image: Navigate. (line 60) * -getfacl_r shows ACL in ISO image: Navigate. (line 66) @@ -6042,11 +6060,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -indev acquires a drive for input: AqDrive. (line 23) * -in_charset sets input character set: Loading. (line 136) * -iso_nowtime fixed "now" time for ISO 9660 objects: Loading. - (line 332) + (line 349) * -iso_rr_pattern controls pattern expansion: Manip. (line 10) * -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 37) * -joliet enables production of Joliet tree: SetWrite. (line 10) -* -joliet_map Joliet names: Loading. (line 324) +* -joliet_map Joliet names: Loading. (line 341) * -launch_frontend starts frontend program at pipes: Frontend. (line 141) * -lfa_flags controls handling of Linux file attributes: Loading. @@ -6074,7 +6092,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -map_l inserts paths from disk file: Insert. (line 96) * -map_single inserts path: Insert. (line 93) * -mark sets synchronizing message: Frontend. (line 23) -* -md5 controls handling of MD5 sums: Loading. (line 256) +* -md5 controls handling of MD5 sums: Loading. (line 273) * -mkdir creates ISO directory: Insert. (line 188) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 440) * -mount issues mount command for ISO session: Restore. (line 204) @@ -6120,10 +6138,10 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top (line 155) * -read_speed set read speed: Loading. (line 11) * -reassure enables confirmation question: DialogCtl. (line 29) -* -report_about controls verbosity: Exception. (line 53) +* -report_about controls verbosity: Exception. (line 54) * -report_el_torito shows Boot Catalog: Inquiry. (line 166) * -report_system_area shows MBR, GPT, and alike: Inquiry. (line 201) -* -return_with controls exit value: Exception. (line 38) +* -return_with controls exit value: Exception. (line 39) * -rm deletes files from ISO image: Manip. (line 20) * -rmdir deletes ISO directory: Manip. (line 29) * -rm_r deletes trees from ISO image: Manip. (line 26) @@ -6131,7 +6149,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top (line 57) * -rollback discards pending changes: Writing. (line 9) * -rollback_end ends program without writing: Scripting. (line 156) -* -rom_toc_scan searches for sessions: Loading. (line 390) +* -rom_toc_scan searches for sessions: Loading. (line 407) * -rr_reloc_dir sets name of relocation directory: SetWrite. (line 171) * -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179) * -scsi_dev_family choose Linux device file type: AqDrive. (line 95) @@ -6151,7 +6169,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -sh_style_result makes results look more like shell: Scripting. (line 63) * -signal_handling controls handling of system signals: Exception. - (line 66) + (line 67) * -sleep waits for a given time span: Scripting. (line 115) * -speed set write speed: SetWrite. (line 392) * -split_size enables large file splitting: SetInsert. (line 154) @@ -6209,8 +6227,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Appended partitions, MBR: Bootable. (line 480) * Automatic execution order, of arguments, -x: ArgSort. (line 16) * Backslash Interpretation, _definition: Processing. (line 57) -* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 338) -* Backup, enable features, -for_backup: Loading. (line 287) +* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 355) +* Backup, enable features, -for_backup: Loading. (line 304) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179) * Blank media, _definition: Media. (line 34) * Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 478) @@ -6227,7 +6245,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * CHRP partition, _definition: Bootable. (line 333) * Closed media, _definition: Media. (line 49) * Comment, #: Scripting. (line 158) -* Control, signal handling, -signal_handling: Exception. (line 66) +* Control, signal handling, -signal_handling: Exception. (line 67) * Create, new ISO image, _definition: Methods. (line 7) * Cylinder alignment, _definition: Bootable. (line 377) * Cylinder size, _definition: Bootable. (line 362) @@ -6249,8 +6267,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Directory, delete, -rmdir: Manip. (line 29) * disk_path, _definition: Insert. (line 6) * Drive, accessability, -drive_class: AqDrive. (line 43) -* Drive, classify stdio, -early_stdio_test: Loading. (line 432) -* Drive, demand real MMC, -ban_stdio_write: Loading. (line 428) +* Drive, classify stdio, -early_stdio_test: Loading. (line 449) +* Drive, demand real MMC, -ban_stdio_write: Loading. (line 445) * Drive, eject tray, -eject: Writing. (line 50) * Drive, for input and output, -dev: AqDrive. (line 12) * Drive, for input, -indev: AqDrive. (line 23) @@ -6258,7 +6276,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Drive, get drive list, -devices: Inquiry. (line 7) * Drive, get drive list, -device_links: Inquiry. (line 17) * Drive, list supported media, -list_profiles: Writing. (line 163) -* Drive, reduce activity, -calm_drive: Loading. (line 418) +* Drive, reduce activity, -calm_drive: Loading. (line 435) * Drive, report SCSI commands, -scsi_log: Scripting. (line 145) * Drive, write and eject, -commit_eject: Writing. (line 53) * Drive, _definition: Drives. (line 6) @@ -6274,9 +6292,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Examples: Examples. (line 6) * extattr, _definition: Extras. (line 66) * File content, copy, -concat: Restore. (line 148) -* File names, curb length, -file_name_limit: Loading. (line 358) -* File names, if Joliet is loaded: Loading. (line 324) -* File names, if neither Rock Ridge nor Joliet: Loading. (line 311) +* File names, curb length, -file_name_limit: Loading. (line 375) +* File names, if Joliet is loaded: Loading. (line 341) +* File names, if neither Rock Ridge nor Joliet: Loading. (line 328) * Filesytem features, show, -assess_indev_features: Inquiry. (line 61) * Filter, apply to file tree, -set_filter_r: Filter. (line 84) * Filter, apply to file, -set_filter: Filter. (line 58) @@ -6302,7 +6320,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * HFS+ serial number: Bootable. (line 455) * hidden, set in ISO image, -hide: Manip. (line 211) * HP-PA boot sector, production: Bootable. (line 430) -* Image reading, cache size, -data_cache_size: Loading. (line 444) +* Image reading, cache size, -data_cache_size: Loading. (line 461) * Image, demand volume ID, -assert_volid: Loading. (line 129) * Image, discard pending changes, -rollback: Writing. (line 9) * Image, filesystem to load, -read_fs: Loading. (line 120) @@ -6354,7 +6372,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Jigdo Template Extraction, -jigdo: Jigdo. (line 37) * Jigdo Template Extraction, _definition: Jigdo. (line 6) * LBA, _definition: Drives. (line 17) -* libisofs, fixed "now" time: Loading. (line 332) +* libisofs, fixed "now" time: Loading. (line 349) * Linux device type, -scsi_dev_family: AqDrive. (line 95) * Linux file attributes, control handling, -lfa_flags: Loading. (line 207) @@ -6368,7 +6386,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * MBR bootable/active flag, enforce: Bootable. (line 388) * MBR, set, -boot_image system_area=: Bootable. (line 227) * MBR, _definition: Extras. (line 27) -* MD5, control handling, -md5: Loading. (line 256) +* MD5, control handling, -md5: Loading. (line 273) * Media, erase, -blank: Writing. (line 57) * Media, format, -format: Writing. (line 87) * Media, list formats, -list_formats: Writing. (line 128) @@ -6412,13 +6430,13 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * PReP partition, _definition: Bootable. (line 337) * Problems, reporting: Bugreport. (line 6) * Process, consolidate text output, -pkt_output: Frontend. (line 7) -* Process, control abort on error, -abort_on: Exception. (line 27) -* Process, control exit value, -return_with: Exception. (line 38) -* Process, control verbosity, -report_about: Exception. (line 53) +* Process, control abort on error, -abort_on: Exception. (line 28) +* Process, control exit value, -return_with: Exception. (line 39) +* Process, control verbosity, -report_about: Exception. (line 54) * Process, disable startup files, -no_rc: Scripting. (line 7) * Process, end program and write, -end: Scripting. (line 153) * Process, end program, no writing, -rollback_end: Scripting. (line 156) -* Process, error workarounds, -error_behavior: Exception. (line 92) +* Process, error workarounds, -error_behavior: Exception. (line 93) * Process, log output channels to file, -logfile: Frontend. (line 19) * Process, read command file, -options_from_file: Scripting. (line 12) * Process, set synchronizing message, -mark: Frontend. (line 23) @@ -6477,7 +6495,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * System area, _definition: Bootable. (line 227) * Table-of-content, choose info to show, -toc_info_type: Inquiry. (line 49) -* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 390) +* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 407) * Table-of-content, show parts of, -toc_of: Inquiry. (line 41) * Table-of-content, show, -toc: Inquiry. (line 27) * Timestamps, set in ISO image, -alter_date: Manip. (line 173) @@ -6537,48 +6555,48 @@ Node: Commands26634 Node: ArgSort28311 Node: AqDrive29805 Node: Loading36962 -Node: Insert63843 -Node: SetInsert76038 -Node: Manip86212 -Node: CmdFind98332 -Node: Filter119646 -Node: Writing124268 -Node: SetWrite136762 -Node: Bootable168037 -Node: Jigdo199319 -Node: Charset204322 -Node: Exception207651 -Node: DialogCtl213780 -Node: Inquiry216382 -Node: Navigate228947 -Node: Verify238102 -Node: Restore249251 -Node: Emulation261458 -Node: Scripting271914 -Node: Frontend279808 -Node: Examples289434 -Node: ExDevices290612 -Node: ExCreate291273 -Node: ExDialog292573 -Node: ExGrowing293844 -Node: ExModifying294653 -Node: ExBootable295163 -Node: ExCharset295718 -Node: ExPseudo296614 -Node: ExCdrecord297541 -Node: ExMkisofs297861 -Node: ExGrowisofs299758 -Node: ExException300911 -Node: ExTime301369 -Node: ExIncBackup301827 -Node: ExRestore305853 -Node: ExRecovery306799 -Node: Files307371 -Node: Environ308705 -Node: Seealso309453 -Node: Bugreport310217 -Node: Legal310808 -Node: CommandIdx311820 -Node: ConceptIdx330149 +Node: Insert64929 +Node: SetInsert77124 +Node: Manip87360 +Node: CmdFind99480 +Node: Filter120794 +Node: Writing125416 +Node: SetWrite137910 +Node: Bootable169185 +Node: Jigdo200467 +Node: Charset205470 +Node: Exception208799 +Node: DialogCtl214988 +Node: Inquiry217590 +Node: Navigate230155 +Node: Verify239310 +Node: Restore250459 +Node: Emulation262666 +Node: Scripting273122 +Node: Frontend281016 +Node: Examples290642 +Node: ExDevices291820 +Node: ExCreate292481 +Node: ExDialog293781 +Node: ExGrowing295052 +Node: ExModifying295861 +Node: ExBootable296371 +Node: ExCharset296926 +Node: ExPseudo297822 +Node: ExCdrecord298749 +Node: ExMkisofs299069 +Node: ExGrowisofs300966 +Node: ExException302119 +Node: ExTime302577 +Node: ExIncBackup303035 +Node: ExRestore307061 +Node: ExRecovery308007 +Node: Files308579 +Node: Environ309913 +Node: Seealso310661 +Node: Bugreport311425 +Node: Legal312016 +Node: CommandIdx313028 +Node: ConceptIdx331357  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index da53e2d2..e1b1ce97 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -50,7 +50,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 "Version 1.5.7, Aug 07, 2024" +@c man .TH XORRISO 1 "Version 1.5.7, Aug 27, 2024" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -1334,13 +1334,23 @@ any file attributes, run before -commit : @* -chattr_r --remove-lfa-flags / -- @* +Mode "import_non_settable" enables obtaining of non-settable attributes from +disk and attaching of attributes to files in the emerging ISO image even if +all attribute flags are zero. +@* +Mode "import_only_settable" causes non-settable attributes ("eEhINVZ") to be +ignored when file objects get read from disk. If the remaining attribute flags +are all zero, then no attribute information gets attached to the file in the +ISO. This saves storage and eases finding of non-trivial attributes in the +ISO image. +@* Mode "restore" enables restoring of attributes when their file gets restored and comparing them during comparisons between files on disk and in ISO. Several modes below modify the behavior during restoring of attributes. @* Mode "no_restore" disables restoring of attributes. @* -Mode "restore_su" enables restoring of the attributes "iaj" which are only +Mode "restore_su" enables restoring of the attributes "aij" which are only changeable by the bearer of superuser capabilities. "no_restore_su" disables restoring of these attributes. "restore_su_auto" enables it only if the effective user id is 0. @@ -1362,11 +1372,19 @@ like "off" does. Example: @* -lfa_flags restore_mask=SdCiaj @* +Mode "restore_error=" sets the behavior for the event that restoring of +attribute flags to the local filesystem fails. Available are the +keyword "silent" and the severities from "all" to "fatal". +"silent" and severity "all" suppress any error messages and abort +considerations caused by restore attemps of attribute flags. Else the error +message is issued with the given severity. Then it depends on the setting +of command -abort_on whether restoring goes on or gets aborted. +@* Mode "default" reinstates the default settings: @* -lfa_flags off:read:restore:restore_su_auto:restore_only_known @* - -lfa_flags restore_mask= + -lfa_flags restore_mask=:restore_error=sorry @* Use "default:on" to get default settings with enabled processing. @c man .TP @@ -2137,7 +2155,7 @@ and re-enables -disk_pattern expansion. @kindex -overwrite enables overwriting in ISO @cindex Insert, enable overwriting, -overwrite Allow or disallow overwriting of existing files in the -ISO image by files with the same name. +ISO image or in the local filesystem by files with the same name. @* With setting "off", name collisions with at least one non-directory file cause FAILURE events. Collisions of two directories lead to merging of their @@ -2148,7 +2166,8 @@ existing file types get treated with -rm before the new file gets added. Setting "on" enables automatic -rm_r. I.e. a non-directory can replace an existing directory and all its subordinates. @* -If restoring of files is enabled, then the overwrite rule applies to the +If restoring of files to the disk filesystem is enabled by -osirrox, then the +overwrite rule applies to the target file objects on disk as well, but "on" is downgraded to "nondir". @c man .TP @item -split_size number["k"|"m"] @@ -5141,6 +5160,8 @@ or an important resource failed unexpectedly. @* "DEBUG" A message which would only interest the program developers. @* +"ERRFILE" A filename for the -errfile_log if it is enabled. +@* "ALL" The lower end of the severity spectrum. @table @asis @sp 1 diff --git a/xorriso/xorriso_private.h b/xorriso/xorriso_private.h index 12358020..5bf4971e 100644 --- a/xorriso/xorriso_private.h +++ b/xorriso/xorriso_private.h @@ -182,6 +182,9 @@ struct XorrisO { /* the global context of xorriso */ bit12= restore lfa_flags when restoring file to disk bit13= do not restore known superuser lfa_flags bit14= restore only known lfa_flags + bit15= ignore non-settable lfa_flags when importing files from + disk and do not record "isofs.fa" if the other flags + are all zero */ int lfa_flags_setting; /* Current settings of command -lfa_flags @@ -191,7 +194,7 @@ struct XorrisO { /* the global context of xorriso */ compiled with lfa enabled) bit3= libisofs indeed has lfa enabled (to be set only at program start) - bit11-14= at the end of the command these bits + bit11-15= at the end of the command these bits get put into .do_aaip if bit0 is on. Else the lfa bits of do_aaip will be set to 0. diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 924e27ab..838da2da 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2024.08.25.143621" +#define Xorriso_timestamP "2024.08.27.090110"