Control: found -1 3.20200202.3-1
Hi,
I've been bitten by this again, I'm afraid - I had cause to run setup
again, and chiark's backups broke once more.
Today, I ran:
ikiwiki --setup ~/.ikiwiki/ikiwiki.setup --rebuild --no-gettime
And, in, ~/wikiwc/.ikiwiki/transient/recentchanges/, there are
historical timestamps:
$ ls -l ~/wikiwc/.ikiwiki/transient/recentchanges/ | head -2
total 420
-rw-rw-r-- 1 matthewv matthewv 2521 Jun 16 17:31
change_013b16ac0a8dade24015a5c98871514b7c68f59c._change
I've attached my ikiwiki setup file.
The wiki itself is my household wiki, which contains a bunch of private
stuff, so I obviously can't send it to a public bug report.
If it's essential, I could presumably send it out of bound to you; but
it'd be difficult to turn it into a test case without involved use of
git filter-branch and other such tools (since e.g. sensitive things will
be in recentchanges and git history, even if the Markdown files were gone).
Regards,
Matthew
#!/usr/bin/perl
#
# Setup file for ikiwiki.
#
# Passing this to ikiwiki --setup will make ikiwiki generate
# wrappers and build the wiki.
#
# Remember to re-run ikiwiki --setup any time you edit this file.
use IkiWiki::Setup::Standard {
# name of the wiki
wikiname => 'Imperial Wiki',
# contact email for wiki
adminemail => 'matth...@chiark.greenend.org.uk',
# users who are wiki admins
adminuser => [],
# users who are banned from the wiki
banned_users => [],
# where the source of the wiki is located
srcdir => '/u2/matthewv/wikiwc/',
# where to build the wiki
destdir => '/u2/matthewv/public-html/wiki/',
# base url to the wiki
url => 'http://www.chiark.greenend.org.uk/~matthewv/wiki',
# url to the ikiwiki.cgi
cgiurl =>
'http://www.chiark.greenend.org.uk/ucgi/~matthewv/ikiwiki.cgi',
# do not adjust cgiurl if CGI is accessed via different URL
reverse_proxy => 0,
# filename of cgi wrapper to generate
cgi_wrapper => '/u2/matthewv/public-cgi/ikiwiki.cgi',
# mode for cgi_wrapper (can safely be made suid)
cgi_wrappermode => '06755',
# number of seconds to delay CGI requests when overloaded
cgi_overload_delay => '',
# message to display when overloaded (may contain html)
cgi_overload_message => '',
# enable optimization of only refreshing committed changes?
only_committed_changes => 0,
# rcs backend to use
rcs => 'git',
# plugins to add to the default configuration
add_plugins => [qw{httpauth recentchangesdiff smiley table theme
attachment}],
# plugins to disable
disable_plugins => [qw{rst}],
# additional directory to search for template files
templatedir => '/usr/share/ikiwiki/templates',
# base wiki source location
underlaydir => '/usr/share/ikiwiki/basewiki',
# display verbose messages?
verbose => 1,
# log to syslog?
#syslog => 1,
# create output files named page/index.html?
usedirs => 1,
# use '!'-prefixed preprocessor directives?
prefix_directives => 1,
# use page/index.mdwn source files
indexpages => 0,
# enable Discussion pages?
discussion => 1,
# name of Discussion pages
discussionpage => 'Discussion',
# use elements new in HTML5 like <section>?
html5 => 0,
# only send cookies over SSL connections?
sslcookie => 0,
# extension to use for new pages
default_pageext => 'mdwn',
# extension to use for html files
htmlext => 'html',
# strftime format string to display date
timeformat => '%c',
# UTF-8 locale to use
#locale => 'en_US.UTF-8',
# put user pages below specified page
userdir => '',
# how many backlinks to show before hiding excess (0 to show all)
numbacklinks => 10,
# attempt to hardlink source files? (optimisation for large files)
hardlink => 0,
# force ikiwiki to use a particular umask (keywords public, group or
private, or a number)
#umask => 'public',
# group for wrappers to run in
#wrappergroup => 'ikiwiki',
# extra library and plugin directories
libdirs => [],
# extra library and plugin directory (searched after libdirs)
libdir => '',
# environment variables
ENV => {},
# time zone name
timezone => ':/etc/localtime',
# regexp of normally excluded files to include
#include => '^\\.htaccess$',
# regexp of files that should be skipped
#exclude => '^(*\\.private|Makefile)$',
# specifies the characters that are allowed in source filenames
wiki_file_chars => '-[:alnum:]+/.:_',
# allow symlinks in the path leading to the srcdir (potentially
insecure)
allow_symlinks_before_srcdir => 0,
# cookie control
cookiejar => {
file => '/u2/matthewv/.ikiwiki/cookies'
},
# set custom user agent string for outbound HTTP requests e.g. when
fetching aggregated RSS feeds
useragent => 'ikiwiki/3.20200202.3-1',
# theme has a responsive layout? (mobile-optimized)
responsive_layout => 1,
# try harder to produce deterministic output
deterministic => 0,
# equivalent to --no-gettime on command line
gettime => 0,
######################################################################
# core plugins
# (editpage, git, htmlscrubber, inline, link, meta, parentlinks,
# templatebody)
######################################################################
# git plugin
# git hook to generate
git_wrapper => '/u2/matthewv/bare-repos/wiki/hooks/post-update',
# shell command for git_wrapper to run, in the background
#git_wrapper_background_command => 'git push github',
# mode for git_wrapper (can safely be made suid)
#git_wrappermode => '06755',
# git pre-receive hook to generate
#git_test_receive_wrapper => '/git/wiki.git/hooks/pre-receive',
# unix users whose commits should be checked by the pre-receive hook
#untrusted_committers => [],
# gitweb url to show file history ([[file]] substituted)
#historyurl =>
'http://git.example.com/gitweb.cgi?p=wiki.git;a=history;f=[[file]];hb=HEAD',
# gitweb url to show a diff ([[file]], [[sha1_to]], [[sha1_from]],
[[sha1_commit]], and [[sha1_parent]] substituted)
#diffurl =>
'http://git.example.com/gitweb.cgi?p=wiki.git;a=blobdiff;f=[[file]];h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_commit]];hpb=[[sha1_parent]]',
# where to pull and push changes (set to empty string to disable)
gitorigin_branch => 'origin',
# branch that the wiki is stored in
gitmaster_branch => 'master',
# htmlscrubber plugin
# PageSpec specifying pages not to scrub
#htmlscrubber_skip => '!*/Discussion',
# inline plugin
# enable rss feeds by default?
#rss => 0,
# enable atom feeds by default?
#atom => 0,
# allow rss feeds to be used?
#allowrss => 0,
# allow atom feeds to be used?
#allowatom => 0,
# urls to ping (using XML-RPC) on feed update
pingurl => [],
######################################################################
# auth plugins
# (anonok, blogspam, emailauth, httpauth, lockedit,
# moderatedcomments, opendiscussion, openid, passwordauth,
# signinedit)
######################################################################
# anonok plugin
# PageSpec to limit which pages anonymous users can edit
#anonok_pagespec => '*/discussion',
# blogspam plugin
# PageSpec of pages to check for spam
#blogspam_pagespec => 'postcomment(*)',
# options to send to blogspam server
#blogspam_options => 'blacklist=1.2.3.4,blacklist=8.7.6.5,max-links=10',
# blogspam server JSON url
#blogspam_server => '',
# emailauth plugin
# email address to send emailauth mails as (default: adminemail)
#emailauth_sender => '',
# httpauth plugin
# url to redirect to when authentication is needed
#cgiauthurl => 'http://example.com/wiki/auth/ikiwiki.cgi',
# PageSpec of pages where only httpauth will be used for authentication
#httpauth_pagespec => '!*/Discussion',
# lockedit plugin
# PageSpec controlling which pages are locked
#locked_pages => '!*/Discussion',
# moderatedcomments plugin
# PageSpec matching users or comment locations to moderate
#moderate_pagespec => '*',
# openid plugin
# url pattern of openid realm (default is cgiurl)
openid_realm =>
'http://www.chiark.greenend.org.uk/ucgi/~matthewv/ikiwiki.cgi',
# url to ikiwiki cgi to use for openid authentication (default is
cgiurl)
openid_cgiurl =>
'http://www.chiark.greenend.org.uk/ucgi/~matthewv/ikiwiki.cgi',
# passwordauth plugin
# a password that must be entered when signing up for an account
#account_creation_password => 's3cr1t',
# cost of generating a password using Authen::Passphrase::BlowfishCrypt
#password_cost => 8,
######################################################################
# format plugins
# (creole, highlight, hnb, html, mdwn, otl, rawhtml, rst,
# textile, txt)
######################################################################
# highlight plugin
# types of source files to syntax highlight
#tohighlight => '.c .h .cpp .pl .py Makefile:make',
# location of highlight's filetypes.conf
#filetypes_conf => '/etc/highlight/filetypes.conf',
# location of highlight's langDefs directory
#langdefdir => '/usr/share/highlight/langDefs',
# mdwn plugin
# enable multimarkdown features?
#multimarkdown => 0,
# disable use of markdown discount?
#nodiscount => 0,
# enable footnotes in Markdown (where supported)?
mdwn_footnotes => 1,
# interpret line like 'A. First item' as ordered list when using
Discount?
mdwn_alpha_lists => 0,
######################################################################
# special-purpose plugins
# (osm, underlay)
######################################################################
# osm plugin
# the default zoom when you click on the map link
#osm_default_zoom => 15,
# the icon shown on links and on the main map
#osm_default_icon => 'ikiwiki/images/osm.png',
# the alt tag of links, defaults to empty
#osm_alt => '',
# the output format for waypoints, can be KML, GeoJSON or CSV (one or
many, comma-separated)
#osm_format => 'KML',
# the icon attached to a tag, displayed on the map for tagged pages
#osm_tag_default_icon => 'icon.png',
# Url for the OpenLayers.js file
#osm_openlayers_url => 'http://www.openlayers.org/api/OpenLayers.js',
# Layers to use in the map. Can be either the 'OSM' string or a type
option for Google maps (GoogleNormal, GoogleSatellite, GoogleHybrid or
GooglePhysical). It can also be an arbitrary URL in a syntax acceptable for
OpenLayers.Layer.OSM.url parameter.
#osm_layers => {
# OSM => 'GoogleSatellite'
#},
# Google maps API key, Google layer not used if missing, see
https://code.google.com/apis/console/ to get an API key
#osm_google_apikey => '',
# underlay plugin
# extra underlay directories to add
#add_underlays => [qw{/u2/matthewv/wiki.underlay}],
######################################################################
# web plugins
# (404, attachment, comments, editdiff, edittemplate, google,
# goto, mirrorlist, remove, rename, repolist, search, theme,
# userlist, websetup, wmd)
######################################################################
# attachment plugin
# enhanced PageSpec specifying what attachments are allowed
allowed_attachments => 'mimetype(image/*) or mimetype(application/pdf)',
# virus checker program (reads STDIN, returns nonzero if virus found)
#virus_checker => 'clamdscan -',
# comments plugin
# PageSpec of pages where comments are allowed
#comments_pagespec => 'blog/* and !*/Discussion',
# PageSpec of pages where posting new comments is not allowed
#comments_closed_pagespec => 'blog/controversial or blog/flamewar',
# Base name for comments, e.g. "comment_" for pages like
"sandbox/comment_12"
#comments_pagename => '',
# Interpret directives in comments?
#comments_allowdirectives => 0,
# Allow anonymous commenters to set an author name?
#comments_allowauthor => 0,
# commit comments to the VCS
#comments_commit => 1,
# Restrict formats for comments to (no restriction if empty)
#comments_allowformats => 'mdwn txt',
# mirrorlist plugin
# list of mirrors
#mirrorlist => {},
# generate links that point to the mirrors' ikiwiki CGI
#mirrorlist_use_cgi => 1,
# repolist plugin
# URIs of repositories containing the wiki's source
#repositories => [qw{svn://svn.example.org/wiki/trunk}],
# search plugin
# path to the omega cgi program
#omega_cgi => '/usr/lib/cgi-bin/omega/omega',
# use google site search rather than internal xapian index?
#google_search => 1,
# theme plugin
# name of theme to enable
theme => 'blueview',
# websetup plugin
# list of plugins that cannot be enabled/disabled via the web interface
#websetup_force_plugins => [],
# list of additional setup field keys to treat as unsafe
#websetup_unsafe => [],
# show unsafe settings, read-only, in web interface?
#websetup_show_unsafe => 1,
######################################################################
# widget plugins
# (calendar, color, conditional, cutpaste, date, format, fortune,
# graphviz, haiku, headinganchors, img, linkmap, listdirectives,
# map, more, orphans, pagecount, pagestats, poll, polygen,
# postsparkline, progress, shortcut, sparkline, table, template,
# teximg, toc, toggle, version)
######################################################################
# calendar plugin
# base of the archives hierarchy
#archivebase => 'archives',
# PageSpec of pages to include in the archives, if option
`calendar_autocreate` is true.
#archive_pagespec => 'page(posts/*) and !*/Discussion',
# autocreate new calendar pages?
#calendar_autocreate => 1,
# if set, when building calendar pages, also build pages of year and
month when no pages were published (building empty calendars).
#calendar_fill_gaps => 1,
# img plugin
# Image formats to process (jpeg, png, gif, svg, pdf or 'everything' to
accept all)
#img_allowed_formats => '',
# listdirectives plugin
# directory in srcdir that contains directive descriptions
#directive_description_dir => 'ikiwiki/directive',
# teximg plugin
# Should teximg use dvipng to render, or dvips and convert?
#teximg_dvipng => '',
# LaTeX prefix for teximg plugin
#teximg_prefix => '\\documentclass{article}
#\\usepackage[utf8]{inputenc}
#\\usepackage{amsmath}
#\\usepackage{amsfonts}
#\\usepackage{amssymb}
#\\pagestyle{empty}
#\\begin{document}
#',
# LaTeX postfix for teximg plugin
#teximg_postfix => '\\end{document}',
######################################################################
# other plugins
# (aggregate, autoindex, brokenlinks, camelcase, ddate, embed,
# favicon, filecheck, flattr, goodstuff, htmlbalance,
# localstyle, loginselector, notifyemail, pagetemplate, pingee,
# pinger, prettydate, recentchanges, recentchangesdiff,
# relativedate, rsync, sidebar, smiley, sortnaturally, tag,
# testpagespec, trail, transient)
######################################################################
# aggregate plugin
# enable aggregation to internal pages?
#aggregateinternal => 1,
# allow aggregation to be triggered via the web?
#aggregate_webtrigger => 0,
# autoindex plugin
# commit autocreated index pages
#autoindex_commit => 1,
# camelcase plugin
# list of words to not turn into links
#camelcase_ignore => [],
# flattr plugin
# userid or user name to use by default for Flattr buttons
#flattr_userid => 'joeyh',
# pinger plugin
# how many seconds to try pinging before timing out
#pinger_timeout => 15,
# prettydate plugin
# format to use to display date
#prettydateformat => '%X, %B %o, %Y',
# recentchanges plugin
# name of the recentchanges page
recentchangespage => 'recentchanges',
# number of changes to track
recentchangesnum => 100,
# rsync plugin
# command to run to sync updated pages
#rsync_command => 'rsync -qa --delete . user@host:/path/to/docroot/',
# sidebar plugin
# show sidebar page on all pages?
#global_sidebars => 1,
# tag plugin
# parent page tags are located under
#tagbase => 'tag',
# autocreate new tag pages?
#tag_autocreate => 1,
# commit autocreated tag pages
#tag_autocreate_commit => 1,
}