From owner-freebsd-ports@FreeBSD.ORG Tue Apr 22 09:21:32 2014 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7B109C25; Tue, 22 Apr 2014 09:21:32 +0000 (UTC) Received: from mx.critical.ch (mx.critical.ch [IPv6:2001:1620:f05::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1B6A91ABB; Tue, 22 Apr 2014 09:21:31 +0000 (UTC) Received: from wiggles.critical.ch (snow.ethz.ch [129.132.80.16]) (authenticated bits=0) by mx.critical.ch (8.14.7/8.14.7/critical-1.0) with ESMTP id s3M9LRHi046025; Tue, 22 Apr 2014 11:21:27 +0200 (CEST) (envelope-from ehaupt@FreeBSD.org) Date: Tue, 22 Apr 2014 11:21:27 +0200 From: Emanuel Haupt To: Konstantin Belousov 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> X-Mailer: Sylpheed 3.4.1 (GTK+ 2.24.22; amd64-portbld-freebsd9.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: ports@freebsd.org, freebsd-amd64@freebsd.org, John Baldwin X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Apr 2014 09:21:32 -0000 Konstantin Belousov 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 > > >>> To: John Allman > > >>> 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/ 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