New flag bit 12 "do not ignore XFS-style project ids" with isoburn_drive_aquire(). New isoburn_read_opts extension isoburn_ropt_projid.

This commit is contained in:
Thomas Schmitt 2024-11-03 19:24:28 +01:00
parent f42884bb2b
commit 923bfa0be9
6 changed files with 28 additions and 7 deletions

View File

@ -346,6 +346,7 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag)
bit10= if not bit6: accept all xattr namespaces from external bit10= if not bit6: accept all xattr namespaces from external
filesystems, not only "user.". filesystems, not only "user.".
bit11= load lfa_flags (chattr) from external filesystems bit11= load lfa_flags (chattr) from external filesystems
bit12= load XFS-style project ids from external filesystems
bit15= ignore non-settable lfa_flags when importing files from bit15= ignore non-settable lfa_flags when importing files from
disk and do not record "isofs.fa" if the other flags disk and do not record "isofs.fa" if the other flags
are all zero are all zero
@ -395,6 +396,7 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
iso_image_set_ignore_aclea((*o)->image, iso_image_set_ignore_aclea((*o)->image,
((flag >> 5 ) & 3) | ((!!(flag & 1024)) << 3) | ((flag >> 5 ) & 3) | ((!!(flag & 1024)) << 3) |
((!!(flag & (1 << 11))) << 2) | ((!!(flag & (1 << 11))) << 2) |
((!!(flag & (1 << 12))) << 6) |
((!!(flag & (1 << 15))) << 5)); ((!!(flag & (1 << 15))) << 5));
#ifdef Hardcoded_cd_rW #ifdef Hardcoded_cd_rW
@ -548,6 +550,7 @@ ex:
bit10= if not bit6: accept all xattr namespaces from external bit10= if not bit6: accept all xattr namespaces from external
filesystems, not only "user.". filesystems, not only "user.".
bit11= load lfa_flags (chattr) from external filesystems bit11= load lfa_flags (chattr) from external filesystems
bit12= load XFS-style project ids from external filesystems
bit15= ignore non-settable lfa_flags when importing files from bit15= ignore non-settable lfa_flags when importing files from
disk and do not record "isofs.fa" if the other flags disk and do not record "isofs.fa" if the other flags
are all zero are all zero
@ -577,8 +580,8 @@ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
goto ex; goto ex;
drive_grabbed= 1; drive_grabbed= 1;
ret= isoburn_welcome_media(&o, (*drive_infos)[0].drive, ret= isoburn_welcome_media(&o, (*drive_infos)[0].drive,
(flag & (8 | 16 | 32 | 64 | 128 | 512 | 1024 | (1 << 11) | ( 1 << 15))) | (flag & (8 | 16 | 32 | 64 | 128 | 512 | 1024 | (1 << 11) | (1 << 12) |
!!(flag & 2)); (1 << 15))) | !!(flag & 2));
if(ret<=0) if(ret<=0)
goto ex; goto ex;

View File

@ -7,7 +7,7 @@
Class core of libisoburn. Class core of libisoburn.
Copyright 2007 - 2009 Vreixo Formoso Lopes <metalpain2002@yahoo.es> Copyright 2007 - 2009 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Copyright 2007 - 2023 Thomas Schmitt <scdbackup@gmx.net> Copyright 2007 - 2024 Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
*/ */
@ -883,6 +883,7 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag)
o->noacl= 1; o->noacl= 1;
o->noea= 1; o->noea= 1;
o->lfa_flags= 0; o->lfa_flags= 0;
o->projid= 0;
o->noino= 1; o->noino= 1;
o->nomd5= 1; o->nomd5= 1;
o->preferjoliet= 0; o->preferjoliet= 0;
@ -986,6 +987,7 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
o->joliet_map_mode= !!(ext & 32768); o->joliet_map_mode= !!(ext & 32768);
o->lfa_flags= !!(ext & (1 << 16)); o->lfa_flags= !!(ext & (1 << 16));
o->lfa_only_settable= !!(ext & (1 << 17)); o->lfa_only_settable= !!(ext & (1 << 17));
o->projid= !!(ext & (1 << 18));
return(1); return(1);
} }

View File

@ -340,8 +340,12 @@ struct isoburn_read_opts {
*/ */
/* ts C40826 */ /* ts C40826 */
unsigned int lfa_only_settable:1; /* Ignore non-settable flags from unsigned int lfa_only_settable:1; /* Ignore non-settable flags from
from external filesystem objects external filesystem objects
*/ */
/* ts C41010 */
unsigned int projid:1; /* Read XFS-style project ids from
external filesystem objects
*/
/* ts A90508 */ /* ts A90508 */
unsigned int noino:1; /* Discard eventual PX inode numbers */ unsigned int noino:1; /* Discard eventual PX inode numbers */

View File

@ -355,7 +355,8 @@ create_blank_image:;
} }
iso_image_set_ignore_aclea(o->image, read_opts->noacl | (read_opts->noea << 1) iso_image_set_ignore_aclea(o->image, read_opts->noacl | (read_opts->noea << 1)
| (read_opts->lfa_flags << 2) | (read_opts->lfa_flags << 2)
| (read_opts->lfa_only_settable << 5)); | (read_opts->lfa_only_settable << 5)
| (read_opts->projid << 6));
/* Important: do not return until iso_read_opts_free() */ /* Important: do not return until iso_read_opts_free() */

View File

@ -462,6 +462,11 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
This can later be overriden by isoburn_read_image() This can later be overriden by isoburn_read_image()
according to its isoburn_read_opts. according to its isoburn_read_opts.
@since 1.5.8 @since 1.5.8
bit12= do not ignore XFS-style project ids from external
filesystems.
This can later be overriden by isoburn_read_image()
according to its isoburn_read_opts.
@since 1.5.8
bit15= ignore non-settable lfa_flags when importing files from bit15= ignore non-settable lfa_flags when importing files from
disk and do not record "isofs.fa" if the other flags disk and do not record "isofs.fa" if the other flags
are all zero are all zero
@ -1011,7 +1016,12 @@ int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o,
This overrides the setting by isoburn_drive_aquire(). This overrides the setting by isoburn_drive_aquire().
@since 1.5.8 @since 1.5.8
bit17= lfa_only_settable bit17= lfa_only_settable
gnore non-settable lfa_flags when importing files from Ignore non-settable lfa_flags when importing files from
external filesystem objects (e.g. local filesystem files).
This overrides the setting by isoburn_drive_aquire().
@since 1.5.8
bit18= projid
Obtain XFS-style project ids from
external filesystem objects (e.g. local filesystem files). external filesystem objects (e.g. local filesystem files).
This overrides the setting by isoburn_drive_aquire(). This overrides the setting by isoburn_drive_aquire().
@since 1.5.8 @since 1.5.8
@ -1036,6 +1046,7 @@ int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o,
#define isoburn_ropt_joliet_stripped ( 16384 | 32768) #define isoburn_ropt_joliet_stripped ( 16384 | 32768)
#define isoburn_ropt_lfa_flags (1 << 16) #define isoburn_ropt_lfa_flags (1 << 16)
#define isoburn_ropt_lfa_only_settable (1 << 17) #define isoburn_ropt_lfa_only_settable (1 << 17)
#define isoburn_ropt_projid (1 << 18)
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext); int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext);
int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext); int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2024.10.26.220214" #define Xorriso_timestamP "2024.11.03.182329"