-
Notifications
You must be signed in to change notification settings - Fork 6
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
prebuilt binary fails because mysqlclient-dev, gmake source 2.6.2 fails building #29
Comments
This error indicates the Perl Compatible Regular Expression (PCRE) library or its header files (.h) are missing on your computer. You may install them with your Linux's installation tool using the name libpcre-dev, libpcre-devel or a similar name then type gmake again. You can also turn off PCRE support with configure --without-pcre and SparForte will disable this feature and build without including it. |
But I want PCREs. I have both libpcre2-dev (10.42-4+b1) and libpcre3-dev (2:8.39-15) installed. But I get the same:
|
As before, you are missing the GNU Readline library header (.h) files. The C header files are equivalent to the Ada ".ads" package specification files. As you cannot build an Ada program without the specifications, you cannot compile C programs without the specifications in the headers. These are needed for building any project from sources, not just SparForte. When you see an "include" error like this, it is because you are missing these C header files needed to compile sources, or in rare cases, the header file may be in an unusual location. The provision.sh script installs all the necessary files if you don't already have them, if it is a version of Linux it recognizes. If you have none of the C specification files, you may also have to install them for mysql, postgres, libsdl and a few other standard C libraries. You may install the missing specifications with your Linux's installation tool using the name libreadline-dev, libreadline-devel or similar. You may also disable readline with the configure script, although I wouldn't recommend that as the old command line has many missing features. |
Sorry I had missed provision.sh. I ran it and now the only missing dependency is libmariadbclient-dev. On internet I can read:
Putting that aside, the configure script succeeds. Then gmake fails here:
So it doesn't seem something I can do without. |
This issue seems to be a bug in MariaDB, where they assign text to an integer variable. Newer versions of C do not allow this. I mention this issue on the website on the release announcement. I don't have a workaround for this. You can use configure --without-mysql to disable MariaDB/MySQL support. |
Understood, I did that and the error went away.
My version of gnat is 14.2.1, if that helps, but I doubt it would. Those are a LOT of things not working from the get go. sparforte being on alire would help. Though I don't know how difficult the porting would be. |
I understand and share your frustration. SparForte is tested and successfully built on Linux Mint (Ubuntu) 19, 20, 21, Red Hat 9, OpenSuse Linux 15 and Raspberry Pi (based on Debian 11)--successful except for the MariaDB issue. It is occasionally tested on FreeBSD and Windows, as I have time. Most current stable versions of Linux use Gnat 12 and this is the version SparForte has been tested against. Gnat 14.2 is an advanced version of Ada that is is not yet generally available on stable releases of Linux. SparForte has not been tested on Gnat 14. We reported this GCC Ada bug to the GCC Ada team, but they have indicated their intake process cannot handle a project as large as SparForte. The GCC Ada team have had bug reports opened for similar issues in recent versions of GCC Ada and they are working to resolve them. The "GNAT BUG DETECTED" message comes from the Ada compiler, not SparForte. There have been attempts to add SparForte to Alire. SparForte is a mix of Ada and C which has been difficult to migrate to Alire. To review: Do not try to run the pre-built version of SparForte on a version of Linux it was built for. |
There's no known solution for the GCC 14 issue. See #27. I've added a warning to the website download page. My only suggestion is to try building SparForte on an older version of Linux using GCC 12. |
SparForte is now building and passing tests on Linux Mint 22 / GCC 13.3, provided that the sound and graphics packages are disabled. That is, ./configure --without-sdl --without-opengl --without-sound. I have temporarily disabled the OpenGL variable length vertex functions which were causing the Ada bug while compiling lines using the standard Ada address_to_access_conversion package. I fixed an issue with a C standard library function which was moved to a new location in Debian Trixie. The sound package, when enabled, crashes my Linux Mint desktop. GCC 13.3 is known to have serious bugs around pointers and I have not tested against GCC 14. When I copied those functions to a separate program for testing, they compiled without issue, making the issue hard to diagnose and difficult to submit to the GCC Ada team. You can download the latest sources from GitHub. I will continue to look into it over the Christmas vacation. |
Hello,
the prebuilt binary fails because the version of libmysqlclient-dev you use is outdated. It's not possible to get on debian it seems.
I get
I try to build from source, but I get, after
gmake
:The text was updated successfully, but these errors were encountered: