From 6a59d1a98f5f26dfbf9875fa7a0b78e109c12647 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 9 Feb 2011 15:09:29 +0000 Subject: [PATCH] * Latest Glib, ATK, Pango and GTK+. * Added gdk-pixbuf, which has been revived and is required by GTK+. * Don't install the documentation of aforementioned packages. This cuts 56 MiB off the closure of GTK+-based packages. It wasn't really useful anyway because it's not installed in a way that allows users to find it easily on NixOS. And if you want it, it's faster to Google it. svn path=/nixpkgs/branches/x-updates/; revision=25853 --- pkgs/development/libraries/atk/1.32.x.nix | 35 ++++++++++++ .../gdk-pixbuf/{default.nix => 0.22.x.nix} | 0 .../libraries/gdk-pixbuf/2.22.x.nix | 23 ++++++++ pkgs/development/libraries/glib/2.28.x.nix | 36 +++++++++++++ pkgs/development/libraries/gtk+/2.24.x.nix | 53 +++++++++++++++++++ pkgs/development/libraries/pango/1.28.x.nix | 2 + pkgs/servers/x11/xorg/overrides.nix | 9 ++++ pkgs/top-level/all-packages.nix | 24 ++++++++- 8 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/libraries/atk/1.32.x.nix rename pkgs/development/libraries/gdk-pixbuf/{default.nix => 0.22.x.nix} (100%) create mode 100644 pkgs/development/libraries/gdk-pixbuf/2.22.x.nix create mode 100644 pkgs/development/libraries/glib/2.28.x.nix create mode 100644 pkgs/development/libraries/gtk+/2.24.x.nix diff --git a/pkgs/development/libraries/atk/1.32.x.nix b/pkgs/development/libraries/atk/1.32.x.nix new file mode 100644 index 00000000000..99a02b22808 --- /dev/null +++ b/pkgs/development/libraries/atk/1.32.x.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, pkgconfig, perl, glib }: + +stdenv.mkDerivation rec { + name = "atk-1.32.0"; + + src = fetchurl { + url = "mirror://gnome/sources/atk/1.32/${name}.tar.bz2"; + sha256 = "e9a3e598f75c4db1af914f8b052dd9f7e89e920a96cc187c18eb06b8339cb16e"; + }; + + buildInputs = [ pkgconfig perl ]; + 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 = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.linux; + }; + +} diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/0.22.x.nix similarity index 100% rename from pkgs/development/libraries/gdk-pixbuf/default.nix rename to pkgs/development/libraries/gdk-pixbuf/0.22.x.nix diff --git a/pkgs/development/libraries/gdk-pixbuf/2.22.x.nix b/pkgs/development/libraries/gdk-pixbuf/2.22.x.nix new file mode 100644 index 00000000000..946cfc2b91e --- /dev/null +++ b/pkgs/development/libraries/gdk-pixbuf/2.22.x.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng }: + +stdenv.mkDerivation rec { + name = "gdk-pixbuf-2.22.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gdk-pixbuf/2.22/${name}.tar.bz2"; + sha256 = "6ce87eda24af9362307b2593c154d0b660f4e26d0abf2e71d46d0ddd55fd953d"; + }; + + buildInputs = [ pkgconfig glib libtiff libjpeg libpng ]; + + postInstall = "rm -rf $out/share/gtk-doc"; + + meta = { + description = "A library for image loading and manipulation"; + + homepage = http://library.gnome.org/devel/gdk-pixbuf/; + + maintainers = [ stdenv.lib.maintainers.eelco ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/development/libraries/glib/2.28.x.nix b/pkgs/development/libraries/glib/2.28.x.nix new file mode 100644 index 00000000000..a6021cff3c9 --- /dev/null +++ b/pkgs/development/libraries/glib/2.28.x.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconv, zlib }: + +stdenv.mkDerivation rec { + name = "glib-2.28.0"; + + src = fetchurl { + url = "mirror://gnome/sources/glib/2.28/${name}.tar.bz2"; + sha256 = "0605f538e5c022c237c97a34496979ba71d33c7b10b8d8edb84435498a651fb3"; + }; + + buildInputs = [ pkgconfig gettext ] + ++ stdenv.lib.optional (!stdenv.isLinux) libiconv; + buildNativeInputs = [ perl ]; + + propagatedBuildInputs = [ zlib ]; + + postInstall = "rm -rf $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 = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/development/libraries/gtk+/2.24.x.nix b/pkgs/development/libraries/gtk+/2.24.x.nix new file mode 100644 index 00000000000..475e81f75b3 --- /dev/null +++ b/pkgs/development/libraries/gtk+/2.24.x.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchurl, pkgconfig, glib, atk, pango, libtiff, libjpeg +, libpng, cairo, perl, jasper, xlibs, gdk_pixbuf +, xineramaSupport ? true +, cupsSupport ? true, cups ? null +}: + +assert xineramaSupport -> xlibs.libXinerama != null; +assert cupsSupport -> cups != null; + +stdenv.mkDerivation rec { + name = "gtk+-2.24.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.bz2"; + sha256 = "cbed1a7b8cd1e471388a00f22557dd061334698a0c1aece11b7ed6541d115606"; + }; + + buildNativeInputs = [ perl ]; + buildInputs = [ pkgconfig jasper ]; + + propagatedBuildInputs = + [ xlibs.xlibs glib atk pango gdk_pixbuf /* libtiff libjpeg libpng */ cairo + xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite + ] + ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama + ++ stdenv.lib.optionals cupsSupport [ cups ]; + + postInstall = "rm -rf $out/share/gtk-doc"; + + passthru = { inherit libtiff libjpeg libpng; }; + + 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 = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/development/libraries/pango/1.28.x.nix b/pkgs/development/libraries/pango/1.28.x.nix index 47418be6693..a5aa77b5a39 100644 --- a/pkgs/development/libraries/pango/1.28.x.nix +++ b/pkgs/development/libraries/pango/1.28.x.nix @@ -12,6 +12,8 @@ stdenv.mkDerivation rec { 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"; diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index b3e9f41a0f3..997552e5e25 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -63,11 +63,20 @@ in preConfigure = setMalloc0ReturnsNullCrossCompiling; }; + # Propagate some build inputs because of header file dependencies. libXt = attrs: attrs // { preConfigure = setMalloc0ReturnsNullCrossCompiling; propagatedBuildInputs = [ xorg.libSM ]; }; + compositeproto = attrs: attrs // { + propagatedBuildInputs = [ xorg.fixesproto ]; + }; + + libXcomposite = attrs: attrs // { + propagatedBuildInputs = [ xorg.libXfixes ]; + }; + libXft = attrs: attrs // { buildInputs = attrs.buildInputs ++ [ xorg.xproto xorg.libX11 xorg.renderproto ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9da5290ec21..09252cf7a14 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2989,7 +2989,7 @@ let gdbm = callPackage ../development/libraries/gdbm { }; - gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf { + gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/0.22.x.nix { inherit (gtkLibs1x) gtk; }; @@ -3185,7 +3185,7 @@ let gtkmathview = callPackage ../development/libraries/gtkmathview { }; - gtkLibs = gtkLibs220; + gtkLibs = gtkLibs224; glib = gtkLibs.glib; gtk = gtkLibs.gtk; @@ -3235,6 +3235,26 @@ let }); + gtkLibs224 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs224; in rec { + + glib = callPackage ../development/libraries/glib/2.28.x.nix { }; + + glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { }; + + atk = callPackage ../development/libraries/atk/1.32.x.nix { }; + + pango = callPackage ../development/libraries/pango/1.28.x.nix { }; + + pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { }; + + gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.22.x.nix { }; + + gtk = callPackage ../development/libraries/gtk+/2.24.x.nix { }; + + gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { }; + + }); + gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp { inherit (gnome) gtk; gtksharp = gtksharp2;