Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-38532

Debian packages are missing many server include headers, such as handler.h

    XMLWordPrintable

Details

    • Related to install and upgrade
    • Q1/2026 Server Maintenance

    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.

      Attachments

        Activity

          People

            serg Sergei Golubchik
            GeoffMontee2 Geoff Montee
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.