mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-07 22:54:11 -05:00
* mysql => 9.4.0 Signed-off-by: Satadru Pramanik <satadru@gmail.com> * mysql: Build Run on linux/amd64. * mysql: Package File Update Run on linux/amd64 container. --------- Signed-off-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: satmandu <satmandu@users.noreply.github.com> Co-authored-by: chromebrew-actions[bot] <chromebrew-actions[bot]@users.noreply.github.com>
98 lines
3.6 KiB
Ruby
98 lines
3.6 KiB
Ruby
require 'buildsystems/cmake'
|
|
|
|
class Mysql < CMake
|
|
description "MySQL Community Edition is a freely downloadable version of the world's most popular open source database"
|
|
homepage 'https://www.mysql.com/'
|
|
version "9.4.0-#{CREW_ICU_VER}"
|
|
license 'GPL-2'
|
|
compatibility 'x86_64' # Only 64-bit platforms are supported, so this will work on aarch64 userspaces once those are supported.
|
|
source_url 'https://github.com/mysql/mysql-server.git'
|
|
git_hashtag "mysql-#{version.split('-').first}"
|
|
binary_compression 'tar.zst'
|
|
|
|
binary_sha256({
|
|
x86_64: '466d38093023fe22a957aec83ad8ecdd335b7207bd1c8766ea9cdc3d3861bf78'
|
|
})
|
|
|
|
depends_on 'boost' => :build
|
|
depends_on 'gcc_lib' # R
|
|
depends_on 'glibc' # R
|
|
depends_on 'icu4c' # R
|
|
depends_on 'libcyrussasl' => :build
|
|
depends_on 'libedit' # R
|
|
depends_on 'libtirpc' # R
|
|
depends_on 'lz4' # R
|
|
depends_on 'openldap' => :build
|
|
depends_on 'openssl' # R
|
|
depends_on 'protobuf' # R
|
|
depends_on 'rapidjson' => :build
|
|
depends_on 'rpcsvc_proto' => :build
|
|
depends_on 'zlib' # R
|
|
depends_on 'zstd' # R
|
|
|
|
def self.postinstall
|
|
return if CREW_IN_CONTAINER
|
|
|
|
FileUtils.mkdir_p "#{CREW_PREFIX}/var/mysql/data"
|
|
system "mysqld --initialize-insecure --user=#{USER}" unless Dir.empty? "#{CREW_PREFIX}/var/mysql/data"
|
|
puts
|
|
puts 'WARNING: This is an insecure install without a root password!'.orange
|
|
puts
|
|
puts 'To lockdown permissions, execute the following:'.orange
|
|
puts 'mysql_secure_installation'.orange
|
|
puts
|
|
puts 'To reset the root password, see https://dev.mysql.com/doc/refman/8.4/en/resetting-permissions.html#resetting-permissions-unix.'.lightblue
|
|
puts
|
|
puts 'To start/stop mysqld, execute the following:'.lightblue
|
|
puts 'mysql.server start'.lightblue
|
|
puts 'mysql.server stop'.lightblue
|
|
puts
|
|
puts 'mysql.server start will execute on login.'.lightblue
|
|
puts "To prevent this, edit or remove #{CREW_PREFIX}/etc/bash.d/01-mysql.".lightblue
|
|
puts
|
|
puts "Databases are stored in #{CREW_PREFIX}/var/mysql/data.".lightblue
|
|
puts
|
|
puts 'MySQL Server documentation: https://dev.mysql.com/doc/refman/9.1/en/'.lightblue
|
|
puts
|
|
end
|
|
|
|
def self.postremove
|
|
if Dir.exist?("#{CREW_PREFIX}/var/mysql")
|
|
puts "\nWARNING: This will delete all your databases!".orange
|
|
print "Would you like to remove #{CREW_PREFIX}/var/mysql? [y/N] "
|
|
case $stdin.gets.chomp.downcase
|
|
when 'y', 'yes'
|
|
FileUtils.rm_rf("#{CREW_PREFIX}/var/mysql")
|
|
puts "#{CREW_PREFIX}/var/mysql removed.".lightgreen
|
|
else
|
|
puts "#{CREW_PREFIX}/var/mysql saved.".lightgreen
|
|
end
|
|
end
|
|
end
|
|
|
|
cmake_options "-DWITH_SYSTEM_LIBS=ON \
|
|
-DWITH_ROUTER=OFF \
|
|
-DINSTALL_DOCDIR=share/doc/mysql \
|
|
-DINSTALL_MANDIR=share/man \
|
|
-DINSTALL_INFODIR=share/info \
|
|
-DINSTALL_LIBDIR=#{ARCH_LIB} \
|
|
-DINSTALL_MYSQLSHAREDIR=share/mysql \
|
|
-DINSTALL_DOCREADMEDIR=share/mysql \
|
|
-DINSTALL_INCLUDEDIR=include/mysql \
|
|
-DINSTALL_PLUGINDIR=lib/mysql/plugin \
|
|
-DINSTALL_SUPPORTFILESDIR=bin \
|
|
-DINSTALL_MYSQLTESTDIR= \
|
|
-DMYSQL_DATADIR=#{CREW_PREFIX}/var/mysql/data \
|
|
-DWITH_UNIT_TESTS=OFF" # Since we don't currently run the tests, there's no point in building them.
|
|
# 52/136 Test #52: merge_small_tests ..................................***Failed 62.42 sec
|
|
# run_tests
|
|
cmake_install_extras do
|
|
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/etc/bash.d"
|
|
File.write "#{CREW_DEST_PREFIX}/etc/bash.d/01-mysql", <<~EOF
|
|
if [[ ! -f /.dockerenv ]]; then
|
|
[ -x #{CREW_PREFIX}/bin/mysql.server ] && #{CREW_PREFIX}/bin/mysql.server start
|
|
fi
|
|
EOF
|
|
end
|
|
end
|