Bug 1610513

Summary: GNU Radio build: disabled ZeroMQ, no controlport RPC backend (thrift), no Python docs (sphinx)
Product: [Fedora] Fedora Reporter: Marcus Müller <mmueller>
Component: gnuradioAssignee: Jaroslav Škarvada <jskarvad>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 28CC: extras-qa, jskarvad, lucilanga, mmahut, vvvelichkov
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: gnuradio-3.7.13.4-3.fc29 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1601263 Environment:
Last Closed: 2019-01-17 02:16:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
My own gnuradio.spec none

Description Marcus Müller 2018-07-31 19:25:40 UTC
Created attachment 1471915 [details]
My own gnuradio.spec

Description of problem:

Version-Release number of selected component (if applicable):

The Fedora SPEC file doesn't list the necessary components for building GNU Radio with

* Sphinx (Python documentation)
* ZeroMQ (networking blocks)
* ControlPort thrift backend (the only backend for GNU Radio's RPC framework)

and uses non-existent options for CMake.

How reproducible:

reliably: See end of CMake Output in https://kojipkgs.fedoraproject.org//packages/gnuradio/3.7.13.4/1.fc28/data/logs/x86_64/build.log

Steps to Reproduce:

Run `mock --rebuild` on the source package

Actual results:

disabled components, non-functional ctrlport, cmake complains about wrong options:

```
CMake Warning:
  Manually-specified variables were not used by the project:
    CMAKE_Fortran_FLAGS_RELEASE
    ENABLE-GR_COMEDI
    ENABLE_GRUEL
    ENABLE_GR_CORE
    INCLUDE_INSTALL_DIR
    LIB_INSTALL_DIR
    SHARE_INSTALL_PREFIX
    SYSCONF_INSTALL_DIR
```

Expected results:

Full-featured GNU Radio build

Additional info:

the CMake options passed seem to be very off, many of them don't exist (or ceased to exist. 
Also, passing "FORCE" to enable a component that's missing dependencies doesn't work; component (luckily) stays disabled.

For completeness, I'll list them here:

`usr/bin/cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON -DENABLE_GR_CORE=FORCE -DENABLE_PYTHON=FORCE -DENABLE_DOXYGEN=FORCE -DENABLE_VOLK=FORCE -DENABLE_GRUEL=FORCE -DENABLE_GR_AUDIO=FORCE -DENABLE_GR_ATSC=FORCE -DENABLE_GR_VOCODER=FORCE -DENABLE_GR_UHD=FORCE -DENABLE_GR_NOAA=FORCE -DENABLE_GR_PAGER=FORCE -DENABLE_GR_TRELLIS=FORCE -DENABLE_GR_VIDEO_SDL=FORCE -DENABLE_GR_WXGUI=FORCE -DENABLE_GR_UTILS=FORCE -DENABLE_GRC=FORCE -DENABLE-GR_COMEDI=FORCE -DENABLE_GR_FCD=FORCE -DSYSCONFDIR=/etc -DGR_PKG_DOC_DIR=/usr/share/doc/gnuradio .. `


* -DENABLE_GR_CORE=FORCE: GR_CORE doesn't exist since 3.7.0
* same for GRUEL (but I think a bit longer)
* all these FORCE values to enable components don't actually do something – things are enabled if the dependencies are met (and will be disabled when they aren't: see ENABLE_GR_COMEDI=FORCE not actually do anything); maybe you wanted to *disable* unused components, but then you'd disable the auto-enabling, and then manually set them to "ON" (FORCE has no specific effect on clean builds over ON)

I've rewritten the spec file a while back to have my own private builds. Maybe you want to copy/adapt:

https://copr-be.cloud.fedoraproject.org/results/marcusmueller/gnuradio/fedora-28-x86_64/00777522-gnuradio/gnuradio.spec

It contains all dependencies for all components (but gr-comedi) on F26 through F29, and makes as much as possible work on CentOS 7. I hope it helps you a bit!

Comment 1 Jaroslav Škarvada 2018-08-10 14:38:31 UTC
Thanks, updated the spec.

Regarding the FORCE, it has been used in e.g. gnuradio-3.6.5 i.e.:
>    #if the user set the var to force, we note this
>    if("${${var}}" STREQUAL "FORCE")
>        set(${var} ON)
>        set(var_force TRUE)
>    else()
>        set(var_force FALSE)
>    endif()

It doesn't seem to be used now, so dropping.

Comment 2 Jaroslav Škarvada 2018-08-10 14:46:02 UTC
Unfortunately I cannot enable thrift support, because python2 thrift support has been dropped in f29.

I will enable it later when I switch the package to python3.

Comment 3 Vasil Velichkov 2018-08-31 16:43:41 UTC
Hi Jaroslav,

If possible please build with log4cpp support as well. You only need to add 'BuildRequires: log4cpp-devel' in the spec file.

Comment 4 Jaroslav Škarvada 2018-09-03 07:06:48 UTC
(In reply to Vasil Velichkov from comment #3)
> Hi Jaroslav,
> 
> If possible please build with log4cpp support as well. You only need to add
> 'BuildRequires: log4cpp-devel' in the spec file.

OK NP. At the moment gnuradio doesn't build, because noarch gnuradio-doc is built differently on various arches, I need to investigate.

Comment 5 Fedora Update System 2019-01-10 11:44:22 UTC
gr-hpsdr-1.2-5.fc29 gr-fcdproplus-3.7.2-0.5.rc1.20180618gite5ff8396.fc29 gr-air-modes-0-0.63.20160831git3bad1f5d.fc29 gnuradio-3.7.13.4-3.fc29 gr-iqbal-0.37.2-32.fc29 gr-rds-1.1.0-4.fc29 gr-osmosdr-0.1.4-14.20170221git2a2236cc.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-da38f3c2d1

Comment 6 Fedora Update System 2019-01-11 04:16:54 UTC
gnuradio-3.7.13.4-3.fc29, gr-air-modes-0-0.63.20160831git3bad1f5d.fc29, gr-fcdproplus-3.7.2-0.5.rc1.20180618gite5ff8396.fc29, gr-hpsdr-1.2-5.fc29, gr-iqbal-0.37.2-32.fc29, gr-osmosdr-0.1.4-14.20170221git2a2236cc.fc29, gr-rds-1.1.0-4.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-da38f3c2d1

Comment 7 Fedora Update System 2019-01-17 02:16:07 UTC
gnuradio-3.7.13.4-3.fc29, gr-air-modes-0-0.63.20160831git3bad1f5d.fc29, gr-fcdproplus-3.7.2-0.5.rc1.20180618gite5ff8396.fc29, gr-hpsdr-1.2-5.fc29, gr-iqbal-0.37.2-32.fc29, gr-osmosdr-0.1.4-14.20170221git2a2236cc.fc29, gr-rds-1.1.0-4.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.