This formats and sorts the files the same way they are in the official
Debian packaging, making it easier to compare the files in Debian vs
upstream using commands such as `git difftool --dir-diff main --
debian`. Comparing the contents at least once a year is important in
ensuring all packaging improvements get their way into both Debian
official and upstream Debian packaging.
See https://salsa.debian.org/mariadb-team/mariadb-server/-/tree/debian/latest/debian
The formatting done by `debputy reformat --style black` is basically the
same as running `wrap-and-sort -vast`.
There are no functional changes, this is a pure formatting change.
This is intentionally done on the `main` branch in MariaDB. The stable
release branches are unlikely to ever get any changes in the
`debian/control` file, and thus formatting or maintaining it is
irrelevant. The merges from stable releases to latest `main` should not
bring any `debian/control` file changes, as adding or removing
dependencies, changing Debian compat levels or other changes are
invasive and shouldn't be done in stable releases at all.
VIDEX is a Disaggregated and Extensible Virtual Index Engine designed
to perform efficient and accurate what-if analysis for tasks such as
index recommendation.
Fix template linking error for gcc
debian: Add packaging for the VIDEX plugin
This commit adds the necessary files to build `mariadb-plugin-videx` as a separate Debian package.
- Add `COMPONENT videx-engine` to CMakeLists.txt to register the plugin.
- Define the `mariadb-plugin-videx` package in debian/control.
- Create `debian/mariadb-plugin-videx.install` to include the plugin .so and .cnf files.
debian: fix indent in debian/control
fix bugs from empty table
videx: fix RPM autobake by adding CPACK summary/description
The Debian library dependencies are auto detected and populated
as part of shlibs:Depends and the explicit population
is suspectable to distro packaging changes.
Also fix the server gssapi plugin to the compiled server
dependency consistent with other server plugins.
With PermissionsStartOnly deprecated, remove this from the
systemd service file.
Replace Debian's ExecStartPre "install -d" with a tmpfile
configuration directive creating the directory with this.
Debian's ExecStartPost of the mariadb upgrade uses the !
special executable prefix added in systemd v231 to use
root privs.
main/statistics_json.result is updated for f8ba5ced55 (MDEV-36099)
The test uses 'delete from t1' in many places and then populates
the table again. The natural order of rows in a MyISAM table is well
defined and the test was implicitly relying on that.
before f8ba5ced55 delete was deleting rows one by one, using
ha_myisam::delete_row() because the connection was stuck in rbr mode.
This caused rows to be shown in the reverse insertion order (because of
the delete link list).
MDEV-36099 fixes this bug and the server now correctly uses
ha_myisam::delete_all_rows(). This makes rows to be shown in the
insertion order as expected.
This controls which linux implementation to use for
innodb_use_native_aio=ON.
innodb_linux_aio=auto is equivalent to innodb_linux_aio=io_uring when
it is available, and falling back to innodb_linux_aio=aio when not.
Debian packaging is no longer aio exclusive or uring, so
for those older Debian or Ubuntu releases, its a remove_uring directive.
For more recent releases, add mandatory liburing for consistent packaging.
WITH_LIBAIO is now an independent option from WITH_URING.
LINUX_NATIVE_AIO preprocessor constant is renamed to HAVE_LIBAIO,
analogous to existing HAVE_URING.
tpool::is_aio_supported(): A common feature check.
is_linux_native_aio_supported(): Remove. This had originally been added in
mysql/mysql-server@0da310b69d in 2012
to fix an issue where io_submit() on CentOS 5.5 would return EINVAL
for a /tmp/#sql*.ibd file associated with CREATE TEMPORARY TABLE.
But, starting with commit 2e814d4702 InnoDB
temporary tables will be written to innodb_temp_data_file_path.
The 2012 commit said that the error could occur on "old kernels".
Any GNU/Linux distribution that we currently support should be based
on a newer Linux kernel; for example, Red Hat Enterprise Linux 7
was released in 2014.
tpool::create_linux_aio(): Wraps the Linux implementations:
create_libaio() and create_liburing(), each defined in separate
compilation units (aio_linux.cc, aio_libaio.cc, aio_liburing.cc).
The CMake definitions are simplified using target_sources() and
target_compile_definitions(), all available since CMake 2.8.12.
With this change, there is no need to include ${CMAKE_SOURCE_DIR}/tpool
or add TPOOL_DEFINES flags anymore, target_link_libraries(lib tpool)
does all that.
This is joint work with Daniel Black and Vladislav Vaintroub.
The wsrep_provider setting is mandatory and needs to be present as a
guidance for the setup of Galera cluster. wsrep_cluster_name and
innodb_autoinc_lock_mode are not mandatory.
See: https://mariadb.com/kb/en/configuring-mariadb-galera-cluster/
Change so that the client library config can be accessed using the name
mariadb.pc (or libmariadb.pc).
Rename old mariadb.pc to mariadb-embedded-server.pc to better indicate
that the config is for the daemon build, not client.
Also keep/include names with 'lib' as symlinks, as it aligns with how most
of *.pc files are named in general.
In downstream Debian we already ship the libmariadb.pc as mariadb.pc:
2f183af990
After this change we would have for the files:
- mariadb.pc for client (with libmariadb.pc as symlink)
- mariadb-embedded-sever.pc for server (with libmariadbd.pc as symlink)
* rpl.rpl_system_versioning_partitions updated for MDEV-32188
* innodb.row_size_error_log_warnings_3 changed error for MDEV-33658
(checks are done in a different order)
Providing build information compiled into the
executable provides the ability of core file
handlers to access information on the distro
and source package version. This information
can sometime be lost between the source and
an upstream bug report.
The Debian dh-package-notes includes the
makefile included in debian/rules that
sets linking flags to the right values.
The jammy version of dh-package-notes does
not include the same makefile implementation
as the others.
ref: https://systemd.io/ELF_PACKAGE_METADATA/
fix