[MDEV-7209] mroonga storage engine fails to build on OpenBSD Created: 2014-11-26 Updated: 2021-08-13 Resolved: 2021-07-27 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - Mroonga |
| Affects Version/s: | 10.5.8 |
| Fix Version/s: | 10.2.40, 10.3.31, 10.4.21, 10.5.12, 10.6.4 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Brad Smith | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
OpenBSD |
||
| Description |
|
The mroonga storage engine fails to build on OpenBSD. Updating this for 10.5 it is now failing in a different manner.
|
| Comments |
| Comment by Brad Smith [ 2014-12-08 ] | ||||||||||
|
Any comment? I can build test any proposed diffs even against a 10.0.15 code base. | ||||||||||
| Comment by Brad Smith [ 2014-12-16 ] | ||||||||||
|
ping. | ||||||||||
| Comment by Brad Smith [ 2015-01-28 ] | ||||||||||
|
Still broken with 10.0.16. | ||||||||||
| Comment by carrie h [ 2015-02-16 ] | ||||||||||
|
I'm encountering this exact issue on OpenBSD 5.6 GENERIC.MP#333 amd64 during the initial make for versions 10.0.15 and 10.0.16. | ||||||||||
| Comment by Jon Tibble [ 2015-03-29 ] | ||||||||||
|
This also affects illumos/Solaris based OSs. The following fixed this particular issue for me:
| ||||||||||
| Comment by Kouhei Sutou [ 2015-05-06 ] | ||||||||||
|
Groonga at master is buildable on OpenBSD. This issue will be fixed when new Groonga is released (It will be released at 2015-05-29) and bundled into MariaDB. | ||||||||||
| Comment by Brad Smith [ 2015-08-30 ] | ||||||||||
|
Building 10.0.21 the issue still exists there. Again the issue is the netinet/tcp.h header check is failing due to the fact that sys/types.h header is not being included at the same time which is required for netinet/tcp.h. The patch Job Tibble posted seems to work but to me it feels like the wrong place to fix the issue. It should be in the Mroonga specific bits of code with regard to the CMake / autoconf infrastructure. | ||||||||||
| Comment by Kouhei Sutou [ 2015-09-04 ] | ||||||||||
|
Could you try http://packages.groonga.org/source/mroonga/mariadb-10.0.21-with-mroonga-5.06.tar.gz ? It replaces bundled Mroonga with the latest Mroonga. If it solves this problem, we can solve this problem by updating bundled Mroonga. | ||||||||||
| Comment by Brad Smith [ 2016-08-30 ] | ||||||||||
|
Since our OpenBSD port has Mroonga disabled (until this is fixed) I forgot about this issue. It still exists with 10.0.27.
| ||||||||||
| Comment by Kouhei Sutou [ 2016-08-30 ] | ||||||||||
|
Thanks for your report. Mroonga will be able to build on OpenBSD when the latest Groonga and Mroonga are merged into MariaDB. | ||||||||||
| Comment by Brad Smith [ 2016-08-30 ] | ||||||||||
|
Except that did not fix anything. It's a nasty workaround. OpenBSD does have TCP_NODELAY. It is in netinet/tcp.h where it should be. The problem is with the CMake test that is testing for the existence of netinet/tcp.h, the test needs to test sys/types.h + netinet/tcp.h. As Jon pointed out this also affects illumos/Solaris. | ||||||||||
| Comment by Kouhei Sutou [ 2016-08-30 ] | ||||||||||
|
Do you know a document that TCP_NODELAY requires sys/types.h + netinet/tcp.h? http://man.openbsd.org/OpenBSD-5.9/tcp.4 says only netinet/tcp.h: > TCP_NODELAY (from <netinet/tcp.h>) | ||||||||||
| Comment by Kouhei Sutou [ 2016-08-30 ] | ||||||||||
|
MariaDB 10.0.27 still bundles old Mroonga and Groonga. | ||||||||||
| Comment by Brad Smith [ 2020-11-16 ] | ||||||||||
|
I updated the ticket since it is still open but it was based on 10.0 way back in 2016. Now we're using 10.5. | ||||||||||
| Comment by Sergei Golubchik [ 2020-11-19 ] | ||||||||||
|
komainu8, is it something you would want to look at? | ||||||||||
| Comment by Horimoto Yasuhiro [ 2020-11-24 ] | ||||||||||
|
Probably, this problem is caused by the Mroonga version is old. So, first of all, we update to the latest the Mroonga that is included in MariaDB. | ||||||||||
| Comment by Daniel Nachun [ 2021-07-02 ] | ||||||||||
|
I'm a Homebrew maintainer and we recently identified the root cause of this problem. | ||||||||||
| Comment by Brad Smith [ 2021-07-03 ] | ||||||||||
|
Oh. I see what you're talking about. From the error, looking at /usr/include/c++/v1/cstddef.. which has...
and there are some header paths added (-I/home/ports/pobj/mariadb-10.5.8/mariadb-10.5.8/storage/mroonga) during the build which happen to have files named "version". I was wondering why we had not run into this with libmarias3 but then I noticed it's VERSION there instead of version so we luck out due to case sensitivity. | ||||||||||
| Comment by Daniel Nachun [ 2021-07-03 ] | ||||||||||
|
Actually this is a problem for libmarias3 as well because macOS is not case sensitive, but it was resolved in a commit that hasn't made it into 10.5 yet: https://github.com/mariadb-corporation/libmarias3/commit/c71898f82598. | ||||||||||
| Comment by Oleksandr Byelkin [ 2021-07-27 ] | ||||||||||
|
| ||||||||||
| Comment by Brad Smith [ 2021-08-13 ] | ||||||||||
|
Thanks. With 10.6.4 out we're now shipping Mroonga with our port / package in -current. |