Search Engine: Elastic

Article ID: 133281, created on Oct 11, 2018, last review on Oct 25, 2018

  • Applies to:
  • Business Automation 7.4

Symptoms

  1. C++ Payment plugin cannot be compliled on RHEL 7, waf configure gives error:

    Checking for library time_tool           : yes
    Checking for TimeTool header             : /root/EcommercePlugins/MYTEST/wscript:77: error: not found
    

    from config.log the following can be found:

    ['/usr/bin/g++', '-m64', '-fPIC', '-Wall', '-g', '-O0', '-Wextra', '-Wno-unused-parameter', '-Wnon-virtual-dtor', '-pthread', '-DBOOST_ALL_DYN_LINK', '-DBOOST_TEST_DYN_LINK', '-Idefault', '-I../../../../../../usr/local/platform/include', '-I../../../../../../usr/local/stellart/include', '-I../../../../../../usr/include/libxml2', '-I../../../../../../usr/local/bm/include/TimeTool', '-I../../../../../../usr/include', '-I/usr/include', '-I/usr/local/platform/include', '-I/usr/local/stellart/include', '-I/usr/include/libxml2', '-I/usr/local/bm/include/TimeTool', '../timetooltest.cpp', '-c', '-o', 'default/timetooltest_1.o']
    command returned 'Traceback (most recent call last):\n File "/usr/local/platform/share/wafadmin/Tools/config_c.py", line 379, in run_c_code\n bld.compile()\n File "/usr/local/platform/share/wafadmin/Build.py", line 171, in compile\n raise BuildError(self,self.task_manager.tasks_done)\nBuildError: Build failed: -> task failed (err #1): \n\t
    {task: cxx timetooltest.cpp -> timetooltest_1.o} 
    
  2. On running waf build --rpm the errors like below can seen:

    RPM build errors:
    Installed (but unpackaged) file(s) found:
    /usr/local/bm/share/java/com/odin/oa/billing/api/enums/NEWTEST.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/Auth.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/Capture.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/EPluginConfGet.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/EPluginConfReset.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/IsConfigured.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/NewTestConfAdd.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/NewTestConfGet.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/NewTestConfGetForUpdate.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/NewTestConfMoveToArc.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/NewTestConfUpdate.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/Refund.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/Sell.java
    /usr/local/bm/share/java/com/odin/oa/billing/api/methods/newtest/Void.java
    [2/3] LISA post-generation task manager -> processing 1 CXX tasks
    

Cause

  1. The issue is caused by #PBA-86216 "Unable to rebuild custom payment C++ plugin"
  2. The issue is caused by #PBA-86334 "Impossible to build rpm of payment plugin using C++ SDK due to missing java files from plugin.spec"

Resolution

Please contact your Technical Account Manager or Pooled Technical Associates team (pta@cloudblue.com) to trace the status of the software-related issues

To workaround the issue with waf configure command, please, follow the steps below:

  1. Add C++11 support in TimeTool. Open file /usr/local/bm/share/waftools/TimeTool.py on host where plugin is being recompiled. Find the following lines:

    e.LIB_TIMETOOL = ['time_tool']
    e.LIBPATH_TIMETOOL = e.LIBPATH_PBASDK
    e.CPPPATH_TIMETOOL = [os.path.join(e.CPPPATH_PBASDK[0], 'TimeTool')]
    
  2. Add line e.CXXFLAGS += ['-std=c++11'] so as result lines should look like:

    e.LIB_TIMETOOL = ['time_tool']
    e.LIBPATH_TIMETOOL = e.LIBPATH_PBASDK
    e.CPPPATH_TIMETOOL = [os.path.join(e.CPPPATH_PBASDK[0], 'TimeTool')]
    e.CXXFLAGS += ['-std=c++11'] ----------------------->added line
    
  3. Remove LockHint from BM.lsa file. Open file /usr/local/bm/share/EcommerceSDK/BM/BM.lsa for editing and find the following lines:

    embed "ATTRIBUTE.lsa"
    embed "CEPREPORT.lsa"
    embed "GDPR.lsa"
    embed "lockHints/LOCKHINT.lsa" ------------------------------->should be removed
    
  4. Remove line embed "lockHints/LOCKHINT.lsa".As a result lines should look like:

    embed "ATTRIBUTE.lsa"
    embed "CEPREPORT.lsa"
    embed "GDPR.lsa
    
  5. Find line LockHint access granted all; in the same file (/usr/local/bm/share/EcommerceSDK/BM/BM.lsa) and remove it.

  6. Save changes and try to run waf configure command ones more.

For the issue with waf build --rpm command, please add install_java_dir= None to wscript file as it described in the KB article.

198398b282069eaf2d94a6af87dcb3ff caea8340e2d186a540518d08602aa065 e12cea1d47a3125d335d68e6d4e15e07 67bf0c33402940a92c4c607f18ded5c9 b2c3b33425dfc50c7d41a2efaa7f84f3

Email subscription for changes to this article
Save as PDF