Build Debian MariaDB packages with readline support
I've been frustrated with the use of editline (libedit) instead of readline that MariaDB is now built with in Debian 11. I have found editline to be buggy: its implementation of Ctrl-R and editing of wrapped lines do not work well, plus Ctrl-W not being mapping to delete a word by default is infuriating!
As I understand it, Debian is no longer able to distribute MariaDB built against readline as the former is GPL2 and the latter GPL3, and apparently the 2 are incompatible for distribution.
The following instructions build a new Debian packages against readline:
apt install build-essential devscripts libreadline-dev apt build-dep mariadb-client-core-10.5 apt build-dep libreadline-dev su <unpriv user> apt source mariadb-client-core-10.5 cd mariadb-10.5-10.5.19/
For Bookworm:
apt install build-essential devscripts libreadline-dev apt build-dep mariadb apt build-dep readline su <unpriv user> apt source mariadb cd mariadb-10.11.6/
Edit debian/changelog
and add new line at top. Version number should be incremented by adding a letter on the end. E.g.
mariadb-10.5 (1:10.5.19-0+deb11u2c) bullseye; urgency=medium * Build against readline instead of libedit -- Andy Beverley <andy@andybev.com> Tue, 22 Aug 2023 14:08:00 +0100
Edit debian/control
and change:
libedit-dev, libedit-dev:native,
To
libreadline-dev, libreadline-dev:native,
Edit debian/rules
and add -DNOT_FOR_DISTRIBUTION=1
below -DWITH_INNODB_SNAPPY=ON
. Then run:
For Bookworm edit cmake/aws_sdk.cmake
and change NOT_FOR_DISTRIBUTION
to NOT_FOR_DISTRIBUTION1
(this is to stop the AWS SDK from being included which causes the build to fail.
debuild -uc -us -b