commit 59657b402d7250dc9626a5d7b4e14a5c8888d60e
Author: Marc Weber <marco-oweber@gmx.de>
Date:   Wed Sep 15 23:05:34 2010 +0200

    t/mysql-libs-in-lib
    
    put mysql libraries into $out/lib so that you don't have to use the -L$mysql/lib/mysql hacks
    
    Signed-off-by: Marc Weber <marco-oweber@gmx.de>

diff --git a/pkgs/servers/sql/mysql/default.nix b/pkgs/servers/sql/mysql/default.nix
index 3a13aa3..1ab3b7e 100644
--- a/pkgs/servers/sql/mysql/default.nix
+++ b/pkgs/servers/sql/mysql/default.nix
@@ -12,5 +12,19 @@ stdenv.mkDerivation {
 
   buildInputs = [ps ncurses zlib perl];
 
+  # create $out/include/*.h symlinks pointing to $out/include/mysql/*.h
+  # same for lib files
+  # This is to get rid of many hacks adding those /mysql/ directories to lib
+  # and include paths
+  # Why does mysql put its file into a subdirectory?
+  postInstall = ''
+    for dir in lib include; do
+      for file in $out/$dir/mysql/*; do
+        b=$(basename $file);
+        ln -s mysql/$b $out/$dir/$(basename $file)
+      done
+    done
+  '';
+
   configureFlags = "--enable-thread-safe-client";
 }
diff --git a/pkgs/servers/sql/mysql5/default.nix b/pkgs/servers/sql/mysql5/default.nix
index 908ae3f..84ca649 100644
--- a/pkgs/servers/sql/mysql5/default.nix
+++ b/pkgs/servers/sql/mysql5/default.nix
@@ -25,6 +25,12 @@ stdenv.mkDerivation {
     ''
       ln -s mysqld_safe $out/bin/mysqld
       rm -rf $out/mysql-test $out/sql-bench $out/share/info
+      for dir in lib include; do
+        for file in $out/$dir/mysql/*; do
+          b=$(basename $file);
+          ln -s mysql/$b $out/$dir/$(basename $file)
+        done
+      done
     '';
 
   meta = {
diff --git a/pkgs/servers/sql/mysql51/default.nix b/pkgs/servers/sql/mysql51/default.nix
index 64ffac0..b582ef7 100644
--- a/pkgs/servers/sql/mysql51/default.nix
+++ b/pkgs/servers/sql/mysql51/default.nix
@@ -25,6 +25,12 @@ stdenv.mkDerivation {
     ''
       ln -s mysqld_safe $out/bin/mysqld
       rm -rf $out/mysql-test $out/sql-bench $out/share/info
+      for dir in lib include; do
+        for file in $out/$dir/mysql/*; do
+          b=$(basename $file);
+          ln -s mysql/$b $out/$dir/$(basename $file)
+        done
+      done
     '';
 
   meta = {
