web commit by buo: Response
[ikiwiki] / doc / bugs / 2.45_Compilation_error.mdwn
1 I have perl 5.10.0. Ikiwiki 2.44 compiles fine. Compiling 2.45 fails after 'make':
2
3     perl -Iblib/lib   ikiwiki.out -libdir . -setup docwiki.setup -refresh
4     refreshing wiki..
5     docwiki.setup: Failed to load plugin IkiWiki::Plugin::goodstuff: Failed to load plugin IkiWiki::Plugin::shortcut: Too many arguments for IkiWiki::srcfile at IkiWiki/Plugin/shortcut.pm line 16, near "1)"
6     Compilation failed in require at (eval 31) line 2.
7     BEGIN failed--compilation aborted at (eval 31) line 2.
8     BEGIN failed--compilation aborted at (eval 23) line 2.
9     BEGIN failed--compilation aborted at (eval 10) line 21.
10     make: *** [extra_build] Error 255
11
12 > I can't reproduce this. It looks like your IkiWiki.pm is out of sync with
13 > your IkiWiki/Plugin/shortcut.pm. The ones distributed in 2.45 are in
14 > sync. Or your perl is failing to use the right version of Ikiwiki.pm, 
15 > perhaps using a previously installed version. But the -Iblib/lib
16 > instructs perl to look in that directory first, and the Makefile
17 > puts Ikiwiki.pm there. --[[Joey]]
18
19 >> I removed all traces of the previous installation, and now 2.45 compiles.
20 >> I don't know why it was picking up the old version of Ikiwiki.pm, but now it
21 >> works. Please close this bug, and thanks for the help.
22
23 >>> Where were the files from the old installation? I still don't
24 >>> understand why they would be seen, since -Iblib/lib is passed to perl.
25 >>> --[[Joey]]
26
27 >>>> They were under /usr/local/{bin,lib,share}. I can try to provide more info,
28 >>>> or try to reproduce it, if you need me to.
29
30 >>>>> Well, here are some things to try.
31
32         perl -Iblib/lib -V
33
34 >>>>> This should have blib/lib first in the listed @INC
35
36         joey@kodama:~/src/ikiwiki>strace perl -Iblib/lib -e 'use IkiWiki' 2>&1 |grep IkiWiki.pm
37         stat64("blib/lib/IkiWiki.pmc", 0xbfa1594c) = -1 ENOENT (No such file or directory)
38         stat64("blib/lib/IkiWiki.pm", {st_mode=S_IFREG|0444, st_size=31982, ...}) = 0
39         open("blib/lib/IkiWiki.pm", O_RDONLY|O_LARGEFILE) = 5
40
41 >>>>> This is how perl finds IkiWiki.pm here. Note that I've run "make" first.
42
43 OK, this is what I'm getting:
44
45     $ perl -Iblib/lib -V
46     @INC:
47     blib/lib
48     /usr/lib/perl5/site_perl/5.10.0
49     /usr/share/perl5/site_perl/5.10.0
50     /usr/lib/perl5/vendor_perl
51     /usr/share/perl5/vendor_perl
52     /usr/share/perl5/vendor_perl
53     /usr/lib/perl5/core_perl
54     /usr/share/perl5/core_perl
55     /usr/lib/perl5/current
56     /usr/lib/perl5/site_perl/current
57
58 I ran the following in my current 2.45 source dir, where the `make` already succeded. If you need it, I can post the output
59 in the case where `make` fails.
60
61     $ strace perl -Iblib/lib -e 'use IkiWiki' 2>&1 |grep IkiWiki.pm
62     stat64("blib/lib/IkiWiki.pmc", 0xbfa6167c) = -1 ENOENT (No such file or directory)
63     stat64("blib/lib/IkiWiki.pm", {st_mode=S_IFREG|0444, st_size=31901, ...}) = 0
64     open("blib/lib/IkiWiki.pm", O_RDONLY|O_LARGEFILE) = 3
65
66
67 [[done]]