Skip to content

Packaging and Installing the MySQL Proxy with RPM

As I felt the itch to do some quick hacking yesterday, I decided to provide an RPM spec file for the MySQL proxy. The changes have been commited to the SVN trunk now and I added some hints to the INSTALL file on how to perform an RPM build.

Here is a quick summary of how to convert the current SVN code into an installable RPM. You build environment needs to fulfill a few additional prerequisites (a gcc compiler and the C library header files are taken for granted here), I added the versions I used on my openSUSE 10.2 system for reference:

  • autoconf 2.56 or newer (autoconf-2.60)
  • automake 1.9 or newer (automake-1.9.6)
  • MySQL 5.0.x include files (MySQL-devel-5.0.41)
  • pkg-config (pkgconfig-0.20)
  • libevent 1.x or newer (libevent-1.1)
  • lua 5.1 or newer (lua-5.1.1)
  • glib2 2.4.0 or newer (glib2-2.12.4)
The following steps need to be performed:
# Check out the trunk of the SVN repository
$ svn co http://svn.mysql.com/svnpublic/mysql-proxy/trunk mysql-proxy

# Enter the directory and bootsrap autoconf/automake
$ cd mysql-proxy
$ sh ./autogen.sh

# Build the source distribution tarball
$ ./configure && make distcheck

# Convert the source tarball into a binary RPM
$ rpmbuild -tb --clean mysql-proxy-<version>.tar.gz

RPM will now perform the compiling and packaging. The end result will be an installable binary RPM package which will end up in the RPMS directory. Depending on your distribution this location will vary, on my openSUSE system the package ended up in in the following location from where I installed it directly:

$ sudo rpm -Uhv /usr/src/packages/RPMS/i586/mysql-proxy-0.5.1-0.i586.rpm

The mysql-proxy will be installed into /usr/sbin, the documentation and example scripts are being put into the default documentation directory (/usr/share/doc/packages/mysql-proxy in my case).

For now, you still have to start the proxy manually. Next thing is to create an init script that starts up the process at boot time.

Expanding the architecture of participation and talking about it at FrOSCon

I'd like to bring two announcements to your attention, that I posted to our internals Mailing list a few days ago - both refer to ongoing activities at MySQL AB to further open up our development processes and to establish an Architecture of Participation around the MySQL Server and related applications.

I am excited to be able to talk about this topic at the upcoming FrOSCon, which will take place on August, 25th-26th in Sankt Augustin, Germany. The title of my presentation will be "Opening the doors of the Cathedral - Enabling an architecture of participation around the MySQL Server". Here's the abstract:

Even though the MySQL Server is released and distributed as Open Source Software (OSS) under the GPL, the development itself so far has mostly been performed in a very closed-source fashion, as most of the developers are employed by MySQL AB. This talk covers some of the ongoing efforts to establish an architecture of participation around MySQL that attempts to move the MySQL server development process into the public, making it more accessible to other developers interested in contributing.

I submitted two additional talks about "HA Solutions for MySQL" and "Working in a virtual company: benefits, challenges and tools" - unfortunately both were rejected. However, there are two additional talks related to MySQL: "Logging and monitoring a database server" provided by Giuseppe Maxia and "PostgreSQL vs. MySQL: Venus vs. Mars" provided by Susanne Ebrecht.

I personally enjoyed last year's FrOSCon very much and I look forward to this year's edition! Make sure to mark the date in your calendar and come over to meet with us and other OSS people!

Without further ado, here's a repost of the two announcements I sent out:

Continue reading "Expanding the architecture of participation and talking about it at FrOSCon"

Gallery has been migrated to Version 2.2

Yesterday I migrated the image Gallery from Gallery v1 to Version 2.2. The process was quite painless, thanks to the excellent documentation. Just one caveat: in version 2.2, the Gallery v1 migration plugin has to be downloaded and installed first, it did not ship with the "Typical" installation package. Oh, and make sure you have configured PHP to be able to use lots of memory, too! I had to change the settings so it was able to allocate around 42 MB for importing my 3600 images from the previous version...

I hope the migration was successful, please let me know if you notice anything weird! One thing I really like about the new version is the WebDAV support - now I can simply copy new pictures from Konqeror or any other KDE application into the Gallery.

New openGIS functionality in MySQL available for testing

While MySQL already provides some functionality to store and operate on geospatial data, the functionality leaves quite a lot to be desired and is far from providing full OpenGIS compatibility. Most notably is that all functions that query spatial data only operate on MBRs (minimum bounding rectangles), to simplify the operations.

Thanks to my colleague Alexey "Holyfoot" Botchkov from Izhevsk, Russia, some of the spatial relation functions like INTERSECTS and WITHIN now work in the way they are described by OpenGIS and not by using MBR's as it used to be. He has been working on improving the GIS functionality as a side project and the work has now reached a level at which he is ready to give it some public testing and solicit feedback about it.

Currently these new features have not been slated for inclusion in any upcoming MySQL major release. But the more feedback and testing this code receives, the faster it will reach a maturity level that makes it a potential feature candidate for new versions of MySQL.

In addition to improving already existing functionality, Holyfoot also implemented some new precise geospatial functions - the following functions are available now and use precise operations instead of MBRs:

  • BUFFER(g1 geometry, d numeric) returns a Geometry defined by buffering a distance d around g1 where d is the distance units for the Spatial Reference of g1
  • DIFFERENCE(g1 geometry, g2 geometry) returns a Geometry that is the closure of the set difference of g1 and g2
  • DISTANCE(g1 geometry, g2 geometry) returns distance between g1 and g2
  • INTERSECTION(g1 geometry, g2 geometry) returns a Geometry that is the set intersection of g1 and g2
  • SYM_DIFFERENCE(g1 geometry, g2 geometry) returns a Geometry that is the closure of the set symmetric difference of g1 and g2 (logical XOR of space)
  • UNION(g1 geometry, g2 geometry): returns a Geometry that is the set union of g1 and g2
This work is documented as WorkLog task #1326 "Precise spatial operations", which is a subtask of WL#2377 "Add all missing GIS features to MySQL" - feel free to review and comment on these specifications and make sure to test the new functionality!

The source tree (based on the MySQL 5.1 code base) is now available from our public BitKeeper trees at http://mysql.bkbits.net/ - please consult the reference manual for more information on how to build a MySQL binary from a source tree.

To discuss the new GIS functionality, please join our GIS Forum and make sure to report bugs at our public Bug Database!

tweetbackcheck