From 0a7f2849f6cc9eaa5701c9030995c1f241a4ba16 Mon Sep 17 00:00:00 2001
From: Karn Kallio <kkal...@eka.(none)>
Date: Thu, 16 Sep 2010 22:40:43 -0430
Subject: [PATCH 3/3] Add Nix expression for MySQL Workbench.
A GUI database administration/query client for MySQL.
---
pkgs/applications/misc/mysql-workbench/default.nix | 133 ++++++++++++++++++++
pkgs/top-level/all-packages.nix | 7 +
2 files changed, 140 insertions(+), 0 deletions(-)
create mode 100644 pkgs/applications/misc/mysql-workbench/default.nix
diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix
new file mode 100644
index 0000000..957a1ba
--- /dev/null
+++ b/pkgs/applications/misc/mysql-workbench/default.nix
@@ -0,0 +1,133 @@
+{ stdenv
+, fetchurl
+, makeWrapper
+, autoconf
+, automake
+, boost
+, coreutils
+, file
+, gettext
+, glib
+, glibc
+, gnome_keyring
+, gtk
+, gtkmm
+, intltool
+, libctemplate
+, libglade
+, libgnome
+, libsigcxx
+, libtool
+, libuuid
+, libxml2
+, libzip
+, lua
+, mesa
+, mysql
+, pango
+, paramiko
+, pcre
+, pexpect
+, pkgconfig
+, python
+, sqlite
+}:
+
+stdenv.mkDerivation rec {
+ name = "mysql-workbench";
+ version = "5.2.27";
+
+ src = fetchurl {
+ url = "http://mirror.services.wisc.edu/mysql/Downloads/MySQLGUITools/mysql-workbench-gpl-${version}.tar.gz";
+ sha256 = "01l15f9nvcpcsb56r7qb39jjlknh0dkj5iwfg1pj5bm12pbligng";
+ };
+
+ buildInputs = [ autoconf
+ automake
+ boost
+ coreutils
+ file
+ gettext
+ glib
+ glibc
+ gnome_keyring
+ gtk
+ gtkmm
+ intltool
+ libctemplate
+ libglade
+ libgnome
+ libsigcxx
+ libtool
+ libuuid
+ libxml2
+ libzip
+ lua
+ makeWrapper
+ mesa
+ mysql
+ paramiko
+ pcre
+ pexpect
+ pkgconfig
+ python
+ stdenv.gcc
+ sqlite
+ ];
+
+ preConfigure = ''
+ substituteInPlace $(pwd)/frontend/linux/workbench/mysql-workbench.in --replace "catchsegv" "${glibc}/bin/catchsegv"
+
+ ./autogen.sh --prefix=$out
+ '';
+
+ postInstall = ''
+ wrapProgram "$out/bin/mysql-workbench-bin" \
+ --prefix LD_LIBRARY_PATH : "${python}/lib" \
+ --prefix LD_LIBRARY_PATH : "$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib64" \
+ --prefix PATH : "${gnome_keyring}/bin" \
+ --set PYTHONPATH $PYTHONPATH \
+ --run '
+# The gnome-keyring-daemon must be running. To allow for environments like
+# kde, xfce where this is not so, we start it first.
+# It is cleaned up using a supervisor subshell which detects that
+# the parent has finished via the closed pipe as terminate signal idiom,
+# used because we cannot clean up after ourselves due to the exec call.
+
+# Start gnome-keyring-daemon, export the environment variables it asks us to set.
+for expr in $( gnome-keyring-daemon --components=ssh,pkcs11 --start ) ; do eval "export "$expr ; done
+
+# Prepare fifo pipe.
+FIFOCTL="/tmp/gnome-keyring-daemon-ctl.$$.fifo"
+[ -p $FIFOCTL ] && ${coreutils}/bin/rm $FIFOCTL
+${coreutils}/bin/mkfifo $FIFOCTL
+
+# Supervisor subshell waits reading from pipe, will receive EOF when parent
+# closes pipe on termination. Negate read with ! operator to avoid subshell
+# quitting when read EOF returns 1 due to -e option being set.
+(
+ exec 19< $FIFOCTL
+ ! read -u 19
+
+ kill $GNOME_KEYRING_PID
+ ${coreutils}/bin/rm $FIFOCTL
+) &
+
+exec 19> $FIFOCTL
+ '
+ '';
+
+ meta = {
+ description = "A MySQL visual database modeling, administration and querying tool.";
+ longDescription = ''
+ MySQL Workbench is a modeling tool that allows you to design
+ and generate MySQL databases graphically. It also has administration
+ and query development modules where you can manage MySQL server instances
+ and execute SQL queries.
+ '';
+
+ homepage = http://wb.mysql.com/;
+ license = "GPL";
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cefd270..74e839e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6867,6 +6867,13 @@ let
tex = tetex;
};
+ mysqlWorkbench = callPackage ../applications/misc/mysql-workbench {
+ inherit (gnome) glib gnome_keyring gtk gtkmm libglade libgnome pango;
+ lua = lua5;
+ pexpect = pythonPackages.pexpect;
+ paramiko = pythonPackages.paramiko;
+ };
+
pgadmin = callPackage ../applications/misc/pgadmin { };
pgf = pgf2;
--
1.7.2.3
_______________________________________________
nix-dev mailing list
[email protected]
https://mail.cs.uu.nl/mailman/listinfo/nix-dev