Lintian erros with
missing-build-dependency-for-dh-addon systemd (*)
One of these premises should be installed:
debhelper:any (>= 9.20160709~)
debhelper-compat:any
dh-sequence-systemd:any
dh-systemd:any
As there is package debhelper version 10 or higher required
for build. This is false positive Lintian error which should
be supressed..
NOTE TO MERGER: This is only up-to MariaDB 10.10.
Convert minimal amount of Lintian overrides to make Lintian
test pass also with Debian Sid latest Lintian 2.115 version.
Old style overrides are kept so they can be used with
older versions of Lintian.
Introduce minimal Lintian overrides which are common
from MariaDB version 10.5 up-to to 10.8.
Overrides added files:
* debian/mariadb-test-data.lintian-overrides
- MariaDB installs some shared objects to test-suite directory and not in
'/usr/lib' or similar. Share objects is pam_mariadb_mtr.so. Tags are
arch-dependent-file-in-usr-share and
arch-independent-package-contains-binary-or-object Lintia
* debian/mariadb-test.lintian-overrides
- MariaDB installs some some binaries to test-sute directory and
in mariadb-test package they are my_safe_process and
wsrep_check_version. Tags is
arch-dependent-file-in-usr-share
* debian/source/lintian-overrides
- In source there is some source files missing which should be addressed
sql/share/charsets/languages.html and
and storage/rocksdb/rocksdb/docs/_includes/footer.html.
Tags is source-is-missing
- Add Lintian override for missing:
storage/columnstore/columnstore/utils/jemalloc/libjemalloc.so.2
- Add Lintian override for substvar external resources:
${source:Version} libmariadb-dev -> libmysqlclient-dev [debian/control:66]
${source:Version} libmariadb-dev -> libmysqld-dev [debian/control:66]
${source:Version} libmariadbd-dev -> libmariadbclient-dev [debian/control:216]
* Deb: Handle codename 'n/a' from Debian Sid properly and autobake-deb cleanup
This fixes autobake-deb.sh builds on Sid which was visible as 4 failing
build steps on Salsa-CI.
- In Sid the LSBNAME might evaluate to 'n/a', so accept it as 'Sid' to
fix builds that failed with error:
Error - unknown release codename n/a
- Refactor list to have Ubuntu versions first, then Debian, and as last
the special case of Debian Sid
- Fix minor syntax issues detected by Shellcheck
Also remove useless DEB_HOST_ARCH_CPU check from debian/rules:
* It was never in effect as the 'sed' in autobake-deb.sh cleared it anyway
* The variable name was wrong and always empty
* If variable would have been correct, logic was still reversed
- Define 3h timeout as the default 1h timeout on Gitlab.com (and others)
is usually not enough for initial (uncached) MariaDB builds.
- Replace Buster to Bookworm/Sid upgrade testing with upgrade inside Buster
testing as direct upgrades from Stretch to Bullseye and Buster to Bookworm
are no longer possible due to:
Bug#993755: libcrypt.so.1: cannot open shared object file when
upgrading from Stretch to Sid (https://bugs.debian.org/993755)
- Stop ignoring MariaDB.org 10.6 to this version upgrade testing failures
to reveal bug MDEV-28640. Originally this step was failing as the uring
dependencies in upstream builders lagged behind and there was nothing
that needed work, only time time to resolve. Now there is an actual bug
in packaging that should be visible as a CI failure.
- Stop testing for 'service mysql status' on systems that upgraded from
MySQL 8.0 to MariaDB.org vended 10.6. Due to some unidentified debian/control
changes in 10.6 on upstream the upgrade is no longer compatible in
a way that would maintain the init.d script with name 'mysql'.
- Fix typos where mergers had changed occurrences of 10.5 to 10.6 while
they intentionally need to be exactly 10.5, otherwise the meaning
changes.
- Align autopkgtest code with downstream official Debian packaging one.
This is change is safe on a stable branch because is only affects builds
and testing, not any actual usage of MariaDB 10.6.
- Standardize on using capitalized 'YES' in CMake build options
(instead of 'yes' or mixed case)
- Add some comments to better document debian/rules
- Fix typo in Lintian overrides
Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/mariadb-10.6/+bug/1970634
MariaDB ticket: https://jira.mariadb.org/browse/MDEV-25633
When built with LTO on Ubuntu, MariaDB does not catch an exception when
the uring initialization fails due to a low RLIMIT_MEMLOCK value.
This commit amends the commit 0609b34555
to be identical to the one done downstream in Debian:
8d20ca979c
This way both the inline comments and 'git blame' for this section will
show properly why this is needed, and the fix is one that is fully tested
on Debian and Ubuntu.
Also having this section fully identical in upstream MariaDB and downstream
Debian will make the packaging maintenance easier as 'diff` runs on this
file will not flag this as a difference anymore.
In MDEV-28640 the init script failed to stop/start the MariaDB server
due to missing mysqladmin on the system. This was however very hard to
spot from the console output.
Add an explicit check for the binary the script depends on, and fail
verbosely if the dependency is missing.
MariaDB codebase is huge and Lintian has lots of test than
can fire false-positive warnings which leads to situation
where real problems can't be spotted.
Suspend obvious false-positive Lintian warnings and
let Lintian problems that needs some love shine
out.
Suspends in package mariadb-test-data
Supporting BSD family needs to use '/usr/bin/env perl' and not '/usr/bin/perl'
Perl script are for testing and not for production in mariadb-test-data
package:
* incorrect-path-for-interpreter
There is several files with national-encoding which are test file so they
can't be in unicode charset
* national-encoding
Serveral test paths are intentionally repeated:
* repeated-path-segment
Suspends in package mariadb-test
Supporting BSD family needs to use '/usr/bin/env perl' and not '/usr/bin/perl'
Perl script are for testing and not for production in mariadb-test-data
package:
* incorrect-path-for-interpreter
Suspends in package source package
Remade some 'version-substvar-for-external-package' to use
regex.
MGroonga is missing source file 'jquery-ui-1.8.18.custom.js' correct
lintian suspend with regex:
* source-is-missing
There is several files with very long line lenghts. Add suspends
for those that can't be corrected in several places. Most
of them are test result files, SQL test files or intentional
long lines that can't be splitted.
* very-long-line-length-in-source-file
There is several autogenerated C++ files which probably should not
be there but they should not do any harm:
* source-contains-autogenerated-visual-c++-file
Fixes issues like e.g.:
The following packages have unmet dependencies:
mariadb-client : Breaks: mariadb-client-core-10.9
Breaks: mariadb-server-10.9
mariadb-server-core : Breaks: mariadb-client-10.9
Breaks: mariadb-server-10.9
and
[ERROR] Missing Breaks/Replaces found
[ERROR] libmariadb-dev-compat conflicts with libmariadbclient-dev
files: {'/usr/bin/mysql_config'}
Remove version suffix from Debian packages (for example mariadb-server-10.9)
because installing suffixed package removes older version
of package even if it's suffixed (for example mariadb-server-10.7)
This make also Debian package management easier in future MariaDB
version iterations because there is no need for stacking
Conlicts/Breaks/Replaces-parameters in every new major release
As MariaDB 10.5 has been removed from Debian Sid and MariaDB 10.6 has
entered it, the Salsa-CI testing needs to adapt.
To achieve this, essentially sync most the the salsa-ci.yml contents from
https://salsa.debian.org/mariadb-team/mariadb-server/-/tree/debian/latest
This includes removing Stretch builds, as Stretch does not support uring
nor pmem libraries, which MariaDB 10.6 depends on.
Also add a couple Lintian overrides to make Salsa-CI pass.
NOTE TO MERGERS: This commit is made on 10.6 branch and can be merged to
all later branches (10.7, 10.8, 10.9..) for now, but later somebody needs
to go in and update all the testing stages to do the upgrade testing
correctly for 10.6->10.7->10.8->10.9 etc.
Since Debian Sid now has MariaDB 10.6, we can't do any upgrade tests in
Debian Sid for the 10.5 branch anymore. It would just fail with downgrade
errors.
Also, since MariaDB 10.5 is no longer in Sid, we can't even test 10.5.x
to 10.5.y upgrades in Sid.
Instead the 10.5 branch salsa-ci.yml should run all builds and tests based
on Debian Bullseye, which has MariaDB 10.5 (only).
To achieve this, essentially sync most the the salsa-ci.yml contents from
https://salsa.debian.org/mariadb-team/mariadb-10.5/-/tree/bullseye
Also add a couple Lintian overrides to make Salsa-CI pass.
NOTE TO MERGERS: This commit is intended for the 10.5 branch only, do not
merge anything from it on 10.6 or any other branch.
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
- 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
- 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.
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.