124 lines
5.2 KiB
Markdown
124 lines
5.2 KiB
Markdown
I have perl 5.10.0. Ikiwiki 2.44 compiles fine. Compiling 2.45 fails after 'make':
|
|
|
|
perl -Iblib/lib ikiwiki.out -libdir . -setup docwiki.setup -refresh
|
|
refreshing wiki..
|
|
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)"
|
|
Compilation failed in require at (eval 31) line 2.
|
|
BEGIN failed--compilation aborted at (eval 31) line 2.
|
|
BEGIN failed--compilation aborted at (eval 23) line 2.
|
|
BEGIN failed--compilation aborted at (eval 10) line 21.
|
|
make: *** [extra_build] Error 255
|
|
|
|
> I can't reproduce this. It looks like your IkiWiki.pm is out of sync with
|
|
> your IkiWiki/Plugin/shortcut.pm. The ones distributed in 2.45 are in
|
|
> sync. Or your perl is failing to use the right version of Ikiwiki.pm,
|
|
> perhaps using a previously installed version. But the -Iblib/lib
|
|
> instructs perl to look in that directory first, and the Makefile
|
|
> puts Ikiwiki.pm there. --[[Joey]]
|
|
|
|
>> I removed all traces of the previous installation, and now 2.45 compiles.
|
|
>> I don't know why it was picking up the old version of Ikiwiki.pm, but now it
|
|
>> works. Please close this bug, and thanks for the help.
|
|
|
|
>>> Where were the files from the old installation? I still don't
|
|
>>> understand why they would be seen, since -Iblib/lib is passed to perl.
|
|
>>> --[[Joey]]
|
|
|
|
>>>> They were under /usr/local/{bin,lib,share}. I can try to provide more info,
|
|
>>>> or try to reproduce it, if you need me to.
|
|
|
|
>>>>> Well, here are some things to try.
|
|
|
|
perl -Iblib/lib -V
|
|
|
|
>>>>> This should have blib/lib first in the listed @INC
|
|
|
|
joey@kodama:~/src/ikiwiki>strace perl -Iblib/lib -e 'use IkiWiki' 2>&1 |grep IkiWiki.pm
|
|
stat64("blib/lib/IkiWiki.pmc", 0xbfa1594c) = -1 ENOENT (No such file or directory)
|
|
stat64("blib/lib/IkiWiki.pm", {st_mode=S_IFREG|0444, st_size=31982, ...}) = 0
|
|
open("blib/lib/IkiWiki.pm", O_RDONLY|O_LARGEFILE) = 5
|
|
|
|
>>>>> This is how perl finds IkiWiki.pm here. Note that I've run "make" first.
|
|
|
|
OK, this is what I'm getting:
|
|
|
|
$ perl -Iblib/lib -V
|
|
@INC:
|
|
blib/lib
|
|
/usr/lib/perl5/site_perl/5.10.0
|
|
/usr/share/perl5/site_perl/5.10.0
|
|
/usr/lib/perl5/vendor_perl
|
|
/usr/share/perl5/vendor_perl
|
|
/usr/share/perl5/vendor_perl
|
|
/usr/lib/perl5/core_perl
|
|
/usr/share/perl5/core_perl
|
|
/usr/lib/perl5/current
|
|
/usr/lib/perl5/site_perl/current
|
|
|
|
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
|
|
in the case where `make` fails.
|
|
|
|
$ strace perl -Iblib/lib -e 'use IkiWiki' 2>&1 |grep IkiWiki.pm
|
|
stat64("blib/lib/IkiWiki.pmc", 0xbfa6167c) = -1 ENOENT (No such file or directory)
|
|
stat64("blib/lib/IkiWiki.pm", {st_mode=S_IFREG|0444, st_size=31901, ...}) = 0
|
|
open("blib/lib/IkiWiki.pm", O_RDONLY|O_LARGEFILE) = 3
|
|
|
|
> I need to see it in the case where it's failing. --[[Joey]]
|
|
|
|
I finally had some time to look into this again.
|
|
|
|
I wiped ikiwiki off my system, and then installed version 2.41. I tried installing
|
|
2.46 and get the same error as above, so I'll be using 2.46 below. (BTW, the debian
|
|
page still lists 2.45 as current; I had to fiddle with the download link to get 2.46).
|
|
|
|
After running `./Makefile.PL` I get:
|
|
|
|
$ perl -Iblib/lib -V
|
|
[bunch of lines snipped]
|
|
@INC:
|
|
blib/lib
|
|
[bunch of paths snipped]
|
|
|
|
Running the strace:
|
|
|
|
$ strace perl -Iblib/lib -e 'use IkiWiki' 2>&1 |grep IkiWiki.pm
|
|
|
|
I get a bunch of ENOENTs and then at the end:
|
|
|
|
stat64("./IkiWiki.pmc", 0xbfa2fe5c) = -1 ENOENT (No such file or directory)
|
|
stat64("./IkiWiki.pm", {st_mode=S_IFREG|0644, st_size=31987, ...}) = 0
|
|
open("./IkiWiki.pm", O_RDONLY|O_LARGEFILE) = 3
|
|
|
|
After running `make` (and having it fail as described above):
|
|
|
|
$ strace perl -Iblib/lib -e 'use IkiWiki' 2>&1 |grep IkiWiki.pm
|
|
stat64("blib/lib/IkiWiki.pmc", 0xbfd7999c) = -1 ENOENT (No such file or directory)
|
|
stat64("blib/lib/IkiWiki.pm", {st_mode=S_IFREG|0444, st_size=31901, ...}) = 0
|
|
open("blib/lib/IkiWiki.pm", O_RDONLY|O_LARGEFILE) = 3
|
|
|
|
I don't know what is going on, but I'll run any more tests you need me to.
|
|
|
|
> No help.
|
|
> The only further thing I can think to try is `strace -f` the entire failing
|
|
> `make` run (or the ikiwiki command that's failing in it, if you can
|
|
> reproduce the failure at the command line). --[[Joey]]
|
|
|
|
I have 2.46 installed and I can reproduce the bug reported against 2.49. The command that fails is:
|
|
|
|
$ /usr/bin/perl -Iblib/lib ikiwiki.out -libdir . -setup docwiki.setup -refresh
|
|
docwiki.setup: Failed to load plugin IkiWiki::Plugin::inline: Too many arguments for IkiWiki::htmlize at IkiWiki/Plugin/inline.pm line 359, near "))"
|
|
Compilation failed in require at (eval 14) line 2.
|
|
BEGIN failed--compilation aborted at (eval 14) line 2.
|
|
BEGIN failed--compilation aborted at (eval 10) line 21.
|
|
|
|
strace -f produces a 112K file. I don't know enough to be comfortable analyzing it.
|
|
However, lines like:
|
|
|
|
stat64("/usr/local/share/perl5/site_perl/5.10.0/IkiWiki.pm", {st_mode=S_IFREG|0444, st_size=31982, ...}) = 0
|
|
|
|
make me think the make process is not completely independent of a previous
|
|
installation. Joey, should I email you the strace log file?
|
|
|
|
> Email it (joey@ikiwiki.info), or post it to a website somewhere.
|
|
> --[[Joey]]
|