Compare commits

...

2 Commits

6 changed files with 152 additions and 55 deletions

View File

@ -126,6 +126,7 @@ int Xorriso_graft_split(struct XorrisO *xorriso, IsoImage *volume,
int partno, total_parts;
off_t offset;
char *part_name= NULL;
struct stat stbuf;
Xorriso_alloc_meM(part_name, char, SfileadrL);
@ -133,6 +134,8 @@ int Xorriso_graft_split(struct XorrisO *xorriso, IsoImage *volume,
if(ret < 0)
goto ex;
*node= (IsoNode *) new_dir;
if(lstat(disk_path, &stbuf) != -1)
Xorriso_transfer_properties(xorriso, &stbuf, disk_path, *node, 1 | 8);
if(xorriso->update_flags & 1) {
ret= Xorriso_mark_update_merge(xorriso, img_name, node, 1);
if(ret <= 0)

View File

@ -1084,6 +1084,78 @@ int Xorriso_set_all_file_dates(struct XorrisO *xorriso, int flag)
}
/* @return 0= no EFI , 1= EFI but no warning needed , 2= warning was issued
*/
int Xorriso_warn_efi_boot_dir(struct XorrisO *xorriso, IsoImage *image,
int flag)
{
int ret, num_boots, i, filec;
off_t mem= 0;
char *patterns[1], **filev= NULL;
ElToritoBootImage **boots = NULL;
IsoFile **bootnodes = NULL;
IsoNode *node;
/* Check El Torito images for EFI */
ret= iso_image_get_all_boot_imgs(image, &num_boots, &boots, &bootnodes, 0);
Xorriso_process_msg_queues(xorriso,0);
if(ret == 1) {
for(i= 0; i <num_boots; i++) {
if(el_torito_get_boot_platform_id(boots[i]) == 0xef)
goto has_efi;
}
}
/* Check appended partitions for EFI */
for(i= 0; i < Xorriso_max_appended_partitionS; i++) {
if(xorriso->appended_partitions[i] == NULL)
continue;
if(xorriso->appended_partitions[i][0] == 0)
continue;
if(xorriso->appended_part_types[i] == 0xef)
goto has_efi;
}
/* No EFI found */
ret= 0; goto ex;
has_efi:;
/* Check for /[Ee][Ff][Ii]/[Bb][Oo][Oo][Tt]/ in ISO tree */
patterns[0]= "/[Ee][Ff][Ii]/[Bb][Oo][Oo][Tt]";
ret= Xorriso_expand_pattern(xorriso, 1, patterns, 0, &filec, &filev, &mem, 0);
if(ret > 0 && filec > 0) {
ret= Xorriso_node_from_path(xorriso, image, filev[0], &node, 1);
if(ret > 0) {
if(LIBISO_ISDIR(node)) {
ret= 1; goto ex;
}
}
}
Xorriso_msgs_submit(xorriso, 0,
"EFI boot equipment is provided but no directory /EFI/BOOT",
0, "WARNING", 0);
Xorriso_msgs_submit(xorriso, 0,
"will emerge in the ISO filesystem. A popular method to",
0, "WARNING", 0);
Xorriso_msgs_submit(xorriso, 0,
"prepare a USB stick on MS-Windows relies on having in the",
0, "WARNING", 0);
Xorriso_msgs_submit(xorriso, 0,
"ISO filesystem a copy of the EFI System Partition tree.",
0, "WARNING", 0);
ret= 2;
ex:;
Sfile_destroy_argv(&filec, &filev, 0);
if(boots != NULL)
free(boots);
if(bootnodes != NULL)
free(bootnodes);
return(ret);
}
/* @param flag bit0= do not write but only prepare and return size in sectors
@return <=0 error , 1= success
2= failure with DVD-RW, please call Xorriso_retry_write_session()
@ -1335,6 +1407,8 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
&value_length, &value, 2 | 8);
}
Xorriso_warn_efi_boot_dir(xorriso, image, 0);
ret= Xorriso_make_iso_write_opts(xorriso, image, sopts, flag & 1);
if(ret <= 0)
goto ex;

View File

@ -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.5, May 30, 2022"
.TH XORRISO 1 "Version 1.5.5, Jun 02, 2022"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1422,6 +1422,10 @@ E.g:
.br
/file/part_3_of_3_at_4094m_with_2047m_of_5753194821
.br
If the directory /file does no yet exist, then its permissions are not taken
from directory /my/disk but rather from /my/disk/file with additional
x\-permission for those who have r\-permission.
.br
While command \-split_size is set larger than 0, and if all pieces of a file
reside in the same ISO directory with no other files, and if the names look
like above, then their ISO directory will be recognized and handled like a
@ -1691,6 +1695,9 @@ FAILURE event.
A well tested \-split_size is 2047m. Sizes above \-file_size_limit are not
permissible.
.br
The newly created ISO directory inherits its permissions from the data file
with additional x\-permission for those who have r\-permission.
.br
While command \-split_size is set larger than 0 such a directory with split
file pieces will be recognized and handled like a regular file by commands
\-compare* , \-update*, and in overwrite situations. There are \-osirrox

View File

@ -1266,6 +1266,9 @@ filesystem.
/file/part_2_of_3_at_2047m_with_2047m_of_5753194821 \
-cut_out /my/disk/file 4094m 2047m \
/file/part_3_of_3_at_4094m_with_2047m_of_5753194821
If the directory /file does no yet exist, then its permissions are
not taken from directory /my/disk but rather from /my/disk/file
with additional x-permission for those who have r-permission.
While command -split_size is set larger than 0, and if all pieces
of a file reside in the same ISO directory with no other files, and
if the names look like above, then their ISO directory will be
@ -1482,6 +1485,9 @@ File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Commands
Default is 0 which will exclude files larger than -file_size_limit
by a FAILURE event. A well tested -split_size is 2047m. Sizes
above -file_size_limit are not permissible.
The newly created ISO directory inherits its permissions from the
data file with additional x-permission for those who have
r-permission.
While command -split_size is set larger than 0 such a directory
with split file pieces will be recognized and handled like a
regular file by commands -compare* , -update*, and in overwrite
@ -5618,7 +5624,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chmod_r sets permissions in ISO image: Manip. (line 66)
* -chown sets ownership in ISO image: Manip. (line 43)
* -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 192)
* -clone copies ISO directory tree: Insert. (line 195)
* -close controls media closing: SetWrite. (line 484)
* -close_damaged closes damaged track and session: Writing. (line 205)
* -close_filter_list bans filter registration: Filter. (line 50)
@ -5631,9 +5637,9 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -concat copies ISO file content: Restore. (line 148)
* -copyright_file sets copyright file name: SetWrite. (line 245)
* -cpax copies files to disk: Restore. (line 128)
* -cpr inserts like with cp -r: Insert. (line 171)
* -cpr inserts like with cp -r: Insert. (line 174)
* -cpx copies files to disk: Restore. (line 117)
* -cp_clone copies ISO directory tree: Insert. (line 203)
* -cp_clone copies ISO directory tree: Insert. (line 206)
* -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)
@ -5703,7 +5709,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -list_formats lists available formats: Writing. (line 128)
* -list_profiles lists supported media: Writing. (line 163)
* -list_speeds lists available write speeds: Writing. (line 139)
* -lns creates ISO symbolic link: Insert. (line 188)
* -lns creates ISO symbolic link: Insert. (line 191)
* -load addresses a particular session as input: Loading. (line 54)
* -local_charset sets terminal character set: Charset. (line 57)
* -logfile logs output channels to file: Frontend. (line 19)
@ -5720,7 +5726,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -map_single inserts path: Insert. (line 93)
* -mark sets synchronizing message: Frontend. (line 23)
* -md5 controls handling of MD5 sums: Loading. (line 184)
* -mkdir creates ISO directory: Insert. (line 184)
* -mkdir creates ISO directory: Insert. (line 187)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419)
* -mount issues mount command for ISO session: Restore. (line 204)
* -mount_cmd composes mount command line: Inquiry. (line 49)
@ -5885,9 +5891,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 119)
* Dialog, line editing, -use_readline: DialogCtl. (line 26)
* Dialog, terminal geometry, -page: DialogCtl. (line 18)
* Directories, copy, -cp_clone: Insert. (line 203)
* Directory, copy, -clone: Insert. (line 192)
* Directory, create, -mkdir: Insert. (line 184)
* Directories, copy, -cp_clone: Insert. (line 206)
* Directory, copy, -clone: Insert. (line 195)
* Directory, create, -mkdir: Insert. (line 187)
* Directory, delete, -rmdir: Manip. (line 29)
* disk_path, _definition: Insert. (line 6)
* Drive, accessability, -drive_class: AqDrive. (line 43)
@ -5986,7 +5992,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Insert, paths from disk file, -map_l: Insert. (line 96)
* Insert, paths from disk file, -path_list: Insert. (line 81)
* Insert, paths from disk file, -quoted_path_list: Insert. (line 85)
* Insert, paths, -cpr: Insert. (line 171)
* Insert, paths, -cpr: Insert. (line 174)
* Insert, pathspecs, -add: Insert. (line 44)
* Insert, piece of data file or device, -cut_out: Insert. (line 139)
* Interval reader for system area and partitions: Bootable. (line 32)
@ -6107,7 +6113,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26)
* SUN Disk Label, production: Bootable. (line 383)
* SUN SPARC boot images, activation: Bootable. (line 464)
* Symbolic link, create, -lns: Insert. (line 188)
* Symbolic link, create, -lns: Insert. (line 191)
* System area, _definition: Bootable. (line 200)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 308)
* Table-of-content, show, -toc: Inquiry. (line 27)
@ -6169,47 +6175,47 @@ Node: ArgSort27718
Node: AqDrive29212
Node: Loading36369
Node: Insert58208
Node: SetInsert70117
Node: Manip80081
Node: CmdFind90181
Node: Filter109110
Node: Writing113732
Node: SetWrite125987
Node: Bootable155839
Node: Jigdo183720
Node: Charset188723
Node: Exception192052
Node: DialogCtl198181
Node: Inquiry200783
Node: Navigate209665
Node: Verify218372
Node: Restore229521
Node: Emulation241729
Node: Scripting252185
Node: Frontend259968
Node: Examples269594
Node: ExDevices270772
Node: ExCreate271433
Node: ExDialog272733
Node: ExGrowing274004
Node: ExModifying274813
Node: ExBootable275323
Node: ExCharset275878
Node: ExPseudo276774
Node: ExCdrecord277701
Node: ExMkisofs278021
Node: ExGrowisofs279918
Node: ExException281071
Node: ExTime281529
Node: ExIncBackup281987
Node: ExRestore286013
Node: ExRecovery286959
Node: Files287531
Node: Environ288865
Node: Seealso289613
Node: Bugreport290330
Node: Legal290921
Node: CommandIdx291933
Node: ConceptIdx309758
Node: SetInsert70325
Node: Manip80442
Node: CmdFind90542
Node: Filter109471
Node: Writing114093
Node: SetWrite126348
Node: Bootable156200
Node: Jigdo184081
Node: Charset189084
Node: Exception192413
Node: DialogCtl198542
Node: Inquiry201144
Node: Navigate210026
Node: Verify218733
Node: Restore229882
Node: Emulation242090
Node: Scripting252546
Node: Frontend260329
Node: Examples269955
Node: ExDevices271133
Node: ExCreate271794
Node: ExDialog273094
Node: ExGrowing274365
Node: ExModifying275174
Node: ExBootable275684
Node: ExCharset276239
Node: ExPseudo277135
Node: ExCdrecord278062
Node: ExMkisofs278382
Node: ExGrowisofs280279
Node: ExException281432
Node: ExTime281890
Node: ExIncBackup282348
Node: ExRestore286374
Node: ExRecovery287320
Node: Files287892
Node: Environ289226
Node: Seealso289974
Node: Bugreport290691
Node: Legal291282
Node: CommandIdx292294
Node: ConceptIdx310119

End Tag Table

View File

@ -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.5, May 30, 2022"
@c man .TH XORRISO 1 "Version 1.5.5, Jun 02, 2022"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -1732,6 +1732,10 @@ E.g:
@*
/file/part_3_of_3_at_4094m_with_2047m_of_5753194821
@*
If the directory /file does no yet exist, then its permissions are not taken
from directory /my/disk but rather from /my/disk/file with additional
x-permission for those who have r-permission.
@*
While command -split_size is set larger than 0, and if all pieces of a file
reside in the same ISO directory with no other files, and if the names look
like above, then their ISO directory will be recognized and handled like a
@ -2037,6 +2041,9 @@ FAILURE event.
A well tested -split_size is 2047m. Sizes above -file_size_limit are not
permissible.
@*
The newly created ISO directory inherits its permissions from the data file
with additional x-permission for those who have r-permission.
@*
While command -split_size is set larger than 0 such a directory with split
file pieces will be recognized and handled like a regular file by commands
-compare* , -update*, and in overwrite situations. There are -osirrox

View File

@ -1 +1 @@
#define Xorriso_timestamP "2022.05.30.164747"
#define Xorriso_timestamP "2022.06.13.205546"