Subject: Re: net/tnftpd fails to build on Linux
To: None <pkgsrc-users@netbsd.org, lukem@netbsd.org>
From: Louis Guillaume <lguillaume@berklee.edu>
List: pkgsrc-users
Date: 09/21/2006 21:54:27
Joerg Sonnenberger wrote:
> On Mon, Sep 18, 2006 at 02:04:06PM -0400, Louis Guillaume wrote:
>> yacc  ftpcmd.y
>> gcc -I. -I./.. -I. -I..  -I./../libnetbsd -DHAVE_TNFTPD_H=1 -O2
>> -D_DEFAULT_CONFDIR=\"/etc\"  -c -o ftpcmd.o y.tab.c
>> ftpcmd.y: In function `yyparse':
>> ftpcmd.y:300: error: `epsvall' undeclared (first use in this function)
>> ftpcmd.y:300: error: (Each undeclared identifier is reported only once
>> ftpcmd.y:300: error: for each function it appears in.)
>> ftpcmd.y:544: error: `sitetab' undeclared (first use in this function)
>> ftpcmd.y: At top level:
>> ftpcmd.y:1303: warning: static declaration of 'check_write' follows
>> non-static declaration
>> ftpcmd.y:423: warning: previous implicit declaration of 'check_write'
>> was here
>> ftpcmd.y:1304: error: conflicting types for 'help'
>> ftpcmd.y:544: error: previous implicit declaration of 'help' was here
>> ftpcmd.y:1305: error: conflicting types for 'port_check'
>> ftpcmd.y:258: error: previous implicit declaration of 'port_check' was here
>> *** Error code 1
> 
> Thanks, as you have confirmed this is a difference between BSD yacc and
> GNU bison, which seem to order the blocks differently and therefore see
> the declaration e.g. of epsvall too late.
> 
> I've CCed Luke, who's the author and should be able to easily fix it.
> 
> Joerg


I noticed that if I installed devel/byacc first, the commented out the
USE_TOOLS+= yacc then it works.

I tried to say...

.if ${OPSYS} == "Linux"
USE_TOOLS+=	byacc
.else
USE_TOOLS+=	yacc
.endif

... but somehow that doesn't cause byacc to be depended in.

So I'm not sure how to patch the package itself.

Anyway I've got the package built for now...

Louis