summaryrefslogtreecommitdiff
path: root/IkiWiki/Wrapper.pm
AgeCommit message (Collapse)Author
2008-11-11make unlockwiki drop the cgilockJoey Hess
This is necessary so that things that fork to the background, like pinger, and inline ping, don't block other cgis from running. Note that websetup also calls unlockwiki, before refreshing / rebuilding the wiki. It makes perfect sense for that not to block other cgis.
2008-11-11O_CREATE needs modeJoey Hess
2008-11-11avoid multiple ikiwiki cgi processes piling up, eating all memory, and thrashingJoey Hess
Fixed by making the cgi wrapper wait on a cgilock. If you had to set apache's MaxClients low to avoid ikiwiki thrashing your server, you can now turn it up to a high value. The downside to this is that a cgi call that doesn't need to call lockwiki will be serialised by this so only one can run at a time. (For example, do=search.) There are few such calls, and all of them call loadindex, so each still eats gobs of memory, so serialising them still seems ok.
2008-10-26do no-op post_commit test in wrapperJoey Hess
This speeds up web commits by 1/4th of a second or so, since perl does not have to start up for the post commit hook. perl's locking is completly FuBar, since it's impossible to tell what perl flock() really does, and thus difficult to write code in other languages that interoperates with perl's locking. (Let alone interoperating with existing fcntl locking from perl...) In this particular case, I think I was able to find a way to avoid the insanity, mostly. The C code does a true flock(2), and if perl is using an incompatable lock method that does not use the same locking primative at the kernel level, then the C code's test will fail, and it will go ahead and run the perl code. Then the perl code's test will test the right thing. On Debian, at least lately, perl's flock() does a true flock(2), so the optimisation does work.
2008-10-26move untrusted committer test into the wrapperJoey Hess
This saves around 1/4th second per trusted commit since ikiwiki doesn't need to start up.
2008-10-24remember how to write C codeJoey Hess
been a while!
2008-10-24export CALLER_UIDJoey Hess
2008-10-13Pass HTTPS variable through the wrapper so that CGI->https can be used by ↵Joey Hess
plugins. Closes: #502047
2008-07-21Avoid troublesome abs_path calls in wrapper setupJoey Hess
As documented in the forum post.
2008-07-11fix use orderingJoey Hess
The recent setup revamp exposed some latent bugs in use/package ordering that caused some symbols to not the exported into the correct scope.
2008-07-11whitespaceJoey Hess
2008-01-29* Removed support for sending commit notification mails. Along with it wentJoey Hess
the svnrepo and notify settings, though both will be ignored if left in setup files.
2008-01-07* Add a prereq on Data::Dumper 2.11 or better, needed to dump q// objects.Joey Hess
2008-01-01* Split error messages for failures to drop real uid and gid.Joey Hess
* Retry dropping uid and gid, possibly this will help with the "Resource temporarily unavailable" failures I've experienced under xen.
2007-11-25* Let CC be used to control what compiler is used to build wrappers.Joey Hess
* Use 'cc' instead of gcc as the default compiler.
2007-11-14* Add wrappergroup config option, which can be used to cause wrappersJoey Hess
to be created owned by some group other than the default. Useful then there's a shared repository with access controlled by a group, to let ikiwiki run setgid to that group. * ikiwiki-mass-rebuild: Run build with the user in all their groups.
2007-07-09 get confused. So it's best for ikiwiki to follow the compatabilityjoey
* Support building on systems that lack asprintf. * mercurial getctime is currently broken, apparently by some change in mercurial version 0.9.4. Turn the failing test case into a TODO test case.
2007-06-03* Fix wrapper generator and untaint code's handling of strings continingjoey
newlines.
2007-01-14fix formatjoey
2007-01-11remove \n from gettexed string, and unfuzzyjoey
2007-01-04added some comments for translatorsjoey
2006-12-29* Initial work on internationalization of the program code. po/ikiwiki.potjoey
is available for translation. * Export gettext() from IkiWiki module.
2006-10-02* Patch from Alec Berryman adding a http_auth config item that allowsjoey
using HTTP Authentication instead of ikiwiki's built in authentication. Useful for eg, large sites with their own previously existing user auth setup. Closes: #384534
2006-09-16* Numerous tla fixes from Clint.joey
2006-09-04man page says I need thisjoey
2006-09-04* Drop real uid/gid in the suid wrapper, thus allowing commits to remotejoey
subversion repos and fixing some other issues.
2006-05-26* The page name and parent links has switched from using a <h1> to a styledjoey
<span>, so pages can use <h1> internally instead of needing to use <h2>. * Updated all of ikiwiki's own wiki pages for that. * Add pagetemplate hook, which can be used by plugins that want to mess around with adding new stuff to the page template. * Remove headercontent; the search plugin now adds the search box to the header by registering a pagetemplate hook, and other plugins should do similarly.
2006-05-04fix a bug that doubled the search boxjoey
2006-05-03rather a lot of changes to make hyperestraier search be a plugin, allowingjoey
for other types of search engine plugins if wanted, and also opening up a lot of new possibilities for other kinds of plugins later some notable changes along the way: - lots of new hook types: cgi, render, delete - wrapper files fixed to support config strings with newlines in them - HEADERCONTENT in page template useful for plugins. Probably needs to be expanded to more such for other places plugins might want to add content. - remove unnecessary wrappers field from config info stored in wrappers
2006-05-02* Patch from Thomas Schwinge to switch from --svn to --rcs=svn, etc,joey
to pave the way for adding other RCS support. This also changes the setup files, where before they had svn => 1 or svn => 0, now they have rcs => "svn" or rcs => "". * Add a debian/NEWS file with upgrade notes. * Load whatever rcs module is specified, so new ones can be just dropped in as plugins and work. * Add some basic docs about writing RCS modules.
2006-05-02* Split off an IkiWiki.pm out of ikiwiki and have all the other modules usejoey
it, this will allow for adding a unit test suite.
2006-04-25subscription nearly donejoey
2006-04-24commit changes for email subscriptionsjoey
2006-04-20fix broken example config file and detect this breakagejoey
2006-03-26added --getctimejoey
2006-03-23benchmarking suggests that meoization doesn't help even when doing ajoey
--rebuild, so remove it
2006-03-23Getopt::Long is a huge, heavy perl module. So why use it?joey
This {gross,amazing} hack makes all wrapped uses of ikiwiki forgo any option parsing at all. Options come in preparses via an env var from the wrapper. As a bonus, Wrapper.pm no longer needs to be updated when command line options are added to the program. Load time is sped up by around 10%. ikiwikiwrap --params is no longer supported by this change. You will need to rebuild your wrappers to take advantage of it.
2006-03-23Major code reoganisation, splitting up the single big file. The two goalsjoey
kept in mind during this are a) to reduce load time for common cases like cgi and post-commit and b) make the code easier to navigate. This also modularises RCS support to the extent that it should be possible to drop in a module for some RCS other than svn, add a switch for it, and it pretty much just work. High chance I missed an edge case that breaks something, this is only barely tested at this point.