* `mount` command and POSIX Utility Syntax Guidelines
@ 2012-10-09 23:28 Timothy Madden
2012-10-10 8:36 ` Karel Zak
0 siblings, 1 reply; 3+ messages in thread
From: Timothy Madden @ 2012-10-09 23:28 UTC (permalink / raw)
To: util-linux
Hello,
I have the little annoying problem that I can not mount a DAV folder
with the davfs2 filesystem, because I usually keep POSIXLY_CORRECT
environment variable set. The var allows me to keep an "aliases" file
(similar to ~/.basrc) and change it when needed if I put the file name
in the ENV variable.
The problem is with the invocation of the mount helper command. `mount`
will compose a command line like this:
/sbin/mount.davfs \
https://storage-file-eu.gmx.com/ \
./gmx-file-storage \
-o rw,nosuid,nodev,noauto,user,_netdev,exec
where the option arguments ("-o rw,...") follow the operands (device,
mount point) on the command line.
However GNU getopts() (from glibc) follows POSIX Utility Syntax
Guidelines in this case and expects the option arguments before the
operands.
Subsequently the mount command returns and error when mounting my DAV
folders. I am currently using a wrapper executable around mount.davfs
that changes the order of arguments on the command line to make it work.
I hope mount command composes such a command line for historical reasons
and that there are no hidden problems with the order of the options on
the command line for mount helpers.
Is it please possible for mount command to be updated to change the
order of arguments on the command line, so that it follows the POSIX
guidelines ? At least when POSIXLY_CORRECT is set in the environment ?
I have "mount from util-linux 2.21.2 (with libblkid support)" on
Slackware 13.37 32-bit updated with Slackware-current packages. Also
happens on up-to-date CentOS 6.3 64-bit with updates from centosplus
repository, that is "mount from util-linux-ng 2.17.2 (with libblkid and
selinux support)".
See also the mount.davfs issue report at
http://savannah.nongnu.org/support/?108145
or the issue reported on Slackware list at:
http://comments.gmane.org/gmane.linux.slackware/4084
Thank you,
Timothy Madden
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: `mount` command and POSIX Utility Syntax Guidelines
2012-10-09 23:28 `mount` command and POSIX Utility Syntax Guidelines Timothy Madden
@ 2012-10-10 8:36 ` Karel Zak
2012-10-10 16:09 ` Timothy Madden
0 siblings, 1 reply; 3+ messages in thread
From: Karel Zak @ 2012-10-10 8:36 UTC (permalink / raw)
To: Timothy Madden; +Cc: util-linux
On Wed, Oct 10, 2012 at 02:28:06AM +0300, Timothy Madden wrote:
> I have the little annoying problem that I can not mount a DAV folder with
> the davfs2 filesystem, because I usually keep POSIXLY_CORRECT environment
> variable set. The var allows me to keep an "aliases" file (similar to
> ~/.basrc) and change it when needed if I put the file name in the ENV
> variable.
Well, from my point of view is it mistake that getopt() supports
something like $POSIXLY_CORRECT. It's application, not library, who
has to control input/command line parsing.
The shared libraries should be sensitive only to environment
variables which control library private stuff or things which are
really transparent to applications (LANG=...).
> Is it please possible for mount command to be updated to change the order of
> arguments on the command line, so that it follows the POSIX guidelines?
The mount helpers command line is out documented API. I don't see a
way how to change it without break the compatibility between mount(8)
and mount.<type> helpers.
> At least when POSIXLY_CORRECT is set in the environment ?
Don't assume that everyone uses getopt() from glibc. You can
use "if (strcmp(argv[], ...))" to parse command line arguments.
I think it would be better to remove POSIXLY_CORRECT from
mount.<type> environment in mount(8) before we execute the helper.
Karel
--
Karel Zak <kzak@redhat.com>
http://karelzak.blogspot.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: `mount` command and POSIX Utility Syntax Guidelines
2012-10-10 8:36 ` Karel Zak
@ 2012-10-10 16:09 ` Timothy Madden
0 siblings, 0 replies; 3+ messages in thread
From: Timothy Madden @ 2012-10-10 16:09 UTC (permalink / raw)
To: util-linux
On 10/10/2012 11:36 AM, Karel Zak wrote:
> On Wed, Oct 10, 2012 at 02:28:06AM +0300, Timothy Madden wrote:
>> I have the little annoying problem that I can not mount a DAV folder with
>> the davfs2 filesystem, because I usually keep POSIXLY_CORRECT environment
>> variable set. The var allows me to keep an "aliases" file (similar to
>> ~/.basrc) and change it when needed if I put the file name in the ENV
>> variable.
>
> Well, from my point of view is it mistake that getopt() supports
> something like $POSIXLY_CORRECT. It's application, not library, who
> has to control input/command line parsing.
[...]
>> Is it please possible for mount command to be updated to change the order of
>> arguments on the command line, so that it follows the POSIX guidelines?
>
> The mount helpers command line is out documented API. I don't see a
> way how to change it without break the compatibility between mount(8)
> and mount.<type> helpers.
>
>> At least when POSIXLY_CORRECT is set in the environment ?
>
> Don't assume that everyone uses getopt() from glibc. You can
> use "if (strcmp(argv[], ...))" to parse command line arguments.
>
> I think it would be better to remove POSIXLY_CORRECT from
> mount.<type> environment in mount(8) before we execute the helper.
Maybe the mount helpers should follow POSIX guidelines, too.
Of the helpers that I have installed on my two systems (Slackware and
CentOS), namely cifs, davfs, nfs/nfs4, ntfs/ntfs-3g/lowntfs-3g, it is
only nfs that does indeed complain about syntax if I try to pass the
options first and the operands next on the command line. Both my systems
have "mount.nfs (linux nfs-utils 1.2.3)".
Maybe they can change the expected order for command line arguments (in
the linux nfs-utils project), together with changes in mount, or before
changes in mount (to be safe).
If anyone knows other mount helpers I should check for command line
syntax, please jump in and add to the list.
Even without using GNU getopts(), I believe POSIX guidelines should
still be taken into account, no matter how the command line is parsed or
what library (or application) is used.
About removing POSIXLY_CORRECT before the mount helper is invoked, I
would not easily take that path. I believe POSIXLY_CORRECT is a /user/
setting, with specific side-effects, and a such system command should
not implicitly change it, without prior consent from the user. That is,
the user might wonder why his mount helper, that he is working so hard
on, does not receive the environment the user prepared for it and expects.
Thank you,
Timothy Madden
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-10-10 16:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-09 23:28 `mount` command and POSIX Utility Syntax Guidelines Timothy Madden
2012-10-10 8:36 ` Karel Zak
2012-10-10 16:09 ` Timothy Madden
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.