summary refs log tree commit diff
path: root/pkgs/development/libraries/libvirt-glib/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/libvirt-glib/default.nix')
-rw-r--r--pkgs/development/libraries/libvirt-glib/default.nix48
1 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libvirt-glib/default.nix b/pkgs/development/libraries/libvirt-glib/default.nix
new file mode 100644
index 00000000000..afce119e396
--- /dev/null
+++ b/pkgs/development/libraries/libvirt-glib/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, pkgconfig, libvirt, glib, libxml2, intltool, libtool, yajl
+, nettle, libgcrypt, python, pygobject, gobjectIntrospection, libcap_ng
+}:
+
+stdenv.mkDerivation rec {
+  name = "libvirt-glib-0.1.8";
+
+  src = fetchurl {
+    url = "http://libvirt.org/sources/glib/${name}.tar.gz";
+    sha256 = "0ld7g9vlpdzx8rm90i8y1gnpygkn20x5z12gvsgms7dy5nala3ns";
+  };
+
+  buildInputs = [
+    pkgconfig libvirt glib libxml2 intltool libtool yajl nettle libgcrypt
+    python pygobject gobjectIntrospection libcap_ng
+  ];
+
+  # Compiler flag -fstack-protector-all fixes this build error:
+  #
+  #   ./.libs/libvirt-glib-1.0.so: undefined reference to `__stack_chk_guard'
+  #
+  # And the extra include path fixes this build error:
+  #
+  #   In file included from ../libvirt-gobject/libvirt-gobject-domain-device.h:30:0,
+  #                    from /tmp/nix-build-libvirt-glib-0.1.7.drv-2/libvirt-glib-0.1.7/libvirt-gobject/libvirt-gobject.h:33,
+  #                    from <stdin>:4:
+  #   ../libvirt-gobject/libvirt-gobject-domain.h:33:29: fatal error: libvirt/libvirt.h: No such file or directory
+  #   compilation terminated.
+  #   make[3]: *** [LibvirtGObject-1.0.gir] Error 1
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="-fstack-protector-all -I${libvirt}/include"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Library for working with virtual machines";
+    longDescription = ''
+      libvirt-glib wraps libvirt to provide a high-level object-oriented API better
+      suited for glib-based applications, via three libraries:
+
+      - libvirt-glib    - GLib main loop integration & misc helper APIs
+      - libvirt-gconfig - GObjects for manipulating libvirt XML documents
+      - libvirt-gobject - GObjects for managing libvirt objects
+    '';
+    homepage = http://libvirt.org/;
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
+  };
+}