[MDEV-24161] Provide a CMake option to disable the OQGraph backend Created: 2020-11-07  Updated: 2020-11-15  Resolved: 2020-11-15

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - OQGRAPH
Affects Version/s: None
Fix Version/s: 10.2.37, 10.3.28, 10.4.18, 10.5.9

Type: Bug Priority: Major
Reporter: Brad Smith Assignee: Daniel Black
Resolution: Fixed Votes: 0
Labels: None


 Description   

OpenBSD has a diff like the following which I believe I copied from FreeBSD.

Please provide a CMake option to disable the OQGraph backend to ensure reproducible builds of packages.

Index: storage/oqgraph/CMakeLists.txt
--- storage/oqgraph/CMakeLists.txt.orig
+++ storage/oqgraph/CMakeLists.txt
@@ -1,13 +1,12 @@
 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+# Disable oqgraph storage engine
+IF(TRUE)
+  RETURN()
+ENDIF()
 
 FUNCTION(CHECK_OQGRAPH)
 MESSAGE(STATUS "Configuring OQGraph")
 FIND_PACKAGE(Boost 1.40.0)
-IF(NOT Boost_FOUND)
-  MESSAGE(STATUS "Boost not found. OQGraph will not be compiled")
-  SET(OQGRAPH_OK 0 CACHE INTERNAL "")
-  RETURN()
-ENDIF()
 INCLUDE_DIRECTORIES(BEFORE ${Boost_INCLUDE_DIRS})
 
 FIND_PACKAGE(Judy)



 Comments   
Comment by Daniel Black [ 2020-11-07 ]

`-DPLUGIN_OQGRAPH=NO`

Comment by Brad Smith [ 2020-11-07 ]

If that is a valid option it doesn't do anything.

– Configuring OQGraph
– Found Boost: /usr/local/include (found suitable version "1.70.0", minimum required is "1.40.0")
– Judy not found. OQGraph will not be compiled

I use the option -DPLUGIN_COLUMNSTORE=NO and other -DWITHOUT_foo_STORAGE_ENGINE=1 options as well.

Comment by Sergei Golubchik [ 2020-11-07 ]

Since MariaDB 10.1 any plugin can be disabled with -DPLUGIN_xxx=NO

The plugin will not be built, but it does not mean compilation-time checks will be skipped.
It seems that in the OQGraph case it will always perform its checks in cmake and then will or will not build the plugin as instructed.

Comment by Brad Smith [ 2020-11-07 ]

Ya, still probing for dependencies even if the plugin is still not being built is confusing to packagers and users. That goes against what people would expect.

Comment by Daniel Black [ 2020-11-08 ]

Agree, So I think I can do something simple before next general release

Comment by Anel Husakovic [ 2020-11-09 ]

Seems that this commit 2400e06946bb

commit 2400e06946bb5856684fd27ee86f610267bf4dc3
Author: Sergei Golubchik <serg@mariadb.org>
Date:   Thu May 9 19:12:34 2019 +0200
 
    remove -fno-rtti

removed previous check of the flag.

Comment by Daniel Black [ 2020-11-13 ]

Testing: https://buildbot.mariadb.org/#/grid?branch=bb-10.2-danielblack-MDEV-24161-shortcut-oqgraph-tests-if-disabled

Comment by Brad Smith [ 2020-11-14 ]

That seems to do what would be expected. With the diff from the build log from pre-patched to patched..

@@ -1046,9 +1059,6 @@ getconf: LEVEL1_DCACHE_LINESIZE: unknown variable
 -- Searching 16 bit integer
 -- Searching 16 bit integer - Using unsigned short
 -- Check if the system is big endian - little endian
--- Configuring OQGraph
--- Found Boost: /usr/local/include (found suitable version "1.70.0", minimum required is "1.40.0")
--- Judy not found. OQGraph will not be compiled
 -- Performing Test HAVE_PTHREAD_THREADID_NP
 -- Performing Test HAVE_PTHREAD_THREADID_NP - Failed
 -- Performing Test HAVE_SYS_GETTID

Comment by Daniel Black [ 2020-11-15 ]

Thanks Brad, fix will be in next version.

Generated at Thu Feb 08 09:27:53 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.