2
###########################
4
###########################
6
* put this trigger-recreation thing into the init scripts -- what?!
8
###########################################################################
9
# Here are some information that are only of interest for the current and #
10
# following Debian maintainers of MySQL. #
11
###########################################################################
13
The debian/ directory is under SVN control, see debian/control for URL.
16
# Preparing a new version
18
The new orig.tar.gz (without non-free documentation) is created in /tmp/ when
21
debian/rules get-orig-source
26
The authors e-mail address is <public@codenode.com>.
29
# Remarks to dependencies
31
libwrap0-dev (>= 7.6-8.3)
32
According to bug report 114582 where where build problems on
33
IA-64/sid with at least two prior versions.
35
/usr/bin/killall in the initscript
37
zlib1g in libmysqlclient-dev:
38
"mysql_config --libs" ads "-lz"
45
autoconf (>= 2.13-20), automake1.7
46
Try to get rid of them.
48
doxygen, tetex-bin, tetex-extra, gs
52
# Remarks to the start scripts
55
## initscripts rely on mysqladmin from a different package
56
We have the problem that "/etc/init.d/mysql stop" relies on mysqladmin which
57
is in another package (mysql-client) and a passwordless access that's maybe
58
only available if the user configured his /root/.my.cnf. Can this be a problem?
59
* normal mode: not because the user is required to have it. Else:
60
* purge/remove: not, same as normal mode
61
* upgrade: not, same as normal mode
62
* first install: not, it depends on mysql-client which at least is unpacked
63
so mysqladmin is there (to ping). It is not yet configured
64
passwordles but if there's a server running then there's a
65
/root/.my.cnf. Anyways, we simply kill anything that's mysqld.
67
## Passwordless access for the maintainer scripts
68
Another issue is that the scripts needs passwordless access. To ensure this
69
a debian-sys-maint user is configured which has process and shutdown privs.
70
The file with the randomly (that's important!) generated password must be
71
present as long as the databases remain installed because else a new install
72
would have no access. This file should be used like:
73
mysqladmin --defaults-file=/etc/mysql/debian.cnf restart
74
to avoid providing the password in plaintext on a commandline where it would
75
be visible to any user via the "ps" command.
77
## When to start the daemon?
78
We aim to give the admin full control on when MySQL is running.
79
Issues to be faced here:
81
1. Debconf asks whether MySQL should be started on boot so update-rc.d is
82
only run if the answer has been yes. The admin is likely to forget
83
this decision but update-rc.d checks for an existing line in
84
/etc/runlevel.conf and leaves it intact.
85
2. On initial install, if the answer is yes, the daemon has to be started.
86
3. On upgrades it should only be started if it was already running, everything
87
else is confusing. Especiall relying on an debconf decision made month ago
88
is considered suboptimal. See bug #274264
89
Implementation so far:
90
prerm (called on upgrade before stopping the server):
91
check for a running server and set flag if necessary
92
preinst (called on initial install and before unpacking when upgrading):
93
check for the debconf variable and set flag if necessary
94
postinst (called on initial install and after each upgrade after unpacking):
95
call update-rc.d if debconf says yes
96
call invoce-rc.d if the flag has been set
98
dpkg-reconfigure and setting mysql start on boot to yes did not start mysql
99
(ok "start on boot" literally does not mean "start now" so that might have been ok)
101
1. --- no debconf anymore for the sake of simplicity. We have runlevel.conf,
102
the admin should use it
103
2. On initial install the server is started.
104
3. On upgrades the server is started exactly if it was running before so the
105
runlevel configuration is irrelevant. It will be preserved by the mean of
106
update-rc.d's builtin check.
108
prerm (called on upgrade before stopping the server):
109
check for a running server and set flag if necessary
110
preinst (called on initial install and before unpacking when upgrading):
111
check for $1 beeing (initial) "install" and set flag
112
postinst (called on initial install and after each upgrade after unpacking):
114
call invoce-rc.d if the flag has been set
3
Don't run the mysql-test-run test suite as part of build.
4
It takes a lot of time, and we will do a better test anyway in
5
Buildbot, running the test suite from installed .debs on a clean VM.
7
export DEB_BUILD_OPTIONS="nocheck"