Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Apr 2014 11:21:27 +0200
From:      Emanuel Haupt <ehaupt@FreeBSD.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        ports@freebsd.org, freebsd-amd64@freebsd.org, John Baldwin <jhb@freebsd.org>
Subject:   Re: bash usage of fdescfs [was: Re: amd64/188699: Dev tree]
Message-ID:  <20140422112127.318314b4185012c91815f852@FreeBSD.org>
In-Reply-To: <20140421220718.GU4016@kib.kiev.ua>
References:  <201404171850.s3HIo1am064874@freefall.freebsd.org> <201404211431.12922.jhb@freebsd.org> <20140421195133.GO4016@kib.kiev.ua> <5355933B.4030804@FreeBSD.org> <20140421220718.GU4016@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
Konstantin Belousov <kostikbel@gmail.com> wrote:
> On Mon, Apr 21, 2014 at 11:52:59PM +0200, Emanuel Haupt wrote:
> > On 21/04/14 21:51, Konstantin Belousov wrote:
> > > On Mon, Apr 21, 2014 at 02:31:12PM -0400, John Baldwin wrote:
> > >> On Thursday, April 17, 2014 2:50:01 pm Konstantin Belousov wrote:
> > >>> The following reply was made to PR amd64/188699; it has been
> > >>> noted by GNATS.
> > >>>
> > >>> From: Konstantin Belousov <kostikbel@gmail.com>
> > >>> To: John Allman <freebsd@hugme.org>
> > >>> Cc: freebsd-gnats-submit@FreeBSD.org
> > >>> Subject: Re: amd64/188699: Dev tree
> > >>> Date: Thu, 17 Apr 2014 21:44:52 +0300
> > >>>
> > >>>   On Wed, Apr 16, 2014 at 05:32:45PM +0000, John Allman wrote:
> > >>>   > This is how to reproduce it:
> > >>>   >
> > >>>   > Fresh install of 10 on AMD 64
> > >>>   > install bash `pkg install bash`
> > >>>   > Switch to bash `bash`
> > >>>   > push a here document into a loop: `while true ; do echo;
> > >>>   > done< <(echo "123")` receive an error: "-su: /dev/fd/62: No
> > >>>   > such file or directory"
> > >>>   >
> > >>>   > I'm sorry I haven't been able to research this any further.
> > >>>   > I found how while working on some important matters. As I
> > >>>   > mentioned the above works fine in all
> > >> previous versions of FreeBSD up until 10.
> > >>>   > >How-To-Repeat:
> > >>>   > Fresh install
> > >>>   > pkg install bash
> > >>>   > bash
> > >>>   > while true; do echo foo done< <(echo "123")
> > >>>   >
> > >>>   > -su: /dev/fd/62: No such file or directory
> > >>>
> > >>>   So do you have fdescfs mounted on /dev/fd on the machine
> > >>> where the test fails ?  It works for me on head, and if
> > >>> unmounted, I get the same failure message as yours.  I very
> > >>> much doubt that it has anything to do with a system version.
> > >>
> > >> Question I have is why is bash deciding to use /dev/fd/<n> and
> > >> require fdescfs?  On older releases bash uses named pipes for
> > >> this instead.
> > >
> > > The aclocal.m4 contains the test which verifies the presence and
> > > usability of /dev/fd/n for n>=3 on the _build_ host.  The result
> > > of the test is used on the installation host afterward.
> > >
> > > Such kinds of bugs are endemic in our ports, but apparently
> > > upstreams are guilty too.
> > 
> > Is there anything I can do to patch the bash port? I am more than
> > happy to implement a fix and contact upstream about the problem.
> 
> Ideally, upstream should test the presence of fdescfs mount at
> runtime, instead of the compile time.  They already have unused
> have_devfd variable.
> 
> The port could add the pkg installation message which would mention
> the need of the mount, like it is done by openjdk ports currently.

I've just updated the port with such a message.

Emanuel




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