[ZBX-10459] Cannot compile proxy on RHEL5 Created: 2016 Feb 28  Updated: 2017 May 30  Resolved: 2016 Mar 14

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 3.0.1
Fix Version/s: 3.0.2rc1, 3.2.0alpha1

Type: Incident report Priority: Major
Reporter: Kodai Terashima Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: compilation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Proxy cannot compile with configure options below. There's no problem Zabbix 3.0.0 on RHEL5 and 3.0.1 on RHEL6 with same compile options.

./configure --enable-proxy --with-libcurl --with-libxml2 --with-mysql
...
Configuration:

  Detected OS:           linux-gnu
  Install path:          /usr/local
  Compilation arch:      linux

  Compiler:              gcc
  Compiler flags:        -g -O2  -I/usr/include/libxml2

  Enable server:         no

  Enable proxy:          yes
  Proxy details:
    With database:         MySQL
    WEB Monitoring:        cURL
    SNMP:                  no
    IPMI:                  no
    SSH:                   no
    TLS:                   no
    ODBC:                  no
    Linker flags:          -rdynamic      -L/usr/lib64/mysql -L/usr/lib64            -L/usr/kerberos/lib64
    Libraries:             -lm -ldl -lrt  -lresolv    -lmysqlclient     -lxml2         -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz

  Enable agent:          no

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          no

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************
make
...
make[2]: Entering directory `/home/packager/rpmbuild/BUILD/zabbix-3.0.1/src/zabbix_server/vmware'
gcc -DHAVE_CONFIG_H -I. -I../../../include  -I/usr/include/mysql  -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv      -g -O2  -I/usr/include/libxml2         -MT vmware.o -MD -MP -MF .deps/vmware.Tpo -c -o vmware.o vmware.c
vmware.c: In function 'vmware_service_get_perf_counters':
vmware.c:1226: error: 'XML_PARSE_HUGE' undeclared (first use in this function)
vmware.c:1226: error: (Each undeclared identifier is reported only once
vmware.c:1226: error: for each function it appears in.)
vmware.c: In function 'wmware_vm_get_nic_devices':
vmware.c:1322: error: 'XML_PARSE_HUGE' undeclared (first use in this function)
vmware.c: In function 'wmware_vm_get_disk_devices':
vmware.c:1389: error: 'XML_PARSE_HUGE' undeclared (first use in this function)
vmware.c: In function 'vmware_service_parse_perf_data':
vmware.c:3045: error: 'XML_PARSE_HUGE' undeclared (first use in this function)
vmware.c: In function 'zbx_xml_read_value':
vmware.c:3792: error: 'XML_PARSE_HUGE' undeclared (first use in this function)
vmware.c: In function 'zbx_xml_read_values':
vmware.c:3894: error: 'XML_PARSE_HUGE' undeclared (first use in this function)
make[2]: *** [vmware.o] Error 1
make[2]: Leaving directory `/home/packager/rpmbuild/BUILD/zabbix-3.0.1/src/zabbix_server/vmware'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/packager/rpmbuild/BUILD/zabbix-3.0.1/src'
make: *** [all-recursive] Error 1


 Comments   
Comment by Oleksii Zagorskyi [ 2016 Feb 29 ]

Caused probably by ZBX-10366

Comment by Andris Zeila [ 2016 Mar 02 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-10459

Comment by Aleksandrs Saveljevs [ 2016 Mar 08 ]

(1) Are you sure #ifdef is the correct way to check for XML_PARSE_HUGE?

/* XML_PARSE_HUGE option was introduced in libxml together with xml parsing limits,      */
/* therefore having no XML_PARSE_HUGE option should not affect parsing of deep xml data. */
#ifdef XML_PARSE_HUGE
#	define ZBX_XML_PARSE_OPTS	XML_PARSE_HUGE
#else
#	define ZBX_XML_PARSE_OPTS	0
#endif

According to "libxml/parser.h" in libxml2 distribution, XML_PARSE_HUGE is part of an enum and there is no associated #define:

typedef enum {
    ...
    XML_PARSE_HUGE      = 1<<19,/* relax any hardcoded limit from the parser */
    ...
} xmlParserOption;

When fixing this, you might wish to replace "libxml" with "libxml2" in the comment.

wiper according to their relase page http://www.xmlsoft.org/news.html the limits were introduced in 2.9.0.
RESOLVED in r58904

asaveljevs However, according to libxml2 ChangeLog, XML_PARSE_HUGE was introduced in August 2008 and released in version 2.7.0. It did not generate a Makefile for Git's LIBXML2.7.0 tag on my system, but I have managed to compile version 2.7.2 from sources at ftp://xmlsoft.org/libxml2/ . Zabbix also compiles with XML_PARSE_HUGE with libxml2 2.7.2. REOPENED.

wiper RESOLVED in r58920

asaveljevs Hurray! CLOSED.

Comment by Andris Zeila [ 2016 Mar 14 ]

Released in:

  • pre-3.0.2rc1 r58985
  • pre-3.1.0 r58986
Comment by Kodai Terashima [ 2016 Apr 21 ]

Seems that the same problem happens in 2.2.12 and 2.4.8 as well

Generated at Thu Apr 25 04:08:32 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.