Opened 7 months ago
Last modified 2 months ago
#71092 assigned defect
tecla @1.6.3: error: incompatible function pointer types passing 'TputsRetType (TputsArgType)' (aka 'void (int)') to parameter of type 'int (*)(int)' [-Wincompatible-function-pointer-types]
Reported by: | 2-of-1 | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | sequoia | Cc: | thomasrussellmurphy (Thomas Russell Murphy), bitwhyz, madler (Mark Adler) |
Port: | tecla |
Description
Hello.
Tried to install GQRX using Mac Ports on Sonoma but the installation fails due to the inability to download and install the Tecla sources. Even the -b switch didn't solve the problem.
Thanks in advance,
2of1
Attachments (2)
Change History (16)
comment:1 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | sonoma added |
---|---|
Owner: | set to michaelld |
Port: | tecla added; gqrx removed |
Status: | new → assigned |
Summary: | Unable to install GQRX because of Tecla can't be build → tecla: Fetch failure |
Changed 7 months ago by 2-of-1
Attachment: | main_gqrx.log added |
---|
Changed 7 months ago by 2-of-1
Attachment: | main_tecla.log added |
---|
comment:3 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | sequoia added; sonoma removed |
---|---|
Summary: | tecla: Fetch failure → tecla @1.6.3: error: incompatible function pointer types passing 'TputsRetType (TputsArgType)' (aka 'void (int)') to parameter of type 'int (*)(int)' [-Wincompatible-function-pointer-types] |
Ok, so the failure to fetch precompiled archives is not the bug; see #60756. The real problem is that the port doesn't build:
./getline.c:3931:34: error: incompatible function pointer types passing 'TputsRetType (TputsArgType)' (aka 'void (int)') to parameter of type 'int (*)(int)' [-Wincompatible-function-pointer-types] 3931 | tputs((char *)string, nline, gl_tputs_putchar); | ^~~~~~~~~~~~~~~~ /opt/local/include/term.h:848:60: note: passing argument to parameter here 848 | extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); | ^ 1 error generated.
Just to get the correct info into the bug: You said you're using macOS Sonoma but the log shows macOS 15 which is Sequoia.
comment:4 Changed 7 months ago by 2-of-1
Thanks for filing the ticket under the right hashtags. You are right, its Sequoia, not Sonoma. Any idea how to fix this compilation Error?
comment:5 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)
The project's code evidently contains a mistake where one type of information is being passed to a function that expects a different type of information. Compilers have issued warnings about incompatible function pointer types for years. Now, the latest compilers no longer tolerate such mistakes and consider them to be errors. Ideally, someone would fix the problem so that the correct type of information is being passed. Less ideally, the error could be downgraded back to a warning.
Usually mistakes in a project's code should be reported to its developers so they can fix it. I'm not sure if this project is still being developed though, since the last version was released ten years ago.
comment:6 follow-up: 13 Changed 4 months ago by bitwhyz
I'm running MacOS Sequoia 15.2 on Intel 64-bit macbook pro, and encountered an issue when doing the "port migrate" from MacPorts base version 2.10.1 to 2.10.5, the migrate failed on the tecla package when attempting to fetch from the following URLs the main.log file shows the errors below:
:info:archivefetch ---> tecla-1.6.3_0.darwin_24.x86_64.tbz2 doesn't seem to exist in /opt/local/var/macports/incoming/verified :msg:archivefetch ---> Attempting to fetch tecla-1.6.3_0.darwin_24.x86_64.tbz2 from https://packages.macports.org/tecla :debug:archivefetch Fetching archive failed: The requested URL returned error: 404 :msg:archivefetch ---> Attempting to fetch tecla-1.6.3_0.darwin_24.x86_64.tbz2 from http://mirror.fcix.net/macports/packages/tecla :debug:archivefetch Fetching archive failed: The requested URL returned error: 404 :msg:archivefetch ---> Attempting to fetch tecla-1.6.3_0.darwin_24.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/tecla :debug:archivefetch Fetching archive failed: The requested URL returned error: 404 The darwin_24.x86_64 package is missing and causes the ensuing Error 404.
The previous "darwin_23" versions exist at those URLs but the macports migration to 2.10.5 specifically points to darwin_24 versions, as all other packages migrated used darwin_24 versions as well. It seems that building the tecla-1.6.3_0.darwin_24.x86_64.tbz2 and placing it at those URLs would be the fix, or if it's not being developed further, then point the macports migration to the darwin_23 version if its compatible with Sequoia. Is there a way to do that?
comment:7 Changed 3 months ago by thomasrussellmurphy (Thomas Russell Murphy)
Cc: | thomasrussellmurphy added |
---|
comment:8 Changed 2 months ago by madler (Mark Adler)
Is there a way for me to fix the source code that has been downloaded on my system for the build (looks like an easy fix), and then pick up the install where it left off? And then move on with my life?
comment:9 Changed 2 months ago by mcquiggi (Kevin McQuiggin)
Same issue here. I need tecla in order to be able to build the port for the bladeRF SDR.
comment:10 Changed 2 months ago by mcquiggi (Kevin McQuiggin)
Sequoia 15.3.2 and the latest Xcode and command line tools: I should have added that on the original message.
comment:11 Changed 2 months ago by mcquiggi (Kevin McQuiggin)
Hi All:
I was able to fix this by adding a casting to line 3931 of getline.c, as noted in the error message above:
Old line 3931 (getline.c):
tputs((char *)string, nline, gl_tputs_putchar);
Revision:
tputs((char *)string, nline, (int * ) &gl_tputs_putchar);
This resolved the build issue.
I am not a GitHub expert/user, so if the assigned bug person reads this, here is a potential fix!!!
Sorry I can't do the ""pull" et cetera myself but I would like break many other things!
Kevin
comment:12 follow-up: 14 Changed 2 months ago by madler (Mark Adler)
Kevin: So how do I do this in the middle of a port install? Where do I find getline.c on my system, and how do I resume the port install after it stops due to the error?
comment:13 Changed 2 months ago by ryandesign (Ryan Carsten Schmidt)
Replying to bitwhyz:
It seems that building the tecla-1.6.3_0.darwin_24.x86_64.tbz2 and placing it at those URLs would be the fix
That will happen automatically as soon as someone commits a fix that allows it to build. Right now, as reported in this ticket, it cannot build.
comment:14 Changed 2 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | bitwhyz madler added |
---|
Replying to madler:
So how do I do this in the middle of a port install? Where do I find getline.c on my system,
find $(port work tecla) -name getline.c
and how do I resume the port install after it stops due to the error?
sudo port install tecla
Also, needless to say, this is a bug in tecla. It needs to be reported to the developers of tecla so they can fix it.
Please attach the main.log file.