From ce66b6a7e4a3b524af73c55ddaff1f501648b387 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 23 Jul 2024 18:56:09 +0200 Subject: [PATCH] New -lfa_flags mode "auto_on" --- xorriso/opts_i_o.c | 8 ++ xorriso/text_io.c | 2 + xorriso/xorriso.1 | 12 ++- xorriso/xorriso.info | 143 +++++++++++++++++++----------------- xorriso/xorriso.texi | 12 ++- xorriso/xorriso_timestamp.h | 2 +- 6 files changed, 105 insertions(+), 74 deletions(-) diff --git a/xorriso/opts_i_o.c b/xorriso/opts_i_o.c index 001c789c..dbe002d1 100644 --- a/xorriso/opts_i_o.c +++ b/xorriso/opts_i_o.c @@ -166,8 +166,16 @@ int Xorriso_option_lfa_flags(struct XorrisO *xorriso, char *mode, int flag) continue; if(l == 3 && strncmp(cpt, "off", l) == 0) { xorriso->lfa_flags_setting&= ~1; + xorriso->lfa_flags_setting&= ~4; } else if((l == 2 && strncmp(cpt, "on", l) == 0)) { xorriso->lfa_flags_setting|= 1; + xorriso->lfa_flags_setting&= ~4; + } else if((l == 7 && strncmp(cpt, "auto_on", l) == 0)) { + xorriso->lfa_flags_setting|= 4; + if(xorriso->lfa_flags_default & 8) + xorriso->lfa_flags_setting|= 1; + else + xorriso->lfa_flags_setting&= ~1; } else if((l == 7 && strncmp(cpt, "restore", l) == 0)) { xorriso->lfa_flags_setting|= (1 << 12); } else if((l == 10 && strncmp(cpt, "no_restore", l) == 0)) { diff --git a/xorriso/text_io.c b/xorriso/text_io.c index e09358e4..ade8c1c7 100644 --- a/xorriso/text_io.c +++ b/xorriso/text_io.c @@ -3789,6 +3789,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag) strcat(line, "on"); else strcat(line, "off"); + if(xorriso->lfa_flags_setting & 4) + strcat(line, ":auto_on"); if(xorriso->lfa_flags_setting & (1 << 11)) strcat(line, ":read"); else diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index bb4002a3..5c61e9af 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -1058,8 +1058,16 @@ xattr manipulation commands. Enable, disable, or influence processing of Linux file attributes as described in man 1 chattr. .br -Mode "on" enables actual processing of the attributes. Mode "off" disables it. -The other modes define the behavior in case of "on". +Mode "on" enables actual processing of the attributes. +.br +Mode "off" disables it. +.br +Mode "auto_on" enables it only if the underlying libisofs was compiled +with support for Linux file attributes, which is typically not the case on +non\-Linux systems. Enabled processing without lisofs support would cause +failure events when reading disk files. +.br +The other modes define the behavior in case of "on": .br Mode "read" enables obtaining of these attributes from disk files, storing them in the emerging ISO 9660 filesystem as AAIP data, importing diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index 5c5e5bb1..a1cae750 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -951,8 +951,13 @@ activate them only after image loading. -lfa_flags mode[:mode...] Enable, disable, or influence processing of Linux file attributes as described in man 1 chattr. - Mode "on" enables actual processing of the attributes. Mode "off" - disables it. The other modes define the behavior in case of "on". + Mode "on" enables actual processing of the attributes. + Mode "off" disables it. + Mode "auto_on" enables it only if the underlying libisofs was + compiled with support for Linux file attributes, which is typically + not the case on non-Linux systems. Enabled processing without + lisofs support would cause failure events when reading disk files. + The other modes define the behavior in case of "on": Mode "read" enables obtaining of these attributes from disk files, storing them in the emerging ISO 9660 filesystem as AAIP data, importing them when an ISO filesystem gets loaded and bears such @@ -5919,11 +5924,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 71) -* -ban_stdio_write demands real drive: Loading. (line 419) +* -ban_stdio_write demands real drive: Loading. (line 424) * -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 409) +* -calm_drive reduces drive activity: Loading. (line 414) * -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) @@ -5959,12 +5964,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 435) +* -data_cache_size adjusts read cache size: Loading. (line 440) * -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 329) +* -disk_dev_ino fast incremental backup: Loading. (line 334) * -disk_pattern controls pattern expansion: Insert. (line 34) * -displacement compensate altered image start address: Loading. (line 102) @@ -5976,8 +5981,8 @@ 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 423) -* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 302) +* -early_stdio_test classifies stdio drives: Loading. (line 428) +* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 307) * -eject ejects drive tray: Writing. (line 50) * -end writes pending session and ends program: Scripting. (line 151) * -errfile_log logs problematic disk files: Scripting. (line 116) @@ -5990,13 +5995,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 349) +* -file_name_limit curbs length of file names: Loading. (line 354) * -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 278) +* -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 283) * -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) @@ -6012,11 +6017,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 323) + (line 328) * -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 315) +* -joliet_map Joliet names: Loading. (line 320) * -launch_frontend starts frontend program at pipes: Frontend. (line 141) * -lfa_flags controls handling of Linux file attributes: Loading. @@ -6044,7 +6049,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 247) +* -md5 controls handling of MD5 sums: Loading. (line 252) * -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) @@ -6101,7 +6106,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 154) -* -rom_toc_scan searches for sessions: Loading. (line 381) +* -rom_toc_scan searches for sessions: Loading. (line 386) * -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) @@ -6179,8 +6184,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 329) -* Backup, enable features, -for_backup: Loading. (line 278) +* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 334) +* Backup, enable features, -for_backup: Loading. (line 283) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179) * Blank media, _definition: Media. (line 34) * Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 478) @@ -6219,8 +6224,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 423) -* Drive, demand real MMC, -ban_stdio_write: Loading. (line 419) +* Drive, classify stdio, -early_stdio_test: Loading. (line 428) +* Drive, demand real MMC, -ban_stdio_write: Loading. (line 424) * Drive, eject tray, -eject: Writing. (line 50) * Drive, for input and output, -dev: AqDrive. (line 12) * Drive, for input, -indev: AqDrive. (line 23) @@ -6228,7 +6233,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 409) +* Drive, reduce activity, -calm_drive: Loading. (line 414) * Drive, report SCSI commands, -scsi_log: Scripting. (line 143) * Drive, write and eject, -commit_eject: Writing. (line 53) * Drive, _definition: Drives. (line 6) @@ -6244,9 +6249,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 349) -* File names, if Joliet is loaded: Loading. (line 315) -* File names, if neither Rock Ridge nor Joliet: Loading. (line 302) +* File names, curb length, -file_name_limit: Loading. (line 354) +* File names, if Joliet is loaded: Loading. (line 320) +* File names, if neither Rock Ridge nor Joliet: Loading. (line 307) * 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) @@ -6272,7 +6277,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * HFS+ serial number: Bootable. (line 455) * hidden, set in ISO image, -hide: Manip. (line 204) * HP-PA boot sector, production: Bootable. (line 430) -* Image reading, cache size, -data_cache_size: Loading. (line 435) +* Image reading, cache size, -data_cache_size: Loading. (line 440) * 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) @@ -6324,7 +6329,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 323) +* libisofs, fixed "now" time: Loading. (line 328) * Linux device type, -scsi_dev_family: AqDrive. (line 95) * Linux file attributes, control handling, -lfa_flags: Loading. (line 207) @@ -6338,7 +6343,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 247) +* MD5, control handling, -md5: Loading. (line 252) * Media, erase, -blank: Writing. (line 57) * Media, format, -format: Writing. (line 87) * Media, list formats, -list_formats: Writing. (line 128) @@ -6447,7 +6452,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 381) +* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 386) * 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 166) @@ -6507,48 +6512,48 @@ Node: Commands26634 Node: ArgSort28311 Node: AqDrive29805 Node: Loading36962 -Node: Insert63321 -Node: SetInsert75516 -Node: Manip85690 -Node: CmdFind97354 -Node: Filter118157 -Node: Writing122779 -Node: SetWrite135273 -Node: Bootable166548 -Node: Jigdo197830 -Node: Charset202833 -Node: Exception206162 -Node: DialogCtl212291 -Node: Inquiry214893 -Node: Navigate227426 -Node: Verify236581 -Node: Restore247730 -Node: Emulation259937 -Node: Scripting270393 -Node: Frontend278176 -Node: Examples287802 -Node: ExDevices288980 -Node: ExCreate289641 -Node: ExDialog290941 -Node: ExGrowing292212 -Node: ExModifying293021 -Node: ExBootable293531 -Node: ExCharset294086 -Node: ExPseudo294982 -Node: ExCdrecord295909 -Node: ExMkisofs296229 -Node: ExGrowisofs298126 -Node: ExException299279 -Node: ExTime299737 -Node: ExIncBackup300195 -Node: ExRestore304221 -Node: ExRecovery305167 -Node: Files305739 -Node: Environ307073 -Node: Seealso307821 -Node: Bugreport308585 -Node: Legal309176 -Node: CommandIdx310188 -Node: ConceptIdx328517 +Node: Insert63604 +Node: SetInsert75799 +Node: Manip85973 +Node: CmdFind97637 +Node: Filter118440 +Node: Writing123062 +Node: SetWrite135556 +Node: Bootable166831 +Node: Jigdo198113 +Node: Charset203116 +Node: Exception206445 +Node: DialogCtl212574 +Node: Inquiry215176 +Node: Navigate227709 +Node: Verify236864 +Node: Restore248013 +Node: Emulation260220 +Node: Scripting270676 +Node: Frontend278459 +Node: Examples288085 +Node: ExDevices289263 +Node: ExCreate289924 +Node: ExDialog291224 +Node: ExGrowing292495 +Node: ExModifying293304 +Node: ExBootable293814 +Node: ExCharset294369 +Node: ExPseudo295265 +Node: ExCdrecord296192 +Node: ExMkisofs296512 +Node: ExGrowisofs298409 +Node: ExException299562 +Node: ExTime300020 +Node: ExIncBackup300478 +Node: ExRestore304504 +Node: ExRecovery305450 +Node: Files306022 +Node: Environ307356 +Node: Seealso308104 +Node: Bugreport308868 +Node: Legal309459 +Node: CommandIdx310471 +Node: ConceptIdx328800  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index abd1fad1..7a229357 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -1310,8 +1310,16 @@ xattr manipulation commands. Enable, disable, or influence processing of Linux file attributes as described in man 1 chattr. @* -Mode "on" enables actual processing of the attributes. Mode "off" disables it. -The other modes define the behavior in case of "on". +Mode "on" enables actual processing of the attributes. +@* +Mode "off" disables it. +@* +Mode "auto_on" enables it only if the underlying libisofs was compiled +with support for Linux file attributes, which is typically not the case on +non-Linux systems. Enabled processing without lisofs support would cause +failure events when reading disk files. +@* +The other modes define the behavior in case of "on": @* Mode "read" enables obtaining of these attributes from disk files, storing them in the emerging ISO 9660 filesystem as AAIP data, importing diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 30e74fc6..38a29189 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2024.07.23.152959" +#define Xorriso_timestamP "2024.07.23.165442"