Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Apr 2014 19:06:35 +0200
From:      Wolfgang Jenkner <wjenkner@inode.at>
To:        Emanuel Haupt <ehaupt@critical.ch>
Cc:        olli hauer <ohauer@gmx.de>, svn-ports-all@FreeBSD.org, ports-committers@freebsd.org, Emanuel Haupt <ehaupt@FreeBSD.org>, Adam Weinberger <adamw@adamw.org>
Subject:   Re: svn commit: r351864 - head/shells/bash
Message-ID:  <85ha5kgdu8.fsf@iznogoud.viz>
References:  <5356B13D.3010600@gmx.de> <3C27DBBC-628F-48F7-9EC4-82C7BA559D85@adamw.org> <20140423102806.daa72bd1fec855d882d47163@critical.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 23 2014, Emanuel Haupt wrote:

> "Adam Weinberger" <adamw@adamw.org> wrote:
>> Also I'm confused by the statement "bash requires fdescfs(5) mounted
>> on /dev/fd", as it runs just fine without it. Perhaps it should be
>> changed to:
>> 	bash will support a '/dev/fd/N' syntax if fdescfs(5) is
>> mounted on /dev/fd
>
> Adam, this seems more accurate. Please feel free to commit.

This is not quite true either, but kib@ perfectly explained the awkward
situation in

http://permalink.gmane.org/gmane.os.freebsd.devel.amd64/15636

Also (if you look at what started the thread) the main problem is not
the /dev/fd/* syntax per se, but the process substitution feature, as
mat@ already observed.

So I'd suggest something like

You should mount fdescfs(5) on /dev/fd if you are installing
a precompiled package from an official pkg repository or, more
generally, if bash was compiled with fdescfs(5) being mounted.

The reason is that bash implements process substitution by means of the
file-descriptor file system if that was mounted at build time.

For details, please see `Process Substitution' in the bash(1) manual.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?85ha5kgdu8.fsf>