From d579d300f18b8e0eee8cc1e1531691ae20414569 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com>
Date: Fri, 12 Feb 2010 10:37:26 +0000
Subject: [PATCH]  - really separate software from data  - rename templates and
 output files to be consistent with original (mysqld -> mysqld_safe)  - reuse
 buildout automatic dependency  - put binaries into var/bin and reuse from
 there

Sometimes software is in "data" directory - especially those binaries which
are controlling software configuration.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@32486 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 buildout/development.cfg                      |  1 -
 buildout/mysql-instance/buildout.cfg          | 20 ++++++++++++-------
 buildout/mysql-instance/templates/mysql.in    |  2 +-
 .../mysql-instance/templates/mysqladmin.in    |  2 +-
 buildout/mysql-instance/templates/mysqld.in   |  3 ---
 .../mysql-instance/templates/mysqld_safe.in   |  3 +++
 buildout/mysql-tritonn-5.0/buildout.cfg       |  9 ---------
 buildout/official.cfg                         |  2 ++
 buildout/zope-instance/buildout.cfg           |  2 +-
 9 files changed, 21 insertions(+), 23 deletions(-)
 delete mode 100755 buildout/mysql-instance/templates/mysqld.in
 create mode 100755 buildout/mysql-instance/templates/mysqld_safe.in

diff --git a/buildout/development.cfg b/buildout/development.cfg
index c8343c90f8..4e4b28b040 100644
--- a/buildout/development.cfg
+++ b/buildout/development.cfg
@@ -3,7 +3,6 @@ extends = official.cfg
 
 parts +=
   create-directories
-  mysql-binaries
   mysql-cnf
   mysql-instance
   start-mysql-instance
diff --git a/buildout/mysql-instance/buildout.cfg b/buildout/mysql-instance/buildout.cfg
index 4b4334bd06..6c00efa8ad 100644
--- a/buildout/mysql-instance/buildout.cfg
+++ b/buildout/mysql-instance/buildout.cfg
@@ -4,7 +4,6 @@
 
 [buildout]
 parts =
-    mycnf
     mysql-instance
 
 [configuration]
@@ -19,17 +18,17 @@ mysql_cnf_file = ${buildout:etc-directory}/my.cnf
 [mysql-bin]
 recipe = collective.recipe.template
 input = ${buildout:directory}/mysql-instance/templates/mysql.in
-output = ${buildout:directory}/bin/mysql
+output = ${buildout:data-bin-directory}/mysql
 
 [mysql-admin]
 recipe = collective.recipe.template
 input = ${buildout:directory}/mysql-instance/templates/mysqladmin.in
-output = ${buildout:directory}/bin/mysqladmin
+output = ${buildout:data-bin-directory}/mysqladmin
 
-[mysqld-bin]
+[mysqld_safe-bin]
 recipe = collective.recipe.template
-input = ${buildout:directory}/mysql-instance/templates/mysqld.in
-output = ${buildout:directory}/bin/mysqld
+input = ${buildout:directory}/mysql-instance/templates/mysqld_safe.in
+output = ${buildout:data-bin-directory}/mysqld_safe
 
 [mysql-cnf]
 recipe = collective.recipe.template
@@ -37,6 +36,13 @@ input = ${buildout:directory}/mysql-instance/templates/my.cnf.in
 output = ${configuration:mysql_cnf_file}
 
 [mysql-instance]
+depends =
+  ${create-directories:command}
+  ${mysql-cnf:output}
+  ${mysql-bin:output}
+  ${mysql-admin:output}
+  ${mysqld_safe-bin:output}
+
 recipe = plone.recipe.command
 command =
     mkdir -p ${configuration:mysql_datadir}
@@ -44,7 +50,7 @@ command =
 
 [start-mysql-instance]
 recipe = plone.recipe.command
-command = ${software_definition:software_home}/bin/mysqld_safe --defaults-file=${configuration:mysql_cnf_file} &
+command = ${buildout:data-bin-directory}/bin/mysqld_safe &
 update-command = ${:command}
 
 [stop-mysql-instance]
diff --git a/buildout/mysql-instance/templates/mysql.in b/buildout/mysql-instance/templates/mysql.in
index 812a8aae20..e0fdfdfb2f 100755
--- a/buildout/mysql-instance/templates/mysql.in
+++ b/buildout/mysql-instance/templates/mysql.in
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-${software_definition:mysql_software}/bin/mysql --no-defaults --protocol=tcp --host=${configuration:mysql_host} --port=${configuration:mysql_port} $@
+${software_definition:mysql_software}/bin/mysql --defaults-file=${configuration:mysql_cnf_file} $@
diff --git a/buildout/mysql-instance/templates/mysqladmin.in b/buildout/mysql-instance/templates/mysqladmin.in
index 57cd1eb873..db39d292e5 100755
--- a/buildout/mysql-instance/templates/mysqladmin.in
+++ b/buildout/mysql-instance/templates/mysqladmin.in
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-${software_definition:mysql_software}/bin/mysqladmin --no-defaults --protocol=tcp --host=${configuration:mysql_host} --port=${configuration:mysql_port} $@
+${software_definition:mysql_software}/bin/mysqladmin --defaults-file=${configuration:mysql_cnf_file} $@
diff --git a/buildout/mysql-instance/templates/mysqld.in b/buildout/mysql-instance/templates/mysqld.in
deleted file mode 100755
index d27490b034..0000000000
--- a/buildout/mysql-instance/templates/mysqld.in
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-${software_definition:mysql_software}/bin/mysqld_safe --no-defaults --port=${configuration:mysql_port} --pid-file=${configuration:mysql_pid} --log-error=${configuration:mysql_error_log} --basedir=${software_definition:mysql_software} --datadir=${configuration:mysql_datadir} --socket=${configuration:mysql_sock}
diff --git a/buildout/mysql-instance/templates/mysqld_safe.in b/buildout/mysql-instance/templates/mysqld_safe.in
new file mode 100755
index 0000000000..9a12ebb7fd
--- /dev/null
+++ b/buildout/mysql-instance/templates/mysqld_safe.in
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+${software_definition:mysql_software}/bin/mysqld_safe --defaults-file=${configuration:mysql_cnf_file} $@
diff --git a/buildout/mysql-tritonn-5.0/buildout.cfg b/buildout/mysql-tritonn-5.0/buildout.cfg
index 7b384b1248..a91be45583 100644
--- a/buildout/mysql-tritonn-5.0/buildout.cfg
+++ b/buildout/mysql-tritonn-5.0/buildout.cfg
@@ -42,15 +42,6 @@ environment =
     CXXFLAGS =-I${senna:location}/include
     LDLAGS =-L${senna:location}/lib
 
-[mysql-binaries]
-# another approach - software buildout provides easily accessible binaries
-recipe = plone.recipe.command
-command =
-  ln -sf ${software_definition:mysql_software}/bin/mysql ${buildout:directory}/bin/mysql
-  ln -sf ${software_definition:mysql_software}/bin/mysqladmin ${buildout:directory}/bin/mysqladmin
-  ln -sf ${software_definition:mysql_software}/bin/mysqld_safe ${buildout:directory}/bin/mysqld_safe
-  ln -sf ${software_definition:mysql_software}/bin/mysql_install_db ${buildout:directory}/bin/mysql_install_db
-
 [requirements]
 binary = flex bison patch gcc g++
 development = /usr/include/termcap.h /usr/include/curses.h
diff --git a/buildout/official.cfg b/buildout/official.cfg
index 55f33ab333..d364794084 100644
--- a/buildout/official.cfg
+++ b/buildout/official.cfg
@@ -17,6 +17,7 @@ extends =
 var-directory = ${:directory}/var
 etc-directory = ${:var-directory}/etc
 log-directory = ${:var-directory}/log
+data-bin-directory = ${:var-directory}/bin
 
 versions = versions
 find-links =
@@ -63,6 +64,7 @@ command =
   mkdir -p ${buildout:etc-directory}
   mkdir -p ${buildout:var-directory}
   mkdir -p ${buildout:log-directory}
+  mkdir -p ${buildout:data-bin-directory}
 
 [software_definition]
 software_home = ${buildout:directory}
diff --git a/buildout/zope-instance/buildout.cfg b/buildout/zope-instance/buildout.cfg
index ddf93f4c82..a22a39a1be 100644
--- a/buildout/zope-instance/buildout.cfg
+++ b/buildout/zope-instance/buildout.cfg
@@ -40,7 +40,7 @@ products =
 # XXX: This have to be converted into recipe
 recipe = plone.recipe.command
 command =
-  echo "CREATE DATABASE IF NOT EXISTS ${create_erp5_site:mysql_database_name} DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci" | ${software_definition:software_home}/bin/mysql --defaults-file=${configuration:mysql_cnf_file} -u root
+  echo "CREATE DATABASE IF NOT EXISTS ${create_erp5_site:mysql_database_name} DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci" | ${buildout:data-bin-directory}/mysql -u root
 
 [create_erp5_site]
 depends = ${create_mysql_database:command}
-- 
2.30.9