Commit Graph

42 Commits (e17f925cf40a1032fbee6fbe5df711af1645da39)

Author SHA1 Message Date
Joey Hess badc6c229f Create any missing directory necessary to put the wrapper file into. Closes: #514384 2009-02-09 15:13:12 -05:00
Joey Hess 9711181a3f doubled semicolon 2009-02-04 13:12:05 -05:00
Simon McVittie 3e290ce7ee IkiWiki::Wrapper: allow REDIRECT_STATUS and REDIRECT_URL through from environment
This is useful to act as an Apache 404 ErrorDocument.
2009-01-31 18:06:44 +00:00
Joey Hess bb93fccf06 Coding style change: Remove explcit vim folding markers. 2008-12-17 15:22:16 -05:00
Joey Hess ecd4f0ee55 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.
2008-11-11 20:48:02 -05:00
Joey Hess eef8b966b3 O_CREATE needs mode 2008-11-11 15:53:55 -05:00
Joey Hess 9a48669f1e 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.
2008-11-11 15:40:04 -05:00
Joey Hess d3d3999410 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.
2008-10-26 15:13:04 -04:00
Joey Hess 7ddea03684 move untrusted committer test into the wrapper
This saves around 1/4th second per trusted commit since ikiwiki
doesn't need to start up.
2008-10-26 14:03:18 -04:00
Joey Hess 4a7ac5c251 remember how to write C code
been a while!
2008-10-24 15:49:55 -04:00
Joey Hess 761dee41b1 export CALLER_UID 2008-10-24 15:46:29 -04:00
Joey Hess 3b27af4a29 Pass HTTPS variable through the wrapper so that CGI->https can be used by plugins. Closes: #502047 2008-10-13 12:32:16 -04:00
Joey Hess e630e7507e Avoid troublesome abs_path calls in wrapper setup
As documented in the forum post.
2008-07-21 18:26:14 -04:00
Joey Hess 4e1d7d8ff2 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.
2008-07-11 06:09:34 -04:00
Joey Hess 598a8ce1f7 whitespace 2008-07-11 06:09:34 -04:00
Joey Hess d7fdd04b5a * 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.
2008-01-29 00:36:58 -05:00
Joey Hess e35eb5a418 * Add a prereq on Data::Dumper 2.11 or better, needed to dump q// objects. 2008-01-07 18:12:12 -05:00
Joey Hess 2269cfda30 * 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.
2008-01-01 18:48:34 -05:00
Joey Hess f2e5709a33 * Let CC be used to control what compiler is used to build wrappers.
* Use 'cc' instead of gcc as the default compiler.
2007-11-25 15:50:31 -05:00
Joey Hess cb80809aec * 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.
2007-11-14 09:27:11 -05:00
joey e0da57358c 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.
2007-07-09 00:39:55 +00:00
joey aadb214220 * Fix wrapper generator and untaint code's handling of strings contining
newlines.
2007-06-03 16:24:22 +00:00
joey 49d63e7a55 fix format 2007-01-14 04:35:10 +00:00
joey 605e91c595 remove \n from gettexed string, and unfuzzy 2007-01-11 23:31:29 +00:00
joey 8daaa11baa added some comments for translators 2007-01-04 12:00:23 +00:00
joey 912521ef07 * Initial work on internationalization of the program code. po/ikiwiki.pot
is available for translation.
* Export gettext() from IkiWiki module.
2006-12-29 04:38:40 +00:00
joey 67b513e8c4 * Patch from Alec Berryman adding a http_auth config item that allows
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-10-02 22:56:09 +00:00
joey 22ddd81dd2 * Numerous tla fixes from Clint. 2006-09-16 04:09:06 +00:00
joey c2a3e1b127 man page says I need this 2006-09-04 03:50:27 +00:00
joey ea95624e2d * Drop real uid/gid in the suid wrapper, thus allowing commits to remote
subversion repos and fixing some other issues.
2006-09-04 03:38:02 +00:00
joey 5466a1daf9 * The page name and parent links has switched from using a <h1> to a styled
<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-26 01:10:58 +00:00
joey ccbf965e6b fix a bug that doubled the search box 2006-05-04 04:45:30 +00:00
joey af9566ff1a rather a lot of changes to make hyperestraier search be a plugin, allowing
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-03 21:50:39 +00:00
joey 12422e9890 * Patch from Thomas Schwinge to switch from --svn to --rcs=svn, etc,
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 18:44:39 +00:00
joey 3b0fce93e4 * Split off an IkiWiki.pm out of ikiwiki and have all the other modules use
it, this will allow for adding a unit test suite.
2006-05-02 06:53:33 +00:00
joey b7f64d884c subscription nearly done 2006-04-25 00:22:41 +00:00
joey 13e3bf8671 commit changes for email subscriptions 2006-04-24 23:09:26 +00:00
joey 958468b088 fix broken example config file and detect this breakage 2006-04-20 13:34:11 +00:00
joey 9092356173 added --getctime 2006-03-26 02:30:44 +00:00
joey bb0193aff3 benchmarking suggests that meoization doesn't help even when doing a
--rebuild, so remove it
2006-03-23 07:42:24 +00:00
joey b645dc5a41 Getopt::Long is a huge, heavy perl module. So why use it?
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-23 07:37:16 +00:00
joey 6c8cf5dd57 Major code reoganisation, splitting up the single big file. The two goals
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.
2006-03-23 06:51:15 +00:00