Skip to content

Commit

Permalink
Integrate python mysqlclient wheel and provide default example using …
Browse files Browse the repository at this point in the history
…python310 (#5068)

* libmysqlclient: Update to using system libevent, lz4 and zlib

* python310: Add mysqlclient python wheel example

* libmysqlclient: Remove duplicate cmake option

* mariadb-connector-c: Add initial release + python wheel

* libmysqlclient: Allow it to install with mariadb-connector-c

* python310: Update pillow to version 9.0

* mysql-connector-c: Rename from libmysqlclient

* ntopng: Add comment related to mysql-connector-c include files

Co-authored-by: hgy59 <hpgy59@gmail.com>
  • Loading branch information
th0ma7 and hgy59 committed Jan 22, 2022
1 parent f183d4d commit 853a48c
Show file tree
Hide file tree
Showing 9 changed files with 71 additions and 9 deletions.
27 changes: 27 additions & 0 deletions cross/mariadb-connector-c/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
PKG_NAME = mariadb-connector-c
PKG_VERS = 3.2.5
PKG_EXT = tar.gz
PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT)
PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/mariadb-corporation/mariadb-connector-c/archive/refs/tags
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

HOMEPAGE = https://mariadb.com/kb/en/mariadb-connector-c/
COMMENT = MariaDB C Connector
LICENSE = LGPL

include ../../mk/spksrc.cross-cmake.mk

# MySQL specific:
CMAKE_ARGS += -DWITH_UNIT_TESTS=OFF
CMAKE_ARGS += -DDEFAULT_CHARSET=utf8
CMAKE_ARGS += -DINSTALL_LIBDIR=lib

DEPENDS += cross/openssl
CMAKE_ARGS += -DWITH_SSL=ON
DEPENDS += cross/zlib
CMAKE_ARGS += -DWITH_EXTERNAL_ZLIB=ON
DEPENDS += cross/libiconv
CMAKE_ARGS += -DWITH_ICONV=ON
DEPENDS += cross/curl
CMAKE_ARGS += -DWITH_CURL=ON
9 changes: 9 additions & 0 deletions cross/mariadb-connector-c/PLIST
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
bin:bin/mariadb_config
lnk:lib/libmariadb.so
lib:lib/libmariadb.so.3
lib:lib/mariadb/plugin/caching_sha2_password.so
lib:lib/mariadb/plugin/client_ed25519.so
lib:lib/mariadb/plugin/dialog.so
lib:lib/mariadb/plugin/mysql_clear_password.so
lib:lib/mariadb/plugin/remote_io.so
lib:lib/mariadb/plugin/remote_io.so
3 changes: 3 additions & 0 deletions cross/mariadb-connector-c/digests
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
mariadb-connector-c-3.2.5.tar.gz SHA1 2054b8a6dbe51ad82d23f5c83e212e8411a91a2c
mariadb-connector-c-3.2.5.tar.gz SHA256 edf1e1035c020c23874561cab3f97fd1d8ed11221c47177a1bc178eb971fd351
mariadb-connector-c-3.2.5.tar.gz MD5 9ab9205418a933b0a7920e7cf424cc36
20 changes: 14 additions & 6 deletions cross/libmysqlclient/Makefile → cross/mysql-connector-c/Makefile
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
PKG_NAME = libmysqlclient
PKG_REAL_NAME = mysql-connector-c
PKG_NAME = mysql-connector-c
PKG_VERS = 6.1.11
PKG_EXT = tar.gz
DIST_NAME = $(PKG_REAL_NAME)-$(PKG_VERS)-src
DIST_NAME = $(PKG_NAME)-$(PKG_VERS)-src
PKG_DIST_NAME = $(DIST_NAME).$(PKG_EXT)
PKG_DIST_SITE = https://cdn.mysql.com/archives/$(PKG_REAL_NAME)
PKG_DIST_SITE = https://cdn.mysql.com/archives/$(PKG_NAME)
PKG_DIR = $(DIST_NAME)

DEPENDS = native/libmysqlclient
BUILD_DEPENDS = native/libmysqlclient

HOMEPAGE = https://downloads.mysql.com/archives/c-c
COMMENT = MySQL C API (libmysqlclient)
Expand All @@ -17,7 +16,6 @@ include ../../mk/spksrc.cross-cmake.mk

# Mandatory for build
CMAKE_ARGS += -DHAVE_LLVM_LIBCPP_EXITCODE=1
CMAKE_ARGS += -DHAVE_C_FLOATING_POINT_OPTIMIZATION_PROBLEMS_EXITCODE=1
CMAKE_ARGS += -DHAVE_CXX_FLOATING_POINT_OPTIMIZATION_PROBLEMS_EXITCODE=1
CMAKE_ARGS += -DHAVE_C_FLOATING_POINT_OPTIMIZATION_PROBLEMS_EXITCODE=1
CMAKE_ARGS += -DHAVE_C_FLOATING_POINT_OPTIMIZATION_PROBLEMS_EXITCODE__TRYRUN_OUTPUT=1
Expand All @@ -28,6 +26,16 @@ CMAKE_ARGS += -DWITH_EMBEDDED_SERVER=FALSE
CMAKE_ARGS += -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
# Fix full lib version:
CMAKE_ARGS += -DSHARED_LIB_PATCH_VERSION=0
# Fix for mariadb connector
CMAKE_ARGS += -DINSTALL_INCLUDEDIR=include/mysql

# WITH_SSL=[yes|bundled|system|<path/to/custom/installation>]
# Not compatible with OpenSSL 1.1
# Requires updating to mysql-connector-c++ version 8.x
#DEPENDS += cross/openssl
#CMAKE_ARGS += -DWITH_SSL=system
DEPENDS += cross/zlib
CMAKE_ARGS += -DWITH_ZLIB=system

# Use gcc builtin atomic functions for ppc architectures
ifneq ($(findstring $(ARCH),$(PPC_ARCHS)),)
Expand Down
File renamed without changes.
File renamed without changes.
6 changes: 5 additions & 1 deletion cross/ntopng/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

DEPENDS = cross/libcap cross/ndpi cross/curl
DEPENDS += cross/libmaxminddb cross/sqlite cross/libmysqlclient
DEPENDS += cross/libmaxminddb cross/sqlite cross/mysql-connector-c
DEPENDS += cross/readline cross/libzmq cross/libxml2 cross/glib cross/groff
DEPENDS += cross/json-c cross/rrdtool cross/lua

Expand Down Expand Up @@ -53,6 +53,10 @@ CONFIGURE_ARGS = --prefix=$(INSTALL_PREFIX)
CONFIGURE_ARGS += --with-ndpi-includes=$(STAGING_INSTALL_PREFIX)/include/ndpi
CONFIGURE_ARGS += --with-ndpi-static-lib=$(STAGING_INSTALL_PREFIX)/lib

# May be required as mysql-connector-c include
# files are now located under include/mysql
# ADDITIONAL_CFLAGS = -I$(STAGING_INSTALL_PREFIX)/include/mysql

# let ./configure find mysql_config (it is a script and works for cross compile)
ENV += "PATH=$(PATH):$(STAGING_INSTALL_PREFIX)/bin"
ENV += DESTDIR=$(INSTALL_DIR)
Expand Down
5 changes: 5 additions & 0 deletions spk/python310/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ DEPENDS += cross/pip
# ENV += GEVENTSETUP_EMBED_CARES=FALSE
# ENV += GEVENTSETUP_EMBED_LIBEV=FALSE

# [mysqlclient]
# DEPENDS += cross/mysql-connector-c cross/mariadb-connector-c
# ENV += MYSQLCLIENT_CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/include/mysql -I$(STAGING_INSTALL_PREFIX)/include/mariadb -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR)"
# ENV += MYSQLCLIENT_LDFLAGS="$(LDFLAGS)"

include ../../mk/spksrc.common.mk

# [numpy] gcc-4.6.4 failed with exit status 1
Expand Down
10 changes: 8 additions & 2 deletions spk/python310/src/requirements-crossenv.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,14 @@
# SQLAlchemy==1.4.29
# zope.interface==5.4.0

# Require: WHEELS_BUILD_ARGS = [Pillow] build_ext --disable-platform-guessing
# Pillow==8.4.0
# Require environment variables
# MYSQLCLIENT_CFLAGS
# MYSQLCLIENT_LDFLAGS
# mysqlclient==2.1.0

# Require --global-options arguments
# WHEELS_BUILD_ARGS = [Pillow] build_ext --disable-platform-guessing
# Pillow==9.0.0

# numpy:
# - Require Cython in cross/python310 crossenv
Expand Down

0 comments on commit 853a48c

Please sign in to comment.