Depends on incompatible version of php-zeroc-ice (Call to undefined function Ice_intversion())

Bug #1010573 reported by Thue Janus Kristensen
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
mumble (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

On accessing http://thuejk.dk:12345/mumble-server/ shortly after installing the mumble-server-web package, this error was in the error log. Makes the package completely unusable for me.

Restarting apache had no effect. The Ice module seems to be enabled in /etc/php5/apache2/conf.d/IcePHP.ini .

The source code for the index file is at /usr/share/mumble-server-web/www/weblist.php : /usr/share/mumble-server-web/www/weblist.php

"
<html>
<head>
<title>Userlist</title>
</head>
<body>
<?php

#
# Murmur.php is generated by calling
# slice2php /path/to/Murmur.ice
# in this directory
#

if (Ice_intversion() >= 30400) {
[...]
"

Digging a bit, the problem seems to be that aptitude installed php-zeroc-ice version 3.4.2-4ubuntu1, which according to http://www.zeroc.com/forums/help-center/4798-php-fatal-error-call-undefined-function-ice_loadprofile.html has significant changes from version 3.3 . Note that that link is not complaining about the same function I mentioned above (Ice_intversion()), but mumble-server-web contains a call to ice_loadprofile() which is identical to the one in the link.

Revision history for this message
Thue Janus Kristensen (thuejk) wrote :

Hmm, I retract the above comment.

Doing a

    ln -s /usr/lib/php5/20090626+lfs/IcePHP.so /usr/lib/php5/20090626

Makes the "Call to undefined function Ice_intversion()" go away. But why is that manual linking neccesary?

After that I get an error that /usr/share/mumble-server-web/www/weblist.php cannot include Ice.php . But manually modifying the include path
    set_include_path(get_include_path() . PATH_SEPARATOR . "/usr/share/Ice-3.4.2/php/lib/");
Fixes that (of course that shouldn't be neccesary).

After fixing that, I get an error
    PHP Fatal error: require(): Failed opening required 'Murmur.php' (include_path='.:/usr/share/php:/usr/share/pear:/usr/share/Ice-3.4.2/php/lib/') in /usr/share/mumble-server-web/www/weblist.php on line 17
Which doesn't seem fixable. Doing a
    find /usr -iname murmur.php
doesn't return anything.

Revision history for this message
Thue Janus Kristensen (thuejk) wrote :

It seems that slice2php needs to be run on a whole bunch of .ice files, such as Murmur.ice , to generate files such as Murmur.php . The slice2php command doesn't work unless the Ice include path is fixed, so the Ice include path may be the root problem.

Revision history for this message
Thue Janus Kristensen (thuejk) wrote :

Reported to Debian here: http://bugs.debian.org/676816

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in mumble (Ubuntu):
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.