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
Post a Comment