1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/bash
# We built on one of two machines
bmachine=work
smachine=work
owner=my
# Hard path!!
bpath=`/bin/pwd`
rpmdir="/usr/src/redhat"
###### Perl STUFF #####
# Perl version numbers. Should be autodetected from the files in the
# Perl-mysql-modules/ directory.
DBI_VERSION="1.14"
DATA_SHOWTABLE_VERSION="3.3"
DBD_MYSQL_VERSION="1.2215"
MAKERPM="$rpmdir/SOURCES/makerpm.pl"
#######################
AM_MAKEFLAGS="-j 2"
VER=`grep "AM_INIT_AUTOMAKE(mysql, " $bpath/configure.in | \
sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;'`
VER_NO_DASH=`echo $VER | sed -e "s|-.*$||"`
echo "Removing old MySQL packages"
rm -rf $rpmdir/BUILD/mysql-*
rm -f $rpmdir/SOURCES/mysql-*
rm -f $rpmdir/SRPMS/MySQL-*
rm -f $rpmdir/SPEC/mysql-*
echo "Building RPM for MySQL version $VER on $bmachine"
log=$bpath/Logs/Log-RPM-`date +%y%m%d-%H%M`
(
set -x
# 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
scp $bpath/support-files/mysql-$VER.spec $owner@$bmachine:$rpmdir/SPECS
# Copy perl things. Has to be uncompressed since Compress.pm is not
# installed yet. Set CEXT to .gz when we support compression.
CEXT=
#scp $bpath/Perl-mysql-modules/To-SOURCES/* $owner@$bmachine:$rpmdir/SOURCES
# This had to be installed on the target machince!
# http://www.perl.com/CPAN/modules/by-module/Archive/Archive-Tar-0.21.tar.gz
# cd /usr/lib/perl5/site_perl/5.005; ln -s ../* .; rm -f 5.005
TMP_SCRIPT_MYSQL=00-temp-for-do-rpm.$$
cat > $bpath/Logs/$TMP_SCRIPT_MYSQL <<END
set -x
# Check environment
export MYSQL_BUILD_PATH="/usr/cygnus/redhat-980810/H-i386-pc-linux-gnu/bin/:/usr/bin:/bin"
export MYSQL_BUILD_CFLAGS="-O6 -fno-omit-frame-pointer -mpentium"
export MYSQL_BUILD_CXXFLAGS="-O6 -fno-omit-frame-pointer \
-felide-constructors -fno-exceptions -fno-rtti -mpentium"
gcc -v
# Make RPM
rpm -ba $rpmdir/SPECS/mysql-$VER.spec
rm -f /tmp/$TMP_SCRIPT_MYSQL
END
TMP_SCRIPT_PERL=00-temp-for-perl-rpm.$$
cat > $bpath/Logs/$TMP_SCRIPT_PERL <<END
set -x
# First clean up so we do not get old versions when wildcard matching
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
chmod a+x ${MAKERPM}
rm
${MAKERPM} --verbose --package-name=DBI --package-version ${DBI_VERSION} \
--specs --source=DBI-${DBI_VERSION}.tar$CEXT
rpm -ba $rpmdir/SPECS/DBI-${DBI_VERSION}.spec
${MAKERPM} --verbose --package-name=Data-ShowTable \
--package-version ${DATA_SHOWTABLE_VERSION} \
--specs --source=Data-ShowTable-${DATA_SHOWTABLE_VERSION}.tar$CEXT
rpm -ba $rpmdir/SPECS/Data-ShowTable-${DATA_SHOWTABLE_VERSION}.spec
for v in ${DBD_MYSQL_VERSION}; do
${MAKERPM}
--specs \
--source=Msql-Mysql-modules-$v.tar$CEXT \
--setup-dir=Msql-Mysql-modules-$v \
--package-name=DBD-mysql \
--package-version=$v \
--makemakeropts='--noprompt --mysql-install --mysql-install-nodbd \
--nomsql-install --nomsql1-install' \
--require=perl-Data-ShowTable --require=perl-DBI
rpm -ba $rpmdir/SPECS/DBD-mysql-$v.spec
done
for srcrpm in $rpmdir/SRPMS/perl-*.src.rpm
do
rpm --rebuild $srcrpm
done
rm -f /tmp/$TMP_SCRIPT_PERL
END
# scp $bpath/Logs/$TMP_SCRIPT_MYSQL $owner@$bmachine:/tmp/$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
# not possible)
#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
) > $log 2>&1