mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
mariadb: switch from mysql to mariadb
- kodi-patch merged upstream - mariadb is selected as default
This commit is contained in:
parent
0ea19c3fe5
commit
ff62a9ac3c
@ -76,8 +76,8 @@
|
||||
# build with UPnP support (yes / no)
|
||||
KODI_UPNP_SUPPORT="yes"
|
||||
|
||||
# build with MySQL support (yes / no)
|
||||
KODI_MYSQL_SUPPORT="yes"
|
||||
# build with MySQL support (mysql / mariadb / none)
|
||||
KODI_MYSQL_SUPPORT="mariadb"
|
||||
|
||||
# build xbmc with sshlib support (yes / no)
|
||||
KODI_SSHLIB_SUPPORT="yes"
|
||||
|
41
packages/databases/mariadb-connector-c/package.mk
Normal file
41
packages/databases/mariadb-connector-c/package.mk
Normal file
@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2018-present Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mariadb-connector-c"
|
||||
PKG_VERSION="3.0.2"
|
||||
PKG_SHA256="f44f436fc35e081db3a56516de9e3bb11ae96838e75d58910be28ddd2bc56d88"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="https://mariadb.org/"
|
||||
PKG_URL="https://github.com/MariaDB/mariadb-connector-c/archive/v$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain zlib openssl"
|
||||
PKG_SECTION="database"
|
||||
PKG_SHORTDESC="mariadb-connector: library to conntect to mariadb/mysql database server"
|
||||
PKG_LONGDESC="mariadb-connector: library to conntect to mariadb/mysql database server"
|
||||
|
||||
PKG_CMAKE_OPTS_TARGET="-DWITH_EXTERNAL_ZLIB=ON
|
||||
-DAUTH_CLEARTEXT=STATIC
|
||||
-DAUTH_DIALOG=STATIC
|
||||
-DAUTH_OLDPASSWORD=STATIC
|
||||
-DREMOTEIO=OFF
|
||||
"
|
||||
|
||||
post_makeinstall_target() {
|
||||
# drop all unneeded
|
||||
rm -rf $INSTALL/usr
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
From 642320e2cf5d8283b36cd92a0e4d2c93cf410775 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Sascha=20K=C3=BChndel?= <dev@inusasha.de>
|
||||
Date: Thu, 4 Jan 2018 22:00:40 +0100
|
||||
Subject: [PATCH] fix typo in plugins.cmake
|
||||
|
||||
---
|
||||
cmake/plugins.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/plugins.cmake b/cmake/plugins.cmake
|
||||
index cca6836c..5066a300 100644
|
||||
--- a/cmake/plugins.cmake
|
||||
+++ b/cmake/plugins.cmake
|
||||
@@ -46,7 +46,7 @@ REGISTER_PLUGIN("AUTH_NATIVE" "${CC_SOURCE_DIR}/plugins/auth/my_auth.c" "native_
|
||||
REGISTER_PLUGIN("AUTH_OLDPASSWORD" "${CC_SOURCE_DIR}/plugins/auth/old_password.c" "old_password_client_plugin" "STATIC" "" 1)
|
||||
SET(DIALOG_SOURCES ${CC_SOURCE_DIR}/plugins/auth/dialog.c ${CC_SOURCE_DIR}/libmariadb/get_password.c)
|
||||
REGISTER_PLUGIN("AUTH_DIALOG" "${DIALOG_SOURCES}" "auth_dialog_plugin" "DYNAMIC" dialog 1)
|
||||
-REGISTER_PLUGIN("AUTH_CLEARTEXT" "${CC_SOURCE_DIR}/plugins/auth/mariadb_clear_text.c" "auth_cleartext_plugin" "DYNAMIC" "mysql_clear_password" 1)
|
||||
+REGISTER_PLUGIN("AUTH_CLEARTEXT" "${CC_SOURCE_DIR}/plugins/auth/mariadb_cleartext.c" "auth_cleartext_plugin" "DYNAMIC" "mysql_clear_password" 1)
|
||||
IF(WIN32)
|
||||
SET(GSSAPI_SOURCES ${CC_SOURCE_DIR}/plugins/auth/auth_gssapi_client.c ${CC_SOURCE_DIR}/plugins/auth/sspi_client.c ${CC_SOURCE_DIR}/plugins/auth/sspi_errmsg.c)
|
||||
REGISTER_PLUGIN("AUTH_GSSAPI" "${GSSAPI_SOURCES}" "auth_gssapi_plugin" "DYNAMIC" "auth_gssapi_client" 1)
|
@ -103,12 +103,15 @@ else
|
||||
KODI_AVAHI="-DENABLE_AVAHI=OFF"
|
||||
fi
|
||||
|
||||
if [ "$KODI_MYSQL_SUPPORT" = yes ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET mysql"
|
||||
KODI_MYSQL="-DENABLE_MYSQLCLIENT=ON"
|
||||
else
|
||||
KODI_MYSQL="-DENABLE_MYSQLCLIENT=OFF"
|
||||
fi
|
||||
case "$KODI_MYSQL_SUPPORT" in
|
||||
mysql) PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET mysql"
|
||||
KODI_MYSQL="-DENABLE_MYSQLCLIENT=ON -DENABLE_MARIADBCLIENT=OFF"
|
||||
;;
|
||||
mariadb) PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET mariadb-connector-c"
|
||||
KODI_MYSQL="-DENABLE_MARIADBCLIENT=ON -DENABLE_MYSQLCLIENT=OFF"
|
||||
;;
|
||||
*) KODI_MYSQL="-DENABLE_MYSQLCLIENT=OFF -DENABLE_MARIADBCLIENT=OFF"
|
||||
esac
|
||||
|
||||
if [ "$KODI_AIRPLAY_SUPPORT" = yes ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libplist"
|
||||
|
@ -0,0 +1,197 @@
|
||||
From 35c299575feaf12dd09e9571e981347436063806 Mon Sep 17 00:00:00 2001
|
||||
From: "Sascha Kuehndel (InuSasha)" <dev@inusasha.de>
|
||||
Date: Fri, 5 Jan 2018 18:14:12 +0100
|
||||
Subject: [PATCH] sql-client: add support for mariadb-client mariadb is a
|
||||
place-in for mysql. only, the search pathes and the include path are changed.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 12 +++++-
|
||||
cmake/modules/FindMariaDBClient.cmake | 69 +++++++++++++++++++++++++++++++++++
|
||||
xbmc/dbwrappers/CMakeLists.txt | 2 +-
|
||||
xbmc/dbwrappers/Database.cpp | 6 +--
|
||||
xbmc/dbwrappers/mysqldataset.cpp | 4 ++
|
||||
xbmc/dbwrappers/mysqldataset.h | 4 ++
|
||||
6 files changed, 92 insertions(+), 5 deletions(-)
|
||||
create mode 100644 cmake/modules/FindMariaDBClient.cmake
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 08bebea13a59..150fe9744ce9 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -151,7 +151,6 @@ set(optional_deps Alsa
|
||||
LCMS2
|
||||
MDNS
|
||||
MicroHttpd
|
||||
- MySqlClient
|
||||
PulseAudio
|
||||
Python
|
||||
SmbClient
|
||||
@@ -179,6 +178,17 @@ core_optional_dep(${optional_deps})
|
||||
core_require_dyload_dep(${required_dyload})
|
||||
core_optional_dyload_dep(${dyload_optional})
|
||||
|
||||
+if(ENABLE_MARIADBCLIENT AND NOT ENABLE_MARIADBCLIENT STREQUAL AUTO AND ENABLE_MYSQLCLIENT AND NOT ENABLE_MYSQLCLIENT STREQUAL AUTO)
|
||||
+ MESSAGE(FATAL_ERROR "You can not use MySql and MariaDB at the same time. Disable one by adding -DENABLE_MYSQLCLIENT=OFF or -DENABLE_MARIADBCLIENT=OFF.")
|
||||
+elseif(ENABLE_MYSQLCLIENT AND NOT ENABLE_MYSQLCLIENT STREQUAL AUTO)
|
||||
+ set(ENABLE_MARIADBCLIENT OFF CACHE BOOL "")
|
||||
+endif()
|
||||
+
|
||||
+core_optional_dep(MariaDBClient)
|
||||
+if(NOT MARIADBCLIENT_FOUND)
|
||||
+ core_optional_dep(MySqlClient)
|
||||
+endif()
|
||||
+
|
||||
if(NOT UDEV_FOUND)
|
||||
core_optional_dep(LibUSB)
|
||||
endif()
|
||||
diff --git a/cmake/modules/FindMariaDBClient.cmake b/cmake/modules/FindMariaDBClient.cmake
|
||||
new file mode 100644
|
||||
index 000000000000..1e5e736f46b0
|
||||
--- /dev/null
|
||||
+++ b/cmake/modules/FindMariaDBClient.cmake
|
||||
@@ -0,0 +1,69 @@
|
||||
+#.rst:
|
||||
+# FindMariaDBClient
|
||||
+# ---------------
|
||||
+# Finds the MariaDBClient library
|
||||
+#
|
||||
+# This will will define the following variables::
|
||||
+#
|
||||
+# MARIADBCLIENT_FOUND - system has MariaDBClient
|
||||
+# MARIADBCLIENT_INCLUDE_DIRS - the MariaDBClient include directory
|
||||
+# MARIADBCLIENT_LIBRARIES - the MariaDBClient libraries
|
||||
+# MARIADBCLIENT_DEFINITIONS - the MariaDBClient compile definitions
|
||||
+#
|
||||
+# and the following imported targets::
|
||||
+#
|
||||
+# MariaDBClient::MariaDBClient - The MariaDBClient library
|
||||
+
|
||||
+# Don't find system wide installed version on Windows
|
||||
+if(WIN32)
|
||||
+ set(EXTRA_FIND_ARGS NO_SYSTEM_ENVIRONMENT_PATH)
|
||||
+else()
|
||||
+ set(EXTRA_FIND_ARGS)
|
||||
+endif()
|
||||
+
|
||||
+find_path(MARIADBCLIENT_INCLUDE_DIR NAMES mariadb/mysql.h mariadb/server/mysql.h)
|
||||
+find_library(MARIADBCLIENT_LIBRARY_RELEASE NAMES mariadbclient libmariadb
|
||||
+ PATH_SUFFIXES mariadb
|
||||
+ ${EXTRA_FIND_ARGS})
|
||||
+find_library(MARIADBCLIENT_LIBRARY_DEBUG NAMES mariadbclient libmariadb
|
||||
+ PATH_SUFFIXES mariadb
|
||||
+ ${EXTRA_FIND_ARGS})
|
||||
+
|
||||
+if(MARIADBCLIENT_INCLUDE_DIR AND EXISTS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h")
|
||||
+ file(STRINGS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h" mariadb_version_str REGEX "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\".*\".*")
|
||||
+ string(REGEX REPLACE "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\"([^\"]+)\".*" "\\1" MARIADBCLIENT_VERSION_STRING "${mariadb_version_str}")
|
||||
+ unset(mariadb_version_str)
|
||||
+endif()
|
||||
+
|
||||
+include(SelectLibraryConfigurations)
|
||||
+select_library_configurations(MARIADBCLIENT)
|
||||
+
|
||||
+include(FindPackageHandleStandardArgs)
|
||||
+find_package_handle_standard_args(MariaDBClient
|
||||
+ REQUIRED_VARS MARIADBCLIENT_LIBRARY MARIADBCLIENT_INCLUDE_DIR
|
||||
+ VERSION_VAR MARIADBCLIENT_VERSION_STRING)
|
||||
+
|
||||
+if(MARIADBCLIENT_FOUND)
|
||||
+ set(MARIADBCLIENT_LIBRARIES ${MARIADBCLIENT_LIBRARY})
|
||||
+ set(MARIADBCLIENT_INCLUDE_DIRS ${MARIADBCLIENT_INCLUDE_DIR})
|
||||
+ set(MARIADBCLIENT_DEFINITIONS -DHAS_MARIADB=1)
|
||||
+
|
||||
+ if(NOT TARGET MariaDBClient::MariaDBClient)
|
||||
+ add_library(MariaDBClient::MariaDBClient UNKNOWN IMPORTED)
|
||||
+ if(MARIADBCLIENT_LIBRARY_RELEASE)
|
||||
+ set_target_properties(MariaDBClient::MariaDBClient PROPERTIES
|
||||
+ IMPORTED_CONFIGURATIONS RELEASE
|
||||
+ IMPORTED_LOCATION "${MARIADBCLIENT_LIBRARY_RELEASE}")
|
||||
+ endif()
|
||||
+ if(MARIADBCLIENT_LIBRARY_DEBUG)
|
||||
+ set_target_properties(MariaDBClient::MariaDBClient PROPERTIES
|
||||
+ IMPORTED_CONFIGURATIONS DEBUG
|
||||
+ IMPORTED_LOCATION "${MARIADBCLIENT_LIBRARY_DEBUG}")
|
||||
+ endif()
|
||||
+ set_target_properties(MariaDBClient::MariaDBClient PROPERTIES
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${MARIADBCLIENT_INCLUDE_DIR}"
|
||||
+ INTERFACE_COMPILE_DEFINITIONS HAS_MARIADB=1)
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
+mark_as_advanced(MARIADBCLIENT_INCLUDE_DIR MARIADBCLIENT_LIBRARY)
|
||||
diff --git a/xbmc/dbwrappers/CMakeLists.txt b/xbmc/dbwrappers/CMakeLists.txt
|
||||
index 5ca090f0e4dd..16a03f291a6c 100644
|
||||
--- a/xbmc/dbwrappers/CMakeLists.txt
|
||||
+++ b/xbmc/dbwrappers/CMakeLists.txt
|
||||
@@ -10,7 +10,7 @@ set(HEADERS Database.h
|
||||
qry_dat.h
|
||||
sqlitedataset.h)
|
||||
|
||||
-if(MYSQLCLIENT_FOUND)
|
||||
+if(MYSQLCLIENT_FOUND OR MARIADBCLIENT_FOUND)
|
||||
list(APPEND SOURCES mysqldataset.cpp)
|
||||
list(APPEND HEADERS mysqldataset.h)
|
||||
endif()
|
||||
diff --git a/xbmc/dbwrappers/Database.cpp b/xbmc/dbwrappers/Database.cpp
|
||||
index b90b28508e6d..c3ae6480bb74 100644
|
||||
--- a/xbmc/dbwrappers/Database.cpp
|
||||
+++ b/xbmc/dbwrappers/Database.cpp
|
||||
@@ -30,7 +30,7 @@
|
||||
#include "DatabaseManager.h"
|
||||
#include "DbUrl.h"
|
||||
|
||||
-#ifdef HAS_MYSQL
|
||||
+#if defined(HAS_MYSQL) || defined(HAS_MARIADB)
|
||||
#include "mysqldataset.h"
|
||||
#endif
|
||||
|
||||
@@ -378,7 +378,7 @@ void CDatabase::InitSettings(DatabaseSettings &dbSettings)
|
||||
{
|
||||
m_sqlite = true;
|
||||
|
||||
-#ifdef HAS_MYSQL
|
||||
+#if defined(HAS_MYSQL) || defined(HAS_MARIADB)
|
||||
if (dbSettings.type == "mysql")
|
||||
{
|
||||
// check we have all information before we cancel the fallback
|
||||
@@ -421,7 +421,7 @@ bool CDatabase::Connect(const std::string &dbName, const DatabaseSettings &dbSet
|
||||
{
|
||||
m_pDB.reset( new SqliteDatabase() ) ;
|
||||
}
|
||||
-#ifdef HAS_MYSQL
|
||||
+#if defined(HAS_MYSQL) || defined(HAS_MARIADB)
|
||||
else if (dbSettings.type == "mysql")
|
||||
{
|
||||
m_pDB.reset( new MysqlDatabase() ) ;
|
||||
diff --git a/xbmc/dbwrappers/mysqldataset.cpp b/xbmc/dbwrappers/mysqldataset.cpp
|
||||
index 4e561296a630..69d48201483e 100644
|
||||
--- a/xbmc/dbwrappers/mysqldataset.cpp
|
||||
+++ b/xbmc/dbwrappers/mysqldataset.cpp
|
||||
@@ -30,7 +30,11 @@
|
||||
#include "utils/StringUtils.h"
|
||||
|
||||
#include "mysqldataset.h"
|
||||
+#ifdef HAS_MYSQL
|
||||
#include "mysql/errmsg.h"
|
||||
+#elif defined(HAS_MARIADB)
|
||||
+#include <mariadb/errmsg.h>
|
||||
+#endif
|
||||
|
||||
#ifdef TARGET_POSIX
|
||||
#include "platform/linux/ConvUtils.h"
|
||||
diff --git a/xbmc/dbwrappers/mysqldataset.h b/xbmc/dbwrappers/mysqldataset.h
|
||||
index c3072acb1f8a..65949b013787 100644
|
||||
--- a/xbmc/dbwrappers/mysqldataset.h
|
||||
+++ b/xbmc/dbwrappers/mysqldataset.h
|
||||
@@ -22,7 +22,11 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include "dataset.h"
|
||||
+#ifdef HAS_MYSQL
|
||||
#include "mysql/mysql.h"
|
||||
+#elif defined(HAS_MARIADB)
|
||||
+#include <mariadb/mysql.h>
|
||||
+#endif
|
||||
|
||||
namespace dbiplus {
|
||||
/***************** Class MysqlDatabase definition ******************
|
Loading…
x
Reference in New Issue
Block a user