From de8958223842edb17527f1a2427be72929f0a64a Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Tue, 20 Sep 2011 16:18:12 +0000 Subject: [PATCH] Add gtk-3.x libraries Let hydra build it but do not show in nix-env -qa svn path=/nixpkgs/trunk/; revision=29398 --- pkgs/development/libraries/atk/2.1.x.nix | 37 ++++++++++++++ pkgs/development/libraries/glib/2.29.x.nix | 49 ++++++++++++++++++ pkgs/development/libraries/gtk+/3.1.x.nix | 55 +++++++++++++++++++++ pkgs/development/libraries/pango/1.29.x.nix | 37 ++++++++++++++ pkgs/top-level/all-packages.nix | 17 +++++++ 5 files changed, 195 insertions(+) create mode 100644 pkgs/development/libraries/atk/2.1.x.nix create mode 100644 pkgs/development/libraries/glib/2.29.x.nix create mode 100644 pkgs/development/libraries/gtk+/3.1.x.nix create mode 100644 pkgs/development/libraries/pango/1.29.x.nix diff --git a/pkgs/development/libraries/atk/2.1.x.nix b/pkgs/development/libraries/atk/2.1.x.nix new file mode 100644 index 000000000000..28619a85c036 --- /dev/null +++ b/pkgs/development/libraries/atk/2.1.x.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl_gnome, pkgconfig, perl, glib, xz }: + +stdenv.mkDerivation rec { + name = src.pkgname; + + src = fetchurl_gnome { + project = "atk"; + major = "2"; minor = "1"; patchlevel = "5"; extension = "xz"; + sha256 = "005b9sq8p9ykp4f35b59si3mcbw4p9hyxps1ij4x73p07rrbf0z9"; + }; + + buildNativeInputs = [ pkgconfig perl xz ]; + + propagatedBuildInputs = [ glib ]; + + postInstall = "rm -rf $out/share/gtk-doc"; + + meta = { + description = "ATK, the accessibility toolkit"; + + longDescription = '' + ATK is the Accessibility Toolkit. It provides a set of generic + interfaces allowing accessibility technologies such as screen + readers to interact with a graphical user interface. Using the + ATK interfaces, accessibility tools have full access to view and + control running applications. + ''; + + homepage = http://library.gnome.org/devel/atk/; + + license = "LGPLv2+"; + + maintainers = with stdenv.lib.maintainers; [ raskin urkud ]; + platforms = stdenv.lib.platforms.linux; + }; + +} diff --git a/pkgs/development/libraries/glib/2.29.x.nix b/pkgs/development/libraries/glib/2.29.x.nix new file mode 100644 index 000000000000..589ec625dcc2 --- /dev/null +++ b/pkgs/development/libraries/glib/2.29.x.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl_gnome, pkgconfig, gettext, perl, libiconv, zlib, xz, libffi +, python }: + +# TODO: +# * Add gio-module-fam +# Problem: cyclic dependency on gamin +# Possible solution: build as a standalone module, set env. vars +# * Make it build without python +# Problem: an example (test?) program needs it. +# Possible solution: disable compilation of this example somehow +# Reminder: add 'sed -e 's@python2\.[0-9]@python@' -i +# $out/bin/gtester-report' to postInstall if this is solved + +stdenv.mkDerivation rec { + name = src.pkgname; + + src = fetchurl_gnome { + project = "glib"; + major = "2"; minor = "29"; patchlevel = "18"; extension = "xz"; + sha256 = "1hc198x625w1w8if1xlvqyjs9aazc27s0l374kqc4sr51wcpbxpy"; + }; + + # configure script looks for d-bus but it is only needed for tests + buildInputs = stdenv.lib.optional (!stdenv.isLinux) libiconv; + buildNativeInputs = [ perl pkgconfig gettext xz python ]; + + propagatedBuildInputs = [ zlib libffi ]; + + # glib buildsystem fails to find python, thus hardcodes python2.4 in #! + postInstall = ''rm -rvf $out/share/gtk-doc''; + + meta = { + description = "GLib, a C library of programming buildings blocks"; + + longDescription = '' + GLib provides the core application building blocks for libraries + and applications written in C. It provides the core object + system used in GNOME, the main loop implementation, and a large + set of utility functions for strings and common data structures. + ''; + + homepage = http://www.gtk.org/; + + license = "LGPLv2+"; + + maintainers = with stdenv.lib.maintainers; [raskin urkud]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/development/libraries/gtk+/3.1.x.nix b/pkgs/development/libraries/gtk+/3.1.x.nix new file mode 100644 index 000000000000..5b473d44e7ea --- /dev/null +++ b/pkgs/development/libraries/gtk+/3.1.x.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl_gnome, pkgconfig, glib, atk, pango, cairo, perl, xlibs +, gdk_pixbuf, xz +, xineramaSupport ? true +, cupsSupport ? true, cups ? null +}: + +assert xineramaSupport -> xlibs.libXinerama != null; +assert cupsSupport -> cups != null; + +stdenv.mkDerivation rec { + name = src.pkgname; + + src = fetchurl_gnome { + project = "gtk+"; + major = "3"; minor = "1"; patchlevel = "16"; extension = "xz"; + sha256 = "15arbf75qpchr9wrawb3zkn52rzf5wm2qv4dq10zfzlflimrq2rg"; + }; + + enableParallelBuilding = true; + + buildNativeInputs = [ perl pkgconfig xz ]; + + propagatedBuildInputs = + [ xlibs.xlibs glib atk pango gdk_pixbuf cairo + xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi + ] + ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama + ++ stdenv.lib.optionals cupsSupport [ cups ]; + + configureFlags = "--with-xinput=yes"; + + postInstall = "rm -rf $out/share/gtk-doc"; + + meta = { + description = "A multi-platform toolkit for creating graphical user interfaces"; + + longDescription = '' + GTK+ is a highly usable, feature rich toolkit for creating + graphical user interfaces which boasts cross platform + compatibility and an easy to use API. GTK+ it is written in C, + but has bindings to many other popular programming languages + such as C++, Python and C# among others. GTK+ is licensed + under the GNU LGPL 2.1 allowing development of both free and + proprietary software with GTK+ without any license fees or + royalties. + ''; + + homepage = http://www.gtk.org/; + + license = "LGPLv2+"; + + maintainers = with stdenv.lib.maintainers; [urkud raskin]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/development/libraries/pango/1.29.x.nix b/pkgs/development/libraries/pango/1.29.x.nix new file mode 100644 index 000000000000..14dd3d8c5a5e --- /dev/null +++ b/pkgs/development/libraries/pango/1.29.x.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl_gnome, pkgconfig, gettext, x11, glib, cairo, libpng, xz }: + +stdenv.mkDerivation rec { + name = src.pkgname; + + src = fetchurl_gnome { + project = "pango"; + major = "1"; minor = "29"; patchlevel = "3"; extension = "xz"; + sha256 = "0vp88j3ghngkkc4dpya443qng0bb1g86g54bcwf4lf3zmk6r1nmh"; + }; + + buildInputs = stdenv.lib.optional stdenv.isDarwin gettext; + + buildNativeInputs = [ pkgconfig xz ]; + + propagatedBuildInputs = [ x11 glib cairo libpng ]; + + postInstall = "rm -rf $out/share/gtk-doc"; + + meta = { + description = "A library for laying out and rendering of text, with an emphasis on internationalization"; + + longDescription = '' + Pango is a library for laying out and rendering of text, with an + emphasis on internationalization. Pango can be used anywhere + that text layout is needed, though most of the work on Pango so + far has been done in the context of the GTK+ widget toolkit. + Pango forms the core of text and font handling for GTK+-2.x. + ''; + + homepage = http://www.pango.org/; + license = "LGPLv2+"; + + maintainers = with stdenv.lib.maintainers; [ raskin urkud ]; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ba91b42d67b3..0547f5c12164 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3564,6 +3564,23 @@ let }); + gtkLibs3x = let callPackage = newScope pkgs.gtkLibs3x; in { + glib = callPackage ../development/libraries/glib/2.29.x.nix { }; + + gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.24.x.nix { }; + + atk = callPackage ../development/libraries/atk/2.1.x.nix { }; + + cairo = callPackage ../development/libraries/cairo { }; + + pango = callPackage ../development/libraries/pango/1.29.x.nix { }; + + gtk = callPackage ../development/libraries/gtk+/3.1.x.nix { }; + + # Let hydra build gtk-3.x but do not show this to users yet + recurseForRelease = true; + }; + gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp { inherit (gnome) gtk; gtksharp = gtksharp2;