Solved Fatal error installing Flmsg from ports.

While installing flmsg from the ports in /usr/ports/comms on a FreeBSD 12.0 RELEASE installation (which is working fine otherwise), I get a "...fatal error: 'X11/X.h file not found." The error message is as follows:

Code:
In file included from /usr/local/include/FL/x.h:37:
/usr/local/include/X11/Xlib.h:33:10: fatal error: 'X11/X.h' file not found
#include <X11/X.h>

1 error generated.
***Error code 1

Stop.
make[2]: stopped in /usr/ports/comms/flmsg/flmsg-4.0.14/src

Is this file X.h simply Xlib.h renamed or copied or is it a completely different file? I could find no reference to it anywhere I searched.

I get the same error message whether attempting to install flamp or flmsg. I have run the command ./Configure before each attempt, as instructed, and Configure finds no errors. I then run make install clean in both cases, and in both cases, the error message and results appear identical.

I have downloaded flamp from http://www.sourceforge.net, and have extracted it, while flmsg is located in the ports collection.

I first tried pkg install flmsg, but that file is not in the packages, although it IS in the ports. I tried the same with flamp and the result from the packages is the same. There is no instance of flamp in the ports.

I am posting this question here since 1) it deals primarily with a FreeBSD port, and 2) although I have joined the 'linuxham' forum and have posted this question there, there appears to be zero interest there in helping with this issue. I have not received an answer to it in several days.

Ken Gordon W7EKB
 
Thank you. flmsg IS in my ports collection at /usr/ports/comms, as is fldigi and a few others like it.

Ken Gordon (W7EKB)
 
I don't have these ports either.

locate X.h shows me the file /usr/local/include/X11/X.h Maybe it could work with make install LOCALBASE=/usr/local
 
They don't appear on freshports. OP said he downloaded flamp.
Was flmsg an old port carried over in an upgrade?
 
Gee. I am embarassed. (face palm!) 🥵

I went back to history on that computer (I am dealing with three FreeBSD installs at this point) and discovered that I had 1) downloaded flmsg from www.sourceforge.net, and 2) had extracted it into the directory flmsg which I had 3) made in my /usr/ports/comms directory.

So, no, neither flmsg nor flamp is in any port.

I apologize.

Also, although locate X.h does return
Code:
/usr/local/include/X11/X.h
(among others), when I then cd /usr/local/include/X11 and ls X.h, I get
Code:
No such file or directory

So, is this file hidden...or something?

Ken Gordon
 
Weird.

I wonder what the heck is going on here? Why can locate find it, but neither find / -name "X.h" nor the whereis command can?

whereis X.h returns
Code:
X.h:

I have also tried every iteration of the ls command I can think of or find, and that can't find it either.

Does anyone have a copy of this file they could send me, or does anyone know what the file contains?

Ken Gordon
 
OK. locate lists files in its database. Files which have been removed since the last update will still show. It updates once a week. I have updated the database. After I have done that, then locate X.h returns no X.h.

Thank you for the file, Paul.

Now to see if that did the trick.

Another question pops into my head, "What deleted X.h, and when did it do this?"

Ken Gordon
 
OK. Now "it" wants Xfuncproto.h. Although I can find and download this file on the web, I am very reluctant to do so, since, for one thing, at this point I am not completely sure which X-type desktop I am using, and whether adding this file (and any subsequent needed ones) may foul up my working X-desktop.

From further work, it appears that flmsg (and probably flamp) expect to see the KDE desktop. Therefore, it is most likely that fldigi and other FL-Stuff that ARE in the ports have been ported over to FreeBSD by the port managers, and these two that I am trying to use have not been yet.

Since I am not yet competent enough to modify these to make them usable in my present environment, I guess I'll just have to not bother with them for now.

Of course, this will make this laptop unusable for some of the digital ham radio work I am configuring it for, for use by our local American Legion amateur radio ops, but that's just too bad at this point.

Thanks (as usual) for your help, folks. I really appreciate all you do here. You are a wonderful bunch.

I am calling this issue solved.

Ken Gordon (W7EKB)
 
OK. locate lists files in its database. Files which have been removed since the last update will still show. It updates once a week. I have updated the database. After I have done that, then locate X.h returns no X.h.
Yes, locate using a database means unless it's updated very often it's most likely useless.
As you discovered, find is your friend.

Another question pops into my head, "What deleted X.h, and when did it do this?"

Ken Gordon

Do you even know if it was installed? If it (your sourceforge program) was a port, then it has a dependency for X11 and it would be pulled in. You are compiling source from sourceforge and will have to bring in all the dependencies yourself.
 
OK. Now "it" wants Xfuncproto.h. Although I can find and download this file on the web, I am very reluctant to do so, since, for one thing, at this point I am not completely sure which X-type desktop I am using, and whether adding this file (and any subsequent needed ones) may foul up my working X-desktop.
...
Ken Gordon (W7EKB)

You're chasing your tail.

You need to look at what dependencies this program has. Does it say on sourceforge?

Just grabbing headers and putting them in /usr/include will (may) cause you grief. It's also possibly delaying the inevitable when you get to linking time and libraries are missing as well.

If there's other programs in this suite that have been ported, find the porter's name and send him/her an email requesting them. It can't hurt.
 
You're chasing your tail.
Quite obviously, thanks! :D

You need to look at what dependencies this program has. Does it say on sourceforge?
I looked for such, but there is nothing like that listed there. I may ask the author of these programs, but so far I have not found enough information on them to adequately handle them. I'll go back and look again. I probably missed something important.

Just grabbing headers and putting them in /usr/include will (may) cause you grief. It's also possibly delaying the inevitable when you get to linking time and libraries are missing as well.
Yes. Although, from what I have watched, it appears that all the necessary libraries are there.

If there's other programs in this suite that have been ported, find the porter's name and send him/her an email requesting them. It can't hurt.
There are a number of other programs in this suite and the entire suite has become very valuable to folks like me who do EMCOMMs or even just digital ham radio. The software is very good and works perfectly, and is continually kept up-to-date. The trouble is, for me anyway, that most of the present users are using Linux (or WinDOZE), and I will not do Linux. I have always preferred FreeBSD.

In addition, I have no idea whether or not even the Linux users are using flamp and/or flmsg. Those programs are rather specialized for use in EMCOMMs, mostly.

Thank you. I was wondering if it would be the correct thing to do to contact the porter about this issue. I'll give that a try. As you say, it can't hurt.

Ken Gordon
 
Yes, thanks. I went to the freshports site yesterday and found him. I then emailed him with my request. He replied later that same day with the report that he had just finished porting those two over to FreeBSD. I downloaded them from the ports collection last night, but have not yet had time to install them. His name is Yuri, BTW. I don't yet know his amateur radio call, but will find out.

He also asked me to report any problems to him. I don't expect to find any, but we'll see.

Those ports are not yet in the package system, but I expect them to be there soon.

I'll install the two from the ports and test them out.

Again, I thank everyone here for all the help and suggestions. As I said, you're a great bunch.

Ken Gordon
 
Well, I am going to have to chat with Yuri: installing the port of flamp results in another "Fatal Error" in that Xfuncproto.h is not found.

I suspect that the reason is that these programs "expect" to see the KDE desktop, whereas I am using the xfce series.

I found one on the web from the OpenGroup, complete with line numbers.

I'll try that one

Ken Gordon
 
OK, just built comms/flamp and it pulled in and built
Code:
[1/4] Installing fltk-1.3.5...
[1/4] Extracting fltk-1.3.5: 100%
[2/4] Installing hamlib-3.3_2...
[2/4] Extracting hamlib-3.3_2: 100%
[3/4] Installing fldigi-4.1.09...
[3/4] Extracting fldigi-4.1.09: 100%
[4/4] Installing flamp-2.2.05...
[4/4] Extracting flamp-2.2.05: 100%

No issues, build went fine. I use ports-mgmt/synth and it pulled in a few deps but the build was successful.
 
Hmmm...I am somewhat confused here...which isn't unusual...

I keep running into files that the install expects to find, but doesn't, all of which appear to be related primarily to X-windows. I have needed X.h, Xfuncproto.h, Xosdefs.h, and now keysym.h.

I suspect that the reason is that flamp for example is expecting to "see" the KDE desktop environment whereas my systems use the Xfce desktop environment.

I find that keysym.h will require keysymdefs.h too. I don't have either one, and besides, I find that there are many keysym.h files, varying by many parameters, not least of which is the language of the user.

Funny thing is that my system does contain the Xlib, which I would think has all those files in it, but if it does, they can't be found.

I am going to try synth as soon as I learn how.

Ken Gordon
 
No, there are no dependencies on KDE for this port. It's using fltk as it's GUI.
Have you refreshed your ports tree lately? Perform a make clean;make on the comms/flamp.
It should show if it's failing in the build.
Perhaps run script() around it to capture any errors and post them?
 
Agree, KDE has nothing to do with it. Synth would be fine but portmaster would be easier. Not that synth is hard, but it’s a quick build.
 
Synth, at least on that laptop, is a very SLOW build. It has been running here now for at least two hours, and no end in sight.

But, at least it IS building, so far, with no errors.

Its kind of fun watching it.

No, there are no dependencies on KDE for this port. It's using fltk as it's GUI.

OK. Thanks. I had figured KDE since all those missing files, from my searching on the web, appeared to be directly concerned with KDE.

Have you refreshed your ports tree lately?
Yes: yesterday before I began this exercise.

Perform a make clean;make on the comms/flamp.
It should show if it's failing in the build.
OK. Will do...as soon as it is finished installing synth :)
Perhaps run script() around it to capture any errors and post them?
Will do, thanks!

Ken Gordon
 
Synth is only one of a couple of build tools. Portmaster is probably simpler but I never had luck with it so recommend synth. Build times depend on a lot of factors: CPU, ram, disk speed, etc. good luck!
 
Back
Top