- Go back to using $MAJOR_VER instead of hard-coded version strings where
possible.
- Default to 'auto' in NUMJOBS instead of just 1. Will make mysql-test-run
faster.
- Unify autopkgtest with latest version in Debian, use eatmydata to make
mysql-test-run faster.
- Salsa-CI: Remove obsolete 'artifacts: true' as that is the default value.
- Salsa-CI: Clean away obsolete temporary fixes.
- Salsa-CI: Unify with salsa-ci.yml in Debian, including test upgrades
from Bullseye to Debian unstable.
The debian/salsa-ci.yml used to work also on upstream MariaDB.org branches,
but has recently regressed and several jobs stopped working. These fixes
are necessary to get it working again.
* Partially revert 8642f592 that never worked, as MariaDB 10.2 does not
have a mysql.global table nor a mariadb.sys user. Those features weren't
introduced until MariaDB 10.4.
* Partially revert 0268b871 as we don't want ColumnStore as part of the
native Debian build. It should build only when the build is triggered
via autobake-deb.sh (MariaDB.org builds).
* Adjust salsa-ci.yml to cope with various Stretch to Sid upgrade issues
and remove the legacy mariadb-connector-c job completely as that package
hasn't been around for years anymore.
* Extend Lintian overrides to be otherwise Lintian clean
This corrects the autobake on Stretch
Caused by commit 0268b87122
and commit 3d16e0e16c.
For very strange reasons (still a mistery) the above commits caused the
federatedx, archive and blackhole plugins to be missing in the
install location even though they where built in the build log.
This only occured on Stretch and not recent Ubuntu and Debian
distros.
The stretch autobake output contained:
dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_archive.so" (tried in "." and "debian/tmp")
dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_archive.so
dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_blackhole.so" (tried in "." and "debian/tmp")
dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_blackhole.so
dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_federatedx.so" (tried in "." and "debian/tmp")
dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_federatedx.sodh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_archive.so" (tried in "." and "debian/tmp")
dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_archive.so
dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_blackhole.so" (tried in "." and "debian/tmp")
dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_blackhole.so
dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_federatedx.so" (tried in "." and "debian/tmp")
dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_federatedx.so
Columnstore badly failed on 32bit. The way Debian triggers
somehow doesn't detect the amd64 in the architecture of columnstore
so we explicitly disable it to prevent failures on x86_32.
The architecture from the control file is sufficient to not build
of arm64 and other unsupported achitectures so we don't need to
disable columnstore by default.
The logic around not building columnstore on Travis/Gitlab ci
can be preserved with a autobake-deb.sh restructure.
* Clean up autobake-deb.sh
- No need to define any TokuDB rules, there is no such package
- No need to define RocksDB arch, it already has "Architecture:" line
- No need to dh-systemd backwards compat stanza, neither Debian Jessie
nor Ubuntu Xenial has any new MariaDB 10.5 releases anymore
- Minor spelling fixes
* Ensure dch runs non-interactively so builds pass with new dch version
A recent version of dch (available in Ubuntu Hirsute and Debian Bullseye)
had a change in behaviour that it started prompting if the DEBEMAIL or
EMAIL variable as unset, asking for confirmation. We can't have anything
interactive in our build scripts, so prevent this prompt by giving
--controlmaint to the command, so it always uses the name and email from
the debian/control file and does not prompt anything.
The command-line argument has been around for a long time, so it is safe
to use on all Debian/Ubuntu builds we have.
See https://manpages.debian.org/jessie/devscripts/dch.1.en.html
Since MariaDB 10.5 is the oldest release we still release for Ubuntu Hisute
and Debian Bullseye, merge this on 10.5 and from there merge up to latest.
No need to consider 10.2, 10.3 and 10.4 as those will not be released for
Ubuntu Bullseye or Ubuntu Hirsute.
* Minor Salsa-CI cleanup
- Fix spelling (synced from downstream Debian)
* Many minor spelling fixes (synced from downstream Debian)
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.
- 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.
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.
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
- 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
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.