aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Wrapper.pm
Commit message (Collapse)AuthorAge
* make unlockwiki drop the cgilockJoey Hess2008-11-11
| | | | | | | | 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.
* O_CREATE needs modeJoey Hess2008-11-11
|
* avoid multiple ikiwiki cgi processes piling up, eating all memory, and thrashingJoey Hess2008-11-11
| | | | | | | | | | | 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.
* do no-op post_commit test in wrapperJoey Hess2008-10-26
| | | | | | | | | | | | | | | | | | | 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.
* move untrusted committer test into the wrapperJoey Hess2008-10-26
| | | | | This saves around 1/4th second per trusted commit since ikiwiki doesn't need to start up.
* remember how to write C codeJoey Hess2008-10-24
| | | | been a while!
* export CALLER_UIDJoey Hess2008-10-24
|
* Pass HTTPS variable through the wrapper so that CGI->https can be used by ↵Joey Hess2008-10-13
| | | | plugins. Closes: #502047
* Avoid troublesome abs_path calls in wrapper setupJoey Hess2008-07-21
| | | | As documented in the forum post.
* fix use orderingJoey Hess2008-07-11
| | | | | The recent setup revamp exposed some latent bugs in use/package ordering that caused some symbols to not the exported into the correct scope.
* whitespaceJoey Hess2008-07-11
|
* * Removed support for sending commit notification mails. Along with it wentJoey Hess2008-01-29
| | | | | the svnrepo and notify settings, though both will be ignored if left in setup files.
* * Add a prereq on Data::Dumper 2.11 or better, needed to dump q// objects.Joey Hess2008-01-07
|
* * Split error messages for failures to drop real uid and gid.Joey Hess2008-01-01
| | | | | * Retry dropping uid and gid, possibly this will help with the "Resource temporarily unavailable" failures I've experienced under xen.
* * Let CC be used to control what compiler is used to build wrappers.Joey Hess2007-11-25
| | | | * Use 'cc' instead of gcc as the default compiler.
* * Add wrappergroup config option, which can be used to cause wrappersJoey Hess2007-11-14
| | | | | | | 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.
* get confused. So it's best for ikiwiki to follow the compatabilityjoey2007-07-09
| | | | | | * 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.
* * Fix wrapper generator and untaint code's handling of strings continingjoey2007-06-03
| | | | newlines.
* fix formatjoey2007-01-14
|
* remove \n from gettexed string, and unfuzzyjoey2007-01-11
|
* added some comments for translatorsjoey2007-01-04
|
* * Initial work on internationalization of the program code. po/ikiwiki.potjoey2006-12-29
| | | | | is available for translation. * Export gettext() from IkiWiki module.
* * Patch from Alec Berryman adding a http_auth config item that allowsjoey2006-10-02
| | | | | | 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
* * Numerous tla fixes from Clint.joey2006-09-16
|
* man page says I need thisjoey2006-09-04
|
* * Drop real uid/gid in the suid wrapper, thus allowing commits to remotejoey2006-09-04
| | | | subversion repos and fixing some other issues.
* * The page name and parent links has switched from using a <h1> to a styledjoey2006-05-26
| | | | | | | | | | <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.
* fix a bug that doubled the search boxjoey2006-05-04
|
* rather a lot of changes to make hyperestraier search be a plugin, allowingjoey2006-05-03
| | | | | | | | | | | | | | 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
* * Patch from Thomas Schwinge to switch from --svn to --rcs=svn, etc,joey2006-05-02
| | | | | | | | | | 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.
* * Split off an IkiWiki.pm out of ikiwiki and have all the other modules usejoey2006-05-02
| | | | it, this will allow for adding a unit test suite.
* subscription nearly donejoey2006-04-25
|
* commit changes for email subscriptionsjoey2006-04-24
|
* fix broken example config file and detect this breakagejoey2006-04-20
|
* added --getctimejoey2006-03-26
|
* benchmarking suggests that meoization doesn't help even when doing ajoey2006-03-23
| | | | | --rebuild, so remove it
* Getopt::Long is a huge, heavy perl module. So why use it?joey2006-03-23
| | | | | | | | | | | 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.
* Major code reoganisation, splitting up the single big file. The two goalsjoey2006-03-23
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.