Symptoms

Plugin cannot be compliled on RHEL 7, waf configure gives error:

Checking for library plugin              : yes
Checking for plugin header               : /root/DomainPlugins/PLUGINNAME/wscript:68: error: not found

from cofigure.log:

[2/2] ESC[33mcxx_link: .build/.conf_check_0/testbuild/default/plugintest_1.o -> .build/.conf_check_0/testbuild/default/testprog
ESC[0m/usr/bin/ld: default/plugintest_1.o: undefined reference to symbol '_ZN5rdbms5CPBufINS_8Buffer_tIxxEEE6value_ERKx'
/usr/bin/ld: note: '_ZN5rdbms5CPBufINS_8Buffer_tIxxEEE6value_ERKx' is defined in DSO /usr/local/stellart/lib64/libMW.so so try adding it to the linker command line
/usr/local/stellart/lib64/libMW.so: could not read symbols: Invalid operation

Cause

An issue is caused by the bug with id #PBA-76853 ("Cannot build Billing custom domain plug-in on RHEL7").

Resolution

Apply the changes to the files curl.py and plugin.py (/root/filename is a backup of the initial file):

[root@sdk]# diff -U2 /usr/local/bm/share/waftools/curl.py /root/curl.py
--- /usr/local/bm/share/waftools/curl.py        2017-02-01 09:59:44.255059304 +0200
+++ /root/curl.py       2017-02-01 09:57:43.578059313 +0200
@@ -2,5 +2,5 @@
 import sys
 import Configure
-import platform
+

def is_valid_version(conf, version):
@@ -16,9 +16,5 @@
         libnames += ['libcurl%s' % debug_suffix, 'libcurl%s_imp' % debug_suffix]
     else:
-        centos_ver = int(platform.linux_distribution()[1].split('.')[0])
-        libnames = ['curl']
-        if centos_ver <= 6:
-            libnames += ['curl721']
-       libnames += ['curl721', 'curl']
+        libnames += ['curl721', 'curl']

    flibname = None

[root@sdk ZACR]# diff -U2 /usr/local/bm/share/waftools/plugin.py /root/plugin.py
--- /usr/local/bm/share/waftools/plugin.py      2017-02-01 10:02:02.548059294 +0200
+++ /root/plugin.py     2017-02-01 10:00:36.300059301 +0200
@@ -31,5 +31,5 @@
                                }
                        ''',
-            uselib=e.USELIB_STELLART_COMM + e.USELIB_STELLART_MW + ['PLUGIN'],
+            uselib=e.USELIB_STELLART_COMM + ['PLUGIN'],
             env=conf.env.copy(),
             execute=1,

Internal content