[Maria-developers] 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
Hi Ian, as an aside, the use of numeric latches is deprecated, we retained it to assist users migrating from OQGraph v2, because the intention is to implement additional graph algorithms over time. Great job with the examples in the wiki, its something I always wanted to see but never have the time to do! Regardless, your query should still have worked as you expected... thanks, --Andrew On 08/02/14 22:31, Andrew McDonnell wrote:
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
Sorry, replied to wrong message O__o On 08/02/14 23:53, Andrew McDonnell wrote:
Hi Ian,
as an aside, the use of numeric latches is deprecated, we retained it to assist users migrating from OQGraph v2, because the intention is to implement additional graph algorithms over time. Great job with the examples in the wiki, its something I always wanted to see but never have the time to do!
Regardless, your query should still have worked as you expected...
thanks, --Andrew
On 08/02/14 22:31, Andrew McDonnell wrote:
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
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Hi, Andrew! On Feb 08, Andrew McDonnell wrote:
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 ... === 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"
Seems reasonable. errmsg.sys is a generated file, it's located in the builddir, not in the srcdir. I'll fix this, thanks. Regards, Sergei
participants (2)
-
Andrew McDonnell
-
Sergei Golubchik