aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Wrapper.pm
Commit message (Expand)AuthorAge
* Fix longstanding bug (chdir to nonexistent dirs).•••In test, set up the post-commit hook for more realism (and bugs!). To make wrappers work in test, set PERL5LIB, and allow the wrappee's path to be overridden. Meta-test that post-commit is really hooked up by verifying that content is getting generated in destdir. About the longstanding bug, which as far as I know was harmless: CVS can't operate outside a srcdir, so we're always setting $CWD. "local $CWD" restores the previous value when we go out of scope. Usually that's correct. But if we're removing the last file from a directory, the post-commit hook will exec in a working directory that's about to not exist (CVS will prune it). The fix: chdir() manually in cvs_runcvs(), so we can selectively not chdir() back. Amitai Schlair2013-01-27
* add cgi_overload_messageJoey Hess2012-10-11
* add cgi_overload_delay tunable•••Try to avoid a situation in which so many ikiwiki cgi wrapper programs are running, all waiting on some long-running thing like a site rebuild, that it prevents the web server from doing anything else. The current approach only avoids this problem for GET requests; if multiple cgi's run GETs on a site at the same time, one will display a "please wait" page for a configurable number of seconds, which then redirects to retry. To enable this protection, set cgi_overload_delay to the number of seconds to wait. This is not enabled by default. Joey Hess2012-10-09
* Split CFLAGS into words when building wrapper. Closes: #682237Joey Hess2012-07-20
* Use lockf rather than flock when taking the cgilock, for better portability.•••This kind of change is scary, but this particular lock is very simply used and so it seems ok to make it even just for better portability to SunOS. (People still use that?) Joey Hess2011-08-24
* let thru HTTP_ACCEPT•••Needed for attachment to return json when requested. I think some browsers send Accept: * , so I made sure to check that json was explicitly listed as to be accepted, as well as having a high priority. Joey Hess2011-06-15
* fix use of debug() without sprintf()•••Previous commit substituted a printf call (two arguments) for debug (accepts only one). Interleave an sprintf call to resolve. Jon Dowland2011-04-20
* use debug() for wrapper-generation print outs•••Use the debug() subroutine for printing out when wrappers are generated. This has the effect of hiding the messages unless verbose mode is enabled. Jon Dowland2011-04-20
* Export three cgi env vars needed for CGI->url to work.Joey Hess2011-01-05
* Propigate PATH into wrapper.•••In the last version, the ikiwiki script stopped setting PATH. But that leads to gcc failing when run from websetup. See http://www.branchable.com/bugs/Crashes_when_rebuilding_wiki_after_setup_change/ Joey Hess2010-09-26
* move wrapper building loop into Wrapper.pmJoey Hess2010-07-24
* git: Added git_wrapper_background_command option. Can be used to eg, make th...Joey Hess2010-07-01
* note that tcc workaround is for bug fixed in tcc nowJoey Hess2010-05-04
* use __TINYC__ define to avoid tinyc compat fixes breaking FreeBSD•••To review, tcc does not really use environ, so you have to use clearenv there. But POSIX, in their wisdom, didn't standardise clearenv yet, so on FreeBSD, one still needs to manipulate environ on their own. (If you use tcc on FreeBSD, this may leave you unsatisfied.) Joey Hess2010-03-28
* Allow wrappers to be built using tcc.Joey Hess2010-03-18
* C warning cleanupJoey Hess2010-03-18
* avoid -O default for CFLAGS, and documentJoey Hess2009-10-21
* Pick up user specified CFLAGS when compiling the wrapper.•••(cherry picked from commit 13e9383b48857daa206387f3486eb00e3b171a68) Giulio Eulisse2009-10-21
* Merge commit 'schmonz/master' into cvsJoey Hess2009-09-10
|\
| * Catch up to the new genwrapper hook.Amitai Schlair2009-09-10
| * Merge branch 'master' of git://github.com/joeyh/ikiwikiAmitai Schlair2009-09-10
| |\
* | \ Merge branch 'master' into cvsJoey Hess2009-09-10
|\ \ \ | |/ / |/| |
| * | clean up use of IkiWiki::Receive•••Loading and use of IkiWiki::Receive can all be pushed into the git plugin, rather than scattered around. I had at first wanted to make a receive plugin and move it there, but a plugin was not a good fit; you don't want users to have to manually load it, and making the git plugin load the receive plugin at the right times would need more, and ugly code. Joey Hess2009-09-10
| |/
| * Add genwrapper hook, that can be used to add code into the C wrapper.Joey Hess2009-09-10
* | Abstract out CVS's involvement in the wrapper:•••* In Wrapper.pm, add a new hook "wrapperargcheck" to examine argc/argv and return success or failure. In the failure case, the wrapper terminates. * In cvs.pm, implement the new hook to return failure if a directory is being cvs added. Amitai Schlair2009-09-09
* | Only examine argv if the VCS is cvs.Amitai Schlair2009-08-30
* | The string to match might not be "New directory" exactly, so match that•••substring instead. Amitai Schlair2009-08-30
* | Instead of passing the args through the wrapper so the CVS plugin•••can evaluate them, check them in the wrapper right off the bat. This doesn't prevent the deadlock in web commits that need to cvs add directories, but I'm committing so Joey can take a look if he wants. Amitai Schlair2009-08-23
* | Pass along wrapper args to ikiwiki, then handle the "cvs add dir"•••case with a getopt hook directly in my plugin. If the wrapper change is safe, we won't need a wrapper wrapper. Amitai Schlair2009-08-22
|/
* Create any missing directory necessary to put the wrapper file into. Closes: ...Joey Hess2009-02-09
* doubled semicolonJoey Hess2009-02-04
* IkiWiki::Wrapper: allow REDIRECT_STATUS and REDIRECT_URL through from environ...•••This is useful to act as an Apache 404 ErrorDocument. Simon McVittie2009-01-31
* Coding style change: Remove explcit vim folding markers.Joey Hess2008-12-17
* make unlockwiki drop the cgilock•••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. Joey Hess2008-11-11
* O_CREATE needs modeJoey Hess2008-11-11
* avoid multiple ikiwiki cgi processes piling up, eating all memory, and thrashing•••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. Joey Hess2008-11-11
* do no-op post_commit test in wrapper•••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. Joey Hess2008-10-26
* move untrusted committer test into the wrapper•••This saves around 1/4th second per trusted commit since ikiwiki doesn't need to start up. Joey Hess2008-10-26
* remember how to write C code•••been a while! Joey Hess2008-10-24
* export CALLER_UIDJoey Hess2008-10-24
* Pass HTTPS variable through the wrapper so that CGI->https can be used by plu...Joey Hess2008-10-13
* Avoid troublesome abs_path calls in wrapper setup•••As documented in the forum post. Joey Hess2008-07-21
* fix use ordering•••The recent setup revamp exposed some latent bugs in use/package ordering that caused some symbols to not the exported into the correct scope. Joey Hess2008-07-11
* whitespaceJoey Hess2008-07-11
* * Removed support for sending commit notification mails. Along with it went••• the svnrepo and notify settings, though both will be ignored if left in setup files. Joey Hess2008-01-29
* * 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.•••* Retry dropping uid and gid, possibly this will help with the "Resource temporarily unavailable" failures I've experienced under xen. Joey Hess2008-01-01
* * Let CC be used to control what compiler is used to build wrappers.•••* Use 'cc' instead of gcc as the default compiler. Joey Hess2007-11-25
* * Add wrappergroup config option, which can be used to cause wrappers••• 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. Joey Hess2007-11-14
* get confused. So it's best for ikiwiki to follow the compatability•••* 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. joey2007-07-09