bug#62385: POSIX behavior of readlink, realpath

"Dmitry V. Levin" <[email protected]>
Newsgroups gmane.comp.gnu.core-utils.bugs
Message-ID <[email protected]>
Hi,

On Sat, Aug 02, 2025 at 09:33:15PM -0700, Collin Funk wrote:
> Hi Eric,
> 
> You said:
> 
> > Among other things, I can see the following changes that coreutils
> > will need to make to become compliant, or else we need to push back on
> > the POSIX folks if we have strong reasons to complain that their
> > specification will break things:
> >
> > POSIX wants 'readlink non-symlink' to output a diagnostic; that is, it
> > looks like POSIX wants us to behave like '-v' is enabled by default
> > (our current behavior of -q by default will be non-compliant).
> 
> I have attached a patch that I think is correct for readlink.
> 
> It is a bit more complex than just behaving the same as 'readlink -v'
> previously would. This is because the behavior of non-POSIX
> options. Here are some commands:
> 
>     $ touch file
>     $ ln -s symlink file
>     
>     # Example 1
>     $ readlink -v file
>     readlink: file: Invalid argument
> 
>     # Example 2
>     $ readlink -v -f file 
>     /home/collin/file
> 
> If 'readlink -v' where 'POSIXLY_CORRECT=1 readlink' then example 1 would
> conform. I think that example 2 would violate POSIX.

Given that -f is not in POSIX, I don't see why the example 2 would violate
it.

> So, when POSIXLY_CORRECT is enabled we can call 'readlink', check for
> errors, and then canonicalize if it is successful.

I'd argue that such a change of readlink -e/-f/-m behaviour makes little
sense as it defeats the purpose of these options.


-- 
ldv
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.