( Installing source tree

Info Catalog ( configure options ( Installing source ( Compilation problems
 2.8.3 Installing from the Development Source Tree
 *Caution*: You should read this section only if you are interested in
 helping us test our new code. If you just want to get MySQL up and
 running on your system, you should use a standard release distribution
 (either a binary or source distribution will do).
 To obtain our most recent development source tree, use these
   1. Download BitKeeper from
      `'.  You will need
      Bitkeeper 3.0 or newer to access our repository.
   2. Follow the instructions to install it.
   3. After BitKeeper has been installed, first go to the directory you
      want to work from, and then use one of the following commands to
      clone the MySQL version branch of your choice:
      To clone the old 3.23 branch, use this command:
           shell> bk clone bk:// mysql-3.23
      To clone the 4.0 stable (production) branch, use this command:
           shell> bk clone bk:// mysql-4.0
      To clone the 4.1 stable (production) branch, use this command:
           shell> bk clone bk:// mysql-4.1
      To clone the 5.0 development branch, use this command:
           shell> bk clone bk:// mysql-5.0
      In the preceding examples, the source tree will be set up in the
      `mysql-3.23/', `mysql-4.0/', `mysql-4.1/', or `mysql-5.0/'
      subdirectory of your current directory.
      If you are behind a firewall and can only initiate HTTP
      connections, you can also use BitKeeper via HTTP.
      If you are required to use a proxy server, set the environment
      variable `http_proxy' to point to your proxy:
           shell> export http_proxy="http://your.proxy.server:8080/"
      Replace the `bk://' with `http://' when doing a clone. Example:
           shell> bk clone mysql-4.1
      The initial download of the source tree may take a while,
      depending on the speed of your connection. Please be patient.
   4. You will need GNU `make', `autoconf' 2.58 (or newer), `automake'
      1.8, `libtool' 1.5, and `m4' to run the next set of commands. Even
      though many operating systems come with their own implementation
      of `make', chances are high that the compilation will fail with
      strange error messages. Therefore, it is highly recommended that
      you use GNU `make' (sometimes named `gmake') instead.
      Fortunately, a large number of operating systems ship with the GNU
      toolchain preinstalled or supply installable packages of these. In
      any case, they can also be downloaded from the following locations:
         * `'
         * `'
         * `'
         * `'
         * `'
      If you are trying to configure MySQL 4.1 or later, you will also
      need GNU `bison' 1.75 or later.  Older versions of `bison' may
      report this error:
           sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded
      Note: The maximum table size is not actually exceeded; the error
      is caused by bugs in older versions of `bison'.
      Versions of MySQL before version 4.1 may also compile with other
      `yacc' implementations (for example, BSD `yacc' 91.7.30). For later
      versions, GNU `bison' is required.
      The following example shows the typical commands required to
      configure a source tree. The first `cd' command changes location
      into the top-level directory of the tree; replace `mysql-4.0' with
      the appropriate directory name.
           shell> cd mysql-4.0
           shell> bk -r edit
           shell> aclocal; autoheader; autoconf; automake
           shell> (cd innobase; aclocal; autoheader; autoconf; automake)
           shell> (cd bdb/dist; sh s_all)
           shell> ./configure  # Add your favorite options here
      The command lines that change directory into the `innobase' and
      `bdb/dist' directories are used to configure the `InnoDB' and
      Berkeley DB (`BDB') storage engines.  You can omit these command
      lines if you to not require `InnoDB' or `BDB' support.
      If you get some strange errors during this stage, verify that you
      really have `libtool' installed.
      A collection of our standard configuration scripts is located in
      the `BUILD/' subdirectory.  You may find it more convenient to use
      the `BUILD/compile-pentium-debug' script than the preceding set of
      shell commands. To compile on a different architecture, modify the
      script by removing flags that are Pentium-specific.
   5. When the build is done, run `make install'.  Be careful with this
      on a production machine; the command may overwrite your live
      release installation.  If you have another installation of MySQL,
      we recommend that you run `./configure' with different values for
      the `--prefix', `--with-tcp-port', and `--unix-socket-path' options
      than those used for your production server.
   6. Play hard with your new installation and try to make the new
      features crash.  Start by running `make test'.   MySQL test
   7. If you have gotten to the `make' stage and the distribution does
      not compile, please report it in our bugs database at
      `'.  If you have installed the latest
      versions of the required GNU tools, and they crash trying to
      process our configuration files, please report that also.
      However, if you execute `aclocal' and get a `command not found'
      error or a similar problem, do not report it.  Instead, make sure
      that all the necessary tools are installed and that your `PATH'
      variable is set correctly so that your shell can find them.
   8. After the initial `bk clone' operation to obtain the source tree,
      you should run `bk pull' periodically to get updates.
   9. You can examine the change history for the tree with all the diffs
      by using `bk revtool'.  If you see some funny diffs or code that
      you have a question about, do not hesitate to send email to the
      MySQL `internals' mailing list.   Mailing-list.  Also, if
      you think you have a better idea on how to do something, send an
      email message to the same address with a patch.  `bk diffs' will
      produce a patch for you after you have made changes to the source.
      If you do not have the time to code your idea, just send a
  10. BitKeeper has a nice help utility that you can access via `bk
  11. Please note that any commits (made via `bk ci' or `bk citool') will
      trigger the posting of a message with the changeset to our
      internals mailing list, as well as the usual
      submission with just the changeset comments.  Generally, you
      wouldn't need to use commit (since the public tree will not allow
      `bk push'), but rather use the `bk diffs' method described
 You can also browse changesets, comments, and source code online. For
 example, to browse this information for MySQL 4.1, go to
 The manual is in a separate tree that can be cloned with:
      shell> bk clone bk:// mysqldoc
 There are also public BitKeeper trees for MySQL Control Center and
 MyODBC. They can be cloned respectively as follows.
 To clone MySQL Control center, use this command:
      shell> bk clone mysqlcc
 To clone MyODBC, use this command:
      shell> bk clone myodbc3
 To clone Connector/NET, use this command:
      shell> bk clone connector-net
Info Catalog ( configure options ( Installing source ( Compilation problems
automatically generated byinfo2html