1
0
mirror of https://git.openwrt.org/feed/packages.git synced 2024-06-14 19:33:59 +02:00
Commit Graph

76 Commits

Author SHA1 Message Date
Sebastian Kemper
6152c9a018 mariadb: add galera support
Add galera support by installing the configuration and including the
wsrep scripts in mariadb-server-extra.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-12-15 16:02:13 +01:00
Sebastian Kemper
9b8a68cc7b mariadb: add extra charsets to server base
There is little sense in keeping these charsets in an extra package. The
included sets are of the single byte character set variety. They only
amount to a few kbytes.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-12-15 15:57:01 +01:00
Sebastian Kemper
cc0a40231d mariadb: improve packaging and configuration
At present there are some flaws related to configuration, also related
to the packaging of mariadb. For starters there are complaints that the
configuration is too static.

To address this a new configuration layout is introduced. The primary
configuration file (my.cnf) is changed so that it now only includes
further configuration files in the directory /etc/mysql/conf.d. More
default configuration files are added for the server and the client.
This is the new default configuration.

With these changes it's possible for the user to select if they want to
change the default configuration (in conf.d/*.cnf) or if they want to
drop their own files into conf.d instead. If the user .cnf files are
read after the default .cnf files (files are included in alphabetical
order), they will overwrite the settings from the default configuration.

The other flaw is that the my.cnf file is included in mariadb-server.
But that doesn't really fit the requirements, as the client also uses
the configuration file(s). To accomodate this a new package
mariadb-common is added. It installs the shared my.cnf file.

The remaining changes add base packages, both for the server and the
client. These are meant as foundation for the packages containing the
respective binaries. In summary they will install the configuration,
small miscellaneous files (SQL scripts etc.) and the user "mariadb".

That means that everything is ready for the binaries, like mysql and
mysqld. If there is not enough space left on flash memory, the user can
just drop the binaries on a pendrive, link them to /usr/bin and get
started.

The ideas and configuration files were copied from Debian. Some
amendments were made.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-12-15 15:55:56 +01:00
Sebastian Kemper
cacd86009b mariadb: rename share and plugin directories
Rename them from mysql to mariadb. Use variables where possible (also
for /etc/mysql).

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-12-15 15:53:38 +01:00
Sebastian Kemper
c0dba8cfa6 mariadb: refresh plugins
This commit deals with changes related to plugins and how they're built
or disabled.

Currently a lot of plugins are packaged which are merely for tests or
plain examples. Other distros do not bundle these, hence this commit
does away with them.

A few new plugins are added related to PAM and Kerberos (auth_gssapi,
auth_gssapi_client and auth_pam).

The BuildPlugin template is refactored to also allow building of library
plugins (needed for auth_gssapi_client). The template is also cleaned up
- some extraneous dollar signs are removed and the install function is
now defined outside the template.

Unwanted plugins/engines are now turned off efficiently (without using
cmake variables) by blanking CMakeLists.txt files in the associated
folders. The idea was lifted from Gentoo.

ha_sequence is now built into the server. This is an upstream
preference. The plugin is about 30 kbytes in size, so there is no harm
adding it into the server, which weighs in at about 15 Mbytes anyway.

Last but not least the auth_socket plugin is now also built into the
server.  This allows the local root user to login to the database
without a password being set. This makes maintenance easier without
being detrimental to security. The idea was lifted from Debian.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-12-15 15:50:18 +01:00
Sebastian Kemper
a117d027bc mariadb: use system libedit for mysql
libedit changed its interface a while back. mariadb currently does not
recognize this interface and instead uses a static old readline version.
It does not link in the system readline due to licence incompatibility.

This commit adds a patch that enables mariadb to detect and use the
system libedit. The patch was sent upstream already ([1]).

[1] https://github.com/MariaDB/server/pull/1001

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-12-15 15:48:24 +01:00
Sebastian Kemper
470ee2d94b mariadb: fix build issue
The build breaks when Kerberos is available in staging dir. mariadb
build system exits with error:

CMake Error at libmariadb/cmake/plugins.cmake:43 (message):
  Invalid plugin type NO.  Allowed plugin types are DYNAMIC;STATIC;OFF

It doesn't like the definition "PLUGIN_AUTH_GSSAPI_CLIENT=NO" anymore.
We need to set it to "OFF" to make it happy.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-11-14 21:00:12 +01:00
Sebastian Kemper
3c8c320b3f mariadb: security bump to 10.2.19
Many, many bug fixes, see release notes for details:
https://mariadb.com/kb/en/library/mariadb-10219-release-notes/

Fixed CVEs:

  CVE-2018-3282
  CVE-2016-9843
  CVE-2018-3174
  CVE-2018-3143
  CVE-2018-3156
  CVE-2018-3251
  CVE-2018-3185
  CVE-2018-3277
  CVE-2018-3162
  CVE-2018-3173
  CVE-2018-3200
  CVE-2018-3284

OpenWrt package changes:

  - include sha256_password in libmariadb package
  - upstream provided new pkgconfig file libmariadb.pc
  - refreshed one patch, dropped two others (included in upstream source
    now)

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-11-13 21:43:35 +01:00
Sebastian Kemper
581a19c0b8 mariadb: fix pthread_detach
Include fix from upstream for MDEV-17200. musl-1.1.20 segfaults when
pthread_detach() is called for already detached threads.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-11-11 01:23:44 +01:00
Sebastian Kemper
a6761ac20b mariadb: bump to 10.2.17
From Release Notes:

 - New variable innodb_log_optimize_ddl for avoiding delay due to page flushing and allowing concurrent backup
 - InnoDB updated to 5.7.23
 - ALTER TABLE fixes:
    MDEV-14637 - Fix hang due to DDL with FOREIGN KEY or persistent statistics
    MDEV-15953 - Alter InnoDB Partitioned Table Moves Files (which were originally not in the datadir) to the datadir
    MDEV-16515 - InnoDB: Failing assertion: ++retries < 10000 in file dict0dict.cc line 2737
    MDEV-16809 - Allow full redo logging for ALTER TABLE
 - Temporary tables: MDEV-16713 - InnoDB hang with repeating log entry
 - indexed virtual columns: MDEV-15855 - Deadlock between purge thread and DDL statement
 - locking: MDEV-16664 - Change the default to innodb_lock_schedule_algorithm=fcfs
 - Galera: MDEV-15822 - WSREP: BF lock wait long for trx
 - Fixes for the following security vulnerabilities:
    CVE-2018-3060
    CVE-2018-3064
    CVE-2018-3063
    CVE-2018-3058
    CVE-2018-3066

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-08-21 23:19:29 +02:00
Sebastian Kemper
5dd920e0e0 mariadb: use nls.mk for consistent iconv handling
@jow- mentioned that depending on libiconv-full on uClibc is not the way
to do it. Instead nls.mk needs to be included and then the correct iconv
lib wil be used as per CONFIG_BUILD_NLS.

Update mariadb Makefile to address this.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-07-12 23:39:56 +02:00
Sebastian Kemper
5702078dd0 mariadb: fix uClibc builds
mariadb 10.2.x depends on iconv. glibc and musl include iconv, uclibc
does not. So for uclibc builds a depend on libiconv-full is required.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-07-08 09:59:18 +02:00
Sebastian Kemper
f727222221 mariadb: fix CPPFLAGS handling
The mariadb build system ignores CPPFLAGS. Add them to CFLAGS as a
workaround.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-07-08 09:54:35 +02:00
Sebastian Kemper
94f88d3d83 mariadb: convert init script to procd
Also create a user "mariadb" and use it for running the server. And
add possibility to easily add command line args.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-06-28 21:31:42 +02:00
Sebastian Kemper
f8368276fe mariadb: add convenience symlinks
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-06-28 21:28:23 +02:00
Sebastian Kemper
cbc2353733 mariadb: fix mysql_config
Correct the socket info in mysql_config.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-06-28 21:26:56 +02:00
Sebastian Kemper
4d6829f0a3 mariadb: add plugins
- ha_sequence: formerly builtin, now a plugin
- ha_sphinx: formerly disabled
- ha_example: was missing in the eval lines

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-06-28 21:25:18 +02:00
Sebastian Kemper
c903332493 mariadb: bump to 10.2.x release
Bump to 10.2.x release series which has support for OpenSSL 1.1.x.

- libmariadbclient was replaced by libmaria
- libmaria uses LGPL, hence license info updated
- upstream disabled xtradb engine, innodb is now default (cannot be
  built as plugin anymore)
- complex charsets are now all included (size increase), as otherwise
  compile fails
- patches adapted/refreshed

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-06-28 21:22:37 +02:00
Sebastian Kemper
7053b12912 mariadb: add source mirrors
As suggested by Daniel Engberg, add some mirror servers to offload from
MariaDB's main download server.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-05-13 11:14:46 +02:00
Sebastian Kemper
13321a5697 mariadb: bump to 10.1.33
Maintenance release. Fixes the following security vulnerabilities:

CVE-2018-2782
CVE-2018-2784
CVE-2018-2787
CVE-2018-2766
CVE-2018-2755
CVE-2018-2819
CVE-2018-2817
CVE-2018-2761
CVE-2018-2781
CVE-2018-2771
CVE-2018-2813

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-05-13 08:46:19 +02:00
Sebastian Kemper
3bdaa522df mariadb: fix /etc/mysql setup
- create directory /etc/mysql/conf.d as without it the server refuses to
  start
- correct the path to my.cnf in the init script

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-05-13 08:42:44 +02:00
Sebastian Kemper
f1b49babad mariadb: Makefile cleanups
- fix a typo
- remove unnecessary trailing slashes

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-05-13 08:40:39 +02:00
Sebastian Kemper
c64552d2ba mariadb: create symlinks in a portable way
Hannu mentioned that --recursive could not be available always. That is
correct. While GNU coreutils' ln supports this, BSD's ln for example does
not.

This commit addresses that.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-05-06 17:48:32 +02:00
Sebastian Kemper
1af459bd52 mariadb: install staging libs to lib/mysql as well
Historically programs added /usr/lib/mysql to the library search path when
linking. mariadb does not do so anymore, although even its mysql_config
script suggests to use this path. When an old version of the library still
resides in this directory (like from an old mysql installation) it will be
linked against instead of the current library which is in /usr/lib.

To prevent this simply install symlinks from the staging libs in /usr/lib
into /usr/lib/mysql. This fixes build failures on the build bots which are
seen with libzdb and libdbi-drivers.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-05-06 14:53:18 +02:00
Sebastian Kemper
5033e5bb70 mariadb: fix sporadic build failure
Observed once in about two dozen builds on the bots:

make[6]: *** No rule to make target '/build/lede-snapshots/arm_cortex-a7_neon-vfpv4/build/sdk/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/usr/lib/libevent.so', needed by 'tests/async_queries'.  Stop.

Address this by adding libevent2 to PKG_BUILD_DEPENDS.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-04-29 09:41:35 +02:00
Sebastian Kemper
1b73f267ea mariadb: new package
MariaDB is a drop-in replacement for MySQL. This commit adds a current
and stable version of MariaDB to the tree.

Quite a few ideas/patches were copied from Alpine Linux, Busybox Buildroot
and Debian.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2018-04-28 14:41:30 +02:00