1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-13 07:34:50 +00:00

databases/mariadb100-{client,server}: Update to 10.0.25

- Update to latest version 10.0.25
  - Fix security vulnerabilities
  - Replace USE_MYSQL/WANT_MYSQL_VER with USES= mysql:100m
  - Always build with SSL support, remove bundled CyaSSL
  - Align INNODB engine option with upstream option name
  - Mark not supported for TokuDB on i386
  - Backport improvements from 10.1 port
    - Replace bundled libs with ports' versions
    - ENGINES options group
  - TokuDB Engine
    - Add upstreamed patch fixing linuxism
    - Add/fix docs and license files
  - Make OQGraph ignore message explicit

PR:		209318
Security:	8c2b2f11-0ebe-11e6-b55e-b499baebfeaf
Reviewed by:	feld (mentor)
Approved by:	feld (mentor)
Differential Revision:	D6162
This commit is contained in:
Bernard Spil 2016-05-06 20:59:50 +00:00
parent 76d8477ed9
commit 65609c67cf
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=414725
11 changed files with 122 additions and 111 deletions

View File

@ -1,28 +0,0 @@
Upstreamed https://github.com/MariaDB/server/pull/139
--- cmake/jemalloc.cmake.orig 2015-12-16 16:05:44 UTC
+++ cmake/jemalloc.cmake
@@ -20,11 +20,21 @@ MACRO (CHECK_JEMALLOC)
SET(CMAKE_REQUIRED_LIBRARIES pthread dl m)
SET(what bundled)
ELSE()
- SET(libname jemalloc)
+ IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND
+ CMAKE_SYSTEM_VERSION STRGREATER "10.0")
+ SET(libname c)
+ ELSE()
+ SET(libname jemalloc)
+ ENDIF()
SET(what system)
ENDIF()
- CHECK_LIBRARY_EXISTS(${libname} malloc_stats_print "" HAVE_JEMALLOC)
+ IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND
+ CMAKE_SYSTEM_VERSION STRGREATER "10.0")
+ SET(HAVE_JEMALLOC ON)
+ ELSE()
+ CHECK_LIBRARY_EXISTS(${libname} malloc_stats_print "" HAVE_JEMALLOC)
+ ENDIF()
SET(CMAKE_REQUIRED_LIBRARIES)
IF (HAVE_JEMALLOC)

View File

@ -1,11 +0,0 @@
--- extra/yassl/taocrypt/src/integer.cpp.orig 2014-04-15 14:02:39.000000000 +0300
+++ extra/yassl/taocrypt/src/integer.cpp 2014-05-16 17:00:15.000000000 +0300
@@ -75,7 +75,7 @@
CPP_TYPENAME AlignedAllocator<T>::pointer AlignedAllocator<T>::allocate(
size_type n, const void *)
{
- if (n > this->max_size())
+ if (n > AlignedAllocator<T>::max_size())
return 0;
if (n == 0)
return 0;

View File

@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME?= mariadb
PORTVERSION= 10.0.23
PORTVERSION= 10.0.25
CATEGORIES= databases ipv6
MASTER_SITES= http://ftp.osuosl.org/pub/${SITESDIR}/ \
http://mirrors.supportex.net/${SITESDIR}/ \
@ -24,23 +24,18 @@ SUB_FILES= pkg-message
PKGMESSAGE= ${WRKDIR}/pkg-message
SLAVEDIRS= databases/mariadb100-client
USES= bison:build cmake cpe execinfo gmake shebangfix
USES= bison:build cmake compiler:c++11-lib cpe execinfo gmake shebangfix
USE_LDCONFIG= ${PREFIX}/lib/mysql ${PREFIX}/lib/mysql/plugin
SHEBANG_FILES= scripts/*.sh
SITESDIR= mariadb/mariadb-${PORTVERSION}/source
OPTIONS_DEFINE= FASTMTX
OPTIONS_RADIO= SSL
OPTIONS_RADIO_SSL= BUNDLED_SSL OPENSSL WITHOUT_SSL
OPTIONS_DEFAULT+= OPENSSL
NO_OPTIONS_SORT= yes
BUNDLED_SSL_DESC= SSL/TLS support via (bundled) CyaSSL
FASTMTX_DESC= Replace mutexes with spinlocks
WITHOUT_SSL_DESC= No SSL/TLS support
CMAKE_ARGS+= -DINSTALL_DOCDIR="share/doc/mysql" \
-DINSTALL_DOCREADMEDIR="share/doc/mysql" \
CMAKE_ARGS+= -DINSTALL_DOCDIR="share/doc/mariadb" \
-DINSTALL_DOCREADMEDIR="share/doc/mariadb" \
-DINSTALL_INCLUDEDIR="include/mysql" \
-DINSTALL_INFODIR="info" \
-DINSTALL_LIBDIR="lib/mysql" \
@ -56,6 +51,7 @@ CMAKE_ARGS+= -DINSTALL_DOCDIR="share/doc/mysql" \
-DINSTALL_SUPPORTFILESDIR="share/mysql" \
-DWITH_UNIT_TESTS=0 \
-DWITH_LIBEDIT=0 \
-DWITH_SSL=${OPENSSLBASE} \
-DWITH_LIBWRAP=1 \
-DEXECINFO_ROOT=${LOCALBASE} \
-DCOMPILATION_COMMENT="FreeBSD Ports"
@ -73,31 +69,36 @@ CONFLICTS_INSTALL= mariadb5*-${PKGNAMESUFFIX:C/^[0-9]*-//}-* \
.if !defined(CLIENT_ONLY)
# MySQL-Server options
USE_MYSQL= yes
USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin
OPTIONS_DEFINE+= INNODB MAXKEY MROONGA OQGRAPH
OPTIONS_DEFINE+= MAXKEY
OPTIONS_DEFAULT+= MAXKEY
OPTIONS_SUB= yes
OPTIONS_GROUP= ENGINES
OPTIONS_GROUP_ENGINES= INNOBASE MROONGA OQGRAPH SPHINX SPIDER TOKUDB
ENGINES_DESC= Optional MariaDB storage engines
INNOBASE_DESC= Build InnoDB engine next to XtraDB
MAXKEY_DESC= Change max key length from 1000 to 4000
MROONGA_DESC= Mroonga Full Text Search engine
OQGRAPH_DESC= Open Query Graph Computation engine (Requires GCC)
SPHINX_DESC= SphinxSE engine
SPIDER_DESC= Partitioning and XA-transactions engine
TOKUDB_DESC= Fractal tree index tree data structure engine
OPTIONS_SUB= yes
TOKUDB_PORTDOCS= PATENTS README.md
INNODB_DESC= Build InnoDB engine next to XtraDB
MAXKEY_DESC= Change max key length from 1000 to 4000
MROONGA_DESC= Mroonga Full Text Search engine (gcc)
OQGRAPH_DESC= Open Query Graph Computation engine (gcc)
.endif
BUNDLED_SSL_CMAKE_ON= -DWITH_SSL=bundled
FASTMTX_CMAKE_ON= -DWITH_FAST_MUTEXES=1
OPENSSL_CMAKE_ON= -DWITH_SSL=yes
OPENSSL_USE= OPENSSL=yes
WITHOUT_SSL_CMAKE_ON= -DWITH_SSL=no
USE_OPENSSL= yes
.if defined(CLIENT_ONLY)
# MySQL-Client part
USES+= readline
.else
# MySQL-Server part
USE_MYSQL= yes
WANT_MYSQL_VER= 100m
USES+= mysql:100m
USE_RC_SUBR= mysql-server
USERS= mysql
GROUPS= mysql
@ -105,7 +106,10 @@ CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON" \
-DCMAKE_SKIP_BUILD_RPATH:BOOL=YES \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
INNODB_CMAKE_OFF= -DWITHOUT_INNOBASE=1
.for ENGINE in ${OPTIONS_GROUP_ENGINES}
${ENGINE}_CMAKE_OFF= -DWITHOUT_${ENGINE}=1
.endfor
MAXKEY_EXTRA_PATCHES+= ${FILESDIR}/extra-patch-include_my__compare.h
MROONGA_CMAKE_OFF= -DWITHOUT_MROONGA=1
OQGRAPH_LIB_DEPENDS= libboost_system.so:devel/boost-libs \
@ -113,7 +117,7 @@ OQGRAPH_LIB_DEPENDS= libboost_system.so:devel/boost-libs \
# Currently OQGraph does not build using clang.
# See See https://mariadb.atlassian.net/browse/MDEV-8051.
OQGRAPH_USE= gcc
OQGRAPH_BROKEN= does not build
OQGRAPH_BROKEN= OQGraph does not build
post-install:
# Remove programs to avoid conflict with mariadb100-client
@ -122,7 +126,9 @@ post-install:
${RM} ${STAGEDIR}${PREFIX}/bin/msql2mysql \
${STAGEDIR}${PREFIX}/bin/mysql_config \
${STAGEDIR}${PREFIX}/bin/mysql_find_rows \
${STAGEDIR}${PREFIX}/bin/mysqlaccess
${STAGEDIR}${PREFIX}/bin/mysqlaccess \
${STAGEDIR}${DOCSDIR}/COPYING.AGPLv3 \
${STAGEDIR}${DOCSDIR}/COPYING.GPLv2
.endif
.include <bsd.port.pre.mk>
@ -133,8 +139,14 @@ CMAKE_ARGS+= -DWITH_JEMALLOC="system"
CMAKE_ARGS+= -DWITH_JEMALLOC="no"
.endif
# Server segfaults on i386 when built with clang >= 3.4
.if ${PORT_OPTIONS:MTOKUDB}
NOT_FOR_ARCHS= i386
NOT_FOR_ARCHS_REASON= TokuDB not supported on 32-bit platforms, see \
https://github.com/percona/PerconaFT/blob/master/README.md
.endif
.if ${ARCH} == 'i386' && ${OSVERSION} >= 1001000
# Server segfaults on i386 when built with clang >= 3.4
USE_GCC= yes
.endif

View File

@ -1,2 +1,2 @@
SHA256 (mariadb-10.0.23.tar.gz) = 156eed69892834be66736aebe0a17a76d5031fd1c2f481a82228ff33bb7ba274
SIZE (mariadb-10.0.23.tar.gz) = 57394548
SHA256 (mariadb-10.0.25.tar.gz) = 4540832c18112a332f61f4eeb57140890c4e2188ae12b312f4e2e8a0363553e4
SIZE (mariadb-10.0.25.tar.gz) = 57459461

View File

@ -1,28 +0,0 @@
Upstreamed https://github.com/MariaDB/server/pull/139
--- cmake/jemalloc.cmake.orig 2015-12-16 16:05:44 UTC
+++ cmake/jemalloc.cmake
@@ -20,11 +20,21 @@ MACRO (CHECK_JEMALLOC)
SET(CMAKE_REQUIRED_LIBRARIES pthread dl m)
SET(what bundled)
ELSE()
- SET(libname jemalloc)
+ IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND
+ CMAKE_SYSTEM_VERSION STRGREATER "10.0")
+ SET(libname c)
+ ELSE()
+ SET(libname jemalloc)
+ ENDIF()
SET(what system)
ENDIF()
- CHECK_LIBRARY_EXISTS(${libname} malloc_stats_print "" HAVE_JEMALLOC)
+ IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND
+ CMAKE_SYSTEM_VERSION STRGREATER "10.0")
+ SET(HAVE_JEMALLOC ON)
+ ELSE()
+ CHECK_LIBRARY_EXISTS(${libname} malloc_stats_print "" HAVE_JEMALLOC)
+ ENDIF()
SET(CMAKE_REQUIRED_LIBRARIES)
IF (HAVE_JEMALLOC)

View File

@ -1,13 +0,0 @@
# Add patch for https://mariadb.atlassian.net/browse/MDEV-9322
--- storage/connect/json.cpp.orig 2015-12-16 16:05:45 UTC
+++ storage/connect/json.cpp
@@ -594,7 +594,7 @@ PSZ Serialize(PGLOBAL g, PJSON jsp, char
if (fs) {
fputs(EL, fs);
fclose(fs);
- str = (err) ? NULL : "Ok";
+ str = (err) ? NULL : (char*)"Ok";
} else if (!err) {
str = ((JOUTSTR*)jp)->Strp;
jp->WriteChr('\0');

View File

@ -0,0 +1,13 @@
See https://mariadb.atlassian.net/browse/MDEV-9603
--- storage/connect/tabmysql.cpp.orig 2016-04-28 20:27:49 UTC
+++ storage/connect/tabmysql.cpp
@@ -334,7 +334,7 @@ bool MYSQLDEF::DefineAM(PGLOBAL g, LPCST
Delayed = !!GetIntCatInfo("Delayed", 0);
} else {
// MYSQL access from a PROXY table
- Database = GetStringCatInfo(g, "Database", Schema ? Schema : PlugDup(g, "*"));
+ Database = GetStringCatInfo(g, "Database", Schema ? Schema : PlugDup(g, (PSZ)"*"));
Isview = GetBoolCatInfo("View", false);
// We must get other connection parms from the calling table

View File

@ -0,0 +1,13 @@
--- storage/tokudb/CMakeLists.txt.orig 2016-02-17 20:59:56 UTC
+++ storage/tokudb/CMakeLists.txt
@@ -131,8 +131,8 @@ SET(TOKUDB_PLUGIN_DYNAMIC "ha_tokudb")
SET(TOKUDB_SOURCES ha_tokudb.cc)
MYSQL_ADD_PLUGIN(tokudb ${TOKUDB_SOURCES} STORAGE_ENGINE MODULE_ONLY
LINK_LIBRARIES tokufractaltree_static tokuportability_static ${ZLIB_LIBRARY} stdc++)
-SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto -fuse-linker-plugin")
-SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto -fuse-linker-plugin")
+SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE}")
+SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO}")
SET(CPACK_RPM_server_PACKAGE_OBSOLETES
"${CPACK_RPM_server_PACKAGE_OBSOLETES} MariaDB-tokudb-engine < 10.0.5" PARENT_SCOPE)

View File

@ -0,0 +1,37 @@
--- storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake.orig 2016-02-17 20:59:56 UTC
+++ storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake
@@ -34,6 +34,13 @@ if (CMAKE_PROJECT_NAME STREQUAL TokuDB)
endif ()
endif ()
+IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ include_directories("/usr/include")
+
+ add_library(lzma SHARED IMPORTED)
+ set_target_properties(lzma PROPERTIES IMPORTED_LOCATION
+ "/usr/lib/liblzma.so")
+ELSE()
## add lzma with an external project
set(xz_configure_opts --with-pic --enable-static)
if (APPLE)
@@ -105,8 +112,15 @@ add_library(lzma STATIC IMPORTED)
set_target_properties(lzma PROPERTIES IMPORTED_LOCATION
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib/liblzma.a")
add_dependencies(lzma build_lzma)
+ENDIF()
+IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ include_directories("/usr/local/include")
+ add_library(snappy SHARED IMPORTED)
+ set_target_properties(snappy PROPERTIES IMPORTED_LOCATION
+ "/usr/local/lib/libsnappy.so")
+ELSE()
## add snappy with an external project
set(SNAPPY_SOURCE_DIR "${TokuDB_SOURCE_DIR}/third_party/snappy-1.1.2" CACHE FILEPATH "Where to find sources for snappy.")
if (NOT EXISTS "${SNAPPY_SOURCE_DIR}/CMakeLists.txt")
@@ -140,3 +154,4 @@ add_library(snappy STATIC IMPORTED)
set_target_properties(snappy PROPERTIES IMPORTED_LOCATION
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/snappy/lib/libsnappy.a")
add_dependencies(snappy build_snappy)
+ENDIF()

View File

@ -0,0 +1,13 @@
--- storage/tokudb/PerconaFT/ft/CMakeLists.txt.orig 2016-02-17 21:59:56.000000000 +0100
+++ storage/tokudb/PerconaFT/ft/CMakeLists.txt 2016-02-21 20:51:12.317052693 +0100
@@ -84,8 +84,8 @@ set_target_properties(ft_static PROPERTI
maybe_add_gcov_to_libraries(ft ft_static)
## depend on other generated targets
-add_dependencies(ft install_tdb_h generate_log_code build_lzma build_snappy)
-add_dependencies(ft_static install_tdb_h generate_log_code build_lzma build_snappy)
+add_dependencies(ft install_tdb_h generate_log_code)
+add_dependencies(ft_static install_tdb_h generate_log_code)
## link with lzma (which should be static) and link dependers with zlib
target_link_libraries(ft LINK_PRIVATE util_static lzma snappy ${LIBTOKUPORTABILITY})

View File

@ -33,6 +33,8 @@ bin/perror
bin/replace
bin/resolve_stack_dump
bin/resolveip
%%TOKUDB%%bin/tokuft_logprint
%%TOKUDB%%bin/tokuftdump
include/mysql/private/embedded_priv.h
lib/mysql/libmysqld.a
lib/mysql/libmysqld.so
@ -51,12 +53,13 @@ lib/mysql/plugin/ha_blackhole.so
lib/mysql/plugin/ha_connect.so
lib/mysql/plugin/ha_federated.so
lib/mysql/plugin/ha_federatedx.so
%%INNODB%%lib/mysql/plugin/ha_innodb.so
%%INNOBASE%%lib/mysql/plugin/ha_innodb.so
%%MROONGA%%lib/mysql/plugin/ha_mroonga.so
%%OQGRAPH%%lib/mysql/plugin/ha_oqgraph.so
lib/mysql/plugin/ha_sequence.so
lib/mysql/plugin/ha_sphinx.so
lib/mysql/plugin/ha_spider.so
%%SPHINX%%lib/mysql/plugin/ha_sphinx.so
%%SPIDER%%lib/mysql/plugin/ha_spider.so
%%TOKUDB%%lib/mysql/plugin/ha_tokudb.so
lib/mysql/plugin/ha_test_sql_discovery.so
lib/mysql/plugin/handlersocket.so
lib/mysql/plugin/libdaemon_example.so