Failed to build www/w3m within jail (poudriere)

Hi everyone,

I use ports-mgmt/poudriere to build packages. But after upgrading portstree to the most recent version, I can't build www/w3m with poudriere anymore. I noticed that it stopped building after it's dependency, devel/boehm-gc updated to 7.2d. I also tried to manually build www/w3m inside poudriere jail, but it failed too.

Code:
===>  Building for w3m-0.5.3_2
(echo '#define DEFUN(x,y,z) x y'; sed -ne '/^DEFUN/{p;n;/^[     ]/p;}' ./main.c ./menu.c) | cpp - |  awk '$1 ~ /^[_A-Za-z]/ {  for (i=2;i<=NF;i++) { print $i, $1}  }' > funcname.tab.tmp
funcname.tab updated
sort funcname.tab | /usr/bin/awk -f ./funcname1.awk > funcname1.h
cc  -I. -I. -O2 -pipe -fno-strict-aliasing -I./libwc  -I/usr/include/openssl -I/usr/local/include -I/usr/local/include -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/usr/local/libexec/w3m\"  -DCGIBIN_DIR=\"/usr/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/usr/local/share/w3m\"  -DETC_DIR=\"/usr/local/etc\" -DCONF_DIR=\"/usr/local/etc/w3m\"  -DRC_DIR=\"~/.w3m\"  -DLOCALEDIR=\"/usr/local/share/locale\" -c main.c
main.c: In function 'main':
main.c:836: error: void value not ignored as it ought to be
main.c: In function 'getChar':
main.c:2264: warning: passing argument 1 of 'wtf_parse1' from incompatible pointer type
*** [main.o] Error code 1

Stop in /wrkdirs/usr/ports/www/w3m/work/w3m-0.5.3.
*** [do-build] Error code 1

Stop in /usr/ports/www/w3m.
===>  Cleaning for w3m-0.5.3_2

However, the port builds just fine outside jail... What could cause this issue? Both, my host and jail, are FreeBSD 9.2 amd64.
 
Excellent! and just in time. I've got a server to rebuild that needs to be up in 17 hours.

Thanks so much for posting this!
 
Error building www/w3m 0.5.3_2 from ports

I've fixed this with the attached patch, so I've already marked this as solved. I've also sent this to the maintainer, nobutaka@FreeBSD.org, so hopefully it'll be fixed shortly.

When updating git to 1.8.4.1, I got this error building www/w3m from ports:

Code:
main.c:836:23: error: assigning to 'GC_warn_proc' (aka 'void (*)(char *, GC_word)') from incompatible type 'void'
    orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
I'm using 9.2-RELEASE and clang as my compiler, but I tried with gcc and it failed on the same line.

To apply the patch, I just copied it to /usr/ports/www/w3m/files and everything build appropriately. I hope this helps somebody. It's also on a gist in case someone who doesn't have an account here needs this: https://gist.github.com/anonymous/7086269
 
Sorry about the repost then. The post mentioned it worked outside a jail, but mine didn't, so I assumed it was something different (didn't even read the patch...). Apparently, the OP posted later that it wasn't specific to being in a jail.

Good news, however, is that my patch is exactly the same as the patch in the mailing list... *facepalm*

Sorry for the noise.
 
Back
Top