fcgiwrap build failing, needs gm4 to build

I checked for updates with ports-mgmt/portmaster, and www/fcgiwrap had a new version. Upgrading via ports-mgmt/portmaster threw an error which I didn't record. I then decided to make deinstall clean and reinstall, which gave the same error minus the ports-mgmt/portmaster lingo:

Code:
server# make install clean
===>  License MIT accepted by the user
===>  Extracting for fcgiwrap-1.0.3_4
=> SHA256 Checksum OK for fcgiwrap-1.0.3.tar.gz.
===>  Patching for fcgiwrap-1.0.3_4
===>  Applying FreeBSD patches for fcgiwrap-1.0.3_4
===>   fcgiwrap-1.0.3_4 depends on file: /usr/local/bin/autoconf-2.68 - found
===>   fcgiwrap-1.0.3_4 depends on shared library: fcgi.0 - found
===>  Configuring for fcgiwrap-1.0.3_4
autom4te-2.68: need GNU m4 1.4 or later: /usr/local/bin/gm4
autoheader-2.68: '/usr/local/bin/autom4te-2.68' failed with exit status: 1
*** Error code 1

Stop in /usr/ports/www/fcgiwrap.

I couldn't find any mention of gm4 so am not sure what the problem is. It's as though it's depending on a port that doesn't exist?
 
Does this help?

Make sure your ports tree is uptodate
# portsnap fetch update

Update devel/m4
# cd /usr/ports/devel/m4
# make deinstall reinstall

Then try to upgrade fcgiwrap again.
 
jake said:
Does this help?

Make sure your ports tree is uptodate
# portsnap fetch update

Update devel/m4
# cd /usr/ports/devel/m4
# make deinstall reinstall

Then try to upgrade fcgiwrap again.

Thanks, this did the trick! I saw m4 in the ports tree but I didn't realize it was the GNU version ie gm4. Why is it named like this? It was confusing to run a whereis and find it in bin/, then install a 'port I already have' only to be told it's not installed and give me a binary with a different name. Is it just me or is this very backwards?

How come portmaster didn't automatically fix this dependency issue for me? Did it trip up in the same place I did?

PS. Just realized the port for m4 didn't show up in the whereis command I ran to find it. How come?
 
andyzammy said:
I saw m4 in the ports tree but I didn't realize it was the GNU version ie gm4. Why is it named like this?
To differentiate it from the BSD licensed m4(1) that's part of the base OS.
 
SirDice said:
To differentiate it from the BSD licensed m4(1) that's part of the base OS.

But that's my point, it didn't quite manage it. I assumed it was the BSD version, perhaps a more up to date version than what was in base. Of course I wondered why it wasn't packed into update system (maybe an experimental development version, who knows??) but I thought that was more likely than naming a GNU tool exactly the same as a BSD tool.

I wanted to check the port description at the time but couldn't find the command to display it.

I guess I made an incorrect assumption that with GNU tools there was a naming convention (devel/gmake), but it looks like not.

In any case, m4 looks like build dependency for fcgiwrap, but looking at the following..

Code:
%make build-depends-list
/usr/ports/devel/autoconf
/usr/ports/www/fcgi

.. does this suggest that the maintainer forgot to add this to the list? Would certainly explain why compiling fails. If so what's the conventional way to notify? An email?
 
andyzammy said:
But that's my point, it didn't quite manage it. I assumed it was the BSD version, perhaps a more up to date version than what was in base. Of course I wondered why it wasn't packed into update system (maybe an experimental development version, who knows??) but I thought that was more likely than naming a GNU tool exactly the same as a BSD tool.
The GNU version uses it's own GPL'ed source. The code is different and the resulting m4 may behave a little different too.

In any case, m4 looks like build dependency for fcgiwrap, but looking at the following..

Code:
%make build-depends-list
/usr/ports/devel/autoconf
/usr/ports/www/fcgi

.. does this suggest that the maintainer forgot to add this to the list? Would certainly explain why compiling fails. If so what's the conventional way to notify? An email?

Yes, you can try to email the port maintainer. You can also submit a PR.
 
SirDice said:
The GNU version uses it's own GPL'ed source. The code is different and the resulting m4 may behave a little different too.

I understand the differences, but it was lack of name difference that confused me. Wouldn't it be better to prefix all GNU variants which have BSD counterparts with a 'g'? It make sense (at least in my opinion) that a binary with the name of gm4 have it's port also called gm4. That would outline clearly that there is a difference between m4(1) and m4 'GNU Edition'. Especially when in this particular case it didn't reveal the port to me with a whereis.

Email sent!
 
Just a quick note on finding ports, you said you had trouble tracking down it's location in the ports tree using the whereis command. If you are a portsnap user you can do the following to search the ports tree.

# cd /usr/ports
# make search name=m4
Output:
Code:
Port:	sim4-2003.09.21
Path:	/usr/ports/biology/sim4
Info:	An algorithm for aligning expressed DNA with genomic sequences
Maint:	ports@FreeBSD.org
B-deps:	
R-deps:	
WWW:	http://globin.cse.psu.edu/

Port:	m4-1.4.16,1
Path:	/usr/ports/devel/m4
Info:	GNU m4
Maint:	johans@FreeBSD.org
B-deps:	
R-deps:	
WWW:	http://www.gnu.org/software/m4/m4.html

--- SNIP ---

To search more than just the name you can use 'key'
# make search key=m4

Although in this case, searching for 'gm4' would still of returned nothing :\
 
Back
Top