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