Anticipating NetBSD mount option -s
This commit is contained in:
parent
8016bce6ae
commit
a601358c1c
@ -1823,6 +1823,7 @@ int Xorriso_afile_fopen(struct XorrisO *xorriso,
|
||||
@param flag bit0= make absolute command paths with known systems
|
||||
bit1= do not allow prefixes with cmd
|
||||
bit2= interpret unprefixed cmd as shell:
|
||||
bit3= do not care for device filetype
|
||||
*/
|
||||
int Xorriso_make_mount_cmd(struct XorrisO *xorriso, char *cmd,
|
||||
int lba, int track, int session, char *volid,
|
||||
@ -1831,18 +1832,21 @@ int Xorriso_make_mount_cmd(struct XorrisO *xorriso, char *cmd,
|
||||
int ret, reg_file= 0, is_safe= 0, sys_code= 0;
|
||||
char *form= NULL, session_text[12], track_text[12], lba_text[12];
|
||||
char *vars[5][2], *sfe= NULL, *volid_sfe= NULL, *cpt, *sysname;
|
||||
char *cooked_dev= NULL, *eff_dev;
|
||||
struct stat stbuf;
|
||||
|
||||
Xorriso_alloc_meM(form, char, 6 * SfileadrL);
|
||||
Xorriso_alloc_meM(sfe, char, 5 * SfileadrL);
|
||||
Xorriso_alloc_meM(volid_sfe, char, 5 * 80 + 1);
|
||||
Xorriso_alloc_meM(cooked_dev, char, SfileadrL);
|
||||
|
||||
if(strlen(cmd) > SfileadrL) {
|
||||
Xorriso_msgs_submit(xorriso, 0, "Argument much too long", 0, "FAILURE", 0);
|
||||
{ret= 0; goto ex;}
|
||||
}
|
||||
eff_dev= devadr;
|
||||
ret= stat(devadr, &stbuf);
|
||||
if(ret != -1)
|
||||
if(ret != -1 && !(flag & 8))
|
||||
if(S_ISREG(stbuf.st_mode))
|
||||
reg_file= 1;
|
||||
if(strncmp(cmd, "linux:", 6) == 0 && !(flag & 2)) {
|
||||
@ -1851,6 +1855,9 @@ int Xorriso_make_mount_cmd(struct XorrisO *xorriso, char *cmd,
|
||||
} else if(strncmp(cmd, "freebsd:", 8) == 0 && !(flag & 2)) {
|
||||
cpt= cmd + 8;
|
||||
sys_code= 2;
|
||||
} else if(strncmp(cmd, "netbsd:", 7) == 0 && !(flag & 2)) {
|
||||
cpt= cmd + 7;
|
||||
sys_code= 3;
|
||||
} else if(strncmp(cmd, "string:", 7) == 0 && !(flag & 2)) {
|
||||
cpt= cmd + 7;
|
||||
strcpy(form, cpt);
|
||||
@ -1869,6 +1876,8 @@ int Xorriso_make_mount_cmd(struct XorrisO *xorriso, char *cmd,
|
||||
strcmp(sysname, "GNU/kFreeBSD") == 0) {
|
||||
/* "GNU/kFreeBSD" = Debian kfreebsd */
|
||||
sys_code= 2;
|
||||
} else if(strcmp(sysname, "NetBSD") == 0) {
|
||||
sys_code= 3;
|
||||
} else if(strcmp(sysname, "Linux") == 0) {
|
||||
sys_code= 1;
|
||||
} else {
|
||||
@ -1886,7 +1895,7 @@ int Xorriso_make_mount_cmd(struct XorrisO *xorriso, char *cmd,
|
||||
(reg_file || (xorriso->mount_opts_flag & 1) ? "loop," : ""),
|
||||
Text_shellsafe(cpt, sfe, 0));
|
||||
is_safe= 1;
|
||||
} else if(sys_code == 2) { /* FreeBSD */
|
||||
} else if(sys_code == 2 || sys_code == 3) { /* FreeBSD , NetBSD */
|
||||
if(reg_file) {
|
||||
|
||||
/* <<< Considered to create vnode as of
|
||||
@ -1900,20 +1909,26 @@ int Xorriso_make_mount_cmd(struct XorrisO *xorriso, char *cmd,
|
||||
*/
|
||||
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"Detected regular file as mount device with FreeBSD style command.",
|
||||
"Detected regular file as mount device with BSD style command.",
|
||||
0, "FAILURE", 0);
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
if(sys_code == 2) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"Command mdconfig -a -t vnode -f can create a device node which uses the file",
|
||||
0, "HINT", 0);
|
||||
} else {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"Command vnconfig -c vndX can create a device node which uses the file",
|
||||
0, "HINT", 0);
|
||||
}
|
||||
{ret= 0; goto ex;}
|
||||
} else {
|
||||
if(sys_code == 3 && strncmp(devadr, "/dev/rcd", 8) == 0) {
|
||||
sprintf(cooked_dev, "/dev/cd%s", devadr + 8);
|
||||
eff_dev= cooked_dev;
|
||||
}
|
||||
sprintf(form,
|
||||
"%smount_cd9660 -o noexec,nosuid -s %%sbsector%% %%device%% %s",
|
||||
(flag & 1 ? "/sbin/" : ""), Text_shellsafe(cmd+8, sfe, 0));
|
||||
/*
|
||||
Not working on FreeBSD 7.2 according to Zsolt Kuti, 11 Oct 2009:
|
||||
"%smount -t cd9660 -o noexec,nosuid -o -s %%sbsector%% %%device%% %s",
|
||||
*/
|
||||
(flag & 1 ? "/sbin/" : ""), Text_shellsafe(cpt, sfe, 0));
|
||||
}
|
||||
is_safe= 1;
|
||||
}
|
||||
@ -1929,15 +1944,16 @@ int Xorriso_make_mount_cmd(struct XorrisO *xorriso, char *cmd,
|
||||
vars[3][0]= "volid";
|
||||
vars[3][1]= Text_shellsafe(volid, volid_sfe, 0);
|
||||
vars[4][0]= "device";
|
||||
vars[4][1]= Text_shellsafe(devadr, sfe, 0);
|
||||
vars[4][1]= Text_shellsafe(eff_dev, sfe, 0);
|
||||
ret= Sregex_resolve_var(form, vars, 5, "%", "%", "%", result, SfileadrL, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
ret= 1 + is_safe;
|
||||
ex:;
|
||||
Xorriso_free_meM(form);
|
||||
Xorriso_free_meM(sfe);
|
||||
Xorriso_free_meM(cooked_dev);
|
||||
Xorriso_free_meM(volid_sfe);
|
||||
Xorriso_free_meM(sfe);
|
||||
Xorriso_free_meM(form);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
@ -1092,7 +1092,7 @@ int Xorriso_mount(struct XorrisO *xorriso, char *dev, int adr_mode,
|
||||
if(strstr(devadr, "mmc:") == devadr)
|
||||
devadr+= 4;
|
||||
ret= Xorriso_make_mount_cmd(xorriso, cmd, lba, track, session, volid, devadr,
|
||||
mount_command, flag & (2 | 4));
|
||||
mount_command, (flag & (2 | 4)) | ((flag & 4) << 1));
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
if(ret == 2)
|
||||
|
@ -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.3.7, Apr 29, 2014"
|
||||
.TH XORRISO 1 "Version 1.3.7, May 18, 2014"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -3685,7 +3685,7 @@ if the desired drive is not aquired.
|
||||
\fB\-mount_cmd\fR drive entity id path
|
||||
Emit an appropriate command line for mounting the ISO session
|
||||
indicated by drive, entity and id.
|
||||
The result will be different on GNU/Linux and on FreeBSD.
|
||||
The result will be different on GNU/Linux and on FreeBSD or NetBSD.
|
||||
.br
|
||||
drive can be "indev" or "outdev" to indicate already acquired drives,
|
||||
or it can be the path of a not yet acquired drive.
|
||||
@ -5465,7 +5465,7 @@ sums against the current file content on hard disk. This is usually much faster
|
||||
than the default which compares both contents directly.
|
||||
.br
|
||||
With \fBmount\fR option \fB\-o "sbsector="\fR on GNU/Linux
|
||||
resp. \fB\-s\fR on FreeBSD
|
||||
resp. \fB\-s\fR on FreeBSD or NetBSD
|
||||
it is possible to access the session trees which represent the older backup
|
||||
versions. With CD media, GNU/Linux mount accepts session numbers directly by
|
||||
its option "session=".
|
||||
|
@ -3213,7 +3213,7 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm
|
||||
-mount_cmd drive entity id path
|
||||
Emit an appropriate command line for mounting the ISO session
|
||||
indicated by drive, entity and id. The result will be different
|
||||
on GNU/Linux and on FreeBSD.
|
||||
on GNU/Linux and on FreeBSD or NetBSD.
|
||||
drive can be "indev" or "outdev" to indicate already acquired
|
||||
drives, or it can be the path of a not yet acquired drive. Prefix
|
||||
"stdio:" for non-MMC drives is not mandatory.
|
||||
@ -4779,9 +4779,9 @@ match recorded MD5 sums against the current file content on hard disk.
|
||||
This is usually much faster than the default which compares both
|
||||
contents directly.
|
||||
With *mount* option *-o "sbsector="* on GNU/Linux resp. *-s* on FreeBSD
|
||||
it is possible to access the session trees which represent the older
|
||||
backup versions. With CD media, GNU/Linux mount accepts session numbers
|
||||
directly by its option "session=".
|
||||
or NetBSD it is possible to access the session trees which represent
|
||||
the older backup versions. With CD media, GNU/Linux mount accepts
|
||||
session numbers directly by its option "session=".
|
||||
Multi-session media and most overwriteable media written by `xorriso'
|
||||
can tell the sbsectors of their sessions by `xorriso' command -toc.
|
||||
Used after -commit the following command prints the matching mount
|
||||
@ -5554,34 +5554,34 @@ Node: Charset151157
|
||||
Node: Exception154472
|
||||
Node: DialogCtl160592
|
||||
Node: Inquiry163190
|
||||
Node: Navigate170611
|
||||
Node: Verify178909
|
||||
Node: Restore188736
|
||||
Node: Emulation197340
|
||||
Node: Scripting207728
|
||||
Node: Frontend215499
|
||||
Node: Examples225106
|
||||
Node: ExDevices226284
|
||||
Node: ExCreate226950
|
||||
Node: ExDialog228235
|
||||
Node: ExGrowing229500
|
||||
Node: ExModifying230305
|
||||
Node: ExBootable230809
|
||||
Node: ExCharset231361
|
||||
Node: ExPseudo232253
|
||||
Node: ExCdrecord233151
|
||||
Node: ExMkisofs233468
|
||||
Node: ExGrowisofs234808
|
||||
Node: ExException235943
|
||||
Node: ExTime236397
|
||||
Node: ExIncBackup236856
|
||||
Node: ExRestore240836
|
||||
Node: ExRecovery241769
|
||||
Node: Files242339
|
||||
Node: Seealso243638
|
||||
Node: Bugreport244361
|
||||
Node: Legal244942
|
||||
Node: CommandIdx245953
|
||||
Node: ConceptIdx262834
|
||||
Node: Navigate170621
|
||||
Node: Verify178919
|
||||
Node: Restore188746
|
||||
Node: Emulation197350
|
||||
Node: Scripting207738
|
||||
Node: Frontend215509
|
||||
Node: Examples225116
|
||||
Node: ExDevices226294
|
||||
Node: ExCreate226960
|
||||
Node: ExDialog228245
|
||||
Node: ExGrowing229510
|
||||
Node: ExModifying230315
|
||||
Node: ExBootable230819
|
||||
Node: ExCharset231371
|
||||
Node: ExPseudo232263
|
||||
Node: ExCdrecord233161
|
||||
Node: ExMkisofs233478
|
||||
Node: ExGrowisofs234818
|
||||
Node: ExException235953
|
||||
Node: ExTime236407
|
||||
Node: ExIncBackup236866
|
||||
Node: ExRestore240856
|
||||
Node: ExRecovery241789
|
||||
Node: Files242359
|
||||
Node: Seealso243658
|
||||
Node: Bugreport244381
|
||||
Node: Legal244962
|
||||
Node: CommandIdx245973
|
||||
Node: ConceptIdx262854
|
||||
|
||||
End Tag Table
|
||||
|
@ -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.3.7, Apr 29, 2014"
|
||||
@c man .TH XORRISO 1 "Version 1.3.7, May 18, 2014"
|
||||
@c man .\" Please adjust this date whenever revising the manpage.
|
||||
@c man .\"
|
||||
@c man .\" Some roff macros, for reference:
|
||||
@ -4288,7 +4288,7 @@ if the desired drive is not aquired.
|
||||
@cindex Session, mount command line, -mount_cmd
|
||||
Emit an appropriate command line for mounting the ISO session
|
||||
indicated by drive, entity and id.
|
||||
The result will be different on GNU/Linux and on FreeBSD.
|
||||
The result will be different on GNU/Linux and on FreeBSD or NetBSD.
|
||||
@*
|
||||
drive can be "indev" or "outdev" to indicate already acquired drives,
|
||||
or it can be the path of a not yet acquired drive.
|
||||
@ -6419,7 +6419,7 @@ sums against the current file content on hard disk. This is usually much faster
|
||||
than the default which compares both contents directly.
|
||||
@*
|
||||
With @strong{mount} option @strong{-o "sbsector="} on GNU/Linux
|
||||
resp. @strong{-s} on FreeBSD
|
||||
resp. @strong{-s} on FreeBSD or NetBSD
|
||||
it is possible to access the session trees which represent the older backup
|
||||
versions. With CD media, GNU/Linux mount accepts session numbers directly by
|
||||
its option "session=".
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2014.05.18.144453"
|
||||
#define Xorriso_timestamP "2014.05.28.125704"
|
||||
|
@ -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 XORRISOFS 1 "Version 1.3.7, Apr 09, 2014"
|
||||
.TH XORRISOFS 1 "Version 1.3.7, May 18, 2014"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -1614,7 +1614,7 @@ sums against the current file content on hard disk.
|
||||
.br
|
||||
.sp 1
|
||||
With \fBmount\fR option \fB\-o "sbsector="\fR on GNU/Linux
|
||||
resp. \fB\-s\fR on FreeBSD
|
||||
resp. \fB\-s\fR on FreeBSD or NetBSD
|
||||
it is possible to access the session trees which represent the older backup
|
||||
versions. With CD media, GNU/Linux mount accepts session numbers directly by
|
||||
its option "session=".
|
||||
|
@ -998,8 +998,8 @@ Macs for booting and for mounting.
|
||||
MBR, GPT and APM are combinable. APM occupies the first 8 bytes of MBR
|
||||
boot code. All three do not hamper El Torito booting from CDROM.
|
||||
`xorrisofs' supports further boot facilities: MIPS Big Endian (SGI),
|
||||
MIPS Little Endian (DEC), SUN SPARC. Those are mutually not combinable
|
||||
and also not combinable with MBR, GPT, or APM.
|
||||
MIPS Little Endian (DEC), SUN SPARC, HP-PA. Those are mutually not
|
||||
combinable and also not combinable with MBR, GPT, or APM.
|
||||
|
||||
-G disk_path
|
||||
Copy at most 32768 bytes from the given disk file to the very
|
||||
@ -1185,6 +1185,29 @@ and also not combinable with MBR, GPT, or APM.
|
||||
number to byte 0x228. The size is written as 32 bit big-endian
|
||||
number to byte 0x230.
|
||||
|
||||
-hppa-cmdline text
|
||||
Set the PALO command line for HP-PA. Up to 1023 characters are
|
||||
permitted by default. With -hppa-hdrversion 4 the limit is 127.
|
||||
Note that the first five -hppa options are mandatory, if any of
|
||||
the -hppa options is given. Only option -hppa-hdrversion is
|
||||
allowed to be missing.
|
||||
|
||||
-hppa-bootloader iso_rr_path
|
||||
Designate the given path as HP-PA bootloader file.
|
||||
|
||||
-hppa-kernel-32 iso_rr_path
|
||||
Designate the given path as HP-PA 32 bit kernel file.
|
||||
|
||||
-hppa-kernel-64 iso_rr_path
|
||||
Designate the given path as HP-PA 64 bit kernel file.
|
||||
|
||||
-hppa-ramdisk iso_rr_path
|
||||
Designate the given path as HP-PA RAM disk file.
|
||||
|
||||
-hppa-hdrversion number
|
||||
Choose between PALO header version 5 (default) and version 4. For
|
||||
the appropriate value see in PALO source code: PALOHDRVERSION.
|
||||
|
||||
|
||||
File: xorrisofs.info, Node: Charset, Next: Jigdo, Prev: SystemArea, Up: Options
|
||||
|
||||
@ -1543,9 +1566,9 @@ If inode numbers on disk are not persistent, then use option
|
||||
MD5 sums against the current file content on hard disk.
|
||||
|
||||
With *mount* option *-o "sbsector="* on GNU/Linux resp. *-s* on FreeBSD
|
||||
it is possible to access the session trees which represent the older
|
||||
backup versions. With CD media, GNU/Linux mount accepts session numbers
|
||||
directly by its option "session=".
|
||||
or NetBSD it is possible to access the session trees which represent
|
||||
the older backup versions. With CD media, GNU/Linux mount accepts
|
||||
session numbers directly by its option "session=".
|
||||
Multi-session media and most overwriteable media written by xorriso can
|
||||
tell the sbsectors of their sessions by xorriso option -toc:
|
||||
|
||||
@ -1899,6 +1922,12 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
|
||||
(line 16)
|
||||
* -hide-rr-moved set deep directory relocation target: SetExtras.
|
||||
(line 64)
|
||||
* -hppa-bootloader HP-PA bootloader file: SystemArea. (line 216)
|
||||
* -hppa-cmdline HP-PA PALO command line: SystemArea. (line 209)
|
||||
* -hppa-hdrversion HP-PA PALO header version: SystemArea. (line 228)
|
||||
* -hppa-kernel_32 HP-PA kernel_32 file: SystemArea. (line 219)
|
||||
* -hppa-kernel_64 HP-PA kernel_64 file: SystemArea. (line 222)
|
||||
* -hppa-ramdisk HP-PA ramdisk file: SystemArea. (line 225)
|
||||
* -input-charset set character set of disk file names: Charset.
|
||||
(line 17)
|
||||
* -iso-level define ISO 9660 limitations: SetCompl. (line 7)
|
||||
@ -2028,6 +2057,12 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Bootability, control, -b, -eltorito-boot: Bootable. (line 32)
|
||||
* Bootability, control, -B, -sparc-boot: SystemArea. (line 184)
|
||||
* Bootability, control, -e: Bootable. (line 50)
|
||||
* Bootability, control, -hppa-bootloader: SystemArea. (line 216)
|
||||
* Bootability, control, -hppa-cmdline: SystemArea. (line 209)
|
||||
* Bootability, control, -hppa-hdrversion: SystemArea. (line 228)
|
||||
* Bootability, control, -hppa-kernel_32: SystemArea. (line 219)
|
||||
* Bootability, control, -hppa-kernel_64: SystemArea. (line 222)
|
||||
* Bootability, control, -hppa-ramdisk: SystemArea. (line 225)
|
||||
* Bootability, control, -mips-boot: SystemArea. (line 171)
|
||||
* Bootability, control, -mipsel-boot: SystemArea. (line 178)
|
||||
* Bootability, El Torito section id string, -eltorito-id: Bootable.
|
||||
@ -2210,22 +2245,22 @@ Node: SetHide30591
|
||||
Node: ImageId31899
|
||||
Node: Bootable36067
|
||||
Node: SystemArea41061
|
||||
Node: Charset51358
|
||||
Node: Jigdo52384
|
||||
Node: Miscellaneous56651
|
||||
Node: Examples58295
|
||||
Node: ExSimple58781
|
||||
Node: ExGraft59260
|
||||
Node: ExMkisofs60507
|
||||
Node: ExGrowisofs61760
|
||||
Node: ExIncBackup62932
|
||||
Node: ExIncBckAcc66040
|
||||
Node: ExBootable67716
|
||||
Node: Files69808
|
||||
Node: Seealso70882
|
||||
Node: Bugreport71538
|
||||
Node: Legal72119
|
||||
Node: CommandIdx73014
|
||||
Node: ConceptIdx87716
|
||||
Node: Charset52192
|
||||
Node: Jigdo53218
|
||||
Node: Miscellaneous57485
|
||||
Node: Examples59129
|
||||
Node: ExSimple59615
|
||||
Node: ExGraft60094
|
||||
Node: ExMkisofs61341
|
||||
Node: ExGrowisofs62594
|
||||
Node: ExIncBackup63766
|
||||
Node: ExIncBckAcc66884
|
||||
Node: ExBootable68560
|
||||
Node: Files70652
|
||||
Node: Seealso71726
|
||||
Node: Bugreport72382
|
||||
Node: Legal72963
|
||||
Node: CommandIdx73858
|
||||
Node: ConceptIdx88998
|
||||
|
||||
End Tag Table
|
||||
|
@ -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 XORRISOFS 1 "Version 1.3.7, Apr 09, 2014"
|
||||
@c man .TH XORRISOFS 1 "Version 1.3.7, May 18, 2014"
|
||||
@c man .\" Please adjust this date whenever revising the manpage.
|
||||
@c man .\"
|
||||
@c man .\" Some roff macros, for reference:
|
||||
@ -2159,7 +2159,7 @@ sums against the current file content on hard disk.
|
||||
@sp 1
|
||||
@c man .sp 1
|
||||
With @strong{mount} option @strong{-o "sbsector="} on GNU/Linux
|
||||
resp. @strong{-s} on FreeBSD
|
||||
resp. @strong{-s} on FreeBSD or NetBSD
|
||||
it is possible to access the session trees which represent the older backup
|
||||
versions. With CD media, GNU/Linux mount accepts session numbers directly by
|
||||
its option "session=".
|
||||
|
Loading…
Reference in New Issue
Block a user