Commit Removed Ubuntu Bionic from
debian/autobake-debs.sh as it's not used
anymore to build official MariaDB images
REMINDER TO MERGER: This commit should not
be merged up to 10.6 or forward
Current Debian package revision scheme when using
debian/autobake-deb.sh script is:
'1:VERSION+maria~LSBNAME'
For example if VERSION can be like 10.6.8 and LSBNAME is
buster then version and revision is:
'1:10.6.8+maria~buster'
Which can lead to problem as distro code names can be lexical unordered.
For example Debian LSBNAME's can be:
Codename Buster is Debian version 10
Codename Bookworm is Debian version 11
This happens because in ASCII table
Buster first two digits are 'Bu' and they are in hex 0x42 and 0x75
and Bookworm first digits 'Bo' are they are in hex 0x42 and 0x6F
When apt is upgrading it means that:
1:10.6.8+maria~buster is bigger than 1:10.6.8+maria~bookworm
and that leads to problems in dist-upgrade process
To solve problem revision format is changed to:
'1:VERSION+maria~(deb|ubu)LSBVERSION'
Example for Debian 11 is now:
1:10.6.8+maria~deb11
and for Ubuntu 22.04 is now:
1:10.6.8+maria~ubu2204
There are new Variables
* VERSION which contains whole version string
* LSBVERSION which contains LSB version of distro
* LSBID which contains LSB ID (Debian or Ubuntu)
added to debian/autobake-deb.sh.
Also CODENAME is change to LSBNAME as it's more declaritive
The autopkgtest was failing due to missing *.changes file. This is part
of source build, so revert autobake-deb.sh back to NOT using -b for
Gitlab-CI/Salsa-CI runs.
While moving to a prescribed dependencies in MDEV-28011, an error was made
in the merge. The Ubuntu and Debian supported architectures of rocksdb-tools
are different and need to be treated as such.
This actually had no effect as our support of mariadb-plugin-rocksdb was never
different to the distro support of rocksdb-tools. Some notes where added
to this affect.
There is also nothing to do for Debian sid, and never should be.
The differentiation and grouping of distro codenames is for convenience in
merging upwards as more dependencies change across distro versions.
The fixing of versions rather than relying on apt-cache to be correct prevents
unstable changes between releases, and potentially uninstallable packages like
happened in MDEV-28014.
Correct comment about zstd to MDEV-16525
commit '6de482a6fefac0c21daf33ed465644151cdf879f'
10.3 no longer errors in truncate_notembedded.test
but per comments, a non-crash is all that we are after.
Travis is dead to us so we don't need all the conditions around it.
Remove depends for no longer supported versions
Debian Jessies, and Ubuntu Trusty, Xenial, Wily are all eol
as far as we are concerned.
The dependancy on an apt cache when running autobake broke the
10.2 aarch64 packages (MDEV-28014). Lets reduce the risk here.
zstd-1.1.3 is needed however stretch has only 1.1.2.
Move to distro version based checks as checks against the
apt-cache are unreliable if there is no cache.
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)
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.
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.
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.
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.
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
- 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.
- 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.
- 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.
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.
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 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).