Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Copied and tweaked from https://trac.macports.org/ticket/55916 Closes: https://trac.macports.org/ticket/55916
- Loading branch information
Showing
11 changed files
with
699 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,344 @@ | |||
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 | |||
|
|||
PortSystem 1.0 | |||
PortGroup legacysupport 1.0 | |||
legacysupport.newest_darwin_requires_legacy 10 | |||
|
|||
name mariadb-10.4 | |||
set name_mysql ${name} | |||
version 10.4.13 | |||
set version_branch [join [lrange [split ${version} .] 0 1] .] | |||
# Please set revision_client and revision_server to 0 if you bump | |||
# version; these can be changed independently for the 2 subports, but | |||
# can be changed at the same time if that's what's required. | |||
set revision_client 0 | |||
set revision_server 0 | |||
categories databases | |||
platforms darwin | |||
license GPL-2 | |||
maintainers {michaelld @michaelld} openmaintainer | |||
|
|||
if {$subport eq $name} { | |||
|
|||
PortGroup cmake 1.0 | |||
PortGroup select 1.0 | |||
PortGroup github 1.0 | |||
|
|||
compiler.cxx_standard 2011 | |||
|
|||
github.setup MariaDB server ${version} mariadb- | |||
revision ${revision_client} | |||
|
|||
license GPL-2 | |||
description Multithreaded SQL database server | |||
long_description Mariadb is a fork of the MySQL server, a multi-threaded SQL database. | |||
|
|||
cmake.out_of_source yes | |||
use_parallel_build yes | |||
|
|||
# mariadb-connector-c, wsrep-lib and wsrep-API are submodules, | |||
# but because we're not | |||
# cloning into a GIT module in the first place, we can't use the | |||
# git submodule feature. Have to download separately and install | |||
# into the correct location to get this port to work! Which means | |||
# we need a mariadb-connector-c branch and so forth ... basically | |||
# replicate what the github PG does but without using it since it | |||
# is not designed to be used for multiple downloads. | |||
|
|||
set libmariadb_github_author MariaDB | |||
set libmariadb_github_project mariadb-connector-c | |||
set libmariadb_github_branch 3.1 | |||
|
|||
set wsrep_github_author codership | |||
set wsrep_github_project wsrep-lib | |||
set wsrep_github_branch master | |||
|
|||
set wsrep_api_github_author codership | |||
set wsrep_api_github_project wsrep-API | |||
set wsrep_api_github_version 26 | |||
set wsrep_api_github_branch v${wsrep_api_github_version} | |||
|
|||
set main_distname ${distname} | |||
set main_distfile ${distfiles} | |||
|
|||
set libmariadb_distname ${libmariadb_github_project}-${libmariadb_github_branch} | |||
set libmariadb_distfile ${libmariadb_distname}${extract.suffix} | |||
|
|||
set wsrep_distname ${wsrep_github_project}-${wsrep_github_branch} | |||
set wsrep_distfile ${wsrep_distname}${extract.suffix} | |||
|
|||
set wsrep_api_distname ${wsrep_api_github_project}-${wsrep_api_github_branch} | |||
set wsrep_api_extracted_distname ${wsrep_api_github_project}-${wsrep_api_github_version} | |||
set wsrep_api_distfile ${wsrep_api_distname}${extract.suffix} | |||
|
|||
distfiles ${main_distfile}:tagone \ | |||
${libmariadb_distfile}:tagtwo \ | |||
${wsrep_distfile}:tagthree \ | |||
${wsrep_api_distfile}:tagfour | |||
|
|||
master_sites ${github.homepage}/archive/${git.branch}:tagone \ | |||
https://github.com/${libmariadb_github_author}/${libmariadb_github_project}/archive/${libmariadb_github_branch}:tagtwo \ | |||
https://github.com/${wsrep_github_author}/${wsrep_github_project}/archive/${wsrep_github_branch}:tagthree \ | |||
https://github.com/${wsrep_api_github_author}/${wsrep_api_github_project}/archive/${wsrep_api_github_branch}:tagfour | |||
|
|||
checksums ${main_distfile} \ | |||
rmd160 71bf0e8602bc890de9e5f1815a86ff5c5aaa4226 \ | |||
sha256 4f3527e3c9f7f95f135c873d03079b9533d0a43f8371864d7ce2a59cef3ff132 \ | |||
size 63409385 \ | |||
${libmariadb_distfile} \ | |||
rmd160 363c58e6b30a0f8fb72858d413b9ef97f9ec7905 \ | |||
sha256 8fe951d5640eea2f66f911ffd699541f5f55ad0429abc44afeaa3103ca57aefb \ | |||
size 751613 \ | |||
${wsrep_distfile} \ | |||
rmd160 1c3d3bc6961fb51f60eae7a2aedf20e5ce086712 \ | |||
sha256 a5a9b3bdf0b77fe316aa642b14545b27481923e3dcfd24dc2364a4b42e13b30b \ | |||
size 143795 \ | |||
${wsrep_api_distfile} \ | |||
rmd160 8ff596a9272c1658a94a24a2aa4b70ed400944b1 \ | |||
sha256 05574361aa73eef76c7cd13b0eaa4f53955e26f7222dda0d28ac6f8f3e5cb548 \ | |||
size 52816 | |||
|
|||
worksrcdir ${github.project}-${git.branch} | |||
|
|||
post-extract { | |||
# put the libmariadb_github_project directory into position | |||
# remove the original directory | |||
ui_debug "delete ${worksrcpath}/libmariadb" | |||
delete ${worksrcpath}/libmariadb | |||
ui_debug "move ${workpath}/${libmariadb_distname} ${worksrcpath}/libmariadb" | |||
move ${workpath}/${libmariadb_distname} ${worksrcpath}/libmariadb | |||
|
|||
# put the wsrep_github_project directory into position | |||
# remove the original directory | |||
ui_debug "delete ${worksrcpath}/wsrep-lib" | |||
delete ${worksrcpath}/wsrep-lib | |||
ui_debug "move ${workpath}/${wsrep_distname} ${worksrcpath}/wsrep-lib" | |||
move ${workpath}/${wsrep_distname} ${worksrcpath}/wsrep-lib | |||
|
|||
# put the wsrep_api_github_project directory into position | |||
# remove the original directory | |||
ui_debug "delete ${worksrcpath}/wsrep-lib/wsrep-API/v26" | |||
delete ${worksrcpath}/wsrep-lib/wsrep-API/v26 | |||
ui_debug "move ${workpath}/${wsrep_api_extracted_distname} ${worksrcpath}/wsrep-lib/wsrep-API/v26" | |||
move ${workpath}/${wsrep_api_extracted_distname} ${worksrcpath}/wsrep-lib/wsrep-API/v26 | |||
} | |||
|
|||
depends_lib-append port:zlib port:tcp_wrappers port:ncurses port:judy \ | |||
path:lib/libssl.dylib:openssl port:libxml2 | |||
depends_run-append port:mysql_select | |||
|
|||
select.group mysql | |||
select.file ${filespath}/${name_mysql} | |||
|
|||
post-extract { | |||
file mkdir ${cmake.build_dir}/macports | |||
copy ${filespath}/macports-default.cnf \ | |||
${filespath}/my.cnf \ | |||
${cmake.build_dir}/macports/ | |||
} | |||
|
|||
patch.pre_args -p1 | |||
patchfiles patch-cmake-install_layout.cmake.diff \ | |||
patch-CMakeLists.txt.diff \ | |||
patch-libmariadb_cmake_install.cmake.diff \ | |||
patch-libmariadb_libmariadb_CMakeLists.txt.diff \ | |||
patch-libmariadb_mariadb_config_CMakeLists.txt.diff \ | |||
patch-cmake_mysql_version.cmake.diff | |||
|
|||
post-patch { | |||
reinplace "s|@NAME@|${name_mysql}|g" \ | |||
${worksrcpath}/cmake/install_layout.cmake | |||
reinplace "s|@NAME@|${name_mysql}|g" \ | |||
${worksrcpath}/libmariadb/cmake/install.cmake | |||
reinplace "s|@NAME@|${name_mysql}|g" \ | |||
${cmake.build_dir}/macports/macports-default.cnf \ | |||
${cmake.build_dir}/macports/my.cnf | |||
reinplace "s|@PREFIX@|${prefix}|g" \ | |||
${cmake.build_dir}/macports/macports-default.cnf \ | |||
${cmake.build_dir}/macports/my.cnf | |||
move ${worksrcpath}/VERSION ${worksrcpath}/VERSION.txt | |||
} | |||
|
|||
configure.args-delete \ | |||
-DCMAKE_INSTALL_NAME_DIR=${prefix}/lib | |||
configure.args-append \ | |||
-DCMAKE_INSTALL_NAME_DIR:STRING=${prefix}/lib/${name_mysql}/mysql \ | |||
-DINSTALL_LAYOUT:STRING=MACPORTS \ | |||
-DSYSCONFDIR:PATH=${prefix}/etc/${name_mysql} \ | |||
-DMYSQL_UNIX_ADDR:PATH=${prefix}/var/run/${name_mysql}/mysqld.sock \ | |||
-DMYSQL_DATADIR:PATH=${prefix}/var/db/${name_mysql} \ | |||
-DDEFAULT_CHARSET:STRING=utf8 \ | |||
-DDEFAULT_COLLATION:STRING=utf8_general_ci \ | |||
-DWITH_EMBEDDED_SERVER:BOOL=ON \ | |||
-DWITH_ZLIB:STRING=system \ | |||
-DWITH_UNIT_TESTS:BOOL=ON \ | |||
-DWITHOUT_CASSANDRA_STORAGE_ENGINE:BOOL=ON \ | |||
-DWITHOUT_MROONGA_STORAGE_ENGINE:BOOL=ON \ | |||
-DWITHOUT_ROCKSDB_STORAGE_ENGINE:BOOL=ON \ | |||
-DWITHOUT_TOKUDB_STORAGE_ENGINE:BOOL=ON \ | |||
-DENABLE_GCOV:BOOL=OFF \ | |||
-DENABLE_DTRACE:BOOL=OFF \ | |||
-DWITH_READLINE:BOOL=ON \ | |||
-DWITH_LIBWRAP:BOOL=ON \ | |||
-DWITH_SSL:STRING=yes \ | |||
-DWITH_SSL_PATH=${prefix} \ | |||
-DMYSQL_MAINTAINER_MODE:STRING=AUTO \ | |||
-DICONV_LIBRARIES=${prefix}/lib/libiconv.dylib \ | |||
-DICONV_INCLUDE_DIR:PATH=${prefix}/include \ | |||
-DCONNECT_WITH_LIBXML2=ON | |||
|
|||
post-destroot { | |||
# proc portdestroot::destroot_finish fails to find and compress our man pages | |||
# so borrow the compress command and run on our files now. | |||
set manpath "${destroot}${prefix}/share/man" | |||
set gzip [findBinary gzip ${portutil::autoconf::gzip_path}] | |||
foreach manpage [glob -type f ${destroot}${prefix}/share/man/${name_mysql}/man\[1-9\]/*] { | |||
# Fix paths in manpages | |||
reinplace -q "s|/etc/|${prefix}/etc/${name_mysql}/|g" ${manpage} | |||
# Compress all manpages with gzip | |||
system "$gzip -9vf ${manpage}" | |||
} | |||
#foreach samp_conffile [glob -type f ${destroot}${prefix}/share/${name_mysql}/support-files/my-*.cnf] { | |||
# # Fix paths in sample configuration files | |||
# reinplace -q "s|/etc/my.cnf|${prefix}/etc/${name_mysql}/my.cnf|g" ${samp_conffile} | |||
#} | |||
xinstall -m 755 -o root -d \ | |||
${destroot}${prefix}/etc/${name_mysql} | |||
copy ${cmake.build_dir}/macports/macports-default.cnf \ | |||
${destroot}${prefix}/etc/${name_mysql}/ | |||
xinstall -m 755 -o root -d \ | |||
${destroot}${prefix}/share/${name_mysql}/support-files/macports | |||
copy ${cmake.build_dir}/macports/my.cnf \ | |||
${destroot}${prefix}/share/${name_mysql}/support-files/macports/ | |||
} | |||
|
|||
post-install { | |||
if {![file exists ${prefix}/etc/LaunchDaemons/org.macports.${name_mysql}/org.macports.${name_mysql}-server.plist]} { | |||
ui_msg "The ${name_mysql} client has been installed." | |||
ui_msg "To install the ${name_mysql} server, install the ${name_mysql}-server port." | |||
} | |||
} | |||
|
|||
pre-activate { | |||
# The macports-default.cnf is installed by ${name_mysql}. | |||
# Early versions of ${name_mysql}-server installed macports-default.cnf so for a | |||
# reasonable period we need to deactivate older versions of the ${name_mysql}-server. | |||
if { [file exists ${prefix}/etc/${name_mysql}/macports-default.cnf] | |||
&& ![catch {set vers [lindex [registry_active ${name_mysql}-server] 0]}] | |||
&& [vercmp [lindex $vers 1] 5.5.24] < 0 } { | |||
|
|||
registry_deactivate_composite ${name_mysql}-server "" [list ports_nodepcheck 1] | |||
} | |||
} | |||
|
|||
post-activate { | |||
if {![file exists ${prefix}/etc/${name_mysql}/my.cnf]} { | |||
copy ${prefix}/share/${name_mysql}/support-files/macports/my.cnf \ | |||
${prefix}/etc/${name_mysql}/ | |||
} | |||
} | |||
|
|||
variant system_readline description {Use system readline instead of bundled readline} { | |||
# Add readline support. | |||
# "-DWITH_READLINE:BOOL=OFF" has the peculiar meaning "do not use the bundled copy | |||
# of readline but use the system's (i.e. MacPorts') copy of readline" | |||
depends_lib-append port:readline | |||
configure.args-delete -DWITH_READLINE:BOOL=ON | |||
configure.args-append -DWITH_READLINE:BOOL=OFF | |||
} | |||
|
|||
notes " | |||
On activation if no ${prefix}/etc/${name_mysql}/my.cnf file exists one | |||
will be created which loads | |||
${prefix}/etc/${name_mysql}/macports-default.cnf. | |||
If a ${prefix}/etc/${name_mysql}/my.cnf file exists MacPorts does not | |||
touch it and any changes you make to ${prefix}/etc/${name_mysql}/my.cnf | |||
will be preserved (e.g., during port upgrades, deactivations or | |||
activations). ${prefix}/etc/${name_mysql}/my.cnf is a good place to | |||
customize your ${name_mysql} installation. | |||
Any changes made to ${prefix}/etc/${name_mysql}/macports-default.cnf | |||
will be lost during port upgrades, deactivations or activations so you | |||
are advised to not make changes here. Currently | |||
${prefix}/etc/${name_mysql}/macports-default.cnf contains only one | |||
directive; to disable networking. With disabled networking it is | |||
possible to install and have running all the MacPorts mysql ports | |||
simultaneously. | |||
" | |||
|
|||
github.livecheck.regex (${version_branch}.\[0-9\]+) | |||
|
|||
} | |||
|
|||
subport ${name_mysql}-server { | |||
|
|||
revision ${revision_server} | |||
license BSD | |||
description (Beta version) Run ${name_mysql} as server | |||
long_description {*}${description} | |||
|
|||
supported_archs noarch | |||
distfiles | |||
|
|||
depends_run port:${name_mysql} | |||
|
|||
if {"darwin" eq ${os.platform} && ${os.major} > 8} { | |||
set mysqluser _mysql | |||
} else { | |||
set mysqluser mysql | |||
} | |||
add_users ${mysqluser} group=${mysqluser} realname=MySQL\ Server | |||
|
|||
pre-extract { | |||
copy ${filespath}/org.macports.mysql-server.plist ${workpath}/org.macports.${subport}.plist | |||
} | |||
|
|||
post-patch { | |||
reinplace "s|@NAMEMYSQL@|${name_mysql}|g" \ | |||
${workpath}/org.macports.${subport}.plist | |||
reinplace "s|@PREFIX@|${prefix}|g" \ | |||
${workpath}/org.macports.${subport}.plist | |||
reinplace "s|@SUBPORT@|${subport}|g" \ | |||
${workpath}/org.macports.${subport}.plist | |||
reinplace "s|@USER@|${mysqluser}|g" \ | |||
${workpath}/org.macports.${subport}.plist | |||
reinplace "s|@GROUP@|${mysqluser}|g" \ | |||
${workpath}/org.macports.${subport}.plist | |||
} | |||
|
|||
use_configure no | |||
|
|||
build {} | |||
|
|||
destroot { | |||
xinstall -d -m 755 ${destroot}${prefix}/etc/LaunchDaemons/org.macports.${subport} | |||
xinstall -m 0644 -o root -W ${workpath} \ | |||
org.macports.${subport}.plist \ | |||
${destroot}${prefix}/etc/LaunchDaemons/org.macports.${subport} | |||
xinstall -d -m 755 ${destroot}/Library/LaunchDaemons | |||
ln -s ${prefix}/etc/LaunchDaemons/org.macports.${subport}/org.macports.${subport}.plist \ | |||
${destroot}/Library/LaunchDaemons/org.macports.${subport}.plist | |||
xinstall -m 755 -o root -d \ | |||
${destroot}${prefix}/var/run | |||
xinstall -m 755 -o ${mysqluser} -g ${mysqluser} -d \ | |||
${destroot}${prefix}/etc/${name_mysql} \ | |||
${destroot}${prefix}/var/db/${name_mysql} \ | |||
${destroot}${prefix}/var/log/${name_mysql} \ | |||
${destroot}${prefix}/var/run/${name_mysql} | |||
destroot.keepdirs-append \ | |||
${destroot}${prefix}/var/db/${name_mysql} \ | |||
${destroot}${prefix}/var/log/${name_mysql} \ | |||
${destroot}${prefix}/var/run/${name_mysql} | |||
} | |||
|
|||
notes " | |||
If this is a new install you might want to run: | |||
\$ sudo -u ${mysqluser} ${prefix}/lib/${name_mysql}/bin/mysql_install_db | |||
" | |||
|
|||
livecheck.type none | |||
} | |||
|
|||
homepage https://mariadb.org/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,9 @@ | |||
# WARNING! ANY CHANGES TO THIS FILE WILL BE LOST ON UNINSTALL/UPGRADES! | |||
# Make your changes to @PREFIX@/etc/@NAME@/my.cnf | |||
# YOU HAVE BEEN WARNED! | |||
|
|||
# MacPorts default options | |||
[mysqld] | |||
# skip-networking so multple mysql server ports can be loaded | |||
# without each competing for port 3306. | |||
skip-networking |
Oops, something went wrong.