Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release for Modern Linux? #71

Open
kuri05 opened this issue Jan 26, 2024 · 5 comments
Open

Release for Modern Linux? #71

kuri05 opened this issue Jan 26, 2024 · 5 comments

Comments

@kuri05
Copy link

kuri05 commented Jan 26, 2024

Can we get a current release for modern Linux? It looks like the last official release with binaries was in 2014.

I use Linux as my core OS.
QT4 hasn't been supported in a few years, but that's what the current release binaries are compiled for.
Do you have any recommendations for getting FreeSSM running on more modern Linux installs?

Specifically, I'm running Kubuntu 22.04

Library info:
ii libqt5core5a:amd64 5.15.3+dfsg-2ubuntu0.2 amd64 Qt 5 core module

I'm not fully opposed to compiling myself, but I prefer to use published packages whenever possible. It saves so much time and effort for management and troubleshooting.

@kuri05
Copy link
Author

kuri05 commented Jan 26, 2024

Ahhh, I see the Readme is pretty easy to follow. I was thrown off by the release-deb's dependencies.

I still recommend a more recent release with modern binaries and QT5 support at least. But I'm installed and running. Looks good! I can't wait for my VAG-COM adapter to arrive to try it out.

If you'd like help making the Linux deb packages, let me know.

@jschinnerer
Copy link

How did you manage to build from source?
I have xUbuntu 22.04.5 LTS and there are multiple issues right from the start.
There are multiple errors on includes for header files starting with "ui_" that simply do not exist in the source files.
If I comment those out (with no idea whether the includes are wrong or the files not existing is wrong), eventually I get a "not found" for an include on QWidget, because the source assumes the path for Qt4 but that was changed to its own subdir in Qt5. I've no idea how to compensate for that.

Did you install the old Qt4?
Or somehow hack the build so the includes for QWidget found it in the Qt5 dir structure?
And what about the mysterious "ui_" header files that have includes but don't exist?

@ArizonaAombeez
Copy link

ArizonaAombeez commented Nov 19, 2024

jschinnerer I have Exactly the same issue, the versions of everything move on so quickly that the instructions do not align anymore. Unless you're 'in the know' or a regular QT dev I guess it's not as simple as following the instructions. Is anyone able to give us a hint to follow, or update the instructions? Many (many) Thanks - have tried multiple times over the years, with different versions of QT too.

Ref: Windows 10, QT 5.15.0 as that was the farthest back the archive went when installing, and path set for mingw810_32

@ldeploynoob
Copy link

How did you manage to build from source? I have xUbuntu 22.04.5 LTS and there are multiple issues right from the start. There are multiple errors on includes for header files starting with "ui_" that simply do not exist in the source files. If I comment those out (with no idea whether the includes are wrong or the files not existing is wrong), eventually I get a "not found" for an include on QWidget, because the source assumes the path for Qt4 but that was changed to its own subdir in Qt5. I've no idea how to compensate for that.

Did you install the old Qt4? Or somehow hack the build so the includes for QWidget found it in the Qt5 dir structure? And what about the mysterious "ui_" header files that have includes but don't exist?

I just successfully built the app on my Ubuntu 20.04 virtual machine. I have not tested it on a car yet, but the build proceeded just fine by following the README,txt instructions in the source code here.

I installed Qt 5.12.8 from Ubuntu package repositories.

I believe the "missing" files with "ui_" are generated when you first execute the "qmake" command. Then when you execute the "make" command, you will not get these missing file errors.

Did you start your build with a "make" command without first running "qmake" as instructed in the README here?

No idea how this thing works by compiling in a Windows environment, but I know the code here worked just fine compiling in my Ubuntu VM.

I would like to build a .exe file for Windows, but my first efforts at cross compiling from the Ubuntu VM were a failure.

I installed MXE from their tutorial here: https://mxe.cc/#tutorial

Then I opened a new terminal, changed into the FreeSSM-master directory, and entered, "/usr/lib/mxe/usr/i686-w64-mingw32.static/qt5/bin/qmake"

That executed perfectly, and it generated the ui_ files among other things.

Then I tried entering "make", and it choked on a few "no such file or directory" errors because the source files were set up with the Windows backslash convention (eg. "windows\serialCOM.h"). So I changed them all to Linux forward slash convention (eg. "windows/serialCOM.h"), but otherwise left them alone.

I ran "make" again, and no more "no such file or directory" errors.

I thought I had it beat, but the process then stopped with the following error, and I'm now stumped.

Weird, given that it compiled just fine for Linux after running qmake as instructed in the README instructions here, but it seems that the cross-compile efforts of using qmake with MXE have broken something. So no Windows .exe for me yet.

src/SSMprotocol.cpp: In constructor 'SSMprotocol::SSMprotocol(AbstractDiagInterface*, QString)':
src/SSMprotocol.cpp:29:8: error: 'CUtype' is not a class, namespace, or enumeration
  _CU = CUtype::Engine;
        ^
make[1]: *** [Makefile.Release:17855: release/SSMprotocol.o] Error 1

@ArizonaAombeez
Copy link

Thanks for all the useful hints above, great to get the feedback. So I've had time to dig deeper and have thus far...

Run qmake, files makefiles are updated in the root/build folder (again this is win 10, with Qt installed, paths updated etc)

when trying to run mingw32-make it fails with - from src\main.cpp:21:src\Engine.h:26:23: fatal error: ui_Engine.h: No such file or directory

Using your fav Ai I've discovered that:
FreeSSM.pro includes ui/Engine.ui \ in the 'FORMS' section
so either UIC is not being called properly or something else is wrong in the build config :(

From ChatGPT - "The error indicates that the ui_Engine.h file, which should be generated from Engine.ui by the uic tool, was not created or is not in the expected location. Since the .pro file already includes the .ui file under the FORMS section, the problem likely lies with the build system not processing the .ui file correctly."

It then goes on to recommend updating either the headers in the code, or the makefile. At this point I believe it's taking me down the wrong path as this builds for other people. What config could I have wrong on the windows system that might cause this conflict? Is the file named correctly in the above example, going from Engine.ui to ui_Engine.h (proving that UIC is working)??

I opened the .pro in Qt and had no idea how to configure it, I set a kit to default (mingw32) but no dice. Build options were greyed out etc.

Cheers 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants