← Back to team overview

maria-developers team mailing list archive

bringing mysql-5.5 cmake goodies into MariaDB?

 

Hi,
I spend about some time (took about a day) trying to improve the current
state of windows build and packaging. Partly, I it was to improve my own
experience working on Windows (spoiled by MySQL5.5 :) with out-of-source
build, partly because I think the fact that the packaging (even zip)
requires specially prepared source on Unix or Cygwin (known as bootstrapping
in the old MySQL, gone in MySQL-5.5) , is not the way to go forward. It is
hard to explain it to our Windows  users that Cygwin might is required or
recommended,  die-hard windows people try to avoid it, and it is known to be
broken in recent Windows (Vista +) too...   So, the proposed patch would
eliminate every Cygwin dependency.

Those cmake goodies are not the full 5.5 cmake stuff (nothing Unix related,
no improvements for plugins, no improvements to avoid useless recompilation
in embedded or in libmysql etc.), but mainly Windows-related packaging plus
out-of-source build and test.

I have created a repo with my changes on Launchpad
https://code.launchpad.net/~maria-captains/maria/5.1-windows-packaging 


to configure the build (for releases) one would execute

 %  cmake . -DWITH_EMBEDDED_SERVER=1
  (all engines that should be compiled in are set to compile in by default,
I do not use embedded by default since the build is taking too long with it)

To build the ZIP package
%  devenv mysql.sln /build relwithdebinfo /project package

 This creates ./mariadb-<major>.<minor>.<patch>-win32.zip
  
To build MSI 
(assuming Wix 3.0 is installed from
http://wix.sourceforge.net/downloadv3.html )
 %  devenv mysql.sln /build relwithdebinfo
%  devenv mysql.sln /build relwithdebinfo /project MSI

the resulting msi is in 
win\cmake\ mariadb-<major>.<minor>.<patch>-win32.msi

This procedure resembles very closely the official MySQL5.5 release-type
builds  on Windows ( Jonathan blogged about it some time ago
http://www.perkin.org.uk/blog/2010/11/how-to-build-mysql-releases/ )

NSIS is probably broken. Frankly speaking  I do not know it at all, neither
I believe it would be  a good idea to learn, as it will disappear in 5.5 at
least. 
I appreciate comments on the idea.   Especially from Philip as QA, and from
Kristian as build automator ( should we decide to use this patch, some
things will have to change on Buildbot).


On the patch itself:
- Preventively (to avoid 5.5 merge errors), I created new files in different
places from where they live in MySQL 5.5 (e.g. not in cmake/* but in
win/cmake/* , not packaging/Wix/* but win/packaging/*).   I have done it as
bazaar cannot handle situations, where files are "retrospectively" added in
old releases. 
- I also had to fix Maria's mtr for out-of-source build.
- When merging with 5.5 most of this stuff (except MTR changes) should
disappear, it is already there 

I can create worklog about this ,and do other procedurally required stuff.
I'm not sure in which MariaDB version it should be applied , if we decide to
apply it at all.

Thanks,
Vladislav