pantry/projects/mysql.com/package.yml
2023-04-18 13:11:11 -04:00

125 lines
3.4 KiB
YAML

distributable:
url: https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-boost-{{version}}.tar.gz
strip-components: 1
versions:
github: mysql/mysql-server/tags
strip: /^mysql-/
dependencies:
unicode.org: '>=71'
libevent.org: ^2
lz4.org: ^1
openssl.org: ^1.1
protobuf.dev: ^21
zlib.net: ^1.2
facebook.com/zstd: ^1
curl.se: '>=6.0'
thrysoee.dk/editline: ^3
build:
dependencies:
tea.xyz/gx/cc: c99
tea.xyz/gx/make: '*'
cmake.org: ^3
freedesktop.org/pkg-config: ^0.29
working-directory: build
script: |
# https://www.mail-archive.com/ports@freebsd.org/msg00418.html
# And they *force* it on
sed -i.bak -e 's/\(STRING_APPEND.*moutline-atomics.*\)/# \1/' ../CMakeLists.txt
rm ../CMakeLists.txt.bak
cmake .. $ARGS
make --jobs {{ hw.concurrency }} install
env:
ARGS:
- -DCMAKE_INSTALL_PREFIX={{prefix}}
- -DCMAKE_BUILD_TYPE=Release
- -DFORCE_INSOURCE_BUILD=1
- -DCOMPILATION_COMMENT=tea.xyz
- -DINSTALL_DOCDIR=share/doc
- -DINSTALL_INCLUDEDIR=include
- -DINSTALL_INFODIR=share/info
- -DINSTALL_MANDIR=share/man
- -DINSTALL_MYSQLSHAREDIR=share
- -DINSTALL_PLUGINDIR=lib/plugin
- -DSYSCONFDIR=/etc
- -DWITH_SYSTEM_LIBS=ON
- -DWITH_EDITLINE=system
- -DWITH_ICU=system
- -DWITH_LIBEVENT=system
- -DWITH_LZ4=system
- -DWITH_PROTOBUF=system
- -DWITH_SSL=system
- -DWITH_ZLIB=system
- -DWITH_ZSTD=system
- -DWITH_UNIT_TESTS=OFF
- -DENABLED_LOCAL_INFILE=1
- -DWITH_INNODB_MEMCACHED=ON
#FIXME pkg this and change to =system
- -DWITH_FIDO=bundled
#FIXME mysql requires boost=1.77
# which seems perfect for us right! Since we version independently
# however boost has only just started using github so its tags only
# go back to 1.82 lol. So we need to extend the version mechanism
# so that it can do both github and an array
- -DDOWNLOAD_BOOST=1
- -DWITH_BOOST=boost
linux/aarch64:
ARGS:
- -DCMAKE_CXX_FLAGS="-mno-outline-atomics"
- -DCMAKE_C_FLAGS="-mno-outline-atomics"
#^^ https://www.mail-archive.com/ports@freebsd.org/msg00418.html
provides:
- bin/mysql_client_test
- bin/my_print_defaults
- bin/myisam_ftdump
- bin/myisamchk
- bin/myisamlog
- bin/myisampack
- bin/mysql
- bin/mysql_config
- bin/mysql_config_editor
- bin/mysql_keyring_encryption_test
- bin/mysql_migrate_keyring
- bin/mysql_secure_installation
- bin/mysql_ssl_rsa_setup
- bin/mysql_tzinfo_to_sql
- bin/mysql_upgrade
- bin/mysqladmin
- bin/mysqlbinlog
- bin/mysqlcheck
- bin/mysqld
- bin/mysqld_multi
- bin/mysqld_safe
- bin/mysqldump
- bin/mysqldumpslow
- bin/mysqlimport
- bin/mysqlpump
- bin/mysqlrouter
- bin/mysqlrouter_keyring
- bin/mysqlrouter_passwd
- bin/mysqlrouter_plugin_info
- bin/mysqlshow
- bin/mysqlslap
- bin/mysqltest
- bin/mysqltest_safe_process
- bin/mysqlxtest
test:
dependencies:
gnu.org/coreutils: ^9
script: |
mkdir -p mysql
mkdir -p tmp
mysqld --no-defaults --initialize-insecure --user=$USER --datadir=$PWD/mysql --tmpdir=$PWD/tmp
PORT=$(shuf -i 2000-65000 -n 1)
mysqld --no-defaults --user=$USER --datadir=$PWD/mysql --port=$PORT --tmpdir=$PWD/tmp &
sleep 5
mysql --port=$PORT --user=root --password= --execute='show databases;'
mysqladmin --port=$PORT --user=root --password= shutdown