From 62e1a2ceed6d99e3606d81effaa71e009dbeb121 Mon Sep 17 00:00:00 2001 From: joey Date: Mon, 18 Sep 2006 20:53:17 +0000 Subject: [PATCH] estseek patch (slightly altered) and other replies --- IkiWiki/Plugin/search.pm | 13 ++++++-- debian/changelog | 4 ++- doc/ikiwiki.setup | 8 +++++ doc/patchqueue/various_fixes.mdwn | 54 ++++--------------------------- doc/plugins/search.mdwn | 3 ++ 5 files changed, 31 insertions(+), 51 deletions(-) diff --git a/IkiWiki/Plugin/search.pm b/IkiWiki/Plugin/search.pm index 2d8c3d4e1..5a4dfd491 100644 --- a/IkiWiki/Plugin/search.pm +++ b/IkiWiki/Plugin/search.pm @@ -7,6 +7,8 @@ use strict; use IkiWiki; sub import { #{{{ + hook(type => "getopt", id => "hyperestraier", + call => \&getopt); hook(type => "checkconfig", id => "hyperestraier", call => \&checkconfig); hook(type => "pagetemplate", id => "hyperestraier", @@ -19,6 +21,12 @@ sub import { #{{{ call => \&cgi); } # }}} +sub getopt () { #{{{ + eval q{use Getopt::Long}; + Getopt::Long::Configure('pass_through'); + GetOptions("estseek=s" => \$config{estseek}); +} #}}} + sub checkconfig () { #{{{ foreach my $required (qw(url cgiurl)) { if (! length $config{$required}) { @@ -99,8 +107,9 @@ sub estcfg () { #{{{ close TEMPLATE; $cgi="$estdir/".IkiWiki::basename($config{cgiurl}); unlink($cgi); - symlink("/usr/lib/estraier/estseek.cgi", $cgi) || - error("symlink $cgi: $!"); + my $estseek = defined $config{estseek} ? $config{estseek} : '/usr/lib/estraier/estseek.cgi'; + symlink($estseek, $cgi) || + error("symlink $estseek $cgi: $!"); } # }}} sub estcmd ($;@) { #{{{ diff --git a/debian/changelog b/debian/changelog index 73ad45ea1..da85371b7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -50,8 +50,10 @@ ikiwiki (1.27) UNRELEASED; urgency=low * chomp trailing newline at the end of templates read in by the template plugin, to allow use of the template preprocessor directive in whitespace-sensative situations. Closes: #387073 + * Patch from James Westby to make the location of the estseek.cgi script + configurable. - -- Joey Hess Mon, 18 Sep 2006 15:26:01 -0400 + -- Joey Hess Mon, 18 Sep 2006 16:43:10 -0400 ikiwiki (1.26) unstable; urgency=low diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup index ab5c9eb35..a9d9414c0 100644 --- a/doc/ikiwiki.setup +++ b/doc/ikiwiki.setup @@ -96,4 +96,12 @@ use IkiWiki::Setup::Standard { # sidebar map rst toc linkmap}], # If you want to disable any of the default plugins, list them here. #disable_plugins => [qw{inline htmlscrubber}], + + # For use with the tag plugin, make all tags be located under a + # base page. + #tagbase => "tag". + + # For use with the search plugin if your estseek.cgi is located + # somewhere else. + #estseek => "/usr/lib/estraier/estseek.cgi", } diff --git a/doc/patchqueue/various_fixes.mdwn b/doc/patchqueue/various_fixes.mdwn index 81cb6c592..176b30a21 100644 --- a/doc/patchqueue/various_fixes.mdwn +++ b/doc/patchqueue/various_fixes.mdwn @@ -81,28 +81,9 @@ much help I'm afraid. >> to adjust permissions on my cgi-dir. This seems to be the root of the >> problem. ----- - - --- IkiWiki/Plugin/search.pm - +++ IkiWiki/Plugin/search.pm - @@ -99,7 +99,7 @@ - close TEMPLATE; - $cgi="$estdir/".IkiWiki::basename($config{cgiurl}); - unlink($cgi); - - symlink("/usr/lib/estraier/estseek.cgi", $cgi) || - + symlink("/usr/local/libexec/estseek.cgi", $cgi) || - error("symlink $cgi: $!"); - } # }}} - -obviously I'm not asking you to include this patch, but it would -be good if this sort of thing was configurable (at build time?). I can -have a go if you like, but I'm not sure what would be acceptable to -you. - -> This should be made configurable via an option in %IkiWiki::config, -> the search plugin could register a getopt hook to handle it. --[[Joey]] - ->> Like this? +>>> Ah, I think it's better to keep the permissions of the repository +>>> and source directory sane (755) and make the cgi suid to your user, +>>> which is how it's designed to work. ---- @@ -178,29 +159,6 @@ informative if that code path is ever taken, but I hope that it never is. >> >> is what pointed me to find the problem/workaround. - - ----- - -As for backports there is a problem with the sarge version of libcgi-session-perl -and my sslcookie patch (complaints about a missing include file auto/CGI/Session/cookie.al IIRC). -This file does not and has not ever existed, but it appears to be fixed in -the backport of libcgi-session-perl that I did. That puts the dependency -required at somewhere between 3.95-2 and 4.14-1. This could then be added -to debian/control. It would mean one more package to backport, but stops the -bug if anyone actually uses my sslcookie option except me. - -> May as well, done --[[Joey]] - ->> Thanks. - -As for backports I managed with - - * ikiwiki_1.26 - * libcgi-formbuilder-perl_3.03.01-1 - * libcgi-session-perl_4.14-1 - -backported to sarge, with bpo in sources.list. This only covers Depends: though, -for instance hyperestraier needs to be backported, which I haven't got -round to yet as there is a chain to do. - +>>> Given that verification, an untaint contingent on the value of $^V +>>> sounds reasonable and I'd accept such a patch. I'm not quite sure which +>>> version(s) of perl it should check for. diff --git a/doc/plugins/search.mdwn b/doc/plugins/search.mdwn index b9875ff85..5b5325371 100644 --- a/doc/plugins/search.mdwn +++ b/doc/plugins/search.mdwn @@ -7,3 +7,6 @@ full text search to ikiwiki, using the [[HyperEstraier]] engine. It's possible to configure HyperEstraier via one of ikiwiki's [[templates]], but for most users, no configuration should be needed aside from enabling the plugin. + +This plugin has a configuration option. To change the path to estseek.cgi, +set `--estseek=/path/to/estseek.cgi` -- 2.26.2