ports/101230: bash parser not generated properly with system yacc

Eric Huss e-huss at netmeridian.com
Tue Aug 1 23:50:15 UTC 2006


>Number:         101230
>Category:       ports
>Synopsis:       bash parser not generated properly with system yacc
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 01 23:50:14 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Eric Huss
>Release:        6.1
>Organization:
IronPort Systems
>Environment:
FreeBSD 6.1-RELEASE
>Description:
When bash 3.1 is installed from ports, some of the patches cause a change to parse.y which cause the parser to get rebuilt with yacc.

If you install bash-completion-20060301 and source the completion file, filename completion with ~ causes bash to get into a bad state.

If you build bash 3.1 with bison2, the problem goes away.  Note that you cannot use bison 1.75 because of PR ports/94086.

>How-To-Repeat:
Install bash-3.1.
Install bash-completion-20060301
Run bash.
Source the completion file: . /usr/local/etc/bash_completion
Type cd ~/<TAB> pick a directory from the completion, and press RETURN.

Notice bash doesn't change directory and goes into a bad state.  Hitting CTRL-C once or twice should break out of it.  If you press UP to look at your history, you may notice the command in the history with a semicolon at the end as-if bash were expecting additional input from a multi-line statement.

>Fix:
Install bison2.
Build bash from ports with YACC environment variable set to bison2.

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list