summaryrefslogtreecommitdiff
path: root/Build-tools
diff options
context:
space:
mode:
authorunknown <lenz@mysql.com>2005-04-13 19:05:31 +0200
committerunknown <lenz@mysql.com>2005-04-13 19:05:31 +0200
commite621d27c77987aff36758a4923b98d0db187d85e (patch)
tree2ee3684cbc9ad673ca24d563fb6468347e23caf1 /Build-tools
parent7a2a7de28be35e04ac5ee2f01c96d91a353ae3bf (diff)
downloadmariadb-git-e621d27c77987aff36758a4923b98d0db187d85e.tar.gz
- Cleanup: removed obsolete build tools (build toolchain is now maintained sepearately)
BitKeeper/deleted/.del-Bootstrap~bfc426bd800ccc3a: Delete: Build-tools/Bootstrap BitKeeper/deleted/.del-Do-pkg~5079e47cde0baad8: Delete: Build-tools/Do-pkg BitKeeper/deleted/.del-logger.pm~9234101b5b668373: Delete: Build-tools/logger.pm BitKeeper/deleted/.del-Do-rpm~c0ef3ebafbf53117: Delete: Build-tools/Do-rpm BitKeeper/deleted/.del-cvs-sanity-check~a3c58acf37f27cee: Delete: Build-tools/cvs-sanity-check BitKeeper/deleted/.del-Do-all-build-steps~bb7d38f34728ac06: Delete: Build-tools/Do-all-build-steps BitKeeper/deleted/.del-Do-local-patch-file~b86e1bfa3b7c13d3: Delete: Build-tools/Do-local-patch-file BitKeeper/deleted/.del-Do-linux-build~b3b941454648a285: Delete: Build-tools/Do-linux-build BitKeeper/deleted/.del-Do-patch-file~a2e87df5f75fd496: Delete: Build-tools/Do-patch-file BitKeeper/deleted/.del-newest~2dd91db13f2ea308: Delete: Build-tools/newest BitKeeper/deleted/.del-Do-create-perl-rpms~1f946e7d8560b3d0: Delete: Build-tools/Do-create-perl-rpms BitKeeper/deleted/.del-Do-win-build~cb5c5e1df8b3de6: Delete: Build-tools/Do-win-build BitKeeper/deleted/.del-my_md5sum~4680250631e4fd9: Delete: Build-tools/my_md5sum BitKeeper/deleted/.del-Do-compile~d1a6d7e535befea3: Delete: Build-tools/Do-compile BitKeeper/deleted/.del-mysql-copyright~56fc330ae63cfe03: Delete: Build-tools/mysql-copyright BitKeeper/deleted/.del-mysql-copyright-2~e73ec01547206fec: Delete: Build-tools/mysql-copyright-2
Diffstat (limited to 'Build-tools')
-rwxr-xr-xBuild-tools/Bootstrap461
-rwxr-xr-xBuild-tools/Do-all-build-steps108
-rwxr-xr-xBuild-tools/Do-compile835
-rwxr-xr-xBuild-tools/Do-create-perl-rpms64
-rwxr-xr-xBuild-tools/Do-linux-build28
-rwxr-xr-xBuild-tools/Do-local-patch-file37
-rwxr-xr-xBuild-tools/Do-patch-file44
-rwxr-xr-xBuild-tools/Do-pkg313
-rwxr-xr-xBuild-tools/Do-rpm332
-rwxr-xr-xBuild-tools/Do-win-build124
-rwxr-xr-xBuild-tools/cvs-sanity-check15
-rw-r--r--Build-tools/logger.pm112
-rwxr-xr-xBuild-tools/my_md5sum141
-rwxr-xr-xBuild-tools/mysql-copyright372
-rwxr-xr-xBuild-tools/mysql-copyright-2169
-rw-r--r--Build-tools/newest116
16 files changed, 0 insertions, 3271 deletions
diff --git a/Build-tools/Bootstrap b/Build-tools/Bootstrap
deleted file mode 100755
index 8b769dca3c4..00000000000
--- a/Build-tools/Bootstrap
+++ /dev/null
@@ -1,461 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Bootstrap
-#
-# Script to export a given BK source tree into a separate directory
-# and create the source distribution to be used for all binary builds
-#
-# Use the "--help" option for more info!
-#
-# written by Lenz Grimmer <lenz@mysql.com>
-#
-
-use Cwd;
-use Getopt::Long;
-Getopt::Long::Configure ("bundling");
-
-# Include helper functions
-$LOGGER= "$ENV{HOME}/bin/logger.pm";
-if (-f $LOGGER)
-{
- do "$LOGGER";
-}
-else
-{
- die "ERROR: $LOGGER cannot be found!\n";
-}
-
-# Some predefined settings
-$build_command= "BUILD/compile-dist";
-$PWD= cwd();
-$opt_docdir= $PWD . "/mysqldoc";
-$opt_archive_log= undef;
-$opt_build_command= undef;
-$opt_changelog= undef;
-$opt_delete= undef;
-$opt_directory= $PWD;
-$opt_dry_run= undef;
-$opt_export_only= undef;
-$opt_help= $opt_verbose= 0;
-$opt_log= undef;
-$opt_mail= "build\@mysql.com";
-$opt_pull= undef;
-$opt_revision= undef;
-$opt_suffix= "";
-$opt_test= undef;
-$opt_skip_check= undef;
-$opt_skip_manual= undef;
-$opt_win_dist= undef;
-$opt_quiet= undef;
-$version= "unknown";
-$major=$minor=$release=0;
-
-GetOptions(
- "archive-log|a",
- "build-command|b=s",
- "changelog|c:s",
- "directory|d=s",
- "delete",
- "docdir=s",
- "dry-run",
- "export-only|e",
- "help|h",
- "log|l:s",
- "mail|m=s",
- "pull|p",
- "revision|r=s",
- "skip-check|s",
- "skip-manual",
- "suffix=s",
- "test|t",
- "verbose|v",
- "win-dist|w",
- "quiet|q",
-) || print_help("");
-
-#
-# Override predefined build command
-#
-if (defined $opt_build_command)
-{
- $build_command= $opt_build_command;
-}
-
-print_help("") if ($opt_help);
-defined($REPO=$ARGV[0]) || print_help("Please enter the BK repository to be used!");
-
-#
-# Override predefined Log file name
-#
-if (defined $opt_log)
-{
- if ($opt_log ne "")
- {
- if ($opt_log =~ /^\/.*/)
- {
- $LOGFILE= $opt_log;
- }
- else
- {
- $LOGFILE= $PWD . "/" . $opt_log;
- }
- }
-}
-
-$LOGFILE= $PWD . "/Bootstrap-" . $REPO . ".log" unless ($LOGFILE);
-
-&logger("Starting build");
-&abort("The directory \"$REPO\" could not be found!") if (!-d $REPO);
-&logger("Using $REPO as the BK parent repository");
-system ("bk help > /dev/null") == 0 or &abort("Cannot execute BitKeeper binary!");
-system ("bk root $REPO > /dev/null 2>&1") == 0 or &abort("$REPO does not seem to be a valid BK repository!");
-
-if (($opt_directory ne $PWD) && (!-d $opt_directory && !$opt_dry_run))
-{
- &abort("Could not find target directory \"$opt_directory\"!");
-}
-
-&logger("Logging to $LOGFILE") if (defined $opt_log);
-
-#
-# Pull recent changes first
-#
-if ($opt_pull)
-{
- &bk_pull("$REPO");
- &bk_pull("$opt_docdir") unless ($opt_skip_manual);
-}
-
-#
-# Use a temporary name until we know the version number
-#
-$target_dir= $opt_directory . "/mysql-" . $$ . "-" . time() . ".tmp";
-&logger("Using temporary directory $target_dir");
-&abort("Target directory $target_dir already exists!") if (-d $target_dir && !$opt_dry_run);
-
-#
-# Export the BK tree
-#
-$command= "bk export ";
-$command.= "-r " . $opt_revision . " " if $opt_revision;
-$command.= "-v " if ($opt_verbose || defined $opt_log);
-$command.= $REPO . " " . $target_dir;
-&logger("Exporting $REPO");
-&run_command($command, "Could not create $target_dir!");
-
-#
-# Make sure we can write all files
-#
-$command= "find $target_dir -type f -print0 | xargs --null chmod u+w";
-&run_command($command, "Failed to fix file permissions!");
-
-#
-# Try to obtain version number from newly extracted configure.in
-#
-$CONF="$target_dir/configure.in";
-&abort("Could not find \"$CONF\" to determine version!") if (!-f $CONF && !$opt_dry_run);
-
-#
-# The following can only be done, if the tree has actually been
-# exported - it cannot be performed in a dry run.
-#
-if (!$opt_dry_run)
-{
- open (CONF, $CONF) or &abort("Unable to open \"$CONF\": $!");
- @conf= <CONF>;
- close CONF;
-
- foreach (@conf)
- {
- m/^AM_INIT_AUTOMAKE\(mysql, ([1-9]\.[0-9]{1,2}\.[0-9]{1,2}.*)\)/;
- $version= $1;
- ($major, $minor, $release) = split(/\./,$version);
- }
- &logger("Found version string: $version");
-
- #
- # Add suffix to version string and write out the modified file
- #
- if ($opt_suffix)
- {
- $opt_suffix= "-" . &ymd() if ($opt_suffix eq "YMD");
-
- &logger("Replacing $version with $version$opt_suffix");
- foreach (@conf)
- {
- s/^AM_INIT_AUTOMAKE.*/AM_INIT_AUTOMAKE\(mysql, $version$opt_suffix\)/;
- }
- open(CONF,">$CONF") or &abort("Unable to open \"$CONF\": $!");
- print CONF @conf;
- close(CONF);
- }
-}
-
-#
-# Rename directory according to the version number found in configure.in
-# of the extracted tree (plus suffix, if requested)
-#
-$temp_name= $target_dir;
-$target_dir= $opt_directory . "/mysql-" . $version . $opt_suffix . "-build";
-if (-d $target_dir)
-{
- &logger("Target directory $target_dir already exists!");
- if ($opt_delete)
- {
- &logger("Deleting $target_dir...");
- $command= "rm ";
- $command.= "-v " if ($opt_verbose || defined $opt_log);
- $command.= "$target_dir";
- &run_command($command, "Could not delete $target_dir!");
- }
- else
- {
- # Get the time stamp of "configure.in"
- @stat= stat("$target_dir/configure.in");
- my $mtime= $stat[9];
- my ($sec,$min,$hour,$mday,$mon,$year) = localtime($mtime);
- my $mtime= sprintf("%04d-%02d-%02d-%02d:%02d", $year+1900, $mon+1, $mday, $hour, $min);
-
- &logger("Renaming $target_dir to $target_dir-$mtime");
- $command= "mv ";
- $command.= "-v " if ($opt_verbose || defined $opt_log);
- $command.= "$target_dir $target_dir-$mtime";
- &run_command($command, "Could not rename $target_dir!");
- }
-}
-
-&logger("Renaming temporary directory to $target_dir");
-$command= "mv ";
-$command.= "-v " if ($opt_verbose || defined $opt_log);
-$command.= "$temp_name $target_dir";
-&run_command($command, "Could not rename $temp_name!");
-
-#
-# Add a ChangeLog (make dist will pick it up automatically)
-#
-if (defined $opt_changelog)
-{
- #
- # Use some magic to obtain the correct ChangeSet number that identifies
- # the last tagged ChangeSet (this relies heavily on our current tagging
- # practice!)
- #
- my $revision= "";
- if ($opt_changelog eq "last")
- {
- if (!$opt_revision)
- {
- $revision= `bk changes -t -d':REV:::TAG:' -n $REPO | grep mysql-$major.$minor | head -1 | cut -f1 -d ":"`;
- }
- else
- {
- $revision= `bk changes -r..$opt_revision -t -d':REV:' -n $REPO | head -2 | tail -1`;
- }
- chomp($revision);
- $opt_changelog= $revision;
- }
-
- $msg= "Adding $target_dir/ChangeLog";
- $msg.= " (down to revision $opt_changelog)" if $opt_changelog ne "";
- &logger($msg);
- $command= "bk changes -v";
- $command.= " -r" if ($opt_changelog ne "" || $opt_revision);
- $command.= $opt_changelog if $opt_changelog ne "";
- $command.= ".." if ($opt_changelog ne "" && !$opt_revision);
- $command.= ".." . $opt_revision if $opt_revision;
- $command.= " " . $REPO . " > $target_dir/ChangeLog";
- &logger($command);
- # We cannot use run_command here because of output redirection
- unless ($opt_dry_run)
- {
- system($command) == 0 or &abort("Could not create $target_dir/ChangeLog!");
- }
-}
-
-#
-# Add the latest manual from the mysqldoc tree
-#
-unless ($opt_skip_manual)
-{
- &logger("Updating manual files");
- foreach $file qw/internals manual reservedwords/
- {
- system ("bk cat $opt_docdir/Docs/$file.texi > $target_dir/Docs/$file.texi") == 0
- or &abort("Could not update $file.texi in $target_dir/Docs/!");
- }
-
- &run_command("rm -f $target_dir/Docs/Images/Makefile*",
- "Could not remove Makefiles in $target_dir/Docs/Images/!");
- &run_command("cp $opt_docdir/Docs/Images/*.* $target_dir/Docs/Images",
- "Could not copy image files in $target_dir/Docs/Images/!");
-}
-
-#
-# Abort here, if we just wanted to export the tree
-#
-if ($opt_export_only)
-{
- &logger("SUCCESS: Export finished successfully.");
- exit 0;
-}
-
-#
-# Enter the target directory first
-#
-&logger("Entering $target_dir");
-if (!$opt_dry_run)
-{
- chdir($target_dir) or &abort("Cannot chdir to $target_dir: $!");
-}
-
-#
-# Now build the source distribution
-#
-&logger("Compiling...");
-$command= $build_command;
-&run_command($command, "Compilation failed!");
-
-#
-# Testing the built binary by running "make test" (optional)
-#
-if ($opt_test)
-{
- &logger ("Running test suite");
- $command= "make test";
- &run_command($command, "\"make test\" failed!");
-}
-
-#
-# Pack it all up
-#
-&logger("Creating source distribution");
-$command= "make dist";
-&run_command($command, "make dist failed!");
-
-#
-# Package the Windows source
-#
-if ($opt_win_dist)
-{
- &logger ("Creating Windows source package");
- $command= "./scripts/make_win_src_distribution --tar --zip";
- &run_command($command, "make_win_src_distribution failed!");
-}
-
-#
-# Run "make distcheck" to verify the source archive
-#
-if (!$opt_skip_check)
-{
- &logger ("Checking source distribution");
- $command= "make distcheck";
- &run_command($command, "make distcheck failed!");
-}
-
-#
-# All done when we came down here
-#
-&logger("SUCCESS: Build finished successfully.") if (!$opt_dry_run);
-
-#
-# Move the log file into the Log dir of the target dir
-#
-if ($opt_archive_log)
-{
- my $logdir= $target_dir . "/Logs";
- &logger("Moving $LOGFILE to $logdir");
- mkdir "$logdir" if (! -d $logdir);
- $command= "mv ";
- $command.= "-v " if ($opt_verbose || defined $opt_log);
- $command.= "$LOGFILE $logdir";
- &run_command($command, "Could not move $LOGFILE to $logdir!");
-}
-
-exit 0;
-
-#
-# Run a BK pull on the given BK tree
-#
-sub bk_pull
-{
- my $bk_tree= $_[0];
- &logger("Updating BK tree $bk_tree to latest ChangeSet first");
- chdir ($bk_tree) or &abort("Could not chdir to $bk_tree!");
- &run_command("bk pull", "Could not update $bk_tree!");
- chdir ($PWD) or &abort("Could not chdir to $PWD!");
-}
-
-#
-# Print the help text message (with an optional message on top)
-#
-sub print_help
-{
- my $message= $_[0];
- if ($message ne "")
- {
- print "\n";
- print "ERROR: $message\n";
- }
- print <<EOF;
-
-Usage: Bootstrap [options] <bk repository>
-
-Creates a MySQL source distribution to be used for the release builds.
-
-It checks out (exports) a clear-text version of the given local BitKeeper
-repository, creates and adds a Changelog file (if requested), adds the
-latest manual files from the mysqldoc BK tree and builds a source
-distribution (*.tar.gz) file. Optionally, the test suite and the
-distribution check can be run before the source archive is being created.
-
-Options:
-
--a, --archive-log Move the log file into the Logs directory of
- the exported tree after a successful build
--b, --build-command=<cmd> Use <cmd> to compile the sources before packing
- the distribution.
- (default is "$build_command")
--c, --changelog[=<rev>] Add a ChangeLog [down to revision <rev>]
- This will automatically be included in the source
- distribution. To get a ChangeLog down to the last
- tagged Changeset, simply use "last" as the revision
- number.
---delete Delete an already existing distribution directory
- in the target directory instead of renaming it.
--d, --directory=<dir> Specify the target directory
- (default is "$opt_directory")
---docdir=<dir> Use the MySQL documentation BK tree located
- in <dir>
- (default is "$opt_docdir")
---dry-run Dry run without executing
--e, --export-only Just export (and add the ChangeLog, if requested),
- do not build or test the source distribution
--h, --help Print this help message
--l, --log[=<filename>] Write a log file [to <filename>]
- (default is "./Bootstrap-<bk repository>.log")
--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
- Default: build\@mysql.com
--q, --quiet Be quiet
--p, --pull Update the source BK trees before building
--r, --revision=<rev> Export the tree as of revision <rev>
- (default is up to the latest revision)
--s, --skip-check Skip checking the distribution with "make distcheck"
---skip-manual Skip updating the manual from the mysqldoc tree
---suffix=<suffix> Append <suffix> to the version number in
- configure.in. Using the special suffix "YMD" will
- add the current date as the suffix
- (e.g. "-20020518").
--t, --test Run the test suite after build
--v, --verbose Be verbose
--w, --win-dist Also make Windows source distribution
-
-Example:
-
- Bootstrap -c last -v -l -- mysql-4.0
-
-EOF
- exit 1;
-}
diff --git a/Build-tools/Do-all-build-steps b/Build-tools/Do-all-build-steps
deleted file mode 100755
index 8ff8851aecd..00000000000
--- a/Build-tools/Do-all-build-steps
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/bin/sh
-
-WD=`pwd`
-# Don't write a wrong path for BD !!!!!
-if [ -w /my/tmp ]
-then
- BD=/my/tmp/BUILD
-elif [ -n "$TMPDIR" ]
-then
- BD=$TMPDIR/BUILD
-else
- BD=/tmp/BUILD
-fi
-TMP_SCRIPT=$WD/Logs/00-temp-for-do-all-build-steps.$$
-
-# We build on work
-to_host=`hostname`
-cc=gcc
-ccc=gcc
-EXTRA_CONFIG="--without-perl"
-#AM_MAKEFLAGS="-j 2"
-echo "Building on $to_host"
-
-rm -rf $BD/*
-rm -f $WD/binary/*
-mkdir -p $WD/binary
-mkdir -p $WD/Logs
-mkdir -p $BD/Logs
-
-cat > $TMP_SCRIPT <<END
-# Show executed commands
-set -x
-# Move to the right place
-cd "$WD"
-# Create a build directory tree
-bk export $BD
-cd "$BD"
-chmod -R u+rw,g+rw .
-
-# Make it easy to remove an old build
-umask 002
-
-CC=$cc CXX=$ccc
-export CC CXX
-
-gmake -j 2 -k distclean
-rm -f NEW-RPMS/*
-
-# Stop on error
-set -e
-
-/bin/rm -f */.deps/*.P
-/bin/rm -f config.cache
-
-aclocal; autoheader; aclocal; automake; autoconf
-(cd bdb/dist && sh s_all)
-(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
-
-# A normal user starts here. We must use mit-threads, bdb and innodb.
-# Otherwise they do not end up in the distribution.
-./configure \
- --with-unix-socket-path=/var/tmp/mysql.sock \
- --with-low-memory \
- --with-mit-threads=yes $EXTRA_CONFIG \
- --enable-thread-safe-client \
- --enable-local-infile \
- --with-berkeley-db \
- --with-innodb \
- --with-vio \
- --without-pstack \
- --with-extra-tools \
- --with-embedded-server
-
-gmake -j 2
-
-time gmake -j 2 distcheck \
- EXTRA_CONF_ARGS="--with-unix-socket-path=/var/tmp/mysql.sock --with-low-memory $EXTRA_CONFIG"
-
-sh $BD/Build-tools/Do-rpm $*
-
-rm -f $TMP_SCRIPT
-END
-
-set -e
-
-log=$WD/Logs/Log-distcheck-`date +%y%m%d-%H%M`
-
-echo "Logging script $TMP_SCRIPT into $log"
-
-if test $to_host = "mysql-work"
-then
- # Try to get the right user for MySQL builds on work so that all
- # files is owned by the same user (mysql)
- ssh -n $to_host -l my "time sh $TMP_SCRIPT" > $log 2>&1
-else
- time sh $TMP_SCRIPT > $log 2>&1
-fi
-
-# Create a commercial MySQL distribution (mysqlcom-VER.tar.gz) from
-# the newly made source distribution
-
-cd "$BD"
-DIST=`ls -t mysql-*.tar.gz | head -1`
-$BD/Build-tools/mysql-copyright --target=. $DIST
-
-# move the binaries to the 'binary' directory
-mv $BD/mysql*tar.gz $WD/binary
-mv $BD/NEW-RPMS/* $WD/binary
diff --git a/Build-tools/Do-compile b/Build-tools/Do-compile
deleted file mode 100755
index aa026ab22b4..00000000000
--- a/Build-tools/Do-compile
+++ /dev/null
@@ -1,835 +0,0 @@
-#!/usr/bin/perl -w
-
-use File::Basename;
-use Getopt::Long;
-use Sys::Hostname;
-
-@config_options= ();
-@make_options= ();
-
-$opt_distribution=$opt_user=$opt_config_env=$opt_config_extra_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_one_error=$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=$opt_clearlogs=$opt_without_ndbcluster=$opt_with_big_tables=0;
-
-GetOptions(
- "bdb",
- "build-thread=i",
- "config-env=s" => \@config_env,
- "config-extra-env=s" => \@config_extra_env,
- "config-options=s" => \@config_options,
- "dbd-options=s",
- "debug",
- "delete",
- "distribution=s",
- "enable-shared",
- "fast-benchmark",
- "help|Information",
- "innodb",
- "libwrap",
- "local-perl",
- "make-options=s" => \@make_options,
- "no-crash-me",
- "no-perl",
- "no-strip",
- "no-test",
- "no-mysqltest",
- "no-benchmark",
- "one-error",
- "perl-files=s",
- "perl-options=s",
- "raid",
- "stage=i",
- "static-client",
- "static-perl",
- "static-server",
- "suffix=s",
- "sur",
- "tcpip",
- "tmp=s",
- "use-old-distribution",
- "user=s",
- "version-suffix=s",
- "with-big-tables",
- "with-debug",
- "with-low-memory",
- "with-other-libc=s",
- "with-small-disk",
- "without-embedded",
- "clearlogs",
- "without-ndbcluster",
-) || usage();
-
-usage() if ($opt_help);
-usage() if (!$opt_distribution);
-
-if (@make_options > 0)
-{
- chomp(@make_options);
- $opt_make_options= join(" ", @make_options);
-}
-
-if (@config_options > 0)
-{
- chomp(@config_options);
- $opt_config_options= join(" ", @config_options);
-}
-
-if (@config_env > 0)
-{
- chomp(@config_env);
- $opt_config_env= join(" ", @config_env);
-}
-
-if (@config_extra_env > 0)
-{
- chomp(@config_extra_env);
- $opt_config_extra_env= join(" ", @config_extra_env);
-}
-
-$host= hostname();
-chomp($uname=`uname`);
-$full_host_name=$host;
-$connect_option= ($opt_tcpip ? "--host=$host" : "");
-$host =~ /^([^.-]*)/;
-$host=$1 . $opt_suffix;
-$email="$opt_user\@mysql.com";
-chomp($pwd = `pwd`);
-$VER= basename($opt_distribution);
-$VER=~ /mysql.*-([1-9]\.[0-9]{1,2}\.[0-9]{1,2}.*)\.tar*/; $version=$1;
-$release=""; # Shut up perl
-($major, $minor, $release) = split(/\./,$version);
-$log="$pwd/Logs/$host-$major.$minor$opt_version_suffix.log";
-$opt_distribution =~ /(mysql[^\/]*)\.tar/;
-$ver=$1;
-$gcc_version=which("gcc");
-if (defined($gcc_version) && ! $opt_config_env)
-{
- $tmp=`$gcc_version -v 2>&1`;
- if ($tmp =~ /version 2\.7\./)
- {
- $opt_config_env= 'CC=gcc CFLAGS="-O2 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O2 -fno-omit-frame-pointer"';
- }
- elsif ($tmp =~ /version 3\.0\./)
- {
- $opt_config_env= 'CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"';
- }
- else
- {
- $opt_config_env= 'CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"';
- }
-}
-
-$opt_config_env.=" $opt_config_extra_env";
-
-$new_opt_tmp=0;
-if ($opt_tmp)
-{
- unless (-d $opt_tmp)
- {
- safe_system("mkdir $opt_tmp");
- $new_opt_tmp=1;
- }
- $ENV{'TMPDIR'}=$opt_tmp;
-}
-else
-{
- $opt_tmp="/tmp";
-}
-$bench_tmpdir="$opt_tmp/my_build-$host";
-$ENV{'PATH'}= "$pwd/$host/bin:" . $ENV{'PATH'};
-$make=which("gmake","make"); # Can't use -j here!
-$tar=which("gtar","tar");
-$sendmail=find("/usr/lib/sendmail","/usr/sbin/sendmail");
-$sur= $opt_sur ? "/my/local/bin/sur" : "";
-delete $ENV{'MYSQL_PWD'}; # Reset possibly password
-delete $ENV{'MY_BASEDIR_VERSION'};
-$ENV{'MYSQL_TCP_PORT'}= $mysql_tcp_port= 3334 + $opt_build_thread*2;
-$ENV{'MYSQL_UNIX_PORT'}=$mysql_unix_port="$opt_tmp/mysql$opt_suffix.build";
-$ENV{"PERL5LIB"}="$pwd/$host/perl5:$pwd/$host/perl5/site_perl";
-$slave_port=$mysql_tcp_port+16;
-$manager_port=$mysql_tcp_port+1;
-$mysqladmin_args="--no-defaults -u root --connect_timeout=5 --shutdown_timeout=20";
-
-if ($opt_stage == 0 || $opt_clearlogs)
-{
- system("mkdir Logs") if (! -d "Logs");
- system("mv $log ${log}-old") if (-f $log);
- unlink($log);
-}
-
-open(LOG,">>$log") || abort("Can't open log file, error $?");
-select LOG;
-$|=1;
-select STDOUT;
-$|=1;
-
-info("Compiling MySQL$opt_version_suffix at $host$opt_suffix, stage: $opt_stage\n");
-info("LD_LIBRARY_PATH is $ENV{LD_LIBRARY_PATH}");
-info("PATH is $ENV{PATH}");
-
-log_timestamp();
-
-$md5_result= safe_system("perl $ENV{HOME}/my_md5sum -c ${opt_distribution}.md5");
-
-if ($md5_result != 0)
-{
- abort("MD5 check failed for $opt_distribution!");
-}
-else
-{
- info("SUCCESS: MD5 checks for $opt_distribution");
-}
-
-if (-x "$host/bin/mysqladmin")
-{
- log_system("$host/bin/mysqladmin $mysqladmin_args -S $mysql_unix_port -s shutdown");
- log_system("$host/bin/mysqladmin $mysqladmin_args -P $mysql_tcp_port -h $host -s shutdown");
- log_system("$host/bin/mysqladmin $mysqladmin_args -P $slave_port -h $host -s shutdown");
- log_system("$host/bin/mysqladmin $mysqladmin_args -P 9306 -h $host -s shutdown");
- log_system("$host/bin/mysqladmin $mysqladmin_args -P 9307 -h $host -s shutdown");
-}
-kill_all("mysqlmanager");
-#
-# Kill all old processes that are in the build directories
-# This is to find any old mysqld servers left from previous builds
-kill_all("$pwd/host/mysql");
-kill_all("$pwd/host/test");
-
-if ($opt_stage == 0)
-{
- log_timestamp();
- print "$host: Removing old distribution\n" if ($opt_debug);
- if (!$opt_use_old_distribution)
- {
- system("mkdir $host") if (! -d $host);
- system("touch $host/mysql-fix-for-glob");
- rm_all(<$host/mysql*>);
- system("mkdir $host/bin") if (! -d "$host/bin");
- }
- rm_all("$host/test");
- system("mkdir $host/test") if (! -d "$host/test");
-}
-
-safe_cd($host);
-if ($opt_stage == 0 && ! $opt_use_old_distribution)
-{
- safe_system("gunzip < $opt_distribution | $tar xf -");
-
- # Fix file times; This is needed because the time for files may be
- # in the future. The following is done this way to ensure that
- # we don't get any errors from xargs touch
- system("touch timestamp");
- sleep(2);
- system("touch timestamp2");
- system("find . -newer timestamp -print | xargs touch");
- unlink("timestamp");
- unlink("timestamp2");
- sleep(2);
- # Ensure that files we don't want to rebuild are newer than other files
- safe_cd($ver);
- foreach $name ("configure",
- "Docs/include.texi",
- "Docs/*.html", "Docs/manual.txt", "Docs/mysql.info",
- "sql/sql_yacc.h", "sql/sql_yacc.cc")
- {
- system("touch $name");
- }
- # Fix some file modes in BDB tables that makes life harder.
- system("chmod -R u+rw .");
-}
-
-safe_cd("$pwd/$host/$ver");
-
-#
-# Configure the sources
-#
-if ($opt_stage <= 1)
-{
- # Fix files if this is in another timezone than the build host
- log_timestamp();
- unlink("config.cache");
- unlink("bdb/build_unix/config.cache");
- unlink("innobase/config.cache");
- log_system("$make clean") if ($opt_use_old_distribution);
- $opt_config_options.= " --disable-shared" if (!$opt_enable_shared); # Default for binary versions
- $opt_config_options.= " --with-berkeley-db" if ($opt_bdb);
- $opt_config_options.= " --with-client-ldflags=-all-static" if ($opt_static_client);
- $opt_config_options.= " --with-debug" if ($opt_with_debug);
- $opt_config_options.= " --with-libwrap" if ($opt_libwrap);
- $opt_config_options.= " --with-low-memory" if ($opt_with_low_memory);
- $opt_config_options.= " --with-big-tables" if ($opt_with_big_tables);
- $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);
- $opt_config_options.= " --without-ndbcluster" if ($opt_without_ndbcluster);
-
- # Only enable InnoDB when requested (required to be able to
- # build the "Classic" packages that do not include InnoDB)
- if ($opt_innodb)
- {
- $opt_config_options.= " --with-innodb";
- }
- else
- {
- $opt_config_options.= " --without-innodb";
- }
-
- if ($opt_with_other_libc)
- {
- $opt_with_other_libc= " --with-other-libc=$opt_with_other_libc";
- $opt_config_options.= $opt_with_other_libc;
- }
-
- $prefix="/usr/local/mysql";
- check_system("$opt_config_env ./configure --prefix=$prefix --localstatedir=$prefix/data --libexecdir=$prefix/bin --with-comment=\"Official MySQL$opt_version_suffix binary\" --with-extra-charsets=complex --with-server-suffix=\"$opt_version_suffix\" --enable-thread-safe-client --enable-local-infile $opt_config_options","Thank you for choosing MySQL");
- if (-d "$pwd/$host/include-mysql")
- {
- safe_system("cp -r $pwd/$host/include-mysql/* $pwd/$host/$ver/include");
- }
-}
-
-#
-# Compile the binaries
-#
-if ($opt_stage <= 2)
-{
- my ($command);
- log_timestamp();
- unlink($opt_distribution) if ($opt_delete && !$opt_use_old_distribution);
- $command=$make;
- $command.= " $opt_make_options" if (defined($opt_make_options) && $opt_make_options ne "");
- safe_system($command);
- print LOG "Do-compile: Build successful\n";
-}
-
-#
-# Create the binary distribution
-#
-if ($opt_stage <= 3)
-{
- my $flags= "";
- log_timestamp();
- log_system("rm -fr mysql-{3,4,5}* $pwd/$host/mysql*.t*gz");
- # No need to add the debug symbols, if the binaries are not stripped (saves space)
- unless ($opt_with_debug || $opt_no_strip)
- {
- log_system("nm -n sql/mysqld | gzip -9 -v 2>&1 > sql/mysqld.sym.gz | cat");
- }
-
- $flags.= "--no-strip" if ($opt_no_strip || $opt_with_debug);
- check_system("scripts/make_binary_distribution --tmp=$opt_tmp --suffix=$opt_suffix $flags",".tar.gz created");
- safe_system("mv mysql*.t*gz $pwd/$host");
- if (-f "client/.libs/mysqladmin")
- {
- safe_system("cp client/.libs/mysqladmin $pwd/$host/bin");
- }
- else
- {
- safe_system("cp client/mysqladmin $pwd/$host/bin");
- }
- safe_system("$make clean") if ($opt_with_small_disk);
-}
-
-$tar_file=<$pwd/$host/mysql*.t*gz>;
-abort ("Could not find tarball!") unless ($tar_file);
-
-# Generate the MD5 for the binary distribution
-$tar_file=~ /(mysql[^\/]*)\.(tar\.gz|tgz)/;
-$tar_file_lite= "$1.$2";
-system("cd $pwd/$host; perl $ENV{HOME}/my_md5sum $tar_file_lite > ${tar_file_lite}.md5");
-
-#
-# Unpack the binary distribution
-#
-if ($opt_stage <= 4 && !$opt_no_test)
-{
- log_timestamp();
- rm_all(<$pwd/$host/test/*>);
- safe_cd("$pwd/$host/test");
- safe_system("gunzip < $tar_file | $tar xf -");
-}
-
-$tar_file =~ /(mysql[^\/]*)\.(tar\.gz|tgz)/;
-$ver=$1;
-$test_dir="$pwd/$host/test/$ver";
-$ENV{"LD_LIBRARY_PATH"}= ("$test_dir/lib" .
- (defined($ENV{"LD_LIBRARY_PATH"}) ?
- ":" . $ENV{"LD_LIBRARY_PATH"} : ""));
-#
-# Run the test suite
-#
-if ($opt_stage <= 5 && !$opt_no_test && !$opt_no_mysqltest)
-{
- my $force= "";
- if (!$opt_one_error)
- {
- $force= "--force"; # default
- }
- log_timestamp();
- system("mkdir $bench_tmpdir") if (! -d $bench_tmpdir);
- safe_cd("${test_dir}/mysql-test");
- check_system("./mysql-test-run $force --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --manager-port=$manager_port --no-manager --sleep=10", "tests were successful");
- # 'mysql-test-run' writes its own final message for log evaluation.
-}
-
-#
-# Start the server if we are going to run any of the benchmarks
-#
-if (!$opt_no_test && !$opt_no_benchmark)
-{
- my $extra;
- safe_cd($test_dir);
- log_system("./bin/mysqladmin $mysqladmin_args -S $mysql_unix_port -s shutdown") || info("There was no mysqld running\n");
- sleep(2);
- log_system("rm -f ./data/mysql/*");
- check_system("scripts/mysql_install_db --no-defaults --skip-locking","https://order");
- $extra="";
- if ($opt_bdb)
- {
- $extra.=" --bdb_cache_size=16M --bdb_max_lock=60000"
- }
- if ($opt_innodb)
- {
- $extra.=" --innodb_data_file_path=ibdata1:100M:autoextend";
- }
- safe_system("./bin/mysqld --no-defaults --basedir . --datadir ./data --skip-locking $extra >> $log 2>&1 &");
- sleep(2);
-}
-
-#
-# Compile and install the required Perl modules
-#
-if ($opt_stage <= 7 && $opt_perl_files && !$opt_no_perl && !$opt_no_test &&
- !$opt_no_benchmark)
-{
- log_timestamp();
- safe_cd($test_dir);
- rm_all("perl");
- safe_system("mkdir perl");
- $ENV{'IN_MYSQL_DISTRIBUTION'}=1;
- $ENV{'MYSQL_BUILD'}=$test_dir;
-
- foreach $module (split(/,/,$opt_perl_files))
- {
- my $options;
- safe_cd("$test_dir/perl");
- if ($opt_debug)
- {
- safe_system("gunzip < $pwd/$module | tar xvf -");
- }
- else
- {
- safe_system("gunzip < $pwd/$module | tar xf -");
- }
- $module =~ m|([^/]+)\.tar\.gz|;
- $module = $1;
- safe_cd($module);
- $options="";
- $options= "--mysql-install --noprompt --mysql-incdir=$test_dir/include --mysql-libdir=$test_dir/lib -nomsql-install -nomsql1-install --mysql-test-db=test $opt_dbd_options" if ($module =~ /Msql-Mysql/);
- $options.= " PREFIX=$pwd/$host INSTALLPRIVLIB=$pwd/$host/perl5 INSTALLSCRIPT=$pwd/$host/bin INSTALLSITELIB=$pwd/$host/perl5/site_perl INSTALLBIN=$pwd/$host/bin INSTALLMAN1DIR=$pwd/$host/man INSTALLMAN3DIR=$pwd/$host/man/man3" if ($opt_local_perl);
- $options.= " $opt_perl_options" if (defined($opt_perl_options));
- safe_system($opt_static_perl ? "perl Makefile.PL -static $options" : "perl Makefile.PL $options");
- safe_system("$make ; $sur $make install");
- }
-}
-
-#
-# Run crash-me test
-#
-if ($opt_stage <= 8 && !$opt_no_test && !$opt_no_crash_me)
-{
- log_timestamp();
- safe_cd("$test_dir/sql-bench");
- log_system("rm -f limits/mysql.cfg");
- safe_system("perl ./crash-me --force --batch-mode $connect_option");
-}
-
-#
-# Run sql-bench Benchmarks
-#
-if ($opt_stage <= 9 && !$opt_no_test && !$opt_no_benchmark)
-{
- log_timestamp();
- safe_cd("$test_dir/sql-bench");
- log_system("rm -f output/*");
- $tmp= $opt_fast_benchmark ? "--fast --user root --small-test" : "";
- check_system("perl ./run-all-tests --log --die-on-errors $connect_option $tmp","RUN-mysql");
- # Run additional fast test with dynamic-row tables
- check_system("perl ./run-all-tests --log --suffix=\"_dynamic_rows\" --die-on-errors $connect_option --fast --user=root --small-test --create-options=\"row_format=dynamic\"","RUN-mysql");
- if ($opt_innodb)
- {
- check_system("perl ./run-all-tests --log --suffix=\"_innodb\" --die-on-errors $connect_option $tmp --create-options=\"type=innodb\"","RUN-mysql");
- }
- if ($opt_bdb)
- {
- check_system("perl ./run-all-tests --log --suffix=\"_bdb\" --die-on-errors $connect_option $tmp --create-options=\"type=bdb\"","RUN-mysql");
- }
-}
-
-rm_all($bench_tmpdir);
-rm_all("$opt_tmp") if ($new_opt_tmp);
-
-log_system("$pwd/$host/bin/mysqladmin $mysqladmin_args -S $mysql_unix_port shutdown");
-print LOG "ok\n";
-close LOG;
-print "$host: ok\n";
-
-exit 0;
-
-
-sub usage
-{
-print <<EOF;
-$0 version 1.6
-
-$0 takes the following options:
-
---bdb
-Compile with support for Berkeley DB tables
-
---config-env <environment for configure>
-To set up the environment, like 'CC=cc CXX=gcc CXXFLAGS=-O3'
-
---config-extra-env <environment for configure>
-Additional flags for environment (not CC or CXX). Should be used when one
-wants Do-compile to propose proper CC and CXX flags.
-
---config-options <options>
-To add some extra options to configure (e.g. '--with-perl=yes')
-
---dbd-options <options>
-Options for Makefile.PL when configuring msql-mysql-modules.
-
---debug
-Print all shell commands on stdout.
-
---delete
-Delete the distribution file.
-
---distribution <distribution_file>
-Name of the MySQL source distribution file.
-
---enable-shared
-Compile with shared libraries
-
---fast-benchmark
-Run fast benchmark only to speed up testing
-
---help or --Information
-Show this help
-
---innodb
-Compile with support for Innodb tables
-
---libwrap
-Compile with TCP wrapper support
-
---local-perl
-Install Perl modules locally
-
---make-options <options>
-Options to make after configure. (Like 'CXXLD=gcc')
-
---no-crash-me
-Do not run the "crash-me" test
-
---no-strip
-Do not strip the binaries included in the binary distribution
-
---no-test
-Do not run any tests.
-
---no-benchmark
-Do not run the benchmark test (written in perl)
-
---no-mysqltest
-Do not run the mysql-test-run test (Same as 'make test')
-
---one-error
-Terminate the mysql-test-run test after the first difference (default: use '--force')
-
---perl-files=list of files
-Compile and install the given perl modules.
-
---perl-options <options>
-Build Perl modules with the additional options
-
---raid
-Compile with RAID support
-
---stage (1-6)
-Start script from some specific point.
-
---static-client
-Build statically linked client binaries
-
---static-perl
-Build statically linked Perl modules
-
---static-server
-Build statically linked server binary
-
---tcpip
-Connect to the server to be tested via TCP/IP instead of socket
-
---tmp <directory>
-Use a different temporary directory than /tmp
-
---use-old-distribution
-Do not clean up the build environment and extract a fresh source
-distribution, use an existing one instead.
-
---user <user_name>
-Mail 'user_name'\@mysql.com if something went wrong.
-If user is empty then no mail is sent.
-
---version-suffix suffix
-Set name suffix (e.g. 'com' or '-max') for a distribution
-
---with-debug
-Build binaries with debug information (implies "--no-strip")
-
---with-low-memory
-Use less memory when compiling.
-
---with-other-libc <path to libc>
-Link against libc and other standard libraries installed in the specified
-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;
-}
-
-sub abort
-{
- my($message)=@_;
- my($mail_header_file);
- print LOG "\n$message\n";
- print "$host: $message\n" if ($opt_debug);
- print LOG "Aborting\n";
- close LOG;
-
- if ($opt_user)
- {
- # Take the last 40 lines of the build log
- open(LOG, "$log") or die $!;
- my @log= <LOG>;
- close LOG;
- splice @log => 0, -40;
- my $mail_file="$opt_tmp/do-command.$$";
- open(TMP,">$mail_file") or die $!;
- print TMP "From: mysqldev\@$full_host_name\n";
- print TMP "To: $email\n";
- print TMP "Subject: $host($uname): $ver$opt_version_suffix compilation failed\n\n";
- print TMP @log;
- close TMP;
- system("$sendmail -t -f $email < $mail_file");
- unlink($mail_file);
- }
- exit 1;
-}
-
-sub info
-{
- my($message)=@_;
- print LOG "$message\n";
- print "$host: $message\n";
-}
-
-sub log_system
-{
- my($com)=@_;
- print "$host: $com\n" if ($opt_debug);
- if (defined($log))
- {
- print LOG "$com\n";
- system("$com >> $log 2>&1") &&
- print LOG ("Info: couldn't execute command, error: " . ($? / 256) ."\n");
- }
- else
- {
- system($com) && print "$host: Couldn't execute command, error: " . ($? / 256) ."\n";
- }
-}
-
-
-sub safe_system
-{
- my($com,$res)=@_;
- print LOG "$com\n";
- print "$host: $com\n" if ($opt_debug);
- my $result= system("$com >> $log 2>&1");
- abort("error: Couldn't execute command, error: " . ($? / 256)) unless $result == 0;
-
- return $result;
-}
-
-sub check_system
-{
- my($com,$res)=@_;
- my ($error,$found);
- print LOG "$com\n";
- print "$host: $com\n" if ($opt_debug);
- open (COM, "$com 2>&1 < /dev/null|") || abort("Got error " . ($?/256) ." opening pipe");
- $found=0;
- while (<COM>)
- {
- print LOG $_;
- if (index($_,$res) >= 0)
- {
- $found=1;
- last;
- }
- }
- close COM;
- abort("Couldn't find '$res' in the command result") if (!$found);
- print "$host: Command ok\n" if ($opt_debug);
-}
-
-sub safe_cd
-{
- my($dir)=@_;
- print LOG "cd $dir\n";
- print "$host: cd $dir\n" if ($opt_debug);
- chdir($dir) || abort("Can't cd to $dir");
-}
-
-sub which
-{
- my(@progs)=@_;
- foreach $prog (@progs)
- {
- chomp($found=`which $prog | head -n 1`);
- if ($? == 0 && $found ne "" && index($found," ") == -1)
- {
- $found =~ s|/+|/|g; # Make nicer output
- return $found;
- }
- }
- return undef();
-}
-
-sub find
-{
- my (@progs)=@_;
- foreach $prog (@progs)
- {
- return $prog if (-x $prog);
- }
- return undef();
-}
-
-#
-# Remove recursively all from a directory
-# This is needed because problems with NFS and open files
-#
-
-sub rm_all
-{
- my(@rm_files)=@_;
- my($dir,$current_dir,@files,@dirs,$removed);
- $current_dir = `pwd`; chomp($current_dir);
-
- foreach $dir (@rm_files)
- {
- if (-d $dir)
- {
- chdir($dir) || abort("Can't cd to $dir");
- print "$host: Removing from $dir\n" if ($opt_debug);
- while (<* .*>)
- {
- next if ($_ eq "." x (length($_)));
- if (-d $_)
- {
-# die "Can't remove directory that starts with ." if ($_ =~ /^\./ && $_ ne ".libs"); # Safety
- push (@dirs,$_);
- }
- else
- {
- push (@files,$_);
- }
- }
- if ($#files >= 0)
- {
- $removed= unlink @files;
- print "rm_all : removed $removed files in $current_dir/$dir\n" if ($opt_debug);
- abort("Can't remove all $#files+1 from $current_dir/$dir, just $removed") if $removed != $#files+1;
- }
- foreach $dir (@dirs)
- {
- rm_all($dir);
- }
- chdir($current_dir) || abort("Can't cd to $current_dir");
- log_system("rmdir $dir");
- }
- else
- {
- system("rm -f $dir") && abort("Can't remove file $dir");
- }
- }
-}
-
-sub kill_all
-{
- my ($pattern) = @_;
- my ($USER,$BSD,$LINUX, $pscmd, $user, $os, $pid);
- $user=$ENV{'USER'};
- $os=defined($ENV{'OS'}) ? $ENV{'OS'} : "unknown";
- $BSD = -f '/vmunix' || $os eq "SunOS4" || $^O eq 'darwin';
- $LINUX = $^O eq 'linux';
- $pscmd = $BSD ? "/bin/ps -auxww" : $LINUX ? "/bin/ps axuw" : "/bin/ps -ef";
-
- if (!open(PS, "$pscmd|"))
- {
- print "Warning: Can't run $pscmd: $!\n";
- exit;
- }
-
- # Catch any errors with eval. A bad pattern, for instance.
- process:
- while ($cand = <PS>)
- {
- chop($cand);
- ($pid_user, $pid) = split(' ', $cand);
- next if $pid eq $$;
- next process if (! ($cand =~ $pattern) || $pid_user ne $user);
- print LOG "Killing $_\n";
- &killpid($pid);
- }
-}
-
-sub killpid
-{
- local($pid) = @_;
- kill 15, $pid;
- for (1..5)
- {
- sleep 2;
- return if kill(0, $pid) == 0;
- }
- kill 9, $pid;
- for (1..5) {
- sleep 2;
- return if kill(0, $pid) == 0;
- }
- print LOG "$pid will not die!\n";
-}
-
-#
-# return the current date as a string (YYYY-MM-DD HH:MM:SS)
-#
-sub log_timestamp
-{
- my @ta=localtime(time());
- print LOG sprintf("%4d-%02d-%02d %02d:%02d:%02d\n",
- $ta[5]+1900, $ta[4]+1, $ta[3], $ta[2], $ta[1], $ta[0]);
-
-}
diff --git a/Build-tools/Do-create-perl-rpms b/Build-tools/Do-create-perl-rpms
deleted file mode 100755
index 2aa71740b58..00000000000
--- a/Build-tools/Do-create-perl-rpms
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/bash
-
-
-PM_FILES='Data-Dumper Data-ShowTable DBI Msql-Mysql-modules'
-FILE_EXT='tar.gz'
-ARCH=`uname -m | perl -p -e 's/^i[0-9]86$/i386/'`
-
-# directories
-[ -d /usr/src/redhat ] && RPM_SRC=/usr/src/redhat
-[ -d /usr/src/packages ] && RPM_SRC=/usr/src/packages
-SRC_DIR=/home/matt/work/pm_rpm/tarballs # pristine tarballs
-DEST_DIR=${RPM_SRC}/SOURCES # RPM SOURCES (building area)
-RPM_DEPOSIT=/var/tmp/ftp/RPMS # RPM production deposit
-SRPM_DEPOSIT=/var/tmp/ftp/SRPMS # SRPM production deposit
-
-# keyword replacement for SPEC templates
-REPLACE_KEY='REPLACE_VERSION'
-
-# paths to beloved programs
-NEWEST=/home/matt/work/build_pm_rpms/newest
-REPLACE=/usr/local/bin/replace
-
-
-#++
-# Copy the source tarballs up to staging area for RPM building.
-#--
-cd $SRC_DIR
-for i in $PM_FILES
-do
- echo Copying $i...
- cp ${SRC_DIR}/`$NEWEST -s $SRC_DIR -b $i -t $FILE_EXT` $DEST_DIR
-done
-
-
-#++
-# Do keyword replacements on the SPEC templates, and build RPMS
-#--
-cd ${RPM_SRC}/SPECS
-for i in $PM_FILES
-do
- cat ${i}.spec.template | $REPLACE $REPLACE_KEY `$NEWEST -s $DEST_DIR -b $i -t $FILE_EXT -v` > ${i}.spec
- rpm -ba ${i}.spec
- rm ${i}.spec
-done
-
-
-#++
-# Copy new RPMS and SRPMS to production deposit
-#--
-cd $RPM_SRC
-
-# kludge code
-PM_FILES=`echo $PM_FILES | $REPLACE Msql-Mysql-modules DBD-Mysql`
-tmpv=`$NEWEST -s $DEST_DIR -b Msql-Mysql-modules -t $FILE_EXT -v`
-mv SOURCES/Msql-Mysql-modules-${tmpv}.${FILE_EXT} SOURCES/DBD-Mysql-${tmpv}.${FILE_EXT}
-
-
-for i in $PM_FILES
-do
- cp RPMS/${ARCH}/${i}-`$NEWEST -s $DEST_DIR -b $i -t $FILE_EXT -v`-1.${ARCH}.rpm $RPM_DEPOSIT
- cp SRPMS/${i}-`$NEWEST -s $DEST_DIR -b $i -t $FILE_EXT -v`-1.src.rpm $SRPM_DEPOSIT
- rm SOURCES/`$NEWEST -s $DEST_DIR -b $i -t $FILE_EXT`
-done
-
diff --git a/Build-tools/Do-linux-build b/Build-tools/Do-linux-build
deleted file mode 100755
index 44a9ad05fa2..00000000000
--- a/Build-tools/Do-linux-build
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /bin/sh
-
-set -e -x
-
-# Only use the "--with-other-libc" parameter, if another libc actually
-# exists, since this will also force static linking, which does not work
-# together with OpenSSL
-OTHER_LIBC_DIR=/usr/local/mysql-glibc
-OTHER_LIBC=""
-if [ -d OTHER_LIBC_DIR ] ; then
- OTHER_LIBC="--with-other-libc=$OTHER_LIBC_DIR"
-fi
-
-BUILD/compile-pentium-max $OTHER_LIBC \
- --with-comment="Official MySQL Binary" \
- --prefix=/usr/local/mysql --with-extra-charset=complex \
- --enable-thread-safe-client --enable-local-infile \
- --with-server-suffix=-max
-nm -n sql/mysqld | gzip -9 -v 2>&1 > sql/mysqld.sym.gz
-scripts/make_binary_distribution
-make dist
-Build-tools/Do-rpm --local
-BUILD/compile-pentium --with-other-libc=$OTHER_LIBC_DIR \
- --with-comment="Official MySQL Binary" \
- --prefix=/usr/local/mysql --with-extra-charset=complex \
- --enable-thread-safe-client --enable-local-infile
-nm -n sql/mysqld | gzip -9 -v 2>&1 > sql/mysqld.sym.gz
-scripts/make_binary_distribution
diff --git a/Build-tools/Do-local-patch-file b/Build-tools/Do-local-patch-file
deleted file mode 100755
index 708d06966d3..00000000000
--- a/Build-tools/Do-local-patch-file
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-# make a patch file of a mysql distribution
-# takes as argument the previous version
-
-case $# in
-0) echo Usage: $0 previous_version; exit 1;;
-esac
-
-PVER=$1;
-VER=`grep SERVER_VERSION include/mysql_version.h | cut -d'"' -f2`
-NEW="mysql-$VER.tar.gz"
-OLD="mysql-$PVER.tar.gz"
-RESULT="mysql-$PVER-$VER.patch.gz"
-PATCH_DIR=/my/data/tcxwww/html/Downloads/Patches
-RESULT_DIR=/my/data/tcxwww/html/Downloads/MySQL-3.22
-
-if test ! -f $NEW
-then
- echo "$NEW doesn't exist";
- exit 1;
-fi
-
-if test ! -f $RESULT_DIR/$OLD
-then
- echo "$RESULT_DIR/$OLD doesn't exist";
- exit 1;
-fi
-
-mkdir patch
-cd patch
-gtar xfz ../$NEW
-gtar xfz $RESULT_DIR/$OLD
-cd mysql-$PVER
-diff --context --new-file --recursive . ../mysql-$VER | gzip -9 > ../../$RESULT
-cd ../..
-/bin/rm -rf patch
-
diff --git a/Build-tools/Do-patch-file b/Build-tools/Do-patch-file
deleted file mode 100755
index 7e6d4c493d8..00000000000
--- a/Build-tools/Do-patch-file
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-# make a patch file of a mysql distribution
-# takes as argument the previous version
-
-case $# in
-0) echo Usage: $0 previous_version; exit 1;;
-esac
-
-PVER=$1;
-VER=`grep SERVER_VERSION /my/tmp/BUILD/include/mysql_version.h | cut -d'"' -f2`
-NEWDIR="binary"
-NEW="mysql-$VER.tar.gz"
-OLD="mysql-$PVER.tar.gz"
-RESULT="mysql-$PVER-$VER.patch.gz"
-PATCH_DIR=/my/web/Downloads-live/Patches
-RESULT_DIR=/my/web/Downloads-live/MySQL-4.0
-RESULT_DIR_MAX=/my/web/Downloads-live/MySQL-Max-4.0
-
-if test ! -f $NEWDIR/$NEW
-then
- echo "$NEWDIR/$NEW doesn't exist";
- exit 1;
-fi
-
-if test ! -f $RESULT_DIR/$OLD
-then
- echo "$RESULT_DIR/$OLD doesn't exist";
- exit 1;
-fi
-
-mkdir patch
-cd patch
-gtar xfz ../$NEWDIR/$NEW
-gtar xfz $RESULT_DIR/$OLD
-cd mysql-$PVER
-diff --unified --new-file --recursive . ../mysql-$VER | gzip -9 > ../../$RESULT
-cd ../..
-/bin/rm -rf patch
-chmod a+r,o-w $RESULT binary/*
-mv $RESULT $PATCH_DIR
-cp binary/mysqlcom-* binary/mysql*win* /net/web/home/production/data/nweb/customer/Downloads
-rm binary/mysqlcom-*
-mv binary/*Max* binary/*-max* $RESULT_DIR_MAX
-cp binary/* $RESULT_DIR
diff --git a/Build-tools/Do-pkg b/Build-tools/Do-pkg
deleted file mode 100755
index 04d7ba021e5..00000000000
--- a/Build-tools/Do-pkg
+++ /dev/null
@@ -1,313 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Do-pkg - convert a binary distribution into a Mac OS X PKG and put it
-# inside a Disk Image (.dmg). Additionally, add a separate package,
-# including the required Startup Item to automatically start MySQL on
-# bootup.
-#
-# 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 binary distribution (*.tar.gz) in the directory
-# `hostname` of the current directory
-# - the extracted and compiled source tree should be located in the
-# `hostname` directory, too
-#
-# Use the "--help" option for more info!
-#
-# written by Lenz Grimmer <lenz@mysql.com>
-#
-
-use Cwd;
-use File::Basename;
-use File::Copy;
-use Getopt::Long;
-Getopt::Long::Configure ("bundling");
-use Sys::Hostname;
-
-$opt_dry_run= undef;
-$opt_help= undef;
-$opt_log= undef;
-$opt_mail= "";
-$opt_skip_dmg= undef;
-$opt_skip_si= undef;
-$opt_suffix= undef;
-$opt_verbose= undef;
-$opt_version= undef;
-
-GetOptions(
- "dry-run",
- "help|h",
- "log|l:s",
- "mail|m=s",
- "skip-dmg|skip-disk-image|s",
- "skip-si|skip-startup-item",
- "suffix=s",
- "verbose|v",
- "version=s",
-) || &print_help;
-
-# Include helper functions
-$PWD= cwd();
-$LOGGER= "$PWD/logger.pm";
-if (-f "$LOGGER")
-{
- do "$LOGGER";
-}
-else
-{
- die "ERROR: $LOGGER cannot be found!\n";
-}
-
-$PM= "/Developer/Applications/PackageMaker.app/Contents/MacOS/PackageMaker";
-# Try another location on 10.3.3
-unless (-e "$PM")
-{
- $PM= "/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker";
-}
-
-$TMP= $ENV{TMPDIR};
-$TMP eq "" ? $TMP= $TMP . "/PKGBUILD.$$": $TMP= "/tmp/PKGBUILD.$$";
-$PKGROOT= "$TMP/PMROOT";
-$PKGDEST= "$TMP/PKG";
-$RESOURCE_DIR= "$TMP/Resources";
-$SUFFIX= $opt_suffix;
-$VERSION= $opt_version;
-($MAJOR, $MINOR, $RELEASE)= split(/\./, $VERSION);
-$NAME= "mysql$SUFFIX-$VERSION";
-$HOST= hostname();
-$ID= getpwuid($>);
-$HOST=~ /^([^.-]*)/;
-$HOST= $1;
-$LOGFILE= "$PWD/Logs/$HOST-$MAJOR.$MINOR$SUFFIX.log";
-$BUILDDIR= "$PWD/$HOST";
-$SRCBASEDIR= <$BUILDDIR/mysql*-$VERSION>;
-$SUPFILEDIR= <$SRCBASEDIR/support-files/MacOSX>;
-$TAR= <$BUILDDIR/$NAME-apple-darwin*-powerpc*.tar.gz>;
-$TAR =~ /.*\/$NAME(.*)\.tar\.gz$/;
-$ARCH= $1;
-$NAME= $NAME . $ARCH;
-$INFO= <$SUPFILEDIR/Info.plist>;
-$DESC= <$SUPFILEDIR/Description.plist>;
-$SI_INFO= <$SUPFILEDIR/StartupItem.Info.plist>;
-$SI_DESC= <$SUPFILEDIR/StartupItem.Description.plist>;
-$SI_PARAMS= <$SUPFILEDIR/StartupParameters.plist>;
-$SI_POST= <$SUPFILEDIR/StartupItem.postinstall>;
-$SI_NAME= "MySQLStartupItem";
-$SI_SCRIPT= <$SUPFILEDIR/MySQL>;
-@RESOURCES= qw/ ReadMe.txt postinstall preinstall /;
-@LICENSES= ("$SRCBASEDIR/COPYING","$SRCBASEDIR/MySQLEULA.txt");
-
-&print_help("") if ($opt_help || !$opt_suffix || !$opt_version);
-
-#
-# Override predefined Log file name
-#
-if (defined $opt_log)
-{
- if ($opt_log ne "")
- {
- if ($opt_log =~ /^\/.*/)
- {
- $LOGFILE= $opt_log;
- }
- else
- {
- $LOGFILE= $PWD . "/" . $opt_log;
- }
- }
-}
-
-# Creating the UFS disk image requires root privileges
-die("You must be root to run this script!") if ($ID ne "root" && !$opt_dry_run);
-
-@files= ($TAR, $INFO, $DESC);
-@files= (@files, $SI_INFO, $SI_DESC, $SI_POST, $SI_SCRIPT) unless $opt_skip_si;
-foreach $file (@files)
-{
- &abort("Unable to find $file!") unless (-f "$file");
-}
-
-# Remove old temporary build directories first
-&logger("Cleaning up temporary build directories");
-&run_command("rm -rf $TMP", "Could not clean up $TMP!");
-&logger("Creating temp directories");
-foreach $dir ($TMP, $PKGROOT, $PKGDEST, $RESOURCE_DIR)
-{
- if (!-d $dir)
- {
- &logger("Creating directory $dir!");
- unless($opt_dry_run)
- {
- mkdir($dir) or &abort("Could not make directory $dir!");
- }
- }
-}
-
-foreach $resfile (@RESOURCES)
-{
- &logger("Copying $SUPFILEDIR/$resfile to $RESOURCE_DIR");
- unless($opt_dry_run)
- {
- copy("$SUPFILEDIR/$resfile", "$RESOURCE_DIR") or
- &abort("Error while copying $SUPFILEDIR/$resfile to $RESOURCE_DIR");
- }
-}
-
-# Search for license file
-foreach $license (@LICENSES)
-{
- if (-f "$license")
- {
- &logger("Copy $license to $RESOURCE_DIR/License.txt");
- unless($opt_dry_run)
- {
- copy("$license", "$RESOURCE_DIR/License.txt") or
- &abort("Error while copying $license to $RESOURCE_DIR");
- }
- }
-}
-
-&abort("Could not find a license file!")
-unless (-f "$RESOURCE_DIR/License.txt");
-
-# Extract the binary tarball and create the "mysql" symlink
-&logger("Extracting $TAR to $PKGROOT");
-&run_command("gnutar zxf $TAR -C $PKGROOT", "Unable to extract $TAR!");
-&run_command("cd $PKGROOT ; ln -s mysql* ./mysql", "Unable to create symlink!");
-&run_command("chown -R root:wheel $PKGROOT/*", "Cannot chown $PKGROOT!");
-
-# Now build the PGK using PackageMaker
-# The "|| true" is a nasty hack to work around a problem with Package Maker
-# returning a non-zero value, even though the package was created correctly
-&logger("Running PackageMaker");
-$command= "$PM -build -p $PKGDEST/$NAME.pkg -f $PKGROOT -r $RESOURCE_DIR -i $INFO -d $DESC || true";
-&run_command($command, "Error while building package $NAME.pkg!");
-
-#
-# Build the Startup Item PKG
-#
-unless ($opt_skip_si)
-{
- &logger("Cleaning up $PKGROOT");
- &run_command("rm -rf $PKGROOT/*", "Unable to clean up $PKGROOT!");
- &logger("Cleaning up $RESOURCE_DIR");
- &run_command("rm -rf $RESOURCE_DIR/*", "Unable to clean up $RESOURCE_DIR!");
-
- &logger("Installing MySQL StartupItem files into $PKGROOT/MySQL");
- unless($opt_dry_run)
- {
- mkdir("$PKGROOT/MySQL") or &abort("Error creating $PKGROOT/MySQL");
- copy("$SI_SCRIPT", "$PKGROOT/MySQL/")
- or &abort("Error copying $SI_SCRIPT!");
- chmod(0755, "$PKGROOT/MySQL/" . basename("$SI_SCRIPT"));
- copy("$SI_PARAMS", "$PKGROOT/MySQL/")
- or &abort("Error copying $SI_PARAMS!");
- chmod(0644, "$PKGROOT/MySQL/" . basename("$SI_PARAMS"));
- &run_command("chown -R root:wheel $PKGROOT/*", "Cannot chown $PKGROOT!");
- copy("$SI_POST", "$RESOURCE_DIR/postinstall")
- or &abort("Error copying $SI_POST!");
- chmod(0644, "$RESOURCE_DIR/postinstall");
- }
-
- &logger("Building $SI_NAME.pkg using PackageMaker");
- $command= "$PM -build -p $PKGDEST/$SI_NAME.pkg -f $PKGROOT -r $RESOURCE_DIR -i $SI_INFO -d $SI_DESC || true";
- &run_command($command, "Error while building package $SI_NAME.pkg!");
-}
-
-if ($opt_skip_dmg)
-{
- &logger("SUCCESS: Package $PKGDEST/$NAME.pkg created");
- exit 0;
-}
-
-# Determine the size of the Disk image to be created and add a 5% safety
-# margin for filesystem overhead
-&logger("Determining required disk image size for $PKGDEST");
-unless($opt_dry_run)
-{
- chomp($_= `du -sk $PKGDEST`);
- @size= split();
- $size= int($size[0]+($size[0]*0.05));
- &logger("Disk image size: $size KB");
-}
-
-unless($opt_dry_run)
-{
- &abort("Zero bytes? Something is wrong here!") if ($size == 0);
-}
-
-# Now create and mount the disk image
-$TMPNAME= $NAME . ".tmp";
-&logger("Creating temporary Disk image $TMPNAME.dmg");
-$command= "hdiutil create $TMPNAME -size ${size}k -ov -fs UFS -volname $NAME";
-&run_command($command, "Unable to create disk image $TMPNAME.dmg!");
-&logger("Attaching Disk image $TMPNAME.dmg");
-&run_command("hdid $TMPNAME.dmg", "Unable to attach $TMPNAME.dmg!");
-
-# Install the PKG into the .dmg
-chomp($mountpoint=`mount | grep "\/Volumes\/$NAME" | cut -f3 -d" "`) if (!$opt_dry_run);
-&logger("Copying $PKGDEST/$NAME.pkg to Disk image /Volumes/$NAME");
-&run_command("ditto $PKGDEST /Volumes/$NAME", "Could not copy $PKGDEST to /Volumes/$NAME!");
-&run_command("ditto $SUPFILEDIR/ReadMe.txt /Volumes/$NAME", "Could not copy $SPFILEDIR/ReadMe.txt to /Volumes/$NAME!");
-chomp($mountpoint=`mount | grep "\/Volumes\/$NAME" | cut -f1 -d" "`) if (!$opt_dry_run);
-&abort("/Volumes/$NAME not attached!") if (!$mountpoint && !$opt_dry_run);
-&logger("Unmounting $mountpoint");
-&run_command("hdiutil detach $mountpoint", "Unable to detach $mountpoint");
-&run_command("rm -f $NAME.dmg", "Unable to remove $NAME.dmg!") if (-f "$NAME.dmg");
-&logger("Compressing disk image");
-$command= "hdiutil convert $TMPNAME.dmg -format UDZO -imagekey zlib-level=9 -o $NAME.dmg";
-&run_command($command, "Unable to compress disk image!");
-
-# Final cleanups
-&logger("Removing $TMPNAME.dmg");
-&run_command("rm -f $TMPNAME.dmg", "Unable to remove $TMPNAME.dmg!");
-&logger("Removing $TMP");
-&run_command("rm -rf $TMP", "Unable to remove $TMP!");
-
-&logger("SUCCESS: $NAME.dmg 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-pkg <options> --suffix=<suffix> --version=<version>
-
-Creates a Mac OS X installation package (PKG) and stores it inside
-a Disk Image (.dmg) file. You need to create a binary distribution
-tarball with scripts/make_binary_distribution first!
-
-NOTE: You need to run this script with root privileges (required
- to create the disk image)
-
-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
--s, --skip-disk-image, --skip-dmg Just build the PKGs, don't put it into a
- disk image afterwards
- --skip-startup-item, --skip-si Skip the creation of the StartupItem PKG
- --suffix=<suffix> The package suffix
- (e.g. "-standard" or "-pro)
- --version=<version> The MySQL version number
- (e.g. 4.0.11-gamma)
--v, --verbose Verbose execution
-
-EOF
- exit 1;
-}
diff --git a/Build-tools/Do-rpm b/Build-tools/Do-rpm
deleted file mode 100755
index 23602debfb1..00000000000
--- a/Build-tools/Do-rpm
+++ /dev/null
@@ -1,332 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Do-rpm - compile RPM packages out of a source tarball and move the
-# resulting RPM packages into the current directory.
-#
-# The script currently assumes the following environment:
-#
-# - there must be a source distribution (mysql-<version>.tar.gz)
-# in the current directory
-# - You must provide the name of an RPM spec file (mysql-<version>.spec)
-# as the argument
-#
-# Use the "--help" option for more info!
-#
-# written by Lenz Grimmer <lenz@mysql.com>
-#
-
-use Cwd;
-use File::Basename;
-use File::Copy;
-use Getopt::Long;
-Getopt::Long::Configure ("bundling");
-use Sys::Hostname;
-
-$opt_cc= undef;
-$opt_cflags= undef;
-$opt_clean= undef;
-$opt_cxx= undef;
-$opt_cxxflags= undef;
-$opt_dry_run= undef;
-$opt_help= undef;
-$opt_log= undef;
-$opt_mail= "";
-$opt_verbose= undef;
-$opt_susebuild= undef;
-$opt_susebuildroot= undef;
-$opt_suserpms= undef;
-
-# Set a dummy version until we know the correct one
-$VERSION= "x.y.z";
-$MAJOR= $MINOR= $RELEASE= 0;
-$SUFFIX= "";
-
-GetOptions(
- "cc=s",
- "cflags=s",
- "clean|c",
- "cxx=s",
- "cxxflags=s",
- "dry-run|t",
- "help|h",
- "log|l:s",
- "mail|m=s",
- "susebuild|s",
- "susebuildroot|r=s",
- "suserpms=s",
- "verbose|v",
-) || &print_help;
-
-&print_help("") if ($opt_help);
-
-defined($SPECFILE=$ARGV[0]) || print_help("Please provide the spec file name!");
-
-&print_help("Please define the location of the RPM repository!") if $opt_susebuild && !($opt_suserpms || $ENV{BUILD_RPMS});
-
-unless ($opt_susebuildroot)
-{
- if ($ENV{BUILD_ROOT})
- {
- $opt_susebuildroot= $ENV{BUILD_ROOT};
- }
- else
- {
- $opt_susebuildroot="/var/tmp/build-root";
- }
-}
-
-# Include helper functions
-$PWD= cwd();
-$LOGGER= "$PWD/logger.pm";
-if (-f "$LOGGER")
-{
- do "$LOGGER";
-}
-else
-{
- die "ERROR: $LOGGER cannot be found!\n";
-}
-
-$subject= "RPM build for $SPECFILE failed" if $opt_mail;
-
-# Open the spec file and extract the version number
-open(SPEC, $SPECFILE) or die "Unable to open \"$ARGV[0]\": $!";
-@spec= <SPEC>;
-close SPEC;
-
-foreach (@spec)
-{
- if (m/^%define\s*mysql_version\s*(.*)/)
- {
- $VERSION= $1;
- $VERSION_SRPM=$VERSION;
- ($MAJOR, $MINOR, $RELEASE)= split(/\./,$VERSION);
- $VERSION_SRPM= $MAJOR . '.' . $MINOR . '.' . $RELEASE;
- $VERSION_SRPM =~ s/\-\w+$//;
- ($RELEASE, $SUFFIX)= split(/\-/,$RELEASE);
- $SUFFIX= "-" . $SUFFIX if ($SUFFIX);
- }
-}
-
-$HOST= hostname();
-$HOST=~ /^([^.-]*)/;
-$HOST= $1;
-$LOGFILE= "$PWD/Logs/Do-rpm-$HOST-$MAJOR.$MINOR.log";
-&logger("Logging to $LOGFILE");
-
-#
-# Override predefined Log file name
-#
-if (defined $opt_log)
-{
- if ($opt_log ne "")
- {
- if ($opt_log =~ /^\/.*/)
- {
- $LOGFILE= $opt_log;
- }
- else
- {
- $LOGFILE= $PWD . "/" . $opt_log;
- }
- }
-}
-
-&logger("Using spec file for version: $VERSION");
-
-if ($opt_susebuild)
-{
- &susebuild;
-}
-else
-{
- &rpmbuild;
-}
-
-&logger("SUCCESS: RPM files successfully created.") unless ($opt_dry_run);
-exit 0;
-
-#
-# Build using SUSE's "build" script
-#
-sub susebuild
-{
- $BUILD= "/usr/bin/build";
- ( -x $BUILD) ? &logger("$BUILD found, proceeding.") : &abort("$BUILD could not be found!");
- $command= "sudo $BUILD --clean";
- $command.= " --root=$opt_susebuildroot";
- $command.= " --rpms=$opt_suserpms" if $opt_suserpms;
- $command.= " $SPECFILE";
- &logger("Building RPMs using SUSE build.");
- &run_command($command, "Error while running the SUSE RPM build!");
-
- #
- # Move the resulting RPMs into the pwd - we can use broad globs here
- # as the build root has been cleaned up before so there should not be
- # any residuals from previous build runs
- #
- $command= "cp";
- $command.= " -v " if ($opt_verbose);
- $command.= " $opt_susebuildroot/usr/src/packages/SRPMS/MySQL*.src.rpm $PWD";
- &logger("Copying source RPM to current dir.");
- &run_command($command, "Error moving source RPM!");
-
- $command= "cp";
- $command.= " -v " if ($opt_verbose);
- $command.= " $opt_susebuildroot/usr/src/packages/RPMS/*/MySQL*.rpm $PWD";
- &logger("Copying binary RPMs to current dir.");
- &run_command($command, "Error moving binary RPMs!");
-}
-
-#
-# Build using "plain" RPM
-#
-sub rpmbuild
-{
-
- #
- # Newer RPM versions ship with a separate tool "rpmbuild" to build RPMs
- #
- if (-x "/usr/bin/rpmbuild")
- {
- $RPM= "/usr/bin/rpmbuild";
- $RMSOURCE= "--rmsource --rmspec";
- }
- else
- {
- $RPM= "/bin/rpm";
- $RMSOURCE= "--rmspec";
- }
-
- if ($RPM)
- {
- &logger("Found rpm binary: $RPM");
- }
- else
- {
- &abort("Unable to find RPM binary!");
- }
-
- #
- # determine some RPM settings for this host
- #
- chomp($RPMARCH= `$RPM --eval "%{_arch}" 2> /dev/null`);
- chomp($RPMDIR= `$RPM --eval "%{_rpmdir}" 2> /dev/null`);
- chomp($SOURCEDIR= `$RPM --eval "%{_sourcedir}" 2> /dev/null`);
- chomp($SPECDIR= `$RPM --eval "%{_specdir}" 2> /dev/null`);
- chomp($SRCRPMDIR= `$RPM --eval "%{_srcrpmdir}" 2> /dev/null`);
-
- $SOURCEFILE= glob "mysql*-$VERSION.tar.gz";
-
- &logger("Starting RPM build of MySQL-$VERSION on $HOST");
-
- foreach $file ($SOURCEFILE, $SPECFILE)
- {
- &abort("Unable to find $file!") unless (-f "$file");
- }
-
- #
- # Install source and spec file
- #
- &logger("Copying SOURCE and SPEC file to build directories.");
- unless ($opt_dry_run)
- {
- copy($SOURCEFILE, $SOURCEDIR)
- or &abort("Unable to copy $SOURCEFILE to $SOURCEDIR!");
- copy($SPECFILE, $SPECDIR)
- or &abort("Unable to copy $SPECFILE to $SPECDIR!");
- }
-
- #
- # Set environment variables - these are being used in the
- # official MySQL RPM spec file
- #
- &logger("Setting special build environment variables")
- if ($opt_cc) or ($opt_cflags) or ($opt_cxxflags) or ($opt_cxx);
- $ENV{MYSQL_BUILD_CC}=$opt_cc if ($opt_cc);
- $ENV{MYSQL_BUILD_CFLAGS}=$opt_cflags if ($opt_cflags);
- $ENV{MYSQL_BUILD_CXXFLAGS}=$opt_cxxflags if ($opt_cxxflags);
- $ENV{MYSQL_BUILD_CXX}=$opt_cxx if ($opt_cxx);
-
- #
- # Build the RPMs
- #
- $command= "$RPM";
- $command.= " -v" if ($opt_verbose);
- $command.= " -ba";
- $command.= " --clean $RMSOURCE" if $opt_clean;
- $command.= " $SPECDIR/";
- $command.= basename($SPECFILE);
- &logger("Building RPM.");
- &run_command($command, "Error while building the RPMs!");
-
- #
- # Move the resulting RPMs into the pwd
- #
- $command= "mv";
- $command.= " -v " if ($opt_verbose);
- $command.= " $SRCRPMDIR/MySQL*$VERSION_SRPM*.src.rpm $PWD";
- &logger("Moving source RPM to current dir.");
- &run_command($command, "Error moving source RPM!");
-
- $command= "mv";
- $command.= " -v " if ($opt_verbose);
- $command.= " $RPMDIR/$RPMARCH/MySQL*$VERSION_SRPM*.$RPMARCH.rpm $PWD";
- &logger("Moving binary RPMs to current dir.");
- &run_command($command, "Error moving binary RPMs!");
-}
-
-sub print_help
-{
- my $message= $_[0];
- if ($message ne "")
- {
- print "\n";
- print "ERROR: $message\n\n";
- }
- print <<EOF;
-
-Usage: Do-rpm [options] <specfile>
-
-Creates a binary RPM package out of a MySQL source distribution and moves
-the resulting RPMs into the current directory. <specfile> is the MySQL RPM
-spec file to use (e.g. mysql-4.0.17.spec).
-
-This script expects to find the required MySQL source distribution
-(mysql-<version>.tar.gz) in the current directory.
-
-Options:
-
- --cc=<compiler> Use <compiler> to compile C code
- --ccflags=<flags> Use special C compiler flags
- --cxx=<compiler> Use <compiler> to compile C++ code
- --cxxflags=<flags> Use special C++ compiler flags
--c, --clean Clean up after the build
--t, --dry-run Dry run without executing
--h, --help Print this help
--l, --log[=<filename>] Write a log file [to <filename>]
--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
--s, --susebuild Use the SUSE "build" script instead of RPM
- directly (requires sudo privileges to run the
- /usr/bin/build command)
--r, --susebuildroot=<root> Use <root> as the build root directory for the
- SUSE "build" (default is /var/tmp/build-root
- or defined by the BUILD_ROOT environment
- variable)
---suserpms=<path> Path to the SUSE RPM repository to build up
- the build root (mandatory option when using
- --susebuild and the BUILD_RPMS environment
- variable is not set.)
--v, --verbose Verbose execution
-
-Example:
-
- Do-rpm -cv mysql-4.0.17.spec
-
-EOF
- exit 1;
-}
diff --git a/Build-tools/Do-win-build b/Build-tools/Do-win-build
deleted file mode 100755
index a78b091a737..00000000000
--- a/Build-tools/Do-win-build
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/perl -w
-
-use Getopt::Long;
-
-$opt_help=0;
-$opt_tarball=$opt_builddir=$opt_suffix="";
-
-GetOptions(
- "help",
- "tarball=s",
- "builddir=s",
- "suffix=s"
-) || print_help();
-
-print_help() if ($opt_help);
-
-chomp($MSDEV=`which msdev`);
-
-if (!$opt_builddir) {
- $opt_builddir = "/cygdrive/c/mysql-win-build";
-}
-
-$opt_tarball =~ /(mysql[^\/]*)-win-src\.tar/;
-$mysqlver=$1;
-$basedir = "$opt_builddir/$mysqlver";
-$scriptdir = `pwd`;
-
-# Make sure build dir exists
-mkdir($opt_builddir);
-# Clean out any previous build
-system("rm -rf $basedir");
-
-# Unpack in the script directory
-system("tar -zxvf $opt_tarball");
-# Move to the build directory
-system("mv $mysqlver $opt_builddir");
-
-if (!chdir($basedir))
-{
- print "Do-win-build error: Could not change to $basedir";
- exit 1;
-}
-
-# Check whether this is a classic edition build
-if ($opt_suffix =~ /-classic/)
-{
- # Blank out ha_innodb.cpp
- chmod 0644, 'sql/ha_innodb.cpp';
- open(OUT, '>', 'sql/ha_innodb.cpp');
- close(OUT);
-
- # Remove HAVE_INNOBASE_DB from the requisite project files
- for $dspfile ('libmysqld/libmysqld.dsp', 'mysqldemb/mysqldemb.dsp', 'mysqlserver/mysqlserver.dsp', 'sql/mysqld.dsp', 'sql/mysqldmax.dsp')
- {
- open(IN, '<', $dspfile);
- open(OUT, '>', "$dspfile.tmp");
- while (readline IN)
- {
- s/\D \"HAVE_INNOBASE_DB\" //g;
- print OUT $_;
- }
- close(IN);
- close(OUT);
- unlink $dspfile;
- rename "$dspfile.tmp", $dspfile;
- }
-}
-
-# Perform compilation
-system("\"$MSDEV\" mysql.dsw /MAKE \"ALL\" /OUT $mysqlver-build.log");
-
-# Package binary
-system("./scripts/make_win_binary_distribution --suffix=$opt_suffix");
-
-# Copy log back to script directory
-system("cp $mysqlver$suffix-build.log $scriptdir");
-
-# Move binary package to script directory
-system("mv *.zip $scriptdir");
-
-#
-# Print a help text message
-#
-sub print_help
-{
- print <<EOF;
-Usage: Do-compile-win [options] source-tarball
-
-Unpacks a Windows source distribution on the local machine and
-compiles it using VC++ 6.0.
-
-This script is intended for Cygwin Perl. You must have a working
-MSDEV.EXE in your path for compilation, as well as the following:
-
-sed
-tar (GNU tar)
-which
-
-
-Options:
-
---help
-Print this text.
-
---builddir=<dir>
-Set the Cygwin path to build under; the tarball will actually
-be moved to <builddir>/mysql-<version>/tarball and extracted under
-<builddir>/mysql-<version>/build.
-Default: /cygdrive/c/mysql-win-build
-
---suffix=<suffix>
-If specified, the resulting binary will have the specified suffix
-in its name. If the suffix is "-classic", the project files will
-be stripped of all occurrences of HAVE_INNOBASE_DB and
-ha_innodb.cpp will be blanked out, to create classic edition
-server binaries.
-
---tarball=<file>
-Windows source tarball to use for this build. Must be of the form
-mysql[com]-x.x.x-win-src.tar.gz (REQUIRED)
-
-EOF
- exit 1;
-}
diff --git a/Build-tools/cvs-sanity-check b/Build-tools/cvs-sanity-check
deleted file mode 100755
index b3d57e98033..00000000000
--- a/Build-tools/cvs-sanity-check
+++ /dev/null
@@ -1,15 +0,0 @@
-#! /bin/sh
-
-CVSROOT=my@work.mysql.com:/home/cvs
-CVS_RSH=ssh
-TMPDIR=/tmp
-cd $TMPDIR
-[ -d mysql ] && rm -rf mysql
-CVSROOT=$CVSROOT CVS_RSH=$CVS_RSH cvs -z 9 co mysql && cd mysql && \
- chmod u+w -R * && BUILD/compile-pentium
-if test $? = 0
-then
-cd $TMPDIR && rm -rf mysql
-fi
-
-
diff --git a/Build-tools/logger.pm b/Build-tools/logger.pm
deleted file mode 100644
index d3fb4c9db2f..00000000000
--- a/Build-tools/logger.pm
+++ /dev/null
@@ -1,112 +0,0 @@
-# Helper functions
-
-#
-# Create a log entry
-#
-sub logger
-{
- my $message= $_[0];
- my $cmnd= $_[1];
-
- print $message . "\n" if !$opt_quiet && !$opt_verbose && !$cmnd;
- print timestamp() . " " . $message . "\n" if $opt_verbose;
- if (defined $opt_log && !$opt_dry_run)
- {
- open LOG, ">>$LOGFILE" or die "Can't open logfile $LOGFILE!";
- print LOG timestamp() . " " . $message . "\n";
- close LOG;
- }
-}
-
-#
-# run_command(<command>,<error message>)
-# Execute the given command or die with the respective error message
-# Just print out the command when doing a dry run
-#
-sub run_command
-{
- my $command= $_[0];
- my $errormsg= $_[1];
- if ($opt_dry_run)
- {
- print "$command\n";
- }
- else
- {
- &logger($command, 1);
-
- $command.= ';' unless ($command =~ m/^.*;$/);
-
- $command =~ s/;/ >> $LOGFILE 2>&1;/g if defined $opt_log;
- $command =~ s/;/ > \/dev\/null;/g if (!$opt_verbose && !$opt_log);
- system($command) == 0 or &abort("$errormsg\n");
- }
-}
-
-#
-# abort(<message>)
-# Exit with giving out the given error message or by sending
-# it via email to the given mail address (including a log file snippet,
-# if available)
-#
-sub abort
-{
- my $message= $_[0];
- my $messagefile;
- my $subject= "Bootstrap of $REPO failed" if $opt_mail;
- $message= "ERROR: " . $message;
- &logger($message);
-
- if ($opt_mail && !$opt_dry_run)
- {
- $messagefile= "/tmp/message.$$";
- open(TMP,">$messagefile");
- print TMP "$message\n\n";
- close TMP;
- if (defined $opt_log)
- {
- system("tail -n 40 $LOGFILE >> $messagefile");
- }
- system("mail -s \"$subject\" $opt_mail < $messagefile");
- unlink($messagefile);
- }
-
- exit 1;
-}
-
-# Create a time stamp for logging purposes
-sub timestamp
-{
- return &ymd() . " " . &hms();
-}
-
-#
-# return the current time as a string (HH:MM:SS)
-#
-sub hms
-{
- my @ta= localtime(time());
- my $h= $ta[2];
- $h= "0" . "$h" if ($h <= 9);
- my $m= $ta[1];
- $m= "0" . "$m" if ($m <= 9);
- my $s= $ta[0];
- $s="0" . "$s" if ($s <= 9);
-
- return "$h:$m:$s";
-}
-
-#
-# return the current date as a string (YYYYMMDD)
-#
-sub ymd
-{
- my @ta=localtime(time());
- my $d=$ta[3];
- $d="0" . "$d" if ($d <= 9);
- my $m=$ta[4]+1;
- $m="0" . "$m" if ($m <= 9);
- my $y=1900+$ta[5];
-
- return "$y$m$d";
-}
diff --git a/Build-tools/my_md5sum b/Build-tools/my_md5sum
deleted file mode 100755
index f4ac2f7d674..00000000000
--- a/Build-tools/my_md5sum
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/perl
-#
-# my_md5sum
-#
-# Script to clone the 'md5sum' command found on modern systems, since that
-# command is not always found on all systems.
-#
-# Use the "--help" option for more info!
-#
-# Written by Matt Wagner <matt@mysql.com>
-#
-use strict;
-
-#
-# Use local perl libraries first. 'unshift' adds to the front of @INC
-# The local perl library dir hidden is $HOME/.perllibs on each build host
-#
-BEGIN
-{
- my $homedir= $ENV{HOME};
- unshift (@INC, "$homedir/.perllibs");
-}
-
-use Digest::MD5;
-use Getopt::Long;
-
-my $VER= "1.3";
-my $EXIT= 0;
-
-#
-# Strip the leading path info off the program name ($0). We want 'my_md5sum'
-# not './my_md5sum'.
-#
-$0=~ s/^.*\/(.+)$/$1/;
-
-my ($opt_check, $opt_help)= undef;
-
-GetOptions(
- "check|c" => \$opt_check,
- "help|h" => \$opt_help,
- ) || usage();
-
-#
-# Put all the [file1 file2 file3 ...]'s into an array
-#
-my @files = @ARGV;
-
-#
-# Give the "--help" text if:
-# - "--help|-h" was specified
-# - The number of files given as arguments is nil
-# - The "--check|-c" option is used with more than one [file] argument
-#
-usage() if $opt_help || $#files == -1 || ($opt_check && $#files > 0);
-
-# If "--check|-c", then go into checking
-if ($opt_check)
-{
- open (CHECKFILE, $files[0]) or die "$files[0]: $!";
-
- while (<CHECKFILE>)
- {
- #
- # Goto the next line in the file if it does not match a typical
- # digest line like:
- #
- # f1007efa2c72daa693981ec764cdeaca Bootstrap
- #
- next if $_!~ m/^([a-z0-9]{32})\s+(.+)$/;
-
- # Collect the trappings from the above regex
- my $checksum= $1;
- my $checkfile= $2;
-
- # Generate a fresh MD5 for the file in question
- my $digest= &mkmd5($checkfile);
-
- # Check the fresh MD5 against what is recorded in the file
- # Print an error message if they don't match, else print OK
- print "$checkfile: FAILED\n" if $digest ne $checksum;
- print "$checkfile: OK\n" if $digest eq $checksum;
-
- # Set the exit() status to non-zero if FAILED
- $EXIT= 1 if $digest ne $checksum;
- }
-}
-# Else generate the MD5 digest to STDOUT
-else
-{
- foreach my $file (@files)
- {
- my $digest= &mkmd5($file);
-
- print "$digest $file\n";
- }
-}
-
-exit($EXIT);
-
-
-#
-# This routine generates the MD5 digest of a file
-#
-sub mkmd5
-{
- my $file= shift;
-
- open (FILE, $file) or die "$file: $!";
- binmode(FILE);
-
- my $digest= Digest::MD5->new->addfile(*FILE)->hexdigest;
-
- close FILE;
-
- return $digest;
-}
-
-#
-# Print the help text
-#
-sub usage
-{
- print <<EOF;
-
-$0 version $VER by Matt Wagner <matt\@mysql.com>
-
-Usage:
-$0 [-c [file]] | [file1...]
-Generates or checks MD5 message digests.
-
-Options:
--c, --check Check message digests (default is generate)
--h, --help Display this text and exit
-
-The input for -c should be the list of message digests and file names that is
-printed on STDOUT by this program when it generates digests.
-
-EOF
-
- exit(0);
-}
diff --git a/Build-tools/mysql-copyright b/Build-tools/mysql-copyright
deleted file mode 100755
index 81d6d761498..00000000000
--- a/Build-tools/mysql-copyright
+++ /dev/null
@@ -1,372 +0,0 @@
-#!/usr/bin/perl -wi
-
-# Untar a MySQL distribution, change the copyright texts,
-# pack it up again to a given directory
-
-$VER="1.5";
-
-use Cwd;
-use File::Basename;
-use File::Copy;
-use Getopt::Long;
-
-$opt_help = 0;
-$opt_version = 0;
-$opt_verbose = 0;
-$opt_target = "mysql-copyright-target-";
-$opt_target .= `date +%d%m%y-%H%M%S`;
-chop $opt_target;
-
-GetOptions("help","version","target=s", "verbose") || error();
-
-# fix the directory prefix for target dir
-
-$WD= cwd();
-my $win_flag = 0;
-$opt_target= $WD . '/' . $opt_target;
-
-&main();
-
-####
-#### main
-####
-
-sub main
-{
- my $REG_BASENAME = '[a-z0-9A-Z\-\_\+]+';
- my $REG_VERSION = '[0-9\.\-]+[a-z]?[0-9\.\-]+?(.alpha|.beta|.gamma|pre\d|[0-9\.\-a-z])?';
- my $target;
-
- if ($opt_version)
- {
- print "$0 version $VER by Jani Tolonen\n";
- exit(0);
- }
- usage() if ($opt_help);
- print error() if ($#ARGV == -1);
-
- `mkdir -p $opt_target`;
- $pec= $? >> 8;
- die "Couldn't make the target directory!\n" if ($pec);
-
- for ($i=0; $ARGV[$i]; $i++)
- {
- my $distfile= $ARGV[$i];
- $win_flag = ($distfile =~ /win-src/) ? 1 : 0;
- my $dir;
-
- $dir= "mysql-copyright-";
- $dir.= `date +%d%m%y-%H%M%S`;
- chop $dir;
-
- if (!(mkdir "$dir", 0700))
- {
- die "Couldn't make directory $dir!";
- }
- if (!(chdir "$dir"))
- {
- abort($dir, "Couldn't cd to $dir!");
- }
- # if the distfile is mysql-3.22.22-alpha.tar.gz, then
- # distname is 'mysql-3.22.22-alpha' and suffix '.tar.gz'
- if ($distfile =~
- m/^($REG_BASENAME)([\-\_])($REG_VERSION){1}([\.\-\+]\w+\-\w+)?[\.\-\+](.*)?$/xo)
- {
- $distname= $1.$2.$3;
- $suffix= $5;
- $fileext = $6;
- $newdistname= $1."com".$2.$3;
- $newdistname .= $suffix if $win_flag;
- }
- # find out the extract path (should be same as distname!)
- chomp($destdir= `tar ztf ../$distfile | head -1`);
- # remove slash from the end
- $destdir= substr($destdir, 0, -1);
-
- if ("$destdir" ne "$distname")
- {
- print "Destination directory (the directory that will be extracted\n";
- print "from the original distribution file) differs from the\n";
- print "distribution name! Are you sure you want to continue? (Y/N) [N]:";
- $ans= my_read(1);
- abort($dir, "Aborted!") if ("$ans" ne "Y" && "$ans" ne "y");
- }
-
- # everything should be ok, continue with extracting..
- `tar xfz ../$distfile`;
- $pec= $? >> 8;
- abort($dir, "Extracting from tar failed!\n") if ($pec);
-
- # remove the 'PUBLIC' file from distribution and copy MySQLEULA.txt
- # on the toplevel of the directory instead. file 'PUBLIC' shouldn't
- # exist in the new mysql distributions, but let's be sure..
- unlink("$destdir/PUBLIC", "$destdir/README");
- unlink("$destdir/COPYING", "$destdir/EXCEPTIONS-CLIENT");
- copy("$WD/Docs/MySQLEULA.txt", "$destdir");
-
- # remove subdirectories 'bdb', 'cmd-line-utils/readline'
- my @extra_fat= ('bdb', 'cmd-line-utils/readline');
-
- foreach my $fat (@extra_fat)
- {
- &trim_the_fat($fat);
- }
-
- # fix file copyrights
- &fix_usage_copyright();
- &add_copyright();
-
- # fix LICENSE tag in include/mysql_version.h
- &fix_mysql_version();
-
- # apply "autotools" - must be last to ensure proper timestamps
- &run_autotools();
-
- # rename the directory with new distribution name
- chdir("$WD/$dir");
- print "renaming $destdir $newdistname\n" if $opt_verbose;
- rename($destdir, $newdistname);
-
- # tar the new distribution
- `tar cz -f $WD/$newdistname.tar.gz $newdistname`;
- $pec= $? >> 8;
- abort($dir, "Making new tar archive failed!\n") if ($pec);
-
- # remove temporary directory
- chdir($WD) or print "$! Unable to move up one dir\n";
- my $cwd = getcwd();
- print "current dir is $cwd\n" if $opt_verbose ;
- if (-e $dir) {
- print "Trying to delete $dir\n" if $opt_verbose;
- if ( system("rm -rf $dir")){
- print "$! Unable to delete $dir!\n";
- }
- }
- }
- exit(0);
-}
-
-####
-#### This function will s/GPL/Commercial/ in include/mysql_version.h for the
-#### LICENSE tag.
-####
-sub fix_mysql_version
-{
- my $cwd= getcwd();
- chdir("$destdir");
- my $header_file= (-f 'include/mysql_version.h.in')? 'include/mysql_version.h.in' : 'include/mysql_version.h';
-
- open(MYSQL_VERSION,"<$header_file") or die "Unable to open $header_file for read: $!\n";
- undef $/;
- my $mysql_version= <MYSQL_VERSION>;
- close(MYSQL_VERSION);
-
- $mysql_version=~ s/\#define LICENSE[\s\t]+GPL/#define LICENSE Commercial/;
-
- open(MYSQL_VERSION,">$header_file") or die "Unable to open $header_file for write: $!\n";
- print MYSQL_VERSION $mysql_version;
- close(MYSQL_VERSION);
- chdir("$cwd");
-}
-
-####
-#### This function will remove unwanted parts of a src tree for the mysqlcom
-#### distributions.
-####
-
-sub trim_the_fat
-{
- my $the_fat= shift;
- my $cwd= getcwd();
-
- chdir("$destdir");
- if ( -d "${the_fat}" )
- {
- system("rm -rf ${the_fat}");
- if (!$win_flag)
- {
- open(CONFIG_IN,"<configure.in") or die "Unable to open configure.in for read: $!\n";
- undef $/;
- my $config_in= <CONFIG_IN>;
- close(CONFIG_IN);
-
- #
- # If $the_fat Makefile line closes the parenthesis, then
- # replace that line with just the closing parenthesis.
- #
- if ($config_in=~ m|${the_fat}/Makefile\)\n?|)
- {
- $config_in=~ s|${the_fat}/Makefile(\)\n?)|$1|;
- }
- #
- # Else just delete the line
- #
- else
- {
- $config_in=~ s|${the_fat}/Makefile dnl\n?||;
- }
-
- open(CONFIG_IN,">configure.in") or die "Unable to open configure.in for write: $!\n";
- print CONFIG_IN $config_in;
- close(CONFIG_IN);
- }
- }
- chdir("$cwd");
-}
-
-
-####
-#### This function will run the autotools on the reduced source tree.
-####
-
-sub run_autotools
-{
- my $cwd= getcwd();
-
- if (!$win_flag)
- {
- chdir("$destdir");
- unlink ("configure") or die "Can't delete $destdir/configure: $!\n";
-
- # File "configure.in" has already been modified by "trim_the_fat()"
-
- # It must be ensured that the timestamps of the relevant files are really
- # ascending, for otherwise the Makefile may cause a re-run of these
- # autotools. Experience shows that deletion is the only safe way.
- unlink ("config.h.in") or die "Can't delete $destdir/config.h.in: $!\n";
- unlink ("aclocal.m4") or die "Can't delete $destdir/aclocal.m4: $!\n";
-
- # These sleep commands also ensure the ascending order.
- `aclocal && sleep 2 && autoheader && sleep 2 && automake && sleep 2 && autoconf`;
- die "'./configure' was not produced!" unless (-f "configure");
-
- if (-d "autom4te.cache") {
- print "Trying to delete autom4te.cache dir\n" if $opt_verbose;
- system("rm -rf autom4te.cache") or print "Unable to delete autom4te.cache dir: $!\n";
- }
-
- chdir("$cwd");
- }
-}
-
-
-####
-#### mysqld and MySQL client programs have a usage printed with --help.
-#### This usage includes a copyright, which needs to be modified
-####
-sub fix_usage_copyright
-{
- my $findlist = `find . -type f -name \"*.c*\"`;
- my @files = split("\n", $findlist);
- my $cwd = getcwd();
-
- foreach my $file (@files)
- {
- next if ! -f $file;
- print "processing file $file in cwd $cwd\n" if $opt_verbose;
- `replace "This is free software," "This is commercial software," "and you are welcome to modify and redistribute it under the GPL license" "please see the file MySQLEULA.txt for details" -- "$file"` ;
- }
-}
-
-####
-#### change the copyright text in the beginning of the files
-####
-
-sub add_copyright
-{
- my $findlist = `find . -type f -name "*"`;
- my @files = split("\n", $findlist);
- my $cwd = getcwd();
-
- foreach my $file (@files)
- {
- next if ! -f $file;
- next if -B $file;
- print "processing file $file in cwd $cwd\n" if $opt_verbose;
- `$WD/Build-tools/mysql-copyright-2 "$file"`;
- }
-}
-
-####
-#### read stdin
-####
-
-sub my_read
-{
- ($length)= @_; # Max allowed length for the string.
-
- $input= getc(STDIN);
- if($input eq "\n")
- {
- return "\n";
- }
- for($new_input= getc(STDIN); $new_input ne "\n" ;)
- {
- if(length($input) < $length)
- {
- $input.= $new_input;
- }
- $new_input= getc(STDIN);
- }
- return $input;
-}
-
-####
-#### abort
-####
-
-sub abort
-{
- my ($dir, $errstr)= @_;
- # remove newly made directory and it's contents
- print "$errstr\n";
- chdir "..";
- print "Removing directory $dir...\n";
- `rm -rf $dir`;
- exit(0);
-}
-
-####
-#### usage
-####
-
-sub usage
-{
- print <<EOF;
-$0 version $VER by Jani Tolonen
-
-Description: The program takes one or more MySQL distributions as an
-argument(s), extracts them, changes the copyright text in the
-distribution files and makes a new distribution with suffix "com" in
-the basename to directory mysql-copyright-target-DATE, where the
-command was issued. For example: mysql-3.23.18-beta.tar.gz ->
-mysqlcom-3.23.18-beta.tar.gz. DATE is of form DDMMYY-HHMMSS. The
-target directory can be changed with option
---target=... mysql-copyright consists of two perl programs, this one
-and another, mysql-copyright-2. Make sure the second part of the
-script is available to the main script.
-
-Usage:
-$0 [options] file1 [file2 file3...]
-
-Options:
---help Show this help and exit.
---target Target directory for new distribution files.
- '.' can be used for the current directory.
- (Default: $opt_target)
-EOF
- exit(0);
-}
-
-####
-#### error
-####
-
-sub error
-{
- if ($#ARGV == -1)
- {
- print "Too few arguments to $0!\n";
- }
- exit(1);
-}
diff --git a/Build-tools/mysql-copyright-2 b/Build-tools/mysql-copyright-2
deleted file mode 100755
index 2ea2e8ef441..00000000000
--- a/Build-tools/mysql-copyright-2
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/usr/bin/perl -i
-
-# Add the header to all given files
-# This program asumes that after the copyright there is a empty line
-#
-
-$opt_v= 0;
-require "getopts.pl";
-Getopts("v") || die "Aborted";
-
-@copyright=
-(
- "Copyright (C) 2000 MySQL AB & MySQL Finland AB",
- "",
- "This software is distributed with NO WARRANTY OF ANY KIND. No author or",
- "distributor accepts any responsibility for the consequences of using it, or",
- "for whether it serves any particular purpose or works at all, unless he or",
- "she says so in writing. Refer to the MySQLEULA.txt file for details.",
- "",
- "Every copy of this file must include a copy of the License, normally in a",
- "plain ASCII text file named MySQLEULA.txt. The License grants you the right to",
- "copy, modify and redistribute this file, but only under certain conditions",
- "described in the License. Among other things, the License requires that",
- "the copyright notice and this notice be preserved on all copies"
-);
-
-while (<>)
-{
- if (!$first++)
- {
- add_copyright($_);
- }
- if ($in_copyright)
- {
- $in_copyright=check_in_copyright($_);
- }
- print $_ if (!$in_copyright);
- if (eof)
- {
- $first=0; $in_copyright=1;
- }
-}
-
-exit 0;
-
-sub add_copyright
-{
- my ($line)=@_;
- my ($row);
-
- $in_copyright= $line =~ /copyright/i;
- $found_end_copyright=$skip_this_line=0;
-
- if (!($line =~ /Monty/ || $line =~ /MySQL AB/))
- {
- $in_copyright=0;
- print STDERR "File with unknown copyright ", $ARGV,"\n" if ($opt_v);
- return;
- }
- else
- {
- print STDERR "To be Changed: ", $ARGV, "\n" if ($opt_v);
- }
- if ($ARGV =~ /Makefile/ ||
- $ARGV =~ /makefile/)
- { # Makefile
- $start_copyright="# ";
- $line_copyright= "# ";
- $end_copyright= "";
- }
- elsif ($line =~ "^#!")
- { # Shell script
- $start_copyright="# ";
- $line_copyright= "# ";
- $end_copyright= "";
- $skip_this_line=1;
- print $line;
- while ($line=<>) # Copy all until new line or copyright
- {
- if ($line =~ /copyright/i)
- {
- last;
- }
- print $line;
- last if ($line =~ /^(\s|\n)*$/);
- }
- $in_copyright=1;
- }
- elsif ($ARGV =~ /\.c$/ ||
- $ARGV =~ /\.cc$/ ||
- $ARGV =~ /\.h$/ ||
- $ARGV =~ /\.cpp$/ ||
- $ARGV =~ /\.txt$/ ||
- $ARGV =~ /\.yy$/)
- {
- $start_copyright="/* ";
- $line_copyright= " ";
- $end_copyright= "*/";
- }
- elsif ($ARGV =~ /-x86\.s$/)
- {
- $start_copyright="# ";
- $line_copyright= "# ";
- $end_copyright= "";
- }
- elsif ($ARGV =~ /\.s$/)
- {
- $start_copyright="! ";
- $line_copyright= "! ";
- $end_copyright= "";
- }
- elsif ($ARGV =~ /\.asm$/)
- {
- $start_copyright="; ";
- $line_copyright= "; ";
- $end_copyright= "";
- }
- else # Unknown file
- {
- $in_copyright=0;
- print STDERR "Unknown file type ", $ARGV,"\n" if ($opt_v);
- return;
- }
- $data=\@copyright;
-
- for ($row=0 ; $row <= $#$data ; $row++)
- {
- print $row == 0 ? $start_copyright : $line_copyright;
- print $data->[$row];
- print $row != $#$data ? "\n" : $end_copyright . "\n";
- }
- print "\n";
- $end_copyright =~ /\s*([^\s]+)\s*(([^\s].*)|)$/; # Remove pre and post spaces
-}
-
-#
-# Return 1 if in copyright
-#
-
-sub check_in_copyright
-{
- my ($line)=@_;
- $line =~ /^(.*[^\s])(\s|\n|\r)*$/; # Remove end space and newline
- $line=$1;
- if (!$line)
- {
- $found_end_copyright=1 if (!length($end_copyright));
- return 1; # Skip empty lines
- }
- return 0 if ($found_end_copyright);
- if ($end_copyright)
- {
- if (index($line,$end_copyright) != -1)
- {
- $found_end_copyright=1;
- }
- return 1;
- }
- if ($line =~ /copyright/i || index($line . " ",$line_copyright) == 0)
- {
- return 1;
- }
- if ($skip_this_line)
- {
- $skip_this_line=0;
- return 1;
- }
- return 0; # Can't trust the empty copyright line yet
-}
diff --git a/Build-tools/newest b/Build-tools/newest
deleted file mode 100644
index 367c9bd1f1b..00000000000
--- a/Build-tools/newest
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/usr/bin/perl
-
-package NEWEST;
-
-use Getopt::Long;
-use File::Basename;
-
-my $src_dir;
-my $basename;
-my $type = "tar.gz";
-my $versions;
-my $help;
-my %KEEPER;
-
-
-GetOptions(
- "src_dir=s" => \$src_dir,
- "basename=s" => \$basename,
- "type=s" => \$type,
- "versions!" => \$versions,
- "help!" => \$help
- );
-
-if (!defined $src_dir || !defined $basename) {
- $help = 1;
-}
-
-if ($help) {
- &help();
- exit;
-}
-
-
-&extract_version(\$src_dir, \$basename, \$type, \%KEEPER);
-&print_max(\%KEEPER, \$type, \$versions, &find_max(\%KEEPER));
-
-
-
-sub extract_version {
- my $src_dir = shift;
- my $basename = shift;
- my $type = shift;
- my $KEEPER = shift;
-
- while (glob("$${src_dir}/$${basename}*")) {
- my $base = basename("$_",".$${type}");
- my @ver = split /-/, $base;
- my @nums = split /\./, $ver[$#ver];
-
- my $new;
- for (my $i=0; $i<$#nums+1; $i++) {
- $new =~ s/^([0-9]*)([a-zA-Z]*)$/$1/;
- $new .= 10000+$nums[$i];
- $new .= $2;
- }
- $KEEPER->{"$new"} = [$base,$ver[$#ver]];
- }
-
- return;
-}
-
-
-
-sub find_max {
- my $KEEPER = shift;
-
- return reverse sort (keys %$KEEPER);
-}
-
-
-
-sub print_max {
- my $KEEPER = shift;
- my $type = shift;
- my $versions = shift;
- my $max_key = shift;
-
- if ($${versions}) {
- print "$KEEPER->{$max_key}->[1]\n";
- }
- else {
- print "$KEEPER->{$max_key}->[0]" . ".$${type}\n";
- }
-
- return;
-}
-
-
-
-sub help {
-
- print qq("newest" finds the tarball in a given directory with the newest version number
-and returns it's filename. "newest" is meant to be embedded in UNIX shell
-scripts.
-
-Usage:
-
-newest -(src_dir | s) /path/to/dir/with/tarballs
- -(basename | b) BaseName (ex. BaseName-2.10.tar.gz)
- -(type | t) Type of file (default: tar.gz)
- -(versions | v) Print only version information
- -(help | h) Prints usage help
-
-Ex: \$ /opt/bin/newest -s /opt/incoming/pm_modules -b Data-Dumper
- Data-Dumper-2.101.tar.gz
-
-Both arguments, '-s' and '-b' are required; '-t' and '-v' are optional.
-
-);
-
- return;
-}
-
-
-
-