[dokuwiki] Re: Plugins with standalone scripts

  • From: Tanguy Ortolo <tanguy+dokuwiki@xxxxxxxxx>
  • To: dokuwiki@xxxxxxxxxxxxx
  • Date: Thu, 6 May 2010 16:59:09 +0200

Le jeudi 06 mai 2010, Andreas Gohr a écrit :
> > Well, then this will be up to the users, and explained on the
> > documentation of the Debian package, with something like: « some plugins
> > will break, to fix them do that and that ».
> 
> Sounds like a bug in the Debian Package to me ;-)

Yes, but it is the choice between a bug and another one, see below.

> Everything below data/lib/ is possibly to be accessed from the web.
> That's the distinction between inc/ and lib/. See
> http://www.dokuwiki.org/devel:dirlayout

Okay, thank you. However, there is a difference between being called
externally (which only a direct path from the web docroot), being used
by a DokuWiki component (which requires a direct path from the DokuWiki
installation directory or a configuration variable), and, on my
problematic case, the following mix: being called externally and using a
DokuWiki component (which require a reverse path to the DokuWiki
installation directory).

> IMHO, the Debian package should not separate the data/lib directory.

Yes, but… This is what used to be done: /usr/share/dokuwiki/lib/.
And, as plugins are an interesting feature of DW, most users were then
installing plugins to /usr/share/dokuwiki/lib/plugins, which is a
location that is not to be touched by a user but controlled by the
package manager.

That was a violation of the Filesystem Hierarchy Standard, which was not
perceived as safe by the users, as it was possible for the package
manager to overwrite user modifications…

> BTW, regarding symlink compatibility I opened an issue for the captcha
> plugin: http://github.com/splitbrain/dokuwiki-plugin-captcha/issues/issue/1

Thank you. I think realpath() here is just useless, as what it does (path
resolution) would be done the same way by the open() syscall from
require() anyway. But fullpath(), that behaves like a shell's internal
path resolver, would be perfect. Now, in my installation layout, the
problem for the plugin would be to find inc/init.php, where fullpath()
is defined.

This looks like an endless problem, unless all scripts that depend on
DokuWiki functions are called through a wrapper...

-- 
Tanguy Ortolo

Other related posts: