* Rename ikiwiki.pl so MakeMaker doesn't see it, and install it.
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Mon, 20 Nov 2006 22:12:43 +0000 (22:12 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Mon, 20 Nov 2006 22:12:43 +0000 (22:12 +0000)
* Add some code to the build system that tries to determine if the
  lib installation directory is in @INC. If it's not, munge ikiwiki
  to hardcode the path to the lib directory. This should allow installing
  ikiwiki in nonstandard locations, including home directories, by just
  setting PREFIX at build time.
* Fix nested examples directory in deb.

Makefile.PL
debian/changelog
debian/rules
ikiwiki.in [moved from ikiwiki.pl with 97% similarity]
pm_filter
t/syntax.t

index 831c13255e7733e64339566797596c17e7847716..6e75097c899c50919a9a3d9db97bf353cd052023 100755 (executable)
@@ -13,8 +13,18 @@ pure_install:: extra_install
 
 VER=$(shell perl -e '$$_=<>;print m/\((.*?)\)/'<debian/changelog)
 
+PROBABLE_INST_LIB=$(shell \\
+       if [ "$(INSTALLDIRS)" = "perl" ]; then \\
+               echo $(INSTALLPRIVLIB); \\
+       elif [ "$(INSTALLDIRS)" = "site" ]; then \\
+               echo $(INSTALLSITELIB); \\
+       elif [ "$(INSTALLDIRS)" = "vendor" ]; then \\
+               echo $(INSTALLVENDORLIB); \\
+       fi \\
+)
+
 extra_build:
-       ./ikiwiki.pl doc html --templatedir=templates --underlaydir=basewiki \
+       ./ikiwiki.in doc html --templatedir=templates --underlaydir=basewiki \
                --wikiname="ikiwiki" --verbose --no-rcs \
                --exclude=/discussion --no-discussion \
                --plugin=brokenlinks --plugin=pagecount \
@@ -24,7 +34,7 @@ extra_build:
                --plugin=template --plugin=toc --plugin=shortcut
        ./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) < ikiwiki.pl > ikiwiki.out
+       ./pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB) < ikiwiki.in > ikiwiki.out
                
 extra_clean:
        rm -rf html doc/.ikiwiki
@@ -57,6 +67,6 @@ extra_install:
 WriteMakefile(
        NAME            => 'IkiWiki',
        PREFIX          => "/usr/local",
-       PM_FILTER       => './pm_filter $(PREFIX) $(VER)',
+       PM_FILTER       => './pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB)',
        MAN1PODS        => {},
 );
index b6f397f27030a3952f7410ae65c70a45245532e4..ed3b8fe6e7403cdba6af04f29b97ce3da8658e23 100644 (file)
@@ -20,8 +20,15 @@ ikiwiki (1.34) UNRELEASED; urgency=low
   * Split out a passwordauth module, that holds all the traditional password
     based authentication etc code. It's enabled by default, but can be disabled
     if you want only openid or some other auth method.
-
- -- Joey Hess <joeyh@debian.org>  Mon, 20 Nov 2006 09:17:07 -0500
+  * Rename ikiwiki.pl so MakeMaker doesn't see it, and install it.
+  * Add some code to the build system that tries to determine if the
+    lib installation directory is in @INC. If it's not, munge ikiwiki
+    to hardcode the path to the lib directory. This should allow installing
+    ikiwiki in nonstandard locations, including home directories, by just
+    setting PREFIX at build time.
+  * Fix nested examples directory in deb.
+
+ -- Joey Hess <joeyh@debian.org>  Mon, 20 Nov 2006 16:49:05 -0500
 
 ikiwiki (1.33) unstable; urgency=low
 
index 4e14b5ca34cb11f4580d116d1f65aa9b85f89e0e..9dedd3c452a9f5fc5997e3c7d05588e49a5b0c8c 100755 (executable)
@@ -3,7 +3,7 @@
 build: build-stamp
 build-stamp:
        dh_testdir
-       perl Makefile.PL PREFIX=/usr
+       perl Makefile.PL PREFIX=/usr INSTALLDIRS=vendor
        $(MAKE)
        $(MAKE) test
        touch build-stamp
@@ -22,11 +22,10 @@ binary-indep: build
        dh_testdir
        dh_testroot
        dh_clean -k
-       $(MAKE) pure_install INSTALLDIRS=vendor \
-               DESTDIR=$(shell pwd)/debian/ikiwiki
+       $(MAKE) pure_install DESTDIR=$(shell pwd)/debian/ikiwiki
        dh_install wikilist etc/ikiwiki
        dh_installdocs html
-       dh_installexamples doc/examples
+       dh_installexamples doc/examples/*
        dh_link usr/share/common-licenses/GPL usr/share/doc/ikiwiki/html/GPL
        dh_installchangelogs
        dh_compress -X html
similarity index 97%
rename from ikiwiki.pl
rename to ikiwiki.in
index ff1da353efe881937edd0f5d50a41d1ee6c2c0e5..7d13ab455c60dd80a743d6fb519d1400b9e02b4b 100755 (executable)
@@ -6,7 +6,7 @@ package IkiWiki;
 
 use warnings;
 use strict;
-use lib '.'; # For use without installation, removed by Makefile.
+use lib '.'; # For use in nonstandard directory, munged by Makefile.
 use IkiWiki;
 
 sub usage () { #{{{
index 89449bd914122b88f85145a7fd7223ac5635f021..f61e7810b686cc8a1995134b9f8ed75ded158044 100755 (executable)
--- a/pm_filter
+++ b/pm_filter
@@ -3,6 +3,7 @@
 BEGIN {
        $prefix=shift;
        $ver=shift;
+       $libdir=shift;
 }
 
 if (/INSTALLDIR_AUTOREPLACE/) {
@@ -12,5 +13,10 @@ elsif (/VERSION_AUTOREPLACE/) {
        $_=qq{our \$version="$ver";};
 }
 elsif (/^use lib/) {
-       $_="";
+       if (grep { $_ eq $libdir } @INC) {
+               $_="";
+       }
+       else {
+               $_="use lib '$libdir';\n";
+       }
 }
index cbbdee62f6f956d8f06f7ea948da1d07d72ebfed..20396aaae0ebb8bde572ddd35ce0aebcf07c9000 100755 (executable)
@@ -3,7 +3,7 @@ use warnings;
 use strict;
 use Test::More;
 
-my @progs="ikiwiki.pl";
+my @progs="ikiwiki.in";
 my @libs="IkiWiki.pm";
 push @libs, map { chomp; $_ } `find IkiWiki -type f -name \\*.pm`;