Discarding lfa_flags after loading if not enabled by -lfa_flags "read:on". Introduced new -chattr mode --remove-lfa-flags

This commit is contained in:
Thomas Schmitt 2024-07-22 14:42:22 +02:00
parent 8397e587f3
commit 4de02bf9a2
9 changed files with 181 additions and 103 deletions

View File

@ -180,6 +180,13 @@ static int Xorriso_grasp_loaded_aaip(struct XorrisO *xorriso, IsoImage *volset,
free(value); free(value);
} }
if(!(xorriso->do_aaip & (1 << 11))) {
/* lfa_flags not enabled for "read" */
ret= Xorriso_remove_all_lfa_flags(xorriso, 0);
if(ret <= 0)
goto ex;
}
if(xorriso->do_hfsplus) { if(xorriso->do_hfsplus) {
/* Bring isofs.hx to iso_hfsplus_xinfo_func, /* Bring isofs.hx to iso_hfsplus_xinfo_func,
isofs.hb to IsoImage blessings isofs.hb to IsoImage blessings
@ -194,6 +201,7 @@ static int Xorriso_grasp_loaded_aaip(struct XorrisO *xorriso, IsoImage *volset,
&dir_stbuf, 0, 0); &dir_stbuf, 0, 0);
if(ret <= 0) if(ret <= 0)
goto ex; goto ex;
Findjob_destroy(&job, 0);
} }
ret= 1; ret= 1;

View File

@ -153,7 +153,7 @@ struct FindjoB {
24= getfacl 24= getfacl
25= setfacl access_acl default_acl 25= setfacl access_acl default_acl
26= getfattr 26= getfattr
27= setfattr 27= setfattr name value
28= set_filter name 28= set_filter name
29= show_stream 29= show_stream
30= internal: count by xorriso->node_counter 30= internal: count by xorriso->node_counter
@ -190,6 +190,8 @@ struct FindjoB {
59= set_to_mtime 59= set_to_mtime
60= lsattrd 60= lsattrd
61= chattr mode 61= chattr mode
62= internal: like 27 "setfattr name value" but with permission for all
name spaces including "isofs."
*/ */
int action; int action;
int prune; int prune;

View File

@ -2771,9 +2771,10 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
ret= Xorriso_setfacl(xorriso, (void *) node, show_path, target, text_2,0); ret= Xorriso_setfacl(xorriso, (void *) node, show_path, target, text_2,0);
} else if(action == 26) { } else if(action == 26) {
ret= Xorriso_getfattr(xorriso, (void *) node, show_path, NULL, 0); ret= Xorriso_getfattr(xorriso, (void *) node, show_path, NULL, 0);
} else if(action == 27) { } else if(action == 27 || action == 62) {
ret= Xorriso_path_setfattr(xorriso, (void *) node, show_path, ret= Xorriso_path_setfattr(xorriso, (void *) node, show_path,
target, strlen(text_2), text_2, 0); target, strlen(text_2), text_2,
8 * (action == 62));
} else if(action == 28) { /* set_filter */ } else if(action == 28) { /* set_filter */
ret= Xorriso_set_filter(xorriso, (void *) node, show_path, target, 1 | 2); ret= Xorriso_set_filter(xorriso, (void *) node, show_path, target, 1 | 2);
} else if(action == 29 || action == 52) { /* show_stream , show_stream_id */ } else if(action == 29 || action == 52) { /* show_stream , show_stream_id */
@ -3884,6 +3885,7 @@ int Xorriso_perform_acl_from_list(struct XorrisO *xorriso, char *file_path,
/* /*
@param flag bit0= do not perform setfattr but only check input @param flag bit0= do not perform setfattr but only check input
bit3= Allow non-user attributes.
*/ */
int Xorriso_path_setfattr(struct XorrisO *xorriso, void *in_node, char *path, int Xorriso_path_setfattr(struct XorrisO *xorriso, void *in_node, char *path,
char *name, size_t value_length, char *value, int flag) char *name, size_t value_length, char *value, int flag)
@ -3892,7 +3894,7 @@ int Xorriso_path_setfattr(struct XorrisO *xorriso, void *in_node, char *path,
size_t num_attrs= 1; size_t num_attrs= 1;
char *name_pt; char *name_pt;
hflag= 2; hflag= 2 | (flag & 8);
name_pt= name; name_pt= name;
if(name[0] == 0) { if(name[0] == 0) {
sprintf(xorriso->info_text, sprintf(xorriso->info_text,
@ -4680,7 +4682,10 @@ int Xorriso_decode_chattr_arg(struct XorrisO *xorriso, char *chattr_text,
{ {
int ret; int ret;
if(chattr_text[0] == '=') { *lfa_flags= 0;
if(strcmp(chattr_text, "--remove-lfa-flags") == 0) {
*operator= 4;
} else if(chattr_text[0] == '=') {
*operator= 0; *operator= 0;
} else if(chattr_text[0] == '+') { } else if(chattr_text[0] == '+') {
*operator= 1; *operator= 1;
@ -4704,7 +4709,8 @@ int Xorriso_decode_chattr_arg(struct XorrisO *xorriso, char *chattr_text,
/* @param in_node if not NULL: the node to manipulate /* @param in_node if not NULL: the node to manipulate
@path if in_node is NULL: path to node @path if in_node is NULL: path to node
in any case: path to report with errors in any case: path to report with errors
@param operator chattr operation mode 0='=', 1='+', 2='-' , 3='.' @param operator chattr operation mode 0='=', 1='+', 2='-'
non-chattr modes: 3='.', 4="--remove-lfa-flags"
@param flag bit0= use lfa_flags and operator rather than chattr_text @param flag bit0= use lfa_flags and operator rather than chattr_text
*/ */
int Xorriso_set_lfa_flags(struct XorrisO *xorriso, void *in_node, char *path, int Xorriso_set_lfa_flags(struct XorrisO *xorriso, void *in_node, char *path,
@ -4728,6 +4734,16 @@ int Xorriso_set_lfa_flags(struct XorrisO *xorriso, void *in_node, char *path,
if(ret <= 0) if(ret <= 0)
return(ret); return(ret);
} }
if(operator == 4) {
ret= Xorriso_path_setfattr(xorriso, (void *) node, path,
"-isofs.fa", (size_t) 0, "", 8);
if(ret <= 0)
return(ret);
Xorriso_set_change_pending(xorriso, 0);
return(1);
}
if(operator == 0) { if(operator == 0) {
set_flags= lfa_flags; set_flags= lfa_flags;
} else { } else {
@ -4756,3 +4772,24 @@ int Xorriso_set_lfa_flags(struct XorrisO *xorriso, void *in_node, char *path,
} }
int Xorriso_remove_all_lfa_flags(struct XorrisO *xorriso, int flag)
{
int ret;
struct FindjoB *job= NULL;
struct stat dir_stbuf;
ret= Findjob_new(&job, "/", 0);
if(ret<=0) {
Xorriso_no_findjob(xorriso, "xorriso", 0);
return(-1);
}
Findjob_set_action_text_2(job, 62, "-isofs.fa", "", 0);
ret= Xorriso_findi(xorriso, job, NULL, (off_t) 0, NULL, "/",
&dir_stbuf, 0, 0);
Findjob_destroy(&job, 0);
if(ret <= 0)
return(ret);
return(1);
}

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.7, Jul 20, 2024" .TH XORRISO 1 "Version 1.5.7, Jul 21, 2024"
.\" 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:
@ -1066,10 +1066,13 @@ storing them in the emerging ISO 9660 filesystem as AAIP data, importing
them when an ISO filesystem gets loaded and bears such stored attributes, them when an ISO filesystem gets loaded and bears such stored attributes,
and comparing them during comparisons between files on disk and in ISO. and comparing them during comparisons between files on disk and in ISO.
.br .br
Mode "no_read" disables processing of the attributes from disk files. If no Mode "no_read" disables reading of the attributes from disk files and
other settings like \-acl "on" or \-xattr "on" require storing and importing importing them when an ISO filesystem gets loaded. If other settings
of AAIP data, then previously recorded file attributes can get kept out of like \-acl "on" or \-xattr "on" require storing of AAIP data, then file
the next appended session. attributes might still get stored in the emerging ISO. To surely exclude
any file attributes, run before \-commit :
.br
\-chattr_r \-\-remove\-lfa\-flags / \-\-
.br .br
Mode "restore" enables restoring of attributes when their file gets restored Mode "restore" enables restoring of attributes when their file gets restored
and comparing them during comparisons between files on disk and in ISO. and comparing them during comparisons between files on disk and in ISO.
@ -2011,11 +2014,16 @@ First letter '\-' causes the given attribute flags to be unset. All other
attributes stay as they are. (Note that '\-' is also accepted as symbolic attributes stay as they are. (Note that '\-' is also accepted as symbolic
attribute letter which has no effect.) attribute letter which has no effect.)
.br .br
A special case is the mode string "\-\-remove\-lfa\-flags" which causes the
Linux file attribute information to be removed from the file.
The \-find test \-has_lfa_flags "\-" will then not match the file any more.
.br
First letter '.' causes all attribute flags except the given ones to be unset. First letter '.' causes all attribute flags except the given ones to be unset.
The given ones stay as they are. This is not a feature of program chattr(1). The given ones stay as they are. This is not a feature of program chattr(1).
.br .br
First letter '=' causes the given attribute flags to be set. All other First letter '=' causes the given attribute flags to be set. All other
get unset. get unset. Mode "=\-" leads to all attribute flags being unset,
but \-find test \-has_lfa_flags "\-" will match the file afterwards.
.br .br
Example: \-chattr +sDu /my/file /my/other_file \-\- Example: \-chattr +sDu /my/file /my/other_file \-\-
.TP .TP

View File

@ -4,7 +4,7 @@ xorriso.texi.
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem xorriso - creates, loads, manipulates and writes ISO 9660 filesystem
images with Rock Ridge extensions. images with Rock Ridge extensions.
Copyright (C) 2007 - 2023 Thomas Schmitt Copyright (C) 2007 - 2024 Thomas Schmitt
Permission is granted to distribute this text freely. Permission is granted to distribute this text freely.
INFO-DIR-SECTION Archiving INFO-DIR-SECTION Archiving
@ -958,10 +958,12 @@ activate them only after image loading.
importing them when an ISO filesystem gets loaded and bears such importing them when an ISO filesystem gets loaded and bears such
stored attributes, and comparing them during comparisons between stored attributes, and comparing them during comparisons between
files on disk and in ISO. files on disk and in ISO.
Mode "no_read" disables processing of the attributes from disk Mode "no_read" disables reading of the attributes from disk files
files. If no other settings like -acl "on" or -xattr "on" require and importing them when an ISO filesystem gets loaded. If other
storing and importing of AAIP data, then previously recorded file settings like -acl "on" or -xattr "on" require storing of AAIP
attributes can get kept out of the next appended session. 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 "restore" enables restoring of attributes when their file gets Mode "restore" enables restoring of attributes when their file gets
restored and comparing them during comparisons between files on restored and comparing them during comparisons between files on
disk and in ISO. Several modes below modify the behavior during disk and in ISO. Several modes below modify the behavior during
@ -1739,11 +1741,17 @@ whether they stem from the loaded image or were newly inserted.
First letter '-' causes the given attribute flags to be unset. All First letter '-' causes the given attribute flags to be unset. All
other attributes stay as they are. (Note that '-' is also accepted other attributes stay as they are. (Note that '-' is also accepted
as symbolic attribute letter which has no effect.) as symbolic attribute letter which has no effect.)
A special case is the mode string "-remove-lfa-flags" which causes
the Linux file attribute information to be removed from the file.
The -find test -has_lfa_flags "-" will then not match the file any
more.
First letter '.' causes all attribute flags except the given ones First letter '.' causes all attribute flags except the given ones
to be unset. The given ones stay as they are. This is not a to be unset. The given ones stay as they are. This is not a
feature of program chattr(1). feature of program chattr(1).
First letter '=' causes the given attribute flags to be set. All First letter '=' causes the given attribute flags to be set. All
other get unset. other get unset. Mode "=-" leads to all attribute flags being
unset, but -find test -has_lfa_flags "-" will match the file
afterwards.
Example: -chattr +sDu /my/file /my/other_file - Example: -chattr +sDu /my/file /my/other_file -
-chattr_r mode iso_rr_path [***] -chattr_r mode iso_rr_path [***]
Like -chattr but affecting all files below given directories. Like -chattr but affecting all files below given directories.
@ -5896,8 +5904,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -acl controls handling of ACLs: Loading. (line 189) * -acl controls handling of ACLs: Loading. (line 189)
* -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)
* -alter_date sets timestamps in ISO image: Manip. (line 160) * -alter_date sets timestamps in ISO image: Manip. (line 166)
* -alter_date_r sets timestamps in ISO image: Manip. (line 195) * -alter_date_r sets timestamps in ISO image: Manip. (line 201)
* -append_partition adds arbitrary file after image end: Bootable. * -append_partition adds arbitrary file after image end: Bootable.
(line 470) (line 470)
* -application_id sets application id: SetWrite. (line 218) * -application_id sets application id: SetWrite. (line 218)
@ -5907,17 +5915,17 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -assess_indev_features shows filesystem features: Inquiry. (line 61) * -assess_indev_features shows filesystem features: Inquiry. (line 61)
* -auto_charset learns character set from image: Loading. (line 141) * -auto_charset learns character set from image: Loading. (line 141)
* -backslash_codes enables backslash conversion: Scripting. (line 71) * -backslash_codes enables backslash conversion: Scripting. (line 71)
* -ban_stdio_write demands real drive: Loading. (line 413) * -ban_stdio_write demands real drive: Loading. (line 415)
* -biblio_file sets biblio file name: SetWrite. (line 277) * -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 403) * -calm_drive reduces drive activity: Loading. (line 405)
* -cd sets working directory in ISO: Navigate. (line 7) * -cd sets working directory in ISO: Navigate. (line 7)
* -cdx sets working directory on disk: Navigate. (line 15) * -cdx sets working directory on disk: Navigate. (line 15)
* -changes_pending overrides change status: Writing. (line 12) * -changes_pending overrides change status: Writing. (line 12)
* -charset sets input/output character set: Charset. (line 54) * -charset sets input/output character set: Charset. (line 54)
* -chattr sets Linux file attributes in ISO image: Manip. (line 139) * -chattr sets Linux file attributes in ISO image: Manip. (line 139)
* -chattr_r sets Linux file attributes in ISO image: Manip. (line 158) * -chattr_r sets Linux file attributes in ISO image: Manip. (line 164)
* -check_md5 verifies file checksum: Verify. (line 184) * -check_md5 verifies file checksum: Verify. (line 184)
* -check_md5_r verifies file tree checksums: Verify. (line 198) * -check_md5_r verifies file tree checksums: Verify. (line 198)
* -check_media reads media block by block: Verify. (line 21) * -check_media reads media block by block: Verify. (line 21)
@ -5947,12 +5955,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: Restore. (line 131)
* -cp_rx copies file trees to disk <1>: Restore. (line 139) * -cp_rx copies file trees to disk <1>: Restore. (line 139)
* -cut_out inserts piece of data file or device: Insert. (line 139) * -cut_out inserts piece of data file or device: Insert. (line 139)
* -data_cache_size adjusts read cache size: Loading. (line 429) * -data_cache_size adjusts read cache size: Loading. (line 431)
* -dev acquires one drive for input and output: AqDrive. (line 12) * -dev acquires one drive for input and output: AqDrive. (line 12)
* -devices gets list of drives: Inquiry. (line 7) * -devices gets list of drives: Inquiry. (line 7)
* -device_links gets list of drives: Inquiry. (line 17) * -device_links gets list of drives: Inquiry. (line 17)
* -dialog enables dialog mode: DialogCtl. (line 7) * -dialog enables dialog mode: DialogCtl. (line 7)
* -disk_dev_ino fast incremental backup: Loading. (line 323) * -disk_dev_ino fast incremental backup: Loading. (line 325)
* -disk_pattern controls pattern expansion: Insert. (line 34) * -disk_pattern controls pattern expansion: Insert. (line 34)
* -displacement compensate altered image start address: Loading. * -displacement compensate altered image start address: Loading.
(line 102) (line 102)
@ -5964,8 +5972,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -dusx show directory size on disk: Navigate. (line 96) * -dusx show directory size on disk: Navigate. (line 96)
* -dux show directory size on disk: Navigate. (line 92) * -dux show directory size on disk: Navigate. (line 92)
* -dvd_obs set write block size and end alignment: SetWrite. (line 421) * -dvd_obs set write block size and end alignment: SetWrite. (line 421)
* -early_stdio_test classifies stdio drives: Loading. (line 417) * -early_stdio_test classifies stdio drives: Loading. (line 419)
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 296) * -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 298)
* -eject ejects drive tray: Writing. (line 50) * -eject ejects drive tray: Writing. (line 50)
* -end writes pending session and ends program: Scripting. (line 151) * -end writes pending session and ends program: Scripting. (line 151)
* -errfile_log logs problematic disk files: Scripting. (line 116) * -errfile_log logs problematic disk files: Scripting. (line 116)
@ -5978,13 +5986,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -extract_cut copies file piece to disk: Restore. (line 108) * -extract_cut copies file piece to disk: Restore. (line 108)
* -extract_l copies files to disk: Restore. (line 104) * -extract_l copies files to disk: Restore. (line 104)
* -extract_single copies file to disk: Restore. (line 101) * -extract_single copies file to disk: Restore. (line 101)
* -file_name_limit curbs length of file names: Loading. (line 343) * -file_name_limit curbs length of file names: Loading. (line 345)
* -file_size_limit limits data file size: SetInsert. (line 7) * -file_size_limit limits data file size: SetInsert. (line 7)
* -find traverses and alters ISO tree: CmdFind. (line 7) * -find traverses and alters ISO tree: CmdFind. (line 7)
* -findx traverses disk tree: Navigate. (line 99) * -findx traverses disk tree: Navigate. (line 99)
* -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,lfa_flags: Loading. (line 276) * -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 278)
* -fs sets size of fifo: SetWrite. (line 500) * -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)
@ -5995,16 +6003,16 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -hardlinks controls handling of hard links: Loading. (line 152) * -hardlinks controls handling of hard links: Loading. (line 152)
* -help prints help text: Scripting. (line 19) * -help prints help text: Scripting. (line 19)
* -hfsplus enables production of HFS+ partition: SetWrite. (line 14) * -hfsplus enables production of HFS+ partition: SetWrite. (line 14)
* -hide excludes file names from directory trees: Manip. (line 198) * -hide excludes file names from directory trees: Manip. (line 204)
* -history brings text into readline history: Scripting. (line 42) * -history brings text into readline history: Scripting. (line 42)
* -indev acquires a drive for input: AqDrive. (line 23) * -indev acquires a drive for input: AqDrive. (line 23)
* -in_charset sets input character set: Loading. (line 136) * -in_charset sets input character set: Loading. (line 136)
* -iso_nowtime fixed "now" time for ISO 9660 objects: Loading. * -iso_nowtime fixed "now" time for ISO 9660 objects: Loading.
(line 317) (line 319)
* -iso_rr_pattern controls pattern expansion: Manip. (line 10) * -iso_rr_pattern controls pattern expansion: Manip. (line 10)
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 37) * -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 37)
* -joliet enables production of Joliet tree: SetWrite. (line 10) * -joliet enables production of Joliet tree: SetWrite. (line 10)
* -joliet_map Joliet names: Loading. (line 309) * -joliet_map Joliet names: Loading. (line 311)
* -launch_frontend starts frontend program at pipes: Frontend. * -launch_frontend starts frontend program at pipes: Frontend.
(line 141) (line 141)
* -lfa_flags controls handling of Linux file attributes: Loading. * -lfa_flags controls handling of Linux file attributes: Loading.
@ -6032,7 +6040,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -map_l inserts paths from disk file: Insert. (line 96) * -map_l inserts paths from disk file: Insert. (line 96)
* -map_single inserts path: Insert. (line 93) * -map_single inserts path: Insert. (line 93)
* -mark sets synchronizing message: Frontend. (line 23) * -mark sets synchronizing message: Frontend. (line 23)
* -md5 controls handling of MD5 sums: Loading. (line 245) * -md5 controls handling of MD5 sums: Loading. (line 247)
* -mkdir creates ISO directory: Insert. (line 188) * -mkdir creates ISO directory: Insert. (line 188)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 440) * -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)
@ -6089,7 +6097,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
(line 57) (line 57)
* -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 375) * -rom_toc_scan searches for sessions: Loading. (line 377)
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 171) * -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)
@ -6167,8 +6175,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Appended partitions, MBR: Bootable. (line 480) * Appended partitions, MBR: Bootable. (line 480)
* Automatic execution order, of arguments, -x: ArgSort. (line 16) * Automatic execution order, of arguments, -x: ArgSort. (line 16)
* Backslash Interpretation, _definition: Processing. (line 57) * Backslash Interpretation, _definition: Processing. (line 57)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 323) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 325)
* Backup, enable features, -for_backup: Loading. (line 276) * Backup, enable features, -for_backup: Loading. (line 278)
* 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 478) * Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 478)
@ -6207,8 +6215,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Directory, delete, -rmdir: Manip. (line 29) * Directory, delete, -rmdir: Manip. (line 29)
* disk_path, _definition: Insert. (line 6) * disk_path, _definition: Insert. (line 6)
* Drive, accessability, -drive_class: AqDrive. (line 43) * Drive, accessability, -drive_class: AqDrive. (line 43)
* Drive, classify stdio, -early_stdio_test: Loading. (line 417) * Drive, classify stdio, -early_stdio_test: Loading. (line 419)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 413) * Drive, demand real MMC, -ban_stdio_write: Loading. (line 415)
* Drive, eject tray, -eject: Writing. (line 50) * Drive, eject tray, -eject: Writing. (line 50)
* Drive, for input and output, -dev: AqDrive. (line 12) * Drive, for input and output, -dev: AqDrive. (line 12)
* Drive, for input, -indev: AqDrive. (line 23) * Drive, for input, -indev: AqDrive. (line 23)
@ -6216,7 +6224,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, get drive list, -devices: Inquiry. (line 7) * Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, get drive list, -device_links: Inquiry. (line 17) * Drive, get drive list, -device_links: Inquiry. (line 17)
* Drive, list supported media, -list_profiles: Writing. (line 163) * Drive, list supported media, -list_profiles: Writing. (line 163)
* Drive, reduce activity, -calm_drive: Loading. (line 403) * Drive, reduce activity, -calm_drive: Loading. (line 405)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 143) * Drive, report SCSI commands, -scsi_log: Scripting. (line 143)
* Drive, write and eject, -commit_eject: Writing. (line 53) * Drive, write and eject, -commit_eject: Writing. (line 53)
* Drive, _definition: Drives. (line 6) * Drive, _definition: Drives. (line 6)
@ -6232,9 +6240,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Examples: Examples. (line 6) * Examples: Examples. (line 6)
* extattr, _definition: Extras. (line 66) * extattr, _definition: Extras. (line 66)
* File content, copy, -concat: Restore. (line 148) * File content, copy, -concat: Restore. (line 148)
* File names, curb length, -file_name_limit: Loading. (line 343) * File names, curb length, -file_name_limit: Loading. (line 345)
* File names, if Joliet is loaded: Loading. (line 309) * File names, if Joliet is loaded: Loading. (line 311)
* File names, if neither Rock Ridge nor Joliet: Loading. (line 296) * File names, if neither Rock Ridge nor Joliet: Loading. (line 298)
* Filesytem features, show, -assess_indev_features: Inquiry. (line 61) * Filesytem features, show, -assess_indev_features: Inquiry. (line 61)
* Filter, apply to file tree, -set_filter_r: Filter. (line 84) * Filter, apply to file tree, -set_filter_r: Filter. (line 84)
* Filter, apply to file, -set_filter: Filter. (line 58) * Filter, apply to file, -set_filter: Filter. (line 58)
@ -6258,9 +6266,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Hard links, control handling, -hardlinks: Loading. (line 152) * Hard links, control handling, -hardlinks: Loading. (line 152)
* HFS+ allocation block size: Bootable. (line 458) * HFS+ allocation block size: Bootable. (line 458)
* HFS+ serial number: Bootable. (line 455) * HFS+ serial number: Bootable. (line 455)
* hidden, set in ISO image, -hide: Manip. (line 198) * hidden, set in ISO image, -hide: Manip. (line 204)
* HP-PA boot sector, production: Bootable. (line 430) * HP-PA boot sector, production: Bootable. (line 430)
* Image reading, cache size, -data_cache_size: Loading. (line 429) * Image reading, cache size, -data_cache_size: Loading. (line 431)
* Image, demand volume ID, -assert_volid: Loading. (line 129) * Image, demand volume ID, -assert_volid: Loading. (line 129)
* Image, discard pending changes, -rollback: Writing. (line 9) * Image, discard pending changes, -rollback: Writing. (line 9)
* Image, filesystem to load, -read_fs: Loading. (line 120) * Image, filesystem to load, -read_fs: Loading. (line 120)
@ -6312,12 +6320,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Jigdo Template Extraction, -jigdo: Jigdo. (line 37) * Jigdo Template Extraction, -jigdo: Jigdo. (line 37)
* Jigdo Template Extraction, _definition: Jigdo. (line 6) * Jigdo Template Extraction, _definition: Jigdo. (line 6)
* LBA, _definition: Drives. (line 17) * LBA, _definition: Drives. (line 17)
* libisofs, fixed "now" time: Loading. (line 317) * libisofs, fixed "now" time: Loading. (line 319)
* Linux device type, -scsi_dev_family: AqDrive. (line 95) * Linux device type, -scsi_dev_family: AqDrive. (line 95)
* Linux file attributes, control handling, -lfa_flags: Loading. * Linux file attributes, control handling, -lfa_flags: Loading.
(line 207) (line 207)
* Linux file attributes, set in ISO image, -chattr: Manip. (line 139) * Linux file attributes, set in ISO image, -chattr: Manip. (line 139)
* Linux file attributes, set in ISO image, -chattr_r: Manip. (line 158) * Linux file attributes, set in ISO image, -chattr_r: Manip. (line 164)
* Linux file attributes, show in ISO image, -lsattr: Navigate. * Linux file attributes, show in ISO image, -lsattr: Navigate.
(line 78) (line 78)
* Linux file attributes, _definition: Extras. (line 84) * Linux file attributes, _definition: Extras. (line 84)
@ -6326,7 +6334,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* MBR bootable/active flag, enforce: Bootable. (line 388) * MBR bootable/active flag, enforce: Bootable. (line 388)
* MBR, set, -boot_image system_area=: Bootable. (line 227) * MBR, set, -boot_image system_area=: Bootable. (line 227)
* MBR, _definition: Extras. (line 27) * MBR, _definition: Extras. (line 27)
* MD5, control handling, -md5: Loading. (line 245) * MD5, control handling, -md5: Loading. (line 247)
* Media, erase, -blank: Writing. (line 57) * Media, erase, -blank: Writing. (line 57)
* Media, format, -format: Writing. (line 87) * Media, format, -format: Writing. (line 87)
* Media, list formats, -list_formats: Writing. (line 128) * Media, list formats, -list_formats: Writing. (line 128)
@ -6435,11 +6443,11 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* System area, _definition: Bootable. (line 227) * System area, _definition: Bootable. (line 227)
* Table-of-content, choose info to show, -toc_info_type: Inquiry. * Table-of-content, choose info to show, -toc_info_type: Inquiry.
(line 49) (line 49)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 375) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 377)
* Table-of-content, show parts of, -toc_of: Inquiry. (line 41) * Table-of-content, show parts of, -toc_of: Inquiry. (line 41)
* Table-of-content, show, -toc: Inquiry. (line 27) * Table-of-content, show, -toc: Inquiry. (line 27)
* Timestamps, set in ISO image, -alter_date: Manip. (line 160) * Timestamps, set in ISO image, -alter_date: Manip. (line 166)
* Timestamps, set in ISO image, -alter_date_r: Manip. (line 195) * Timestamps, set in ISO image, -alter_date_r: Manip. (line 201)
* Tree, disk, traverse, -findx: Navigate. (line 99) * Tree, disk, traverse, -findx: Navigate. (line 99)
* Tree, ISO, traverse and alter, -find: CmdFind. (line 7) * Tree, ISO, traverse and alter, -find: CmdFind. (line 7)
* Unsuitable media states, _definition: Media. (line 25) * Unsuitable media states, _definition: Media. (line 25)
@ -6495,48 +6503,48 @@ Node: Commands26634
Node: ArgSort28311 Node: ArgSort28311
Node: AqDrive29805 Node: AqDrive29805
Node: Loading36962 Node: Loading36962
Node: Insert62966 Node: Insert63079
Node: SetInsert75161 Node: SetInsert75274
Node: Manip85335 Node: Manip85448
Node: CmdFind96644 Node: CmdFind97112
Node: Filter117447 Node: Filter117915
Node: Writing122069 Node: Writing122537
Node: SetWrite134563 Node: SetWrite135031
Node: Bootable165838 Node: Bootable166306
Node: Jigdo197120 Node: Jigdo197588
Node: Charset202123 Node: Charset202591
Node: Exception205452 Node: Exception205920
Node: DialogCtl211581 Node: DialogCtl212049
Node: Inquiry214183 Node: Inquiry214651
Node: Navigate226716 Node: Navigate227184
Node: Verify235871 Node: Verify236339
Node: Restore247020 Node: Restore247488
Node: Emulation259227 Node: Emulation259695
Node: Scripting269683 Node: Scripting270151
Node: Frontend277466 Node: Frontend277934
Node: Examples287092 Node: Examples287560
Node: ExDevices288270 Node: ExDevices288738
Node: ExCreate288931 Node: ExCreate289399
Node: ExDialog290231 Node: ExDialog290699
Node: ExGrowing291502 Node: ExGrowing291970
Node: ExModifying292311 Node: ExModifying292779
Node: ExBootable292821 Node: ExBootable293289
Node: ExCharset293376 Node: ExCharset293844
Node: ExPseudo294272 Node: ExPseudo294740
Node: ExCdrecord295199 Node: ExCdrecord295667
Node: ExMkisofs295519 Node: ExMkisofs295987
Node: ExGrowisofs297416 Node: ExGrowisofs297884
Node: ExException298569 Node: ExException299037
Node: ExTime299027 Node: ExTime299495
Node: ExIncBackup299485 Node: ExIncBackup299953
Node: ExRestore303511 Node: ExRestore303979
Node: ExRecovery304457 Node: ExRecovery304925
Node: Files305029 Node: Files305497
Node: Environ306363 Node: Environ306831
Node: Seealso307111 Node: Seealso307579
Node: Bugreport307875 Node: Bugreport308343
Node: Legal308466 Node: Legal308934
Node: CommandIdx309478 Node: CommandIdx309946
Node: ConceptIdx327807 Node: ConceptIdx328275
 
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.7, Jul 20, 2024" @c man .TH XORRISO 1 "Version 1.5.7, Jul 21, 2024"
@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:
@ -69,7 +69,7 @@
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images
with Rock Ridge extensions. with Rock Ridge extensions.
Copyright @copyright{} 2007 - 2023 Thomas Schmitt Copyright @copyright{} 2007 - 2024 Thomas Schmitt
@quotation @quotation
Permission is granted to distribute this text freely. Permission is granted to distribute this text freely.
@ -1318,10 +1318,13 @@ storing them in the emerging ISO 9660 filesystem as AAIP data, importing
them when an ISO filesystem gets loaded and bears such stored attributes, them when an ISO filesystem gets loaded and bears such stored attributes,
and comparing them during comparisons between files on disk and in ISO. and comparing them during comparisons between files on disk and in ISO.
@* @*
Mode "no_read" disables processing of the attributes from disk files. If no Mode "no_read" disables reading of the attributes from disk files and
other settings like -acl "on" or -xattr "on" require storing and importing importing them when an ISO filesystem gets loaded. If other settings
of AAIP data, then previously recorded file attributes can get kept out of like -acl "on" or -xattr "on" require storing of AAIP data, then file
the next appended session. attributes might still get stored in the emerging ISO. To surely exclude
any file attributes, run before -commit :
@*
-chattr_r --remove-lfa-flags / --
@* @*
Mode "restore" enables restoring of attributes when their file gets restored Mode "restore" enables restoring of attributes when their file gets restored
and comparing them during comparisons between files on disk and in ISO. and comparing them during comparisons between files on disk and in ISO.
@ -2405,11 +2408,16 @@ First letter '-' causes the given attribute flags to be unset. All other
attributes stay as they are. (Note that '-' is also accepted as symbolic attributes stay as they are. (Note that '-' is also accepted as symbolic
attribute letter which has no effect.) attribute letter which has no effect.)
@* @*
A special case is the mode string "--remove-lfa-flags" which causes the
Linux file attribute information to be removed from the file.
The -find test -has_lfa_flags "-" will then not match the file any more.
@*
First letter '.' causes all attribute flags except the given ones to be unset. First letter '.' causes all attribute flags except the given ones to be unset.
The given ones stay as they are. This is not a feature of program chattr(1). The given ones stay as they are. This is not a feature of program chattr(1).
@* @*
First letter '=' causes the given attribute flags to be set. All other First letter '=' causes the given attribute flags to be set. All other
get unset. get unset. Mode "=-" leads to all attribute flags being unset,
but -find test -has_lfa_flags "-" will match the file afterwards.
@* @*
Example: -chattr +sDu /my/file /my/other_file -- Example: -chattr +sDu /my/file /my/other_file --
@c man .TP @c man .TP

View File

@ -173,9 +173,13 @@ struct XorrisO { /* the global context of xorriso */
namespaces, not only "user." namespaces, not only "user."
if bit3: export to local filesystem all xattr if bit3: export to local filesystem all xattr
namespaces, not only "user." namespaces, not only "user."
During node manipulations:
enable manipulations of all xattr namespaces,
not only "user." (but usually not "isofs.")
bit11= read lfa_flags (chattr) from local file objects and bit11= read lfa_flags (chattr) from local file objects and
write them into the ISO filesystem when loading ISO image, write them into the
bit12= restore lfa_flags when restoring file ISO filesystem
bit12= restore lfa_flags when restoring file to disk
bit13= do not restore known superuser lfa_flags bit13= do not restore known superuser lfa_flags
bit14= restore only known lfa_flags bit14= restore only known lfa_flags
*/ */

View File

@ -1 +1 @@
#define Xorriso_timestamP "2024.07.21.122709" #define Xorriso_timestamP "2024.07.22.124121"

View File

@ -708,5 +708,8 @@ int Xorriso_set_lfa_flags(struct XorrisO *xorriso, void *in_node, char *path,
char *lfa_text, uint64_t lfa_flags, int operator, char *lfa_text, uint64_t lfa_flags, int operator,
int flag); int flag);
int Xorriso_remove_all_lfa_flags(struct XorrisO *xorriso, int flag);
#endif /* Xorrisoburn_includeD */ #endif /* Xorrisoburn_includeD */