Package: dicod
Version: 2.11-2+b3
Severity: important
Affects: dico-module-mediawiki
Tags: patch
Usertags: pca.it-communication
Hi there,
after the `load python` bug[1], I tried to configure some WikiMedia
databases using the `dicod`-commented M4 macros, without success:
```
root@harlock:~# /usr/bin/dicod --stderr -f
dicod: Error: /etc/dicod.conf:136.11-11: stray character `
dicod: Error: /etc/dicod.conf:136.14-14: stray character '
dicod: Error: /etc/dicod.conf:137.3-3: stray character `
dicod: Error: /etc/dicod.conf:137.20-20: stray character '
root@harlock:~#
```
[1] <https://bugs.debian.org/1028487>
NB, plain non-macro configurations as the ones in the
`dico-module-mediawiki`'s README.Debian allowed `dicod` to start.
In fact, after having read the `dico` upstream manual[2] I discovered
that for whatever reason (I am not an M4 neither a `dico` expert) the
wrong quoting characters ` and ' where used instead of [ and ][3],
albeit according to the M4 manual[4] ` and ' are indeed the M4 default
quoting characters.
[2] <https://www.gnu.org.ua/software/dico/manual/dico.html#Preprocessor>
[3] <https://stackoverflow.com/questions/66738638/how-should-i-escape-a-comma-inside-the-arguments-to-esyscmd#70503189>
[4] <https://www.gnu.org/software/m4/manual/m4.html#Quoted-strings>
Thus, replacing `' with [] in the `wikipedia` and `wiktionary` M4
macro definitions was the first step to get something working, albeit
to have everything OK I could not be able to keep the `wiktionary` and
`wiktionary` macro names, attached the full patch.
However, two final notes:
1. the snippets in `dico-module-mediawiki`'s README.Debian are IMHO
useless if `dicod.conf` contains commented M4 macros.
2. I would go for a even more generic MediaWiki M4 macro and not 2
different ones, as shown in the included `/etc/dicod.conf`.
Thx, bye,
Gismo / Luca
-- System Information:
Debian Release: 12.2
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'oldstable-updates'), (500, 'oldstable-security'), (500, 'oldoldstable'), (500, 'stable'), (500, 'oldstable'), (100, 'bookworm-fasttrack'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 6.5.0-0.deb12.1-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages dicod depends on:
ii adduser 3.134
ii init-system-helpers 1.65.2
ii libc6 2.36-9+deb12u3
ii libcrypt1 1:4.4.33-2
ii libdico2 2.11-2+b3
ii libgsasl18 2.2.0-1
ii libldap-2.5-0 2.5.13+dfsg-5
ii libltdl7 2.4.7-5
ii libpam0g 1.5.2-6+deb12u1
ii libpcre3 2:8.39-15
ii m4 1.4.19-3
ii sysvinit-utils [lsb-base] 3.06-4
ii zlib1g 1:1.2.13.dfsg-1
dicod recommends no packages.
Versions of packages dicod suggests:
pn dico-doc <none>
pn openbsd-inetd | inetutils-inetd <none>
-- Configuration Files:
/etc/dicod.conf changed:
capability (mime,xversion);
timing yes;
pidfile /var/run/dicod/dicod.pid;
listen localhost;
module-load-path ("/usr/lib/dico");
// Enable handling of databases in dict.org format:
load-module dictorg {
command "dictorg sort trim-ws dbdir=/usr/share/dictd";
}
// dicodconfig automatically generates the database sections for dictorg
// formatted dictionaries, the following line makes use of this facility:
// Uncomment the following to enable handling of databases in Emacs outline
// format:
/* load-module outline {
command "outline";
}
*/
// Uncomment the following to enable Guile interface:
/* load-module guile {
command "guile";
}
*/
// Uncomment the following to enable Python modules (e.g. MediaWiki):
// <https://bugs.debia.org/1028487>
load-module python {
command "python load-path=/usr/share/dico/python";
}
// Emacs outline database example:
/* database {
name "devdict";
handler "outline /usr/share/dico/outline/devils.out";
}
*/
// WikiMedia via `debpkg:dico-module-mediawiki`
// <https://www.gnu.org.ua/software/dico/manual/dico.html#Preprocessor>
m4_define([defdbwikimedia], [
database {
name "$1";
handler "python load-path=/usr/share/dico/python init-script=mediawiki $2";
mime-headers <<- EOT
Content-Type: text/x-wiki
Content-Transfer-Encoding: quoted-printable
X-Wiki-Language: $1
EOT;
m4_ifelse([$2],,,[
description "$2";])
m4_ifelse([$3],,,[
info <<- EOT
$3
EOT;])
}
])
defdbwikimedia(wikipedia-en,
[en.wikipedia.org],
[English language Wikipedia, a collaborative project to produce a
free-content multilingual encyclopedia.])
defdbwikimedia(wikipedia-fr, [fr.wikipedia.org])
defdbwikimedia(wikipedia-it, [it.wikipedia.org])
defdbwikimedia(wiktionary-en,
[en.wiktionary.org],
[English language Wiktionary, a collaborative project to produce a
free-content multilingual dictionary.])
defdbwikimedia(wiktionary-fr, [fr.wiktionary.org])
defdbwikimedia(wiktionary-it, [it.wiktionary.org])
alias d DEFINE;
alias da d "*";
alias df d "!";
alias m MATCH;
alias mas m "*";
alias mfs m "!";
alias ma mas ".";
alias mf mfs ".";
alias s STATUS;
alias h HELP;
alias q QUIT;
help-text <<- EOT
+
The following commands are abbreviations that Gray likes to use when
debugging the daemon. You may or may not find them useful. However
it is, do not write your client software to relay on them. They may
disappear or change any time Gray pleases, without notice.
d database word -- DEFINE database word
da word -- DEFINE * word
df word -- DEFINE ! word
ma word -- MATCH * . word
mf word -- MATCH ! . word
mas strategy word -- MATCH * strategy word
mfs strategy word -- MATCH ! strategy word
m database strategy word -- MATCH database strategy word
s -- STATUS
h -- HELP
q -- QUIT
EOT;
user dicod;
max-children 18;
server-info <<EOT
This is a Dico server.
EOT;
/* load-module stratall {
command "stratall";
}
strategy all {
deny-all yes;
}
*/
/* load-module substr {
command "substr";
}
strategy substr {
deny-length-lt 3;
}
*/
-- no debconf information
Acknowledgement sent
to "Sergey Poznyakoff" <[email protected]>:
Extra info received and forwarded to list. Copy sent to Ritesh Raj Sarraf <[email protected]>.
(Sun, 07 Jul 2024 08:09:02 GMT) (full text, mbox, link).
Subject: Re: dicod: wrong quotes in MediaWiki snippets in `/etc/dicod.conf`
Date: Sun, 07 Jul 2024 09:47:02 +0200
That's an error in /etc/dicod.conf shipped with debian package. The
dicod manual says clearly that:
The default pp-setup file changes quote characters to â[ and â],
and renames all m4 built-in macros so they all start with the prefix
m4_.
See https://www.gnu.org.ua/software/dico/manual/html_node/Preprocessor.html
Regards,
Sergey
Reply sent
to Marc Dequènes (Duck) <[email protected]>:
You have taken responsibility.
(Wed, 16 Apr 2025 22:09:01 GMT) (full text, mbox, link).
Notification sent
to Luca Capello <[email protected]>:
Bug acknowledged by developer.
(Wed, 16 Apr 2025 22:09:01 GMT) (full text, mbox, link).
Source: dico
Source-Version: 2.12-2
Done: Marc Dequènes (Duck) <[email protected]>
We believe that the bug you reported is fixed in the latest version of
dico, 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 [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Marc Dequènes (Duck) <[email protected]> (supplier of updated dico 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 [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Thu, 17 Apr 2025 06:48:22 +0900
Source: dico
Architecture: source
Version: 2.12-2
Distribution: unstable
Urgency: medium
Maintainer: Ritesh Raj Sarraf <[email protected]>
Changed-By: Marc Dequènes (Duck) <[email protected]>
Closes: 1056351
Changes:
dico (2.12-2) unstable; urgency=medium
.
* Fix example config for the mediawiki module (Closes: #1056351),
thanks Luca Capello for the snippet.
Checksums-Sha1:
674bdb86375ae638e7891578b047e16fd3b67636 3022 dico_2.12-2.dsc
4a7446eaede34215e40ccbf9ee8bad517082fb30 31148 dico_2.12-2.debian.tar.xz
11b00552b2eae1a1dabec80b7b1969c71450a55d 13373 dico_2.12-2_amd64.buildinfo
Checksums-Sha256:
3c88d4989a06c67a7148b5c38227d7a4d1ca8f9abe25b2d95f40cf908e861865 3022 dico_2.12-2.dsc
820b7a228d0c6dd6fa410353e207c20c92a1bc62ecbd5144fbd40ee251a88ecb 31148 dico_2.12-2.debian.tar.xz
01fa30161634fbfba612dd522d4c6ec2a9a854f25553aded76e1ffeb4cb12618 13373 dico_2.12-2_amd64.buildinfo
Files:
44c5cbe3e66cc2b54a15e1b8bf953d3d 3022 text optional dico_2.12-2.dsc
d8927eb68a0d823e930fa83db24dbf0e 31148 text optional dico_2.12-2.debian.tar.xz
f8cb6aab6c43527005fad743aba32023 13373 text optional dico_2.12-2_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEcpcqg+UmRT3yiF+BVen596wcRD8FAmgAJlkACgkQVen596wc
RD//YRAAmjGwLx35B5Hm2OYNWqGOYsZWxAQILm6Fkuxo8zaZzh06P6WBh7Gma6Nx
aeVOIcr9/khoBINFtVQ9fJa8M91YAhQp5v6jPbn8Ys/xwekL9IZ+XMWUKqGdDS5k
ae4DGC5PTZkfq9OSfTiOvC5IKhgsIKPeWgqpR+zT41etQ4KR5XulXK+Rj8P5ZTic
gkivJ23+6GNN+p2l3JCzJWTAjoivKVXUS0IA3x3UQmvJTD6RcCHNGsdORxuSPEE3
RZ0kq7K6DIQtF4rvrtZSDlaiYlHCnc6Kq3P11d0OXGtSk9ZuUnOJfL8salG2ZkYO
wXO0oUCw4oBbVZBzMS7SsrpCdW3ioupxY2LbuMNVLWNJ0QL6bP2h5BqkIxOPnERj
DG7NYT88BScPDHWphadxIXADfJttRDJtk9pnqnrPKjDa+eq4FxjZEfc2U3PvPucN
v2AWcCl+K2xjbSVIeEstaJcmWSgfSOZcP3gyGMU6NZoXbH561o1kfSMXec9jxMwi
urBwmL/gh7N/stjfcSwnOZl907yb0Na78BB6VsjDd8ubZS/MVu/PetO45JF4V0+0
Vuqa/1L8FF6SVXY2oYv5FuMHwd4JjtGld+rayL7uZC08w/SlE70zSxodZgCu4QlF
wXQLqG9+wZHgsmYAaq1scJ3Uj5gqdFLCP2pZr2qWD35FdB7KWFA=
=Lfp7
-----END PGP SIGNATURE-----
Debbugs is free software and licensed under the terms of the GNU General
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.