#1144041 type error after upgrade ($conf['syntax'] missing)

Package:
dokuwiki
Source:
dokuwiki
Submitter:
Andrew Worsley
Date:
2026-10-03 15:39:02 UTC
Severity:
normal
Tags:
#1144041#5
Date:
2026-08-10 03:37:50 UTC
From:
To:
Dear Maintainer,

 Just accessing any web page results in this error:
...
TypeError: dokuwiki\Parsing\ModeRegistry::__construct(): Argument #1 ($syntax)
must be of type string, null given, called in
/usr/share/dokuwiki/inc/parserutils.php on line 239
----

  The whole wiki is not accessible (I believe)

A quick google resulted in a suggestion :

"...This error happens because the $conf['syntax'] configuration parameter is
missing or empty in your DokuWiki setup. This frequently occurs after upgrading
to the "Mort" (Summer 2026) release, which introduces a new core configuration
setting for alternative markup engines. If the updater or container layout
fails to supply a default string value, the engine receives null and crashes.
..."

It suggested add missing config:

  $conf['syntax'] = 'dw';

to local.php

which did fix it for me

It also referred me to a few pages such as :
https://forum.dokuwiki.org/d/26097-mort-docker-missing-confsyntax-parameter-
triggers-a-typeerror

  Hope that helps.

Andrew

#1144041#12
Date:
2026-08-10 04:15:22 UTC
From:
To:
retitle 1144041 type error after upgrade ($conf['syntax'] missing)
severity 1144041 important
tag 1144041 + moreinfo
thanks

Hi,

thank you for your report.

I can't reproduce this after an upgrade, because When trying to
reproduce this error after an upgrade, because there is:

   $conf['syntax']      = 'dw';              //syntax flavor: 'dw',
'md', 'dw+md', 'md+dw'

in /etc/dokuwiki/dokuwiki.php.

Can you check if you're missing this?

Regards,
Daniel

#1144041#21
Date:
2026-08-10 04:15:22 UTC
From:
To:
retitle 1144041 type error after upgrade ($conf['syntax'] missing)
severity 1144041 important
tag 1144041 + moreinfo
thanks

Hi,

thank you for your report.

I can't reproduce this after an upgrade, because When trying to
reproduce this error after an upgrade, because there is:

   $conf['syntax']      = 'dw';              //syntax flavor: 'dw',
'md', 'dw+md', 'md+dw'

in /etc/dokuwiki/dokuwiki.php.

Can you check if you're missing this?

Regards,
Daniel

#1144041#26
Date:
2026-08-10 04:22:45 UTC
From:
To:
Yep I'm missing the syntax conf variable - e.g. a grep for syntax only
matches on a comment:

% grep syntax /etc/dokuwiki/dokuwiki.php
 * This is a piece of PHP code so PHP syntax applies!

#1144041#31
Date:
2026-08-10 04:22:45 UTC
From:
To:
Yep I'm missing the syntax conf variable - e.g. a grep for syntax only
matches on a comment:

% grep syntax /etc/dokuwiki/dokuwiki.php
 * This is a piece of PHP code so PHP syntax applies!

#1144041#34
Date:
2026-08-10 04:22:45 UTC
From:
To:
Yep I'm missing the syntax conf variable - e.g. a grep for syntax only
matches on a comment:

% grep syntax /etc/dokuwiki/dokuwiki.php
 * This is a piece of PHP code so PHP syntax applies!

#1144041#39
Date:
2026-08-10 04:37:03 UTC
From:
To:
great, so we know the problem. :)

now, how let's find out how this file got not updated and what we can do
about it to improve/fix that.

/etc/dokuwiki/dokuwiki.php is a "conffile" (that is a specially defined
status within dpkg), that means, on upgrade if local modifications are
detected, dpkg will ask the user to a) discard the modifications, b)
keep the modifications, or c) show the differences.

I presume you selected 'keep  modifications', which means the file
wasn't updated and instead, you should see a
/etc/dokuwiki/dokuwiki.php.dpkg-new or something like that.

Normally, we could just mark dokuwiki.php not being a conffile (all
files in /etc automatically have the status of a conffile, unless dpkg
is told otherwise; any other file outside of /etc is not a conffile by
default). However, that would mean, that any local modifications are
automatically discarded on upgrade, i.e. users loose their settings.

Of course, it's a bad idea to change dokuwiki.php in the first place,
all changes should go to local.php. However, users sometimes don't do that.

Now, I suggest to do the following:

   * keep dokuwiki.php a conffile for now

   * add a check in postinst so that after the package is installed
     (i.e. after the user has chosen to keep the old dokuwiki.php)
     we show a debconf warning message if the syntax option is missing
     and that that needs to be added, and advise the user to use
     local.php for modifications instead of dokuwiki.php.

     and/or we could simply add the syntax option if it's missing.

what do you think?

Regards,
Daniel

#1144041#44
Date:
2026-08-10 04:55:53 UTC
From:
To:
Yep I selected to keep local modifications as I worried about what local
mods would be lost...

I also do have a  /etc/dokuwiki/dokuwiki.php.dpkg-dist
and it does have the syntax entry:

  $conf['syntax']      = 'dw';              //syntax flavor: 'dw', 'md',
'dw+md', 'md+dw'

I am not the expert here - but I would prefer that it checks if it is
missing and adds it in with a warning that without a syntax entry it will
cause failure.

Thanks

Andrew

#1144041#49
Date:
2026-08-10 05:23:20 UTC
From:
To:
I concur, a classic user error.

I think that would be a policy violation and also a bad example.

How strong is the wording pointing people to local.php inside
dokuwiki.php? Maybe that could be improved.

Yes.

Please don't. That's going to explode in the face of all package
maintainers wo will spend weeks of their lifetime writing manual checks
for each and every incompatible change in packages during upgrades.

A package cannot ever touch a dpkg conffile in maintainer scripts.

Greetings
Marc

#1144041#60
Date:
2026-09-27 11:06:30 UTC
From:
To:
Hi Marc,

as I said later on, there's no point in making it a non-conffile,
however, jftr being policy compliant is not a problem here. the usual
way to do this is to move it to /usr/share and symlink it to /etc/.

it's discouraged, but most howtos on the internet don't mention
local.php and tell users to modify dokuwiki.php, so, this is a long shot
anyway.

I beg to differ. first, this is the first time in almost two decades
where dokuwiki needs a certain option to be in dokuwiki.php and fails
otherwise. second, a simple *single* check for that is fine (and I would
drop it right after forky anyway).

third, I think this is a nice service to dokuwiki users, who often are
not so admin-proficiant and, I think, will appreciate the helpful pointer.

what has *one* check in *one* package (= dokuwiki) got to do with any
other package or maintainer?

again, not applicable here, however jftr, there are multiple
policy-compliant ways to do that, e.g. ucf just to name one.

Regards,
Daniel

#1144041#65
Date:
2026-10-03 15:37:14 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
dokuwiki, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1144041@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Daniel Baumann <daniel@debian.org> (supplier of updated dokuwiki package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sat, 03 Oct 2026 17:17:28 +0200
Source: dokuwiki
Architecture: source
Version: 2026-07-14.c+dfsg-3
Distribution: sid
Urgency: medium
Maintainer: Daniel Baumann <daniel@debian.org>
Changed-By: Daniel Baumann <daniel@debian.org>
Closes: 1144041
Changes:
 dokuwiki (2026-07-14.c+dfsg-3) sid; urgency=medium
 .
   * Adding news file to document mandatory 'syntax' option in dokuwiki.php
     for version 2026-07-14 and newer (Closes: #1144041).
Checksums-Sha1:
 33ae32cc3687e39833b308701b6e62f008ff2edd 1386 dokuwiki_2026-07-14.c+dfsg-3.dsc
 452e2740bbcc366ab5a12446a80c2443597a3352 97568 dokuwiki_2026-07-14.c+dfsg-3.debian.tar.xz
 6704018f1b8f6b623bc794fe99493b2487bf7966 5985 dokuwiki_2026-07-14.c+dfsg-3_amd64.buildinfo
Checksums-Sha256:
 d9b44f3fe174cf272d4130ee11b85d0e763478dd9300e0f27c4f5058b5d7481f 1386 dokuwiki_2026-07-14.c+dfsg-3.dsc
 2e161e6ff6ee5030cbf0b3c2ebab378a9958ccc625a01fff882f4917620d6ee0 97568 dokuwiki_2026-07-14.c+dfsg-3.debian.tar.xz
 8a546e1ac9407bb1b7c1d8f17d2f306ee12859fa7029995395a36bfd315a82a4 5985 dokuwiki_2026-07-14.c+dfsg-3_amd64.buildinfo
Files:
 cb2b3e2182cb5660f3f1b5eefe749495 1386 web optional dokuwiki_2026-07-14.c+dfsg-3.dsc
 ae3421305ab4ea7900f091ae4e094a32 97568 web optional dokuwiki_2026-07-14.c+dfsg-3.debian.tar.xz
 ba9826a76806b27b4ec88eb5cf86508c 5985 web optional dokuwiki_2026-07-14.c+dfsg-3_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQQmmGg4gLaoSj0ERgL7tPDoCoAiLwUCasEdRwAKCRD7tPDoCoAi
LwXLAP0Qk7W/syMq9tghqVOA8VwtyPYISxwG+V9hnRS2ZVFB8wD+KiOMWmDaue1O
jgv1x5kVzIRtt/bDMN7xAK/aTwFULAk=
=xQyx
-----END PGP SIGNATURE-----