← Back to team overview

maria-developers team mailing list archive

Minor glitch when doing out of tree cmake build

 

Hi,

I like to build MariaDB in a separate directory to keep the source tree clean.

This works for me as follows:

  cd path/to/maria/source
  mkdir mybuildir
  cd mybuildir
  cmake .. "-DWITH_PLUGIN_ARIA=1 (etc...)"
  make
  mysql-test/mysql-test-run --suite oqgraph (etc)

However when I want to use this build to create a non-MTR database as follows:

  MARIA_HOME=path/to/maria/source
  MARIA_BUILD=path/to/maria/source/mybuilddir
  sh $MARIA_BUILD/scripts/mysql_install_db \
                --srcdir=$MARIA_HOME \
                --builddir=$MARIA_BUILD \
                --datadir=path/to/data --defaults-file=...

This fails with

  FATAL ERROR: Could not find maria/source/sql/share/english/errmsg.sys

Different combinations of --srcdir and --builddir produce similar but
different errors.

I tracked down where the files are set to to lines 263..303 of
scripts/mysql_install_db.sh

>From my reading of the help:

  --builddir=path      If using --srcdir with out-of-directory builds, you
                       will need to set this to the location of the build
                       directory where built files reside.
  --srcdir=path        The path to the MariaDB source directory.  This option
                       uses the compiled binaries and support files within the
                       source tree, useful for if you don't want to install
                       MariaDB yet and just want to create the system tables.

I was able to make the install script work with the following patch

=== modified file 'scripts/mysql_install_db.sh'
--- scripts/mysql_install_db.sh	2014-02-03 14:22:39 +0000
+++ scripts/mysql_install_db.sh	2014-02-08 11:52:52 +0000
@@ -267,7 +267,7 @@
   bindir="$basedir/client"
   extra_bindir="$basedir/extra"
   mysqld="$basedir/sql/mysqld"
-  langdir="$srcdir/sql/share/english"
+  langdir="$basedir/sql/share/english"
   pkgdatadir="$srcdir/scripts"
   scriptdir="$srcdir/scripts"
 elif test -n "$basedir"


What I dont know enough about, is whether this breaks other scenarios?

any advice appreciated,

thanks,
Andrew


-- 


http://blog.oldcomputerjunk.net
https://launchpad.net/~andymc73
https://github.com/andymc73
Twitter: @pastcompute
GPG: http://www.andrewmcdonnell.net/gpg.html



Follow ups