New -as mkisofs options --sort-weight-list and --sort-weight-patterns

This commit is contained in:
Thomas Schmitt 2013-05-28 17:58:01 +00:00
parent db040c6e42
commit c479eb0c0c
9 changed files with 248 additions and 46 deletions

View File

@ -1775,7 +1775,7 @@ int Xorriso_afile_fopen(struct XorrisO *xorriso,
if(fp==NULL){ if(fp==NULL){
if(!(flag&1)) { if(!(flag&1)) {
sprintf(xorriso->info_text, sprintf(xorriso->info_text,
"Failed to open file '%s' in %s mode\n", filename, mode); "Failed to open file '%s' in %s mode", filename, mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
} }
return(0); return(0);

View File

@ -619,7 +619,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
"-partition_sec_hd", "-partition_cyl_align", "-untranslated_name_len", "-partition_sec_hd", "-partition_cyl_align", "-untranslated_name_len",
"-rr_reloc_dir", "-hfsplus-serial-no", "-prep-boot-part", "-efi-boot-part", "-rr_reloc_dir", "-hfsplus-serial-no", "-prep-boot-part", "-efi-boot-part",
"-hfsplus-block-size", "-apm-block-size", "--grub2-mbr", "-hfsplus-block-size", "-apm-block-size", "--grub2-mbr",
"--grub2-sparc-core", "--grub2-sparc-core", "--sort-weight-list", "--sort-weight-patterns",
"" ""
}; };
static char arg2_options[][41]= { static char arg2_options[][41]= {
@ -850,6 +850,8 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" isolinux_mbr=on|auto|off Control eventual isohybrid MBR generation", " isolinux_mbr=on|auto|off Control eventual isohybrid MBR generation",
#endif #endif
" --sort-weight NUMBER FILE Set LBA weight number to file or file tree", " --sort-weight NUMBER FILE Set LBA weight number to file or file tree",
" --sort-weight-list DISKFILE Read list of NUMBER FILE pairs for --sort-weight",
" --sort-weight-patterns DISKFILE --sort-weight-list with pattern expansion",
" --stdio_sync on|off|number Control forced output to disk files", " --stdio_sync on|off|number Control forced output to disk files",
" --no-emul-toc Save 64 kB size on random access output files", " --no-emul-toc Save 64 kB size on random access output files",
" --emul-toc Multi-session history on such output files", " --emul-toc Multi-session history on such output files",
@ -1143,10 +1145,10 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int root_seen= 0, do_md5_mem, option_d= 0, arg_count; int root_seen= 0, do_md5_mem, option_d= 0, arg_count;
mode_t mode_and, mode_or; mode_t mode_and, mode_or;
int with_boot_image= 0, with_cat_path= 0, with_emul_toc= 0; int with_boot_image= 0, with_cat_path= 0, with_emul_toc= 0;
int old_root_md5= 1, old_root_dev= 0, old_root_ino= 1; int old_root_md5= 1, old_root_dev= 0, old_root_ino= 1, sort_file_pattern= 0;
int *weight_list= NULL, weight_count= 0; int *weight_list= NULL, weight_count= 0;
int *delay_opt_list= NULL, delay_opt_count= 0; int *delay_opt_list= NULL, delay_opt_count= 0;
char *sfe= NULL, *adr= NULL, ra_text[80], *pathspec= NULL; char *sfe= NULL, *adr= NULL, ra_text[80], *pathspec= NULL, *sort_file= NULL;
char *ept, *add_pt, *eff_path= NULL, *indev= NULL, msc[80], *cpt; char *ept, *add_pt, *eff_path= NULL, *indev= NULL, msc[80], *cpt;
char *old_root= NULL, *argpt, *hargv[1]; char *old_root= NULL, *argpt, *hargv[1];
char *boot_path, partno_text[8], *iso_rr_pt, *disk_pt, *rpt, *wpt; char *boot_path, partno_text[8], *iso_rr_pt, *disk_pt, *rpt, *wpt;
@ -1161,6 +1163,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
Xorriso_alloc_meM(eff_path, char, SfileadrL); Xorriso_alloc_meM(eff_path, char, SfileadrL);
Xorriso_alloc_meM(indev, char, SfileadrL+8); Xorriso_alloc_meM(indev, char, SfileadrL+8);
Xorriso_alloc_meM(old_root, char, SfileadrL); Xorriso_alloc_meM(old_root, char, SfileadrL);
Xorriso_alloc_meM(sort_file, char, SfileadrL);
for(i= 0; i<argc; i++) { for(i= 0; i<argc; i++) {
if(strcmp(argv[i], "-log-file") == 0 || if(strcmp(argv[i], "-log-file") == 0 ||
@ -1207,7 +1210,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
if(xorriso->boot_image_cat_path[0]) if(xorriso->boot_image_cat_path[0])
with_cat_path= -1; with_cat_path= -1;
adr[0]= indev[0]= msc[0]= old_root[0]= 0; adr[0]= indev[0]= msc[0]= old_root[0]= sort_file[0]= 0;
for(i= 0; i<argc; i++) { for(i= 0; i<argc; i++) {
ret= Xorriso_genisofs_strip_dash(xorriso, argv[i], &argpt, 0); ret= Xorriso_genisofs_strip_dash(xorriso, argv[i], &argpt, 0);
if(ret <= 0) if(ret <= 0)
@ -1787,6 +1790,15 @@ not_enough_args:;
i+= 2; i+= 2;
/* memorize for find runs after pathspecs have been added */ /* memorize for find runs after pathspecs have been added */
weight_list[weight_count++]= i - 2; weight_list[weight_count++]= i - 2;
} else if(strcmp(argpt, "--sort-weight-list") == 0 ||
strcmp(argpt, "--sort-weight-patterns") == 0) {
if(i + 1 >= argc)
goto not_enough_args;
i++;
if(Sfile_str(sort_file, argv[i], 0) <= 0)
{ret= -1; goto ex;}
sort_file_pattern= (strcmp(argpt, "--sort-weight-patterns") == 0);
} else if(strcmp(argpt, "-z")==0 || } else if(strcmp(argpt, "-z")==0 ||
strcmp(argpt, "-transparent-compression")==0) { strcmp(argpt, "-transparent-compression")==0) {
/* was already handled in first argument scan */; /* was already handled in first argument scan */;
@ -2184,6 +2196,12 @@ problem_handler_2:;
goto ex; goto ex;
} }
if(sort_file[0]) {
ret= Xorriso_apply_sort_file(xorriso, sort_file, sort_file_pattern);
if(ret<=0)
goto ex;
}
for(j= 0; j < weight_count; j++) { for(j= 0; j < weight_count; j++) {
i= weight_list[j]; i= weight_list[j];
/* find argv[i+2] -exec sort_weight argv[i+1] */ /* find argv[i+2] -exec sort_weight argv[i+1] */

View File

@ -3954,3 +3954,85 @@ int Xorriso_get_blessing(struct XorrisO *xorriso, IsoNode *node,
} }
/* @param flag bit0= use file addresses as search patterns
*/
int Xorriso_apply_sort_file(struct XorrisO *xorriso, char *path, int flag)
{
int ret, linecount= 0, filec= 0, zero, i;
FILE *fp= NULL;
char *sret, *line= NULL, *spt, *tpt, *patterns[1], **filev= NULL;
char *sort_weight_args[4];
off_t mem= 0;
IsoImage *volume;
Xorriso_alloc_meM(line, char, SfileadrL);
ret= Xorriso_get_volume(xorriso, &volume, 0);
if(ret<=0)
goto ex;
ret= Xorriso_afile_fopen(xorriso, path, "rb", &fp, 2);
if(ret <= 0)
{ret= 0; goto ex;}
while(1) {
sret= Sfile_fgets_n(line, SfileadrL - 1, fp, 0);
if(sret == NULL) {
if(ferror(fp))
{ret= 0; goto ex;}
break;
}
linecount++;
/* Find first space or tab */
spt= strchr(line, ' ');
tpt= strchr(line, '\t');
if(spt == NULL || (tpt != NULL && tpt < spt))
spt= tpt;
if(spt == NULL) {
sprintf(xorriso->info_text,
"No space or tab character found in line %d of sort weight file ",
linecount);
Text_shellsafe(path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
*spt= 0;
patterns[0]= spt + 1;
if(flag & 1) {
/* Obtain list of matching files */
ret= Xorriso_expand_pattern(xorriso, 1, patterns, 0,
&filec, &filev, &mem, 4);
if(ret <= 0)
{ret= 0; goto ex;}
} else {
filec= 1;
}
/* Apply weight to file or directory tree */
for(i= 0; i < filec; i++) {
zero= 0;
if(flag & 1) {
sort_weight_args[0]= filev[i];
} else {
sort_weight_args[0]= patterns[0];
}
sort_weight_args[1]= "-exec";
sort_weight_args[2]= "sort_weight";
sort_weight_args[3]= line;
ret= Xorriso_option_find(xorriso, 4, sort_weight_args, &zero, 2);
if(ret <= 0)
{ret= 0; goto ex;}
}
if(flag & 1)
Sfile_destroy_argv(&filec, &filev, 0);
}
ret= 1;
ex:
if(fp != NULL)
fclose(fp);
Xorriso_free_meM(line);
Sfile_destroy_argv(&filec, &filev, 0);
return(ret);
}

View File

@ -1883,6 +1883,7 @@ ex:;
/* @param flag bit0= a match count !=1 is a FAILURE event /* @param flag bit0= a match count !=1 is a FAILURE event
bit1= with bit0 tolerate 0 matches if pattern is a constant bit1= with bit0 tolerate 0 matches if pattern is a constant
bit2= do not issue debug messages about temporay memory needs
*/ */
int Xorriso_expand_pattern(struct XorrisO *xorriso, int Xorriso_expand_pattern(struct XorrisO *xorriso,
int num_patterns, char **patterns, int extra_filec, int num_patterns, char **patterns, int extra_filec,
@ -1965,7 +1966,7 @@ int Xorriso_expand_pattern(struct XorrisO *xorriso,
mem+= extra_filec*sizeof(char *); mem+= extra_filec*sizeof(char *);
if(count<=0) if(count<=0)
{ret= 0; goto ex;} {ret= 0; goto ex;}
ret= Xorriso_alloc_pattern_mem(xorriso, *mem, count, filev, 0); ret= Xorriso_alloc_pattern_mem(xorriso, *mem, count, filev, !!(flag & 4));
if(ret<=0) if(ret<=0)
goto ex; goto ex;
/* now store addresses */ /* now store addresses */

View File

@ -1 +1 @@
#define Xorriso_timestamP "2013.05.24.111243" #define Xorriso_timestamP "2013.05.28.175212"

View File

@ -608,5 +608,9 @@ int Xorriso_hfsplus_bless(struct XorrisO *xorriso, char *path,
int Xorriso_pretend_full_disc(struct XorrisO *xorriso, int flag); int Xorriso_pretend_full_disc(struct XorrisO *xorriso, int flag);
int Xorriso_apply_sort_file(struct XorrisO *xorriso, char *path, int flag);
#endif /* Xorrisoburn_includeD */ #endif /* Xorrisoburn_includeD */

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 XORRISOFS 1 "Version 1.3.1, May 17, 2013" .TH XORRISOFS 1 "Version 1.3.1, May 27, 2013"
.\" 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:
@ -374,6 +374,35 @@ Currently the El Torito boot catalog has a hardcoded weight of 1 billion.
Normally it should occupy the block with the lowest possible address. Normally it should occupy the block with the lowest possible address.
Data files get added or loaded with initial weight 0. Data files get added or loaded with initial weight 0.
.TP .TP
\fB--sort-weight-list\fR disk_path
Read pairs of weight number and iso_rr_path from a file of the
local filesystem. Apply each pair like with \-\-sort\-weight.
.br
Only the last \-\-sort\-weight\-list or
\-\-sort\-weight\-patterns of a xorrisofs run gets into effect.
.br
The weight number is read from the start of the line.
The iso_rr_path part of an input line begins immediately after the first blank
or tab character of the line.
.br
Notes for the case that this feature is used within a sequence of generic
xorriso commands (not an issue with a pure mkisofs emulation run):
.br
The addressed files must already be in the ISO image model when you execute
.br
\-as mkisofs \-\-sort\-weight\-list disk_path \-\-
.br
Several such commands may be used to apply more than one weight file.
.br
Data files which are loaded by \-indev or \-dev get a weight between 1 and
2 exp 28 = 268,435,456, depending on their block address. This shall keep
them roughly in the same order if the write method of modifying is applied.
.TP
\fB--sort-weight-patterns\fR disk_path
Like \-\-sort\-weight\-list , but expanding the iso_rr_paths as
shell parser patterns and applying \-\-sort\-weight to each
matching file.
.TP
\fB\-dir-mode\fR mode \fB\-dir-mode\fR mode
Set the access permissions for all directories in the image to the given Set the access permissions for all directories in the image to the given
mode which is either an octal number beginning with "0" or a comma separated mode which is either an octal number beginning with "0" or a comma separated

View File

@ -393,6 +393,31 @@ File: xorrisofs.info, Node: SetProduct, Next: SetCompl, Prev: SetInsert, Up:
the block with the lowest possible address. Data files get added the block with the lowest possible address. Data files get added
or loaded with initial weight 0. or loaded with initial weight 0.
--sort-weight-list disk_path
Read pairs of weight number and iso_rr_path from a file of the
local filesystem. Apply each pair like with --sort-weight.
Only the last --sort-weight-list or --sort-weight-patterns of a
xorrisofs run gets into effect.
The weight number is read from the start of the line. The
iso_rr_path part of an input line begins immediately after the
first blank or tab character of the line.
Notes for the case that this feature is used within a sequence of
generic xorriso commands (not an issue with a pure mkisofs
emulation run):
The addressed files must already be in the ISO image model when
you execute
-as mkisofs --sort-weight-list disk_path --
Several such commands may be used to apply more than one weight
file.
Data files which are loaded by -indev or -dev get a weight between
1 and 2 exp 28 = 268,435,456, depending on their block address.
This shall keep them roughly in the same order if the write method
of modifying is applied.
--sort-weight-patterns disk_path
Like --sort-weight-list , but expanding the iso_rr_paths as shell
parser patterns and applying --sort-weight to each matching file.
-dir-mode mode -dir-mode mode
Set the access permissions for all directories in the image to the Set the access permissions for all directories in the image to the
given mode which is either an octal number beginning with "0" or a given mode which is either an octal number beginning with "0" or a
@ -1753,7 +1778,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* --no_rc do not execute startup files: Miscellaneous. (line 19) * --no_rc do not execute startup files: Miscellaneous. (line 19)
* --norock disable Rock Ridge production: SetExtras. (line 25) * --norock disable Rock Ridge production: SetExtras. (line 25)
* --old-empty old block addresses for empty files: SetProduct. * --old-empty old block addresses for empty files: SetProduct.
(line 81) (line 106)
* --old-root-devno enable disk idevno with -old-root: SetInsert. * --old-root-devno enable disk idevno with -old-root: SetInsert.
(line 97) (line 97)
* --old-root-no-ino disable disk ino with -old-root: SetInsert. * --old-root-no-ino disable disk ino with -old-root: SetInsert.
@ -1764,7 +1789,12 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* --quoted_path_list read pathspecs from disk file: SetInsert. * --quoted_path_list read pathspecs from disk file: SetInsert.
(line 13) (line 13)
* --scdbackup_tag Recording of MD5 checksum: SetExtras. (line 101) * --scdbackup_tag Recording of MD5 checksum: SetExtras. (line 101)
* --sort-weight set output file address: SetProduct. (line 49) * --sort-weight set block address sorting weight: SetProduct.
(line 49)
* --sort-weight-list set block address sorting weight: SetProduct.
(line 60)
* --sort-weight-patterns set block address sorting weight: SetProduct.
(line 81)
* --stdio_sync control forced output to disk files: SetProduct. * --stdio_sync control forced output to disk files: SetProduct.
(line 25) (line 25)
* --xattr Recording of xattr: SetExtras. (line 77) * --xattr Recording of xattr: SetExtras. (line 77)
@ -1791,7 +1821,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -D allow deep directory hierachies: SetExtras. (line 31) * -D allow deep directory hierachies: SetExtras. (line 31)
* -d omit trailing dot in ISO file names: SetCompl. (line 56) * -d omit trailing dot in ISO file names: SetCompl. (line 56)
* -dev set path for loading existing ISO image: Loading. (line 25) * -dev set path for loading existing ISO image: Loading. (line 25)
* -dir-mode permissions for all directories: SetProduct. (line 60) * -dir-mode permissions for all directories: SetProduct. (line 85)
* -disable-deep-relocation allow deep directory hierachies: SetExtras. * -disable-deep-relocation allow deep directory hierachies: SetExtras.
(line 44) (line 44)
* -disallow_dir_id_ext enforce ISO level 1 directory names: SetCompl. * -disallow_dir_id_ext enforce ISO level 1 directory names: SetCompl.
@ -1809,7 +1839,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -exclude-list exclude disk files from inserting: SetInsert. * -exclude-list exclude disk files from inserting: SetInsert.
(line 51) (line 51)
* -f follow symbolic links on disk: SetInsert. (line 24) * -f follow symbolic links on disk: SetInsert. (line 24)
* -file-mode permissions for all data files: SetProduct. (line 66) * -file-mode permissions for all data files: SetProduct. (line 91)
* -follow-links follow symbolic links on disk: SetInsert. (line 28) * -follow-links follow symbolic links on disk: SetInsert. (line 28)
* -full-iso9660-filenames allow 31 characters in ISO file names: SetCompl. * -full-iso9660-filenames allow 31 characters in ISO file names: SetCompl.
(line 66) (line 66)
@ -1873,7 +1903,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 178) * -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 178)
* -N omit version number in ISO file names: SetCompl. (line 73) * -N omit version number in ISO file names: SetCompl. (line 73)
* -no-emul-boot El Torito boot image emulation: Bootable. (line 72) * -no-emul-boot El Torito boot image emulation: Bootable. (line 72)
* -no-pad do not add zeros to ISO tree: SetProduct. (line 76) * -no-pad do not add zeros to ISO tree: SetProduct. (line 101)
* -o set output file address: SetProduct. (line 8) * -o set output file address: SetProduct. (line 8)
* -old-exclude exclude disk files from inserting: SetInsert. * -old-exclude exclude disk files from inserting: SetInsert.
(line 48) (line 48)
@ -1887,7 +1917,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 21) (line 21)
* -p set Preparer Id: ImageId. (line 54) * -p set Preparer Id: ImageId. (line 54)
* -P set Publisher Id: ImageId. (line 30) * -P set Publisher Id: ImageId. (line 30)
* -pad add 300 KiB of zeros to ISO tree: SetProduct. (line 69) * -pad add 300 KiB of zeros to ISO tree: SetProduct. (line 94)
* -partition_cyl_align Image size alignment: SystemArea. (line 116) * -partition_cyl_align Image size alignment: SystemArea. (line 116)
* -partition_hd_cyl MBR heads per cylinder: SystemArea. (line 99) * -partition_hd_cyl MBR heads per cylinder: SystemArea. (line 99)
* -partition_offset Make mountable by partition 1: SystemArea. * -partition_offset Make mountable by partition 1: SystemArea.
@ -1945,7 +1975,12 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Application Id, set, -A, -appid: ImageId. (line 38) * Application Id, set, -A, -appid: ImageId. (line 38)
* Backup, enable fidelity, --for_backup: SetExtras. (line 67) * Backup, enable fidelity, --for_backup: SetExtras. (line 67)
* Biblio File, set path, -biblio: ImageId. (line 72) * Biblio File, set path, -biblio: ImageId. (line 72)
* Block address, set sort weight, --sort-weight: SetProduct. (line 49) * Block address, set sorting weight, --sort-weight: SetProduct.
(line 49)
* Block address, set sorting weight, --sort-weight-list: SetProduct.
(line 60)
* Block address, set sorting weight, --sort-weight-patterns: SetProduct.
(line 81)
* Bootability, boot catalog hidden, --boot-catalog-hide: Bootable. * Bootability, boot catalog hidden, --boot-catalog-hide: Bootable.
(line 114) (line 114)
* Bootability, boot catalog name, -c, -eltorito-catalog: Bootable. * Bootability, boot catalog name, -c, -eltorito-catalog: Bootable.
@ -2087,15 +2122,15 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 87) (line 87)
* Options, list, -help: Miscellaneous. (line 23) * Options, list, -help: Miscellaneous. (line 23)
* Output file, set address, -o, -output: SetProduct. (line 8) * Output file, set address, -o, -output: SetProduct. (line 8)
* Padding, 300 KiB, -pad: SetProduct. (line 69) * Padding, 300 KiB, -pad: SetProduct. (line 94)
* Padding, disable, --old-empty: SetProduct. (line 81) * Padding, disable, --old-empty: SetProduct. (line 106)
* Padding, disable, -no-pad: SetProduct. (line 76) * Padding, disable, -no-pad: SetProduct. (line 101)
* pathspec, _definition: Insert. (line 12) * pathspec, _definition: Insert. (line 12)
* pathspec, enable target=source, -graft-points: SetInsert. (line 31) * pathspec, enable target=source, -graft-points: SetInsert. (line 31)
* pathspec, read list of, --quoted_path_list: SetInsert. (line 13) * pathspec, read list of, --quoted_path_list: SetInsert. (line 13)
* pathspec, read list of, -path-list: SetInsert. (line 8) * pathspec, read list of, -path-list: SetInsert. (line 8)
* Permissions, for all data files, -file-mode: SetProduct. (line 66) * Permissions, for all data files, -file-mode: SetProduct. (line 91)
* Permissions, for all directories, -dir-mode: SetProduct. (line 60) * Permissions, for all directories, -dir-mode: SetProduct. (line 85)
* Preparer Id, set, -p: ImageId. (line 54) * Preparer Id, set, -p: ImageId. (line 54)
* Problems, reporting: Bugreport. (line 6) * Problems, reporting: Bugreport. (line 6)
* Program version, report, -version: Miscellaneous. (line 42) * Program version, report, -version: Miscellaneous. (line 42)
@ -2135,28 +2170,28 @@ Node: Options6709
Node: Loading7436 Node: Loading7436
Node: SetInsert9732 Node: SetInsert9732
Node: SetProduct14148 Node: SetProduct14148
Node: SetCompl17855 Node: SetCompl19092
Node: SetExtras20451 Node: SetExtras21688
Node: SetHide28860 Node: SetHide30097
Node: ImageId30168 Node: ImageId31405
Node: Bootable33673 Node: Bootable34910
Node: SystemArea38667 Node: SystemArea39904
Node: Charset48964 Node: Charset50201
Node: Jigdo49990 Node: Jigdo51227
Node: Miscellaneous54257 Node: Miscellaneous55494
Node: Examples55813 Node: Examples57050
Node: ExSimple56299 Node: ExSimple57536
Node: ExGraft56778 Node: ExGraft58015
Node: ExMkisofs58025 Node: ExMkisofs59262
Node: ExGrowisofs59278 Node: ExGrowisofs60515
Node: ExIncBackup60450 Node: ExIncBackup61687
Node: ExIncBckAcc63558 Node: ExIncBckAcc64795
Node: ExBootable65234 Node: ExBootable66471
Node: Files67326 Node: Files68563
Node: Seealso68400 Node: Seealso69637
Node: Bugreport69056 Node: Bugreport70293
Node: Legal69637 Node: Legal70874
Node: CommandIdx70532 Node: CommandIdx71769
Node: ConceptIdx84598 Node: ConceptIdx86187
 
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 XORRISOFS 1 "Version 1.3.1, May 17, 2013" @c man .TH XORRISOFS 1 "Version 1.3.1, May 27, 2013"
@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:
@ -545,8 +545,8 @@ files.
This is the default. This is the default.
@c man .TP @c man .TP
@item @minus{}@minus{}sort-weight weight_number iso_rr_path @item @minus{}@minus{}sort-weight weight_number iso_rr_path
@kindex @minus{}@minus{}sort-weight set output file address @kindex @minus{}@minus{}sort-weight set block address sorting weight
@cindex Block address, set sort weight, @minus{}@minus{}sort-weight @cindex Block address, set sorting weight, @minus{}@minus{}sort-weight
Attribute a LBA weight number to regular files. If iso_rr_path leads Attribute a LBA weight number to regular files. If iso_rr_path leads
to a directory then all regular files underneath will get the weight_number. to a directory then all regular files underneath will get the weight_number.
@* @*
@ -557,6 +557,39 @@ Currently the El Torito boot catalog has a hardcoded weight of 1 billion.
Normally it should occupy the block with the lowest possible address. Normally it should occupy the block with the lowest possible address.
Data files get added or loaded with initial weight 0. Data files get added or loaded with initial weight 0.
@c man .TP @c man .TP
@item @minus{}@minus{}sort-weight-list disk_path
@kindex @minus{}@minus{}sort-weight-list set block address sorting weight
@cindex Block address, set sorting weight, @minus{}@minus{}sort-weight-list
Read pairs of weight number and iso_rr_path from a file of the
local filesystem. Apply each pair like with @minus{}@minus{}sort-weight.
@*
Only the last @minus{}@minus{}sort-weight-list or
@minus{}@minus{}sort-weight-patterns of a xorrisofs run gets into effect.
@*
The weight number is read from the start of the line.
The iso_rr_path part of an input line begins immediately after the first blank
or tab character of the line.
@*
Notes for the case that this feature is used within a sequence of generic
xorriso commands (not an issue with a pure mkisofs emulation run):
@*
The addressed files must already be in the ISO image model when you execute
@*
-as mkisofs @minus{}@minus{}sort-weight-list disk_path @minus{}@minus{}
@*
Several such commands may be used to apply more than one weight file.
@*
Data files which are loaded by -indev or -dev get a weight between 1 and
2 exp 28 = 268,435,456, depending on their block address. This shall keep
them roughly in the same order if the write method of modifying is applied.
@c man .TP
@item @minus{}@minus{}sort-weight-patterns disk_path
@kindex @minus{}@minus{}sort-weight-patterns set block address sorting weight
@cindex Block address, set sorting weight, @minus{}@minus{}sort-weight-patterns
Like @minus{}@minus{}sort-weight-list , but expanding the iso_rr_paths as
shell parser patterns and applying @minus{}@minus{}sort-weight to each
matching file.
@c man .TP
@item -dir-mode mode @item -dir-mode mode
@kindex -dir-mode permissions for all directories @kindex -dir-mode permissions for all directories
@cindex Permissions, for all directories, -dir-mode @cindex Permissions, for all directories, -dir-mode