058d93d47a introduced a switch in autobake
script to append dh-systemd package when it is necessary. However, the
change was not complete as it didn't actually remove the dh-systemd
dependency in debian/control.
Keep the readline installation step in Salsa-CI stages that install
MariaDB.org packages in Debian Sid (or releases after is, such as
Debian 11 "Bullseye" or Ubuntu 21.04 "Hirsute") as those old packages
still depend on readline for the MariaDB Server itself.
The my_print_default is required by mytop which is also in the MariaDB
client package, which in turn requires the client core package.
This way it is ensured my_print_default is always available when mytop
is installed.
The my_print_defaults is also requires by the server logrotate files
and mysqld_safe script etc, but this change is fine, since the server
core package always depends on the MariaDB client core package anyway
and they are both installed on server installations.
Closes: #1566, #1581
There are many programs that actually belong to the client or even client
core package, as they should be fully usable without a locally installed
server.
MariaDB Server still supports Ubuntu 16.04 "Xenial" until it goes EOL
in April 30, 2021. Thus we need to include a customization for backwards
compatibility.
This change is intended to be applied for all MariaDB versions still
supported, i.e. 10.2 to 10.6.
Checking for the existence of the systemctl command only tells us that
systemd is installed, however it does not tell us if systemd is running.
What we really want to do here is reload systemd if it's installed AND
if it's running. The usual way to check if systemd is running is to
check for the existence of '/run/systemd/system'.
Why would systemd be installed but not running? This is something that
happens when one sets up or upgrade a system in a chroot or container.
For more details refer to the bug report:
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983563>
Closes PR #1787
Fix the following Breaks/Replaces errors detected by Salsa-CI:
[ERROR] mariadb-server-10.5 conflicts with mysql-client-core-8.0 files:
{'/usr/bin/myisam_ftdump', '/usr/share/man/man1/myisam_ftdump.1.gz'}
[ERROR] mariadb-server-10.5 conflicts with mysql-server-core-8.0 files:
{'/usr/share/man/man1/mysqlbinlog.1.gz',
'/usr/share/man/man1/myisamlog.1.gz',
'/usr/share/man/man1/mysql_tzinfo_to_sql.1.gz',
'/usr/share/man/man1/perror.1.gz',
'/usr/share/man/man1/myisampack.1.gz',
'/usr/bin/mysqld_safe', '/usr/share/man/man1/myisamchk.1.gz',
'/usr/bin/myisamchk', '/usr/bin/mysql_secure_installation',
'/usr/bin/mysqld_multi', '/usr/bin/mysql_tzinfo_to_sql',
'/usr/bin/perror', '/usr/share/man/man1/mysqld_multi.1.gz',
'/usr/bin/myisampack', '/usr/share/man/man1/mysqld_safe.1.gz',
'/usr/bin/myisamlog',
'/usr/share/man/man1/mysql_secure_installation.1.gz',
'/usr/bin/mysqlbinlog'}
[ERROR] mariadb-test conflicts with mysql-server-core-8.0 files:
{'/usr/lib/mysql/plugin/adt_null.so',
'/usr/lib/mysql/plugin/mypluglib.so'}
Upstreamed from Debian packaging commits:
9b6a67b53cf6d5545a02
Also:
- remove excess '<< ${source:Version}' on mysql-client-* and mysql-server-*
- move more packages to Conflicts as it is semantically more correct than
having those packages in Replaces
This reverts commit 44885273f2.
Reverting this commit is necessary to fix missing-breaks errors in the
Debian packaging. The original fix was also not entirely necessary as a
fix to the original problem.
Partially also reverts commit e7c7f5c1bb where this
unsorted debian/control file was sorted.
Systemd has a socket activation feature where a mariadb.socket
definition defines the sockets to listen to, and passes those
file descriptors directly to mariadbd to use when a connection
occurs.
The new functionality is utilized when starting as follows:
systemctl start mariadb.socket
The mariadb.socket definition only needs to contain the network
information, ListenStream= directives, the mariadb.service
definition is still used for service instigation.
When mariadbd is started in this way, the socket, port, bind-address
backlog are all assumed to be self contained in the mariadb.socket
definition and as such the mariadb settings and command line
arguments of these network settings are ignored.
See man systemd.socket for how to limit this to specific ports.
Extra ports, those specified with extra_port in socket activation
mode, are those with a FileDescriptorName=extra. These need
to be in a separate service name like mariadb-extra.socket and
these require a Service={mariadb.service} directive to map to the
original service. Extra ports need systemd v227 or greater
(not RHEL/Centos7 - v219) when FileDescriptorName= was added,
otherwise the extra ports are treated like ordinary ports.
The number of sockets isn't limited when using systemd socket activation
(except by operating system limits on file descriptors and a minimal
amount of memory used per file descriptor). The systemd sockets passed
can include any ownership or permissions, including those the
mariadbd process wouldn't normally have the permission to create.
This implementation is compatible with mariadb.service definitions.
Those services started with:
systemctl start mariadb.service
does actually start the mariadb.service and used all the my.cnf
settings of sockets and ports like it previously did.
Updating the debian/control file will automatically update the dependencies
in all CI environments that directly read the debian/control file, such
as Salsa-CI and buildbot.mariadb.org to some degree.
(https://github.com/MariaDB/mariadb.org-tools/issues/43)
On Debian/Ubuntu releases that don't have libpmem-dev available,
automatically omit it.
Debian/Ubuntu availability visible at:
- https://packages.debian.org/search?searchon=names&keywords=libpmem-dev
- https://packages.ubuntu.com/search?searchon=names&keywords=libpmem-dev
Also modify debian/rules to activate the use of PMEM, as it does not seem
to activate automatically.
The scope of this change is also Debian/Ubuntu only. No RPM or Windows or
Mac changes are included in this commit.
This commit does not update the external libmariadb or ColumnStore
CI pipelines, as those are maintained in different repositories.
Updating the debian/control file will automatically update the dependencies
in all CI environments that directly read the debian/control file, such
as Salsa-CI and buildbot.mariadb.org to some degree.
(https://github.com/MariaDB/mariadb.org-tools/issues/43)
On Debian/Ubuntu releases that don't have liburing-dev available,
automatically downgrade to libaio-dev (just like libcurl4->3 is done).
This ensures the debian/control file is always up-to-date and works for
latest Debian and Ubuntu releases, while the backwards compatibility mods
are maintained in autobake-deb.sh separately, and can be dropped from there
once support for certain platforms end.
Debian/Ubuntu availability visible at:
- https://packages.debian.org/search?searchon=names&keywords=liburing-dev
- https://packages.ubuntu.com/search?searchon=names&keywords=liburing-dev
Also modify debian/rules to force a build without libaio. Use YES instead
of ON to make the flag more logical (=turning libaio check "off").
Stop running Salsa-CI for Debian Stretch-backports, as it does not have
liburing-dev available nor is the old-old Debian stable a relevant platform
for MariaDB 10.6 to test against anymore. Since the Stretch-backports build
can no longer be made, neither can the MySQL 5.7 on Bionic upgrade test be
run, as it depended on the Stretch binary.
This commit does not modify the .travis.yml file, as Travis-CI does not
have new enough Ubuntu releases available yet. Also Travis-CI.org is
practically dead now as build times have been shrunk to near zero.
The scope of this change is also Debian/Ubuntu only. No RPM or Windows or
Mac changes are included in this commit.
This commit does not update the external libmariadb or ColumnStore
CI pipelines, as those are maintained in different repositories.
- Reduce Build-Depends
150bf990c6
Dependencies chrpath, dh-apparmor and libarchive-dev are not needed.
Fixes buildbot sid failures that error on:
Unmet build dependencies: chrpath dh-apparmor libarchive-dev
- Salsa-CI: Remove mysql-5.7 upgrade in Sid test as package was removed
6f55ac620c
Also clean away extra Salsa-CI markup not needed anymore.
- Autopkgtest: Simplify autopkgtest 'smoke' to be easier to debug
836907989a
- Autopkgtest: Skip main.failed_auth_unixsocket on armhf and i386
74601f8b31
The Readline library is no longer available in Debian Sid.
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=980504
Add the dependency on-the-fly in autobake-deb.sh for older distro versions
and keep the native build in a state that works on Debian Sid as-is.
The older MariaDB.org packages were built against libreadline5 and depend
on it to install. As it was removed from Sid (and Bullseye), fetch and
install it from Buster.
This can eventually be removed once we stop backwards compat testing for
older MariaDB versions (new ones don't depend on it).
Upstreamed from Debian packaging repository commit
4b729db7f8
Adopt the same install-build-deps.sh the upstream Salsa-CI has started
using. Since we have our own custom build step (to support autobake-deb.sh)
we need to maintain in like this and adopt to upstream changes.
This change will make the stretch-backports build pass and use the
backported libzstd-dev 1.3.8 library (to satisfy the > 1.3.3 requirement).
Also clean away excess autopkgtest stanza and allow missing-breaks to
fail so that in total Salsa-CI would now pass.
Keep the user and password definitions as e.g. dbconfig-common expects to
find them there. Extend the file to document (in context) why it is about
to be obsoleted to facilitate users migrating away from it.
Upstreamed from a6583c1522
- Add cracklib-runtime and libarchive-dev as build dependencies
- Update Debian policy standards version to 4.5.0
- Add libssl-dev to libmariadb-dev run-time dependency
- Add "Multi-Arch: same" to packages that have it in Debian
- Sync README.Debian
- Sync debian/rules formatting
- Sync autopkgtests
Also clean away impossible/unnecessary "Multi-Arch: same" stanzas.
Mostly upstreamed from f0ba31e156
Omitted 'libzstd-dev (>= 1.3.3)' as the version requirement would need
stretch-backports to be available on buildbot.askmonty.org builders and
they are not yet.
The mariadb.service systemd file indeed does contain:
ExecStartPost=/etc/mysql/debian-start
So don't claim it does not use debian-start.
Upstreamed from af869e7030
If PLUGIN_COLUMNSTORE is not defined, ColumnStore will build automatically
by default on supported architectures as defined in its CMakeFile.txt.
Thus there should not be any need to inject this build flag at any point
and it can be removed to keep thing lean and clean.
ColumnStore seems to build by default, so it must be explicitly disabled
with a build flag, so that it does not build at all and thus build machine
disk space and CPU will be spared.
This reverts commit 113f18686d.
Refactor previous commit to fix mistake revealed by Buildbot. We can't
have a structure where PLUGIN_COLUMNSTORE would ever be 'YES' on an arch
that does not support it, as the flag overrides any potential platform
detection code and builds on non-amd64 would all fail.
- Use new Salsa-CI templates just like downstream does
- Also apply adaptations needed for native MariaDB to
build correctly on Salsa-CI
- Adapt for mysql-8.0 now in Debian Sid, keep also mysql-5.7 test
- Test TLSv1.3 to ensure it does not regress
- Remove Snappy compression from autopkgtest as it not longer works
ColumnStore files and debian/control stanza was removed in 1edd2243, and
thus will not be included in a native build. Also adapt the debian/rules
to follow this same policy and only build ColumnStore in builds triggered
from autobake-deb.sh. Avoiding building ColumnStore in vain saves a lot of
build time and disk space.
pipeline in community BB
Fix for rebuild from source step
Disable MCS on i386|i686 platforms
This patch puts MCS debian packaging files and part of debian/control
into the engine directory
Remove from debian build:
* tokudb
* mroonga
* spider
* ograph
* embedded server
Add ccache to debian build.
Backport 10.3 changes to autobake-deb
that make travis faster.
Merge instructions:
Drop this commit on merge to 10.3
MySQL.com and Percona packages can be root auth_socket only. MariaDB uses unix_socket.
As the root user, as the default Debian maintaince user, needs to
be accessible to run mariadb-upgrade for a start, we make it accessible
again.
Leave debian/additions/mysqlreport as #!/usr/bin/perl
Acknowledge that `env perl` is a hack, a complete fix
needs to consider which path perl is at and insert into
these scripts.
The usefulness of these scripts is questionable.
- Include a link to the relevant KB article for more info
- Use spaced around the equal sign for better readability and so that
the examples are more aligned with the general style in the KB
- Load plugins with just the base name, the .so is optional and excess
- DEB_BUILD_HARDENING is only used with hardening-wrapper which is
deprecated in Debian, so remove it
- The word 'terse' should be checked in DEB_BUILD_OPTIONS and verbosity
controlled by it
- Remove excess build flag from debian/rules that does nothing, introduced
wrongly in commit 7cbde2d0a2. Instead
implement the embedded server build skipping on Travis-CI correctly.
- Simplify structure by doing all Travis-CI slimdown in one step.
- Remove unnecessary -e from sed, as it does nothing. When regex is needed,
use -r. Move -i to last so it is close to the file name it has an
argument.
- Remove backwards compat checks that are no longer relevant as neither
Debian Jessie (was before Stretch) nor Ubuntu Trusty (before Xenial)
are supported nor built for anymore. For example the GCC 4.8 check
if not relevant anymore, since Debian Jessie already has 4.9 and
Ubuntu Xenial has 5.3 and there is no GCC < 4.8 around anymore.
- Skip building ColumnStore on both Travis-CI and Gitlab-CI as it is
way too slow (time) and big (disk space) to pass.
- Remove unnecessary unused files
- Remove duplicate encryption configuration sample from sources and
re-use the identical file in RPM directory instead
- Clean away harmful "default-character-set = utf8mb4" from client config
as it is unnecassary (server enforces utf8mb4 anyway by default) and
could cause issues with mysqlbinlog and other tools (MDEV-22981).
- Update S3 plugin description to be long enough
- Remove trailing whitespace from support-files and Debian packaging.
- Clean away fixed Lintian issues
- Clean away temporary Salsa-CI fixes now that 10.5.4 is out and is fixed
- Apply wrap-and-sort -a -v
Cassandra has long been non-functional, doesn't compile, etc.,
and development on it has halted. Since MariaDB Server 10.5,
the build is disabled by default.
It makes sense to remove it as it's just taking up space.
- 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.
On FreeBSD, perl isn't in /usr/bin, its in /usr/local/bin or
elsewhere in the path.
Like storage/{maria/unittest/,}ma_test_* , we use /usr/bin/env to
find perl and run it.
Replace all references to /usr/sbin/mysqld (and bin and libexec) with
mariadbd, so that the binary server will always be 'mariadbd'.
Also update all places that reference the server binary in other ways,
such as AppArmor profiles and scripts that previously expected to find
a 'mysqld' in process lists.
To install Spider one can simply drop a /etc/mysql/conf.d/spider.cnf like
[mariadb]
plugin-load-add=ha_spider.so
This is automatically generated and installed when plugin is correctly
registered to plugin.cmake with its own component name. Many other plugins
such as Connect and RocksDB install in the same way.
This solved MDEV-19917 as the mere adding and removing of spider.cnf
automatically installs and uninstalls it.
Remove the overly complex and uncecessary install.sql from Spider,
if should not be needed in modern times anymore.
With this change there is no need for a uninstall.sql either.
- Recommend max_allowed_packet=1G which is the same as the default client
value.
- Remove thread_concurrency removed in 10.5.
- Remove query cache, not recommended practice anymore.
- Remove binlog_*, should not recommend those too easily but rather require
the database administrator to read up on those themselves.
- Remove chroot setting, not relevant in modern container era.
- Show explicitly innodb_buffer_pool_size example as the most likely thing
a database administrator should change.
- Don't recommend rate limiting in slow log, logging once in a 1000
would not be optimal for the basic case, hence bad example.
- Install the example configs in /usr/share/mysql.
- Use correct path /run/ instead of /var/run/.
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.
There is a 4 MB hard limit on Travis-CI and build output needs to be less
than that. Silencing the 'make install' step gets rid of a lot of
"Installing.." and "Missing.." and removing all mysql-test files will
make the dh_missing warnings much shorter.
Cherry-picked from 41952c85f1.
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
The buildbot.askmonty.org has explicit tests that check that this file
exists, thus to get tests pass, an empty placeholder must be created.
Remove this once CI has been updated not to expect this file.
We can't expect that users want to always convert their mysqld_safe
settings on an upgrade. In its current form it will always run, and that
seems unnecessary on every single installation.
Also the script is buggy, leaks mysqld_safe output into the written file
and since it gets syntax errors the whole mariadb.service will fail to
work.
These do now show up automatically due to init and systemd customizations,
so the handiest fix is to add them manually. This has been the praxis
in downstream MariaDB packaging for a couple years now, and works fine.
- Ensure service is loaded and started after installation,
(fixes service start issues in Debian/Ubuntu upgrades where
otherwise service mysql status stayed stopped)
- Ensure service stopped before removal/purge
(fixes unstopped processes detected by piuparts)
- Ensure systemd daemon is reloaded after removal/purge when service
has been removed
Partially reverts commit a4cc6fb91f.
While all current versions of Linux have systemd, support for traditional
init.d is still needed e.g. on Linux subsystem on Windows, kFreeBSD and
special variants of Debian/Ubuntu that for other reasons don't have
systemd.
Thus, re-introduce the init file that was remove, but this time with
then name 'mariadb'.
Supporting traditional sysv init in paraller with systemd is easy, since
Debian has facilities for it.
Also simplify and update salsa-ci.yml install/upgrade testing works
for all previous MariaDB and MySQL releases without any excess quirks.
Note that in fresh installs the salsa-ci.yml needs to run command
'service mariadb status' to control the service, while on upgrades
it is enough to run 'service mysql status', since the init.d/mysql
file is left behind from previous install, along with some other
config files such as /etc/default/mysql and /etc/mysql/* stuff.
The TokuDB storage engine has been deprecated by upstream
Percona Server 8.0 in favor of MyRocks and will not be available
in subsequent major upstream releases.
Let us remove it from MariaDB Server as well.
MyRocks is actively maintained, and it can be used instead.
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.
Likewise to TokuDB and Cassandra, if this plugin is maintained it should
be either fully enabled or not present at all. Packaging can be recovered
from MariaDB 10.2 if needed, or if build outside of this packaging, then
also the packaging scripts and snippets should be injected from the
outside.
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.
As initially most tests fail, they have allow_failures defined so that
testing anyway proceeds all the way to the final 'upgrade extras' stage.
All of these tests work for downstream Debian packaging of MariaDB 10.4
and should eventually pass on upstream MariaDB 10.5 as well.
Also upstream the Debian autopkgtests from MariaDB 10.4 in Debian so that
pipeline includes running mtr.
With these in place Lintian will pass without errors (only warnings) and
the CI systems will at least be able to stop anybody from introducing
new Lintian errors.
Manages the security risk in way that also fixes Lintian warning:
W: mariadb-server-10.5: setuid-binary
usr/lib/mysql/plugin/auth_pam_tool_dir/auth_pam_tool 4755 root/root
Applied downstream in
9605a48a99
There are still some differences in due to systemd and service triggers,
but these differences make sense and are likely to be synced the other
way later so that downstream Debian official packaging adopts them.
The synced changes include among others:
- 9f49e4b494
- 6440c0d6e7
- 6e5ee72d64
- e62e67ae4b
- df2415a53d
- 643558da74
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'}
- Ensure cmake builds also apply CPPFLAGS flags for hardening to fully work
fc4f33cf40
- Install Ubuntu Apport files in the same way with same filename.
- MDEV-21705: Build flags to keep WolfSSL from crashing
- Clean away sql-bench from packaging immediately after build step.
- Delete private files from libraries so they don't get shipped in the -dev
packages.
- 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'
Drop Aliases from the service file directive. Aliases in the service
file only take effect when the service is enabled. This is the case
because Aliases in service files do not have to be unique across various
services.
Shipping symlinks guarantees that one can always enable mariadb service
using `systemctl enable mysql` or `systemctl enable mysqld` and makes
the commands indempotent.
Without this, the mtr will fail to load client plugins and the following
tests would fail:
- main.plugin_auth_qa_2
- main.plugin_auth_qa_3
- main.plugin_auth
- plugins.multiauth
- plugins.auth_ed25519
As this was missing, the libmariadb/install.cmake section for Debian
builds was not triggered at all, and existing fixes to make the
Debian paths correct did not apply.
Update libmariadb3 paths in Debian packaging after MariaDB Connector C
3.1.8 upgrade
Also now include caching_sha2_password.so which was previously omitted.
Keep old libmariadbclient.a as symbolic link for backwards compatibility.
Closes: CONC-304
Related: CONC-456, MDEV-22150
There is a 4 MB hard limit on Travis-CI and build output needs to be less
than that. Silencing the 'make install' step gets rid of a lot of
"Installing.." and "Missing.." and removing all mysql-test files will
make the dh_missing warnings much shorter.
There is a 4 MB hard limit on Travis-CI and build output needs to be less
than that. Silencing the 'make install' step gets rid of a lot of
"Installing.." and "Missing.." and removing all mysql-test files will
make the dh_missing warnings much shorter.
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
This fixes Lintian errors and warnings:
E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mariadb-analyze.1
E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mariadb-optimize.1
E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mariadb-repair.1
E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mysqlanalyze.1
E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mysqloptimize.1
E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mysqlrepair.1
W: mariadb-client-10.5: binary-without-manpage usr/bin/mariadb-conv
W: libmariadb-dev: binary-without-manpage usr/bin/mariadb_config
If the binary name is mariadb_config, the manpage needs to be mariadb_config.1.
Also run 'wrap-and-sort -a -v' to get lists in correct order.
In addition, sort .gitignore and remove duplicate lines.
The dpkg-buildpackage has by default sensible values for --jobs and
--try-jobs, and it also inherits whatever 'parallel' is set in
DEB_BUILD_OPTIONS. Overriding it here should not be needed and removing
it is better, since it allows build systems to control the level or
parallel builds via DEB_BUILD_OPTIONS if they want, which they often do
(e.g. to avoid CPU congestion or overheating laptops).
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.
The current debian/control file and other packaging of 10.5 targets the
latest Debian unstable. In autobake-deb.sh there are automatic build
adaptations for older Debian/Ubuntu releases.
Some adaptations were for Debian versions prior to Jessie and Ubuntu
versions prior to Trusty. Those distro releases are no longer supported
anyway, so these should be cleaned away now in the 10.5 release cycle.
Summary:
- Debian Jessie has libcrack2 release 2.9.2-1, no need to have adaptations
for any older environments
- Debian Jessie has libpcre3-dev release 2:8.35-3.3, no need to consider
older versions
- Systemd has been available since Debian Jessie, no need to consider
that a Debian/Ubuntu environment would not have it available
adaptations for environments for anything older
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
There is a 4 MB hard limit on Travis-CI and build output needs to be less
than that. Silencing the 'make install' step gets rid of a lot of
"Installing.." and "Missing.." and removing all mysql-test files will
make the dh_missing warnings much shorter.
Package contents before this fix:
libmariadb-dev-compat
drwxr-xr-x root/root ./
drwxr-xr-x root/root ./usr/
drwxr-xr-x root/root ./usr/bin/
lrwxrwxrwx root/root ./usr/bin/mysql_config
drwxr-xr-x root/root ./usr/include/
lrwxrwxrwx root/root ./usr/include/mysql
drwxr-xr-x root/root ./usr/lib/
drwxr-xr-x root/root ./usr/lib/${DEB_HOST_MULTIARCH}/
drwxr-xr-x root/root ./usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/
lrwxrwxrwx root/root ./usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/mysqlclient.pc
drwxr-xr-x root/root ./usr/lib/x86_64-linux-gnu/
lrwxrwxrwx root/root ./usr/lib/x86_64-linux-gnu/libmysqlclient.a
lrwxrwxrwx root/root ./usr/lib/x86_64-linux-gnu/libmysqlclient_r.a
lrwxrwxrwx root/root ./usr/lib/x86_64-linux-gnu/libmysqlclient_r.so
lrwxrwxrwx root/root ./usr/lib/x86_64-linux-gnu/libmysqlclient.so
drwxr-xr-x root/root ./usr/share/
drwxr-xr-x root/root ./usr/share/doc/
drwxr-xr-x root/root ./usr/share/doc/libmariadb-dev-compat/
-rw-r--r-- root/root ./usr/share/doc/libmariadb-dev-compat/changelog.gz
-rw-r--r-- root/root ./usr/share/doc/libmariadb-dev-compat/copyright
With this fix the '/usr/lib/${DEB_HOST_MULTIARCH}/' becomes correctly
populated with the actual architecture dependent path.
Also add dh-exec to Travis-CI testing so that CI passes.
As an extra small thing, clean away excess executable bit from Mroonga
plugin maintainer script that does not need it.
If libpcre2 (10.x) is not defined and only the older libpcre3 (8.x)
would be available, the build would attempt to download it from the
Internet, violating many build environment restrictions.
Commit b6b6980686 attempted to fix
MDEV-21942 but was incomplete, and after in CI systems started
failing since the .travis.yml update was missing.
Cleanup install_layout to account for multi-arch setup and remove
redundant defines in debian rules.
Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>