| Commit message (Expand) | Author | Age |
* | 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 Schlair | 2013-01-27 |
* | add cgi_overload_message | Joey Hess | 2012-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 Hess | 2012-10-09 |
* | Split CFLAGS into words when building wrapper. Closes: #682237 | Joey Hess | 2012-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 Hess | 2011-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 Hess | 2011-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 Dowland | 2011-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 Dowland | 2011-04-20 |
* | Export three cgi env vars needed for CGI->url to work. | Joey Hess | 2011-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 Hess | 2010-09-26 |
* | move wrapper building loop into Wrapper.pm | Joey Hess | 2010-07-24 |
* | git: Added git_wrapper_background_command option. Can be used to eg, make th... | Joey Hess | 2010-07-01 |
* | note that tcc workaround is for bug fixed in tcc now | Joey Hess | 2010-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 Hess | 2010-03-28 |
* | Allow wrappers to be built using tcc. | Joey Hess | 2010-03-18 |
* | C warning cleanup | Joey Hess | 2010-03-18 |
* | avoid -O default for CFLAGS, and document | Joey Hess | 2009-10-21 |
* | Pick up user specified CFLAGS when compiling the wrapper.•••(cherry picked from commit 13e9383b48857daa206387f3486eb00e3b171a68)
| Giulio Eulisse | 2009-10-21 |
* | Merge commit 'schmonz/master' into cvs | Joey Hess | 2009-09-10 |
|\ |
|
| * | Catch up to the new genwrapper hook. | Amitai Schlair | 2009-09-10 |
| * | Merge branch 'master' of git://github.com/joeyh/ikiwiki | Amitai Schlair | 2009-09-10 |
| |\ |
|
* | \ | Merge branch 'master' into cvs | Joey Hess | 2009-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 Hess | 2009-09-10 |
| |/ |
|
| * | Add genwrapper hook, that can be used to add code into the C wrapper. | Joey Hess | 2009-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 Schlair | 2009-09-09 |
* | | Only examine argv if the VCS is cvs. | Amitai Schlair | 2009-08-30 |
* | | The string to match might not be "New directory" exactly, so match that•••substring instead.
| Amitai Schlair | 2009-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 Schlair | 2009-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 Schlair | 2009-08-22 |
|/ |
|
* | Create any missing directory necessary to put the wrapper file into. Closes: ... | Joey Hess | 2009-02-09 |
* | doubled semicolon | Joey Hess | 2009-02-04 |
* | IkiWiki::Wrapper: allow REDIRECT_STATUS and REDIRECT_URL through from environ...•••This is useful to act as an Apache 404 ErrorDocument.
| Simon McVittie | 2009-01-31 |
* | Coding style change: Remove explcit vim folding markers. | Joey Hess | 2008-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 Hess | 2008-11-11 |
* | O_CREATE needs mode | Joey Hess | 2008-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 Hess | 2008-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 Hess | 2008-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 Hess | 2008-10-26 |
* | remember how to write C code•••been a while!
| Joey Hess | 2008-10-24 |
* | export CALLER_UID | Joey Hess | 2008-10-24 |
* | Pass HTTPS variable through the wrapper so that CGI->https can be used by plu... | Joey Hess | 2008-10-13 |
* | Avoid troublesome abs_path calls in wrapper setup•••As documented in the forum post.
| Joey Hess | 2008-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 Hess | 2008-07-11 |
* | whitespace | Joey Hess | 2008-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 Hess | 2008-01-29 |
* | * Add a prereq on Data::Dumper 2.11 or better, needed to dump q// objects. | Joey Hess | 2008-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 Hess | 2008-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 Hess | 2007-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 Hess | 2007-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.
| joey | 2007-07-09 |