Opened 8 months ago

Last modified 7 months ago

#73333 assigned defect

gnuradio: Dependency 'py39-fonttools' not found.

Reported by: edcernek (Ed Cernek) Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: ra1nb0w, colonel-angus69
Port: gnuradio

Description

I am trying to install gnuradio on my MacBook Pro (Intel) and "sudo port install gnuradio" fails with "Dependency 'py39-fonttools' not found." Looking at "https://ports.macports.org/port/py39-fonttools/details/" I see "This port has been deleted. This page will exist till another port with the name "py39-fonttools" comes into existence. " I looked in the various suggested places and saw no reference to this issue.

Change History (15)

comment:1 Changed 8 months ago by Schamschula (Marius Schamschula)

Python 3.9 is being phased out.

Apparently, when py39-fonttools was removed no check of dependent ports was done.

gnuradio needs to be updated to use a current version of Python.

comment:2 Changed 8 months ago by Schamschula (Marius Schamschula)

A quick look at the gnuradio Portfile suggests that it builds against the active version of Python. This not a common practice. Generally, this is done via variants.

Are you still on 3.9?

Currently 3.13 is the version with best package coverage, as 3.14 is being phased in.

comment:3 in reply to:  2 Changed 8 months ago by jmroot (Joshua Root)

Replying to Schamschula:

A quick look at the gnuradio Portfile suggests that it builds against the active version of Python. This not a common practice. Generally, this is done via variants.

It uses variants. active_python_version_no_dot is set in the portgroup and actually refers to the selected python variant.

Are you still on 3.9?

The portgroup sets default_variants to +python39 (via gnuradio.default_python_variant), so most users will be on that version. There are python310 and python38 variants, the latter of which has many more missing dependencies.

comment:4 Changed 8 months ago by jmroot (Joshua Root)

Cc: ra1nb0w amake added
Keywords: install removed
Owner: set to michaelld
Status: newassigned

comment:5 Changed 8 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: colonel-angus69 added
Summary: Installation of gnuradio fails looking for py39-fonttoolsgnuradio: Dependency 'py39-fonttools' not found.

Has duplicate #73340.

comment:6 Changed 8 months ago by jmroot (Joshua Root)

In c4e398814fdbe0c25fee29810bfd319a66f2a62d/macports-ports (master):

gnuradio pg: remove python38, default to python310

See: #73333

comment:7 Changed 8 months ago by jmroot (Joshua Root)

Could someone who knows how to use gnuradio please check if it works acceptably if you add 3.13 to the list on line 28 of the portgroup (_resources/port1.0/group/gnuradio-1.0.tcl) and then install with +python313?

comment:8 Changed 8 months ago by edcernek (Ed Cernek)

OK. Not being sure how to respond to this request, I attempted the installation again, with the same result:

--->  Computing dependencies for gnuradio
Error: Dependency 'py39-fonttools' not found.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port gnuradio failed

How can I help?

Last edited 7 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:9 Changed 7 months ago by jmroot (Joshua Root)

Edit the file /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/group/gnuradio-1.0.tcl. You will need to run your editor with enough permissions to modify the file, which usually means running it as root. Find line 28 of the file, which should look like this:

    default gnuradio.python_versions {3.9 3.10}

Edit the line so it looks like this:

    default gnuradio.python_versions {3.9 3.10 3.14}

Save the file. Then, run sudo port install gnuradio +python314 and see if it builds successfully, and if so, run it and see if it works.

comment:10 Changed 7 months ago by edcernek (Ed Cernek)

OK. I made the changes and gnuradio-companion appears to be working (although invocation seems to take a long time; probably from loading XQuartz) and thanks for the bandwidth.

However there is a different problem: the soapy_hackrf_source Block for my "HackRF One" can't be found. I'm pretty sure this has nothing to do with macports (unless, maybe, this is supposed to be part of the port).

Does anyone on this thread have any ideas where I can get some help with this?

comment:11 in reply to:  10 Changed 7 months ago by jmroot (Joshua Root)

Replying to edcernek:

OK. I made the changes and gnuradio-companion appears to be working (although invocation seems to take a long time; probably from loading XQuartz) and thanks for the bandwidth.

Thanks for testing.

However there is a different problem: the soapy_hackrf_source Block for my "HackRF One" can't be found. I'm pretty sure this has nothing to do with macports (unless, maybe, this is supposed to be part of the port).

Does anyone on this thread have any ideas where I can get some help with this?

I don't know if it's what you need, but there is a SoapyHackRF port. There may be other gnuradio users subscribed to the macports-users list, so you could try asking there.

comment:12 Changed 7 months ago by jmroot (Joshua Root)

I'm confused as to how installing gnuradio +python314 could have worked, since some dependencies do not yet exist (notably py314-cheetah).

comment:13 Changed 7 months ago by edcernek (Ed Cernek)

I would like to attach a screen-shot of the running gnuradio-companion, but I can't figure out how to do it. The XQuartz graphics aren't great, but it is running on my MacBook Pro (Intel). What can I do to resolve the puzzle?

comment:14 Changed 7 months ago by amake (Aaron Madlon-Kay)

Cc: amake removed

comment:15 Changed 7 months ago by reneeotten (Renee Otten)

how about someone tries the +python310 variant first; if that works it will allow us to remove the EOL Python 3.9 variant. The whole gnuradio ecosystem in MacPorts is very out-of-date so someone with interest in the package should spend the necessary time to get it update to the latest upstream release. Otherwise things are bound to break with newer OSes / compilers and such...

Note: See TracTickets for help on using tickets.