You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

642 lines
21 KiB

mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
mariadb: improve packaging and configuration At present there are some flaws related to configuration, also related to the packaging of mariadb. For starters there are complaints that the configuration is too static. To address this a new configuration layout is introduced. The primary configuration file (my.cnf) is changed so that it now only includes further configuration files in the directory /etc/mysql/conf.d. More default configuration files are added for the server and the client. This is the new default configuration. With these changes it's possible for the user to select if they want to change the default configuration (in conf.d/*.cnf) or if they want to drop their own files into conf.d instead. If the user .cnf files are read after the default .cnf files (files are included in alphabetical order), they will overwrite the settings from the default configuration. The other flaw is that the my.cnf file is included in mariadb-server. But that doesn't really fit the requirements, as the client also uses the configuration file(s). To accomodate this a new package mariadb-common is added. It installs the shared my.cnf file. The remaining changes add base packages, both for the server and the client. These are meant as foundation for the packages containing the respective binaries. In summary they will install the configuration, small miscellaneous files (SQL scripts etc.) and the user "mariadb". That means that everything is ready for the binaries, like mysql and mysqld. If there is not enough space left on flash memory, the user can just drop the binaries on a pendrive, link them to /usr/bin and get started. The ideas and configuration files were copied from Debian. Some amendments were made. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
6 years ago
  1. #
  2. # Copyright (C) 2018 Sebastian Kemper <sebastian_ml@gmx.net>
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. PKG_NAME:=mariadb
  9. PKG_VERSION:=10.2.24
  10. PKG_RELEASE:=2
  11. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  12. PKG_SOURCE_URL := \
  13. https://mirror.netcologne.de/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
  14. https://mirror.lstn.net/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
  15. https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
  16. https://downloads.mariadb.org/interstitial/$(PKG_NAME)-$(PKG_VERSION)/source
  17. PKG_HASH:=97f4d924e69f77abb2f650116785c2f5ef356230442534ebcbaadb51d9bb8bc4
  18. PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
  19. PKG_LICENSE:=GPL-2.0 LGPL-2.1
  20. PKG_LICENSE_FILES:=COPYING libmariadb/COPYING.LIB
  21. PKG_CPE_ID:=cpe:/a:mariadb:mariadb
  22. HOST_BUILD_PARALLEL:=1
  23. PKG_BUILD_PARALLEL:=1
  24. PKG_USE_MIPS16:=0
  25. HOST_BUILD_DEPENDS:=libxml2/host
  26. # Without libevent2 tests/async_queries sporadically fails on the bots
  27. PKG_BUILD_DEPENDS:=libevent2 mariadb/host
  28. CMAKE_INSTALL:=1
  29. CONF_DIR:=/etc/mysql
  30. PLUGIN_DIR:=/usr/lib/mariadb/plugin
  31. SHARE_DIR:=/usr/share/mariadb
  32. MARIADB_DISABLE_ENGINES := \
  33. cassandra \
  34. example \
  35. mroonga \
  36. oqgraph \
  37. rocksdb \
  38. test_sql_discovery \
  39. tokudb
  40. MARIADB_DISABLE_PLUGINS := \
  41. audit_null \
  42. auth_examples \
  43. aws_key_management \
  44. cracklib_password_check \
  45. daemon_example \
  46. debug_key_management \
  47. example_key_management \
  48. fulltext
  49. MARIADB_LIB_PLUGINS := \
  50. auth_gssapi_client
  51. MARIADB_SERVER_PLUGINS := \
  52. auth_ed25519 \
  53. auth_gssapi \
  54. auth_pam \
  55. client_ed25519 \
  56. disks \
  57. feedback \
  58. file_key_management \
  59. ha_archive \
  60. ha_blackhole \
  61. ha_connect \
  62. ha_federated \
  63. ha_federatedx \
  64. ha_sphinx \
  65. ha_spider \
  66. handlersocket \
  67. locales \
  68. metadata_lock_info \
  69. query_cache_info \
  70. query_response_time \
  71. semisync_master \
  72. semisync_slave \
  73. server_audit \
  74. simple_password_check \
  75. sql_errlog \
  76. wsrep_info
  77. PKG_CONFIG_DEPENDS := \
  78. $(patsubst %,CONFIG_PACKAGE_lib$(PKG_NAME)-plugin-%,$(subst _,-,$(MARIADB_LIB_PLUGINS))) \
  79. $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-%,$(subst _,-,$(MARIADB_SERVER_PLUGINS))) \
  80. CONFIG_PACKAGE_mariadb-server
  81. plugin-auth_gssapi_client := PLUGIN_AUTH_GSSAPI_CLIENT
  82. plugin-auth_ed25519 := PLUGIN_AUTH_ED25519
  83. plugin-auth_gssapi := PLUGIN_AUTH_GSSAPI
  84. plugin-auth_pam := PLUGIN_AUTH_PAM
  85. plugin-client_ed25519 := PLUGIN_CLIENT_ED25519
  86. plugin-disks := PLUGIN_DISKS
  87. plugin-feedback := PLUGIN_FEEDBACK
  88. plugin-file_key_management := PLUGIN_FILE_KEY_MANAGEMENT
  89. plugin-ha_archive := PLUGIN_ARCHIVE
  90. plugin-ha_blackhole := PLUGIN_BLACKHOLE
  91. plugin-ha_connect := PLUGIN_CONNECT
  92. plugin-ha_federated := PLUGIN_FEDERATED
  93. plugin-ha_federatedx := PLUGIN_FEDERATEDX
  94. plugin-ha_sphinx := PLUGIN_SPHINX
  95. plugin-ha_spider := PLUGIN_SPIDER
  96. plugin-handlersocket := PLUGIN_HANDLERSOCKET
  97. plugin-locales := PLUGIN_LOCALES
  98. plugin-metadata_lock_info := PLUGIN_METADATA_LOCK_INFO
  99. plugin-query_cache_info := PLUGIN_QUERY_CACHE_INFO
  100. plugin-query_response_time := PLUGIN_QUERY_RESPONSE_TIME
  101. plugin-semisync_master := PLUGIN_SEMISYNC_MASTER
  102. plugin-semisync_slave := PLUGIN_SEMISYNC_SLAVE
  103. plugin-server_audit := PLUGIN_SERVER_AUDIT
  104. plugin-simple_password_check := PLUGIN_SIMPLE_PASSWORD_CHECK
  105. plugin-sql_errlog := PLUGIN_SQL_ERRLOG
  106. plugin-wsrep_info := PLUGIN_WSREP_INFO
  107. MARIADB_CLIENT := \
  108. mysql \
  109. mysqlcheck
  110. MARIADB_CLIENT_EXTRA := \
  111. mysql_find_rows \
  112. mysql_waitpid \
  113. mysqlaccess \
  114. mysqladmin \
  115. mysqldump \
  116. mysqlimport \
  117. mysqlshow \
  118. mysqlslap \
  119. mytop
  120. MARIADB_SERVER := \
  121. innochecksum \
  122. my_print_defaults \
  123. mysql_install_db \
  124. mysql_upgrade \
  125. mysqld
  126. MARIADB_SERVER_EXTRA := \
  127. aria* \
  128. mariabackup \
  129. msql2mysql \
  130. myisam_ftdump \
  131. myisamchk \
  132. myisamlog \
  133. myisampack \
  134. mysql_convert_table_format \
  135. mysql_fix_extensions \
  136. mysql_plugin \
  137. mysql_secure_installation \
  138. mysql_setpermission \
  139. mysql_tzinfo_to_sql \
  140. mysqlbinlog \
  141. mysqld_multi \
  142. mysqldumpslow \
  143. mysqlhotcopy \
  144. perror \
  145. replace \
  146. resolve_stack_dump \
  147. wsrep_sst_*
  148. include $(INCLUDE_DIR)/package.mk
  149. include $(INCLUDE_DIR)/host-build.mk
  150. include $(INCLUDE_DIR)/cmake.mk
  151. include $(INCLUDE_DIR)/nls.mk
  152. MARIADB_COMMON_DEPENDS := \
  153. $(ICONV_DEPENDS) \
  154. +libopenssl \
  155. +zlib
  156. MARIADB_COMMON_DEPENDS_EXE := \
  157. $(MARIADB_COMMON_DEPENDS) \
  158. +libatomic \
  159. +libstdcpp
  160. # Pass CPPFLAGS in the CFLAGS as otherwise the build system will
  161. # ignore them.
  162. TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
  163. define Package/mariadb/disable/engine
  164. echo > $(1)/storage/$(2)/CMakeLists.txt
  165. endef
  166. define Package/mariadb/disable/plugin
  167. echo > $(1)/plugin/$(2)/CMakeLists.txt
  168. endef
  169. define Package/mariadb/install/bin
  170. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $(1)/usr/bin
  171. endef
  172. define Package/mariadb/install/plugin
  173. $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/$(2).so $(1)$(PLUGIN_DIR)
  174. endef
  175. define Package/mariadb/description/Default
  176. MariaDB is a very fast and robust SQL database server.
  177. endef
  178. define Package/libmariadb/Default
  179. SECTION:=libs
  180. CATEGORY:=Libraries
  181. URL:=https://mariadb.org/
  182. endef
  183. define Package/libmariadb
  184. $(call Package/libmariadb/Default)
  185. DEPENDS:=+mariadb-common \
  186. $(MARIADB_COMMON_DEPENDS)
  187. TITLE:=MariaDB database client library
  188. MENU:=1
  189. PROVIDES:=libmariadbclient libmysqlclient libmysqlclient-r
  190. endef
  191. define Package/libmariadb/conffiles
  192. $(CONF_DIR)/conf.d/50-client.cnf
  193. endef
  194. define Package/libmariadb/description
  195. $(call Package/mariadb/description/Default)
  196. This package includes the client library.
  197. endef
  198. define Package/mariadb/Default
  199. SECTION:=utils
  200. CATEGORY:=Utilities
  201. URL:=https://mariadb.org/
  202. SUBMENU:=Database
  203. endef
  204. define Package/mariadb-client
  205. $(call Package/mariadb/Default)
  206. TITLE:=MariaDB database client
  207. MENU:=1
  208. DEPENDS:=mariadb-client-base
  209. endef
  210. define Package/mariadb-client/description
  211. $(call Package/mariadb/description/Default)
  212. This package includes the following core client binaries:
  213. $(subst $(space),$(newline),$(MARIADB_CLIENT))
  214. endef
  215. define Package/mariadb-client-base
  216. $(call Package/mariadb/Default)
  217. TITLE:=MariaDB database client base
  218. DEPENDS:=mariadb-common \
  219. $(MARIADB_COMMON_DEPENDS_EXE) \
  220. +libedit
  221. endef
  222. define Package/mariadb-client-base/conffiles
  223. $(CONF_DIR)/conf.d/50-mysql-clients.cnf
  224. endef
  225. define Package/mariadb-client-base/description
  226. $(call Package/mariadb/description/Default)
  227. This package provides the foundation for mariadb-client. It installs the
  228. configuration and the dependencies.
  229. endef
  230. define Package/mariadb-client-extra
  231. $(call Package/mariadb/Default)
  232. TITLE:=MariaDB database client extra
  233. DEPENDS:=mariadb-client
  234. endef
  235. define Package/mariadb-client-extra/description
  236. $(call Package/mariadb/description/Default)
  237. This package includes the following extra client binaries:
  238. $(subst $(space),$(newline),$(MARIADB_CLIENT_EXTRA))
  239. endef
  240. define Package/mariadb-common
  241. $(call Package/mariadb/Default)
  242. TITLE:=MariaDB database common files
  243. DEPENDS:=
  244. endef
  245. define Package/mariadb-common/conffiles
  246. $(CONF_DIR)/my.cnf
  247. endef
  248. define Package/mariadb-common/description
  249. $(call Package/mariadb/description/Default)
  250. This package includes shared files, for example $(CONF_DIR)/my.cnf.
  251. endef
  252. define Package/mariadb-server
  253. $(call Package/mariadb/Default)
  254. DEPENDS:=mariadb-server-base
  255. TITLE:=MariaDB database server
  256. MENU:=1
  257. PROVIDES:=mysql-server
  258. endef
  259. define Package/mariadb-server/description
  260. $(call Package/mariadb/description/Default)
  261. This package includes the following core server binaries:
  262. $(subst $(space),$(newline),$(MARIADB_SERVER))
  263. endef
  264. define Package/mariadb-server-base
  265. $(call Package/mariadb/Default)
  266. DEPENDS:=mariadb-common \
  267. $(MARIADB_COMMON_DEPENDS_EXE) \
  268. +libaio \
  269. +liblzma \
  270. +libpcre \
  271. +resolveip
  272. TITLE:=MariaDB database server base
  273. USERID:=mariadb=376:mariadb=376
  274. endef
  275. define Package/mariadb-server-base/conffiles
  276. $(CONF_DIR)/conf.d/50-server.cnf
  277. $(CONF_DIR)/conf.d/60-galera.cnf
  278. /etc/config/mysqld
  279. endef
  280. define Package/mariadb-server-base/description
  281. $(call Package/mariadb/description/Default)
  282. This package provides the foundation for mariadb-server. It installs the
  283. init script, support files (configuration etc.), the user "mariadb" and
  284. the dependencies.
  285. endef
  286. define Package/mariadb-server-extra
  287. $(call Package/mariadb/Default)
  288. TITLE:=MariaDB database server extra
  289. DEPENDS:=mariadb-server
  290. endef
  291. define Package/mariadb-server-extra/description
  292. $(call Package/mariadb/description/Default)
  293. This package includes the following extra server binaries:
  294. $(subst $(space),$(newline),$(MARIADB_SERVER_EXTRA))
  295. endef
  296. # We won't need unit tests
  297. CMAKE_OPTIONS += -DWITH_UNIT_TESTS=0
  298. # This value is determined automatically during straight compile by compiling
  299. # and running a test code. You cannot do that during cross-compile. However the
  300. # stack grows downward in most if not all modern systems. The only exception
  301. # according to buildroot is PA-RISC which is not supported by OpenWrt as far as
  302. # I know. Therefore it makes sense to hardcode the value. If an arch is added
  303. # the stack of which grows up one should expect unpredictable behavior at run
  304. # time.
  305. CMAKE_OPTIONS += -DSTACK_DIRECTION=-1
  306. # Make it explicit that we are cross-compiling
  307. CMAKE_OPTIONS += -DCMAKE_CROSSCOMPILING=1
  308. # Explicitly disable dtrace to avoid detection of a host version
  309. CMAKE_OPTIONS += -DENABLE_DTRACE=0
  310. # Prevent MariaDB from messing with OpenWrt's C(XX)FLAGS
  311. CMAKE_OPTIONS += -DSECURITY_HARDENED=OFF
  312. ifeq ($(CONFIG_PACKAGE_mariadb-server),)
  313. CMAKE_OPTIONS += -DWITHOUT_SERVER=ON
  314. else
  315. # Enable the auth_socket plugin and let unix user root access MariaDB without a
  316. # separate password.
  317. CMAKE_OPTIONS += -DWITHOUT_SERVER=OFF -DPLUGIN_AUTH_SOCKET=STATIC
  318. endif
  319. CMAKE_OPTIONS += \
  320. -DCONNECT_WITH_JDBC=NO \
  321. -DCONNECT_WITH_LIBXML2=system \
  322. -DCONNECT_WITH_MONGO=NO \
  323. -DCONNECT_WITH_ODBC=NO \
  324. -DDISABLE_SHARED=NO \
  325. -DENABLED_PROFILING=OFF \
  326. -DENABLE_STATIC_LIBS=OFF \
  327. -DINSTALL_DOCDIR=share/doc/mariadb \
  328. -DINSTALL_DOCREADMEDIR=share/doc/mariadb \
  329. -DINSTALL_INFODIR=share/info \
  330. -DINSTALL_MANDIR=share/man \
  331. -DINSTALL_MYSQLSHAREDIR=share/mariadb \
  332. -DINSTALL_MYSQLTESTDIR="" \
  333. -DINSTALL_PLUGINDIR=lib/mariadb/plugin \
  334. -DINSTALL_SBINDIR=bin \
  335. -DINSTALL_SCRIPTDIR=bin \
  336. -DINSTALL_SQLBENCHDIR="" \
  337. -DINSTALL_SUPPORTFILESDIR=share/mariadb \
  338. -DINSTALL_UNIX_ADDRDIR=/var/run/mysqld/mysqld.sock \
  339. -DMYSQL_DATADIR=/var/lib/mysql \
  340. -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
  341. -DSKIP_TESTS=ON \
  342. -DWITH_DEBUG=OFF \
  343. -DWITH_EMBEDDED_SERVER=OFF \
  344. -DWITH_INNODB_BZIP2=OFF \
  345. -DWITH_INNODB_LZ4=OFF \
  346. -DWITH_INNODB_LZMA=ON \
  347. -DWITH_INNODB_LZO=OFF \
  348. -DWITH_INNODB_SNAPPY=OFF \
  349. -DWITH_JEMALLOC=OFF \
  350. -DWITH_LIBARCHIVE=OFF \
  351. -DWITH_LIBWRAP=OFF \
  352. -DWITH_MARIABACKUP=ON \
  353. -DWITH_PCRE=system \
  354. -DWITH_SAFEMALLOC=OFF \
  355. -DWITH_SSL=system \
  356. -DWITH_SYSTEMD=no \
  357. -DWITH_VALGRIND=OFF \
  358. -DWITH_ZLIB=system
  359. # Help MariaDB find the correct libiconv.
  360. # nls.mk sets it up so that with CONFIG_BUILD_NLS libiconv-full would be used,
  361. # otherwise libiconv-stub (independent of the selected libc). MariaDB needs a
  362. # leg up to find/pick the right lib.
  363. CMAKE_OPTIONS += \
  364. -DICONV_INCLUDE_DIR=$(ICONV_PREFIX)/include \
  365. -DICONV_LIBRARIES=$(ICONV_PREFIX)/lib/libiconv.$(if $(CONFIG_BUILD_NLS),so,a)
  366. CMAKE_OPTIONS += \
  367. $(foreach p,$(MARIADB_LIB_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_lib$(PKG_NAME)-plugin-$(subst _,-,$(p))),DYNAMIC,OFF)) \
  368. $(foreach p,$(MARIADB_SERVER_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-$(subst _,-,$(p))),DYNAMIC,NO))
  369. # Set CMAKE_FIND_ROOT_PATH_MODE_INCLUDE and CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
  370. # to BOTH as otherwise the host build will not find some required dependencies
  371. # installed on the host machine, like ncurses.
  372. #
  373. # Add "$(STAGING_DIR_HOSTPKG)/lib" to the RPATH of the host helpers,
  374. # otherwise they might not find the location of a library at run time.
  375. CMAKE_HOST_OPTIONS += \
  376. -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE \
  377. -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
  378. -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH \
  379. -DCMAKE_INSTALL_RPATH="$(STAGING_DIR_HOSTPKG)/lib" \
  380. -DCMAKE_SKIP_RPATH=FALSE \
  381. -DWITHOUT_SERVER=OFF
  382. # Some helpers must be compiled for host in order to crosscompile MariaDB for
  383. # the target. They are then included by import_executables.cmake which is
  384. # generated during the build of the host helpers. It is not necessary to build
  385. # the whole host package, only the "import_executables" target.
  386. # -DIMPORT_EXECUTABLES=$(HOST_BUILD_DIR)/import_executables.cmake
  387. # must then be passed to cmake during target build.
  388. # See also https://mariadb.com/kb/en/mariadb/cross-compiling-mariadb/
  389. CMAKE_OPTIONS += -DIMPORT_EXECUTABLES=$(STAGING_DIR_HOSTPKG)/share/mariadb/import_executables.cmake
  390. # Disable some engines/plugins here as well - decreases the number of cmake checks.
  391. define Host/Prepare
  392. $(call Host/Prepare/Default)
  393. $(foreach e,$(MARIADB_DISABLE_ENGINES),$(call Package/mariadb/disable/engine,$(HOST_BUILD_DIR),$(e));)
  394. $(foreach p,$(MARIADB_DISABLE_PLUGINS),$(call Package/mariadb/disable/plugin,$(HOST_BUILD_DIR),$(p));)
  395. endef
  396. define Host/Compile
  397. $(call Host/Compile/Default,import_executables)
  398. endef
  399. define Host/Install
  400. $(SED) 's|$(HOST_BUILD_DIR)|$(STAGING_DIR_HOSTPKG)/share/mariadb|' $(HOST_BUILD_DIR)/import_executables.cmake
  401. $(INSTALL_DIR) $(1)/share/mariadb/{dbug,extra,scripts,sql}
  402. $(INSTALL_BIN) $(HOST_BUILD_DIR)/dbug/factorial $(1)/share/mariadb/dbug
  403. $(INSTALL_BIN) $(HOST_BUILD_DIR)/extra/comp_err $(1)/share/mariadb/extra
  404. $(INSTALL_BIN) $(HOST_BUILD_DIR)/scripts/comp_sql $(1)/share/mariadb/scripts
  405. $(INSTALL_BIN) $(HOST_BUILD_DIR)/sql/{gen_lex_hash,gen_lex_token} $(1)/share/mariadb/sql
  406. $(INSTALL_DATA) $(HOST_BUILD_DIR)/import_executables.cmake $(1)/share/mariadb
  407. endef
  408. # LIBICONV_PLUG is used in GNU's libiconv for redefinition of exports [e.g.
  409. # from libiconv_open() to iconv_open()]. But in OpenWrt this variable is not set
  410. # when building libiconv-full. So when MariaDB sets LIBICONV_PLUG it expects
  411. # iconv_open() to be available for example, which is not the case - only
  412. # libiconv_open() is. To address this prevent the variable from being set.
  413. # libiconv-stub does not use this variable, so there is no harm in always doing
  414. # this.
  415. define Build/Prepare
  416. $(call Build/Prepare/Default)
  417. $(SED) '/ADD_DEFINITIONS(-DLIBICONV_PLUG)/d' $(PKG_BUILD_DIR)/libmariadb/libmariadb/CMakeLists.txt
  418. $(foreach e,$(MARIADB_DISABLE_ENGINES),$(call Package/mariadb/disable/engine,$(PKG_BUILD_DIR),$(e));)
  419. $(foreach p,$(MARIADB_DISABLE_PLUGINS),$(call Package/mariadb/disable/plugin,$(PKG_BUILD_DIR),$(p));)
  420. endef
  421. define Build/InstallDev
  422. $(INSTALL_DIR) $(2)/bin $(1)/usr/bin $(1)/usr/include $(1)/usr/lib/mysql $(1)/usr/lib/pkgconfig $(1)/usr/share/aclocal
  423. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mysql_config $(1)/usr/bin
  424. $(LN) $(STAGING_DIR)/usr/bin/mysql_config $(2)/bin
  425. $(CP) $(PKG_INSTALL_DIR)/usr/include/mysql $(1)/usr/include
  426. $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{mariadb,mysqlclient}*.so* $(1)/usr/lib
  427. cd $(1)/usr/lib/mysql; $(LN) ../lib{mariadb,mysqlclient}*.so* .
  428. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libmariadb.pc $(1)/usr/lib/pkgconfig
  429. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/mysql.m4 $(1)/usr/share/aclocal
  430. endef
  431. define Package/libmariadb/install
  432. $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
  433. $(INSTALL_DIR) $(1)$(PLUGIN_DIR)
  434. $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{mariadb,mysqlclient}*.so* $(1)/usr/lib
  435. $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/caching_sha2_password.so $(1)$(PLUGIN_DIR)
  436. $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/dialog.so $(1)$(PLUGIN_DIR)
  437. $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/mysql_clear_password.so $(1)$(PLUGIN_DIR)
  438. $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/sha256_password.so $(1)$(PLUGIN_DIR)
  439. $(INSTALL_CONF) conf/50-client.cnf $(1)$(CONF_DIR)/conf.d
  440. endef
  441. define Package/mariadb-client/install
  442. $(INSTALL_DIR) $(1)/usr/bin
  443. $(foreach b,$(MARIADB_CLIENT),$(call Package/mariadb/install/bin,$(1),$(b));)
  444. # Install convenience links for mysqlcheck multi-call binary
  445. cd $(1)/usr/bin; $(LN) mysqlcheck mysqlanalyze
  446. cd $(1)/usr/bin; $(LN) mysqlcheck mysqlrepair
  447. cd $(1)/usr/bin; $(LN) mysqlcheck mysqloptimize
  448. endef
  449. define Package/mariadb-client-base/install
  450. $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
  451. $(INSTALL_CONF) conf/50-mysql-clients.cnf $(1)$(CONF_DIR)/conf.d
  452. endef
  453. define Package/mariadb-client-extra/install
  454. $(INSTALL_DIR) $(1)/usr/bin
  455. $(foreach b,$(MARIADB_CLIENT_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
  456. endef
  457. define Package/mariadb-common/install
  458. $(INSTALL_DIR) $(1)$(CONF_DIR)
  459. $(INSTALL_CONF) conf/my.cnf $(1)$(CONF_DIR)
  460. endef
  461. define Package/mariadb-server/install
  462. $(INSTALL_DIR) $(1)/usr/bin
  463. $(foreach b,$(MARIADB_SERVER),$(call Package/mariadb/install/bin,$(1),$(b));)
  464. endef
  465. define Package/mariadb-server-base/install
  466. $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
  467. $(INSTALL_DIR) $(1)$(SHARE_DIR)/charsets
  468. $(INSTALL_DIR) $(1)$(SHARE_DIR)/english
  469. $(INSTALL_DIR) $(1)/etc/config
  470. $(INSTALL_DIR) $(1)/etc/init.d
  471. $(INSTALL_BIN) files/mysqld.init $(1)/etc/init.d/mysqld
  472. $(SED) '/^[a-z]/s/^/#/' $(PKG_INSTALL_DIR)$(SHARE_DIR)/wsrep.cnf
  473. $(INSTALL_CONF) $(PKG_INSTALL_DIR)$(SHARE_DIR)/wsrep.cnf $(1)$(CONF_DIR)/conf.d/60-galera.cnf
  474. $(INSTALL_CONF) conf/50-server.cnf $(1)$(CONF_DIR)/conf.d
  475. $(INSTALL_CONF) files/mysqld.config $(1)/etc/config/mysqld
  476. $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/charsets/* $(1)$(SHARE_DIR)/charsets
  477. $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/english/errmsg.sys $(1)$(SHARE_DIR)/english
  478. $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/fill_help_tables.sql $(1)$(SHARE_DIR)
  479. $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/maria_add_gis_sp_bootstrap.sql $(1)$(SHARE_DIR)
  480. $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_performance_tables.sql $(1)$(SHARE_DIR)
  481. $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_system_tables.sql $(1)$(SHARE_DIR)
  482. $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_system_tables_data.sql $(1)$(SHARE_DIR)
  483. endef
  484. define Package/mariadb-server-extra/install
  485. $(INSTALL_DIR) $(1)/usr/bin
  486. $(SED) 's,/bin/bash,/bin/sh,g' $(PKG_INSTALL_DIR)/usr/bin/wsrep_sst_*
  487. $(foreach b,$(MARIADB_SERVER_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
  488. endef
  489. define BuildPlugin
  490. define Package/$(1)-plugin-$(subst _,-,$(2))
  491. $(call Package/$(subst mariadb-server,mariadb,$(1))/Default)
  492. TITLE:=$(1) plugin
  493. DEPENDS:=$(1) $(patsubst +%,+PACKAGE_$(1)-plugin-$(subst _,-,$(2)):%,$(3))
  494. endef
  495. define Package/$(1)-plugin-$(subst _,-,$(2))/description
  496. $(call Package/mariadb/description/Default)
  497. This package provides the $(2) plugin.
  498. endef
  499. define Package/$(1)-plugin-$(subst _,-,$(2))/install
  500. $(INSTALL_DIR) $$(1)$(PLUGIN_DIR)
  501. $(call Package/mariadb/install/plugin,$$(1),$(2))
  502. endef
  503. $$(eval $$(call BuildPackage,$(1)-plugin-$(subst _,-,$(2))))
  504. endef
  505. $(eval $(call HostBuild))
  506. $(eval $(call BuildPackage,libmariadb))
  507. $(eval $(call BuildPackage,mariadb-client))
  508. $(eval $(call BuildPackage,mariadb-client-base))
  509. $(eval $(call BuildPackage,mariadb-client-extra))
  510. $(eval $(call BuildPackage,mariadb-common))
  511. $(eval $(call BuildPackage,mariadb-server))
  512. $(eval $(call BuildPackage,mariadb-server-base))
  513. $(eval $(call BuildPackage,mariadb-server-extra))
  514. $(eval $(call BuildPlugin,libmariadb,auth_gssapi_client,+krb5-libs))
  515. $(eval $(call BuildPlugin,mariadb-server,auth_ed25519,))
  516. $(eval $(call BuildPlugin,mariadb-server,auth_gssapi,+krb5-libs))
  517. $(eval $(call BuildPlugin,mariadb-server,auth_pam,+libpam))
  518. $(eval $(call BuildPlugin,mariadb-server,client_ed25519,))
  519. $(eval $(call BuildPlugin,mariadb-server,disks,))
  520. $(eval $(call BuildPlugin,mariadb-server,feedback,))
  521. $(eval $(call BuildPlugin,mariadb-server,file_key_management,))
  522. $(eval $(call BuildPlugin,mariadb-server,ha_archive,))
  523. $(eval $(call BuildPlugin,mariadb-server,ha_blackhole,))
  524. $(eval $(call BuildPlugin,mariadb-server,ha_connect,+libxml2))
  525. $(eval $(call BuildPlugin,mariadb-server,ha_federated,))
  526. $(eval $(call BuildPlugin,mariadb-server,ha_federatedx,))
  527. $(eval $(call BuildPlugin,mariadb-server,ha_sphinx,))
  528. $(eval $(call BuildPlugin,mariadb-server,ha_spider,))
  529. $(eval $(call BuildPlugin,mariadb-server,handlersocket,))
  530. $(eval $(call BuildPlugin,mariadb-server,locales,))
  531. $(eval $(call BuildPlugin,mariadb-server,metadata_lock_info,))
  532. $(eval $(call BuildPlugin,mariadb-server,query_cache_info,))
  533. $(eval $(call BuildPlugin,mariadb-server,query_response_time,))
  534. $(eval $(call BuildPlugin,mariadb-server,semisync_master,))
  535. $(eval $(call BuildPlugin,mariadb-server,semisync_slave,))
  536. $(eval $(call BuildPlugin,mariadb-server,server_audit,))
  537. $(eval $(call BuildPlugin,mariadb-server,simple_password_check,))
  538. $(eval $(call BuildPlugin,mariadb-server,sql_errlog,))
  539. $(eval $(call BuildPlugin,mariadb-server,wsrep_info,))