Help?
authorhttp://www.cse.unsw.edu.au/~willu/ <http://www.cse.unsw.edu.au/~willu/@web>
Sat, 19 Jul 2008 05:52:56 +0000 (01:52 -0400)
committerJoey Hess <joey@kitenet.net>
Sat, 19 Jul 2008 05:52:56 +0000 (01:52 -0400)
doc/forum/perl5lib_and_wrappers.mdwn [new file with mode: 0644]

diff --git a/doc/forum/perl5lib_and_wrappers.mdwn b/doc/forum/perl5lib_and_wrappers.mdwn
new file mode 100644 (file)
index 0000000..36980f8
--- /dev/null
@@ -0,0 +1,28 @@
+I don't know if I'm doing this right...  I'm using a server provider that doesn't allow me to install into standard perl locations, so I used PREFIX to install things in my home dir.  The problem is that when the wrapper is run by the CGI server, it can't find the perl modules I installed.  There didn't seem to be a way to set the PERL5LIB from the standard config, so I added one.  Patch attached.  Or did I miss something and this was already possible?
+
+diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm
+index 79b9eb3..e88118b 100644
+--- a/IkiWiki/Wrapper.pm
++++ b/IkiWiki/Wrapper.pm
+@@ -37,6 +41,13 @@ sub gen_wrapper () { #{{{
+ EOF
+        }
+        
++       my $wrapperperllib="";
++       if (defined $config{wrapperperl5lib}) {
++           $wrapperperllib =<<"EOF"
++           newenviron[i++]="PERL5LIB=$config{wrapperperl5lib}";
++EOF
++       }
++
+        $Data::Dumper::Indent=0; # no newlines
+        my $configstring=Data::Dumper->Dump([\%config], ['*config']);
+        $configstring=~s/\\/\\\\/g;
+@@ -72,6 +83,7 @@ int main (int argc, char **argv) {
+ $envsave
+        newenviron[i++]="HOME=$ENV{HOME}";
+        newenviron[i++]="WRAPPED_OPTIONS=$configstring";
++$wrapperperllib
+        newenviron[i]=NULL;
+        environ=newenviron;