mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
added symbols files to RPM to resolve stack trace
fixed Do-rpm to accept command-line options for easier testing/local RPM build
This commit is contained in:
@ -7,6 +7,7 @@ extra_flags="$pentium_cflags $fast_cflags"
|
|||||||
extra_configs="$pentium_configs"
|
extra_configs="$pentium_configs"
|
||||||
strip=yes
|
strip=yes
|
||||||
|
|
||||||
extra_configs="$extra_configs --with-innodb --with-berkeley-db"
|
extra_configs="$extra_configs --with-innodb --with-berkeley-db \
|
||||||
|
--enable-thread-safe-client"
|
||||||
|
|
||||||
. "$path/FINISH.sh"
|
. "$path/FINISH.sh"
|
||||||
|
@ -1,5 +1,36 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
#helper functions
|
||||||
|
|
||||||
|
function copy_to_bmachine
|
||||||
|
{
|
||||||
|
if [ x$local_build = x1 ]; then
|
||||||
|
cp $1 $2
|
||||||
|
else
|
||||||
|
scp $1 $owner@$bmachine:$2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function copy_from_bmachine
|
||||||
|
{
|
||||||
|
if [ x$local_build = x1 ]; then
|
||||||
|
cp $1 $2
|
||||||
|
else
|
||||||
|
scp $owner@$bmachine:$1 $2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_command
|
||||||
|
{
|
||||||
|
if [ x$local_build = x1 ]; then
|
||||||
|
bash $1
|
||||||
|
else
|
||||||
|
cat $1 | ssh $owner@$bmachine bash
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#Supply defaults
|
||||||
|
|
||||||
# We built on one of two machines
|
# We built on one of two machines
|
||||||
bmachine=work
|
bmachine=work
|
||||||
smachine=work
|
smachine=work
|
||||||
@ -8,6 +39,7 @@ owner=my
|
|||||||
# Hard path!!
|
# Hard path!!
|
||||||
bpath=`/bin/pwd`
|
bpath=`/bin/pwd`
|
||||||
rpmdir="/usr/src/redhat"
|
rpmdir="/usr/src/redhat"
|
||||||
|
logdir="$bpath/Logs"
|
||||||
|
|
||||||
###### Perl STUFF #####
|
###### Perl STUFF #####
|
||||||
|
|
||||||
@ -24,6 +56,38 @@ AM_MAKEFLAGS="-j 2"
|
|||||||
VER=`grep "AM_INIT_AUTOMAKE(mysql, " $bpath/configure.in | \
|
VER=`grep "AM_INIT_AUTOMAKE(mysql, " $bpath/configure.in | \
|
||||||
sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;'`
|
sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;'`
|
||||||
VER_NO_DASH=`echo $VER | sed -e "s|-.*$||"`
|
VER_NO_DASH=`echo $VER | sed -e "s|-.*$||"`
|
||||||
|
tarball=$bpath/mysql-$VER.tar.gz
|
||||||
|
|
||||||
|
while test $# -gt 0; do
|
||||||
|
case "$1" in
|
||||||
|
--rpmdir=*)
|
||||||
|
rpmdir=`echo $1 | sed -e "s;--rpmdir=;;"`
|
||||||
|
;;
|
||||||
|
--smachine=*)
|
||||||
|
smachine=`echo $1 | sed -e "s;--smachine=;;"`
|
||||||
|
;;
|
||||||
|
--bmachine=*)
|
||||||
|
bmachine=`echo $1 | sed -e "s;--bmachine=;;"`
|
||||||
|
;;
|
||||||
|
--owner=*)
|
||||||
|
owner=`echo $1 | sed -e "s;--owner=;;"`
|
||||||
|
;;
|
||||||
|
--tarball=*)
|
||||||
|
tarball=`echo $1 | sed -e "s;--tarball=;;"`
|
||||||
|
;;
|
||||||
|
--logdir=*)
|
||||||
|
logdir=`echo $1 | sed -e "s;--logdir=;;"`
|
||||||
|
;;
|
||||||
|
--local )
|
||||||
|
local_build=1
|
||||||
|
;;
|
||||||
|
--skip-perl )
|
||||||
|
skip_perl=1
|
||||||
|
;;
|
||||||
|
* ) break ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
echo "Removing old MySQL packages"
|
echo "Removing old MySQL packages"
|
||||||
rm -rf $rpmdir/BUILD/mysql-*
|
rm -rf $rpmdir/BUILD/mysql-*
|
||||||
@ -31,16 +95,34 @@ rm -f $rpmdir/SOURCES/mysql-*
|
|||||||
rm -f $rpmdir/SRPMS/MySQL-*
|
rm -f $rpmdir/SRPMS/MySQL-*
|
||||||
rm -f $rpmdir/SPEC/mysql-*
|
rm -f $rpmdir/SPEC/mysql-*
|
||||||
|
|
||||||
|
if [ ! -d "$logdir" ]; then
|
||||||
|
echo "$logdir does not exist, creating"
|
||||||
|
mkdir -p $logdir
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$tarball" ]; then
|
||||||
|
echo "Tarball file $tarball does not exist, please make one first"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Building RPM for MySQL version $VER on $bmachine"
|
echo "Building RPM for MySQL version $VER on $bmachine"
|
||||||
|
|
||||||
log=$bpath/Logs/Log-RPM-`date +%y%m%d-%H%M`
|
log=$logdir/Log-RPM-`date +%y%m%d-%H%M`
|
||||||
|
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
# Copy MySQL source and spec files
|
# Copy MySQL source and spec files
|
||||||
scp $bpath/mysql-$VER.tar.gz $owner@$bmachine:$rpmdir/SOURCES
|
|
||||||
scp $bpath/Docs/Images/mysql-logo.gif $owner@$bmachine:$rpmdir/SOURCES/mysql.gif
|
#Sasha: I left the scp stuff commented out instead of deleted to make it
|
||||||
scp $bpath/support-files/mysql-$VER.spec $owner@$bmachine:$rpmdir/SPECS
|
#easy to revert in a hurry, if there is a need. Once everything is tested
|
||||||
|
#and works perfectly, the scp stuff should be deleted to avoid confusion
|
||||||
|
|
||||||
|
#scp $bpath/mysql-$VER.tar.gz $owner@$bmachine:$rpmdir/SOURCES
|
||||||
|
copy_to_bmachine $tarball $rpmdir/SOURCES
|
||||||
|
#scp $bpath/Docs/Images/mysql-logo.gif $owner@$bmachine:$rpmdir/SOURCES/mysql.gif
|
||||||
|
copy_to_bmachine $bpath/Docs/Images/mysql-logo.gif $rpmdir/SOURCES/mysql.gif
|
||||||
|
#scp $bpath/support-files/mysql-$VER.spec $owner@$bmachine:$rpmdir/SPECS
|
||||||
|
copy_to_bmachine $bpath/support-files/mysql-$VER.spec $rpmdir/SPECS
|
||||||
|
|
||||||
# Copy perl things. Has to be uncompressed since Compress.pm is not
|
# Copy perl things. Has to be uncompressed since Compress.pm is not
|
||||||
# installed yet. Set CEXT to .gz when we support compression.
|
# installed yet. Set CEXT to .gz when we support compression.
|
||||||
@ -52,7 +134,7 @@ CEXT=
|
|||||||
# cd /usr/lib/perl5/site_perl/5.005; ln -s ../* .; rm -f 5.005
|
# cd /usr/lib/perl5/site_perl/5.005; ln -s ../* .; rm -f 5.005
|
||||||
|
|
||||||
TMP_SCRIPT_MYSQL=00-temp-for-do-rpm.$$
|
TMP_SCRIPT_MYSQL=00-temp-for-do-rpm.$$
|
||||||
cat > $bpath/Logs/$TMP_SCRIPT_MYSQL <<END
|
cat > $logdir/$TMP_SCRIPT_MYSQL <<END
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
# Check environment
|
# Check environment
|
||||||
@ -67,32 +149,34 @@ rpm -ba $rpmdir/SPECS/mysql-$VER.spec
|
|||||||
rm -f /tmp/$TMP_SCRIPT_MYSQL
|
rm -f /tmp/$TMP_SCRIPT_MYSQL
|
||||||
END
|
END
|
||||||
|
|
||||||
TMP_SCRIPT_PERL=00-temp-for-perl-rpm.$$
|
if [ ! x$skip_perl=x1 ]; then
|
||||||
cat > $bpath/Logs/$TMP_SCRIPT_PERL <<END
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# First clean up so we do not get old versions when wildcard matching
|
TMP_SCRIPT_PERL=00-temp-for-perl-rpm.$$
|
||||||
rm -f $rpmdir/SOURCES/DBI-*.spec
|
cat > $logdir/$TMP_SCRIPT_PERL <<END
|
||||||
rm -f $rpmdir/RPMS/i386/Perl-*.rpm
|
set -x
|
||||||
rm -f $rpmdir/SRPMS/Perl-*.rpm
|
|
||||||
rm -f $rpmdir/RPMS/i386/MySQL*-$VER_NO_DASH*.rpm
|
|
||||||
rm -f $rpmdir/SRPMS/MySQL*-$VER_NO_DASH*.rpm
|
|
||||||
|
|
||||||
chmod a+x ${MAKERPM}
|
# First clean up so we do not get old versions when wildcard matching
|
||||||
rm
|
rm -f $rpmdir/SOURCES/DBI-*.spec
|
||||||
|
rm -f $rpmdir/RPMS/i386/Perl-*.rpm
|
||||||
|
rm -f $rpmdir/SRPMS/Perl-*.rpm
|
||||||
|
rm -f $rpmdir/RPMS/i386/MySQL*-$VER_NO_DASH*.rpm
|
||||||
|
rm -f $rpmdir/SRPMS/MySQL*-$VER_NO_DASH*.rpm
|
||||||
|
|
||||||
${MAKERPM} --verbose --package-name=DBI --package-version ${DBI_VERSION} \
|
chmod a+x ${MAKERPM}
|
||||||
|
rm
|
||||||
|
|
||||||
|
${MAKERPM} --verbose --package-name=DBI --package-version ${DBI_VERSION} \
|
||||||
--specs --source=DBI-${DBI_VERSION}.tar$CEXT
|
--specs --source=DBI-${DBI_VERSION}.tar$CEXT
|
||||||
|
|
||||||
rpm -ba $rpmdir/SPECS/DBI-${DBI_VERSION}.spec
|
rpm -ba $rpmdir/SPECS/DBI-${DBI_VERSION}.spec
|
||||||
|
|
||||||
${MAKERPM} --verbose --package-name=Data-ShowTable \
|
${MAKERPM} --verbose --package-name=Data-ShowTable \
|
||||||
--package-version ${DATA_SHOWTABLE_VERSION} \
|
--package-version ${DATA_SHOWTABLE_VERSION} \
|
||||||
--specs --source=Data-ShowTable-${DATA_SHOWTABLE_VERSION}.tar$CEXT
|
--specs --source=Data-ShowTable-${DATA_SHOWTABLE_VERSION}.tar$CEXT
|
||||||
|
|
||||||
rpm -ba $rpmdir/SPECS/Data-ShowTable-${DATA_SHOWTABLE_VERSION}.spec
|
rpm -ba $rpmdir/SPECS/Data-ShowTable-${DATA_SHOWTABLE_VERSION}.spec
|
||||||
|
|
||||||
for v in ${DBD_MYSQL_VERSION}; do
|
for v in ${DBD_MYSQL_VERSION}; do
|
||||||
${MAKERPM}
|
${MAKERPM}
|
||||||
--specs \
|
--specs \
|
||||||
--source=Msql-Mysql-modules-$v.tar$CEXT \
|
--source=Msql-Mysql-modules-$v.tar$CEXT \
|
||||||
@ -103,32 +187,46 @@ for v in ${DBD_MYSQL_VERSION}; do
|
|||||||
--nomsql-install --nomsql1-install' \
|
--nomsql-install --nomsql1-install' \
|
||||||
--require=perl-Data-ShowTable --require=perl-DBI
|
--require=perl-Data-ShowTable --require=perl-DBI
|
||||||
rpm -ba $rpmdir/SPECS/DBD-mysql-$v.spec
|
rpm -ba $rpmdir/SPECS/DBD-mysql-$v.spec
|
||||||
done
|
done
|
||||||
|
|
||||||
for srcrpm in $rpmdir/SRPMS/perl-*.src.rpm
|
for srcrpm in $rpmdir/SRPMS/perl-*.src.rpm
|
||||||
do
|
do
|
||||||
rpm --rebuild $srcrpm
|
rpm --rebuild $srcrpm
|
||||||
done
|
done
|
||||||
|
|
||||||
rm -f /tmp/$TMP_SCRIPT_PERL
|
rm -f /tmp/$TMP_SCRIPT_PERL
|
||||||
END
|
END
|
||||||
|
fi
|
||||||
|
|
||||||
# scp $bpath/Logs/$TMP_SCRIPT_MYSQL $owner@$bmachine:/tmp/$TMP_SCRIPT_MYSQL
|
# scp $bpath/Logs/$TMP_SCRIPT_MYSQL $owner@$bmachine:/tmp/$TMP_SCRIPT_MYSQL
|
||||||
|
|
||||||
ssh $bmachine -l $owner bash $bpath/Logs/$TMP_SCRIPT_MYSQL
|
# ssh $bmachine -l $owner bash $bpath/Logs/$TMP_SCRIPT_MYSQL
|
||||||
|
|
||||||
# Build perl RPM (we currently need to be root to do this and that is
|
cmd=$logdir/$TMP_SCRIPT_MYSQL
|
||||||
# not possible)
|
run_command $cmd
|
||||||
|
|
||||||
#scp $bpath/Logs/$TMP_SCRIPT_PERL $owner@$bmachine:/tmp/$TMP_SCRIPT_PERL
|
if [ $? != 0 ]; then
|
||||||
#ssh $bmachine -l root bash /tmp/$TMP_SCRIPT_PERL
|
echo "$cmd failed, perhaps the following will help figure out why:"
|
||||||
|
tail $log
|
||||||
|
fi
|
||||||
|
|
||||||
# Copy RPMs back to the source dir. We must do this here since the
|
if [ ! x$local_build=x1 ]; then
|
||||||
# $bmachine may not have permission to access $smachine.
|
|
||||||
scp $owner@$bmachine:$rpmdir/RPMS/i386/MySQL*-$VER_NO_DASH*.rpm $bpath/NEW-RPMS
|
|
||||||
scp $owner@$bmachine:$rpmdir/SRPMS/MySQL*-$VER_NO_DASH*.rpm $bpath/NEW-RPMS
|
|
||||||
|
|
||||||
# And the perl ones
|
# Build perl RPM (we currently need to be root to do this and that is
|
||||||
#scp $owner@$bmachine:$rpmdir/RPMS/i386/Perl*-*.rpm $bpath/NEW-RPMS
|
# not possible)
|
||||||
#scp $owner@$bmachine:$rpmdir/SRPMS/Perl*-*.rpm $bpath/NEW-RPMS
|
|
||||||
|
#scp $bpath/Logs/$TMP_SCRIPT_PERL $owner@$bmachine:/tmp/$TMP_SCRIPT_PERL
|
||||||
|
#ssh $bmachine -l root bash /tmp/$TMP_SCRIPT_PERL
|
||||||
|
|
||||||
|
# Copy RPMs back to the source dir. We must do this here since the
|
||||||
|
# $bmachine may not have permission to access $smachine.
|
||||||
|
scp $owner@$bmachine:$rpmdir/RPMS/i386/MySQL*-$VER_NO_DASH*.rpm $bpath/NEW-RPMS
|
||||||
|
scp $owner@$bmachine:$rpmdir/SRPMS/MySQL*-$VER_NO_DASH*.rpm $bpath/NEW-RPMS
|
||||||
|
|
||||||
|
# And the perl ones
|
||||||
|
#scp $owner@$bmachine:$rpmdir/RPMS/i386/Perl*-*.rpm $bpath/NEW-RPMS
|
||||||
|
#scp $owner@$bmachine:$rpmdir/SRPMS/Perl*-*.rpm $bpath/NEW-RPMS
|
||||||
|
fi
|
||||||
) > $log 2>&1
|
) > $log 2>&1
|
||||||
|
|
||||||
|
|
||||||
|
@ -151,9 +151,9 @@ BuildMySQL() {
|
|||||||
# The --enable-assembler simply does nothing on systems that does not
|
# The --enable-assembler simply does nothing on systems that does not
|
||||||
# support assembler speedups.
|
# support assembler speedups.
|
||||||
sh -c "PATH=\"${MYSQL_BUILD_PATH:-/bin:/usr/bin}\" \
|
sh -c "PATH=\"${MYSQL_BUILD_PATH:-/bin:/usr/bin}\" \
|
||||||
CC=\"${MYSQL_BUILD_CC:-egcs}\" \
|
CC=\"${MYSQL_BUILD_CC:-gcc}\" \
|
||||||
CFLAGS=\"${MYSQL_BUILD_CFLAGS:- -O3}\" \
|
CFLAGS=\"${MYSQL_BUILD_CFLAGS:- -O3}\" \
|
||||||
CXX=\"${MYSQL_BUILD_CXX:-egcs}\" \
|
CXX=\"${MYSQL_BUILD_CXX:-gcc}\" \
|
||||||
CXXFLAGS=\"${MYSQL_BUILD_CXXFLAGS:- -O3 \
|
CXXFLAGS=\"${MYSQL_BUILD_CXXFLAGS:- -O3 \
|
||||||
-felide-constructors -fno-exceptions -fno-rtti \
|
-felide-constructors -fno-exceptions -fno-rtti \
|
||||||
}\" \
|
}\" \
|
||||||
@ -204,6 +204,7 @@ BuildMySQL "--enable-shared --enable-thread-safe-client --with-berkeley-db --wit
|
|||||||
|
|
||||||
# Save shared libraries and mysqld-max
|
# Save shared libraries and mysqld-max
|
||||||
mv sql/mysqld sql/mysqld-max
|
mv sql/mysqld sql/mysqld-max
|
||||||
|
nm --numeric-sort sql/mysqld-max > sql/mysqld-max.sym
|
||||||
(cd libmysql/.libs; tar cf $RBR/shared-libs.tar *.so*)
|
(cd libmysql/.libs; tar cf $RBR/shared-libs.tar *.so*)
|
||||||
(cd libmysql_r/.libs; tar rf $RBR/shared-libs.tar *.so*)
|
(cd libmysql_r/.libs; tar rf $RBR/shared-libs.tar *.so*)
|
||||||
|
|
||||||
@ -219,6 +220,7 @@ BuildMySQL "--disable-shared" \
|
|||||||
"--with-mysqld-ldflags='-all-static'" \
|
"--with-mysqld-ldflags='-all-static'" \
|
||||||
"--with-client-ldflags='-all-static'" \
|
"--with-client-ldflags='-all-static'" \
|
||||||
"--without-berkeley-db --without-innodb"
|
"--without-berkeley-db --without-innodb"
|
||||||
|
nm --numeric-sort sql/mysqld > sql/mysqld.sym
|
||||||
|
|
||||||
%install -n mysql-%{mysql_version}
|
%install -n mysql-%{mysql_version}
|
||||||
RBR=$RPM_BUILD_ROOT
|
RBR=$RPM_BUILD_ROOT
|
||||||
@ -240,6 +242,10 @@ make install DESTDIR=$RBR benchdir_root=/usr/share/
|
|||||||
# install saved mysqld-max
|
# install saved mysqld-max
|
||||||
install -m755 $MBD/sql/mysqld-max $RBR/usr/sbin/mysqld-max
|
install -m755 $MBD/sql/mysqld-max $RBR/usr/sbin/mysqld-max
|
||||||
|
|
||||||
|
# install symbol files ( for stack trace resolution)
|
||||||
|
install -m644 $MBD/sql/mysqld-max.sym $RBR/usr/lib/mysql/mysqld-max.sym
|
||||||
|
install -m644 $MBD/sql/mysqld.sym $RBR/usr/lib/mysql/mysqld.sym
|
||||||
|
|
||||||
# Install logrotate and autostart
|
# Install logrotate and autostart
|
||||||
install -m644 $MBD/support-files/mysql-log-rotate $RBR/etc/logrotate.d/mysql
|
install -m644 $MBD/support-files/mysql-log-rotate $RBR/etc/logrotate.d/mysql
|
||||||
install -m755 $MBD/support-files/mysql.server $RBR/etc/rc.d/init.d/mysql
|
install -m755 $MBD/support-files/mysql.server $RBR/etc/rc.d/init.d/mysql
|
||||||
@ -349,6 +355,7 @@ fi
|
|||||||
%attr(644, root, root) /usr/info/mysql.info*
|
%attr(644, root, root) /usr/info/mysql.info*
|
||||||
|
|
||||||
%attr(755, root, root) /usr/sbin/mysqld
|
%attr(755, root, root) /usr/sbin/mysqld
|
||||||
|
%attr(644, root, root) /usr/lib/mysql/mysqld.sym
|
||||||
|
|
||||||
%attr(644, root, root) /etc/logrotate.d/mysql
|
%attr(644, root, root) /etc/logrotate.d/mysql
|
||||||
%attr(755, root, root) /etc/rc.d/init.d/mysql
|
%attr(755, root, root) /etc/rc.d/init.d/mysql
|
||||||
@ -403,6 +410,7 @@ fi
|
|||||||
|
|
||||||
%files Max
|
%files Max
|
||||||
%attr(755, root, root) /usr/sbin/mysqld-max
|
%attr(755, root, root) /usr/sbin/mysqld-max
|
||||||
|
%attr(644, root, root) /usr/lib/mysql/mysqld-max.sym
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user