summaryrefslogtreecommitdiffstats
path: root/libservices
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 18:07:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 18:07:14 +0000
commita175314c3e5827eb193872241446f2f8f5c9d33c (patch)
treecd3d60ca99ae00829c52a6ca79150a5b6e62528b /libservices
parentInitial commit. (diff)
downloadmariadb-10.5-upstream.tar.xz
mariadb-10.5-upstream.zip
Adding upstream version 1:10.5.12.upstream/1%10.5.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--libservices/CMakeLists.txt44
-rw-r--r--libservices/HOWTO103
-rw-r--r--libservices/base64_service.c18
-rw-r--r--libservices/debug_sync_service.c18
-rw-r--r--libservices/encryption_scheme_service.c17
-rw-r--r--libservices/encryption_service.c17
-rw-r--r--libservices/json_service.c19
-rw-r--r--libservices/kill_statement_service.c18
-rw-r--r--libservices/logger_service.c20
-rw-r--r--libservices/my_crypt_service.c2
-rw-r--r--libservices/my_md5_service.c18
-rw-r--r--libservices/my_print_error_service.c17
-rw-r--r--libservices/my_sha1_service.c18
-rw-r--r--libservices/my_sha2_service.c18
-rw-r--r--libservices/my_snprintf_service.c18
-rw-r--r--libservices/mysqlservices_aix.def23
-rw-r--r--libservices/progress_report_service.c17
-rw-r--r--libservices/thd_alloc_service.c18
-rw-r--r--libservices/thd_autoinc_service.c18
-rw-r--r--libservices/thd_error_context_service.c18
-rw-r--r--libservices/thd_rnd_service.c17
-rw-r--r--libservices/thd_specifics_service.c17
-rw-r--r--libservices/thd_timezone_service.c18
-rw-r--r--libservices/thd_wait_service.c19
-rw-r--r--libservices/wsrep_service.c20
25 files changed, 550 insertions, 0 deletions
diff --git a/libservices/CMakeLists.txt b/libservices/CMakeLists.txt
new file mode 100644
index 00000000..274c8ce6
--- /dev/null
+++ b/libservices/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Copyright (c) 2006 MySQL AB, 2010 Oracle and/or its affiliates.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+
+SET(MYSQLSERVICES_SOURCES
+ base64_service.c
+ debug_sync_service.c
+ encryption_scheme_service.c
+ encryption_service.c
+ kill_statement_service.c
+ logger_service.c
+ my_crypt_service.c
+ my_md5_service.c
+ my_print_error_service.c
+ my_sha1_service.c
+ my_sha2_service.c
+ my_snprintf_service.c
+ progress_report_service.c
+ thd_alloc_service.c
+ thd_autoinc_service.c
+ thd_error_context_service.c
+ thd_rnd_service.c
+ thd_specifics_service.c
+ thd_timezone_service.c
+ thd_wait_service.c
+ wsrep_service.c
+ json_service.c
+ )
+
+ADD_CONVENIENCE_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES})
+INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development)
diff --git a/libservices/HOWTO b/libservices/HOWTO
new file mode 100644
index 00000000..6a581bf2
--- /dev/null
+++ b/libservices/HOWTO
@@ -0,0 +1,103 @@
+Copyright (c) 2009 Sun Microsystems, Inc.
+
+How to create a new service
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A "service" is a set of C functions in a structure that a
+service dynamic linker uses when a dynamic plugin is loaded.
+
+If you want to export C++ class you need to provide an
+extern "C" function that will create a new instance of your class,
+and put it in a service.
+
+Data structures are not part of the service structure, but they are part
+of the API you create and usually need to be declared in the same
+service_*.h file.
+
+To turn a set of functions (foo_func1, foo_func2)
+into a service "foo" you need to
+
+1. create a new file include/mysql/service_foo.h
+
+2. the template is
+==================================================================
+ #ifndef MYSQL_SERVICE_FOO_INCLUDED
+ /* standard GPL header */
+
+ /**
+ @file
+ *exhaustive* description of the interface you provide.
+ This file is the main user documentation of the new service
+ */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+ extern struct foo_service_st {
+ int (*foo_func1_ptr)(...); /* fix the prototype as appropriate */
+ void (*foo_func2_ptr)(...); /* fix the prototype as appropriate */
+ } *foo_service;
+
+ #ifdef MYSQL_DYNAMIC_PLUGIN
+
+ #define foo_func1(...) foo_service->foo_func1_ptr(...)
+ #define foo_func2(...) foo_service->foo_func2_ptr(...)
+
+ #else
+
+ int foo_func1(...); /* fix the prototype as appropriate */
+ void foo_func2(...); /* fix the prototype as appropriate */
+
+ #endif
+
+ #ifdef __cplusplus
+ }
+ #endif
+
+ #define MYSQL_SERVICE_FOO_INCLUDED
+ #endif
+==================================================================
+
+the service_foo.h file should be self-contained, if it needs system headers -
+include them in it, e.g. if you use size_t - #include <stdlib.h>
+
+it should also declare all the accompanying data structures, as necessary
+(e.g. thd_alloc_service declares MYSQL_LEX_STRING).
+
+3. add the new file to include/mysql/services.h
+4. increase the minor plugin ABI version in include/mysql/plugin.h
+ (MARIA_PLUGIN_INTERFACE_VERSION = MARIA_PLUGIN_INTERFACE_VERSION+1)
+ don't forget to update test result! e.g. use something like
+ grep '\s\<1\.11\>' -r mysql-test
+5. add the version of your service to include/service_versions.h:
+==================================================================
+ #define VERSION_foo 0x0100
+==================================================================
+
+6. create a new file libservices/foo_service.c using the following template:
+==================================================================
+ /* GPL header */
+ #include <service_versions.h>
+ SERVICE_VERSION foo_service= (void*)VERSION_foo;
+==================================================================
+
+7. add the new file to libservices/CMakeLists.txt (MYSQLSERVICES_SOURCES)
+8. Add all new files to repository (git add)
+9. and finally, register your service for dynamic linking in
+ sql/sql_plugin_services.ic as follows:
+9.1 fill in the service structure:
+==================================================================
+ static struct foo_service_st foo_handler = {
+ foo_func1,
+ foo_func2
+ }
+==================================================================
+
+9.2 and add it to the list of services
+
+==================================================================
+ { "foo_service", VERSION_foo, &foo_handler }
+==================================================================
+
+that's all.
+
diff --git a/libservices/base64_service.c b/libservices/base64_service.c
new file mode 100644
index 00000000..d892f39f
--- /dev/null
+++ b/libservices/base64_service.c
@@ -0,0 +1,18 @@
+/* Copyright (c) 2017 MariaDB
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION base64_service= (void*)VERSION_base64;
diff --git a/libservices/debug_sync_service.c b/libservices/debug_sync_service.c
new file mode 100644
index 00000000..364e753a
--- /dev/null
+++ b/libservices/debug_sync_service.c
@@ -0,0 +1,18 @@
+/* Copyright (c) 2012, Monty Program Ab
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
+*/
+
+#include <service_versions.h>
+SERVICE_VERSION debug_sync_service= (void*)VERSION_debug_sync;
diff --git a/libservices/encryption_scheme_service.c b/libservices/encryption_scheme_service.c
new file mode 100644
index 00000000..a27fe162
--- /dev/null
+++ b/libservices/encryption_scheme_service.c
@@ -0,0 +1,17 @@
+/* Copyright (c) 2015 MariaDB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION encryption_scheme_service= (void*)VERSION_encryption_scheme;
diff --git a/libservices/encryption_service.c b/libservices/encryption_service.c
new file mode 100644
index 00000000..bf31aacd
--- /dev/null
+++ b/libservices/encryption_service.c
@@ -0,0 +1,17 @@
+/* Copyright (c) 2015 MariaDB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION encryption_service= (void*)VERSION_encryption;
diff --git a/libservices/json_service.c b/libservices/json_service.c
new file mode 100644
index 00000000..96b3b3fa
--- /dev/null
+++ b/libservices/json_service.c
@@ -0,0 +1,19 @@
+
+/* Copyright (c) 2018, Monty Program Ab
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include <service_versions.h>
+SERVICE_VERSION json_service= (void*)VERSION_json;
diff --git a/libservices/kill_statement_service.c b/libservices/kill_statement_service.c
new file mode 100644
index 00000000..c3d1e317
--- /dev/null
+++ b/libservices/kill_statement_service.c
@@ -0,0 +1,18 @@
+/* Copyright (c) 2013, Monty Program Ab.
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION thd_kill_statement_service= (void*)VERSION_kill_statement;
diff --git a/libservices/logger_service.c b/libservices/logger_service.c
new file mode 100644
index 00000000..36ba0091
--- /dev/null
+++ b/libservices/logger_service.c
@@ -0,0 +1,20 @@
+/* Copyright (C) 2012 Monty Program Ab
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+
+/* file reserved for the future use */
+SERVICE_VERSION logger_service= (void *) VERSION_logger;
+
diff --git a/libservices/my_crypt_service.c b/libservices/my_crypt_service.c
new file mode 100644
index 00000000..e6b9e273
--- /dev/null
+++ b/libservices/my_crypt_service.c
@@ -0,0 +1,2 @@
+#include <service_versions.h>
+SERVICE_VERSION my_crypt_service= (void*)VERSION_my_crypt;
diff --git a/libservices/my_md5_service.c b/libservices/my_md5_service.c
new file mode 100644
index 00000000..3937f6c9
--- /dev/null
+++ b/libservices/my_md5_service.c
@@ -0,0 +1,18 @@
+/* Copyright (c) 2014 Monty Program Ab
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION my_md5_service= (void*)VERSION_my_md5;
diff --git a/libservices/my_print_error_service.c b/libservices/my_print_error_service.c
new file mode 100644
index 00000000..a2c3b53d
--- /dev/null
+++ b/libservices/my_print_error_service.c
@@ -0,0 +1,17 @@
+/* Copyright (c) 2016 MariaDB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION my_print_error_service= (void*)VERSION_my_print_error;
diff --git a/libservices/my_sha1_service.c b/libservices/my_sha1_service.c
new file mode 100644
index 00000000..7a8c3c69
--- /dev/null
+++ b/libservices/my_sha1_service.c
@@ -0,0 +1,18 @@
+/* Copyright (c) 2013 Monty Program Ab
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION my_sha1_service= (void*)VERSION_my_sha1;
diff --git a/libservices/my_sha2_service.c b/libservices/my_sha2_service.c
new file mode 100644
index 00000000..040deb6e
--- /dev/null
+++ b/libservices/my_sha2_service.c
@@ -0,0 +1,18 @@
+/* Copyright (c) 2017 MariaDB
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION my_sha2_service= (void*)VERSION_my_sha2;
diff --git a/libservices/my_snprintf_service.c b/libservices/my_snprintf_service.c
new file mode 100644
index 00000000..6609cd14
--- /dev/null
+++ b/libservices/my_snprintf_service.c
@@ -0,0 +1,18 @@
+/* Copyright (c) 2009 Sun Microsystems, Inc.
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION my_snprintf_service= (void*)VERSION_my_snprintf;
diff --git a/libservices/mysqlservices_aix.def b/libservices/mysqlservices_aix.def
new file mode 100644
index 00000000..e6c94f6c
--- /dev/null
+++ b/libservices/mysqlservices_aix.def
@@ -0,0 +1,23 @@
+#! .
+base64_service
+debug_sync_service
+encryption_scheme_service
+encryption_service
+json_service
+logger_service
+my_crypt_service
+my_md5_service
+my_print_error_service
+my_sha1_service
+my_sha2_service
+my_snprintf_service
+progress_report_service
+thd_alloc_service
+thd_autoinc_service
+thd_error_context_service
+thd_kill_statement_service
+thd_rnd_service
+thd_specifics_service
+thd_timezone_service
+thd_wait_service
+wsrep_service
diff --git a/libservices/progress_report_service.c b/libservices/progress_report_service.c
new file mode 100644
index 00000000..02e8c7dc
--- /dev/null
+++ b/libservices/progress_report_service.c
@@ -0,0 +1,17 @@
+/* Copyright (C) 2009 Sun Microsystems, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION progress_report_service= (void*)VERSION_progress_report;
diff --git a/libservices/thd_alloc_service.c b/libservices/thd_alloc_service.c
new file mode 100644
index 00000000..cf8f514e
--- /dev/null
+++ b/libservices/thd_alloc_service.c
@@ -0,0 +1,18 @@
+/* Copyright (c) 2009 Sun Microsystems, Inc.
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION thd_alloc_service= (void*)VERSION_thd_alloc;
diff --git a/libservices/thd_autoinc_service.c b/libservices/thd_autoinc_service.c
new file mode 100644
index 00000000..bfaec343
--- /dev/null
+++ b/libservices/thd_autoinc_service.c
@@ -0,0 +1,18 @@
+/* Copyright (C) 2013 MariaDB Foundation
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION thd_autoinc_service= (void *) VERSION_thd_autoinc;
diff --git a/libservices/thd_error_context_service.c b/libservices/thd_error_context_service.c
new file mode 100644
index 00000000..3acb0ea7
--- /dev/null
+++ b/libservices/thd_error_context_service.c
@@ -0,0 +1,18 @@
+/* Copyright (C) 2013 MariaDB Foundation
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION thd_error_context_service= (void *) VERSION_thd_error_context;
diff --git a/libservices/thd_rnd_service.c b/libservices/thd_rnd_service.c
new file mode 100644
index 00000000..cc3a99ea
--- /dev/null
+++ b/libservices/thd_rnd_service.c
@@ -0,0 +1,17 @@
+/* Copyright (C) 2017 MariaDB Corporation
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION thd_rnd_service= (void *) VERSION_thd_rnd;
diff --git a/libservices/thd_specifics_service.c b/libservices/thd_specifics_service.c
new file mode 100644
index 00000000..f11381e8
--- /dev/null
+++ b/libservices/thd_specifics_service.c
@@ -0,0 +1,17 @@
+/* Copyright (C) 2014 MariaDB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION thd_specifics_service= (void *) VERSION_thd_specifics;
diff --git a/libservices/thd_timezone_service.c b/libservices/thd_timezone_service.c
new file mode 100644
index 00000000..89d8c1a6
--- /dev/null
+++ b/libservices/thd_timezone_service.c
@@ -0,0 +1,18 @@
+/* Copyright (C) 2013 MariaDB Foundation
+ Use is subject to license terms.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+SERVICE_VERSION thd_timezone_service= (void *) VERSION_thd_timezone;
diff --git a/libservices/thd_wait_service.c b/libservices/thd_wait_service.c
new file mode 100644
index 00000000..a8424ae0
--- /dev/null
+++ b/libservices/thd_wait_service.c
@@ -0,0 +1,19 @@
+/*
+ Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
+*/
+
+#include <service_versions.h>
+SERVICE_VERSION thd_wait_service= (void*)VERSION_thd_wait;
diff --git a/libservices/wsrep_service.c b/libservices/wsrep_service.c
new file mode 100644
index 00000000..ceb7ebf9
--- /dev/null
+++ b/libservices/wsrep_service.c
@@ -0,0 +1,20 @@
+/* Copyright (C) 2014 SkySQL Ab.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
+
+#include <service_versions.h>
+
+/* file reserved for the future use */
+SERVICE_VERSION wsrep_service= (void *) VERSION_wsrep;
+