diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 17b60ee94..2682e13ae 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -126,6 +126,7 @@ sub genpage ($$) { #{{{ backlinks => $backlinks, more_backlinks => $more_backlinks, mtime => displaytime($pagemtime{$page}), + ctime => displaytime($pagectime{$page}), baseurl => baseurl($page), ); @@ -327,9 +328,15 @@ sub refresh () { #{{{ } $pagecase{lc $page}=$page; if ($config{getctime} && -e "$config{srcdir}/$file") { - $pagectime{$page}=rcs_getctime("$config{srcdir}/$file"); + eval { + my $time=rcs_getctime("$config{srcdir}/$file"); + $pagectime{$page}=$time; + }; + if ($@) { + print STDERR $@; + } } - elsif (! exists $pagectime{$page}) { + if (! exists $pagectime{$page}) { $pagectime{$page}=mtime(srcfile($file)); } } diff --git a/debian/README.Debian b/debian/README.Debian index 930131812..cf8bca94e 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -1,4 +1,4 @@ -It's a good idea, and in some cases a requirement, to rebuild your wiki +It's a good idea, and in some cases a requirement, to rebuild your wikis when upgrading to a new version of ikiwiki. If you have a lot of different wikis on a system, this can be a pain to do by hand, and it's a good idea to automate it anyway. @@ -9,5 +9,10 @@ will run ikiwiki-mass-rebuild if necessary when upgraded. The file as the user who owns the wiki. Edit this file and add any wikis you set up. +You can also allow users to maintain their own list of wikis to rebuild, +by listing their usernames in /etc/ikiwiki/wikilist without corresponding +setup files. ikiwiki will then read their lists of wikis from +.ikiwiki/wikilist in their home directories. + The examples directory contains the source to some example wiki setups. diff --git a/debian/changelog b/debian/changelog index 7a89ebf4b..420cef5ad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,18 @@ -ikiwiki (2.31) UNRELEASED; urgency=low +ikiwiki (2.40) UNRELEASED; urgency=low + [ Josh Triplett ] + * Add new preprocessor directive syntax¸ using a '!' prefix. Add a + prefix_directives option to the setup file to turn this syntax on; + currently defaults to false, for backward compatibility. Support + optional '!' prefix even with prefix_directives off, and use that in + the underlay to support either setting of prefix_directives. Add NEWS + entry with migration information. + + -- Josh Triplett Sat, 09 Feb 2008 23:01:19 -0800 + +ikiwiki (2.31) unstable; urgency=low + + [ Joey Hess ] * Revert preservation of input file modification times in output files, since this leads to too many problems with web caching, especially with inlined pages. Properly solving this would involve tracking every page @@ -36,16 +49,15 @@ ikiwiki (2.31) UNRELEASED; urgency=low * inline: Add new `allowrss` and `allowatom` config options. These can be used if you want a wiki that doesn't default to generating rss or atom feeds, but that does allow them to be turned on for specific blogs. + * Don't die if running with --getctime and rcs_getctime throws an error. + There are several cases (recentchanges files, aggregated files) + where some source files are not in revision control. + * Page templates can now use CTIME to show when the page was created. [ Josh Triplett ] - * Add new preprocessor directive syntax¸ using a '!' prefix. Add a - prefix_directives option to the setup file to turn this syntax on; - currently defaults to false, for backward compatibility. Support - optional '!' prefix even with prefix_directives off, and use that in - the underlay to support either setting of prefix_directives. Add NEWS - entry with migration information. + * README.Debian: Mention user wikilists. - -- Joey Hess Sat, 02 Feb 2008 23:36:31 -0500 + -- Joey Hess Sat, 09 Feb 2008 23:09:45 -0500 ikiwiki (2.30) unstable; urgency=low diff --git a/doc/bugs/img_plugin_causes_taint_failure.mdwn b/doc/bugs/img_plugin_causes_taint_failure.mdwn new file mode 100644 index 000000000..f8def19a0 --- /dev/null +++ b/doc/bugs/img_plugin_causes_taint_failure.mdwn @@ -0,0 +1,15 @@ +The img plugin causes a taint failure if one tries to link a scaled image, e.g. + + \[[img foo.png size=64x64]] + + .ikiwiki.setup: Insecure dependency in mkdir while running with -T switch at /usr/lib/perl5/vendor_perl/5.8.8/IkiWiki.pm line 360. + BEGIN failed--compilation aborted at (eval 5) line 109. + +If one omits the size argument it works. And if it worked once the taint failure will not happen again unless one rm -r's the destdir. + +Seen with ikiwiki 2.30 + +> And what version of perl? See [[Insecure_dependency_in_mkdir]] et al. +> Also, the debian build of ikiwiki has taint checking disabled to avoid +> this perl bug. Did you build your own? Set NOTAINT=1 when building.. +> --[[Joey]] diff --git a/doc/git.mdwn b/doc/git.mdwn index 90f030ab4..6cbc1e489 100644 --- a/doc/git.mdwn +++ b/doc/git.mdwn @@ -21,11 +21,14 @@ own [[patches|patch]]. Some of the branches included in the main repository include: * `gallery` contains the [[todo/Gallery]] plugin. It's not yet merged - die to license issues. + due to license issues. Also some bits need to be tweaked to make it + work with the current *master* branch again. * `html` is an unfinished attempt at making ikiwiki output HTML 4.01 instead of xhtml. -* `prefix-directives` changes the preprocessor directive syntax. It - is approximately one failing test case away from merging. + +* `prefix-directives` changes the preprocessor directive syntax. + Passes all test cases; pending merge. + * `wikiwyg` adds [[todo/wikiwyg]] support. It is unmerged pending some changes. * `pristine-tar` contains deltas that diff --git a/doc/news/version_2.31.mdwn b/doc/news/version_2.31.mdwn new file mode 100644 index 000000000..d81e443a2 --- /dev/null +++ b/doc/news/version_2.31.mdwn @@ -0,0 +1,45 @@ +ikiwiki 2.31 released with [[toggle text="these changes"]] +[[toggleable text=""" + * [ Joey Hess ] + * Revert preservation of input file modification times in output files, + since this leads to too many problems with web caching, especially with + inlined pages. Properly solving this would involve tracking every page + that contributes to a page's content and using the youngest of them all, + as well as special cases for things like the version plugin, and it's just + too complex to do. + * aggregate: Forking a child broke the one state that mattered: Forcing + the aggregating page to be rebuilt. Fix this. + * cgi hooks are now run before ikiwiki state is loaded. + * This allows locking the wiki before loading state, which avoids some + tricky locking code when saving a web edit. + * poll: This plugin turns out to have edited pages w/o doing any locking. + Oops. Convert it from a cgi to a sessioncgi hook, which will work + much better. + * recentchanges: Improve handling of links on the very static changes pages + by thunking to the CGI, which can redirect to the page, or allow it to be + created if it doesn't exist. + * recentchanges: Exipre all *.\_change pages, even if the directory + they're in has changed. + * aggregate: Lots of changes; aggregation can now run without locking the + wiki, and there is a separate aggregatelock to prevent multiple concurrent + aggregation runs. + * monotone changes by Brian May: + - On commits, replace "mtn sync" bidirectional with "mtn push" single + direction. No need to pull changes when doing a commit. mtn sync + is still called in rcs\_update. + - Support for viewing differences via patches using viewmtn. + * inline: When previewing, still call will\_render on rss/atom files, + just avoid actually writing the files. This is necessary because ikiwiki + saves state after a preview (in case it actually *did* write files), + and if will\_render isn't called its security checks will get upset + when the page is saved. Thanks to Edward Betts for his help tracking this + tricky bug down. + * inline: Add new `allowrss` and `allowatom` config options. These can be + used if you want a wiki that doesn't default to generating rss or atom + feeds, but that does allow them to be turned on for specific blogs. + * Don't die if running with --getctime and rcs\_getctime throws an error. + There are several cases (recentchanges files, aggregated files) + where some source files are not in revision control. + * Page templates can now use CTIME to show when the page was created. + * [ Josh Triplett ] + * README.Debian: Mention user wikilists."""]] \ No newline at end of file diff --git a/doc/todo/ctime_on_blog_post_pages_.mdwn b/doc/todo/ctime_on_blog_post_pages_.mdwn index 4fd099d9d..d75dcd932 100644 --- a/doc/todo/ctime_on_blog_post_pages_.mdwn +++ b/doc/todo/ctime_on_blog_post_pages_.mdwn @@ -3,3 +3,7 @@ The user has to look at the history link to find when a blog item was posted. It would be nice if blog entry post pages could include the ctime. -- [[Edward_Betts]] + +> I've committed a change that adds a CTIME variable to page.tmpl. I left +> it commented out in the default template, since it seems like a bit of +> clutter to me. Good enough? --[[Joey]] diff --git a/doc/todo/wikiwyg/discussion.mdwn b/doc/todo/wikiwyg/discussion.mdwn index 78da75c38..ef6f6cd59 100644 --- a/doc/todo/wikiwyg/discussion.mdwn +++ b/doc/todo/wikiwyg/discussion.mdwn @@ -155,3 +155,12 @@ merge it into ikiwiki. --[[Joey] [Revision 3840]: http://ikiwiki.info/cgi-bin/viewvc.cgi?view=rev&root=ikiwiki&revision=3840 + + +None of the links for the WYSIWYG editor work anymore. Does anyone have an up to date link? +Thanks, [[Greg]] + +> There's a branch in [[git]] for the wikiwyg stuff, which includes +> the latest version I sucked in from TaylorKillian's svn repository before +> it went offline. Disapponted that nothing seems to be moving here. +> --[[Joey]] diff --git a/doc/users/Edward_Betts.mdwn b/doc/users/Edward_Betts.mdwn index 8653c33c2..9b5435628 100644 --- a/doc/users/Edward_Betts.mdwn +++ b/doc/users/Edward_Betts.mdwn @@ -1,4 +1,4 @@ My watchlist: -[[inline pages="todo/allow_wiki_syntax_in_commit_messages" archive="yes" sort="mtime" atom="yes"]] +[[inline pages="todo/allow_wiki_syntax_in_commit_messages todo/shortcut_with_different_link_text" archive="yes" sort="mtime" atom="yes"]] diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 62810a687..5fc00d93a 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-02-03 16:05-0500\n" +"POT-Creation-Date: 2008-02-09 23:08-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -45,89 +45,89 @@ msgstr "" msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:384 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:242 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:95 -#: ../IkiWiki/Render.pm:175 +#: ../IkiWiki/Render.pm:176 msgid "discussion" msgstr "" -#: ../IkiWiki/CGI.pm:429 +#: ../IkiWiki/CGI.pm:431 #, perl-format msgid "creating %s" msgstr "" -#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 -#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:554 +#: ../IkiWiki/CGI.pm:449 ../IkiWiki/CGI.pm:467 ../IkiWiki/CGI.pm:477 +#: ../IkiWiki/CGI.pm:511 ../IkiWiki/CGI.pm:555 #, perl-format msgid "editing %s" msgstr "" -#: ../IkiWiki/CGI.pm:643 +#: ../IkiWiki/CGI.pm:644 msgid "You are banned." msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:100 +#: ../IkiWiki/Plugin/aggregate.pm:101 #, perl-format msgid "missing %s parameter" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:127 +#: ../IkiWiki/Plugin/aggregate.pm:128 msgid "new feed" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:141 +#: ../IkiWiki/Plugin/aggregate.pm:142 msgid "posts" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:143 +#: ../IkiWiki/Plugin/aggregate.pm:144 msgid "new" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:307 +#: ../IkiWiki/Plugin/aggregate.pm:309 #, perl-format msgid "expiring %s (%s days old)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:314 +#: ../IkiWiki/Plugin/aggregate.pm:316 #, perl-format msgid "expiring %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:343 +#: ../IkiWiki/Plugin/aggregate.pm:345 #, perl-format msgid "processed ok at %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:347 +#: ../IkiWiki/Plugin/aggregate.pm:349 #, perl-format msgid "checking feed %s ..." msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:352 +#: ../IkiWiki/Plugin/aggregate.pm:354 #, perl-format msgid "could not find feed at %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:367 +#: ../IkiWiki/Plugin/aggregate.pm:369 msgid "feed not found" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:378 +#: ../IkiWiki/Plugin/aggregate.pm:380 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:384 +#: ../IkiWiki/Plugin/aggregate.pm:386 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:390 +#: ../IkiWiki/Plugin/aggregate.pm:392 msgid "feed crashed XML::Feed!" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:464 +#: ../IkiWiki/Plugin/aggregate.pm:466 #, perl-format msgid "creating new page %s" msgstr "" @@ -200,29 +200,29 @@ msgstr "" msgid "failed to determine size of image %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:42 +#: ../IkiWiki/Plugin/inline.pm:44 msgid "Must specify url to wiki with --url when using --rss or --atom" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:135 +#: ../IkiWiki/Plugin/inline.pm:136 #, perl-format msgid "unknown sort type %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:200 +#: ../IkiWiki/Plugin/inline.pm:201 msgid "Add a new post titled:" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:216 +#: ../IkiWiki/Plugin/inline.pm:217 #, perl-format msgid "nonexistant template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:99 +#: ../IkiWiki/Plugin/inline.pm:250 ../IkiWiki/Render.pm:99 msgid "Discussion" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:463 +#: ../IkiWiki/Plugin/inline.pm:468 msgid "RPC::XML::Client not found, not pinging" msgstr "" @@ -512,47 +512,47 @@ msgstr "" msgid "getctime not implemented" msgstr "" -#: ../IkiWiki/Render.pm:273 ../IkiWiki/Render.pm:294 +#: ../IkiWiki/Render.pm:274 ../IkiWiki/Render.pm:295 #, perl-format msgid "skipping bad filename %s" msgstr "" -#: ../IkiWiki/Render.pm:343 +#: ../IkiWiki/Render.pm:350 #, perl-format msgid "removing old page %s" msgstr "" -#: ../IkiWiki/Render.pm:384 +#: ../IkiWiki/Render.pm:391 #, perl-format msgid "scanning %s" msgstr "" -#: ../IkiWiki/Render.pm:389 +#: ../IkiWiki/Render.pm:396 #, perl-format msgid "rendering %s" msgstr "" -#: ../IkiWiki/Render.pm:410 +#: ../IkiWiki/Render.pm:417 #, perl-format msgid "rendering %s, which links to %s" msgstr "" -#: ../IkiWiki/Render.pm:431 +#: ../IkiWiki/Render.pm:438 #, perl-format msgid "rendering %s, which depends on %s" msgstr "" -#: ../IkiWiki/Render.pm:470 +#: ../IkiWiki/Render.pm:477 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "" -#: ../IkiWiki/Render.pm:482 +#: ../IkiWiki/Render.pm:489 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "" -#: ../IkiWiki/Render.pm:508 +#: ../IkiWiki/Render.pm:515 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "" @@ -620,11 +620,11 @@ msgstr "" msgid "usage: --set var=value" msgstr "" -#: ../IkiWiki.pm:127 +#: ../IkiWiki.pm:129 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" -#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 +#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 msgid "Error" msgstr "" @@ -632,7 +632,7 @@ msgstr "" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:750 +#: ../IkiWiki.pm:752 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" diff --git a/templates/change.tmpl b/templates/change.tmpl index 184d8dc2d..e476a7439 100644 --- a/templates/change.tmpl +++ b/templates/change.tmpl @@ -2,7 +2,7 @@ [[!meta authorurl=""""""]] -[[!meta title="""update of 's """]] +[[!meta title="""change to on """]]