Bug 32210 - DOM support is not enabled
Summary: DOM support is not enabled
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: php5-libs (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 32209
  Show dependency tree
 
Reported: 2016-06-22 13:41 MSK by Andrey Cherepanov
Modified: 2016-06-27 17:37 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Cherepanov 2016-06-22 13:41:27 MSK
+++ Данная ошибка создана размножением ошибки 32209 +++

Created an attachment (id=6756)
патч для пересборки php с встроенным модулем dom

При вызове XMLReader::expand() в коде PHP выводится предупреждение "DOM support is not enabled", функция возвращает null.

При этом пакет php5-dom установлен, phpinfo() показывает, что расширение DOM присутствует, разрешено:

$ rpm -q php5-libs
php5-libs-5.5.24-alt0.M70P.1

$ rpm -q php5-dom
php5-dom-5.5.24.20150415-alt1

$ php -r 'phpinfo();' | grep -A6 DOM
DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.9.2
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled


$ php -r '$xml = new XMLReader(); $xml->XML("<root/>"); $xml->read(); $obj = $xml->expand();'
PHP Warning:  DOM support is not enabled in Command line code on line 1



Проявляется на p7, но судя по всему, это актуально для всех веток.

Проблема сидит в коде php - проверка доступности DOM в модуле xmlreader выполняется во время компиляции:
PHP_METHOD(xmlreader, expand)
{
#ifdef HAVE_DOM
....
#else
    php_error(E_WARNING, "DOM support is not enabled");
    return;
#endif
}

При этом у нас модуль xmlreader собран вместе с php5-libs, а dom вынесен в отдельный модуль.

Проблему решает, например, пересборка php5 с --enable-dom (патч на спек в аттаче).
Другой вариант - сделать как центосе. Там xml модули, включая xmlreader и dom, собраны отдельными модулями, но собираются все вместе в один пакет php-xml
Comment 1 Anton Farygin 2016-06-22 13:46:40 MSK
Эта ошибка только в p7, на Sisyphus в этом плане всё хорошо.
Comment 2 Andrey Cherepanov 2016-06-22 13:50:37 MSK
Что будем делать в p7?
Comment 3 Anton Farygin 2016-06-22 13:52:16 MSK
Воспроизвёл, сейчас посмотрю что можно сделать.
Comment 4 Anton Farygin 2016-06-22 13:59:26 MSK
попробую вынести в отдельный пакет по аналогии с centos, мне это решение нравится больше.
Только вот в centos это всё собирается из одного исходника, а у нас из многих десятков, что привносит свои "минусы".
Ждите исправления в Sisyphus.
Comment 5 Anton Farygin 2016-06-27 17:37:16 MSK
исправлено в 5.6.23.20160621-alt1 (добавлен подпакет php5-xmlreader)