redhawksdr - Building REDHAWK CF from Source on Fedora24 -


i attempting build redhawk cf source on fedora24 machine. i've hit few barriers, , hoping folks can provide guidance on following 2 issues:

1) cloned redhawksdr/redhawk repository, , attempting build cf in redhawk.git/redhawk/core/src. f24 ships gcc6, , based on listed supported platforms (rhel / centos 6-series), i'm guessing bit ahead of upstream testing against. @ time of clone, core @ cfea23b tagged v2.0.1.

in order build, i've had make 4 changes. latter 2 of them believe gcc6-required changes (i.e., gnu-c++14), think top 2 required regardless of c++ standard in use. said, these lines last touched in feb 2016 - hence concern. bet these have been caught if actual errors, leads me believe i'm doing wrong.

my changeset below:

diff --git a/src/control/framework/nodebooter.cpp b/src/control/framework/nodebooter.cpp index d79c291..dbd97ad 100644 --- a/src/control/framework/nodebooter.cpp +++ b/src/control/framework/nodebooter.cpp @@ -141,7 +141,7 @@ void loadprfexecparams (const std::string& prffile, execparams& execparams)          prf.load(prfstream);      } catch (const ossie::parser_error& ex) {          std::string parser_error_line = ossie::retrieveparsererrorlinenumber(ex.what()); -        log_error(nodebooter, "failed parse prf file " << prfstream<< ". " << parser_error_line << "the xml parser returned following error: " << ex.what()); +        log_error(nodebooter, "failed parse prf file " << prffile<< ". " << parser_error_line << "the xml parser returned following error: " << ex.what());          exit(exit_failure);      }      prfstream.close(); diff --git a/src/control/sdr/dommgr/applicationfactory_impl.cpp b/src/control/sdr/dommgr/applicationfactory_impl.cpp index d370519..92699e0 100644 --- a/src/control/sdr/dommgr/applicationfactory_impl.cpp +++ b/src/control/sdr/dommgr/applicationfactory_impl.cpp @@ -194,7 +194,7 @@ void applicationfactory_impl::validatespd(cf::filemanager_ptr filemgr,                                            const bool require_prf,                                             const bool require_scd) {    softpkg pkg; -  validatespd(filemgr, pkg, false, false ); +  validatespd(filemgr, pkg, sfw_profile, require_prf, require_scd);  }   void applicationfactory_impl::validatespd(cf::filemanager_ptr filemgr,  diff --git a/src/control/sdr/dommgr/applicationsupport.cpp b/src/control/sdr/dommgr/applicationsupport.cpp index 1daa7ce..fbb5ac8 100644 --- a/src/control/sdr/dommgr/applicationsupport.cpp +++ b/src/control/sdr/dommgr/applicationsupport.cpp @@ -853,7 +853,7 @@ const bool  componentinfo::isscacompliant()   bool componentinfo::isassignedtodevice() const  { -    return assigneddevice; +  return static_cast<bool>(assigneddevice);  }   bool componentinfo::checkstruct(cf::properties &props) diff --git a/src/testing/sdr/dev/devices/cpptestdevice/cpp/cpptestdevice.h b/src/testing/sdr/dev/devices/cpptestdevice/cpp/cpptestdevice.h index 8e1c396..af71c53 100644 --- a/src/testing/sdr/dev/devices/cpptestdevice/cpp/cpptestdevice.h +++ b/src/testing/sdr/dev/devices/cpptestdevice/cpp/cpptestdevice.h @@ -28,7 +28,7 @@ class cpptestdevice_i : public cpptestdevice_base  {      enable_logging      public: -       static const float max_load = 4.0; +       static constexpr float max_load = 4.0;          cpptestdevice_i(char *devmgr_ior, char *id, char *lbl, char *sftwrprfl);          cpptestdevice_i(char *devmgr_ior, char *id, char *lbl, char *sftwrprfl, char *compdev); 

2) patch, able build cf. unfortunately, running make test fails following:

cd testing; ./runtests.py searching files in tests/ prefix test_*.py  creating test domain  bhilburn22299  r u n n n g  t e s t s sdrroot:  /home/bhilburn/src/redhawk.git/redhawk/core/src/testing/sdr  loading module tests/test_00_pythonframework.py loading loading module tests/test_00_pythonutils.py loading loading module tests/test_00_validatetestdomain.py loading loading module tests/test_01_devicemanager.py loading traceback (most recent call last):   file "./runtests.py", line 231, in <module>     suite = testcollector(files, testmethodprefix=options.prefix, prompt=options.prompt)   file "./runtests.py", line 112, in __init__     self.loadtests()   file "./runtests.py", line 129, in loadtests     self.addtest(loader.loadtestsfromtestcase(candidate))   file "./runtests.py", line 104, in loadtestsfromtestcase     return self.suiteclass(map(testcaseclass, testcasenames))   file "/home/bhilburn/src/redhawk.git/redhawk/core/src/testing/_unittesthelpers/scatest.py", line 328, in __init__     self._root = self._ns._narrow(cosnaming.namingcontext)   file "/usr/lib/python2.7/site-packages/omniorb/corba.py", line 585, in _narrow     return self._obj.narrow(repoid, 1) omniorb.corba.transient: corba.transient(omniorb.transient_connectfailed, corba.completed_no) makefile:1023: recipe target 'test' failed make: *** [test] error 1 

based on installation instructions, bet omniorb not configured correctly. i'm having trouble figuring out i'm missing, though. have made change /etc/omniorb.cfg described in installation instructions, when try manually invoke cleanomni see this:

sh: /etc/init.d/omninames: no such file or directory 

my guess when cf installed through rpms, additional configuration steps done aren't described in installation instructions. there docs break these out more detail?

i had patch framework in same spots suggested , took same approach you. had configure following:

cxxflags='-g -o2 -fpermissive' ./configure --disable-log4cxx

as did not have log4cxx , dnf search did not find it.

as make test call, you'll need have omninames running execute believe. should able sudo systemctl start omninames.service if have omniorb-servers installed. running in docker image started directly with:

/usr/bin/omninames -start -always -logdir /var/log/omniorb/ -errlog /var/log/omniorb/error.log

since believe need work systemctl playing nice in docker. after unit tests should run. although performed make install , sourced profile.d scripts in $ossiehome/etc/profile.d. of course, not have omnievents installed mine riddled with:

error:domainmanager - service unvailable, unable create event channel: idm_channel

regarding cleanomni script, script system dependent , believe works on centos6. should, stop omni services, remove "logs" (which act more persistence), restart them. depending on how omninames started / compiled logging directory may different per system. clean hand or have bash script stop/clean/start services.

after long wait unit tests did finish following results:

ran 498 tests in 1587.850s failed (failures=11, errors=35)

this not assessment though; of tests depend on omnievents, depend on libraries valgrind being installed, require bulkio etc. millage may vary on test results , may require addition inspection see if failures legit or not.


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -