User Tools

Site Tools


how_to_rebuild_mariadb_against_readline_in_debian

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
how_to_rebuild_mariadb_against_readline_in_debian.txt · Last modified: 2024/05/20 21:33 by abeverley