Problem with captcha
beherit opened this issue · 10 comments
After upgrade from ejabberd 15.11 to ejabberd 16.01 I have problem with start:
2016-01-26 13:18:24.536 [error] <0.611.0>@ejabberd_captcha:do_create_image:461 Failed to process output from "/usr/lib/ejabberd/priv/bin/captcha.sh 130278". Maybe ImageMagick's Convert program is not installed.
2016-01-26 13:18:24.536 [critical] <0.611.0>@ejabberd_captcha:check_captcha_setup:614 Captcha is enabled in the option captcha_cmd, but it can't generate images.
2016-01-26 13:18:24.537 [error] <0.611.0> CRASH REPORT Process ejabberd_captcha with 0 neighbours exited with reason: bad return value: {error,captcha_cmd_enabled_but_fails} in gen_server:init_it/6 line 334
2016-01-26 13:18:24.537 [error] <0.584.0> Supervisor ejabberd_sup had child ejabberd_captcha started with ejabberd_captcha:start_link() at undefined exit with reason bad return value: {error,captcha_cmd_enabled_but_fails} in context start_error
2016-01-26 13:18:24.540 [error] <0.37.0> CRASH REPORT Process <0.37.0> with 0 neighbours exited with reason: no such process or port in call to gen_server:call(ejabberd_sup, {start_child,{ejabberd_sm,{ejabberd_sm,start_link,[]},transient,1000,worker,[ejabberd_sm]}}, infinity) in application_master:init/4 line 133
What I see - location '/usr/lib/ejabberd/' is empty after upgrade.
I cannot reproduce this. After installing the package on jessie, I get:
root@host:~# ls /usr/lib/ejabberd/priv/bin/captcha.sh
/usr/lib/ejabberd/priv/bin/captcha.sh
/usr/lib/ejabberd
is a symlink to /usr/lib/ejabberd-16.01
(which is now the default location for installation, unfortunately).
I understand but for me (on 2 machines) symlinks wasn't created.
I try to install ejabberd 16.01 many times and always symlinks isn't created...
Does it show up with dpkg -L?
root@host:~# dpkg -L ejabberd | grep /usr/lib/ejabberd$
/usr/lib/ejabberd
What does dpkg -l ejabberd
(that's the lower case letter "L") say?
I've got:
root@vps:~# dpkg -L ejabberd | grep /usr/lib/ejabberd$
/usr/lib/ejabberd
But this is not symlink.
dpkg -L
does not show symlinks - it's not the same as e.g. ls -l
.
root@host:~# ls -l /usr/lib/ | grep ejabberd
lrwxrwxrwx 1 root root 14 Jan 23 23:37 ejabberd -> ejabberd-16.01
drwxr-xr-x 5 root root 4096 Jan 31 11:35 ejabberd-16.01
As I say - Your ejabberd package doesen't create symlink for me :)
root@vps54276:/# ls -l /usr/lib/ | grep ejabberd
drwxr-xr-x 2 root root 4096 Jan 31 12:55 ejabberd
drwxr-xr-x 5 root root 4096 Jan 31 08:26 ejabberd-16.01
Symlink is created ONLY when befero install I deleted /usr/lib/ejabberd BUT it's not possible when I update ejabberd from other version...
yes, that appears to be an issue strictly with upgrading. This is also an issue with the ejabberd-mod-* packages :/
ejabberd-16.01-2 (building right now) will use /usr/share/ejabberd/captcha.sh
as version-independent location for the captcha script. Please use that in your config-file!