summaryrefslogtreecommitdiff
path: root/doc/patchqueue/pm_filter-priority.mdwn
blob: 16705e33e6a8290e0311f1cd973a5a2432744b14 (plain)

Thanks to r2677, 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.

=================================================================== --- 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:

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]]

(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]]