)
extra_build:
- LANG=C ./ikiwiki.in doc html --templatedir=templates \
+ ./pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB) < ikiwiki.in > ikiwiki.out
+ chmod +x ikiwiki.out
+ PERL5LIB=.:${PERL5LIB} LANG=C ./ikiwiki.in doc html --templatedir=templates \
--underlaydir=basewiki \
--wikiname="ikiwiki" --verbose --no-rcs \
--exclude=/discussion --no-discussion --userdir=users \
--plugin=haiku --plugin=polygen --plugin=fortune
./mdwn2man ikiwiki 1 doc/usage.mdwn > ikiwiki.man
./mdwn2man ikiwiki-mass-rebuild 8 doc/ikiwiki-mass-rebuild.mdwn > ikiwiki-mass-rebuild.man
- ./pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB) < ikiwiki.in > ikiwiki.out
$(MAKE) -C po
extra_clean:
+++ /dev/null
-Thanks to [r2677](http://ikiwiki.info/cgi-bin/viewvc.cgi/trunk/pm_filter?revision=2677&root=ikiwiki&view=markup), we're closer to getting clean installs on shared hosts.
-
-The main problem is that `pm_filter` runs after `./ikiwiki.in`, so the build still fails. If it runs before, we're fine.
-
-<pre>
-===================================================================
---- Makefile.PL (revision 2682)
-+++ Makefile.PL (working copy)
-@@ -23,8 +23,10 @@
- fi \\
- )
-
--extra_build:
-- LANG=C ./ikiwiki.in doc html --templatedir=templates \
-+extra_build:
-+ ./pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB) < ikiwiki.in > ikiwiki.out
-+ chmod +x ikiwiki.out
-+ LANG=C ./ikiwiki.out doc html --templatedir=templates \
- --underlaydir=basewiki \
- --wikiname="ikiwiki" --verbose --no-rcs \
- --exclude=/discussion --no-discussion --userdir=users \
-@@ -32,7 +34,6 @@
- --plugin=haiku --plugin=polygen --plugin=fortune
- ./mdwn2man ikiwiki 1 doc/usage.mdwn > ikiwiki.man
- ./mdwn2man ikiwiki-mass-rebuild 8 doc/ikiwiki-mass-rebuild.mdwn > ikiwiki-mass-rebuild.man
-- ./pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB) < ikiwiki.in > ikiwiki.out
- $(MAKE) -C po
-
- extra_clean:
-</pre>
-
-> It was failing before because taint mode was enabled, so it didn't see your PERL5LIB setting.
-> Your patch is ok, except that needs to set PERL5LIB=. before calling
-> ikiwiki.out, so that it builds using the libs in the source tree, not
-> whatever old ikiwiki libs might already be installed. And if it has to
-> set PERL5LIB=. , well, that makes any PERL5LIB setting you might have in
-> your environment a no-op. Unless it sets `PERL5LIB=.:$PERL5LIB` or
-> something. --[[Joey]]
-
->> Heh, I guess it's obvious that I don't normally do packaging/build stuff -- probably best if I stop with these kind of patches. :-) OK, why not try the latter then? I think this is a worthy goal, because if we can make it easy to install on shared hosts, it will reach far more people, IMO.
-
-(Is there any reason to create `ikiwiki.out`? Couldn't we just do an in-place replace on `ikiwiki.in`?)
-
-> Yes, it's there because "ikwiki" == "Ikiwiki" on Mac OS X. Also because
-> I don't like automatically modifying source files I have in svn. --[[Joey]]
-
-So, to install from the trunk I can say:
-
- svn co svn://ikiwiki.kitenet.net/ikiwiki/trunk ikiwiki
- cd ikiwiki
- patch -p0 <../patches/pm_filter_priority.patch #IOW, apply this patch
- perl Makefile.PL PREFIX=~ LIB=~/lib
- make
- NOTAINT=1 make install
- perl -p -i.bak -e 's{^(use IkiWiki;)}{use lib "$ENV{HOME}/lib";\n$1}' ~/bin/ikiwiki
-
-The last line is necessary for the CGI, because, as with most shared hosts, the user's environment is ignored by the server . It's ugly, but ATM I can't think of a clean way to get rid of it.
-
-> Hmm, the Makefile is supposed to figure out when ikiwiki is installed to
-> a location outside of perl's regular lib dirs, and if so, shove its own
-> "use lib" setting in, to make it find the ikiwiki libs. Is this not working
-> for you? Maybe that `LIB=~/lib` is defeating it? Not familiar with that
-> variable.
-> --[[Joey]]
-
->> You're completely right; without the LIB argument the `Makefile.PL` heuristics work perfectly. I think I was juggling too many patches at once. ;-)
\ No newline at end of file