- Add 'libboost-all-dev' and 'libreadline-gplv2-dev' as they were was found
to be a compulsory build dependency for columnstore plugin.
- Add 'expect' as run-time dependencey for columnstore plugin as scripts
use it:
usr/bin/mcs_module_installer.sh: #!/usr/bin/expect
usr/bin/remote_command.sh: #!/usr/bin/expect
usr/bin/remote_command_verify.sh: #!/usr/bin/expect
usr/bin/remote_scp_get.sh: #!/usr/bin/expect
usr/bin/remote_scp_put.sh: #!/usr/bin/expect
usr/bin/rsync.sh: #!/usr/bin/expect
- Properly define depends on Python. No Python 2 support needs to be
considered, Python 3 has been around long enough. Fixes Lintian errors
E: mariadb-plugin-columnstore: python-script-but-no-python-dep
usr/bin/mcs-loadbrm.py #!python
E: mariadb-plugin-columnstore: python-script-but-no-python-dep
usr/bin/mcs-start-storagemanager.py #!python
- Partially revert undocumented and thus unjustified changes in commits
d69a79da63287089efdc5f90a11ecd66ce55b471 and
c0565666cfe6528b76bc53ce50d3690d13c92cf6.
- Trigger ldconfig, otherwise Lintian complains:
E: mariadb-plugin-columnstore: package-must-activate-ldconfig-trigger
usr/lib/x86_64-linux-gnu/libwriteengineredistribute.so
- Update postinst to be compatible with new server binary mariadbd name.
- Properly detect systemd or fallback to sysv init in postrm script.
- Only attempt to build ColumnStore on amd64 and i386. Test builds on
Launchpad.net showed the CMake plugin configure step will prevent even
attempts to build on other platforms.
- Clean up and unify cmake build command in debian/rules.
- Explicitly list files not installed.
- Run 'wrap-and-sort -a -v'.
- Truncate build logs on Salsa-CI to keep under 4 MB. This is now needed
as the ColumnStore build is so verbose.
See https://jira.mariadb.org/browse/MCOL-4111.
- Update Travis-CI dependencies to match new debian/control.
Split the big my.cnf into multiple smaller files with the same filenames
and contents as official Debian/Ubuntu packaging has.
The config contents stays the same apart from following additions
which the original MariaDB upstream configs had and probably needs
to be kept:
- lc-messages=en_US and skip-external-locking in server config
Configs the original MariaDB upstream had that are seemingly
unnecessary and thus removed:
- port=3306 removed from the client config
- log_warnings=2 removed from server config
Also adopt update-alternatives system using
mysql-common/configure-symlinks. This way it is aligned with
downstream Debian/Ubuntu packaging.
This fixes the apt error:
The following packages have unmet dependencies:
mariadb-client-core-10.6 : Conflicts: mariadb-client-10.6 but
1:10.6.0+maria~sid is to be installed
Originally added in cc08c134f7 in 2015
for backwards compatibility with old packages.
It no longer makes much sense in providing mysql-* packages since the
virtual-mysql-* packages paradign has been in effect since 2016 and
all current MySQL installs should already follow the virtual-mysql-*
paradigm controlled by https://tracker.debian.org/pkg/mysql-defaults.
- Include binary wsrep_sst_rsync_wan previously omitted.
- Don't build the embedded server. This saves a lot of time and
around 500 MB of disk space.
- Clean away unused override_dh_installcron. The package does not
have any *.cron files, so this section is not needed.
- Make mariadb-server run time depend on procps so pgrep works.
The command pgrep is used in the maintainer scripts of mariadb-server,
thus we should ensure it is found on the system.
- Include build plugin func_test.so in test package. Don't include yet
type_test.so since it fails (MDEV-22243).
- Clean away obsolete Lintian overrides.
This was partially already done in 9e1b3af4a4
as the symlink mysqlreport pointed to mariadb-report. There just was no
script with that name, so this rename complements it and now both
mariadb-report and mysqlreport work again.
Cassandra has deprecated their Thrift interface years ago (a few months
after Cassandra SE was released). The new way to access Cassandra is to
use the CQL Connector, which does not use Thrift.
There have been talks to make a CassandraSE V2 but no usable code have
been produced. The motivation to keep CassandraSE in the MariaDB source
code is to have it as an example for such future attempts.
It can stay in the source code but it should be removed from packaging
to avoid Debian packaging maintenance work around trying to compile it
and have tests pass on new platform.
If somebody wants Cassandra, they can use the 10.4 branch.
It was already disabled in 1589cf1cb3 but
turns out that as long as the packaging is there, is requires maintenance,
ensuring it still builds, debugging failing tests etc and that takes its
toll and is not worth all the extra work. Having it "only disabled" does
not help, since either we have it and keep it tested and working, or we
don't have it and don't spend time on keeping it working and tested.
In MDEV-19780 there was already a decision to drop TokuDB from MariaDB.
If somebody wants TokuDB, they can use the 10.4 branch.
These changes are in line with what has been changes in downstream Debian
and they fix the following errors:
$ check_for_missing_breaks_replaces.py -o ${WORKING_DIR}/missing_breaks.xml --changes-file ${WORKING_DIR}/*.changes
[ERROR] mariadb-client-10.5 conflicts with mytop files: {'/usr/bin/mytop'}
[ERROR] mariadb-client-10.5 conflicts with mariadb-client-core-10.3 files: {'/usr/bin/mysqlcheck'}
[ERROR] mariadb-server-10.5 conflicts with mariadb-server-core-10.3 files: {'/usr/share/man/man1/resolveip.1.gz', '/usr/bin/resolveip', '/usr/share/mysql/mysql_test_data_timezone.sql'}
[ERROR] mariadb-client-10.5 conflicts with mysql-client-core-5.7 files: {'/usr/bin/mysqlcheck'} [ERROR] mariadb-server-10.5 conflicts with mariadb-server-core-10.3 files: {'/usr/share/man/man1/resolveip.1.gz', '/usr/bin/resolveip', '/usr/share/mysql/mysql_test_data_timezone.sql'}
[ERROR] mariadb-server-10.5 conflicts with mysql-client-5.7 files: {'/usr/bin/myisam_ftdump', '/usr/share/man/man1/myisam_ftdump.1.gz'}
[ERROR] mariadb-server-core-10.5 conflicts with mysql-server-5.7 files: {'/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/bin/resolveip', '/usr/share/man/man1/resolveip.1.gz'}
[ERROR] mariadb-test conflicts with mysql-server-5.7 files: {'/usr/lib/mysql/plugin/adt_null.so', '/usr/lib/mysql/plugin/mypluglib.so'}
- Make full contents, also header files, explicit in -dev packages
fb77df0c75
- Don't ship private header files at all.
- Ship both libmariadb.pc and maridb.pc.
- Ship mysql_config only as a symlink.
- Keep 'mariadbcheck' as symlink as somebody could have used it already
d0466f74d5
- The mariadb.pc is the server pkg-config, ship in libmariadbd-dev.
- The client pkg-config is called libmariadb.pc. Ship only it in the client
library packages.
Use versioned breaks/replaces for mysql* packages we also provide and fix:
[ERROR] libmariadb-dev conflicts with libmysqlclient-dev files:
{'/usr/share/man/man1/mysql_config.1.gz', '/usr/share/aclocal/mysql.m4'}
[ERROR] libmariadb-dev conflicts with libmysqld-dev files:
{'/usr/lib/x86_64-linux-gnu/libmysqlservices.a'}
- Remove versioned depends that are far outdated and not relevant anymore
in 2020.
- Link with libedit instead of unmaintained readline5
d8796a0e3b
- Add [linux-any] for Linux specific depends and other smaller control
file tweaks.
- Update .travis-ci.yml to match.
- Also fixes the Debian autopkgtest detected error:
ERROR 1231 (42000) at line 1: Variable 'innodb_compression_algorithm'
can't be set to the value of 'lz4'
The package libcurl4-dev is a virtual package, and no package with that
name actually exists. Depend on libcurl4-openssl-dev as the primary
option in case no libcurl4-dev providing package has been installed, and
if some of them (libcurl4-gnutls-dev, libcurl4-nss-dev,
libcurl4-openssl-dev ) are installed, they also satisfy the dependency
via the virtual package.
The Travis-CI still runs on libcurl3-dev as Travis-CI also runs Ubuntu
Xenial which does not yet have libcurl4 available.
This complements commit 2e0a40bdf0.
The package libdbd-mariadb-perl has been available in Debian September
2018, so it is already included since Debian Buster and Ubuntu Disco.
Use it as the primary Recommends for MariaDB client binaries, but keep
the MySQL variant as a fall-back in case this package gets backported to
older releases that did not yet have it.
This change was done in downstream Debian packaging in
bb4ad78bc1
Make package have sensible control file relations to mysql-8.0.
Also some cleanup:
- Remove obsolete versioned control relationships. When the package
name already has a version older than current package, the extra
version is obsolete.
- Remove obsolete postinst script that was empty
- Remove priority "extra" which is deprecated, use "optional" that
applies for the whole source package instead.
To change all executables to have a mariadb name I had to:
- Do name changes in every CMakeLists.txt that produces executables
- CREATE_MARIADB_SYMLINK was removed and GET_SYMLINK added by Wlad to reuse the function in other places also
- The scripts/CMakeLists.txt could make use of GET_SYMLINK instead of introducing redundant code, but I thought I'll leave that for next release
- A lot of changes to debian/.install and debian/.links files due to swapping of real executable and symlink. I did not however change the name of the manpages, so the real name is still mysql there and mariadb are symlinks.
- The Windows part needed a change now when we made the executables mariadb -named. MSI (and ZIP) do not support symlinks and to not break backward compatibility we had to include mysql named binaries also. Done by Wlad
The command is needed to install/upgrade databases. It should therefore
reside in the server-core package, as that package is supposed to contain
all necessary tools to start and run the database (although manually,
there are no automation or service scripts included in server-core by
design).
Also add Breaks+Replaces in the control so upgrades will not complain about
overwriting files in previously installed packages of different name.
This was adopted from Debian where this change has been since Nov 4, 2018.
3689350ad3
In addition, also move all *.sql files referenced mysql_install_db for
the same reasons.
No functional changes.
Apply this in 10.3 so eventually it is merged to 10.4 and 10.5, which
in turn will have separate wrap-and-sort runs but only for new lines,
and not affecting badly next merges from 10.3 to 10.4 to 10.5.
Also remove a duplicate line that was found thanks to wrap-and-sort.
The Debian build tools add all run-time dependencies automatically. For the
mariadb-rocksdb-plugin the "${misc:Depends}, ${shlibs:Depends}" will become
(based on the build dependencies at build time):
Depends: mariadb-server-10.4 (= 1:10.4.12-1), rocksdb-tools,
libc6 (>= 2.29), liblz4-1 (>= 0.0~r130), libsnappy1v5 (>= 1.1.8),
libstdc++6 (>= 7), libzstd1 (>= 1.3.3), zlib1g (>= 1:1.1.4)
There is no need to manually add run-time build dependencies. Only external
dependencies need to be defined, for example rocksdb-tools could come in
question for mariadb-plugin-rocksdb, and it will be eventually added when
downstream official Debian packaging is merged upstream in a later commit.