ikiwiki/doc/bugs/ikiwiki_cgi_fails_to_build_...

44 lines
1.3 KiB
Markdown

when enabling the cgi wrapper I get,
generating wrappers..
"/var/www/cgi-bin/ikiwiki.cgi.c", line 91: warning: implicit function declaration: flock
"/var/www/cgi-bin/ikiwiki.cgi.c", line 91: undefined symbol: LOCK_EX
cc: acomp failed for /var/www/cgi-bin/ikiwiki.cgi.c
failed to compile /var/www/cgi-bin/ikiwiki.cgi.c
cc -V
cc: Sun C 5.9 SunOS_i386 Patch 124868-01 2007/07/12
I don't know enough C to provide a patch, but from googling it, people seem to be suggesting fcntl has an alternative.
-----
changing
if (lockfd != -1 && flock(lockfd, LOCK_EX) == 0) {
to read
if (lockfd != -1 && lockf(lockfd, F_LOCK,0) == 0) {
in IkiWiki/Wrapper.pm lets it compile, according to
http://man-wiki.net/index.php/3:lockf "On Linux, this call is just an
interface for fcntl(2)" does this seem like a sensible fix?a
> Don't see why not. flock was used only because it's being used
> in the same file for testing some other locks.
>
> While lockf's fcntl locks are not inherited across a fork,
> that doesn't matter for this lock, which is only used to
> prevent more than one ikiwiki perl process being run at a time.
> Nor is there any need to be compatible with some other user of this
> lock; it's only checked in one place. [[applied|done]]
> --[[Joey]]