perkin.org.uk - How to build MySQL releases









Search Preview

How to build MySQL releases

perkin.org.uk
Jonathan Perkin about me · rss · twitter · github
.org.uk > perkin.org.uk

SEO audit: Content analysis

Language Error! No language localisation is found.
Title How to build MySQL releases
Text / HTML ratio 49 %
Frame Excellent! The website does not use iFrame solutions.
Flash Excellent! The website does not have any flash contents.
Keywords cloud » build packages SmartOS package MySQL Jan release Dec rem cmake Jun part builds OSX create Apr RPM binaries pkgsrc
Keywords consistency
Keyword Content Title Description Headings
» 52
build 15
packages 15
SmartOS 13
package 10
MySQL 10
Headings
H1 H2 H3 H4 H5 H6
2 4 2 0 0 0
Images We found 0 images on this web page.

SEO Keywords (Single)

Keyword Occurrence Density
» 52 2.60 %
build 15 0.75 %
packages 15 0.75 %
SmartOS 13 0.65 %
package 10 0.50 %
MySQL 10 0.50 %
Jan 9 0.45 %
release 8 0.40 %
Dec 8 0.40 %
rem 7 0.35 %
cmake 7 0.35 %
Jun 7 0.35 %
part 6 0.30 %
builds 6 0.30 %
OSX 6 0.30 %
create 6 0.30 %
Apr 5 0.25 %
RPM 5 0.25 %
binaries 5 0.25 %
pkgsrc 5 0.25 %

SEO Keywords (Two Word)

Keyword Occurrence Density
2013 » 18 0.90 %
2012 » 14 0.70 %
2011 » 11 0.55 %
in the 6 0.30 %
Jan 2013 6 0.30 %
Jun 2011 6 0.30 %
to be 5 0.25 %
on SmartOS 5 0.25 %
to build 5 0.25 %
Dec 2013 4 0.20 %
CPU part 4 0.20 %
» SmartOS 4 0.20 %
packages for 4 0.20 %
to create 4 0.20 %
we do 4 0.20 %
as we 4 0.20 %
8bit CPU 4 0.20 %
A nodejspowered 4 0.20 %
devenv MySqlsln 4 0.20 %
nodejspowered 8bit 4 0.20 %

SEO Keywords (Three Word)

Keyword Occurrence Density Possible Spam
Jun 2011 » 6 0.30 % No
Jan 2013 » 6 0.30 % No
as we do 4 0.20 % No
devenv MySqlsln build 4 0.20 % No
Dec 2013 » 4 0.20 % No
2013 » A 4 0.20 % No
» A nodejspowered 4 0.20 % No
nodejspowered 8bit CPU 4 0.20 % No
8bit CPU part 4 0.20 % No
A nodejspowered 8bit 4 0.20 % No
» pkgsrc on 4 0.20 % No
build RelWithDebInfo project 3 0.15 % No
pkgsrc on SmartOS 3 0.15 % No
Jan 2012 » 3 0.15 % No
package devenv MySqlsln 3 0.15 % No
» How to 3 0.15 % No
2013 » pkgsrc 3 0.15 % No
MySqlsln build RelWithDebInfo 3 0.15 % No
to build MySQL 3 0.15 % No
» Kickstart Oracle 2 0.10 % No

SEO Keywords (Four Word)

Keyword Occurrence Density Possible Spam
nodejspowered 8bit CPU part 4 0.20 % No
A nodejspowered 8bit CPU 4 0.20 % No
» A nodejspowered 8bit 4 0.20 % No
2013 » A nodejspowered 4 0.20 % No
Dec 2013 » A 4 0.20 % No
» pkgsrc on SmartOS 3 0.15 % No
MySqlsln build RelWithDebInfo project 3 0.15 % No
2013 » pkgsrc on 3 0.15 % No
devenv MySqlsln build RelWithDebInfo 3 0.15 % No
package devenv MySqlsln build 3 0.15 % No
Jun 2011 » Fix 2 0.10 % No
you will need to 2 0.10 % No
Jan 2012 » Kickstart 2 0.10 % No
exactly as we do 2 0.10 % No
» What's new in 2 0.10 % No
2013 » What's new 2 0.10 % No
2012 » Kickstart Oracle 2 0.10 % No
09 Jan 2012 » 2 0.10 % No
Assuming everything goes ok 2 0.10 % No
as we do These 2 0.10 % No

Internal links in - perkin.org.uk

about me
About Me
rss
Jonathan Perkin
Reducing RAM usage in pkgin
Reducing RAM usage in pkgin
Building packages at scale
Building packages at scale
A node.js-powered 8-bit CPU - part four
A node.js-powered 8-bit CPU - part four
A node.js-powered 8-bit CPU - part three
A node.js-powered 8-bit CPU - part three
A node.js-powered 8-bit CPU - part two
A node.js-powered 8-bit CPU - part two
A node.js-powered 8-bit CPU - part one
A node.js-powered 8-bit CPU - part one
MDB support for Go
MDB support for Go
Distributed chrooted pkgsrc bulk builds
Distributed chrooted pkgsrc bulk builds
pkgsrc on SmartOS - creating new packages
pkgsrc on SmartOS - creating new packages
Installing SVR4 packages on SmartOS
Installing SVR4 packages on SmartOS
SmartOS is Not GNU/Linux
SmartOS is Not GNU/Linux
SmartOS development preview dataset
SmartOS development preview dataset
pkgsrc on SmartOS - fixing broken builds
pkgsrc on SmartOS - fixing broken builds
pkgsrc on SmartOS - zone creation and basic builds
pkgsrc on SmartOS - zone creation and basic builds
Multi-architecture package support in SmartOS
Multi-architecture package support in SmartOS
Solaris portability - cfmakeraw()
Solaris portability - cfmakeraw()
Solaris portability - flock()
Solaris portability - flock()
SmartOS and the global zone
SmartOS and the global zone
Setting up Samba on SmartOS
Setting up Samba on SmartOS
Creating local SmartOS packages
Creating local SmartOS packages
7,000 binary packages for OSX Lion
7,000 binary packages for OSX Lion
9,000 packages for SmartOS and illumos
9,000 packages for SmartOS and illumos
Goodbye Oracle, Hello Joyent!
Goodbye Oracle, Hello Joyent!
SmartOS global zone tweaks
SmartOS global zone tweaks
Automated VirtualBox SmartOS installs
Automated VirtualBox SmartOS installs
iptables script for Debian / Ubuntu
iptables script for Debian / Ubuntu
New site design
New site design
Set up anonymous FTP upload on Oracle Linux
Set up anonymous FTP upload on Oracle Linux
Kickstart Oracle Linux in VirtualBox
Kickstart Oracle Linux in VirtualBox
Kickstart Oracle Linux from Ubuntu
Kickstart Oracle Linux from Ubuntu
Last day at MySQL
Last day at MySQL
Installing OpenBSD with softraid
Installing OpenBSD with softraid
Create VirtualBox VM from the command line
Create VirtualBox VM from the command line
Creating chroots for fun and MySQL testing
Creating chroots for fun and MySQL testing
Graphing memory usage during an MTR run
Graphing memory usage during an MTR run
Fix input box keybindings in Firefox
Fix input box keybindings in Firefox
How to lose weight
How to lose weight
How to fix stdio buffering
How to fix stdio buffering
Fix Firefox URL double click behaviour
Fix Firefox URL double click behaviour
SSH via HTTP proxy in OSX
SSH via HTTP proxy in OSX
How to build MySQL releases
How to build MySQL releases
ZFS and NFS vs OSX
ZFS and NFS vs OSX
pkgsrc on Solaris
pkgsrc on Solaris
Jumpstart from OSX
Jumpstart from OSX
Set up local caching DNS server on OSX 10.4
Set up local caching DNS server on OSX 10.4

Perkin.org.uk Spined HTML


How to build MySQL releases Jonathan Perkin well-nigh me · rss · twitter · github How to build MySQL releases Nov 09, 2010 tags: mysql One of the major benefits from the CMake work misogynist in MySQL 5.5 is that in the MySQL Release Engineering team we have been worldly-wise to make it easy for users and developers to build MySQL exactly as we do for the official releases. For too long there has been a disconnect between the binaries produced as part of a regular “./configure; make” build and what we ship to users and customers. We’re still not exactly where we want to be, there are still some parts which need to be integrated into the server tree, but for now it’s relatively straightforward to build exactly as we do. Here are the instructions, using the mysql-5.5.6-rc.tar.gz source tarball as an example. tar.gz These are the generic instructions to build a tarball release. Note that we make use of CMake’s out-of-srcdir support to ensure the source directory is kept pristine indulge us to hands build both debug and release binaries, and package them together #!/bin/sh tar -zxf mysql-5.5.6-rc.tar.gz # Build debug binaries first, they are picked up in the final 'make package' mkdir debug ( cd debug cmake ../mysql-5.5.6-rc -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=Debug make VERBOSE=1 ) # Build release binaries and create final package mkdir release ( cd release cmake ../mysql-5.5.6-rc -DBUILD_CONFIG=mysql_release make VERBOSE=1 package ) Assuming everything goes ok, you should end up with a tarball in the release/ directory. Some platforms require uneaten flags to be specified on the CMake writ line to ensure the correct compiler etc is used. Here are some that we use. Avoid libstdc++ dependancy In order to create “generic” binaries, on GCC platforms we compile using CXX=gcc. This avoids libstdc++ stuff pulled in, and ways that the server will run wideness a larger range of releases as you do not rely on having the word-for-word version of libstdc++ installed by your system package manager. Paste this surpassing running cmake. # CXXFLAGS is required to trick CMake into yoyo it is a C++ compiler $ CXX=gcc; CXXFLAGS="-fno-exceptions"; export CXX CXXFLAGS Specify target tracery On systems which support multiple targets, you can specify exactly which one you want, rather than relying on the OS default. These strings are meant to be widow to the cmake writ lines above. OSX $ -DCMAKE_OSX_ARCHITECTURES="i386" # 32bit $ -DCMAKE_OSX_ARCHITECTURES="x86_64" # 64bit GCC/Sun Studio $ -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" # 32bit $ -DCMAKE_C_FLAGS="-m64" -DCMAKE_CXX_FLAGS="-m64" # 64bit HP/UX $ -DCMAKE_C_FLAGS="+DD64" -DCMAKE_CXX_FLAGS="+DD64" RPM We’ve spent a lot of time improving the RPM builds too. Previously some of the configuration was only misogynist in the commercial RPM builds, but now we have merged them into the polity version. #!/bin/sh mkdir -p rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS} tmp # Create spec file. # XXX: We should probably just include this in the source tarball. tar -zxf mysql-5.5.6-rc.tar.gz ( mkdir bld; cd bld cmake ../mysql-5.5.6-rc ) cp bld/support-files/*.spec rpm/SPECS cp mysql-5.5.6-rc.tar.gz rpm/SOURCES rpmbuild -v --define="_topdir $PWD/rpm" --define="_tmppath $PWD/tmp" \ -ba rpm/SPECS/mysql.5.5.6-rc.spec You should end up with nice shiny RPMs in rpm/RPMS. One thing to note is that the RPM spec no longer runs the test suite as part of the build, so you will need to run that separately. On the plus side, you get your RPMs much quicker. Another nice thing well-nigh the improved RPM spec is that you can now build targetted distribution RPMs, as we do. These have uneaten dependancy information in them tailored to the target distribution. Currently the spec file supports the distributions we build on, but we will winnow patches for others. To enable this, use: $ rpmbuild -v --define="distro_specific 1" ... Windows Our Windows builds have relied on CMake since MySQL 5.0, but the procedure has still reverted to ensure that you can build as we do. These instructions use cmd.exe but you can use the Visual Studio front end if you prefer. unzip mysql-5.5.6-rc.zip rem There is no separate 'debug' directory on Windows, as the CMake rem infrastructure doesn't yet know to pull files in from there on Windows. md release cd release remSegregateyour target architecture, 32bit set VSTARGET=Visual Studio 9 2008 rem or 64bit set VSTARGET=Visual Studio 9 2008 Win64 cmake ..\mysql-5.5.6-rc -DBUILD_CONFIG=mysql_release \ -DCMAKE_BUILD_TYPE=Debug -G "%VSTARGET%" devenv MySql.sln /build Debug cmake ..\mysql-5.5.6-rc -DBUILD_CONFIG=mysql_release \ -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "%VSTARGET%" You can now segregate which type of package to create. 5.5 includes new lawmaking to create minimal MSI packages, these should work ok, and only differ from the official MySQL MSI packages in that they do not include the instance config wizard. To create the MSI packages you will need to install WiX. rem Standard zip package devenv MySql.sln /build RelWithDebInfo /project package rem Full MSI package devenv MySql.sln /build RelWithDebInfo /project msi rem 'Essentials' MSI package devenv MySql.sln /build RelWithDebInfo /project msi_essentials Assuming everything goes ok, you should have some packages in the release\ directory. Work still to be washed-up We still have a number of scripts only misogynist internally, for example those we use to create SVR4, DMG and DEPOT packages. However, we are looking to integrate these into the MySQL Server source tree so that all users can goody from them. Enjoy! Share this post on Twitter, HackerNews, Facebook or Google+ All Posts 16 Jul 2015 » Reducing RAM usage in pkgin 03 Mar 2015 » pkgsrc-2014Q4: LTS, signed packages, and increasingly 06 Oct 2014 » Building packages at scale 04 Dec 2013 » A node.js-powered 8-bit CPU - part four 03 Dec 2013 » A node.js-powered 8-bit CPU - part three 02 Dec 2013 » A node.js-powered 8-bit CPU - part two 01 Dec 2013 » A node.js-powered 8-bit CPU - part one 21 Nov 2013 » MDB support for Go 30 Jul 2013 » What's new in pkgsrc-2013Q2 24 Jul 2013 » Distributed chrooted pkgsrc zillion builds 07 Jun 2013 » pkgsrc on SmartOS - creating new packages 15 Apr 2013 » What's new in pkgsrc-2013Q1 19 Mar 2013 » Installing SVR4 packages on SmartOS 27 Feb 2013 » SmartOS is Not GNU/Linux 18 Feb 2013 » SmartOS minutiae preview dataset 17 Jan 2013 » pkgsrc on SmartOS - fixing wrenched builds 15 Jan 2013 » pkgsrc on SmartOS - zone megacosm and vital builds 10 Jan 2013 » Multi-architecture package support in SmartOS 09 Jan 2013 » Solaris portability - cfmakeraw() 08 Jan 2013 » Solaris portability - flock() 06 Jan 2013 » pkgsrc-2012Q4 illumos packages now misogynist 23 Nov 2012 » SmartOS and the global zone 24 Oct 2012 » Setting up Samba on SmartOS 10 Oct 2012 » pkgsrc-2012Q3 packages for illumos 23 Aug 2012 » Creating local SmartOS packages 10 Jul 2012 » 7,000 binary packages for OSX Lion 09 Jul 2012 » 9,000 packages for SmartOS and illumos 07 May 2012 » Goodbye Oracle, Hello Joyent! 13 Apr 2012 » SmartOS global zone tweaks 12 Apr 2012 » Automated VirtualBox SmartOS installs 30 Mar 2012 » iptables script for Debian / Ubuntu 20 Feb 2012 » New site diamond 11 Jan 2012 » Set up unrecognized FTP upload on Oracle Linux 09 Jan 2012 » Kickstart Oracle Linux in VirtualBox 09 Jan 2012 » Kickstart Oracle Linux from Ubuntu 22 Dec 2011 » Last day at MySQL 15 Dec 2011 » Installing OpenBSD with softraid 21 Sep 2011 » Create VirtualBox VM from the writ line 14 Sep 2011 » Creating chroots for fun and MySQL testing 30 Jun 2011 » Graphing memory usage during an MTR run 29 Jun 2011 » Fix input box keybindings in Firefox 24 Jun 2011 » How to lose weight 23 Jun 2011 » How to fix stdio buffering 13 Jun 2011 » Serving multiple DNS search domains in IOS DHCP 13 Jun 2011 » Fix Firefox URL double click behaviour 20 Apr 2011 » SSH via HTTP proxy in OSX 09 Nov 2010 » How to build MySQL releases 29 Apr 2010 » 'apt-get' and 5,000 packages for Solaris10/x86 16 Sep 2009 » ZFS and NFS vs OSX 12 Sep 2009 » pkgsrc on Solaris 09 Dec 2008 » Jumpstart from OSX 31 Dec 2007 » Set up local caching DNS server on OSX 10.4