I tried adding a new super simple OOT project.  Of type general, adding one
module (cpp) with one parameter.
No code added anywhere.  I noticed that when adding the dummy module to
this dummy OOT that I get 3 errors from gr_modtool add:

Failed to run clang-format %s [Errno 2] no such file or directory:
'clang-format'

But the .cc and .h files for the module are created.  Trying to run
gr_modtool against that fails the same as before.

Do I have multiple problems here?
Am I missing some dependency for clang-format ?

-- Tom, N5EG






On Sat, Apr 10, 2021 at 12:22 AM Tom McDermott <tom.n...@gmail.com> wrote:

> Thanks, Josh.    The OOT should be pretty standard.  It was built with
> gr_modtool in 3.7,
> then ported over to 3.8.  All the modules are in the normal places.
> My guess is NoneType means that the module was not found, then trying to
> append .h to
> that fails.
>
> I tried running gr_modtool bind inside the gr_3.9/gr-hpsdr directory and
> it fails in the exact same way.
>
> I guess at this point I'll have to see if there is some way to run
> gr_modtool in a debugger and step through
> what it is trying to do and how it is trying to find the modules.
>
> -- Tom, N5EG
>
>
> On Fri, Apr 9, 2021 at 1:23 PM Josh Morman <mor...@gmail.com> wrote:
>
>> I haven't been able to replicate this on my system with Ubuntu 20.04 and
>> Python 3.8.5  - created a 3.8 OOT with one block, and followed the steps to
>> copy the 3.9 content back in, and it got past the `gr_modtool bind` step.
>>
>> Is there anything non-standard about your 3.8 OOT - e.g. are the files in
>> the usual place as generated by modtool?
>>
>> On Fri, Apr 9, 2021 at 1:49 PM Tom McDermott <tom.n...@gmail.com> wrote:
>>
>>> Hi Josh - for creating the new 3.9 skeleton, I ran gr_modtool from
>>> within the 3.9 directory.
>>> For step 4, I ran gr_modtool from within the 3.8 directory (as per the
>>> guide).
>>>
>>> Quite frankly, it looks like gr_modtool is throwing an error when trying
>>> to
>>> concatenate the module name and path and the .h suffix and suffering
>>> a type mismatch  (NoneType vs. str).  Is this possibly a Python 3.x
>>> version dependency?
>>>
>>> -- Tom, N5EG
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Apr 9, 2021 at 10:37 AM Josh Morman <mor...@gmail.com> wrote:
>>>
>>>> You are right - that is an easier process than merging the 3.8 code
>>>> into 3.9.  The wiki should be correct in this case.
>>>>
>>>> Which directory are you running gr_modtool from?  Same directory as you
>>>> would for doing things like gr_modtool add?
>>>>
>>>>
>>>> On Fri, Apr 9, 2021 at 1:24 PM Tom McDermott <tom.n...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Josh - thank you for your help !
>>>>>
>>>>> I have been following the instructions from the porting guide:
>>>>>
>>>>> https://wiki.gnuradio.org/index.php/GNU_Radio_3.9_OOT_Module_Porting_Guide
>>>>>
>>>>> ----------------
>>>>>
>>>>> Porting from 3.8 to 3.9 can be achieved most simply by creating a new
>>>>> OOT module (with the same name as the 3.8 OOT but in a different
>>>>> directory), then performing some manual steps
>>>>>
>>>>> 1. Use the 3.9 gr_modtool to generate a module with the same name (in
>>>>> another directory)
>>>>>
>>>>> 2. Copy the python folder from 3.9 OOT into your 3.8 OOT
>>>>>
>>>>> 3. (in 3.8 OOT) Add the bindings directory to the python directory
>>>>> CMakeLists
>>>>>
>>>>>    ./python/CMakeLists.txt  → add the line:
>>>>>            add_subdirectory(bindings)
>>>>>
>>>>> 4. (in 3.8 OOT) Call gr_modtool bind for each block in your OOT
>>>>>
>>>>> ...
>>>>>
>>>>> -----------------
>>>>> I have not created anything in the 3.9 directory except using
>>>>> gr_modtool new and add, nor have I copied in any code
>>>>> from 3.8 directory to the 3.9 directory.  I was under the impression
>>>>> that step 4 would modify my 3.8 code so that I could
>>>>> then copy it from the 3.8 directory over to the 3.9 directory.
>>>>>
>>>>> There are significant file differences between the newly created 3.9
>>>>> and the existing 3.8  with conflicts in the /lib directory:
>>>>> the  hermesNB_impl.h and .cc   and hermesWB.h and .cc files differ
>>>>> significantly in content.
>>>>>
>>>>> Do I need to first look through the code and figure out how to merge
>>>>> the 3.8 and 3.9 .h and .cc files together?
>>>>> Then do I put those merged file into the 3.8 or the 3.9 directory?
>>>>>
>>>>> -- Tom, N5EG
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Apr 9, 2021 at 9:27 AM Josh Morman <mor...@gmail.com> wrote:
>>>>>
>>>>>> Tom,
>>>>>>
>>>>>> If I am following correctly, it looks like you are running gr_modtool
>>>>>> (which is the 3.9 version since that is what you have installed in the 
>>>>>> VM)
>>>>>> in the 3.8 OOT directory?
>>>>>> What happens when you run `gr_modtool bind` in the gr-hpsdr_3.9
>>>>>> directory
>>>>>>
>>>>>> The process you are following seems sound to have created a 3.9 OOT
>>>>>> with 3.9 modtool, and then copied code in from 3.8.
>>>>>>
>>>>>> Josh
>>>>>>
>>>>>> On Fri, Apr 9, 2021 at 12:08 PM Tom McDermott <tom.n...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I am having difficulty porting an OOT module to gr 3.9.
>>>>>>> * VM with only gnuradio 3.9.0.0 installed.
>>>>>>> *The functional 3.8 OOT module is cloned into this VM.
>>>>>>>
>>>>>>> Installed is 3.9.0.0
>>>>>>> Python 3.8.5
>>>>>>> pygccxml 2.1.0
>>>>>>> pybind11 2.6.2
>>>>>>>
>>>>>>> *  Created the gr-hpsdr_3.9  directory, populated it using
>>>>>>> gr_modtool newmod, added the
>>>>>>> two modules hermesNB and hermesWB with constructor parameters.
>>>>>>>
>>>>>>> In the 3.8 directory:
>>>>>>>  hermesNB.h and hermesWB.h  both exist in the /include directory, and
>>>>>>>  hermesWB_impl.cc and hermesNB_impl.cc both  exist in the /lib
>>>>>>> directory
>>>>>>>  Edited the ./python/Cmakelists.txt file to add the bindings
>>>>>>> subdirectory.
>>>>>>>  From the directory gr-hpsdr_3.8/gr-hpsdr, I execute gr_modtool bind
>>>>>>>  It prompts for the block name. I used the base module name without
>>>>>>> any suffixes:
>>>>>>>
>>>>>>> hermesNB
>>>>>>>
>>>>>>> (also tried  hermesNB.h, hermesNB_impl.cc, hermesWB, hermewWB.h,
>>>>>>> hermesWB_impl.cc)
>>>>>>>
>>>>>>> I always get the following error message:
>>>>>>>
>>>>>>>
>>>>>>> tom@tom-Standard-PC-Q35-ICH9-2009:~/gr-hpsdr_3.8/gr-hpsdr$
>>>>>>> gr_modtool bind
>>>>>>> GNU Radio module name identified: hpsdr
>>>>>>> Which blocks do you want to parse? (Regex): hermesNB
>>>>>>> /usr/lib/python3/dist-packages/apport/report.py:13:
>>>>>>> DeprecationWarning: the imp module is deprecated in favour of importlib;
>>>>>>> see the module's documentation for alternative uses
>>>>>>>   import fnmatch, glob, traceback, errno, sys, atexit, locale, imp,
>>>>>>> stat
>>>>>>> Traceback (most recent call last):
>>>>>>>   File "/usr/bin/gr_modtool", line 18, in <module>
>>>>>>>     cli()
>>>>>>>   File "/usr/lib/python3/dist-packages/click/core.py", line 764, in
>>>>>>> __call__
>>>>>>>     return self.main(*args, **kwargs)
>>>>>>>   File "/usr/lib/python3/dist-packages/click/core.py", line 717, in
>>>>>>> main
>>>>>>>     rv = self.invoke(ctx)
>>>>>>>   File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in
>>>>>>> invoke
>>>>>>>     return _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>>>>   File "/usr/lib/python3/dist-packages/click/core.py", line 956, in
>>>>>>> invoke
>>>>>>>     return ctx.invoke(self.callback, **ctx.params)
>>>>>>>   File "/usr/lib/python3/dist-packages/click/core.py", line 555, in
>>>>>>> invoke
>>>>>>>     return callback(*args, **kwargs)
>>>>>>>   File
>>>>>>> "/usr/lib/python3/dist-packages/gnuradio/modtool/cli/base.py", line 
>>>>>>> 133, in
>>>>>>> wrapper
>>>>>>>     return func(*args, **kwargs)
>>>>>>>   File
>>>>>>> "/usr/lib/python3/dist-packages/gnuradio/modtool/cli/bind.py", line 46, 
>>>>>>> in
>>>>>>> cli
>>>>>>>     run(self)
>>>>>>>   File
>>>>>>> "/usr/lib/python3/dist-packages/gnuradio/modtool/cli/base.py", line 
>>>>>>> 152, in
>>>>>>> run
>>>>>>>     module.run()
>>>>>>>   File
>>>>>>> "/usr/lib/python3/dist-packages/gnuradio/modtool/core/bind.py", line 
>>>>>>> 61, in
>>>>>>> run
>>>>>>>     file_to_process = os.path.join(self.dir, self.info['includedir'],
>>>>>>> self.info['blockname'] + '.h')
>>>>>>> TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
>>>>>>>
>>>>>>> Thus am stuck at this time.    Is there a new or revised gr_modtool ?
>>>>>>>
>>>>>>> -- Tom, N5EG
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>

Reply via email to