From 8d520b7abd90f7d8d4103d6a1233a38412d9f6f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 29 Jul 2012 22:12:20 +0200 Subject: [PATCH 1/5] Enable pixbuf-loader for gtk to be able to use the pixbuf-loader for svg files it needs to be enabled, and a loaders.cache needs to be created. --- pkgs/development/libraries/librsvg/default.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix index 86b818cd5a98c..97925ced0ed50 100644 --- a/pkgs/development/libraries/librsvg/default.nix +++ b/pkgs/development/libraries/librsvg/default.nix @@ -11,6 +11,19 @@ stdenv.mkDerivation { propagatedBuildInputs = [ glib gtk ]; buildNativeInputs = [ pkgconfig ]; - # It tries to install the loader to $gdk_pixbuf - configureFlags = "--disable-pixbuf-loader"; + # It wants to add loaders and update the loaders.cache in gdk-pixbuf + # Patching the Makefiles to it creates rsvg specific loaders and the + # relevant loader.cache here. + # The loaders.cache can be used by setting GDK_PIXBUF_MODULE_FILE to + # point to this file in a wrapper. + postConfigure = '' + GDK_PIXBUF=$out/lib/gdk-pixbuf + mkdir -p $GDK_PIXBUF/loaders + sed -e "s#gdk_pixbuf_moduledir = .*#gdk_pixbuf_moduledir = $GDK_PIXBUF/loaders#" \ + -i gdk-pixbuf-loader/Makefile + sed -e "s#gdk_pixbuf_cache_file = .*#gdk_pixbuf_cache_file = $GDK_PIXBUF/loaders.cache#" \ + -i gdk-pixbuf-loader/Makefile + sed -e "s#\$(GDK_PIXBUF_QUERYLOADERS)#GDK_PIXBUF_MODULEDIR=$GDK_PIXBUF/loaders \$(GDK_PIXBUF_QUERYLOADERS)#" \ + -i gdk-pixbuf-loader/Makefile + ''; } From 2ed8474403a39336a7d4351eb540a71740290942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 29 Jul 2012 22:48:00 +0200 Subject: [PATCH 2/5] Copy bonobo defs python-rsvg will fail to build if if can't find the bonobo defs files --- pkgs/desktops/gnome-2/bindings/gnome-python/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix index c65c8b98c6acc..123b481a830b5 100644 --- a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix +++ b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix @@ -25,7 +25,9 @@ stdenv.mkDerivation rec { installPhase = '' python waf install + cp bonobo/* $out/share/pygtk/2.0/defs/ ''; + buildInputs = [ python pkgconfig pygobject pygtk glib gtk GConf libgnome pythonDBus ]; From cdb7786f57de6554a839236c54eefcb1c705cfec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 29 Jul 2012 22:50:21 +0200 Subject: [PATCH 3/5] Add python-rsvg, this is required by solfrege, key-mon, and probably many more gtk applications --- .../gnome-2/bindings/python-rsvg/default.nix | 29 +++++++++++++++++++ pkgs/desktops/gnome-2/default.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix diff --git a/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix new file mode 100644 index 0000000000000..c09ed74a97c0d --- /dev/null +++ b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python }: + +stdenv.mkDerivation rec { + version = "2.32"; + name = "python-rsvg-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-python-desktop/${version}/gnome-python-desktop-${version}.0.tar.gz"; + sha256 = "1xhh3h1qdnimydvv55pmqwyzjchhjwfvp951sjlq0180kskqrlj5"; + }; + + configurePhase = '' + sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i rsvg/wscript + python waf configure --enable-modules=rsvg --prefix=$out + ''; + + buildPhase = "python waf build"; + + installPhase = "python waf install"; + + buildInputs = [ gnome.gnome_python librsvg pkgconfig pygtk python ]; + + meta = with stdenv.lib; { + homepage = "http://www.pygtk.org"; + description = "The rsvg python module"; + license = licenses.lgpl21; + maintainers = [ maintainers.goibhniu ]; + }; +} diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix index 36d0860caa5de..38ae4c0153425 100644 --- a/pkgs/desktops/gnome-2/default.nix +++ b/pkgs/desktops/gnome-2/default.nix @@ -58,6 +58,8 @@ libbonoboui = callPackage ./platform/libbonoboui { }; + python_rsvg = callPackage ./bindings/python-rsvg { }; + at_spi = callPackage ./platform/at-spi { }; gtkhtml = callPackage ./platform/gtkhtml { }; From a95b784211d6bd3b7d8897d92049c4032cea7729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 29 Jul 2012 23:36:35 +0200 Subject: [PATCH 4/5] Add key-mon, a utility to show live keyboard and mouse status for teaching and screencasts --- pkgs/applications/video/key-mon/default.nix | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 pkgs/applications/video/key-mon/default.nix diff --git a/pkgs/applications/video/key-mon/default.nix b/pkgs/applications/video/key-mon/default.nix new file mode 100644 index 0000000000000..123a85ea39eb3 --- /dev/null +++ b/pkgs/applications/video/key-mon/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, buildPythonPackage, gnome, librsvg, makeWrapper, pygtk +, pythonPackages }: + +buildPythonPackage rec { + name = "key-mon-${version}"; + version = "1.13"; + namePrefix = ""; + + src = fetchurl { + url = "http://key-mon.googlecode.com/files/${name}.tar.gz"; + sha256 = "02h7lcnyqwyqsycd1vlvl11ms81v0zmr9p0pfyl5gmzry9dj7imj"; + }; + + propagatedBuildInputs = + [ gnome.python_rsvg librsvg makeWrapper pygtk pythonPackages.xlib ]; + + doCheck = false; + + postInstall = '' + wrapProgram $out/bin/key-mon --prefix GDK_PIXBUF_MODULE_FILE : \ + ${librsvg}/lib/gdk-pixbuf/loaders.cache + ''; + + meta = with stdenv.lib; { + homepage = http://code.google.com/p/key-mon; + description = "Utility to show live keyboard and mouse status for teaching and screencasts"; + license = licenses.asl20; + maintainers = [ maintainers.goibhniu ]; + + }; +} From 81e946c3037f0b00d06a8bed21636d8d3f5fcb14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 29 Jul 2012 23:41:29 +0200 Subject: [PATCH 5/5] Add key-mon, a utility to show live keyboard and mouse status for teaching and screencasts --- pkgs/top-level/all-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2ee6dc66b2d61..5d25d0c85ea23 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7141,6 +7141,8 @@ let kermit = callPackage ../tools/misc/kermit { }; + keymon = callPackage ../applications/video/key-mon { }; + kino = callPackage ../applications/video/kino { inherit (gnome) libglade; };