Details
Description
I confirmed with @serg that server includes are supposed to be installed by one of the Debian packages. Currently, many headers (such as handler.h) are missing.
Steps to reproduce
1. Create a Docker container:
docker run -d \
|
--name mariadb \
|
-e MARIADB_ROOT_PASSWORD=your_root_password \
|
-p 3306:3306 \
|
mariadb:latest
|
2. Get a bash shell in the container:
docker exec -it mariadb bash |
3. Update the package metadata:
apt update
|
4. Install libmariadbd-dev:
apt install libmariadbd-dev |
5. Check include headers installed by libmariadbd-dev package:
$ dpkg -L libmariadbd-dev | grep "include" |
/usr/include
|
/usr/include/mariadb
|
/usr/include/mariadb/server
|
/usr/include/mariadb/server/big_endian.h |
/usr/include/mariadb/server/byte_order_generic.h |
/usr/include/mariadb/server/byte_order_generic_x86.h |
/usr/include/mariadb/server/byte_order_generic_x86_64.h |
/usr/include/mariadb/server/decimal.h |
/usr/include/mariadb/server/errmsg.h |
/usr/include/mariadb/server/handler_ername.h |
/usr/include/mariadb/server/handler_state.h |
/usr/include/mariadb/server/json_lib.h |
/usr/include/mariadb/server/keycache.h |
/usr/include/mariadb/server/little_endian.h |
/usr/include/mariadb/server/m_ctype.h |
/usr/include/mariadb/server/m_string.h |
/usr/include/mariadb/server/ma_dyncol.h |
/usr/include/mariadb/server/mariadb_capi_rename.h |
/usr/include/mariadb/server/my_alloc.h |
/usr/include/mariadb/server/my_alloca.h |
/usr/include/mariadb/server/my_attribute.h |
/usr/include/mariadb/server/my_byteorder.h |
/usr/include/mariadb/server/my_cmp.h |
/usr/include/mariadb/server/my_compiler.h |
/usr/include/mariadb/server/my_config.h |
/usr/include/mariadb/server/my_dbug.h |
/usr/include/mariadb/server/my_decimal_limits.h |
/usr/include/mariadb/server/my_dir.h |
/usr/include/mariadb/server/my_getopt.h |
/usr/include/mariadb/server/my_global.h |
/usr/include/mariadb/server/my_list.h |
/usr/include/mariadb/server/my_net.h |
/usr/include/mariadb/server/my_pthread.h |
/usr/include/mariadb/server/my_sys.h |
/usr/include/mariadb/server/my_valgrind.h |
/usr/include/mariadb/server/my_xml.h |
/usr/include/mariadb/server/mysql
|
/usr/include/mariadb/server/mysql/auth_dialog_client.h |
/usr/include/mariadb/server/mysql/client_plugin.h |
/usr/include/mariadb/server/mysql/plugin.h |
/usr/include/mariadb/server/mysql/plugin_audit.h |
/usr/include/mariadb/server/mysql/plugin_auth.h |
/usr/include/mariadb/server/mysql/plugin_auth_common.h |
/usr/include/mariadb/server/mysql/plugin_data_type.h |
/usr/include/mariadb/server/mysql/plugin_encryption.h |
/usr/include/mariadb/server/mysql/plugin_ftparser.h |
/usr/include/mariadb/server/mysql/plugin_function.h |
/usr/include/mariadb/server/mysql/plugin_password_validation.h |
/usr/include/mariadb/server/mysql/psi
|
/usr/include/mariadb/server/mysql/psi/mysql_file.h |
/usr/include/mariadb/server/mysql/psi/mysql_idle.h |
/usr/include/mariadb/server/mysql/psi/mysql_mdl.h |
/usr/include/mariadb/server/mysql/psi/mysql_memory.h |
/usr/include/mariadb/server/mysql/psi/mysql_ps.h |
/usr/include/mariadb/server/mysql/psi/mysql_socket.h |
/usr/include/mariadb/server/mysql/psi/mysql_sp.h |
/usr/include/mariadb/server/mysql/psi/mysql_stage.h |
/usr/include/mariadb/server/mysql/psi/mysql_statement.h |
/usr/include/mariadb/server/mysql/psi/mysql_table.h |
/usr/include/mariadb/server/mysql/psi/mysql_thread.h |
/usr/include/mariadb/server/mysql/psi/mysql_transaction.h |
/usr/include/mariadb/server/mysql/psi/psi.h |
/usr/include/mariadb/server/mysql/psi/psi_abi_v0.h |
/usr/include/mariadb/server/mysql/psi/psi_abi_v1.h |
/usr/include/mariadb/server/mysql/psi/psi_abi_v2.h |
/usr/include/mariadb/server/mysql/psi/psi_base.h |
/usr/include/mariadb/server/mysql/psi/psi_memory.h |
/usr/include/mariadb/server/mysql/service_base64.h |
/usr/include/mariadb/server/mysql/service_debug_sync.h |
/usr/include/mariadb/server/mysql/service_encryption.h |
/usr/include/mariadb/server/mysql/service_encryption_scheme.h |
/usr/include/mariadb/server/mysql/service_json.h |
/usr/include/mariadb/server/mysql/service_kill_statement.h |
/usr/include/mariadb/server/mysql/service_log_warnings.h |
/usr/include/mariadb/server/mysql/service_logger.h |
/usr/include/mariadb/server/mysql/service_md5.h |
/usr/include/mariadb/server/mysql/service_my_crypt.h |
/usr/include/mariadb/server/mysql/service_my_print_error.h |
/usr/include/mariadb/server/mysql/service_my_snprintf.h |
/usr/include/mariadb/server/mysql/service_print_check_msg.h |
/usr/include/mariadb/server/mysql/service_progress_report.h |
/usr/include/mariadb/server/mysql/service_sha1.h |
/usr/include/mariadb/server/mysql/service_sha2.h |
/usr/include/mariadb/server/mysql/service_sql.h |
/usr/include/mariadb/server/mysql/service_thd_alloc.h |
/usr/include/mariadb/server/mysql/service_thd_autoinc.h |
/usr/include/mariadb/server/mysql/service_thd_error_context.h |
/usr/include/mariadb/server/mysql/service_thd_mdl.h |
/usr/include/mariadb/server/mysql/service_thd_rnd.h |
/usr/include/mariadb/server/mysql/service_thd_specifics.h |
/usr/include/mariadb/server/mysql/service_thd_timezone.h |
/usr/include/mariadb/server/mysql/service_thd_wait.h |
/usr/include/mariadb/server/mysql/service_wsrep.h |
/usr/include/mariadb/server/mysql/services.h |
/usr/include/mariadb/server/mysql.h |
/usr/include/mariadb/server/mysql_com.h |
/usr/include/mariadb/server/mysql_com_server.h |
/usr/include/mariadb/server/mysql_embed.h |
/usr/include/mariadb/server/mysql_time.h |
/usr/include/mariadb/server/mysql_version.h |
/usr/include/mariadb/server/mysqld_ername.h |
/usr/include/mariadb/server/mysqld_error.h |
/usr/include/mariadb/server/pack.h |
/usr/include/mariadb/server/sql_common.h |
/usr/include/mariadb/server/sql_state.h |
/usr/include/mariadb/server/sslopt-case.h |
/usr/include/mariadb/server/sslopt-longopts.h |
/usr/include/mariadb/server/sslopt-vars.h |
/usr/include/mariadb/server/typelib.h |
6. Check all headers currently available in /usr/include/mariadb/server:
$ ls -l /usr/include/mariadb/server |
total 724
|
-rw-r--r-- 1 root root 4525 Nov 13 17:00 big_endian.h
|
-rw-r--r-- 1 root root 5242 Nov 13 17:00 byte_order_generic.h
|
-rw-r--r-- 1 root root 4282 Nov 13 17:00 byte_order_generic_x86.h
|
-rw-r--r-- 1 root root 4129 Nov 13 17:00 byte_order_generic_x86_64.h
|
-rw-r--r-- 1 root root 4921 Nov 13 17:00 decimal.h
|
-rw-r--r-- 1 root root 4409 Nov 13 17:00 errmsg.h
|
-rw-r--r-- 1 root root 4739 Nov 13 17:00 handler_ername.h
|
-rw-r--r-- 1 root root 758 Nov 13 17:00 handler_state.h
|
-rw-r--r-- 1 root root 14331 Nov 13 17:00 json_lib.h
|
-rw-r--r-- 1 root root 8827 Nov 13 17:00 keycache.h
|
-rw-r--r-- 1 root root 3572 Nov 13 17:00 little_endian.h
|
-rw-r--r-- 1 root root 73457 Nov 13 17:00 m_ctype.h
|
-rw-r--r-- 1 root root 10185 Nov 13 17:00 m_string.h
|
-rw-r--r-- 1 root root 8045 Nov 13 17:00 ma_dyncol.h
|
-rw-r--r-- 1 root root 3418 Nov 13 17:00 mariadb_capi_rename.h
|
-rw-r--r-- 1 root root 2219 Nov 13 17:00 my_alloc.h
|
-rw-r--r-- 1 root root 1431 Nov 13 17:00 my_alloca.h
|
-rw-r--r-- 1 root root 3578 Nov 13 17:00 my_attribute.h
|
-rw-r--r-- 1 root root 2216 Nov 13 17:00 my_byteorder.h
|
-rw-r--r-- 1 root root 914 Nov 13 17:00 my_cmp.h
|
-rw-r--r-- 1 root root 5740 Nov 13 17:00 my_compiler.h
|
-rw-r--r-- 1 root root 14424 Nov 13 17:31 my_config.h
|
-rw-r--r-- 1 root root 9828 Nov 13 17:00 my_dbug.h
|
-rw-r--r-- 1 root root 2074 Nov 13 17:00 my_decimal_limits.h
|
-rw-r--r-- 1 root root 3887 Nov 13 17:00 my_dir.h
|
-rw-r--r-- 1 root root 6286 Nov 13 17:00 my_getopt.h
|
-rw-r--r-- 1 root root 33061 Nov 13 17:00 my_global.h
|
-rw-r--r-- 1 root root 1506 Nov 13 17:00 my_list.h
|
-rw-r--r-- 1 root root 2029 Nov 13 17:00 my_net.h
|
-rw-r--r-- 1 root root 26597 Nov 13 17:00 my_pthread.h
|
-rw-r--r-- 1 root root 51115 Nov 13 17:00 my_sys.h
|
-rw-r--r-- 1 root root 4373 Nov 13 17:00 my_valgrind.h
|
-rw-r--r-- 1 root root 2832 Nov 13 17:00 my_xml.h
|
drwxr-xr-x 3 root root 4096 Jan 10 11:32 mysql
|
-rw-r--r-- 1 root root 40275 Nov 13 17:00 mysql.h
|
-rw-r--r-- 1 root root 30246 Nov 13 17:00 mysql_com.h
|
-rw-r--r-- 1 root root 1313 Nov 13 17:00 mysql_com_server.h
|
-rw-r--r-- 1 root root 1124 Nov 13 17:00 mysql_embed.h
|
-rw-r--r-- 1 root root 2742 Nov 13 17:00 mysql_time.h
|
-rw-r--r-- 1 root root 1307 Nov 13 17:31 mysql_version.h
|
-rw-r--r-- 1 root root 137421 Nov 13 17:31 mysqld_ername.h
|
-rw-r--r-- 1 root root 53307 Nov 13 17:31 mysqld_error.h
|
-rw-r--r-- 1 root root 1105 Nov 13 17:00 pack.h
|
-rw-r--r-- 1 root root 5336 Nov 13 17:00 sql_common.h
|
-rw-r--r-- 1 root root 14955 Nov 13 17:31 sql_state.h
|
-rw-r--r-- 1 root root 1633 Nov 13 17:00 sslopt-case.h |
-rw-r--r-- 1 root root 2968 Nov 13 17:00 sslopt-longopts.h
|
-rw-r--r-- 1 root root 4031 Nov 13 17:00 sslopt-vars.h
|
-rw-r--r-- 1 root root 2795 Nov 13 17:00 typelib.h
|
7. Check all headers currently available in /usr/include/mariadb/server/internal:
$ ls -l /usr/include/mariadb/server/internal |
ls: cannot access '/usr/include/mariadb/server/internal': No such file or directory |
8. Check OS version:
$ cat /etc/os-release |
PRETTY_NAME="Ubuntu 24.04.3 LTS" |
NAME="Ubuntu" |
VERSION_ID="24.04" |
VERSION="24.04.3 LTS (Noble Numbat)" |
VERSION_CODENAME=noble
|
ID=ubuntu
|
ID_LIKE=debian
|
HOME_URL="https://www.ubuntu.com/" |
SUPPORT_URL="https://help.ubuntu.com/" |
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" |
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" |
UBUNTU_CODENAME=noble
|
LOGO=ubuntu-logo
|
Actual results
Many server includes are missing, including handler.h.
The /usr/include/mariadb/server/internal directory does not exist at all.
Expected results
All server headers should be installed somewhere. Otherwise, engine developers can't use the packages and must build the full source tree.