+mariadb.com/server (#1291)

* +mariadb.com/server (error building)

* this build system feels like 2001

* Needs make

* libs and perms

* try to fix lib issues

* try to fix linux

---------

Co-authored-by: James Reynolds <magnsuviri@me.com>
Co-authored-by: Jacob Heider <jacob@tea.xyz>
This commit is contained in:
James Reynolds 2023-09-09 14:02:53 -06:00 committed by GitHub
parent 8c98285946
commit 1263ec26a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,199 @@
distributable:
url: git+https://github.com/MariaDB/server
ref: mariadb-{{version.raw}}
versions:
github: MariaDB/server/tags
strip: /^mariadb-/
platforms:
- darwin
- linux/x86-64 # should work on aarch64, but it's complaining about one of its atomic macros
dependencies:
sourceware.org/bzip2: '*'
github.com/besser82/libxcrypt: '*'
gnome.org/libxml2: '*'
invisible-island.net/ncurses: '*'
zlib.net: ^1
openssl.org: ^1.1
pcre.org/v2: '*'
facebook.com/zstd: '*'
build:
dependencies:
tea.xyz/gx/cc: c99
tea.xyz/gx/make: '*'
cmake.org: '*'
freedesktop.org/pkg-config: '*'
gnu.org/bison: '*'
gnu.org/coreutils: '*'
git-scm.org: '*'
groonga.org: '*'
script:
- git submodule update --init --recursive
# Use our groonga
- rm -rf storage/mroonga/vendor/groonga
# -DINSTALL_* are relative to prefix
- cmake -S . -B build
-DCMAKE_INSTALL_PREFIX={{ prefix }}
-DMYSQL_DATADIR={{ prefix }}/var/mysql
-DINSTALL_SYSCONFDIR=etc
-DINSTALL_INCLUDEDIR=include/mysql
-DINSTALL_MANDIR=share/man
-DINSTALL_DOCDIR=share/doc/mariadb
-DINSTALL_INFODIR=share/info
-DINSTALL_MYSQLSHAREDIR=share/mysql
-DWITH_LIBFMT=bundled
-DWITH_SSL=system
-DWITH_UNIT_TESTS=OFF
-DDEFAULT_CHARSET=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_general_ci
-DCOMPILATION_COMMENT=made_by_tea
-DPLUGIN_ROCKSDB=NO
- cmake --build build
- cmake --install build
# Fix my.cnf to point to {{ prefix }}/etc instead of /etc
- run: |
mkdir my.cnf.d
sed -i.bak 's|!includedir /etc/my.cnf.d|!includedir {{ prefix }}/etc/my.cnf.d|' my.cnf
rm my.cnf.bak
working-directory: ${{ prefix }}/etc
# Link the setup script into bin
- run: ln -s ../scripts/mysql_install_db .
working-directory: ${{ prefix }}/bin
# Fix up the control script and link into {{ bin }}
- run: |
sed -i.bak 's|\(PATH="\)|\1{{ prefix }}/bin:|' mysql.server
rm mysql.server.bak
ln -s ../support-files/mysql.server ../bin/
working-directory: ${{ prefix }}/support-files
# Move sourced non-executable out of bin into libexec
- run: mv ../bin/wsrep_sst_common .
working-directory: ${{ prefix }}/libexec
# Fix up references to wsrep_sst_common
- run: |
sed -i.bak 's|$(dirname "$0")/wsrep_sst_common|$(dirname "$0")/../libexec/wsrep_sst_common|g' \
wsrep_sst_mysqldump \
wsrep_sst_rsync \
wsrep_sst_mariabackup
rm wsrep_sst_*.bak
working-directory: ${{ prefix }}/bin
env:
linux/aarch64:
CFLAGS: $CFLAGS -Wno-implicit-function-declaration
provides:
- bin/aria_chk
- bin/aria_dump_log
- bin/aria_ftdump
- bin/aria_pack
- bin/aria_read_log
- bin/aria_s3_copy
- bin/innochecksum
- bin/mariabackup
- bin/mariadb
- bin/mariadb-access
- bin/mariadb-admin
- bin/mariadb-backup
- bin/mariadb-binlog
- bin/mariadb-check
- bin/mariadb-client-test
- bin/mariadb-config
- bin/mariadb-conv
- bin/mariadb-convert-table-format
- bin/mariadb-dump
- bin/mariadb-dumpslow
- bin/mariadb-find-rows
- bin/mariadb-fix-extensions
- bin/mariadb-hotcopy
- bin/mariadb-import
- bin/mariadb-plugin
- bin/mariadb-secure-installation
- bin/mariadb-setpermission
- bin/mariadb-show
- bin/mariadb-slap
- bin/mariadb-test
- bin/mariadb-tzinfo-to-sql
- bin/mariadb-upgrade
- bin/mariadb-waitpid
- bin/mariadb_config
- bin/mariadbd
- bin/mariadbd-multi
- bin/mariadbd-safe
- bin/mariadbd-safe-helper
- bin/mbstream
- bin/msql2mysql
- bin/my_print_defaults
- bin/myisam_ftdump
- bin/myisamchk
- bin/myisamlog
- bin/myisampack
- bin/mysql
- bin/mysql.server
- bin/mysql_client_test
- bin/mysql_config
- bin/mysql_convert_table_format
- bin/mysql_find_rows
- bin/mysql_fix_extensions
- bin/mysql_install_db
- bin/mysql_plugin
- bin/mysql_secure_installation
- bin/mysql_setpermission
- bin/mysql_tzinfo_to_sql
- bin/mysql_upgrade
- bin/mysql_waitpid
- bin/mysqlaccess
- bin/mysqladmin
- bin/mysqlbinlog
- bin/mysqlcheck
- bin/mysqld
- bin/mysqld_multi
- bin/mysqld_safe
- bin/mysqld_safe_helper
- bin/mysqldump
- bin/mysqldumpslow
- bin/mysqlhotcopy
- bin/mysqlimport
- bin/mysqlshow
- bin/mysqlslap
- bin/mysqltest
- bin/mytop
- bin/perror
- bin/replace
- bin/resolve_stack_dump
- bin/resolveip
- bin/wsrep_sst_backup
- bin/wsrep_sst_mariabackup
- bin/wsrep_sst_mysqldump
- bin/wsrep_sst_rsync
- bin/wsrep_sst_rsync_wan
test:
script:
- killall mysqld || true
- mkdir -p mysql tmp
# GHA runs as root
- run: |
if test "$(id -u)" = "0"; then
USER_ARG="--user=root"
fi
- mysql_install_db --no-defaults
$USER_ARG
--basedir={{ prefix }}
--datadir=$(pwd)/mysql
--tmpdir=$(pwd)/tmp
--auth-root-authentication-method=normal
- mysqld --no-defaults $USER_ARG --datadir=$(pwd)/mysql --port=3306 --tmpdir=$(pwd)/tmp &
- sleep 5
- mysql --port=3306 --user=root --password= --execute='show databases;'
- mysqladmin --port=3306 --user=root --password= shutdown
- sleep 5
- (ps aux | grep mysqld | grep -v grep) && exit 1 || exit 0