mariadb/debian/mysql-server-BASE.preinst.in
unknown 6d296e5e0a BUG#27769 - MySQL should include debian packaging dir
Replaced hardcoded sover reference with variable.
Removed references to added manpages.
---
BUG#27769 
Cleaned up some things to make building the packages go a little smoother. 
---
debian/rules really does need to be called from the source root.
---
Fixed two problems with the build caused by adding debian to the source tree
---
Left off the debian/ prefix to the Makefile filter.
---
BUG#27769 - MySQL should include debian packaging dir
Changed substitution variables to match already existing autoconf vars.
Generate debian/control and debian/defs.mk from autoconf now, since we run that
to make a source package. 
---
Corrected incorrect variable name
---
Renamed template files to have shorter names. 
---
Moved generation of debian/control to dist-hook so make clean won't eat it.
---
A few final changes to make debs build from a source tarball dist. 


debian/libmysqlclientSLIB-dev.README.Maintainer.in:
  Rename: debian/libmysqlclientMYSOVER-dev.README.Maintainer.in -> debian/libmysqlclientSLIB-dev.README.Maintainer.in
debian/libmysqlclientSLIB-dev.dirs.in:
  Rename: debian/libmysqlclientMYSOVER-dev.dirs.in -> debian/libmysqlclientSLIB-dev.dirs.in
debian/libmysqlclientSLIB-dev.docs.in:
  Rename: debian/libmysqlclientMYSOVER-dev.docs.in -> debian/libmysqlclientSLIB-dev.docs.in
debian/libmysqlclientSLIB-dev.examples.in:
  Rename: debian/libmysqlclientMYSOVER-dev.examples.in -> debian/libmysqlclientSLIB-dev.examples.in
debian/libmysqlclientSLIB-dev.files.in:
  Rename: debian/libmysqlclientMYSOVER-dev.files.in -> debian/libmysqlclientSLIB-dev.files.in
debian/libmysqlclientSLIB-dev.links.in:
  Rename: debian/libmysqlclientMYSOVER-dev.links.in -> debian/libmysqlclientSLIB-dev.links.in
debian/libmysqlclientSLIB.README.Debian.in:
  Rename: debian/libmysqlclientMYSOVER.README.Debian.in -> debian/libmysqlclientSLIB.README.Debian.in
debian/libmysqlclientSLIB.dirs.in:
  Rename: debian/libmysqlclientMYSOVER.dirs.in -> debian/libmysqlclientSLIB.dirs.in
debian/libmysqlclientSLIB.docs.in:
  Rename: debian/libmysqlclientMYSOVER.docs.in -> debian/libmysqlclientSLIB.docs.in
debian/libmysqlclientSLIB.files.in:
  Rename: debian/libmysqlclientMYSOVER.files.in -> debian/libmysqlclientSLIB.files.in
debian/libmysqlclientSLIB.postinst.in:
  Rename: debian/libmysqlclientMYSOVER.postinst.in -> debian/libmysqlclientSLIB.postinst.in
debian/libndbclientNLIB-dev.dirs.in:
  Rename: debian/libndbclientNDBSOVER-dev.dirs.in -> debian/libndbclientNLIB-dev.dirs.in
debian/libndbclientNLIB-dev.files.in:
  Rename: debian/libndbclientNDBSOVER-dev.files.in -> debian/libndbclientNLIB-dev.files.in
debian/libndbclientNLIB-dev.links.in:
  Rename: debian/libndbclientNDBSOVER-dev.links.in -> debian/libndbclientNLIB-dev.links.in
debian/libndbclientNLIB.README.Debian.in:
  Rename: debian/libndbclientNDBSOVER.README.Debian.in -> debian/libndbclientNLIB.README.Debian.in
debian/libndbclientNLIB.dirs.in:
  Rename: debian/libndbclientNDBSOVER.dirs.in -> debian/libndbclientNLIB.dirs.in
debian/libndbclientNLIB.files.in:
  Rename: debian/libndbclientNDBSOVER.files.in -> debian/libndbclientNLIB.files.in
debian/libndbclientNLIB.postinst.in:
  Rename: debian/libndbclientNDBSOVER.postinst.in -> debian/libndbclientNLIB.postinst.in
debian/mysql-client-BASE.NEWS.in:
  Rename: debian/mysql-client-MYVER.NEWS.in -> debian/mysql-client-BASE.NEWS.in
debian/mysql-client-BASE.README.Debian.in:
  Rename: debian/mysql-client-MYVER.README.Debian.in -> debian/mysql-client-BASE.README.Debian.in
debian/mysql-client-BASE.dirs.in:
  Rename: debian/mysql-client-MYVER.dirs.in -> debian/mysql-client-BASE.dirs.in
debian/mysql-client-BASE.docs.in:
  Rename: debian/mysql-client-MYVER.docs.in -> debian/mysql-client-BASE.docs.in
debian/mysql-extra-BASE.dirs.in:
  Rename: debian/mysql-extra-MYVER.dirs.in -> debian/mysql-extra-BASE.dirs.in
debian/mysql-extra-BASE.files.in:
  Rename: debian/mysql-extra-MYVER.files.in -> debian/mysql-extra-BASE.files.in
debian/mysql-management-BASE.dirs.in:
  Rename: debian/mysql-management-MYVER.dirs.in -> debian/mysql-management-BASE.dirs.in
debian/mysql-management-BASE.files.in:
  Rename: debian/mysql-management-MYVER.files.in -> debian/mysql-management-BASE.files.in
debian/mysql-management-BASE.mysql-management.init.in:
  Rename: debian/mysql-management-MYVER.mysql-management.init.in -> debian/mysql-management-BASE.mysql-management.init.in
debian/mysql-server-BASE.NEWS.in:
  Rename: debian/mysql-server-MYVER.NEWS.in -> debian/mysql-server-BASE.NEWS.in
debian/mysql-server-BASE.README.Debian.in:
  Rename: debian/mysql-server-MYVER.README.Debian.in -> debian/mysql-server-BASE.README.Debian.in
debian/mysql-server-BASE.dirs.in:
  Rename: debian/mysql-server-MYVER.dirs.in -> debian/mysql-server-BASE.dirs.in
debian/mysql-server-BASE.docs.in:
  Rename: debian/mysql-server-MYVER.docs.in -> debian/mysql-server-BASE.docs.in
debian/mysql-server-BASE.links.in:
  Rename: debian/mysql-server-MYVER.links.in -> debian/mysql-server-BASE.links.in
debian/mysql-server-BASE.logcheck.ignore.paranoid.in:
  Rename: debian/mysql-server-MYVER.logcheck.ignore.paranoid.in -> debian/mysql-server-BASE.logcheck.ignore.paranoid.in
debian/mysql-server-BASE.logcheck.ignore.server.in:
  Rename: debian/mysql-server-MYVER.logcheck.ignore.server.in -> debian/mysql-server-BASE.logcheck.ignore.server.in
debian/mysql-server-BASE.logcheck.ignore.workstation.in:
  Rename: debian/mysql-server-MYVER.logcheck.ignore.workstation.in -> debian/mysql-server-BASE.logcheck.ignore.workstation.in
debian/mysql-server-BASE.mysql-server.logrotate.in:
  Rename: debian/mysql-server-MYVER.mysql-server.logrotate.in -> debian/mysql-server-BASE.mysql-server.logrotate.in
debian/mysql-server-BASE.preinst.in:
  Rename: debian/mysql-server-MYVER.preinst.in -> debian/mysql-server-BASE.preinst.in
debian/mysql-server-BASE.prerm.in:
  Rename: debian/mysql-server-MYVER.prerm.in -> debian/mysql-server-BASE.prerm.in
debian/mysql-server-PREV.preinst.in:
  Rename: debian/mysql-server-MYOLDVER.preinst.in -> debian/mysql-server-PREV.preinst.in
debian/mysql-storage-BASE.dirs.in:
  Rename: debian/mysql-storage-MYVER.dirs.in -> debian/mysql-storage-BASE.dirs.in
debian/mysql-storage-BASE.files.in:
  Rename: debian/mysql-storage-MYVER.files.in -> debian/mysql-storage-BASE.files.in
debian/mysql-storage-BASE.mysql-storage.init.in:
  Rename: debian/mysql-storage-MYVER.mysql-storage.init.in -> debian/mysql-storage-BASE.mysql-storage.init.in
debian/mysql-test-BASE.dirs.in:
  Rename: debian/mysql-test-MYVER.dirs.in -> debian/mysql-test-BASE.dirs.in
debian/mysql-test-BASE.files.in:
  Rename: debian/mysql-test-MYVER.files.in -> debian/mysql-test-BASE.files.in
debian/mysql-tools-BASE.dirs.in:
  Rename: debian/mysql-tools-MYVER.dirs.in -> debian/mysql-tools-BASE.dirs.in
debian/mysql-tools-BASE.files.in:
  Rename: debian/mysql-tools-MYVER.files.in -> debian/mysql-tools-BASE.files.in
Makefile.am:
  Moved generation of debian/control to dist-hook so make clean won't eat it.
  ---
  Need to generate the control file in the dist dir - not the source dir.
configure.in:
  Added variables to support the generation of debian/control and debian/defs.mk from configure
  ---
  Moved generation of debian/control to dist-hook so make clean won't eat it.
debian/Makefile.am:
  Distribute the generated control file so that debuild will work naturally.
  ---
  Broke the EXTRA_DIST line into separate lines. 
  Added defs.mk.in
  ---
  Modified debian/Makefile to use the new shorter template file names.
debian/control.in:
  Changed substitution variables to match already existing autoconf vars.
debian/defs.mk.in:
  Changed substitution variables to match already existing autoconf vars.
  Made defs.mk.in generated from template. 
  Persisted variables here. 
  ---
  Corrected incorrect variable name
debian/mysql-client-BASE.files.in:
  Changed substitution variables to match already existing autoconf vars.
debian/mysql-client-BASE.lintian-overrides.in:
  Changed substitution variables to match already existing autoconf vars.
debian/mysql-server-BASE.config.in:
  Changed substitution variables to match already existing autoconf vars.
debian/mysql-server-BASE.files.in:
  Changed substitution variables to match already existing autoconf vars.
debian/mysql-server-BASE.lintian-overrides.in:
  Changed substitution variables to match already existing autoconf vars.
debian/mysql-server-BASE.postinst.in:
  Changed substitution variables to match already existing autoconf vars.
debian/mysql-server-BASE.postrm.in:
  Changed substitution variables to match already existing autoconf vars.
debian/mysql-server-BASE.templates.in:
  Changed substitution variables to match already existing autoconf vars.
debian/po/POTFILES.in.in:
  Changed substitution variables to match already existing autoconf vars.
debian/rules:
  BUG#27769 - MySQL should include debian packaging dir
  Replaced hardcoded sover reference with variable.
  Removed references to added manpages.
  ---
  Prevented the test suite from being run unless requested. 
  ---
  Needed a space between ifneq and (
  ---
  The variable substitution was stepping on the Makefile from automake. 
  ---
  Left off the debian/ prefix to the Makefile filter.
  ---
  Changed substitution variables to match already existing autoconf vars.
  ---
  Save debian/defs.mk from make distclean
debian/source.lintian-overrides.in:
  Changed substitution variables to match already existing autoconf vars.
2007-04-17 18:12:43 -07:00

167 lines
4.9 KiB
Bash
Raw Blame History

#!/bin/bash -e
#
# summary of how this script can be called:
# * <new-preinst> install
# * <new-preinst> install <old-version>
# * <new-preinst> upgrade <old-version>
# * <old-preinst> abort-upgrade <new-version>
#
. /usr/share/debconf/confmodule
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
DATADIR=/var/lib/mysql
LOGDIR=/var/log/mysql
UPGRADEDIR=/var/lib/mysql-upgrade
# Try to stop the server in a sane way. If it does not success let the admin
# do it himself. No database directories should be removed while the server
# is running! Another mysqld in e.g. a different chroot is fine for us.
stop_server() {
if [ ! -x /etc/init.d/mysql ]; then return; fi
set +e
if [ -x /usr/sbin/invoke-rc.d ]; then
cmd="invoke-rc.d mysql stop"
else
cmd="/etc/init.d/mysql stop"
fi
$cmd
errno=$?
set -e
# 0=ok, 100=no init script (fresh install)
if [ "$errno" != 0 -a "$errno" != 100 ]; then
echo "${cmd/ */} returned $errno" 1>&2
echo "There is a MySQL server running, but we failed in our attempts to stop it." 1>&2
echo "Stop it yourself and try again!" 1>&2
db_stop
exit 1
fi
}
################################ main() ##########################
this_version=@VER@
# Safe the user from stupidities.
show_downgrade_warning=0
for i in `ls $DATADIR/debian-*.flag 2>/dev/null`; do
found_version=`echo $i | sed 's/.*debian-\([0-9\.]\+\).flag/\1/'`
if dpkg --compare-versions "$this_version" '<<' "$found_version"; then
show_downgrade_warning=1
break;
fi
done
if [ "$show_downgrade_warning" = 1 ]; then
db_fset mysql-server-$this_version/really_downgrade seen false || true
db_input medium mysql-server-$this_version/really_downgrade || true
db_go
db_get mysql-server-$this_version/really_downgrade || true
if [ "$RET" = "true" ]; then
rm -f $DATADIR/debian-*.flag
touch $DATADIR/debian-$this_version.flag
else
echo "Aborting downgrade from (at least) $found_version to $this_version." 1>&2
db_stop
exit 1
fi
fi
# to be sure
stop_server
# If we use NIS then errors should be tolerated. It's up to the
# user to ensure that the mysql user is correctly setup.
# Beware that there are two ypwhich one of them needs the 2>/dev/null!
if test -n "`which ypwhich 2>/dev/null`" && ypwhich >/dev/null 2>&1; then
set +e
fi
#
# Now we have to ensure the following state:
# /etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false
# /etc/group: mysql:x:101:
#
# Sadly there could any state be present on the system so we have to
# modify everything carefully i.e. not doing a chown before creating
# the user etc...
#
# creating mysql group if he isn't already there
if ! getent group mysql >/dev/null; then
# Adding system group: mysql.
addgroup --system mysql >/dev/null
fi
# creating mysql user if he isn't already there
if ! getent passwd mysql >/dev/null; then
# Adding system user: mysql.
adduser \
--system \
--disabled-login \
--ingroup mysql \
--home $DATADIR \
--gecos "MySQL Server" \
--shell /bin/false \
mysql >/dev/null
fi
# end of NIS tolerance zone
set -e
# if there's a symlink, let's store where it's pointing, because otherwise
# it's going to be lost in some situations
for dir in DATADIR LOGDIR; do
checkdir=`eval echo "$"$dir`
if [ -L "$checkdir" ]; then
mkdir -p "$UPGRADEDIR"
cp -d "$checkdir" "$UPGRADEDIR/$dir.link"
fi
done
# creating mysql home directory
if [ ! -d $DATADIR -a ! -L $DATADIR ]; then
mkdir $DATADIR
fi
# checking disc space
if LC_ALL=C BLOCKSIZE= df --portability $DATADIR/. | tail -n 1 | awk '{ exit ($4>1000) }'; then
echo "ERROR: There's not enough space in $DATADIR/" 1>&2
db_stop
exit 1
fi
# Since the home directory was created before putting the user into
# the mysql group and moreover we cannot guarantee that the
# permissions were correctly *before* calling this script, we fix them now.
# In case we use NIS and no mysql user is present then this script should
# better fail now than later..
# The "set +e" is necessary as e.g. a ".journal" of a ext3 partition is
# not chgrp'able (#318435).
set +e
chown mysql:mysql $DATADIR
find $DATADIR -follow -not -group mysql -print0 2>/dev/null \
| xargs -0 --no-run-if-empty chgrp mysql
set -e
# Some files below /etc/ were possibly in the mysql-server-4.1/sarge package
# before. They get overwritten by current ones to avoid unnecessary dpkg questions.
while read md5 file; do
if [ "`md5sum $file 2>/dev/null`" = "$md5 $file" ]; then
cp /usr/share/mysql-common/internal-use-only/`echo $file | sed 's<>/<2F>_<EFBFBD>g'` $file
fi
done <<EOT
6691f2fdc5c6d27ff0260eb79813e1bc /etc/init.d/mysql
b53b9552d44661361d39157c3c7c51d3 /etc/logrotate.d/mysql-server
EOT
db_stop
#DEBHELPER#
exit 0