New find action mkisofs_r and emulation -as mkisofs -r

This commit is contained in:
Thomas Schmitt 2010-04-08 18:58:56 +00:00
parent cc0ddbeb10
commit 2bd7307dfa
7 changed files with 166 additions and 101 deletions

View File

@ -1632,6 +1632,13 @@ applies or removes filters.
.br .br
E.g.: -exec set_filter --zisofs -- E.g.: -exec set_filter --zisofs --
.br .br
\fBmkisofs_r\fR
applies the rules of mkisofs -r to the file object:
.br
user id and group id become 0, all r-permissions get granted, all w denied.
If there is any x-permission, then all three x get granted.
s- and t-bits get removed.
.br
\fBshow_stream\fR \fBshow_stream\fR
shows the content stream chain of a data file. shows the content stream chain of a data file.
.br .br
@ -2000,7 +2007,7 @@ Available types are:
"uuid" sets a timestring that overrides "m" time literally. "uuid" sets a timestring that overrides "m" time literally.
.br .br
It must consist of 16 decimal digits which form YYYYMMDDhhmmsscc, with It must consist of 16 decimal digits which form YYYYMMDDhhmmsscc, with
YYYY between 1970 and 2999. YYYY between 1970 and 2999. Time zone is GMT.
It is supposed to match this GRUB line: It is supposed to match this GRUB line:
.br .br
search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc
@ -3060,9 +3067,9 @@ Personality "\fBmkisofs\fR" accepts the options listed with:
.br .br
-as mkisofs -help -- -as mkisofs -help --
.br .br
Among them: -R (always on), -J, -o, -M, -C, -path-list, -m, -exclude-list, Among them: -R (always on), -r, -J, -o, -M, -C, -path-list, -m, -exclude-list,
-f, -print-size, -pad, -no-pad, -V, -v, -version, -graft-points, -z, -f, -print-size, -pad, -no-pad, -V, -v, -version, -graft-points, -z,
-no-emul-boot, -b, -c, -boot-info-table, -boot-load-size, -input-charset, -no-emul-boot, -b, -c, -boot-info-table, -boot-load-size, -input-charset, -G,
-output-charset, pathspecs as with xorriso -add. -output-charset, pathspecs as with xorriso -add.
A lot of options are not supported and lead to failure of the mkisofs A lot of options are not supported and lead to failure of the mkisofs
emulation. Some are ignored, but better do not rely on this tolerance. emulation. Some are ignored, but better do not rely on this tolerance.
@ -3097,6 +3104,11 @@ same name and hardcoded argument "on", e.g. -acl "on".
Explicit arguments are expected by --stdio_sync Explicit arguments are expected by --stdio_sync
and --scdbackup_tag. and --scdbackup_tag.
.br .br
Adopted from grub-mkisofs are --protective-msdos-label
(see -boot_image grub partition_table=on) and
--modification-date=YYYYMMDDhhmmsscc
(see -volume_date uuid).
.br
Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR", Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR",
and "\fBgenisofs\fR" are aliases for "mkisofs". and "\fBgenisofs\fR" are aliases for "mkisofs".
.br .br

View File

@ -11106,7 +11106,7 @@ int Xorriso_genisofs_ignore(struct XorrisO *xorriso, char *whom,
"-allow-leading-dots", "-ldots", "-allow-lowercase", "-allow-multidot", "-allow-leading-dots", "-ldots", "-allow-lowercase", "-allow-multidot",
"-cache-inodes", "-no-cache-inodes", "-check-oldnames", "-d", "-D", "-cache-inodes", "-no-cache-inodes", "-check-oldnames", "-d", "-D",
"-joliet-long", "-l", "-L", "-max-iso9660-filenames", "-N", "-nobak", "-joliet-long", "-l", "-L", "-max-iso9660-filenames", "-N", "-nobak",
"-no-bak", "-force-rr", "-r", "-relaxed-filenames", "-T", "-U", "-no-bak", "-force-rr", "-relaxed-filenames", "-T", "-U",
"-no-iso-translate", "-no-iso-translate",
"" ""
}; };
@ -11139,7 +11139,7 @@ no_volunteer:;
int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag) int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
{ {
static char helptext[][80]= { static char helptext[][160]= {
"Usage: xorriso -as mkisofs [options] file...", "Usage: xorriso -as mkisofs [options] file...",
"Note: This is not mkisofs. See xorriso -help, xorriso -version, man xorriso", "Note: This is not mkisofs. See xorriso -help, xorriso -version, man xorriso",
"Options:", "Options:",
@ -11164,6 +11164,7 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" -print-size Print estimated filesystem size and exit", " -print-size Print estimated filesystem size and exit",
" -quiet Run quietly", " -quiet Run quietly",
" -R, -rock Generate Rock Ridge directory information", " -R, -rock Generate Rock Ridge directory information",
" -r, -rational-rock Generate rationalized Rock Ridge directory information",
" --hardlinks Record eventual hard link relations of files", " --hardlinks Record eventual hard link relations of files",
" --acl Record eventual ACLs of files", " --acl Record eventual ACLs of files",
" --xattr Record eventual user space xattr of files", " --xattr Record eventual user space xattr of files",
@ -11217,9 +11218,10 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
{ {
int ret, i, was_path= 0, was_other_option= 0, mem_graft_points, mem; int ret, i, was_path= 0, was_other_option= 0, mem_graft_points, mem;
int do_print_size= 0, fd, idx, iso_level= 0, no_emul_boot= 0; int do_print_size= 0, fd, idx, iso_level= 0, no_emul_boot= 0;
int option_b= 0, was_failure= 0, fret; int option_b= 0, was_failure= 0, fret, lower_r= 0, zero= 0;
char sfe[5*SfileadrL], adr[SfileadrL+8], ra_text[80], pathspec[2*SfileadrL]; char sfe[5*SfileadrL], adr[SfileadrL+8], ra_text[80], pathspec[2*SfileadrL];
char *ept, *add_pt, eff_path[SfileadrL], indev[SfileadrL+8], msc[80], *cpt; char *ept, *add_pt, eff_path[SfileadrL], indev[SfileadrL+8], msc[80], *cpt;
static char *lower_r_args[3] = {"/", "-exec", "mkisofs_r"};
strcpy(ra_text, xorriso->report_about_text); strcpy(ra_text, xorriso->report_about_text);
@ -11333,20 +11335,6 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
ret= Xorriso_option_boot_image(xorriso, "isolinux", sfe, 0); ret= Xorriso_option_boot_image(xorriso, "isolinux", sfe, 0);
if(ret <= 0) if(ret <= 0)
goto problem_handler_1; goto problem_handler_1;
} else if(strcmp(argv[i], "--embedded-boot")==0 ||
strcmp(argv[i], "-G") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
ret= Xorriso_set_system_area_path(xorriso, argv[i], 0);
if(ret <= 0)
goto ex;
} else if(strcmp(argv[i], "--protective-msdos-label")==0) {
xorriso->system_area_options|= 1;
} else if(strncmp(argv[i], "--modification-date=", 20)==0) {
ret= Xorriso_option_volume_date(xorriso, "uuid", argv[i] + 20, 0);
if(ret <= 0)
goto problem_handler_1;
} else if(strcmp(argv[i], "-input-charset")==0) { } else if(strcmp(argv[i], "-input-charset")==0) {
if(i+1>=argc) if(i+1>=argc)
goto not_enough_args; goto not_enough_args;
@ -11494,6 +11482,8 @@ illegal_c:;
} else if(strcmp(argv[i], "-R")==0 || strcmp(argv[i], "-rock")==0) { } else if(strcmp(argv[i], "-R")==0 || strcmp(argv[i], "-rock")==0) {
/* ok */; /* ok */;
} else if(strcmp(argv[i], "-r")==0 || strcmp(argv[i], "-rational-rock")==0){
lower_r= 1;
} else if(strcmp(argv[i], "-J")==0 || strcmp(argv[i], "-joliet")==0) { } else if(strcmp(argv[i], "-J")==0 || strcmp(argv[i], "-joliet")==0) {
xorriso->do_joliet= 1; xorriso->do_joliet= 1;
} else if(strcmp(argv[i], "-graft-points")==0) { } else if(strcmp(argv[i], "-graft-points")==0) {
@ -11612,13 +11602,20 @@ not_enough_args:;
} else if(strncmp(argv[i], "isolinux_mbr=", 13)==0) { } else if(strncmp(argv[i], "isolinux_mbr=", 13)==0) {
/* was already handled in first argument scan */; /* was already handled in first argument scan */;
} else if(strcmp(argv[i], "--embedded-boot")==0 || } else if(strcmp(argv[i], "--embedded-boot")==0 ||
strcmp(argv[i], "-generic-boot")==0 ||
strcmp(argv[i], "-G") == 0) { strcmp(argv[i], "-G") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++; i++;
/* was already handled in first argument scan */; ret= Xorriso_set_system_area_path(xorriso, argv[i], 0);
if(ret <= 0)
goto ex;
} else if(strcmp(argv[i], "--protective-msdos-label")==0) { } else if(strcmp(argv[i], "--protective-msdos-label")==0) {
/* was already handled in first argument scan */; xorriso->system_area_options|= 1;
} else if(strncmp(argv[i], "--modification-date=", 20)==0) { } else if(strncmp(argv[i], "--modification-date=", 20)==0) {
/* was already handled in first argument scan */; ret= Xorriso_option_volume_date(xorriso, "uuid", argv[i] + 20, 0);
if(ret <= 0)
goto problem_handler_1;
} else if(strcmp(argv[i], "-boot-load-size") == 0) { } else if(strcmp(argv[i], "-boot-load-size") == 0) {
i++; i++;
/* was already handled in first argument scan */; /* was already handled in first argument scan */;
@ -11695,6 +11692,11 @@ problem_handler_2:;
if(ret<=0) if(ret<=0)
goto ex; goto ex;
} }
if(lower_r) {
ret= Xorriso_option_find(xorriso, 3, lower_r_args, &zero, 2);
if(ret<=0)
goto ex;
}
ret= !was_failure; ret= !was_failure;
ex:; ex:;
@ -16071,6 +16073,8 @@ not_enough_exec_arguments:;
Xorriso_pacifier_reset(xorriso, 0); Xorriso_pacifier_reset(xorriso, 0);
mem_lut= xorriso->last_update_time; mem_lut= xorriso->last_update_time;
} }
} else if(strcmp(cpt, "mkisofs_r")==0) {
Findjob_set_action_target(job, 37, NULL, 0);
} else { } else {
sprintf(xorriso->info_text, "-find -exec: unknown action %s", sprintf(xorriso->info_text, "-find -exec: unknown action %s",
Text_shellsafe(argv[i], sfe, 0)); Text_shellsafe(argv[i], sfe, 0));
@ -16605,7 +16609,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" rm, rm_r, compare, update, report_damage, report_lba,", " rm, rm_r, compare, update, report_damage, report_lba,",
" getfacl, setfacl, getfattr, setfattr, get_any_xattr,", " getfacl, setfacl, getfattr, setfattr, get_any_xattr,",
" get_md5, check_md5, make_md5, set_filter, show_stream,", " get_md5, check_md5, make_md5, set_filter, show_stream,",
" find.", " mkisofs_r, find.",
" params are their arguments except iso_rr_path.", " params are their arguments except iso_rr_path.",
" -mkdir iso_rr_path [...]", " -mkdir iso_rr_path [...]",
" Create empty directories if they do not exist yet.", " Create empty directories if they do not exist yet.",
@ -16818,9 +16822,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Preset options for runs of -check_media and -extract_cut.", " Preset options for runs of -check_media and -extract_cut.",
"", "",
"Compatibility emulation (argument list may be ended by list delimiter --):", "Compatibility emulation (argument list may be ended by list delimiter --):",
" -as mkisofs [-help|-version|-o|-R|-J|-V|-P|-f|-m|-exclude-list|-no-pad|", " -as mkisofs [-help|-version|-o|-R|-r|-J|-V|-P|-f|-m|-exclude-list|",
" -M|-C|-graft-points|-path-list|pathspecs|-z|", " -no-pad|-M|-C|-graft-points|-path-list|pathspecs|-z|",
" -no-emul-boot|-b|-c|-boot-info-table|-boot-load-size]", " -no-emul-boot|-b|-c|-boot-info-table|-boot-load-size|-G]",
" Perform some mkisofs gestures, understand pathspecs as mkisofs", " Perform some mkisofs gestures, understand pathspecs as mkisofs",
" does. Commit happens outside emulation at usual occasions.", " does. Commit happens outside emulation at usual occasions.",
" -as cdrecord [-help|-v|dev=|speed=|blank=|fs=|-eject|-atip|padsize=|-multi]", " -as cdrecord [-help|-v|dev=|speed=|blank=|fs=|-eject|-atip|padsize=|-multi]",
@ -19704,7 +19708,9 @@ int Xorriso_option_volume_date(struct XorrisO *xorriso,
if(timestring[0] == 0 || strcmp(timestring, "default") == 0 || if(timestring[0] == 0 || strcmp(timestring, "default") == 0 ||
strcmp(timestring, "overridden") == 0 ){ strcmp(timestring, "overridden") == 0 ){
t= 0; t= 0;
} else if(strcmp(time_type, "uuid") != 0) { } else if(strcmp(time_type, "uuid") == 0) {
t= time(NULL); /* Just to have some that is not 0 */
} else {
ret= Xorriso_convert_datestring(xorriso, "-volume_date", ret= Xorriso_convert_datestring(xorriso, "-volume_date",
"m", timestring, &t_type, &t, 0); "m", timestring, &t_type, &t, 0);
if(ret<=0) if(ret<=0)

View File

@ -1,5 +1,5 @@
This is xorriso.info, produced by makeinfo version 4.8 from This is xorriso/xorriso.info, produced by makeinfo version 4.8 from
./xorriso.texi. ./xorriso/xorriso.texi.
INFO-DIR-SECTION Archiving INFO-DIR-SECTION Archiving
START-INFO-DIR-ENTRY START-INFO-DIR-ENTRY
@ -1473,6 +1473,11 @@ File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Options
set_filter set_filter
applies or removes filters. applies or removes filters.
E.g.: -exec set_filter --zisofs -- E.g.: -exec set_filter --zisofs --
mkisofs_r
applies the rules of mkisofs -r to the file object:
user id and group id become 0, all r-permissions get granted,
all w denied. If there is any x-permission, then all three x
get granted. s- and t-bits get removed.
show_stream show_stream
shows the content stream chain of a data file. shows the content stream chain of a data file.
find find
@ -1795,8 +1800,8 @@ will be written according to the setting of option -acl.
"f" time since when the volume is effectively valid. "f" time since when the volume is effectively valid.
"uuid" sets a timestring that overrides "m" time literally. "uuid" sets a timestring that overrides "m" time literally.
It must consist of 16 decimal digits which form YYYYMMDDhhmmsscc, It must consist of 16 decimal digits which form YYYYMMDDhhmmsscc,
with YYYY between 1970 and 2999. It is supposed to match this with YYYY between 1970 and 2999. Time zone is GMT. It is supposed
GRUB line: to match this GRUB line:
search -fs-uuid -set YYYY-MM-DD-hh-mm-ss-cc search -fs-uuid -set YYYY-MM-DD-hh-mm-ss-cc
E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds). E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
Timestrings for the other types may be given as with option Timestrings for the other types may be given as with option
@ -2748,10 +2753,10 @@ programs trigger comparable actions.
Personality "*mkisofs*" accepts the options listed with: Personality "*mkisofs*" accepts the options listed with:
-as mkisofs -help -- -as mkisofs -help --
Among them: -R (always on), -J, -o, -M, -C, -path-list, -m, Among them: -R (always on), -r, -J, -o, -M, -C, -path-list, -m,
-exclude-list, -f, -print-size, -pad, -no-pad, -V, -v, -version, -exclude-list, -f, -print-size, -pad, -no-pad, -V, -v, -version,
-graft-points, -z, -no-emul-boot, -b, -c, -boot-info-table, -graft-points, -z, -no-emul-boot, -b, -c, -boot-info-table,
-boot-load-size, -input-charset, -output-charset, pathspecs as -boot-load-size, -input-charset, -G, -output-charset, pathspecs as
with xorriso -add. A lot of options are not supported and lead to with xorriso -add. A lot of options are not supported and lead to
failure of the mkisofs emulation. Some are ignored, but better do failure of the mkisofs emulation. Some are ignored, but better do
not rely on this tolerance. not rely on this tolerance.
@ -2780,6 +2785,9 @@ programs trigger comparable actions.
xorriso options with the same name and hardcoded argument "on", xorriso options with the same name and hardcoded argument "on",
e.g. -acl "on". Explicit arguments are expected by --stdio_sync e.g. -acl "on". Explicit arguments are expected by --stdio_sync
and --scdbackup_tag. and --scdbackup_tag.
Adopted from grub-mkisofs are --protective-msdos-label (see
-boot_image grub partition_table=on) and
--modification-date=YYYYMMDDhhmmsscc (see -volume_date uuid).
Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are
aliases for "mkisofs". aliases for "mkisofs".
If xorriso is started with one of the leafnames "xorrisofs", If xorriso is started with one of the leafnames "xorrisofs",
@ -3665,7 +3673,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -out_charset sets output character set: SetWrite. (line 114) * -out_charset sets output character set: SetWrite. (line 114)
* -outdev aquires a drive for output: AqDrive. (line 29) * -outdev aquires a drive for output: AqDrive. (line 29)
* -overwrite enables overwriting in ISO: SetInsert. (line 127) * -overwrite enables overwriting in ISO: SetInsert. (line 127)
* -pacifier controls pacifier text form: Emulation. (line 92) * -pacifier controls pacifier text form: Emulation. (line 95)
* -padding sets amount of image padding: SetWrite. (line 197) * -padding sets amount of image padding: SetWrite. (line 197)
* -page set terminal geometry: DialogCtl. (line 15) * -page set terminal geometry: DialogCtl. (line 15)
* -paste_in copies file into disk file: Restore. (line 117) * -paste_in copies file into disk file: Restore. (line 117)
@ -3692,7 +3700,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -rollback discards pending changes: Writing. (line 9) * -rollback discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 125) * -rollback_end ends program without writing: Scripting. (line 125)
* -rom_toc_scan searches for sessions: Loading. (line 189) * -rom_toc_scan searches for sessions: Loading. (line 189)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 102) * -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 105)
* -scsi_log reports SCSI commands: Scripting. (line 113) * -scsi_log reports SCSI commands: Scripting. (line 113)
* -session_log logs written sessions: Scripting. (line 104) * -session_log logs written sessions: Scripting. (line 104)
* -session_string composes session info line: Inquiry. (line 56) * -session_string composes session info line: Inquiry. (line 56)
@ -3748,11 +3756,11 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Backslash Interpretation, _definition: Processing. (line 49) * Backslash Interpretation, _definition: Processing. (line 49)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 168) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 168)
* Backup, enable features, -for_backup: Loading. (line 163) * Backup, enable features, -for_backup: Loading. (line 163)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 102) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 105)
* Blank media, _definition: Media. (line 25) * Blank media, _definition: Media. (line 25)
* Blind growing, _definition: Methods. (line 40) * Blind growing, _definition: Methods. (line 40)
* Bootability, control, -boot_image: Bootable. (line 20) * Bootability, control, -boot_image: Bootable. (line 20)
* cdrecord, Emulation: Emulation. (line 59) * cdrecord, Emulation: Emulation. (line 62)
* Character Set, _definition: Charset. (line 6) * Character Set, _definition: Charset. (line 6)
* Character Set, for input, -in_charset: Loading. (line 73) * Character Set, for input, -in_charset: Loading. (line 73)
* Character Set, for input/output, -charset: Charset. (line 43) * Character Set, for input/output, -charset: Charset. (line 43)
@ -3787,9 +3795,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, write and eject, -commit_eject: Writing. (line 40) * Drive, write and eject, -commit_eject: Writing. (line 40)
* El Torito, _definiton: Extras. (line 19) * El Torito, _definiton: Extras. (line 19)
* Emulation, -as: Emulation. (line 13) * Emulation, -as: Emulation. (line 13)
* Emulation, cdrecord, -as: Emulation. (line 59) * Emulation, cdrecord, -as: Emulation. (line 62)
* Emulation, mkisofs, -as: Emulation. (line 16) * Emulation, mkisofs, -as: Emulation. (line 16)
* Emulation, pacifier form, -pacifier: Emulation. (line 92) * Emulation, pacifier form, -pacifier: Emulation. (line 95)
* Examples: Examples. (line 6) * Examples: Examples. (line 6)
* Filter, _definition: Filter. (line 6) * Filter, _definition: Filter. (line 6)
* Filter, apply to file tree, -set_filter_r: Filter. (line 84) * Filter, apply to file tree, -set_filter_r: Filter. (line 84)
@ -3958,57 +3966,57 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
 
Tag Table: Tag Table:
Node: Top420 Node: Top436
Node: Overview1324 Node: Overview1340
Node: Model3201 Node: Model3217
Node: Media6081 Node: Media6097
Node: Methods8511 Node: Methods8527
Node: Drives11058 Node: Drives11074
Node: Extras14324 Node: Extras14340
Node: Processing17455 Node: Processing17471
Node: Dialog20951 Node: Dialog20967
Node: Options22608 Node: Options22624
Node: AqDrive24176 Node: AqDrive24192
Node: Loading27082 Node: Loading27098
Node: Insert39517 Node: Insert39533
Node: SetInsert47874 Node: SetInsert47890
Node: Manip56441 Node: Manip56457
Node: CmdFind64317 Node: CmdFind64333
Node: Filter72875 Node: Filter73162
Node: Writing77224 Node: Writing77511
Node: SetWrite83513 Node: SetWrite83800
Node: Bootable93406 Node: Bootable93711
Node: Charset98533 Node: Charset98838
Node: Exception101287 Node: Exception101592
Node: DialogCtl105802 Node: DialogCtl106107
Node: Inquiry108147 Node: Inquiry108452
Node: Navigate112287 Node: Navigate112592
Node: Verify119641 Node: Verify119946
Node: Restore128061 Node: Restore128366
Node: Emulation134717 Node: Emulation135022
Node: Scripting140743 Node: Scripting141234
Node: Frontend146305 Node: Frontend146796
Node: Examples147506 Node: Examples147997
Node: ExDevices148675 Node: ExDevices149166
Node: ExCreate149157 Node: ExCreate149648
Node: ExDialog150431 Node: ExDialog150922
Node: ExGrowing151693 Node: ExGrowing152184
Node: ExModifying152495 Node: ExModifying152986
Node: ExBootable152996 Node: ExBootable153487
Node: ExCharset153543 Node: ExCharset154034
Node: ExPseudo154371 Node: ExPseudo154862
Node: ExCdrecord155265 Node: ExCdrecord155756
Node: ExMkisofs155580 Node: ExMkisofs156071
Node: ExGrowisofs156583 Node: ExGrowisofs157074
Node: ExException157707 Node: ExException158198
Node: ExTime158161 Node: ExTime158652
Node: ExIncBackup158620 Node: ExIncBackup159111
Node: ExRestore162092 Node: ExRestore162583
Node: ExRecovery163061 Node: ExRecovery163552
Node: Files163626 Node: Files164117
Node: Seealso164213 Node: Seealso164704
Node: Legal164737 Node: Legal165228
Node: CommandIdx165659 Node: CommandIdx166150
Node: ConceptIdx178960 Node: ConceptIdx179451
 
End Tag Table End Tag Table

View File

@ -44,7 +44,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 "Apr 07, 2010" @c man .TH XORRISO 1 "Apr 08, 2010"
@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:
@ -1997,6 +1997,13 @@ applies or removes filters.
@* @*
E.g.: -exec set_filter @minus{}@minus{}zisofs @minus{}@minus{} E.g.: -exec set_filter @minus{}@minus{}zisofs @minus{}@minus{}
@* @*
@item mkisofs_r
applies the rules of mkisofs -r to the file object:
@*
user id and group id become 0, all r-permissions get granted, all w denied.
If there is any x-permission, then all three x get granted.
s- and t-bits get removed.
@*
@item show_stream @item show_stream
shows the content stream chain of a data file. shows the content stream chain of a data file.
@* @*
@ -2425,7 +2432,7 @@ Available types are:
"uuid" sets a timestring that overrides "m" time literally. "uuid" sets a timestring that overrides "m" time literally.
@* @*
It must consist of 16 decimal digits which form YYYYMMDDhhmmsscc, with It must consist of 16 decimal digits which form YYYYMMDDhhmmsscc, with
YYYY between 1970 and 2999. YYYY between 1970 and 2999. Time zone is GMT.
It is supposed to match this GRUB line: It is supposed to match this GRUB line:
@* @*
search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc
@ -3694,9 +3701,9 @@ Personality "@strong{mkisofs}" accepts the options listed with:
@* @*
-as mkisofs -help @minus{}@minus{} -as mkisofs -help @minus{}@minus{}
@* @*
Among them: -R (always on), -J, -o, -M, -C, -path-list, -m, -exclude-list, Among them: -R (always on), -r, -J, -o, -M, -C, -path-list, -m, -exclude-list,
-f, -print-size, -pad, -no-pad, -V, -v, -version, -graft-points, -z, -f, -print-size, -pad, -no-pad, -V, -v, -version, -graft-points, -z,
-no-emul-boot, -b, -c, -boot-info-table, -boot-load-size, -input-charset, -no-emul-boot, -b, -c, -boot-info-table, -boot-load-size, -input-charset, -G,
-output-charset, pathspecs as with xorriso -add. -output-charset, pathspecs as with xorriso -add.
A lot of options are not supported and lead to failure of the mkisofs A lot of options are not supported and lead to failure of the mkisofs
emulation. Some are ignored, but better do not rely on this tolerance. emulation. Some are ignored, but better do not rely on this tolerance.
@ -3731,6 +3738,11 @@ same name and hardcoded argument "on", e.g. -acl "on".
Explicit arguments are expected by @minus{}@minus{}stdio_sync Explicit arguments are expected by @minus{}@minus{}stdio_sync
and @minus{}@minus{}scdbackup_tag. and @minus{}@minus{}scdbackup_tag.
@* @*
Adopted from grub-mkisofs are @minus{}@minus{}protective-msdos-label
(see -boot_image grub partition_table=on) and
@minus{}@minus{}modification-date=YYYYMMDDhhmmsscc
(see -volume_date uuid).
@*
@c Quite special is isolinux_mbr= (see -boot_image isolinux isohybrid=). @c Quite special is isolinux_mbr= (see -boot_image isolinux isohybrid=).
@c @* @c @*
Personalites "@strong{xorrisofs}", "@strong{genisoimage}", Personalites "@strong{xorrisofs}", "@strong{genisoimage}",

View File

@ -1005,6 +1005,7 @@ struct FindjoB {
34= get_md5 34= get_md5
35= check_md5 35= check_md5
36= make_md5 36= make_md5
37= mkisofs_r
*/ */
int action; int action;
int prune; int prune;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.04.07.202559" #define Xorriso_timestamP "2010.04.08.185744"

View File

@ -1695,10 +1695,10 @@ int Xorriso_set_system_area(struct XorrisO *xorriso,
{ {
int ret; int ret;
FILE *fp= NULL; FILE *fp= NULL;
char buf[32768]; char buf[32768], *bufpt= NULL;
if(xorriso->system_area_disk_path[0] == 0) if(xorriso->system_area_disk_path[0] == 0)
return(1); goto do_set;
ret= Xorriso_afile_fopen(xorriso, xorriso->system_area_disk_path, ret= Xorriso_afile_fopen(xorriso, xorriso->system_area_disk_path,
"rb", &fp, 0); "rb", &fp, 0);
@ -1715,7 +1715,11 @@ int Xorriso_set_system_area(struct XorrisO *xorriso,
{ret= 0; goto ex;} {ret= 0; goto ex;}
} }
} }
ret= isoburn_igopt_set_system_area(sopts, buf, xorriso->system_area_options); bufpt= buf;
do_set:;
ret= isoburn_igopt_set_system_area(sopts, bufpt,
xorriso->system_area_options);
if(ret != ISO_SUCCESS) { if(ret != ISO_SUCCESS) {
Xorriso_process_msg_queues(xorriso,0); Xorriso_process_msg_queues(xorriso,0);
Xorriso_report_iso_error(xorriso, "", ret, Xorriso_report_iso_error(xorriso, "", ret,
@ -7828,6 +7832,26 @@ int Xorriso_widen_hardlink(struct XorrisO *xorriso, void * boss_iter,
} }
/*
Apply the effect of mkisofs -r to a single node
*/
int Xorriso_mkisofs_lower_r(struct XorrisO *xorriso, IsoNode *node, int flag)
{
mode_t perms;
perms= iso_node_get_permissions(node);
iso_node_set_uid(node, (uid_t) 0);
iso_node_set_gid(node, (gid_t) 0);
perms|= S_IRUSR | S_IRGRP | S_IROTH;
perms&= ~(S_IWUSR | S_IWGRP | S_IWOTH);
if(perms & (S_IXUSR | S_IXGRP | S_IXOTH))
perms|= (S_IXUSR | S_IXGRP | S_IXOTH);
perms&= ~(S_ISUID | S_ISGID | S_ISVTX);
iso_node_set_permissions(node, perms);
return(1);
}
/* @param flag bit0= not a command parameter (directory iteration or recursion) /* @param flag bit0= not a command parameter (directory iteration or recursion)
bit1= do not count deleted files with rm and rm_r bit1= do not count deleted files with rm and rm_r
@return <=0 error, @return <=0 error,
@ -7950,9 +7974,11 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
if(ret >= 0) if(ret >= 0)
ret= 1; ret= 1;
} else if(action == 36) { /* make_md5 */ } else if(action == 36) { /* make_md5 */
ret = Xorriso_make_md5(xorriso, (void *) node, show_path, 0); ret= Xorriso_make_md5(xorriso, (void *) node, show_path, 0);
if(ret >= 0) if(ret >= 0)
ret= 1; ret= 1;
} else if(action == 37) { /* mkisofs_r */
ret= Xorriso_mkisofs_lower_r(xorriso, node, 0);
} else { /* includes : 15 in_iso */ } else { /* includes : 15 in_iso */
sprintf(xorriso->result_line, "%s\n", Text_shellsafe(show_path, sfe, 0)); sprintf(xorriso->result_line, "%s\n", Text_shellsafe(show_path, sfe, 0));
Xorriso_result(xorriso, 0); Xorriso_result(xorriso, 0);