Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
5def0988
Commit
5def0988
authored
Aug 12, 2003
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge lgrimmer@build.mysql.com:/home/bk/mysql-4.0
into mysql.com:/space/my/mysql-4.0
parents
8712fee2
965050af
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
172 additions
and
249 deletions
+172
-249
Build-tools/Do-compile
Build-tools/Do-compile
+5
-1
Build-tools/Do-rpm
Build-tools/Do-rpm
+152
-244
scripts/make_binary_distribution.sh
scripts/make_binary_distribution.sh
+15
-4
No files found.
Build-tools/Do-compile
View file @
5def0988
...
...
@@ -8,7 +8,7 @@ use Getopt::Long;
$opt_distribution
=
$opt_user
=
$opt_config_env
=
"";
$opt_dbd_options
=
$opt_perl_options
=
$opt_config_options
=
$opt_make_options
=
$opt_suffix
=
"";
$opt_tmp
=
$opt_version_suffix
=
"";
$opt_help
=
$opt_delete
=
$opt_debug
=
$opt_stage
=
$opt_no_test
=
$opt_no_perl
=
$opt_with_low_memory
=
$opt_fast_benchmark
=
$opt_static_client
=
$opt_static_server
=
$opt_static_perl
=
$opt_sur
=
$opt_with_small_disk
=
$opt_local_perl
=
$opt_tcpip
=
$opt_build_thread
=
$opt_use_old_distribution
=
$opt_enable_shared
=
$opt_no_crash_me
=
$opt_no_strip
=
$opt_with_debug
=
$opt_no_benchmark
=
$opt_no_mysqltest
=
0
;
$opt_help
=
$opt_delete
=
$opt_debug
=
$opt_stage
=
$opt_no_test
=
$opt_no_perl
=
$opt_with_low_memory
=
$opt_fast_benchmark
=
$opt_static_client
=
$opt_static_server
=
$opt_static_perl
=
$opt_sur
=
$opt_with_small_disk
=
$opt_local_perl
=
$opt_tcpip
=
$opt_build_thread
=
$opt_use_old_distribution
=
$opt_enable_shared
=
$opt_no_crash_me
=
$opt_no_strip
=
$opt_with_debug
=
$opt_no_benchmark
=
$opt_no_mysqltest
=
$opt_without_embedded
=
0
;
$opt_innodb
=
$opt_bdb
=
$opt_raid
=
$opt_libwrap
=
0
;
GetOptions
(
...
...
@@ -230,6 +230,7 @@ if ($opt_stage <= 1)
$opt_config_options
.=
"
--with-low-memory
"
if
(
$opt_with_low_memory
);
$opt_config_options
.=
"
--with-mysqld-ldflags=-all-static
"
if
(
$opt_static_server
);
$opt_config_options
.=
"
--with-raid
"
if
(
$opt_raid
);
$opt_config_options
.=
"
--with-embedded-server
"
unless
(
$opt_without_embedded
);
# Only enable InnoDB when requested (required to be able to
# build the "Classic" packages that do not include InnoDB)
...
...
@@ -551,6 +552,9 @@ non-standard location overriding default.
--with-small-disk
Clean up the build environment before testing the binary distribution
(to save disk space)
--without-embedded
Don't compile the embedded server.
EOF
exit
1
;
}
...
...
Build-tools/Do-rpm
View file @
5def0988
#!/bin/bash
#helper functions
function
copy_to_bmachine
#!/usr/bin/perl -w
#
# Do-rpm - compile RPM packages out of a source tarball and copy the
# resulting RPM packages into the current directory.
#
# The script currently assumes the following environment (which should exist
# like that, if the Do-compile script was used to build the binary
# distribution)
#
# - there must be a source distribution (mysql-<version>.tar.gz)
# in the current directory
# - there must be a spec file (mysql-<version>.spec) in the directory
# $HOME/<hostname>/mysql-<version>/support-files/
#
# Use the "--help" option for more info!
#
# written by Lenz Grimmer <lenz@mysql.com>
#
use
Getopt::
Long
;
Getopt::Long::
Configure
("
bundling
");
$opt_dry_run
=
undef
;
$opt_help
=
undef
;
$opt_log
=
undef
;
$opt_mail
=
"";
$opt_verbose
=
undef
;
$opt_version
=
undef
;
GetOptions
(
"
dry-run
",
"
help|h
",
"
log|l:s
",
"
mail|m=s
",
"
verbose|v
",
"
version=s
",
)
||
&
print_help
;
# Include helper functions
chomp
(
$PWD
=
`
pwd
`);
$LOGGER
=
"
$PWD
/logger.pm
";
if
(
-
f
"
$LOGGER
")
{
if
[
x
$local_build
=
x1
]
;
then
rm
-f
$2
cp
$1
$2
else
scp
$1
$owner
@
$bmachine
:
$2
fi
do
"
$LOGGER
";
}
function
copy_from_bmachine
else
{
if
[
x
$local_build
=
x1
]
;
then
rm
-f
$2
cp
$1
$2
else
scp
$owner
@
$bmachine
:
$1
$2
fi
die
"
ERROR:
$LOGGER
cannot be found!
\n
";
}
function
run_command
#
# Override predefined Log file name
#
if
(
defined
$opt_log
)
{
if
[
x
$local_build
=
x1
]
;
then
bash
$1
else
cat
$1
| ssh
$owner
@
$bmachine
bash
fi
if
(
$opt_log
ne
"")
{
if
(
$opt_log
=~
/^\/.*/
)
{
$LOGFILE
=
$opt_log
;
}
else
{
$LOGFILE
=
$PWD
.
"
/
"
.
$opt_log
;
}
}
}
#Supply defaults
# We built on one of two machines
bmachine
=
work
smachine
=
work
owner
=
my
# Hard path!!
bpath
=
`
/bin/pwd
`
for
d
in
/usr/src/redhat /usr/src/packages
;
do
if
test
-d
"
$d
"
then
rpmdir
=
$d
fi
done
if
test
-z
"
$rpmdir
"
then
echo
"Could not find suitable rpmdir on this system"
exit
1
fi
logdir
=
"
$bpath
/Logs"
###### 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|-.*
$|
|"
`
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"
rm
-f
$bpath
/NEW-RPMS/MySQL-
*
rpm
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
log
=
$logdir
/Log-RPM-
`
date
+%y%m%d-%H%M
`
echo
"Building RPM for MySQL version
$VER
on
$bmachine
"
echo
"Details in
$log
"
(
set
-x
# remove old stuff
rm
-rf
$rpmdir
/BUILD/mysql-
*
rm
-f
$rpmdir
/SOURCES/mysql-
*
rm
-f
$rpmdir
/SRPMS/MySQL-
*
rm
-f
$rpmdir
/SPECS/mysql-
*
rm
-rf
/var/tmp/mysql
# Copy MySQL source and spec files
#Sasha: I left the scp stuff commented out instead of deleted to make it
#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
# 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
>
$logdir
/
$TMP_SCRIPT_MYSQL
<<
END
set -x
# Check environment
#export MYSQL_BUILD_PATH="/usr/local/bin:/my/gnu/bin:/usr/bin:/bin"
#export MYSQL_BUILD_CFLAGS="-O6 -fno-omit-frame-pointer -mcpu=pentiumpro"
#export MYSQL_BUILD_CXXFLAGS="-O6 -fno-omit-frame-pointer
\
# -felide-constructors -fno-exceptions -fno-rtti -mcpu=pentiumpro"
export MYSQL_BUILD_PATH="/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
&
print_help
("")
if
(
$opt_help
||
!
$opt_version
);
# Make RPM
rpm -ba
$rpmdir
/SPECS/mysql-
$VER
.spec
rm -f /tmp/
$TMP_SCRIPT_MYSQL
END
if
[
!
x
$skip_perl
=
x1
]
;
then
TMP_SCRIPT_PERL
=
00-temp-for-perl-rpm.
$$
cat
>
$logdir
/
$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
$rpmdir
/SOURCES/mysql*
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
fi
# scp $bpath/Logs/$TMP_SCRIPT_MYSQL $owner@$bmachine:/tmp/$TMP_SCRIPT_MYSQL
# ssh $bmachine -l $owner bash $bpath/Logs/$TMP_SCRIPT_MYSQL
cmd
=
$logdir
/
$TMP_SCRIPT_MYSQL
run_command
$cmd
if
[
$?
!=
0
]
;
then
echo
"
$cmd
failed, perhaps the following will help figure out why:"
tail
$log
fi
if
[
x
$local_build
!=
x1
]
;
then
#
# Newer RPM version ship with a separate tool to build RPMs
#
if
(
-
x
"
/usr/bin/rpmbuild
")
{
$RPM
=
"
/usr/bin/rpmbuild
";
}
else
{
$RPM
=
"
/bin/rpm
";
}
# Build perl RPM (we currently need to be root to do this and that is
# not possible)
foreach
$DIR
("
/usr/src/packages
",
"
/usr/src/redhat
")
{
if
(
-
d
$DIR
)
{
$TOPDIR
=
$DIR
;
last
;
}
}
#scp $bpath/Logs/$TMP_SCRIPT_PERL $owner@$bmachine:/tmp/$TMP_SCRIPT_PERL
#ssh $bmachine -l root bash /tmp/$TMP_SCRIPT_PERL
$SPECDIR
=
$TOPDIR
.
"
/SPECS
";
$SOURCEDIR
=
$TOPDIR
.
"
/SOURCES
";
# 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
$VERSION
=
$opt_version
;
(
$MAJOR
,
$MINOR
,
$RELEASE
)
=
split
(
/\./
,
$VERSION
);
chomp
(
$HOST
=
`
hostname
`);
$HOST
=~
/^([^.-]*)/
;
$HOST
=
$1
;
$LOGFILE
=
"
$PWD
/Logs/Do-rpm-
$HOST
-
$MAJOR
.
$MINOR
.log
";
$SOURCEFILE
=
"
mysql-
$VERSION
.tar.gz
";
$SPECFILE
=
"
$PWD
/
$HOST
/mysql-
$VERSION
/support-files/mysql-
$VERSION
.spec
";
# 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
&
logger
("
Starting RPM build of MySQL-
$VERSION
on
$HOST
");
#Remove some of the files that can interfere with future builds
foreach
$file
(
$SOURCEFILE
,
$SPECFILE
)
{
&
abort
("
Unable to find
$file
!
")
unless
(
-
f
"
$file
");
}
rm
-rf
/var/tmp/mysql
fi
)
>
$log
2>&1
#
# Install source and spec file
#
&
logger
("
Copying SOURCE and SPEC file to build directories.
");
$command
=
"
cp
";
$command
.=
"
-v
"
if
(
$opt_verbose
);
$command
.=
"
$SOURCEFILE
$SOURCEDIR
";
&
run_command
(
$command
,
"
Unable to copy
$SOURCEFILE
to
$SOURCEDIR
!
");
$command
=
"
cp
";
$command
.=
"
-v
"
if
(
$opt_verbose
);
$command
.=
"
$SPECFILE
$SPECDIR
";
&
run_command
(
$command
,
"
Unable to copy
$SPECFILE
to
$SPECDIR
!
");
#
# Build the RPMs
#
$command
=
"
$RPM
";
$command
.=
"
-v
"
if
(
$opt_verbose
);
$command
.=
"
-ba --clean
$SPECDIR
/
$SPECFILE
";
&
logger
("
Builing RPM.
");
&
run_command
(
$command
,
"
Unable to build RPM!
");
&
logger
("
SUCCESS: RPM files successfully created.
")
if
(
!
$opt_dry_run
);
exit
0
;
sub
print_help
{
my
$message
=
$_
[
0
];
if
(
$message
ne
"")
{
print
"
\n
";
print
"
ERROR:
$message
\n
";
}
print
<<EOF;
Usage: Do-rpm <options> --version=<version>
Creates a binary RPM package out of a MySQL source distribution and copy the
resulting RPMs into the current directory.
Options:
--dry-run Dry run without executing
-h, --help Print this help
-l, --log[=<filename>] Write a log file [to <filename>]
(default is "$LOGFILE")
-m, --mail=<address> Mail a failure report to the given address
(and include a log file snippet, if logging
is enabled)
Note that the \@-Sign needs to be quoted!
Example: --mail=user\\\@domain.com
--version=<version> The MySQL version number (e.g. 4.0.11-gamma)
-v, --verbose Verbose execution
EOF
exit
1
;
}
scripts/make_binary_distribution.sh
View file @
5def0988
...
...
@@ -61,7 +61,7 @@ case $system in
esac
mkdir
$BASE
$BASE
/bin
\
mkdir
$BASE
$BASE
/bin
$BASE
/docs
\
$BASE
/include
$BASE
/lib
$BASE
/support-files
$BASE
/share
$BASE
/scripts
\
$BASE
/mysql-test
$BASE
/mysql-test/t
$BASE
/mysql-test/r
\
$BASE
/mysql-test/include
$BASE
/mysql-test/std_data
...
...
@@ -73,9 +73,20 @@ if [ $BASE_SYSTEM != "netware" ] ; then
chmod
o-rwx
$BASE
/data
$BASE
/data/
*
fi
for
i
in
ChangeLog COPYING COPYING.LIB README Docs/INSTALL-BINARY
\
MySQLEULA.txt Docs/manual.html Docs/manual.txt Docs/manual_toc.html
\
LICENSE.doc README.NW Docs/mysqlbug.txt
for
i
in
ChangeLog
\
Docs/manual.html
\
Docs/manual.txt
\
Docs/manual_toc.html
\
Docs/mysql.info
do
if
[
-f
$i
]
then
$CP
$i
$BASE
/docs
fi
done
for
i
in
COPYING COPYING.LIB README Docs/INSTALL-BINARY
\
MySQLEULA.txt LICENSE.doc README.NW
do
if
[
-f
$i
]
then
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment