From 4f036cef1dffedbbefb805b5f9fbc0fe50ae2ffa Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 26 Sep 2011 16:18:04 +0000 Subject: [PATCH 01/76] haskell-web-routes: updated to version 0.25.3 svn path=/nixpkgs/trunk/; revision=29499 --- pkgs/development/libraries/haskell/web-routes/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/web-routes/default.nix b/pkgs/development/libraries/haskell/web-routes/default.nix index aa5321c7f5f..84ba6ed7fc6 100644 --- a/pkgs/development/libraries/haskell/web-routes/default.nix +++ b/pkgs/development/libraries/haskell/web-routes/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "web-routes"; - version = "0.25.2"; - sha256 = "0gspjvk5859zwg55q8fjyz4a0d2p6lf2qwa41b8s6kcqi38nnp08"; + version = "0.25.3"; + sha256 = "09bqz7vn2050jr67m3rrqi0krfxa9n1fxm9rgi3c837g522nb4kk"; buildDepends = [ mtl network parsec utf8String ]; meta = { description = "Library for maintaining correctness and composability of URLs within an application"; From 8f8d3f1747748da4722648d70502802e83335ce5 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 26 Sep 2011 16:18:09 +0000 Subject: [PATCH 02/76] haskell-cpphs: updated to version 1.13 svn path=/nixpkgs/trunk/; revision=29500 --- pkgs/development/tools/misc/cpphs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix index 6d0ca9884d6..8208f17921f 100644 --- a/pkgs/development/tools/misc/cpphs/default.nix +++ b/pkgs/development/tools/misc/cpphs/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "cpphs"; - version = "1.12"; - sha256 = "18c8yx8y54b2q086sqlp4vhslkb7mm1gry1f13mki43x93kd1vdj"; + version = "1.13"; + sha256 = "0igk4210vsskcx3zn97rx0q4prxd2ri3yl787dn4ladn0zm676iq"; isLibrary = true; isExecutable = true; meta = { From acb52d79bf722792e2f63cd3b88ff82bd54f1ab9 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 26 Sep 2011 16:33:15 +0000 Subject: [PATCH 03/76] haskell-cpphs: revert update to version 1.13 The new version doesn't compile. I've reported the problem upstream. svn path=/nixpkgs/trunk/; revision=29501 --- pkgs/development/tools/misc/cpphs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix index 8208f17921f..6d0ca9884d6 100644 --- a/pkgs/development/tools/misc/cpphs/default.nix +++ b/pkgs/development/tools/misc/cpphs/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "cpphs"; - version = "1.13"; - sha256 = "0igk4210vsskcx3zn97rx0q4prxd2ri3yl787dn4ladn0zm676iq"; + version = "1.12"; + sha256 = "18c8yx8y54b2q086sqlp4vhslkb7mm1gry1f13mki43x93kd1vdj"; isLibrary = true; isExecutable = true; meta = { From 093a0fb21f655ad53ff599716fe266bf6901e8f3 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 26 Sep 2011 17:05:27 +0000 Subject: [PATCH 04/76] haskell-blaze-html: updated to version 0.4.1.7 svn path=/nixpkgs/trunk/; revision=29502 --- pkgs/development/libraries/haskell/blaze-html/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/blaze-html/default.nix b/pkgs/development/libraries/haskell/blaze-html/default.nix index 8d1afd8c6fb..e5a49912779 100644 --- a/pkgs/development/libraries/haskell/blaze-html/default.nix +++ b/pkgs/development/libraries/haskell/blaze-html/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "blaze-html"; - version = "0.4.1.6"; - sha256 = "084phxxdy12vi2q084k8w693m94v0pjf29zx2fk1y0n80k05ii4z"; + version = "0.4.1.7"; + sha256 = "0hfnfwbw8gshcv15i8jb6636rh3dl4zwwp6l21yjbrblh3825k0y"; buildDepends = [ blazeBuilder text ]; meta = { homepage = "http://jaspervdj.be/blaze"; From d8b628d123e1c96bef3c76b75f9e9c09cb8db316 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 26 Sep 2011 19:30:36 +0000 Subject: [PATCH 05/76] haskell-cpphs: updated to version 1.13.1 svn path=/nixpkgs/trunk/; revision=29503 --- pkgs/development/tools/misc/cpphs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix index 6d0ca9884d6..702c88d2ddb 100644 --- a/pkgs/development/tools/misc/cpphs/default.nix +++ b/pkgs/development/tools/misc/cpphs/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "cpphs"; - version = "1.12"; - sha256 = "18c8yx8y54b2q086sqlp4vhslkb7mm1gry1f13mki43x93kd1vdj"; + version = "1.13.1"; + sha256 = "0k5p9gqnalll3w1962dwydnygk25h777bic2gvdh8i8hhyz5fsx2"; isLibrary = true; isExecutable = true; meta = { From 12d42a5850eda59116936abe0459b9b9c0f4e87a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 26 Sep 2011 22:08:44 +0000 Subject: [PATCH 06/76] * Added Statistics::Descriptive. svn path=/nixpkgs/trunk/; revision=29504 --- pkgs/top-level/perl-packages.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 8c8665842a3..e7ee5eadc0d 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -2809,6 +2809,14 @@ rec { ]; }; + StatisticsDescriptive = buildPerlPackage rec { + name = "Statistics-Descriptive-3.0202"; + src = fetchurl { + url = "mirror://cpan/modules/by-module/Statistics/${name}.tar.gz"; + sha256 = "0y8l3dkhfc2gqwfigrg363ac7pxcyshdna66afpdvs8r1gd53a1i"; + }; + }; + StringFormat = buildPerlPackage rec { name = "String-Format-1.16"; src = fetchurl { From 0ed57e3f64ee453057624fb249767f2deef1ec01 Mon Sep 17 00:00:00 2001 From: Alexander Tsamutali Date: Mon, 26 Sep 2011 22:24:22 +0000 Subject: [PATCH 07/76] servers/x11/xorg/overrides.nix: Added xproto to propagatedBuildInputs of libXext, because for ex. shape.h includes Xfuncproto.h. svn path=/nixpkgs/trunk/; revision=29505 --- pkgs/servers/x11/xorg/overrides.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index a624d27c2af..f260ce90cb5 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -103,6 +103,7 @@ in libXext = attrs: attrs // { buildInputs = attrs.buildInputs ++ [xorg.libXau]; + propagatedBuildInputs = [ xorg.xproto ]; preConfigure = setMalloc0ReturnsNullCrossCompiling; }; From e3ccdb4bcdcdea22397438c5b9cea750908e5753 Mon Sep 17 00:00:00 2001 From: Alexander Tsamutali Date: Mon, 26 Sep 2011 22:28:35 +0000 Subject: [PATCH 08/76] desktops/e17: Add e17. WIP. Make hangs during build of enlightenment. svn path=/nixpkgs/trunk/; revision=29506 --- pkgs/desktops/e17/default.nix | 39 +++++++++++++++++++++ pkgs/desktops/e17/e_dbus/default.nix | 28 +++++++++++++++ pkgs/desktops/e17/ecore/d.nix | 18 ++++++++++ pkgs/desktops/e17/ecore/default.nix | 30 ++++++++++++++++ pkgs/desktops/e17/edje/default.nix | 24 +++++++++++++ pkgs/desktops/e17/eet/default.nix | 29 +++++++++++++++ pkgs/desktops/e17/eeze/default.nix | 23 ++++++++++++ pkgs/desktops/e17/efreet/default.nix | 29 +++++++++++++++ pkgs/desktops/e17/eina/default.nix | 18 ++++++++++ pkgs/desktops/e17/embryo/default.nix | 21 +++++++++++ pkgs/desktops/e17/enlightenment/default.nix | 25 +++++++++++++ pkgs/desktops/e17/evas/default.nix | 22 ++++++++++++ pkgs/top-level/all-packages.nix | 5 +++ 13 files changed, 311 insertions(+) create mode 100644 pkgs/desktops/e17/default.nix create mode 100644 pkgs/desktops/e17/e_dbus/default.nix create mode 100644 pkgs/desktops/e17/ecore/d.nix create mode 100644 pkgs/desktops/e17/ecore/default.nix create mode 100644 pkgs/desktops/e17/edje/default.nix create mode 100644 pkgs/desktops/e17/eet/default.nix create mode 100644 pkgs/desktops/e17/eeze/default.nix create mode 100644 pkgs/desktops/e17/efreet/default.nix create mode 100644 pkgs/desktops/e17/eina/default.nix create mode 100644 pkgs/desktops/e17/embryo/default.nix create mode 100644 pkgs/desktops/e17/enlightenment/default.nix create mode 100644 pkgs/desktops/e17/evas/default.nix diff --git a/pkgs/desktops/e17/default.nix b/pkgs/desktops/e17/default.nix new file mode 100644 index 00000000000..6822c641913 --- /dev/null +++ b/pkgs/desktops/e17/default.nix @@ -0,0 +1,39 @@ +{ callPackage, pkgs }: +rec { + #### CORE EFL + + eina = callPackage ./eina { }; + + eet = callPackage ./eet { }; + + evas = callPackage ./evas { }; + + ecore = callPackage ./ecore { }; + + embryo = callPackage ./embryo { }; + + edje = callPackage ./edje { lua = pkgs.lua5; }; + + efreet = callPackage ./efreet { }; + + e_dbus = callPackage ./e_dbus { }; + + eeze = callPackage ./eeze { }; + + + #### WINDOW MANAGER + + enlightenment = callPackage ./enlightenment { }; + + + #### APPLICATIONS + + + + + #### ART + + + + +} diff --git a/pkgs/desktops/e17/e_dbus/default.nix b/pkgs/desktops/e17/e_dbus/default.nix new file mode 100644 index 00000000000..44be90f7af9 --- /dev/null +++ b/pkgs/desktops/e17/e_dbus/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, ecore, eina, evas, dbus_libs }: +stdenv.mkDerivation rec { + name = "e_dbus-${version}"; + version = "1.0.1"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "1ifkijy4ap2mlqw2nd1dlvzlppyi7bnp15bxiy40nhdly8vhpbdl"; + }; + buildInputs = [ pkgconfig ecore eina evas ]; + propagatedBuildInputs = [ dbus_libs ]; + configureFlags = '' + --disable-edbus-test + --disable-edbus-test-client + --disable-edbus-notify-send + --disable-edbus-notify-test + ''; + meta = { + description = "Enlightenment's D-Bus wrapping and glue layer library"; + longDescription = '' + Enlightenment's E_Dbus is a set of wrappers around DBus APIs by + third party, so they can be easily used by EFL applications, + automatically providing Ecore/main loop integration, as well as + Eina data types. + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.bsd2; # not sure + }; +} diff --git a/pkgs/desktops/e17/ecore/d.nix b/pkgs/desktops/e17/ecore/d.nix new file mode 100644 index 00000000000..73b318c4cde --- /dev/null +++ b/pkgs/desktops/e17/ecore/d.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl, pkgconfig, eina, evas, xproto, libX11, libXext }: +stdenv.mkDerivation rec { + name = "ecore-${version}"; + version = "1.0.1"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "1vi03zxnsdnrjv1rh5r3v0si0b20ikrfb8hf5374i2sqvi1g65j0"; + }; + buildInputs = [ pkgconfig eina evas xproto ]; + propagatedBuildInputs = [ libX11 libXext ]; + meta = { + description = ""; + longDescription = '' + ''; + homepage = http://enlightenment.org/; + license = "BSD-style???"; + }; +} diff --git a/pkgs/desktops/e17/ecore/default.nix b/pkgs/desktops/e17/ecore/default.nix new file mode 100644 index 00000000000..004d708070c --- /dev/null +++ b/pkgs/desktops/e17/ecore/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, pkgconfig, eina, evas, libX11, libXext }: +stdenv.mkDerivation rec { + name = "ecore-${version}"; + version = "1.0.1"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "1vi03zxnsdnrjv1rh5r3v0si0b20ikrfb8hf5374i2sqvi1g65j0"; + }; + buildInputs = [ pkgconfig eina evas ]; + propagatedBuildInputs = [ libX11 libXext ]; + meta = { + description = "Enlightenment's core mainloop, display abstraction and utility library"; + longDescription = '' + Enlightenment's Ecore is a clean and tiny event loop library + with many modules to do lots of convenient things for a + programmer, to save time and effort. + + It's small and lean, designed to work on embedded systems all + the way to large and powerful multi-cpu workstations. It + serialises all system signals, events etc. into a single event + queue, that is easily processed without needing to worry about + concurrency. A properly written, event-driven program using this + kind of programming doesn't need threads, nor has to worry about + concurrency. It turns a program into a state machine, and makes + it very robust and easy to follow. + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.bsd2; # not sure + }; +} diff --git a/pkgs/desktops/e17/edje/default.nix b/pkgs/desktops/e17/edje/default.nix new file mode 100644 index 00000000000..3272963b8b6 --- /dev/null +++ b/pkgs/desktops/e17/edje/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, lua, eina, eet, evas, ecore, embryo }: +stdenv.mkDerivation rec { + name = "edje-${version}"; + version = "1.0.1"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "0z7gjj4ccjr36ba763ijmjkya58fc173vpdw1m298zwhy8n4164j"; + }; + buildInputs = [ pkgconfig lua eina eet evas ecore embryo ]; + meta = { + description = "Enlightenment's abstract GUI layout and animation object library"; + longDescription = '' + Enlightenment's Edje is a complex graphical design & layout + library based on Evas that provides an abstraction layer between + the application code and the interface, while allowing extremely + flexible dynamic layouts and animations. + + In more popular terms, Edje makes every application that uses it + "skinable". + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.bsd2; # not sure + }; +} diff --git a/pkgs/desktops/e17/eet/default.nix b/pkgs/desktops/e17/eet/default.nix new file mode 100644 index 00000000000..7f2809c0aa0 --- /dev/null +++ b/pkgs/desktops/e17/eet/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, pkgconfig, eina, zlib, libjpeg }: +stdenv.mkDerivation rec { + name = "eet-${version}"; + version = "1.4.1"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "1hlznlmgkgzxnkmc3qgqjrc62bmwqj5af8lsh59vac2gf4jnymnc"; + }; + buildInputs = [ pkgconfig eina zlib libjpeg ]; + meta = { + description = "Enlightenment's data encode/decode and storage library"; + longDescription = '' + Enlightenment's EET is a tiny library designed to write an + arbitary set of chunks of data to a file and optionally compress + each chunk (very much like a zip file) and allow fast + random-access reading of the file later on. EET files are + perfect for storing data that is written once (or rarely) and + read many times, especially when the program does not want to + have to read all the data in at once. + + Use this library when you need to pack C structure and you want + to retrieve it quickly with as few as possible memory use. You + can also use it to serialize data quickly and exchange them + between two program over ipc or network link. + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.bsd2; # not sure + }; +} diff --git a/pkgs/desktops/e17/eeze/default.nix b/pkgs/desktops/e17/eeze/default.nix new file mode 100644 index 00000000000..3499d29dbb1 --- /dev/null +++ b/pkgs/desktops/e17/eeze/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, eina, ecore, udev }: +stdenv.mkDerivation rec { + name = "eeze-${version}"; + version = "1.0.2"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "0g6afhnl862clj1rfh0s4nzdnhdikylbalfp8zmsw56dj0zncynq"; + }; + buildInputs = [ pkgconfig eina ecore ]; + propagatedBuildInputs = [ udev ]; + meta = { + description = "Enlightenment's device abstraction library"; + longDescription = '' + Enlightenment's Eeze is a library for manipulating devices + through udev with a simple and fast api. It interfaces directly + with libudev, avoiding such middleman daemons as udisks/upower + or hal, to immediately gather device information the instant it + becomes known to the system. + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.bsd2; # not sure + }; +} diff --git a/pkgs/desktops/e17/efreet/default.nix b/pkgs/desktops/e17/efreet/default.nix new file mode 100644 index 00000000000..e1e8d34197f --- /dev/null +++ b/pkgs/desktops/e17/efreet/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, pkgconfig, eina, eet, ecore }: +stdenv.mkDerivation rec { + name = "efreet-${version}"; + version = "1.0.1"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "0fakczsrr1idyvrp04mxw51ww017kn65xa77vq8wka4js8y0nagi"; + }; + buildInputs = [ pkgconfig eina eet ecore ]; + meta = { + description = "Enlightenment's standards handling for freedesktop.org standards"; + longDescription = '' + Enlightenment's Efreet is a library designed to help apps work + several of the Freedesktop.org standards regarding Icons, + Desktop files and Menus. To that end it implements the following + specifications: + + * XDG Base Directory Specification + * Icon Theme Specification + * Desktop Entry Specification + * Desktop Menu Specification + * FDO URI Specification + * Shared Mime Info Specification + * Trash Specification + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.bsd2; # not sure + }; +} diff --git a/pkgs/desktops/e17/eina/default.nix b/pkgs/desktops/e17/eina/default.nix new file mode 100644 index 00000000000..b4c3d0a7291 --- /dev/null +++ b/pkgs/desktops/e17/eina/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl }: +stdenv.mkDerivation rec { + name = "eina-${version}"; + version = "1.0.1"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "1v2z1l6nqr7hnp5gki3972kprlvylpalp5wq9xdppm250z91kaas"; + }; + meta = { + description = "Enlightenment's core data structure library"; + longDescription = '' + Enlightenment's Eina is a core data structure and common utility + library. + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.lgpl21; + }; +} diff --git a/pkgs/desktops/e17/embryo/default.nix b/pkgs/desktops/e17/embryo/default.nix new file mode 100644 index 00000000000..e23b3f4b0b1 --- /dev/null +++ b/pkgs/desktops/e17/embryo/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl }: +stdenv.mkDerivation rec { + name = "embryo-${version}"; + version = "1.0.0"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "0ch9vps83s892vda1ss1cf1fbgzff9p51df2fip7fqlj8y1shvvx"; + }; + meta = { + description = "Enlightenment's small Pawn based virtual machine and compiler"; + longDescription = '' + Enlightenment's Embryo is a tiny library designed to interpret + limited Small programs compiled by the included compiler, + embryo_cc. It is mostly a cleaned up and smaller version of the + original Small abstract machine. The compiler is mostly + untouched. + ''; + homepage = http://enlightenment.org/; + license = with stdenv.lib.licenses; [ bsd2 bsd3 ]; # not sure + }; +} diff --git a/pkgs/desktops/e17/enlightenment/default.nix b/pkgs/desktops/e17/enlightenment/default.nix new file mode 100644 index 00000000000..d3d74cac82a --- /dev/null +++ b/pkgs/desktops/e17/enlightenment/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, pkgconfig, eina, eet, evas, ecore, edje, efreet, e_dbus }: +stdenv.mkDerivation rec { + name = "enlightenment-0.16.999.55225"; + src = fetchurl { + url = "http://download.enlightenment.org/snapshots/2010-12-03/${name}.tar.gz"; + sha256 = "1cv701fidp9mx3g5m9klmzsp0fj149rb133v1w76rzms3a0wljl1"; + }; + buildInputs = [ pkgconfig eina eet ecore evas edje efreet e_dbus ]; + configureFlags = "--with-profile=FAST_PC"; + meta = { + description = "Enlightenment, the window manager"; + longDescription = '' + The Enlightenment Desktop shell provides an efficient yet + breathtaking window manager based on the Enlightenment + Foundation Libraries along with other essential desktop + components like a file manager, desktop icons and widgets. + + It boasts a un-precedented level of theme-ability while still + being capable of performing on older hardware or embedded + devices. + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.bsd2; # not sure + }; +} diff --git a/pkgs/desktops/e17/evas/default.nix b/pkgs/desktops/e17/evas/default.nix new file mode 100644 index 00000000000..9d7edc89c21 --- /dev/null +++ b/pkgs/desktops/e17/evas/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, eina, freetype }: +stdenv.mkDerivation rec { + name = "evas-${version}"; + version = "1.0.1"; + src = fetchurl { + url = "http://download.enlightenment.org/releases/${name}.tar.gz"; + sha256 = "0xkwyvxy32dwja0i3j8r8bzlybjwlrgmrhcri1bscp3aaj75x2rx"; + }; + buildInputs = [ pkgconfig eina freetype ]; + meta = { + description = "Enlightenment's canvas and scenegraph rendering library"; + longDescription = '' + Enlightenment's Evas is a clean display canvas API that + implements a scene graph, not an immediate-mode rendering + target, is cross-platform, for several target display systems + that can draw anti-aliased text, smooth super and sub-sampled + scaled images, alpha-blend objects and much more. + ''; + homepage = http://enlightenment.org/; + license = stdenv.lib.licenses.bsd2; # not sure + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 98d38c8d14b..6c16d51f996 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7832,6 +7832,11 @@ let enlightenment = callPackage ../desktops/enlightenment { }; + # e17 = recurseIntoAttrs ( + # let callPackage = newScope pkgs.e17; in + # import ../desktops/e17 { inherit callPackage pkgs; } + # ); + gnome28 = recurseIntoAttrs (import ../desktops/gnome-2.28 pkgs); gnome = gnome28; From a3143f0bbd09b498b271fe32f7c01855dd375039 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 27 Sep 2011 11:06:41 +0000 Subject: [PATCH 09/76] * Added Statistics::TTest. svn path=/nixpkgs/trunk/; revision=29507 --- pkgs/top-level/perl-packages.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index e7ee5eadc0d..ae902dabe5d 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -2817,6 +2817,23 @@ rec { }; }; + StatisticsDistributions = buildPerlPackage rec { + name = "Statistics-Distributions-1.02"; + src = fetchurl { + url = "mirror://cpan/modules/by-module/Statistics/${name}.tar.gz"; + sha256 = "1j1kswl98f4i9dn176f9aa3y9bissx2sscga5jm3gjl4pxm3k7zr"; + }; + }; + + StatisticsTTest = buildPerlPackage rec { + name = "Statistics-TTest-1.1.0"; + src = fetchurl { + url = "mirror://cpan/modules/by-module/Statistics/${name}.tar.gz"; + sha256 = "0rkifgzm4rappiy669dyi6lyxn2sdqaf0bl6gndlfa67b395kndj"; + }; + propagatedBuildInputs = [ StatisticsDescriptive StatisticsDistributions ]; + }; + StringFormat = buildPerlPackage rec { name = "String-Format-1.16"; src = fetchurl { From 6bd8eea78870bd48d26b32a55da1e60d1027b02f Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 27 Sep 2011 14:00:31 +0000 Subject: [PATCH 10/76] python-matplotlib: move dependencies like numpy into the propagatedBuildInputs section to ensure that these libraries are being found at run-time by the python wrapper. svn path=/nixpkgs/trunk/; revision=29508 --- pkgs/top-level/python-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8ec9e1a0896..5403bc45ab4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -765,7 +765,7 @@ let pythonPackages = python.modules // rec { doCheck = false; - buildInputs = [ dateutil numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl pkgs.tk pkgs.xlibs.libX11 ]; + propagatedBuildInputs = [ dateutil numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl pkgs.tk pkgs.xlibs.libX11 ]; meta = { description = "python plotting library, making publication quality plots"; From ed6328b5eede447f52c4c8b31de2575801ecdf32 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 27 Sep 2011 14:00:40 +0000 Subject: [PATCH 11/76] python-matplotlib: enable Linux builds by Hydra svn path=/nixpkgs/trunk/; revision=29509 --- pkgs/top-level/python-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5403bc45ab4..227a18444ec 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -770,6 +770,8 @@ let pythonPackages = python.modules // rec { meta = { description = "python plotting library, making publication quality plots"; homepage = "http://matplotlib.sourceforge.net/"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.simons ]; }; }); From 27e30f03fc04f01d6f7db5069e6fc36df23bdce7 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 27 Sep 2011 14:00:48 +0000 Subject: [PATCH 12/76] python-packages.nix: strip trailing whitespace svn path=/nixpkgs/trunk/; revision=29510 --- pkgs/top-level/python-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 227a18444ec..b50028f47be 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1818,7 +1818,7 @@ let pythonPackages = python.modules // rec { md5 = "42c722d48e52d4888193965dd473adb5"; }; - propagatedBuildInputs = [docutils jinja2 pygments]; + propagatedBuildInputs = [docutils jinja2 pygments]; meta = { description = "Sphinx is a tool that makes it easy to create intelligent and beautiful documentation for Python projects."; From 109b36eca9f8036d605899813b8ebecf2b37f800 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Tue, 27 Sep 2011 15:40:40 +0000 Subject: [PATCH 13/76] Move soprano to top-level namespace svn path=/nixpkgs/trunk/; revision=29513 --- pkgs/desktops/kde-4.5/default.nix | 2 - .../kde-4.5/support/soprano/default.nix | 21 ----- pkgs/desktops/kde-4.7/default.nix | 1 - .../support/soprano/find-virtuoso.patch | 77 ------------------- .../libraries}/soprano/default.nix | 6 +- .../libraries/soprano/find-virtuoso.patch | 0 pkgs/top-level/all-packages.nix | 2 + 7 files changed, 6 insertions(+), 103 deletions(-) delete mode 100644 pkgs/desktops/kde-4.5/support/soprano/default.nix delete mode 100644 pkgs/desktops/kde-4.7/support/soprano/find-virtuoso.patch rename pkgs/{desktops/kde-4.7/support => development/libraries}/soprano/default.nix (85%) create mode 100644 pkgs/development/libraries/soprano/find-virtuoso.patch diff --git a/pkgs/desktops/kde-4.5/default.nix b/pkgs/desktops/kde-4.5/default.nix index 9381107ef6f..e231ef104c0 100644 --- a/pkgs/desktops/kde-4.5/default.nix +++ b/pkgs/desktops/kde-4.5/default.nix @@ -37,8 +37,6 @@ rec { polkit_qt_1 = callPackage ./support/polkit-qt-1 { }; - soprano = callPackage ./support/soprano { }; - ### LIBS kdelibs = callPackage ./libs { }; diff --git a/pkgs/desktops/kde-4.5/support/soprano/default.nix b/pkgs/desktops/kde-4.5/support/soprano/default.nix deleted file mode 100644 index 8d07f352d17..00000000000 --- a/pkgs/desktops/kde-4.5/support/soprano/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, fetchurl, cmake, qt4, clucene_core, redland, libiodbc }: - -stdenv.mkDerivation rec { - name = "soprano-2.7.0"; - - src = fetchurl { - url = "mirror://sourceforge/soprano/${name}.tar.bz2"; - sha256 = "1ki92wg0i9nhn1fh5mdcls5h9h3lf2k5r66snsags4x7zw0dmv2z"; - }; - - # We disable the Java backend, since we do not need them and they make the closure size much bigger - buildInputs = [ cmake qt4 clucene_core redland libiodbc ]; - - meta = { - homepage = http://soprano.sourceforge.net/; - description = "An object-oriented C++/Qt4 framework for RDF data"; - license = "LGPL"; - maintainers = with stdenv.lib.maintainers; [ sander urkud ]; - inherit (qt4.meta) platforms; - }; -} diff --git a/pkgs/desktops/kde-4.7/default.nix b/pkgs/desktops/kde-4.7/default.nix index 9d6981f1168..0e2377f2535 100644 --- a/pkgs/desktops/kde-4.7/default.nix +++ b/pkgs/desktops/kde-4.7/default.nix @@ -43,7 +43,6 @@ kde.modules // kde.individual // inherit (kde) manifest modules individual splittedModuleList; akonadi = callPackage ./support/akonadi { }; - soprano = callPackage ./support/soprano { }; qt4 = qt47; diff --git a/pkgs/desktops/kde-4.7/support/soprano/find-virtuoso.patch b/pkgs/desktops/kde-4.7/support/soprano/find-virtuoso.patch deleted file mode 100644 index 649f22a3b74..00000000000 --- a/pkgs/desktops/kde-4.7/support/soprano/find-virtuoso.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Yury G. Kudryashov -Subject: [PATCH] Find virtuoso if virtuoso-t is in PATH - ---- - backends/virtuoso/virtuosobackend.cpp | 29 ++++++++++++++++++++--------- - backends/virtuoso/virtuosobackend.h | 2 +- - 2 files changed, 21 insertions(+), 10 deletions(-) - -diff --git a/backends/virtuoso/virtuosobackend.cpp b/backends/virtuoso/virtuosobackend.cpp -index c83605d..c24854e 100644 ---- a/backends/virtuoso/virtuosobackend.cpp -+++ b/backends/virtuoso/virtuosobackend.cpp -@@ -188,19 +188,19 @@ namespace { - - bool Soprano::Virtuoso::BackendPlugin::isAvailable() const - { --#ifndef Q_OS_WIN -- if ( findVirtuosoDriver().isEmpty() ) { -- qDebug() << Q_FUNC_INFO << "could not find Virtuoso ODBC driver"; -- return false; -- } --#endif -- - QString virtuosoBin = VirtuosoController::locateVirtuosoBinary(); - if ( virtuosoBin.isEmpty() ) { - qDebug() << Q_FUNC_INFO << "could not find virtuoso-t binary"; - return false; - } - -+#ifndef Q_OS_WIN -+ if ( findVirtuosoDriver(virtuosoBin).isEmpty() ) { -+ qDebug() << Q_FUNC_INFO << "could not find Virtuoso ODBC driver"; -+ return false; -+ } -+#endif -+ - QString vs = determineVirtuosoVersion( virtuosoBin ); - if ( vs.isEmpty() ) { - qDebug() << Q_FUNC_INFO << "Failed to determine version of the Virtuoso server at" << virtuosoBin; -@@ -217,9 +217,20 @@ bool Soprano::Virtuoso::BackendPlugin::isAvailable() const - - - #ifndef Q_OS_WIN --QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver() const -+QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver( const QString &virtuosoBinHint ) const - { -- return Soprano::findLibraryPath( "virtodbc_r", QStringList(), QStringList() << QLatin1String( "virtuoso/plugins/" ) << QLatin1String( "odbc/" ) ); -+ QString virtuosoBin; -+ if (virtuosoBinHint.isEmpty()) -+ virtuosoBin = VirtuosoController::locateVirtuosoBinary(); -+ else -+ virtuosoBin = virtuosoBinHint; -+ -+ QDir virtuosoBinDir = QFileInfo(virtuosoBin).absoluteDir(); -+ return Soprano::findLibraryPath( "virtodbc_r", -+ QStringList() << virtuosoBinDir.absolutePath() -+ << virtuosoBinDir.absoluteFilePath("../lib"), -+ QStringList() << QLatin1String( "virtuoso/plugins/" ) << -+ QLatin1String( "odbc/" ) ); - } - #endif - -diff --git a/backends/virtuoso/virtuosobackend.h b/backends/virtuoso/virtuosobackend.h -index 3971b83..0807e5d 100644 ---- a/backends/virtuoso/virtuosobackend.h -+++ b/backends/virtuoso/virtuosobackend.h -@@ -50,7 +50,7 @@ namespace Soprano { - - #ifndef Q_OS_WIN - private: -- QString findVirtuosoDriver() const; -+ QString findVirtuosoDriver(const QString &virtuosoBinHint = QString()) const; - #endif - }; - } --- -tg: (432b73f..) t/find-virtuoso (depends on: master) diff --git a/pkgs/desktops/kde-4.7/support/soprano/default.nix b/pkgs/development/libraries/soprano/default.nix similarity index 85% rename from pkgs/desktops/kde-4.7/support/soprano/default.nix rename to pkgs/development/libraries/soprano/default.nix index 9dc6d1d1de6..49e6e6b96df 100644 --- a/pkgs/desktops/kde-4.7/support/soprano/default.nix +++ b/pkgs/development/libraries/soprano/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { }; patches = - [ (fetchurl { + [ (fetchurl { # Applied upstream, remove if upgrading url = https://git.reviewboard.kde.org/r/102466/diff/raw/; name = "soprano-virtuoso-restart.patch"; sha256 = "0jk038fp7ii6847mbxdajhhc7f6ap6lriaklxcqqxf6ddj37gf3y"; @@ -18,7 +18,9 @@ stdenv.mkDerivation rec { ]; # We disable the Java backend, since we do not need them and they make the closure size much bigger - buildInputs = [ cmake qt4 clucene_core librdf_redland libiodbc ]; + buildInputs = [ qt4 clucene_core librdf_redland libiodbc ]; + + buildNativeInputs = [ cmake ]; meta = { homepage = http://soprano.sourceforge.net/; diff --git a/pkgs/development/libraries/soprano/find-virtuoso.patch b/pkgs/development/libraries/soprano/find-virtuoso.patch new file mode 100644 index 00000000000..e69de29bb2d diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6c16d51f996..c43215b787f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4442,6 +4442,8 @@ let # optional }; + soprano = callPackage ../development/libraries/soprano { }; + soqt = callPackage ../development/libraries/soqt { }; speechd = callPackage ../development/libraries/speechd { }; From 791cf785b8668c97b90e03d18f4259af2b395859 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Tue, 27 Sep 2011 15:40:45 +0000 Subject: [PATCH 14/76] virtuoso: apply patch as proposed by Nepomuk developers svn path=/nixpkgs/trunk/; revision=29514 --- pkgs/servers/sql/virtuoso/default.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/sql/virtuoso/default.nix b/pkgs/servers/sql/virtuoso/default.nix index 31dcc842a19..bb9426ad947 100644 --- a/pkgs/servers/sql/virtuoso/default.nix +++ b/pkgs/servers/sql/virtuoso/default.nix @@ -10,6 +10,16 @@ stdenv.mkDerivation rec { buildInputs = [ libxml2 openssl readline gawk ]; + patchFlags = "-p0"; + + patches = + [ (fetchurl { + url = "http://bugsfiles.kde.org/attachment.cgi?id=63510"; + name = "virtuoso-charset-fix.diff"; + sha256 = "09kxjhsy3rbys0bcxpmgga4sa6qjyy79dyl4n8b0gp1hnzjskvkz"; + }) + ]; + CPP = "${stdenv.gcc}/bin/gcc -E"; configureFlags = " @@ -19,13 +29,14 @@ stdenv.mkDerivation rec { "; postInstall='' - echo Move documentation + echo Moving documentation mkdir -pv $out/share/doc mv -v $out/share/virtuoso/doc $out/share/doc/${name} find $out -name "*.a" -delete -o -name "*.jar" -delete -o -type d -empty -delete ''; meta = with stdenv.lib; { + description = "SQL/RDF database used by, e.g., KDE-nepomuk"; homepage = http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/; platforms = platforms.all; maintainers = [ maintainers.urkud ]; From e3c935cd2cb06055b0e512c8e728e92511560d14 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Tue, 27 Sep 2011 15:40:54 +0000 Subject: [PATCH 15/76] kde-4.7: akonadi-1.6.1 svn path=/nixpkgs/trunk/; revision=29515 --- pkgs/desktops/kde-4.7/support/akonadi/default.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/kde-4.7/support/akonadi/default.nix b/pkgs/desktops/kde-4.7/support/akonadi/default.nix index 486849b23aa..38ec7f85907 100644 --- a/pkgs/desktops/kde-4.7/support/akonadi/default.nix +++ b/pkgs/desktops/kde-4.7/support/akonadi/default.nix @@ -1,14 +1,16 @@ { stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, automoc4, soprano }: stdenv.mkDerivation rec { - name = "akonadi-1.6.0"; + name = "akonadi-1.6.1"; src = fetchurl { url = "mirror://kde/stable/akonadi/src/${name}.tar.bz2"; - sha256 = "0bzr6476yyinvdhrn9z8ynmi0py9zs3dfhwk3dvqxysk87svk71f"; + sha256 = "0r8sw7m1pwqc7qkaczm0r8adqi1wvlhdp32gy3q5p5plq50xhgra"; }; - - buildInputs = [ cmake qt4 soprano automoc4 shared_mime_info libxslt boost ]; + + buildInputs = [ qt4 soprano libxslt boost ]; + + buildNativeInputs = [ cmake automoc4 shared_mime_info ]; enableParallelBuilding = true; From dbb9440ef791c6fa83c54320a08ac52b78618a8b Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Tue, 27 Sep 2011 16:18:06 +0000 Subject: [PATCH 16/76] Fix for r29513 I've accidentially committed an empty find-virtuoso.patch svn path=/nixpkgs/trunk/; revision=29516 --- .../libraries/soprano/find-virtuoso.patch | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/pkgs/development/libraries/soprano/find-virtuoso.patch b/pkgs/development/libraries/soprano/find-virtuoso.patch index e69de29bb2d..7da53d6f633 100644 --- a/pkgs/development/libraries/soprano/find-virtuoso.patch +++ b/pkgs/development/libraries/soprano/find-virtuoso.patch @@ -0,0 +1,86 @@ +From: Yury G. Kudryashov +Subject: [PATCH] Find virtuoso if virtuoso-t is in PATH + +--- + backends/virtuoso/virtuosobackend.cpp | 31 ++++++++++++++++++++++--------- + backends/virtuoso/virtuosobackend.h | 2 +- + 2 files changed, 23 insertions(+), 10 deletions(-) + +diff --git a/backends/virtuoso/virtuosobackend.cpp b/backends/virtuoso/virtuosobackend.cpp +index c83605d..8c30c81 100644 +--- a/backends/virtuoso/virtuosobackend.cpp ++++ b/backends/virtuoso/virtuosobackend.cpp +@@ -27,6 +27,7 @@ + #include "odbcconnectionpool.h" + + #include "sopranodirs.h" ++#include "soprano-config.h" + + #include + #include +@@ -188,19 +189,19 @@ namespace { + + bool Soprano::Virtuoso::BackendPlugin::isAvailable() const + { +-#ifndef Q_OS_WIN +- if ( findVirtuosoDriver().isEmpty() ) { +- qDebug() << Q_FUNC_INFO << "could not find Virtuoso ODBC driver"; +- return false; +- } +-#endif +- + QString virtuosoBin = VirtuosoController::locateVirtuosoBinary(); + if ( virtuosoBin.isEmpty() ) { + qDebug() << Q_FUNC_INFO << "could not find virtuoso-t binary"; + return false; + } + ++#ifndef Q_OS_WIN ++ if ( findVirtuosoDriver(virtuosoBin).isEmpty() ) { ++ qDebug() << Q_FUNC_INFO << "could not find Virtuoso ODBC driver"; ++ return false; ++ } ++#endif ++ + QString vs = determineVirtuosoVersion( virtuosoBin ); + if ( vs.isEmpty() ) { + qDebug() << Q_FUNC_INFO << "Failed to determine version of the Virtuoso server at" << virtuosoBin; +@@ -217,9 +218,21 @@ bool Soprano::Virtuoso::BackendPlugin::isAvailable() const + + + #ifndef Q_OS_WIN +-QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver() const ++QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver( const QString &virtuosoBinHint ) const + { +- return Soprano::findLibraryPath( "virtodbc_r", QStringList(), QStringList() << QLatin1String( "virtuoso/plugins/" ) << QLatin1String( "odbc/" ) ); ++ QString virtuosoBin; ++ if (virtuosoBinHint.isEmpty()) ++ virtuosoBin = VirtuosoController::locateVirtuosoBinary(); ++ else ++ virtuosoBin = virtuosoBinHint; ++ ++ QDir virtuosoBinDir = QFileInfo(virtuosoBin).absoluteDir(); ++ return Soprano::findLibraryPath( "virtodbc_r", ++ QStringList() ++ << virtuosoBinDir.absoluteFilePath("../lib"SOPRANO_LIB_SUFFIX) ++ << virtuosoBinDir.absoluteFilePath("../lib"), ++ QStringList() << QLatin1String( "virtuoso/plugins/" ) << ++ QLatin1String( "odbc/" ) ); + } + #endif + +diff --git a/backends/virtuoso/virtuosobackend.h b/backends/virtuoso/virtuosobackend.h +index 3971b83..0807e5d 100644 +--- a/backends/virtuoso/virtuosobackend.h ++++ b/backends/virtuoso/virtuosobackend.h +@@ -50,7 +50,7 @@ namespace Soprano { + + #ifndef Q_OS_WIN + private: +- QString findVirtuosoDriver() const; ++ QString findVirtuosoDriver(const QString &virtuosoBinHint = QString()) const; + #endif + }; + } +-- +tg: (da390be..) t/find-virtuoso (depends on: master) From 6fd4c26fc28a385eb6239452a658ee7367e553d7 Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Tue, 27 Sep 2011 17:24:01 +0000 Subject: [PATCH 17/76] add google perftools 1.8.3 svn path=/nixpkgs/trunk/; revision=29517 --- .../libraries/google-perftools/default.nix | 14 ++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 pkgs/development/libraries/google-perftools/default.nix diff --git a/pkgs/development/libraries/google-perftools/default.nix b/pkgs/development/libraries/google-perftools/default.nix new file mode 100644 index 00000000000..7935a794a2f --- /dev/null +++ b/pkgs/development/libraries/google-perftools/default.nix @@ -0,0 +1,14 @@ +{stdenv, fetchurl, libunwind}: + +stdenv.mkDerivation rec { + name = "google-perftools-1.8.3"; + src = fetchurl { + url = "http://google-perftools.googlecode.com/files/${name}.tar.gz"; + sha256 = "0ncx3a8jl6n38q9bjnaz5sq96yb6yh99j3bl64k3295v9arl9mva"; + }; + buildInputs = [libunwind]; + meta = { + description = "Fast, multi-threaded malloc() and nifty performance analysis tools."; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c43215b787f..42a95483914 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3475,6 +3475,8 @@ let inherit (gnome) gtk glib; }; + google_perftools = callPackage ../development/libraries/google-perftools { }; + #GMP ex-satellite, so better keep it near gmp mpfr = callPackage ../development/libraries/mpfr { }; From 3a2423151080795580adf1bd363449e30e73a3c9 Mon Sep 17 00:00:00 2001 From: Alexander Tsamutali Date: Tue, 27 Sep 2011 23:49:28 +0000 Subject: [PATCH 18/76] pkgs/desktops/e17: Some fixes and now I can start it! \o/ svn path=/nixpkgs/trunk/; revision=29518 --- pkgs/desktops/e17/enlightenment/default.nix | 10 +++++++--- pkgs/desktops/e17/evas/default.nix | 7 +++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/pkgs/desktops/e17/enlightenment/default.nix b/pkgs/desktops/e17/enlightenment/default.nix index d3d74cac82a..b21bfc92ef2 100644 --- a/pkgs/desktops/e17/enlightenment/default.nix +++ b/pkgs/desktops/e17/enlightenment/default.nix @@ -1,12 +1,16 @@ -{ stdenv, fetchurl, pkgconfig, eina, eet, evas, ecore, edje, efreet, e_dbus }: +{ stdenv, fetchurl, pkgconfig, eina, eet, evas, ecore, edje, efreet, e_dbus, embryo }: stdenv.mkDerivation rec { name = "enlightenment-0.16.999.55225"; src = fetchurl { url = "http://download.enlightenment.org/snapshots/2010-12-03/${name}.tar.gz"; sha256 = "1cv701fidp9mx3g5m9klmzsp0fj149rb133v1w76rzms3a0wljl1"; }; - buildInputs = [ pkgconfig eina eet ecore evas edje efreet e_dbus ]; - configureFlags = "--with-profile=FAST_PC"; + buildInputs = [ pkgconfig eina eet ecore evas edje efreet e_dbus embryo ]; + configureFlags = '' + --with-profile=FAST_PC + --disable-illume + --disable-illume2 + ''; meta = { description = "Enlightenment, the window manager"; longDescription = '' diff --git a/pkgs/desktops/e17/evas/default.nix b/pkgs/desktops/e17/evas/default.nix index 9d7edc89c21..c546eb1af54 100644 --- a/pkgs/desktops/e17/evas/default.nix +++ b/pkgs/desktops/e17/evas/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchurl, pkgconfig, eina, freetype }: +{ stdenv, fetchurl, pkgconfig, freetype, fontconfig, libpng, libjpeg +, libX11, libXext, eina, eet }: stdenv.mkDerivation rec { name = "evas-${version}"; version = "1.0.1"; @@ -6,7 +7,9 @@ stdenv.mkDerivation rec { url = "http://download.enlightenment.org/releases/${name}.tar.gz"; sha256 = "0xkwyvxy32dwja0i3j8r8bzlybjwlrgmrhcri1bscp3aaj75x2rx"; }; - buildInputs = [ pkgconfig eina freetype ]; + buildInputs = [ pkgconfig freetype fontconfig libpng libjpeg + libX11 libXext eina eet + ]; meta = { description = "Enlightenment's canvas and scenegraph rendering library"; longDescription = '' From afe142e9631c0498c9ce099aaa16cafae6890fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Wed, 28 Sep 2011 07:25:59 +0000 Subject: [PATCH 19/76] Making jwhois connect fine for those without ipv6 network. svn path=/nixpkgs/trunk/; revision=29519 --- pkgs/tools/networking/jwhois/connect.patch | 60 ++++++++++++++++++++++ pkgs/tools/networking/jwhois/default.nix | 2 + 2 files changed, 62 insertions(+) create mode 100644 pkgs/tools/networking/jwhois/connect.patch diff --git a/pkgs/tools/networking/jwhois/connect.patch b/pkgs/tools/networking/jwhois/connect.patch new file mode 100644 index 00000000000..c26025a8239 --- /dev/null +++ b/pkgs/tools/networking/jwhois/connect.patch @@ -0,0 +1,60 @@ +https://bugzilla.redhat.com/attachment.cgi?id=265091 + +This fixes somewhat reversed logic of trying to connect to WHOIS server. +Tue Nov 20 2007, Lubomir Kundrak + +--- jwhois-4.0/src/utils.c.connect 2007-06-26 09:00:20.000000000 +0200 ++++ jwhois-4.0/src/utils.c 2007-11-20 17:05:33.000000000 +0100 +@@ -247,7 +247,7 @@ make_connect(const char *host, int port) + { + return -1; + } +- while (res) ++ for (; res; res = res->ai_next) + { + sa = res->ai_addr; + sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol); +@@ -266,15 +266,15 @@ make_connect(const char *host, int port) + flags = fcntl(sockfd, F_GETFL, 0); + if (fcntl(sockfd, F_SETFL, flags|O_NONBLOCK) == -1) + { ++ close (sockfd); + return -1; + } + +- + error = connect(sockfd, res->ai_addr, res->ai_addrlen); +- + if (error < 0 && errno != EINPROGRESS) + { +- break; ++ close (sockfd); ++ continue; + } + + FD_ZERO(&fdset); +@@ -283,18 +283,20 @@ make_connect(const char *host, int port) + error = select(FD_SETSIZE, NULL, &fdset, NULL, &timeout); + if (error == 0) + { +- break; ++ close (sockfd); ++ return -1; + } + + retlen = sizeof(retval); + error = getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &retval, &retlen); + if (error < 0 || retval) + { +- break; ++ close (sockfd); ++ return -1; + } +- res = res->ai_next; ++ ++ break; + } +- if (error < 0 || retval) return -1; + #endif + + return sockfd; diff --git a/pkgs/tools/networking/jwhois/default.nix b/pkgs/tools/networking/jwhois/default.nix index 40cc1605655..54d8acd3213 100644 --- a/pkgs/tools/networking/jwhois/default.nix +++ b/pkgs/tools/networking/jwhois/default.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation { postInstall = "ln -s jwhois $out/bin/whois"; + patches = [ ./connect.patch ]; + meta = { description = "A client for the WHOIS protocol allowing you to query the owner of a domain name"; homepage = http://www.gnu.org/software/jwhois/; From 0f2e4160c0072d55a4d77fe19ceb94196fd650ca Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 14:18:26 +0000 Subject: [PATCH 20/76] Linux 3.0: Don't use aufs2.1, there's aufs 3.x for Linux 3.x kernels svn path=/nixpkgs/trunk/; revision=29520 --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 42a95483914..f544c06b545 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5550,7 +5550,7 @@ let kernelPatches = [ #kernelPatches.fbcondecor_2_6_38 kernelPatches.sec_perm_2_6_24 - kernelPatches.aufs2_1_3_0 + #kernelPatches.aufs2_1_3_0 #kernelPatches.mips_restart_2_6_36 ]; }; From 790d78fb6f7f68541135f7f95c815189db499162 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 14:23:47 +0000 Subject: [PATCH 21/76] FreeRDP-unstable: Bump svn path=/nixpkgs/trunk/; revision=29522 --- .../networking/remote/freerdp/unstable.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/remote/freerdp/unstable.nix b/pkgs/applications/networking/remote/freerdp/unstable.nix index 78e275690ac..2266f7237f6 100644 --- a/pkgs/applications/networking/remote/freerdp/unstable.nix +++ b/pkgs/applications/networking/remote/freerdp/unstable.nix @@ -17,7 +17,7 @@ assert printerSupport -> cups != null; -let rev = "42fb9f84e82268073a3838e6082783ba956ecc99"; in +let rev = "498b88a1da748a4a2b4dbd12c795ca87fee24bab"; in stdenv.mkDerivation rec { name = "freerdp-1.0pre${rev}"; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { src = fetchgit { url = git://github.com/FreeRDP/FreeRDP.git; inherit rev; - sha256 = "5e77163e2a728802fc426860b3f5ff88cb2f2f3b0bbf0912e9e44c3d8fa060e5"; + sha256 = "91ef562e96db483ada28236e524326a75b6942becce4fd2a65ace386186eccf7"; }; buildInputs = [ @@ -43,9 +43,9 @@ stdenv.mkDerivation rec { cunit ] ++ stdenv.lib.optional printerSupport cups; - postUnpack = '' - sed -i 's@xf_GetWorkArea(xfi)@///xf_GetWorkArea(xfi)@' git-export/client/X11/xf_monitor.c - ''; + doCheck = false; + + checkPhase = ''LD_LIBRARY_PATH="libfreerdp-cache:libfreerdp-chanman:libfreerdp-common:libfreerdp-core:libfreerdp-gdi:libfreerdp-kbd:libfreerdp-rail:libfreerdp-rfx:libfreerdp-utils" cunit/test_freerdp''; cmakeFlags = [ "-DWITH_DIRECTFB=ON" "-DWITH_CUNIT=ON" ]; From dc55be9e050eea7c8ebd59acb7fd8963d7a31f56 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 28 Sep 2011 14:37:03 +0000 Subject: [PATCH 22/76] pkgs/shells/bash: updated "interactive" bash to version 4.2 The non-interactive variant, which is part of stdenv, remains unchanged. svn path=/nixpkgs/trunk/; revision=29523 --- pkgs/shells/bash/{default.nix => 4.1.nix} | 2 +- pkgs/shells/bash/4.2.nix | 81 +++++++++++++++++++ ...{bash-patches.nix => bash-4.1-patches.nix} | 0 pkgs/shells/bash/bash-4.2-patches.nix | 14 ++++ pkgs/shells/bash/update-patch-set.sh | 2 +- pkgs/top-level/all-packages.nix | 4 +- 6 files changed, 99 insertions(+), 4 deletions(-) rename pkgs/shells/bash/{default.nix => 4.1.nix} (98%) create mode 100644 pkgs/shells/bash/4.2.nix rename pkgs/shells/bash/{bash-patches.nix => bash-4.1-patches.nix} (100%) create mode 100644 pkgs/shells/bash/bash-4.2-patches.nix diff --git a/pkgs/shells/bash/default.nix b/pkgs/shells/bash/4.1.nix similarity index 98% rename from pkgs/shells/bash/default.nix rename to pkgs/shells/bash/4.1.nix index 3a0515199b6..02fb29c5dab 100644 --- a/pkgs/shells/bash/default.nix +++ b/pkgs/shells/bash/4.1.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { inherit sha256; }; in - import ./bash-patches.nix patch; + import ./bash-4.1-patches.nix patch; crossAttrs = { configureFlags = baseConfigureFlags + diff --git a/pkgs/shells/bash/4.2.nix b/pkgs/shells/bash/4.2.nix new file mode 100644 index 00000000000..98fe43b0122 --- /dev/null +++ b/pkgs/shells/bash/4.2.nix @@ -0,0 +1,81 @@ +{ stdenv, fetchurl, readline ? null, interactive ? false, texinfo ? null, bison }: + +assert interactive -> readline != null; + +let + realName = "bash-4.2"; + baseConfigureFlags = if interactive then "--with-installed-readline" else "--disable-readline"; +in + +stdenv.mkDerivation rec { + name = "${realName}-p${toString (builtins.length patches)}"; + + src = fetchurl { + url = "mirror://gnu/bash/${realName}.tar.gz"; + sha256 = "a27a1179ec9c0830c65c6aa5d7dab60f7ce1a2a608618570f96bfa72e95ab3d8"; + }; + + NIX_CFLAGS_COMPILE = '' + -DSYS_BASHRC="/etc/bashrc" + -DSYS_BASH_LOGOUT="/etc/bash_logout" + -DDEFAULT_PATH_VALUE="/no-such-path" + -DSTANDARD_UTILS_PATH="/no-such-path" + -DNON_INTERACTIVE_LOGIN_SHELLS + -DSSH_SOURCE_BASHRC + ''; + + patchFlags = "-p0"; + + patches = + let + patch = nr: sha256: + fetchurl { + url = "mirror://gnu/bash/bash-4.2-patches/bash42-${nr}"; + inherit sha256; + }; + in + import ./bash-4.2-patches.nix patch; + + crossAttrs = { + configureFlags = baseConfigureFlags + + " bash_cv_job_control_missing=nomissing bash_cv_sys_named_pipes=nomissing"; + }; + + configureFlags = baseConfigureFlags; + + # Note: Bison is needed because the patches above modify parse.y. + buildNativeInputs = [bison] + ++ stdenv.lib.optional (texinfo != null) texinfo + ++ stdenv.lib.optional interactive readline; + + postInstall = '' + # Add an `sh' -> `bash' symlink. + ln -s bash "$out/bin/sh" + ''; + + meta = { + homepage = http://www.gnu.org/software/bash/; + description = + "GNU Bourne-Again Shell, the de facto standard shell on Linux" + + (if interactive then " (for interactive use)" else ""); + + longDescription = '' + Bash is the shell, or command language interpreter, that will + appear in the GNU operating system. Bash is an sh-compatible + shell that incorporates useful features from the Korn shell + (ksh) and C shell (csh). It is intended to conform to the IEEE + POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers + functional improvements over sh for both programming and + interactive use. In addition, most sh scripts can be run by + Bash without modification. + ''; + + license = "GPLv3+"; + + maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ]; + }; + + passthru = { + shellPath = "/bin/bash"; + }; +} diff --git a/pkgs/shells/bash/bash-patches.nix b/pkgs/shells/bash/bash-4.1-patches.nix similarity index 100% rename from pkgs/shells/bash/bash-patches.nix rename to pkgs/shells/bash/bash-4.1-patches.nix diff --git a/pkgs/shells/bash/bash-4.2-patches.nix b/pkgs/shells/bash/bash-4.2-patches.nix new file mode 100644 index 00000000000..7f4957c500c --- /dev/null +++ b/pkgs/shells/bash/bash-4.2-patches.nix @@ -0,0 +1,14 @@ +# Automatically generated by `update-patch-set.sh'; do not edit. + +patch: [ +(patch "001" "0yml2b6yarrr0dzv7h45lz4126i228hvqbqacqzg4jkcawla0v4d") +(patch "002" "1yffzfxryvqns513yv3r46slkysa3nbqv40442xfxb4rw4kwkfpy") +(patch "003" "1kdl9hcpf1m7gz0ja3mvin3syprl2kmbxc3wm27391wc04apq2js") +(patch "004" "1ha0453cjqdgkns2xkdgpd2izj5b6xlsc9a2w5b3sn6j63wb0d2f") +(patch "005" "182r2iyk27l28b8kyppfavvzxhax6vn5n1zyy3yirf0463klj5x8") +(patch "006" "1labcciavnfmn0alncz1x92ydrsriikcimw24rwzmnidbaa4h4f9") +(patch "007" "15byzdqvavc3zg2lbzzdwpdy43kzdnvmr89nya211pa3yjn2cn20") +(patch "008" "0dr4p83m2xpxhvd61yny0gdlasq6r9mpyiz220998y0alq8hs213") +(patch "009" "086b9jkyjgf2zhwln72d7s5x759iskgg3r4hdrw6b5y1ni059vg7") +(patch "010" "1p23m9kssdmpnjfp96bjmmshzf25cdzlyjygdw8j6sayqa159z5c") +] diff --git a/pkgs/shells/bash/update-patch-set.sh b/pkgs/shells/bash/update-patch-set.sh index ded684571b0..003c7a26d20 100755 --- a/pkgs/shells/bash/update-patch-set.sh +++ b/pkgs/shells/bash/update-patch-set.sh @@ -16,7 +16,7 @@ VERSION="$2" VERSION_CONDENSED="$(echo $VERSION | sed -es/\\.//g)" GPG="$(if $(type -P gpg2 > /dev/null); then echo gpg2; else echo gpg; fi)" -PATCH_LIST="$PROJECT-patches.nix" +PATCH_LIST="$PROJECT-$VERSION-patches.nix" set -e diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f544c06b545..e9a15a34301 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1596,11 +1596,11 @@ let ### SHELLS - bash = lowPrio (callPackage ../shells/bash { + bash = lowPrio (callPackage ../shells/bash/4.1.nix { texinfo = null; }); - bashInteractive = appendToName "interactive" (callPackage ../shells/bash { + bashInteractive = appendToName "interactive" (callPackage ../shells/bash/4.2.nix { interactive = true; }); From 9457c15f418d0892a49a7842c069a7274ee65c44 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Wed, 28 Sep 2011 15:22:58 +0000 Subject: [PATCH 23/76] icu4c-4.8.1 svn path=/nixpkgs/trunk/; revision=29526 --- pkgs/development/libraries/icu/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix index c15bbe2491c..0474b79a847 100644 --- a/pkgs/development/libraries/icu/default.nix +++ b/pkgs/development/libraries/icu/default.nix @@ -2,7 +2,7 @@ let pname = "icu4c"; - version = "4.6"; + version = "4.8.1"; in stdenv.mkDerivation { @@ -11,7 +11,7 @@ stdenv.mkDerivation { src = fetchurl { url = "http://download.icu-project.org/files/${pname}/${version}/${pname}-" + (stdenv.lib.replaceChars ["."] ["_"] version) + "-src.tgz"; - sha256 = "1z6zklqdf6pq7fckk8ar4vmfrnw79bih6yc8gwc7k2vx2alav8dm"; + sha256 = "13zq190gl54zr84f0k48w9knarjsb966jkailyy06yhqjipcv90r"; }; postUnpack = " From e2c4af0946a31d830ce7bd88952e8d845b16b540 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Wed, 28 Sep 2011 15:23:28 +0000 Subject: [PATCH 24/76] Update opera to the latest version Also add missing dependencies (KDE, cups, gstreamer) svn path=/nixpkgs/trunk/; revision=29527 --- .../networking/browsers/opera/builder.sh | 39 --------- .../networking/browsers/opera/default.nix | 87 +++++++++++++------ pkgs/top-level/all-packages.nix | 4 +- 3 files changed, 64 insertions(+), 66 deletions(-) delete mode 100644 pkgs/applications/networking/browsers/opera/builder.sh diff --git a/pkgs/applications/networking/browsers/opera/builder.sh b/pkgs/applications/networking/browsers/opera/builder.sh deleted file mode 100644 index de4a413e4ac..00000000000 --- a/pkgs/applications/networking/browsers/opera/builder.sh +++ /dev/null @@ -1,39 +0,0 @@ -source $stdenv/setup - -buildPhase() { - true -} - -installPhase() { - substituteInPlace install --replace /bin/pwd pwd - substituteInPlace install --replace /usr/local "$out" - - # Note: the "no" is because the install scripts asks whether we - # want to install icons in some system-wide directories. - - ensureDir "$out" - - ./install --text --system - - [ -z ${system##*64*} ] && suf=64 - - find $out -type f | while read f; do - echo testing "$f" - # patch all executables - if readelf -h "$f" | grep 'EXEC (Executable file)' &> /dev/null; then - echo "patching $f <<" - patchelf \ - --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ - --set-rpath "$libPath" \ - "$f" - fi - done - - # Substitute pwd as late as possible so that the md5 checksum check of opera passes. - substituteInPlace $out/bin/opera --replace /bin/pwd pwd - - ensureDir $out/share/applications - cp $desktopItem/share/applications/* $out/share/applications -} - -genericBuild diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix index 8b7ef628044..3dddc856963 100644 --- a/pkgs/applications/networking/browsers/opera/default.nix +++ b/pkgs/applications/networking/browsers/opera/default.nix @@ -1,46 +1,81 @@ -{ stdenv, fetchurl, qt, zlib, libX11, libXext, libSM, libICE, libXt, glibc -, makeDesktopItem, freetype, fontconfig, libXft, libXrender +{ stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libXt +, freetype, fontconfig, libXft, libXrender, libxcb, expat, libXau, libXdmcp +, libuuid, cups, xz +, gstreamer, gstPluginsBase, libxml2 +, gtkSupport ? true, glib, gtk, pango, gdk_pixbuf, cairo, atk +, kdeSupport ? false, qt4, kdelibs }: -assert stdenv.isLinux && stdenv.gcc.gcc != null; +assert stdenv.isLinux && stdenv.gcc.gcc != null && stdenv.gcc.libc != null; + +let + mirror = ftp://ftp.ussg.iu.edu/pub/opera; +in stdenv.mkDerivation rec { - name = "opera-10.63"; + name = "opera-11.51-1087"; - builder = ./builder.sh; + buildNativeInputs = [ xz ]; src = if stdenv.system == "i686-linux" then fetchurl { - url = "http://mirror.liteserver.nl/pub/opera/linux/1063/opera-10.63-6450.i386.linux.tar.bz2"; - sha256 = "dd105d602a4b8897749a4cb9610f8bfe2d07d4f4cc9bf3905930c65592737259"; + url = "${mirror}/linux/1151/${name}.i386.linux.tar.bz2"; + sha256 = "1baaim404g8nwd7knbl1p1ardpx36ib5159nkvqfnnavfyhkinp2"; } else if stdenv.system == "x86_64-linux" then fetchurl { - url = "http://mirror.liteserver.nl/pub/opera/linux/1063/opera-10.63-6450.x86_64.linux.tar.bz2"; - sha256 = "da8ae14cf317364ab0295102220246b205bf30c59c00cadb571395c90dda7c74"; + url = "${mirror}/linux/1151/${name}.x86_64.linux.tar.xz"; + sha256 = "1bciqyfhhdywaasj717by1a975ywf672r3pv9cw9bn0b90pgp933"; } else throw "Opera is not supported on ${stdenv.system} (only i686-linux and x86_64 linux are supported)"; dontStrip = 1; - - # `operapluginwrapper' requires libXt. Adding it makes startup faster - # and omits error messages (on x86). - libPath = - let list = [ stdenv.gcc.gcc glibc qt zlib libX11 libXt libXext libSM libICE libXft freetype fontconfig - libXrender]; - in stdenv.lib.makeLibraryPath list - + ":" + (if stdenv.system == "x86_64-linux" then stdenv.lib.makeSearchPath "lib64" list else ""); - desktopItem = makeDesktopItem { - name = "Opera"; - exec = "opera"; - icon = "opera"; - comment = "Opera Web Browser"; - desktopName = "Opera"; - genericName = "Web Browser"; - categories = "Application;Network;"; - }; + phases = "unpackPhase installPhase fixupPhase"; + + installPhase = '' + ./install --unattended --prefix $out + ''; + + buildInputs = + [ stdenv.gcc.gcc stdenv.gcc.libc zlib libX11 libXt libXext libSM libICE + libXft freetype fontconfig libXrender libuuid expat + gstreamer libxml2 gstPluginsBase + ] + ++ stdenv.lib.optionals gtkSupport [ glib gtk pango gdk_pixbuf cairo atk ] + ++ stdenv.lib.optionals kdeSupport [ kdelibs qt4 ]; + + libPath = stdenv.lib.makeLibraryPath buildInputs + + stdenv.lib.optionalString (stdenv.system == "x86_64-linux") + (":" + stdenv.lib.makeSearchPath "lib64" buildInputs); + + preFixup = + '' + find $out/lib/opera -type f | while read f; do + type=$(readelf -h "$f" 2>/dev/null | grep 'Type:' | sed -e 's/ *Type: *\([A-Z]*\) (.*/\1/') + if [ -z "$type" ]; then + : + elif [ $type == "EXEC" ]; then + echo "patching $f executable <<" + patchelf \ + --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}" \ + "$f" + elif [ $type == "DYN" ]; then + echo "patching $f library <<" + patchelf --set-rpath "${libPath}" "$f" + else + echo "Unknown type $type" + exit 1 + fi + done + ''; + + postFixup = '' + oldRPATH=`patchelf --print-rpath $out/lib/opera/opera` + patchelf --set-rpath $oldRPATH:${cups}/lib $out/lib/opera/opera + ''; meta = { homepage = http://www.opera.com; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e9a15a34301..d40589ade43 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7059,7 +7059,9 @@ let }; opera = callPackage ../applications/networking/browsers/opera { - qt = qt3; + inherit (pkgs.gtkLibs) gdk_pixbuf atk; + inherit (pkgs.kde4) kdelibs; + inherit (pkgs.gst_all) gstreamer gstPluginsBase; }; pan = callPackage ../applications/networking/newsreaders/pan { From 9e6178ed744bf8135a0fe8015c9014f5d4f81637 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 28 Sep 2011 16:48:06 +0000 Subject: [PATCH 25/76] haskell-criterion: updated to version 0.5.1.0 svn path=/nixpkgs/trunk/; revision=29528 --- .../libraries/haskell/criterion/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/haskell/criterion/default.nix b/pkgs/development/libraries/haskell/criterion/default.nix index 0a7f23a38ac..f567569a6f6 100644 --- a/pkgs/development/libraries/haskell/criterion/default.nix +++ b/pkgs/development/libraries/haskell/criterion/default.nix @@ -1,13 +1,13 @@ -{ cabal, deepseq, mtl, mwcRandom, parsec, statistics, time, vector -, vectorAlgorithms +{ cabal, aeson, deepseq, mtl, mwcRandom, parsec, statistics, time +, vector, vectorAlgorithms }: cabal.mkDerivation (self: { pname = "criterion"; - version = "0.5.0.10"; - sha256 = "0sd289s7wnyg0p37j327hv55aw4a18bdv56z26v4qi3j8p2fbpbj"; + version = "0.5.1.0"; + sha256 = "0v43dm1d84zvn32q89dq0nh4dvqr4r6fjdzwcjac0mjics3iy29d"; buildDepends = [ - deepseq mtl mwcRandom parsec statistics time vector + aeson deepseq mtl mwcRandom parsec statistics time vector vectorAlgorithms ]; meta = { From 5048bc7f21544f5b5f0798289157aaa217aaa918 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 28 Sep 2011 16:48:13 +0000 Subject: [PATCH 26/76] haskell-happstack-util: updated to version 6.0.2 svn path=/nixpkgs/trunk/; revision=29529 --- .../libraries/haskell/happstack/happstack-util.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/happstack/happstack-util.nix b/pkgs/development/libraries/haskell/happstack/happstack-util.nix index de4c1b9990c..faeb174f251 100644 --- a/pkgs/development/libraries/haskell/happstack/happstack-util.nix +++ b/pkgs/development/libraries/haskell/happstack/happstack-util.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "happstack-util"; - version = "6.0.0"; - sha256 = "06qla74kb58q0rvlfa9k16s4crnylq99hm80xx4phlddyzn0cy4z"; + version = "6.0.2"; + sha256 = "03qlnclpg72iflry1xlkd0sxqm6nybvx113la9r0cmsnz17y546a"; isLibrary = true; isExecutable = true; buildDepends = [ From 4cdafb258c230ffbe815f95e2f6114761f465557 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 28 Sep 2011 16:48:17 +0000 Subject: [PATCH 27/76] haskell-hlint: updated to version 1.8.16 svn path=/nixpkgs/trunk/; revision=29530 --- pkgs/development/tools/haskell/hlint/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix index da117157f22..be66cfc0680 100644 --- a/pkgs/development/tools/haskell/hlint/default.nix +++ b/pkgs/development/tools/haskell/hlint/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "hlint"; - version = "1.8.15"; - sha256 = "1hi2qapi8lb7cawjzvpknp8qvsnfw3glxyyd5m2lbp3rvkx0d6kr"; + version = "1.8.16"; + sha256 = "0crahq7fvhf0qvjcpjnmv5yh29l52cv7rgfwrc6ka4q0dm9r49vb"; isLibrary = true; isExecutable = true; buildDepends = [ From 60b155479dda13aebe5bd431e031b1ce86cf90a4 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 20:48:08 +0000 Subject: [PATCH 28/76] linux-3.0: Add aufs3 patch svn path=/nixpkgs/trunk/; revision=29532 --- pkgs/os-specific/linux/kernel/patches.nix | 46 ++++++++++++++++++++++- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 2b0d76d76ed..98e8b41d22d 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ stdenv, fetchurl, fetchgit }: let @@ -36,6 +36,38 @@ let }; }; + makeAufs3StandalonePatch = {kernelSrc, version, rev, sha256}: + + stdenv.mkDerivation { + name = "aufs3-standalone-${version}.patch"; + + src = fetchgit { + url = git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git; + inherit sha256 rev; + }; + + #Instructions from http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs3-standalone.git;a=blob;f=Documentation/filesystems/aufs/README;h=b8cf077635b323d1b454266366f05f476bbd09cb;hb=1067b9d8d64d23c70d905c9cd3c90a669e39c4d4 + buildPhase = '' + tar xvf ${kernelSrc} + mv -v linux* a + cp -av a b + cd b + patch -Np1 -i ../aufs3-kbuild.patch + patch -Np1 -i ../aufs3-base.patch + patch -Np1 -i ../aufs3-proc_map.patch + patch -Np1 -i ../aufs3-standalone.patch + cp -av ../{Documentation,fs} . + cp -av ../include/linux/aufs_type.h include/linux/aufs_type.h + ''; + + installPhase = '' + cd .. + set +e + diff -Naur a b > $out + set -e + ''; + }; + in rec { @@ -272,6 +304,18 @@ rec { features.aufs2_1 = true; }; + aufs3_0 = kernelSrc: + { name = "aufs3.0"; + patch = makeAufs3StandalonePatch { + inherit kernelSrc; + version = "3.0"; + rev = "1067b9d8d64d23c70d905c9cd3c90a669e39c4d4"; + sha256 = "b508cab5987a623f057ae5fdc006c909a6bae6151af6e12fe672bf97b1a7549d"; + }; + features.aufsBase = true; + features.aufs3 = true; + }; + # Increase the timeout on CIFS requests from 15 to 120 seconds to # make CIFS more resilient to high load on the CIFS server. cifs_timeout_2_6_15 = diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d40589ade43..3fd09b0b6f0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5550,6 +5550,7 @@ let kernelPatches = [ #kernelPatches.fbcondecor_2_6_38 kernelPatches.sec_perm_2_6_24 + (kernelPatches.aufs3_0 linux_3_0.src) #kernelPatches.aufs2_1_3_0 #kernelPatches.mips_restart_2_6_36 ]; From 2e012018bb4a457fde7d660a8c195db4c247da72 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 21:09:54 +0000 Subject: [PATCH 29/76] makeAufs3StandalonePatch: Don't unpack the kernel source svn path=/nixpkgs/trunk/; revision=29533 --- pkgs/os-specific/linux/kernel/patches.nix | 25 +++++------------------ pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 98e8b41d22d..3f66fcb8850 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -36,7 +36,7 @@ let }; }; - makeAufs3StandalonePatch = {kernelSrc, version, rev, sha256}: + makeAufs3StandalonePatch = {version, rev, sha256}: stdenv.mkDerivation { name = "aufs3-standalone-${version}.patch"; @@ -46,25 +46,11 @@ let inherit sha256 rev; }; - #Instructions from http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs3-standalone.git;a=blob;f=Documentation/filesystems/aufs/README;h=b8cf077635b323d1b454266366f05f476bbd09cb;hb=1067b9d8d64d23c70d905c9cd3c90a669e39c4d4 - buildPhase = '' - tar xvf ${kernelSrc} - mv -v linux* a - cp -av a b - cd b - patch -Np1 -i ../aufs3-kbuild.patch - patch -Np1 -i ../aufs3-base.patch - patch -Np1 -i ../aufs3-proc_map.patch - patch -Np1 -i ../aufs3-standalone.patch - cp -av ../{Documentation,fs} . - cp -av ../include/linux/aufs_type.h include/linux/aufs_type.h - ''; + phases = [ "unpackPhase" "installPhase" ]; + #Instructions from http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs3-standalone.git;a=blob;f=Documentation/filesystems/aufs/README;h=b8cf077635b323d1b454266366f05f476bbd09cb;hb=1067b9d8d64d23c70d905c9cd3c90a669e39c4d4 installPhase = '' - cd .. - set +e - diff -Naur a b > $out - set -e + cat aufs3-base.patch aufs3-proc_map.patch aufs3-standalone.patch > $out ''; }; @@ -304,10 +290,9 @@ rec { features.aufs2_1 = true; }; - aufs3_0 = kernelSrc: + aufs3_0 = { name = "aufs3.0"; patch = makeAufs3StandalonePatch { - inherit kernelSrc; version = "3.0"; rev = "1067b9d8d64d23c70d905c9cd3c90a669e39c4d4"; sha256 = "b508cab5987a623f057ae5fdc006c909a6bae6151af6e12fe672bf97b1a7549d"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3fd09b0b6f0..1c93b070c08 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5550,7 +5550,7 @@ let kernelPatches = [ #kernelPatches.fbcondecor_2_6_38 kernelPatches.sec_perm_2_6_24 - (kernelPatches.aufs3_0 linux_3_0.src) + kernelPatches.aufs3_0 #kernelPatches.aufs2_1_3_0 #kernelPatches.mips_restart_2_6_36 ]; From 4add420a480265b7185896ca0aadb394d1da383c Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 21:46:07 +0000 Subject: [PATCH 30/76] aufs3 kernelPackage svn path=/nixpkgs/trunk/; revision=29534 --- pkgs/os-specific/linux/aufs3/default.nix | 41 +++++++++++++++++++++++ pkgs/os-specific/linux/kernel/generic.nix | 2 +- pkgs/os-specific/linux/kernel/patches.nix | 19 ++++++----- pkgs/top-level/all-packages.nix | 4 +++ 4 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 pkgs/os-specific/linux/aufs3/default.nix diff --git a/pkgs/os-specific/linux/aufs3/default.nix b/pkgs/os-specific/linux/aufs3/default.nix new file mode 100644 index 00000000000..a47dd9cb445 --- /dev/null +++ b/pkgs/os-specific/linux/aufs3/default.nix @@ -0,0 +1,41 @@ +{ stdenv, kernel, perl }: + +let + + aufsPredicate = x: + if x ? features then + (if x.features ? aufs3 then x.features.aufs3 else false) + else false; + featureAbort = abort "This kernel does not have aufs 3 support"; + patch = stdenv.lib.findFirst aufsPredicate featureAbort kernel.kernelPatches; + +in + +stdenv.mkDerivation { + name = "aufs3-${patch.version}"; + + src = patch.patch.src; + + buildInputs = [ perl ]; + + makeFlags = "KDIR=${kernel}/lib/modules/${kernel.modDirVersion}/build"; + + installPhase = + '' + ensureDir $out/lib/modules/${kernel.modDirVersion}/misc + cp -v aufs.ko $out/lib/modules/${kernel.modDirVersion}/misc + + # Install the headers because aufs3-util requires them. + ensureDir $out/include/linux + cp -v usr/include/linux/aufs_type.h $out/include/linux + ''; + + meta = { + description = "Another Unionfs implementation for Linux (third generation)"; + homepage = http://aufs.sourceforge.net/; + maintainers = [ stdenv.lib.maintainers.eelco + stdenv.lib.maintainers.raskin + stdenv.lib.maintainers.shlevy ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index a86aef1af8e..af62125eb75 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -69,7 +69,7 @@ stdenv.mkDerivation { enableParallelBuilding = true; passthru = { - inherit version modDirVersion; + inherit version modDirVersion kernelPatches; # Combine the `features' attribute sets of all the kernel patches. features = lib.fold (x: y: (if x ? features then x.features else {}) // y) features kernelPatches; }; diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 3f66fcb8850..79e02753f32 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -290,16 +290,17 @@ rec { features.aufs2_1 = true; }; - aufs3_0 = - { name = "aufs3.0"; - patch = makeAufs3StandalonePatch { - version = "3.0"; - rev = "1067b9d8d64d23c70d905c9cd3c90a669e39c4d4"; - sha256 = "b508cab5987a623f057ae5fdc006c909a6bae6151af6e12fe672bf97b1a7549d"; - }; - features.aufsBase = true; - features.aufs3 = true; + aufs3_0 = rec { + name = "aufs3.0"; + version = "3.0"; + patch = makeAufs3StandalonePatch { + inherit version; + rev = "1067b9d8d64d23c70d905c9cd3c90a669e39c4d4"; + sha256 = "b508cab5987a623f057ae5fdc006c909a6bae6151af6e12fe672bf97b1a7549d"; }; + features.aufsBase = true; + features.aufs3 = true; + }; # Increase the timeout on CIFS requests from 15 to 120 seconds to # make CIFS more resilient to high load on the CIFS server. diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1c93b070c08..ece8cfe76b8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5588,6 +5588,10 @@ let callPackage ../os-specific/linux/aufs2.1 { } else null; + aufs3 = if kernel.features ? aufs3 then + callPackage ../os-specific/linux/aufs3 { } + else null; + aufs2_1_util = if kernel.features ? aufs2_1 then callPackage ../os-specific/linux/aufs2.1-util { } else null; From ed38cc3545a028bb4e019084cb26012e801cf017 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 21:59:07 +0000 Subject: [PATCH 31/76] aufs3-util svn path=/nixpkgs/trunk/; revision=29535 --- pkgs/os-specific/linux/aufs3-util/default.nix | 39 +++++++++++++++++++ pkgs/os-specific/linux/aufs3/default.nix | 1 + pkgs/os-specific/linux/kernel/patches.nix | 2 + pkgs/top-level/all-packages.nix | 4 ++ 4 files changed, 46 insertions(+) create mode 100644 pkgs/os-specific/linux/aufs3-util/default.nix diff --git a/pkgs/os-specific/linux/aufs3-util/default.nix b/pkgs/os-specific/linux/aufs3-util/default.nix new file mode 100644 index 00000000000..00c3e99c457 --- /dev/null +++ b/pkgs/os-specific/linux/aufs3-util/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchgit, kernel, aufs3 }: + +stdenv.mkDerivation { + name = "aufs3-util-${aufs3.patch.version}"; + + src = fetchgit { + url = git://aufs.git.sourceforge.net/gitroot/aufs/aufs-util.git; + rev = aufs3.patch.utilRev; + sha256 = aufs3.patch.utilHash; + }; + + buildInputs = [ aufs3 ]; + + makeFlags = + [ "KDIR=${kernel}/lib/modules/${kernel.modDirVersion}/build" + "Install=install" + "DESTDIR=$(out)" + ]; + + postInstall = + '' + mv $out/usr/* $out + rmdir $out/usr + + cp aufs.shlib $out/lib/ + + substituteInPlace $out/bin/aubrsync \ + --replace /sbin/mount $out/sbin/mount \ + --replace /usr/lib/aufs.shlib $out/lib/aufs.shlib + ''; + + meta = { + description = "Utilities for AUFS3"; + homepage = http://aufs.sourceforge.net/; + maintainers = [ stdenv.lib.maintainers.eelco + stdenv.lib.maintainers.shlevy ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/os-specific/linux/aufs3/default.nix b/pkgs/os-specific/linux/aufs3/default.nix index a47dd9cb445..bf73e6510f7 100644 --- a/pkgs/os-specific/linux/aufs3/default.nix +++ b/pkgs/os-specific/linux/aufs3/default.nix @@ -30,6 +30,7 @@ stdenv.mkDerivation { cp -v usr/include/linux/aufs_type.h $out/include/linux ''; + passthru = { inherit patch; }; meta = { description = "Another Unionfs implementation for Linux (third generation)"; homepage = http://aufs.sourceforge.net/; diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 79e02753f32..32a29af148e 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -293,6 +293,8 @@ rec { aufs3_0 = rec { name = "aufs3.0"; version = "3.0"; + utilRev = "a08d17d433567c7c2586c5fc2625a714b20fe155"; + utilHash = "4772c1c6a36da7bbd448057c227a9cd1856ccf72748765cf85421ab0c4e34535"; patch = makeAufs3StandalonePatch { inherit version; rev = "1067b9d8d64d23c70d905c9cd3c90a669e39c4d4"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ece8cfe76b8..128daf26d16 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5598,6 +5598,10 @@ let aufs2_util = callPackage ../os-specific/linux/aufs2-util { }; + aufs3_util = if kernel.features ? aufs3 then + callPackage ../os-specific/linux/aufs3-util { } + else null; + blcr = callPackage ../os-specific/linux/blcr { #libtool = libtool_1_5; # libtool 2 causes a fork bomb }; From f979d3de4ef5ad83b5da4a0883fa540145c5a6b7 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 22:13:59 +0000 Subject: [PATCH 32/76] Add features.aufs2 to old kernels svn path=/nixpkgs/trunk/; revision=29536 --- pkgs/os-specific/linux/kernel/patches.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 32a29af148e..672464e8965 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -211,6 +211,7 @@ rec { name = "aufs2"; patch = ./aufs2.patch; features.aufsBase = true; + features.aufs2 = true; }; aufs2_2_6_33 = @@ -220,6 +221,7 @@ rec { name = "aufs2"; patch = ./aufs2-33.patch; features.aufsBase = true; + features.aufs2 = true; }; aufs2_2_6_34 = @@ -229,6 +231,7 @@ rec { name = "aufs2"; patch = ./aufs2-34.patch; features.aufsBase = true; + features.aufs2 = true; }; aufs2_2_6_35 = @@ -238,6 +241,7 @@ rec { name = "aufs2"; patch = ./aufs2-35.patch; features.aufsBase = true; + features.aufs2 = true; }; aufs2_2_6_36 = From 5143705396fed28d82ea70ecb6cf12a2888ba56b Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 22:34:46 +0000 Subject: [PATCH 33/76] Get Theme-GNU directly from spock while kernel.org is down svn path=/nixpkgs/trunk/; revision=29537 --- pkgs/data/misc/themes/theme-gnu.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/misc/themes/theme-gnu.nix b/pkgs/data/misc/themes/theme-gnu.nix index f04c820e0e9..32d1a9256ac 100644 --- a/pkgs/data/misc/themes/theme-gnu.nix +++ b/pkgs/data/misc/themes/theme-gnu.nix @@ -1,5 +1,5 @@ {fetchurl, ...}: fetchurl { - url = http://mirrors.kernel.org/gentoo/distfiles/Theme-GNU.tar.bz2; - md5 = "61969309d23c631e57b0a311102ef034"; + url = http://dev.gentoo.org/~spock/repos/bootsplash/Theme-GNU.tar.bz2; + sha256 = "1pj91nxvwjphc8r6idl4ih3ldyk34j1w9c4p8gzmwnwg3w34xha0"; } From 107e39b2142c487b6d3f1dc647ea384442ee98b6 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 23:15:30 +0000 Subject: [PATCH 34/76] linux-3.1: rc8 svn path=/nixpkgs/trunk/; revision=29539 --- pkgs/os-specific/linux/kernel/linux-3.1.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-3.1.nix b/pkgs/os-specific/linux/kernel/linux-3.1.nix index a87554ae71a..ae78de1e476 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.1.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.1.nix @@ -200,13 +200,13 @@ in import ./generic.nix ( rec { - version = "3.1-rc7"; + version = "3.1-rc8"; - modDirVersion = "3.1.0-rc7"; + modDirVersion = "3.1.0-rc8"; src = fetchurl { url = "https://github.com/torvalds/linux/tarball/v${version}"; - sha256 = "05zlg522svyym6cab7lrqpihzrk8j356dyahyc321nd8yw0qfv2x"; + sha256 = "1sz6snv2wavzasrswaprkjpzpll4247v4br0x2i6sndl2nqa6jz7"; name = "v${version}.tar.gz"; }; From cba02ddc3c814ec1f9b84337f7e05ddcbf6fa899 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 28 Sep 2011 23:38:39 +0000 Subject: [PATCH 35/76] aufs2: Only build if the kernel supports it svn path=/nixpkgs/trunk/; revision=29540 --- pkgs/top-level/all-packages.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 128daf26d16..9c7e4435e13 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5582,7 +5582,9 @@ let aufs = callPackage ../os-specific/linux/aufs { }; - aufs2 = callPackage ../os-specific/linux/aufs2 { }; + aufs2 = if kernel.features ? aufs2 then + callPackage ../os-specific/linux/aufs2 { } + else null; aufs2_1 = if kernel.features ? aufs2_1 then callPackage ../os-specific/linux/aufs2.1 { } @@ -5592,12 +5594,14 @@ let callPackage ../os-specific/linux/aufs3 { } else null; + aufs2_util = if kernel.features ? aufs2 then + callPackage ../os-specific/linux/aufs2-util { } + else null; + aufs2_1_util = if kernel.features ? aufs2_1 then callPackage ../os-specific/linux/aufs2.1-util { } else null; - aufs2_util = callPackage ../os-specific/linux/aufs2-util { }; - aufs3_util = if kernel.features ? aufs3 then callPackage ../os-specific/linux/aufs3-util { } else null; From 9f3fb4b1aee8f76095dcdd1bb4638b3f434d1f56 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Thu, 29 Sep 2011 20:57:47 +0000 Subject: [PATCH 36/76] Add a working kernel.org mirror svn path=/nixpkgs/trunk/; revision=29541 --- pkgs/build-support/fetchurl/mirrors.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix index 713e7db0e3c..b8925f89303 100644 --- a/pkgs/build-support/fetchurl/mirrors.nix +++ b/pkgs/build-support/fetchurl/mirrors.nix @@ -98,6 +98,7 @@ rec { http://www.eu.kernel.org/pub/ http://www.de.kernel.org/pub/ http://ramses.wh2.tu-dresden.de/pub/mirrors/kernel.org/ + http://linux-kernel.uio.no/pub/ ]; # Mirrors of ftp://ftp.kde.org/pub/kde/. From a54473bc5d50b55e87742aaa9125e23f53879cda Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Thu, 29 Sep 2011 21:55:12 +0000 Subject: [PATCH 37/76] Use ruby 1.9 as the default svn path=/nixpkgs/trunk/; revision=29543 --- pkgs/development/interpreters/ruby/default.nix | 10 +++++----- .../interpreters/ruby/{ruby-19.nix => ruby-18.nix} | 10 +++++----- pkgs/development/interpreters/ruby/rubygems.nix | 4 ---- pkgs/top-level/all-packages.nix | 6 +++--- 4 files changed, 13 insertions(+), 17 deletions(-) rename pkgs/development/interpreters/ruby/{ruby-19.nix => ruby-18.nix} (84%) diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index fcd57205dcf..d5ccb19caec 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -17,8 +17,8 @@ stdenv.mkDerivation rec { name = "ruby-${version}"; src = fetchurl { - url = "ftp://ftp.ruby-lang.org/pub/ruby/1.8/${name}.tar.gz"; - sha256 = "0qf50wa1ziziagnxarj8z6yrsivrhchq1j9017ff3z2z7d31l9kc"; + url = "ftp://ftp.ruby-lang.org/pub/ruby/1.9/${name}.tar.gz"; + sha256 = "0zmxdqzprbdc5mvmba1i94mpqnqxxlh460jri7bx6i29bibigj0w"; }; # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. @@ -43,9 +43,9 @@ stdenv.mkDerivation rec { }; passthru = rec { - majorVersion = "1.8"; - minorVersion = "7"; - patchLevel = "330"; + majorVersion = "1.9"; + minorVersion = "2"; + patchLevel = "290"; libPath = "lib/ruby/${majorVersion}"; gemPath = "lib/ruby/gems/${majorVersion}"; }; diff --git a/pkgs/development/interpreters/ruby/ruby-19.nix b/pkgs/development/interpreters/ruby/ruby-18.nix similarity index 84% rename from pkgs/development/interpreters/ruby/ruby-19.nix rename to pkgs/development/interpreters/ruby/ruby-18.nix index d5ccb19caec..fcd57205dcf 100644 --- a/pkgs/development/interpreters/ruby/ruby-19.nix +++ b/pkgs/development/interpreters/ruby/ruby-18.nix @@ -17,8 +17,8 @@ stdenv.mkDerivation rec { name = "ruby-${version}"; src = fetchurl { - url = "ftp://ftp.ruby-lang.org/pub/ruby/1.9/${name}.tar.gz"; - sha256 = "0zmxdqzprbdc5mvmba1i94mpqnqxxlh460jri7bx6i29bibigj0w"; + url = "ftp://ftp.ruby-lang.org/pub/ruby/1.8/${name}.tar.gz"; + sha256 = "0qf50wa1ziziagnxarj8z6yrsivrhchq1j9017ff3z2z7d31l9kc"; }; # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. @@ -43,9 +43,9 @@ stdenv.mkDerivation rec { }; passthru = rec { - majorVersion = "1.9"; - minorVersion = "2"; - patchLevel = "290"; + majorVersion = "1.8"; + minorVersion = "7"; + patchLevel = "330"; libPath = "lib/ruby/${majorVersion}"; gemPath = "lib/ruby/gems/${majorVersion}"; }; diff --git a/pkgs/development/interpreters/ruby/rubygems.nix b/pkgs/development/interpreters/ruby/rubygems.nix index 60e83332c08..0d93b330ca0 100644 --- a/pkgs/development/interpreters/ruby/rubygems.nix +++ b/pkgs/development/interpreters/ruby/rubygems.nix @@ -1,16 +1,12 @@ args : with args; rec { - # some packages (eg ruby-debug) still require 1.8. So let's stick to that for - # now if nobody has different requirements - version = "1.8.10"; src = fetchurl { url = "http://production.cf.rubygems.org/rubygems/${name}.tgz"; sha256 = "0ll5swf4mi4nbgnr5jcyzmnlwb1zr2md9kvsgy3d1f485bb1n59q"; }; - buildInputs = [ruby makeWrapper]; configureFlags = []; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9c7e4435e13..21881994ac7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2601,9 +2601,9 @@ let regina = callPackage ../development/interpreters/regina {}; - ruby18 = callPackage ../development/interpreters/ruby { }; - ruby19 = callPackage ../development/interpreters/ruby/ruby-19.nix { }; - ruby = ruby18; + ruby18 = callPackage ../development/interpreters/ruby/ruby-18.nix { }; + ruby19 = callPackage ../development/interpreters/ruby { }; + ruby = ruby19; rubyLibs = recurseIntoAttrs (callPackage ../development/interpreters/ruby/libs.nix { }); From 8e02768459674b6d7478b5d39d732fc8a989a13e Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Fri, 30 Sep 2011 07:10:47 +0000 Subject: [PATCH 38/76] Firefox 7.0 release svn path=/nixpkgs/trunk/; revision=29544 --- pkgs/applications/networking/browsers/firefox/7.0.nix | 6 +++--- pkgs/top-level/all-packages.nix | 4 ++-- pkgs/top-level/release.nix | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/browsers/firefox/7.0.nix b/pkgs/applications/networking/browsers/firefox/7.0.nix index d9e94ead33a..c14386e5f9e 100644 --- a/pkgs/applications/networking/browsers/firefox/7.0.nix +++ b/pkgs/applications/networking/browsers/firefox/7.0.nix @@ -15,14 +15,14 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null; rec { - firefoxVersion = "7.0b1"; + firefoxVersion = "7.0"; xulVersion = "7.0"; # this attribute is used by other packages src = fetchurl { - url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/${firefoxVersion}-candidates/build1/source/firefox-${firefoxVersion}.source.tar.bz2"; - sha256 = "0s8lv07nggdf8ad2yx7sgq1mfy1dvzir0f6x4km911yc9qyhwmwk"; + url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"; + sha256 = "1fpadlsdc8d739cz52dicn68v2ilv044hxivilgy9jnrazznrm42"; }; commonConfigureFlags = diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 21881994ac7..7528fb7264e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6576,12 +6576,12 @@ let firefox60Wrapper = wrapFirefox firefox60Pkgs.firefox "firefox" ""; - firefox70b1Pkgs = callPackage ../applications/networking/browsers/firefox/7.0.nix { + firefox70Pkgs = callPackage ../applications/networking/browsers/firefox/7.0.nix { inherit (gtkLibs) gtk pango; inherit (gnome) libIDL; }; - firefox70b1Wrapper = lowPrio (wrapFirefox firefox70b1Pkgs.firefox "firefox" ""); + firefox70Wrapper = lowPrio (wrapFirefox firefox70Pkgs.firefox "firefox" ""); flac = callPackage ../applications/audio/flac { }; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 1e189d06242..247b9be61ad 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -387,6 +387,7 @@ with (import ./release-lib.nix); firefox36Pkgs.firefox = linux; firefox50Pkgs.firefox = linux; firefox60Pkgs.firefox = linux; + firefox70Pkgs.firefox = linux; gnome = { gnome_panel = linux; From a8a3ede5e9023a214ceafc79527a35786f4de5e4 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Fri, 30 Sep 2011 15:44:22 +0000 Subject: [PATCH 39/76] Adding Firefox 8.0beta1 svn path=/nixpkgs/trunk/; revision=29549 --- .../networking/browsers/firefox/8.0.nix | 180 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 5 + 2 files changed, 185 insertions(+) create mode 100644 pkgs/applications/networking/browsers/firefox/8.0.nix diff --git a/pkgs/applications/networking/browsers/firefox/8.0.nix b/pkgs/applications/networking/browsers/firefox/8.0.nix new file mode 100644 index 00000000000..f6807056529 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox/8.0.nix @@ -0,0 +1,180 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs +, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify +, yasm, mesa, sqlite, unzip + +, # If you want the resulting program to call itself "Firefox" instead + # of "Shiretoko" or whatever, enable this option. However, those + # binaries may not be distributed without permission from the + # Mozilla Foundation, see + # http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false +}: + +assert stdenv.gcc ? libc && stdenv.gcc.libc != null; + +rec { + + firefoxVersion = "8.0b1"; + + xulVersion = "8.0"; # this attribute is used by other packages + + + src = fetchurl { + url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/${firefoxVersion}-candidates/build1/source/firefox-${firefoxVersion}.source.tar.bz2"; + sha256 = "1sdahpawgngvjh4cap2vdg00ngiwji5nkb40dh5kd393wa6c8mpm"; + }; + + commonConfigureFlags = + [ "--enable-optimize" + "--disable-debug" + "--enable-strip" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + "--with-system-nspr" + # "--with-system-nss" + # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" + "--enable-system-cairo" + "--enable-system-sqlite" + "--disable-crashreporter" + "--disable-tests" + "--disable-necko-wifi" # maybe we want to enable this at some point + "--disable-installer" + "--disable-updater" + ]; + + + xulrunner = stdenv.mkDerivation rec { + name = "xulrunner-${xulVersion}"; + + inherit src; + + buildInputs = + [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 + python dbus dbus_glib pango freetype fontconfig xlibs.libXi + xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file + alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa + xlibs.libXScrnSaver xlibs.scrnsaverproto + xlibs.libXext xlibs.xextproto sqlite unzip + ]; + + configureFlags = + [ "--enable-application=xulrunner" + "--disable-javaxpcom" + ] ++ commonConfigureFlags; + + enableParallelBuilding = true; + + # Hack to work around make's idea of -lbz2 dependency + preConfigure = + '' + find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${ + stdenv.lib.concatStringsSep ":" + (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc])) + }' ';' + + export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}" + ''; + + # !!! Temporary hack. + preBuild = + '' + export NIX_ENFORCE_PURITY= + ''; + + installFlags = "SKIP_GRE_REGISTRATION=1"; + + postInstall = '' + # Fix some references to /bin paths in the Xulrunner shell script. + substituteInPlace $out/bin/xulrunner \ + --replace /bin/pwd "$(type -tP pwd)" \ + --replace /bin/ls "$(type -tP ls)" + + # Fix run-mozilla.sh search + libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*) + echo libDir: $libDir + test -n "$libDir" + cd $out/bin + mv xulrunner ../lib/$libDir/ + + for i in $out/lib/$libDir/*; do + file $i; + if file $i | grep executable &>/dev/null; then + echo -e '#! /bin/sh\n"'"$i"'" "$@"' > "$out/bin/$(basename "$i")"; + chmod a+x "$out/bin/$(basename "$i")"; + fi; + done; + for i in $out/lib/$libDir/{xpcshell,plugin-container,*.so}; do + patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true + done; + rm -f $out/bin/run-mozilla.sh + ''; # */ + + meta = { + description = "Mozilla Firefox XUL runner"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { inherit gtk; version = xulVersion; }; + }; + + + firefox = stdenv.mkDerivation rec { + name = "firefox-${firefoxVersion}"; + + inherit src; + + enableParallelBuilding = true; + + buildInputs = + [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python + dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify + xlibs.pixman yasm mesa sqlite file unzip + ]; + + propagatedBuildInputs = [xulrunner]; + + configureFlags = + [ "--enable-application=browser" + "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}" + "--enable-chrome-format=jar" + "--disable-elf-hack" + ] + ++ commonConfigureFlags + ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding"; + + # Hack to work around make's idea of -lbz2 dependency + preConfigure = + '' + find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${ + stdenv.lib.concatStringsSep ":" + (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc])) + }' ';' + ''; + + postInstall = + '' + ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner + for j in $out/bin/*; do + i="$(readlink "$j")"; + file $i; + if file $i | grep executable &>/dev/null; then + rm "$out/bin/$(basename "$i")" + echo -e '#! /bin/sh\n"'"$i"'" "$@"' > "$out/bin/$(basename "$i")" + chmod a+x "$out/bin/$(basename "$i")" + fi; + done; + ''; # */ + + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { + inherit gtk xulrunner nspr; + isFirefox3Like = true; + }; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7528fb7264e..913bbba51c5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6583,6 +6583,11 @@ let firefox70Wrapper = lowPrio (wrapFirefox firefox70Pkgs.firefox "firefox" ""); + firefox80bPkgs = callPackage ../applications/networking/browsers/firefox/8.0.nix { + inherit (gtkLibs) gtk pango; + inherit (gnome) libIDL; + }; + flac = callPackage ../applications/audio/flac { }; flashplayer = flashplayer10; From c85c8c9d015f2ec62784143ff6e69e5a82bf7de5 Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Fri, 30 Sep 2011 17:26:38 +0000 Subject: [PATCH 40/76] update jinja2 svn path=/nixpkgs/trunk/; revision=29550 --- pkgs/top-level/python-packages.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b50028f47be..edf38bff72a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -614,11 +614,11 @@ let pythonPackages = python.modules // rec { jinja2 = buildPythonPackage { - name = "jinja2-2.2.1"; + name = "jinja2-2.6"; src = fetchurl { - url = "http://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.2.1.tar.gz"; - md5 = "fea849d68891218eb0b21c170f1c32d5"; + url = "http://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.6.tar.gz"; + md5 = "1c49a8825c993bfdcf55bb36897d28a2"; }; meta = { From 4c3642403ce2909bd2aa2508776852d96376a780 Mon Sep 17 00:00:00 2001 From: Cillian de Roiste Date: Sat, 1 Oct 2011 14:15:47 +0000 Subject: [PATCH 41/76] Adding attr as a buildInput to enable support for VirtFS (Plan 9 folder sharing over Virtio - I/O virtualization framework) svn path=/nixpkgs/trunk/; revision=29551 --- pkgs/os-specific/linux/qemu-kvm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix index 745d6900e90..3f35d3304ce 100644 --- a/pkgs/os-specific/linux/qemu-kvm/default.nix +++ b/pkgs/os-specific/linux/qemu-kvm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, zlib, SDL, alsaLib, pkgconfig, pciutils, libuuid, vde2 +{ stdenv, fetchurl, attr, zlib, SDL, alsaLib, pkgconfig, pciutils, libuuid, vde2 , libjpeg, libpng, ncurses, python, glib }: assert stdenv.isLinux; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; buildInputs = - [ zlib SDL alsaLib pkgconfig pciutils libuuid vde2 libjpeg libpng + [ attr zlib SDL alsaLib pkgconfig pciutils libuuid vde2 libjpeg libpng ncurses python glib ]; From 72f41379be9d2b37b1078ca4ab87207a054c5662 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sat, 1 Oct 2011 23:00:48 +0000 Subject: [PATCH 42/76] Add a patch to enable adding efi stub code to the linux kernel svn path=/nixpkgs/trunk/; revision=29555 --- pkgs/os-specific/linux/kernel/efi-stub.patch | 1778 ++++++++++++++++++ pkgs/os-specific/linux/kernel/patches.nix | 9 + 2 files changed, 1787 insertions(+) create mode 100644 pkgs/os-specific/linux/kernel/efi-stub.patch diff --git a/pkgs/os-specific/linux/kernel/efi-stub.patch b/pkgs/os-specific/linux/kernel/efi-stub.patch new file mode 100644 index 00000000000..581a9fff27f --- /dev/null +++ b/pkgs/os-specific/linux/kernel/efi-stub.patch @@ -0,0 +1,1778 @@ +diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig +index 6a47bb2..d40c876 100644 +--- a/arch/x86/Kconfig ++++ b/arch/x86/Kconfig +@@ -1466,6 +1466,13 @@ config EFI + resultant kernel should continue to boot on existing non-EFI + platforms. + ++config EFI_STUB ++ bool "EFI stub support" ++ depends on EFI ++ ---help--- ++ This kernel feature allows a bzImage to be loaded directly ++ by EFI firmware without the use of a bootloader. ++ + config SECCOMP + def_bool y + prompt "Enable seccomp to safely compute untrusted bytecode" +diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile +index 09664ef..b123b9a 100644 +--- a/arch/x86/boot/compressed/Makefile ++++ b/arch/x86/boot/compressed/Makefile +@@ -23,7 +23,15 @@ LDFLAGS_vmlinux := -T + + hostprogs-y := mkpiggy + +-$(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/head_$(BITS).o $(obj)/misc.o $(obj)/string.o $(obj)/cmdline.o $(obj)/early_serial_console.o $(obj)/piggy.o FORCE ++VMLINUX_OBJS = $(obj)/vmlinux.lds $(obj)/head_$(BITS).o $(obj)/misc.o \ ++ $(obj)/string.o $(obj)/cmdline.o $(obj)/early_serial_console.o \ ++ $(obj)/piggy.o ++ ++ifeq ($(CONFIG_EFI_STUB), y) ++ VMLINUX_OBJS += $(obj)/eboot.o $(obj)/efi_stub_$(BITS).o ++endif ++ ++$(obj)/vmlinux: $(VMLINUX_OBJS) FORCE + $(call if_changed,ld) + @: + +diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c +new file mode 100644 +index 0000000..c1b494d +--- /dev/null ++++ b/arch/x86/boot/compressed/eboot.c +@@ -0,0 +1,975 @@ ++/* ----------------------------------------------------------------------- ++ * ++ * Copyright 2011 Intel Corporation; author Matt Fleming ++ * ++ * This file is part of the Linux kernel, and is made available under ++ * the terms of the GNU General Public License version 2. ++ * ++ * ----------------------------------------------------------------------- */ ++ ++#include ++#include ++#include ++#include ++ ++#define SEG_TYPE_DATA (0 << 3) ++#define SEG_TYPE_READ_WRITE (1 << 1) ++#define SEG_TYPE_CODE (1 << 3) ++#define SEG_TYPE_EXEC_READ (1 << 1) ++#define SEG_TYPE_TSS ((1 << 3) | (1 << 0)) ++#define SEG_OP_SIZE_32BIT (1 << 0) ++#define SEG_GRANULARITY_4KB (1 << 0) ++ ++#define DESC_TYPE_CODE_DATA (1 << 0) ++ ++#define EFI_PAGE_SIZE (1UL << EFI_PAGE_SHIFT) ++ ++#define PIXEL_RGB_RESERVED_8BIT_PER_COLOR 0 ++#define PIXEL_BGR_RESERVED_8BIT_PER_COLOR 1 ++#define PIXEL_BIT_MASK 2 ++#define PIXEL_BLT_ONLY 3 ++#define PIXEL_FORMAT_MAX 4 ++ ++typedef struct { ++ u32 red_mask; ++ u32 green_mask; ++ u32 blue_mask; ++ u32 reserved_mask; ++} efi_pixel_bitmask_t; ++ ++typedef struct { ++ u32 version; ++ u32 horizontal_resolution; ++ u32 vertical_resolution; ++ int pixel_format; ++ efi_pixel_bitmask_t pixel_information; ++ u32 pixels_per_scan_line; ++} __attribute__((packed)) efi_graphics_output_mode_information_t; ++ ++typedef struct { ++ u32 max_mode; ++ u32 mode; ++ unsigned long info; ++ unsigned long size_of_info; ++ u64 frame_buffer_base; ++ unsigned long frame_buffer_size; ++} __attribute__((packed)) efi_graphics_output_protocol_mode_t; ++ ++typedef struct { ++ void *query_mode; ++ unsigned long set_mode; ++ unsigned long blt; ++ efi_graphics_output_protocol_mode_t *mode; ++} efi_graphics_output_protocol_t; ++ ++typedef struct { ++ void *get_mode; ++ void *set_mode; ++ void *blt; ++} efi_uga_draw_protocol_t; ++ ++static efi_system_table_t *sys_table; ++ ++static efi_status_t low_alloc(unsigned long size, unsigned long align, ++ unsigned long *addr) ++{ ++ unsigned long map_size, key, desc_size; ++ efi_memory_desc_t *map; ++ efi_status_t status; ++ unsigned long nr_pages; ++ u32 desc_version; ++ int i; ++ ++ nr_pages = round_up(size, EFI_PAGE_SIZE) / EFI_PAGE_SIZE; ++ ++ map_size = sizeof(*map) * 32; ++ ++again: ++ /* ++ * Add an additional efi_memory_desc_t because we're doing an ++ * allocation which may be in a new descriptor region. ++ */ ++ map_size += sizeof(*map); ++ status = efi_call_phys3(sys_table->boottime->allocate_pool, ++ EFI_LOADER_DATA, map_size, (void **)&map); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ status = efi_call_phys5(sys_table->boottime->get_memory_map, &map_size, ++ map, &key, &desc_size, &desc_version); ++ if (status == EFI_BUFFER_TOO_SMALL) { ++ efi_call_phys1(sys_table->boottime->free_pool, map); ++ goto again; ++ } ++ ++ if (status != EFI_SUCCESS) ++ goto free_pool; ++ ++ for (i = 0; i < map_size / desc_size; i++) { ++ efi_memory_desc_t *desc; ++ u64 start, end; ++ ++ desc = (efi_memory_desc_t *)((unsigned long)map + (i * desc_size)); ++ ++ if (desc->type != EFI_CONVENTIONAL_MEMORY) ++ continue; ++ ++ if (desc->num_pages < nr_pages) ++ continue; ++ ++ start = desc->phys_addr; ++ end = start + desc->num_pages * (1UL << EFI_PAGE_SHIFT); ++ ++ /* ++ * Don't allocate at 0x0. It will confuse code that ++ * checks pointers against NULL. Skip the first 8 ++ * bytes so we start at a nice even number. ++ */ ++ if (start == 0x0) { ++ start += 8; ++ ++ /* Check for tiny memory regions */ ++ if (start >= end) ++ continue; ++ } ++ ++ start = round_up(start, align); ++ if ((start + size) > end) ++ continue; ++ ++ status = efi_call_phys4(sys_table->boottime->allocate_pages, ++ EFI_ALLOCATE_ADDRESS, EFI_LOADER_DATA, ++ nr_pages, &start); ++ if (status == EFI_SUCCESS) { ++ *addr = start; ++ break; ++ } ++ } ++ ++ if (i == map_size / desc_size) ++ status = EFI_NOT_FOUND; ++ ++free_pool: ++ efi_call_phys1(sys_table->boottime->free_pool, map); ++fail: ++ return status; ++} ++ ++static void low_free(unsigned long size, unsigned long addr) ++{ ++ unsigned long nr_pages; ++ ++ nr_pages = round_up(size, EFI_PAGE_SIZE) / EFI_PAGE_SIZE; ++ efi_call_phys2(sys_table->boottime->free_pages, addr, size); ++} ++ ++static void find_bits(unsigned long mask, u8 *pos, u8 *size) ++{ ++ u8 first, len; ++ ++ first = 0; ++ len = 0; ++ ++ if (mask) { ++ while (!(mask & 0x1)) { ++ mask = mask >> 1; ++ first++; ++ } ++ ++ while (mask & 0x1) { ++ mask = mask >> 1; ++ len++; ++ } ++ } ++ ++ *pos = first; ++ *size = len; ++} ++ ++/* ++ * See if we have Graphics Output Protocol ++ */ ++static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto, ++ unsigned long size) ++{ ++ efi_graphics_output_protocol_t *gop, *first_gop; ++ efi_pixel_bitmask_t pixel_info; ++ unsigned long nr_gops; ++ efi_status_t status; ++ void **gop_handle; ++ u16 width, height; ++ u32 fb_base, fb_size; ++ u32 pixels_per_scan_line; ++ int pixel_format; ++ int i; ++ ++ status = efi_call_phys3(sys_table->boottime->allocate_pool, ++ EFI_LOADER_DATA, size, &gop_handle); ++ if (status != EFI_SUCCESS) ++ return status; ++ ++ status = efi_call_phys5(sys_table->boottime->locate_handle, ++ EFI_LOCATE_BY_PROTOCOL, proto, ++ NULL, &size, gop_handle); ++ if (status != EFI_SUCCESS) ++ goto free_handle; ++ ++ first_gop = NULL; ++ ++ nr_gops = size / sizeof(void *); ++ for (i = 0; i < nr_gops; i++) { ++ efi_graphics_output_mode_information_t *info; ++ efi_guid_t pciio_proto = EFI_PCI_IO_PROTOCOL_GUID; ++ void *pciio; ++ void *h = gop_handle[i]; ++ ++ status = efi_call_phys3(sys_table->boottime->handle_protocol, ++ h, proto, &gop); ++ if (status != EFI_SUCCESS) ++ continue; ++ ++ efi_call_phys3(sys_table->boottime->handle_protocol, ++ h, &pciio_proto, &pciio); ++ ++ status = efi_call_phys4(gop->query_mode, gop, ++ gop->mode->mode, &size, &info); ++ if (status == EFI_SUCCESS && (!first_gop || pciio)) { ++ /* ++ * Apple provide GOPs that are not backed by ++ * real hardware (they're used to handle ++ * multiple displays). The workaround is to ++ * search for a GOP implementing the PCIIO ++ * protocol, and if one isn't found, to just ++ * fallback to the first GOP. ++ */ ++ width = info->horizontal_resolution; ++ height = info->vertical_resolution; ++ fb_base = gop->mode->frame_buffer_base; ++ fb_size = gop->mode->frame_buffer_size; ++ pixel_format = info->pixel_format; ++ pixel_info = info->pixel_information; ++ pixels_per_scan_line = info->pixels_per_scan_line; ++ ++ /* ++ * Once we've found a GOP supporting PCIIO, ++ * don't bother looking any further. ++ */ ++ if (pciio) ++ break; ++ ++ first_gop = gop; ++ } ++ } ++ ++ /* Did we find any GOPs? */ ++ if (!first_gop) ++ goto free_handle; ++ ++ /* EFI framebuffer */ ++ si->orig_video_isVGA = VIDEO_TYPE_EFI; ++ ++ si->lfb_width = width; ++ si->lfb_height = height; ++ si->lfb_base = fb_base; ++ si->lfb_size = fb_size; ++ si->pages = 1; ++ ++ if (pixel_format == PIXEL_RGB_RESERVED_8BIT_PER_COLOR) { ++ si->lfb_depth = 32; ++ si->lfb_linelength = pixels_per_scan_line * 4; ++ si->red_size = 8; ++ si->red_pos = 0; ++ si->green_size = 8; ++ si->green_pos = 8; ++ si->blue_size = 8; ++ si->blue_pos = 16; ++ si->rsvd_size = 8; ++ si->rsvd_pos = 24; ++ } else if (pixel_format == PIXEL_BGR_RESERVED_8BIT_PER_COLOR) { ++ si->lfb_depth = 32; ++ si->lfb_linelength = pixels_per_scan_line * 4; ++ si->red_size = 8; ++ si->red_pos = 16; ++ si->green_size = 8; ++ si->green_pos = 8; ++ si->blue_size = 8; ++ si->blue_pos = 0; ++ si->rsvd_size = 8; ++ si->rsvd_pos = 24; ++ } else if (pixel_format == PIXEL_BIT_MASK) { ++ find_bits(pixel_info.red_mask, &si->red_pos, &si->red_size); ++ find_bits(pixel_info.green_mask, &si->green_pos, ++ &si->green_size); ++ find_bits(pixel_info.blue_mask, &si->blue_pos, &si->blue_size); ++ find_bits(pixel_info.reserved_mask, &si->rsvd_pos, ++ &si->rsvd_size); ++ si->lfb_depth = si->red_size + si->green_size + ++ si->blue_size + si->rsvd_size; ++ si->lfb_linelength = (pixels_per_scan_line * si->lfb_depth) / 8; ++ } else { ++ si->lfb_depth = 4; ++ si->lfb_linelength = si->lfb_width / 2; ++ si->red_size = 0; ++ si->red_pos = 0; ++ si->green_size = 0; ++ si->green_pos = 0; ++ si->blue_size = 0; ++ si->blue_pos = 0; ++ si->rsvd_size = 0; ++ si->rsvd_pos = 0; ++ } ++ ++free_handle: ++ efi_call_phys1(sys_table->boottime->free_pool, gop_handle); ++ return status; ++} ++ ++/* ++ * See if we have Universal Graphics Adapter (UGA) protocol ++ */ ++static efi_status_t setup_uga(struct screen_info *si, efi_guid_t *uga_proto, ++ unsigned long size) ++{ ++ efi_uga_draw_protocol_t *uga, *first_uga; ++ unsigned long nr_ugas; ++ efi_status_t status; ++ u32 width, height; ++ void **uga_handle = NULL; ++ int i; ++ ++ status = efi_call_phys3(sys_table->boottime->allocate_pool, ++ EFI_LOADER_DATA, size, &uga_handle); ++ if (status != EFI_SUCCESS) ++ return status; ++ ++ status = efi_call_phys5(sys_table->boottime->locate_handle, ++ EFI_LOCATE_BY_PROTOCOL, uga_proto, ++ NULL, &size, uga_handle); ++ if (status != EFI_SUCCESS) ++ goto free_handle; ++ ++ first_uga = NULL; ++ ++ nr_ugas = size / sizeof(void *); ++ for (i = 0; i < nr_ugas; i++) { ++ efi_guid_t pciio_proto = EFI_PCI_IO_PROTOCOL_GUID; ++ void *handle = uga_handle[i]; ++ u32 w, h, depth, refresh; ++ void *pciio; ++ ++ status = efi_call_phys3(sys_table->boottime->handle_protocol, ++ handle, uga_proto, &uga); ++ if (status != EFI_SUCCESS) ++ continue; ++ ++ efi_call_phys3(sys_table->boottime->handle_protocol, ++ handle, &pciio_proto, &pciio); ++ ++ status = efi_call_phys5(uga->get_mode, uga, &w, &h, ++ &depth, &refresh); ++ if (status == EFI_SUCCESS && (!first_uga || pciio)) { ++ width = w; ++ height = h; ++ ++ /* ++ * Once we've found a UGA supporting PCIIO, ++ * don't bother looking any further. ++ */ ++ if (pciio) ++ break; ++ ++ first_uga = uga; ++ } ++ } ++ ++ if (!first_uga) ++ goto free_handle; ++ ++ /* EFI framebuffer */ ++ si->orig_video_isVGA = VIDEO_TYPE_EFI; ++ ++ si->lfb_depth = 32; ++ si->lfb_width = width; ++ si->lfb_height = height; ++ ++ si->red_size = 8; ++ si->red_pos = 16; ++ si->green_size = 8; ++ si->green_pos = 8; ++ si->blue_size = 8; ++ si->blue_pos = 0; ++ si->rsvd_size = 8; ++ si->rsvd_pos = 24; ++ ++ ++free_handle: ++ efi_call_phys1(sys_table->boottime->free_pool, uga_handle); ++ return status; ++} ++ ++void setup_graphics(struct boot_params *boot_params) ++{ ++ efi_guid_t graphics_proto = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID; ++ struct screen_info *si; ++ efi_guid_t uga_proto = EFI_UGA_PROTOCOL_GUID; ++ efi_status_t status; ++ unsigned long size; ++ void **gop_handle = NULL; ++ void **uga_handle = NULL; ++ ++ si = &boot_params->screen_info; ++ memset(si, 0, sizeof(*si)); ++ ++ size = 0; ++ status = efi_call_phys5(sys_table->boottime->locate_handle, ++ EFI_LOCATE_BY_PROTOCOL, &graphics_proto, ++ NULL, &size, gop_handle); ++ if (status == EFI_BUFFER_TOO_SMALL) ++ status = setup_gop(si, &graphics_proto, size); ++ ++ if (status != EFI_SUCCESS) { ++ size = 0; ++ status = efi_call_phys5(sys_table->boottime->locate_handle, ++ EFI_LOCATE_BY_PROTOCOL, &uga_proto, ++ NULL, &size, uga_handle); ++ if (status == EFI_BUFFER_TOO_SMALL) ++ setup_uga(si, &uga_proto, size); ++ } ++} ++ ++struct initrd { ++ efi_file_handle_t *handle; ++ u64 size; ++}; ++ ++/* ++ * Check the cmdline for a LILO-style initrd= arguments. ++ * ++ * We only support loading an initrd from the same filesystem as the ++ * kernel image. ++ */ ++static efi_status_t handle_ramdisks(efi_loaded_image_t *image, ++ struct setup_header *hdr) ++{ ++ struct initrd *initrds; ++ unsigned long initrd_addr; ++ efi_guid_t fs_proto = EFI_FILE_SYSTEM_GUID; ++ u64 initrd_total; ++ efi_file_io_interface_t *io; ++ efi_file_handle_t *fh; ++ efi_status_t status; ++ int nr_initrds; ++ char *str; ++ int i, j, k; ++ ++ initrd_addr = 0; ++ initrd_total = 0; ++ ++ str = (char *)(unsigned long)hdr->cmd_line_ptr; ++ ++ j = 0; /* See close_handles */ ++ ++ if (!str || !*str) ++ return EFI_SUCCESS; ++ ++ for (nr_initrds = 0; *str; nr_initrds++) { ++ str = strstr(str, "initrd="); ++ if (!str) ++ break; ++ ++ str += 7; ++ ++ /* Skip any leading slashes */ ++ while (*str == '/' || *str == '\\') ++ str++; ++ ++ while (*str && *str != ' ' && *str != '\n') ++ str++; ++ } ++ ++ if (!nr_initrds) ++ return EFI_SUCCESS; ++ ++ status = efi_call_phys3(sys_table->boottime->allocate_pool, ++ EFI_LOADER_DATA, ++ nr_initrds * sizeof(*initrds), ++ &initrds); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ str = (char *)(unsigned long)hdr->cmd_line_ptr; ++ for (i = 0; i < nr_initrds; i++) { ++ struct initrd *initrd; ++ efi_file_handle_t *h; ++ efi_file_info_t *info; ++ efi_char16_t filename[256]; ++ unsigned long info_sz; ++ efi_guid_t info_guid = EFI_FILE_INFO_ID; ++ efi_char16_t *p; ++ u64 file_sz; ++ ++ str = strstr(str, "initrd="); ++ if (!str) ++ break; ++ ++ str += 7; ++ ++ initrd = &initrds[i]; ++ p = filename; ++ ++ /* Skip any leading slashes */ ++ while (*str == '/' || *str == '\\') ++ str++; ++ ++ while (*str && *str != ' ' && *str != '\n') { ++ if (p >= filename + sizeof(filename)) ++ break; ++ ++ *p++ = *str++; ++ } ++ ++ *p = '\0'; ++ ++ /* Only open the volume once. */ ++ if (!i) { ++ efi_boot_services_t *boottime; ++ ++ boottime = sys_table->boottime; ++ ++ status = efi_call_phys3(boottime->handle_protocol, ++ image->device_handle, &fs_proto, &io); ++ if (status != EFI_SUCCESS) ++ goto free_initrds; ++ ++ status = efi_call_phys2(io->open_volume, io, &fh); ++ if (status != EFI_SUCCESS) ++ goto free_initrds; ++ } ++ ++ status = efi_call_phys5(fh->open, fh, &h, filename, ++ EFI_FILE_MODE_READ, (u64)0); ++ if (status != EFI_SUCCESS) ++ goto close_handles; ++ ++ initrd->handle = h; ++ ++ info_sz = 0; ++ status = efi_call_phys4(h->get_info, h, &info_guid, ++ &info_sz, NULL); ++ if (status != EFI_BUFFER_TOO_SMALL) ++ goto close_handles; ++ ++grow: ++ status = efi_call_phys3(sys_table->boottime->allocate_pool, ++ EFI_LOADER_DATA, info_sz, &info); ++ if (status != EFI_SUCCESS) ++ goto close_handles; ++ ++ status = efi_call_phys4(h->get_info, h, &info_guid, ++ &info_sz, info); ++ if (status == EFI_BUFFER_TOO_SMALL) { ++ efi_call_phys1(sys_table->boottime->free_pool, info); ++ goto grow; ++ } ++ ++ file_sz = info->file_size; ++ efi_call_phys1(sys_table->boottime->free_pool, info); ++ ++ if (status != EFI_SUCCESS) ++ goto close_handles; ++ ++ initrd->size = file_sz; ++ initrd_total += file_sz; ++ } ++ ++ if (initrd_total) { ++ unsigned long addr; ++ ++ /* ++ * Multiple initrd's need to be at consecutive ++ * addresses in memory, so allocate enough memory for ++ * all the initrd's. ++ */ ++ status = low_alloc(initrd_total, 0x1000, &initrd_addr); ++ if (status != EFI_SUCCESS) ++ goto close_handles; ++ ++ /* We've run out of free low memory. */ ++ if (initrd_addr > hdr->initrd_addr_max) { ++ status = EFI_INVALID_PARAMETER; ++ goto free_initrd_total; ++ } ++ ++ addr = initrd_addr; ++ for (j = 0; j < nr_initrds; j++) { ++ u64 size; ++ ++ size = initrds[j].size; ++ status = efi_call_phys3(fh->read, initrds[j].handle, ++ &size, addr); ++ if (status != EFI_SUCCESS) ++ goto free_initrd_total; ++ ++ efi_call_phys1(fh->close, initrds[j].handle); ++ ++ addr += size; ++ } ++ ++ } ++ ++ efi_call_phys1(sys_table->boottime->free_pool, initrds); ++ ++ hdr->ramdisk_image = initrd_addr; ++ hdr->ramdisk_size = initrd_total; ++ ++ return status; ++ ++free_initrd_total: ++ low_free(initrd_total, initrd_addr); ++ ++close_handles: ++ for (k = j; k < nr_initrds; k++) ++ efi_call_phys1(fh->close, initrds[k].handle); ++free_initrds: ++ efi_call_phys1(sys_table->boottime->free_pool, initrds); ++fail: ++ hdr->ramdisk_image = 0; ++ hdr->ramdisk_size = 0; ++ ++ return status; ++} ++ ++/* ++ * Because the x86 boot code expects to be passed a boot_params we ++ * need to create one ourselves (usually the bootloader would create ++ * one for us). ++ */ ++static efi_status_t make_boot_params(struct boot_params *boot_params, ++ efi_loaded_image_t *image, ++ void *handle) ++{ ++ struct efi_info *efi = &boot_params->efi_info; ++ struct apm_bios_info *bi = &boot_params->apm_bios_info; ++ struct sys_desc_table *sdt = &boot_params->sys_desc_table; ++ struct e820entry *e820_map = &boot_params->e820_map[0]; ++ struct e820entry *prev = NULL; ++ struct setup_header *hdr = &boot_params->hdr; ++ unsigned long size, key, desc_size, _size; ++ efi_memory_desc_t *mem_map; ++ void *options = image->load_options; ++ u32 load_options_size = image->load_options_size; ++ int options_size = 0; ++ efi_status_t status; ++ __u32 desc_version; ++ unsigned long cmdline; ++ u8 nr_entries; ++ u16 *s2; ++ u8 *s1; ++ int i; ++ ++ hdr->type_of_loader = 0x21; ++ ++ /* Convert unicode cmdline to ascii */ ++ cmdline = 0; ++ s2 = (u16 *)options; ++ ++ if (s2) { ++ while (*s2 && *s2 != '\n' && options_size < load_options_size) { ++ s2++; ++ options_size++; ++ } ++ ++ if (options_size) { ++ if (options_size > hdr->cmdline_size) ++ options_size = hdr->cmdline_size; ++ ++ options_size++; /* NUL termination */ ++ ++ status = low_alloc(options_size, 1, &cmdline); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ s1 = (u8 *)(unsigned long)cmdline; ++ s2 = (u16 *)options; ++ ++ for (i = 0; i < options_size - 1; i++) ++ *s1++ = *s2++; ++ ++ *s1 = '\0'; ++ } ++ } ++ ++ hdr->cmd_line_ptr = cmdline; ++ ++ hdr->ramdisk_image = 0; ++ hdr->ramdisk_size = 0; ++ ++ status = handle_ramdisks(image, hdr); ++ if (status != EFI_SUCCESS) ++ goto free_cmdline; ++ ++ setup_graphics(boot_params); ++ ++ /* Clear APM BIOS info */ ++ memset(bi, 0, sizeof(*bi)); ++ ++ memset(sdt, 0, sizeof(*sdt)); ++ ++ memcpy(&efi->efi_loader_signature, EFI_LOADER_SIGNATURE, sizeof(__u32)); ++ ++ size = sizeof(*mem_map) * 32; ++ ++again: ++ size += sizeof(*mem_map); ++ _size = size; ++ status = low_alloc(size, 1, (unsigned long *)&mem_map); ++ if (status != EFI_SUCCESS) ++ goto free_cmdline; ++ ++ status = efi_call_phys5(sys_table->boottime->get_memory_map, &size, ++ mem_map, &key, &desc_size, &desc_version); ++ if (status == EFI_BUFFER_TOO_SMALL) { ++ low_free(_size, (unsigned long)mem_map); ++ goto again; ++ } ++ ++ if (status != EFI_SUCCESS) ++ goto free_mem_map; ++ ++ efi->efi_systab = (unsigned long)sys_table; ++ efi->efi_memdesc_size = desc_size; ++ efi->efi_memdesc_version = desc_version; ++ efi->efi_memmap = (unsigned long)mem_map; ++ efi->efi_memmap_size = size; ++ ++#ifdef CONFIG_X86_64 ++ efi->efi_systab_hi = (unsigned long)sys_table >> 32; ++ efi->efi_memmap_hi = (unsigned long)mem_map >> 32; ++#endif ++ ++ /* Might as well exit boot services now */ ++ status = efi_call_phys2(sys_table->boottime->exit_boot_services, ++ handle, key); ++ if (status != EFI_SUCCESS) ++ goto free_mem_map; ++ ++ /* Historic? */ ++ boot_params->alt_mem_k = 32 * 1024; ++ ++ /* ++ * Convert the EFI memory map to E820. ++ */ ++ nr_entries = 0; ++ for (i = 0; i < size / desc_size; i++) { ++ efi_memory_desc_t *d; ++ unsigned int e820_type = 0; ++ ++ d = (efi_memory_desc_t *)((unsigned long)mem_map + (i * desc_size)); ++ switch(d->type) { ++ case EFI_RESERVED_TYPE: ++ case EFI_RUNTIME_SERVICES_CODE: ++ case EFI_RUNTIME_SERVICES_DATA: ++ case EFI_MEMORY_MAPPED_IO: ++ case EFI_MEMORY_MAPPED_IO_PORT_SPACE: ++ case EFI_PAL_CODE: ++ e820_type = E820_RESERVED; ++ break; ++ ++ case EFI_UNUSABLE_MEMORY: ++ e820_type = E820_UNUSABLE; ++ break; ++ ++ case EFI_ACPI_RECLAIM_MEMORY: ++ e820_type = E820_ACPI; ++ break; ++ ++ case EFI_LOADER_CODE: ++ case EFI_LOADER_DATA: ++ case EFI_BOOT_SERVICES_CODE: ++ case EFI_BOOT_SERVICES_DATA: ++ case EFI_CONVENTIONAL_MEMORY: ++ e820_type = E820_RAM; ++ break; ++ ++ case EFI_ACPI_MEMORY_NVS: ++ e820_type = E820_NVS; ++ break; ++ ++ default: ++ continue; ++ } ++ ++ /* Merge adjacent mappings */ ++ if (prev && prev->type == e820_type && ++ (prev->addr + prev->size) == d->phys_addr) ++ prev->size += d->num_pages << 12; ++ else { ++ e820_map->addr = d->phys_addr; ++ e820_map->size = d->num_pages << 12; ++ e820_map->type = e820_type; ++ prev = e820_map++; ++ nr_entries++; ++ } ++ } ++ ++ boot_params->e820_entries = nr_entries; ++ ++ return EFI_SUCCESS; ++ ++free_mem_map: ++ low_free(_size, (unsigned long)mem_map); ++free_cmdline: ++ if (options_size) ++ low_free(options_size, hdr->cmd_line_ptr); ++fail: ++ return status; ++} ++ ++/* ++ * On success we return a pointer to a boot_params structure, and NULL ++ * on failure. ++ */ ++struct boot_params *efi_main(void *handle, efi_system_table_t *_table) ++{ ++ struct boot_params *boot_params; ++ unsigned long start, nr_pages; ++ struct desc_ptr *gdt, *idt; ++ efi_loaded_image_t *image; ++ struct setup_header *hdr; ++ efi_status_t status; ++ efi_guid_t proto = LOADED_IMAGE_PROTOCOL_GUID; ++ struct desc_struct *desc; ++ ++ sys_table = _table; ++ ++ /* Check if we were booted by the EFI firmware */ ++ if (sys_table->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE) ++ goto fail; ++ ++ status = efi_call_phys3(sys_table->boottime->handle_protocol, ++ handle, &proto, (void *)&image); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ status = low_alloc(0x4000, 1, (unsigned long *)&boot_params); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ memset(boot_params, 0x0, 0x4000); ++ ++ /* Copy first two sectors to boot_params */ ++ memcpy(boot_params, image->image_base, 1024); ++ ++ hdr = &boot_params->hdr; ++ ++ /* ++ * The EFI firmware loader could have placed the kernel image ++ * anywhere in memory, but the kernel has various restrictions ++ * on the max physical address it can run at. Attempt to move ++ * the kernel to boot_params.pref_address, or as close as ++ * possible to it. ++ */ ++ start = hdr->pref_address; ++ nr_pages = round_up(hdr->init_size, EFI_PAGE_SIZE) / EFI_PAGE_SIZE; ++ ++ status = efi_call_phys4(sys_table->boottime->allocate_pages, ++ EFI_ALLOCATE_ADDRESS, EFI_LOADER_DATA, ++ nr_pages, &start); ++ if (status != EFI_SUCCESS) { ++ status = low_alloc(hdr->init_size, hdr->kernel_alignment, ++ &start); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ } ++ ++ hdr->code32_start = (__u32)start; ++ hdr->pref_address = (__u64)(unsigned long)image->image_base; ++ ++ memcpy((void *)start, image->image_base, image->image_size); ++ ++ status = efi_call_phys3(sys_table->boottime->allocate_pool, ++ EFI_LOADER_DATA, sizeof(*gdt), ++ (void **)&gdt); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ gdt->size = 0x800; ++ status = low_alloc(gdt->size, 8, (unsigned long *)&gdt->address); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ status = efi_call_phys3(sys_table->boottime->allocate_pool, ++ EFI_LOADER_DATA, sizeof(*idt), ++ (void **)&idt); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ idt->size = 0; ++ idt->address = 0; ++ ++ status = make_boot_params(boot_params, image, handle); ++ if (status != EFI_SUCCESS) ++ goto fail; ++ ++ memset((char *)gdt->address, 0x0, gdt->size); ++ desc = (struct desc_struct *)gdt->address; ++ ++ /* The first GDT is a dummy and the second is unused. */ ++ desc += 2; ++ ++ desc->limit0 = 0xffff; ++ desc->base0 = 0x0000; ++ desc->base1 = 0x0000; ++ desc->type = SEG_TYPE_CODE | SEG_TYPE_EXEC_READ; ++ desc->s = DESC_TYPE_CODE_DATA; ++ desc->dpl = 0; ++ desc->p = 1; ++ desc->limit = 0xf; ++ desc->avl = 0; ++ desc->l = 0; ++ desc->d = SEG_OP_SIZE_32BIT; ++ desc->g = SEG_GRANULARITY_4KB; ++ desc->base2 = 0x00; ++ ++ desc++; ++ desc->limit0 = 0xffff; ++ desc->base0 = 0x0000; ++ desc->base1 = 0x0000; ++ desc->type = SEG_TYPE_DATA | SEG_TYPE_READ_WRITE; ++ desc->s = DESC_TYPE_CODE_DATA; ++ desc->dpl = 0; ++ desc->p = 1; ++ desc->limit = 0xf; ++ desc->avl = 0; ++ desc->l = 0; ++ desc->d = SEG_OP_SIZE_32BIT; ++ desc->g = SEG_GRANULARITY_4KB; ++ desc->base2 = 0x00; ++ ++#ifdef CONFIG_X86_64 ++ /* Task segment value */ ++ desc++; ++ desc->limit0 = 0x0000; ++ desc->base0 = 0x0000; ++ desc->base1 = 0x0000; ++ desc->type = SEG_TYPE_TSS; ++ desc->s = 0; ++ desc->dpl = 0; ++ desc->p = 1; ++ desc->limit = 0x0; ++ desc->avl = 0; ++ desc->l = 0; ++ desc->d = 0; ++ desc->g = SEG_GRANULARITY_4KB; ++ desc->base2 = 0x00; ++#endif /* CONFIG_X86_64 */ ++ ++ asm volatile ("lidt %0" :: "m" (*idt)); ++ asm volatile ("lgdt %0" :: "m" (*gdt)); ++ ++ asm volatile("cli"); ++ ++ return boot_params; ++fail: ++ return NULL; ++} +diff --git a/arch/x86/boot/compressed/efi_stub_32.S b/arch/x86/boot/compressed/efi_stub_32.S +new file mode 100644 +index 0000000..5047cd9 +--- /dev/null ++++ b/arch/x86/boot/compressed/efi_stub_32.S +@@ -0,0 +1,87 @@ ++/* ++ * EFI call stub for IA32. ++ * ++ * This stub allows us to make EFI calls in physical mode with interrupts ++ * turned off. Note that this implementation is different from the one in ++ * arch/x86/platform/efi/efi_stub_32.S because we're _already_ in physical ++ * mode at this point. ++ */ ++ ++#include ++#include ++ ++/* ++ * efi_call_phys(void *, ...) is a function with variable parameters. ++ * All the callers of this function assure that all the parameters are 4-bytes. ++ */ ++ ++/* ++ * In gcc calling convention, EBX, ESP, EBP, ESI and EDI are all callee save. ++ * So we'd better save all of them at the beginning of this function and restore ++ * at the end no matter how many we use, because we can not assure EFI runtime ++ * service functions will comply with gcc calling convention, too. ++ */ ++ ++.text ++ENTRY(efi_call_phys) ++ /* ++ * 0. The function can only be called in Linux kernel. So CS has been ++ * set to 0x0010, DS and SS have been set to 0x0018. In EFI, I found ++ * the values of these registers are the same. And, the corresponding ++ * GDT entries are identical. So I will do nothing about segment reg ++ * and GDT, but change GDT base register in prelog and epilog. ++ */ ++ ++ /* ++ * 1. Because we haven't been relocated by this point we need to ++ * use relative addressing. ++ */ ++ call 1f ++1: popl %edx ++ subl $1b, %edx ++ ++ /* ++ * 2. Now on the top of stack is the return ++ * address in the caller of efi_call_phys(), then parameter 1, ++ * parameter 2, ..., param n. To make things easy, we save the return ++ * address of efi_call_phys in a global variable. ++ */ ++ popl %ecx ++ movl %ecx, saved_return_addr(%edx) ++ /* get the function pointer into ECX*/ ++ popl %ecx ++ movl %ecx, efi_rt_function_ptr(%edx) ++ ++ /* ++ * 3. Call the physical function. ++ */ ++ call *%ecx ++ ++ /* ++ * 4. Balance the stack. And because EAX contain the return value, ++ * we'd better not clobber it. We need to calculate our address ++ * again because %ecx and %edx are not preserved across EFI function ++ * calls. ++ */ ++ call 1f ++1: popl %edx ++ subl $1b, %edx ++ ++ movl efi_rt_function_ptr(%edx), %ecx ++ pushl %ecx ++ ++ /* ++ * 10. Push the saved return address onto the stack and return. ++ */ ++ movl saved_return_addr(%edx), %ecx ++ pushl %ecx ++ ret ++ENDPROC(efi_call_phys) ++.previous ++ ++.data ++saved_return_addr: ++ .long 0 ++efi_rt_function_ptr: ++ .long 0 ++ +diff --git a/arch/x86/boot/compressed/efi_stub_64.S b/arch/x86/boot/compressed/efi_stub_64.S +new file mode 100644 +index 0000000..cedc60d +--- /dev/null ++++ b/arch/x86/boot/compressed/efi_stub_64.S +@@ -0,0 +1 @@ ++#include "../../platform/efi/efi_stub_64.S" +diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S +index 67a655a..a055993 100644 +--- a/arch/x86/boot/compressed/head_32.S ++++ b/arch/x86/boot/compressed/head_32.S +@@ -32,6 +32,28 @@ + + __HEAD + ENTRY(startup_32) ++#ifdef CONFIG_EFI_STUB ++ /* ++ * We don't need the return address, so set up the stack so ++ * efi_main() can find its arugments. ++ */ ++ add $0x4, %esp ++ ++ call efi_main ++ cmpl $0, %eax ++ je preferred_addr ++ movl %eax, %esi ++ call 1f ++1: ++ popl %eax ++ subl $1b, %eax ++ subl BP_pref_address(%esi), %eax ++ add BP_code32_start(%esi), %eax ++ leal preferred_addr(%eax), %eax ++ jmp *%eax ++ ++preferred_addr: ++#endif + cld + /* + * Test KEEP_SEGMENTS flag to see if the bootloader is asking +diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S +index 35af09d..558d76c 100644 +--- a/arch/x86/boot/compressed/head_64.S ++++ b/arch/x86/boot/compressed/head_64.S +@@ -199,6 +199,26 @@ ENTRY(startup_64) + * an identity mapped page table being provied that maps our + * entire text+data+bss and hopefully all of memory. + */ ++#ifdef CONFIG_EFI_STUB ++ pushq %rsi ++ mov %rcx, %rdi ++ mov %rdx, %rsi ++ call efi_main ++ popq %rsi ++ cmpq $0,%rax ++ je preferred_addr ++ movq %rax,%rsi ++ call 1f ++1: ++ popq %rax ++ subq $1b, %rax ++ subq BP_pref_address(%rsi), %rax ++ add BP_code32_start(%esi), %eax ++ leaq preferred_addr(%rax), %rax ++ jmp *%rax ++ ++preferred_addr: ++#endif + + /* Setup data segments. */ + xorl %eax, %eax +diff --git a/arch/x86/boot/compressed/string.c b/arch/x86/boot/compressed/string.c +index 19b3e69..ffb9c5c 100644 +--- a/arch/x86/boot/compressed/string.c ++++ b/arch/x86/boot/compressed/string.c +@@ -1,2 +1,11 @@ + #include "misc.h" ++ ++int memcmp(const void *s1, const void *s2, size_t len) ++{ ++ u8 diff; ++ asm("repe; cmpsb; setnz %0" ++ : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); ++ return diff; ++} ++ + #include "../string.c" +diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S +index 93e689f..c4756f6 100644 +--- a/arch/x86/boot/header.S ++++ b/arch/x86/boot/header.S +@@ -45,6 +45,11 @@ SYSSEG = 0x1000 /* historical load address >> 4 */ + + .global bootsect_start + bootsect_start: ++#ifdef CONFIG_EFI_STUB ++ # "MZ", MS-DOS header ++ .byte 0x4d ++ .byte 0x5a ++#endif + + # Normalize the start address + ljmp $BOOTSEG, $start2 +@@ -79,6 +84,14 @@ bs_die: + # invoke the BIOS reset code... + ljmp $0xf000,$0xfff0 + ++#ifdef CONFIG_EFI_STUB ++ .org 0x3c ++ # ++ # Offset to the PE header. ++ # ++ .long pe_header ++#endif /* CONFIG_EFI_STUB */ ++ + .section ".bsdata", "a" + bugger_off_msg: + .ascii "Direct booting from floppy is no longer supported.\r\n" +@@ -87,6 +100,141 @@ bugger_off_msg: + .ascii "Remove disk and press any key to reboot . . .\r\n" + .byte 0 + ++#ifdef CONFIG_EFI_STUB ++pe_header: ++ .ascii "PE" ++ .word 0 ++ ++coff_header: ++#ifdef CONFIG_X86_32 ++ .word 0x14c # i386 ++#else ++ .word 0x8664 # x86-64 ++#endif ++ .word 2 # nr_sections ++ .long 0 # TimeDateStamp ++ .long 0 # PointerToSymbolTable ++ .long 1 # NumberOfSymbols ++ .word section_table - optional_header # SizeOfOptionalHeader ++#ifdef CONFIG_X86_32 ++ .word 0x306 # Characteristics. ++ # IMAGE_FILE_32BIT_MACHINE | ++ # IMAGE_FILE_DEBUG_STRIPPED | ++ # IMAGE_FILE_EXECUTABLE_IMAGE | ++ # IMAGE_FILE_LINE_NUMS_STRIPPED ++#else ++ .word 0x206 # Characteristics ++ # IMAGE_FILE_DEBUG_STRIPPED | ++ # IMAGE_FILE_EXECUTABLE_IMAGE | ++ # IMAGE_FILE_LINE_NUMS_STRIPPED ++#endif ++ ++optional_header: ++#ifdef CONFIG_X86_32 ++ .word 0x10b # PE32 format ++#else ++ .word 0x20b # PE32+ format ++#endif ++ .byte 0x02 # MajorLinkerVersion ++ .byte 0x14 # MinorLinkerVersion ++ ++ # Filled in by build.c ++ .long 0 # SizeOfCode ++ ++ .long 0 # SizeOfInitializedData ++ .long 0 # SizeOfUninitializedData ++ ++ # Filled in by build.c ++ .long 0x0000 # AddressOfEntryPoint ++ ++ .long 0x0000 # BaseOfCode ++#ifdef CONFIG_X86_32 ++ .long 0 # data ++#endif ++ ++extra_header_fields: ++#ifdef CONFIG_X86_32 ++ .long 0 # ImageBase ++#else ++ .quad 0 # ImageBase ++#endif ++ .long 0x1000 # SectionAlignment ++ .long 0x200 # FileAlignment ++ .word 0 # MajorOperatingSystemVersion ++ .word 0 # MinorOperatingSystemVersion ++ .word 0 # MajorImageVersion ++ .word 0 # MinorImageVersion ++ .word 0 # MajorSubsystemVersion ++ .word 0 # MinorSubsystemVersion ++ .long 0 # Win32VersionValue ++ ++ # ++ # The size of the bzImage is written in tools/build.c ++ # ++ .long 0 # SizeOfImage ++ ++ .long 0x200 # SizeOfHeaders ++ .long 0 # CheckSum ++ .word 0xa # Subsystem (EFI application) ++ .word 0 # DllCharacteristics ++#ifdef CONFIG_X86_32 ++ .long 0 # SizeOfStackReserve ++ .long 0 # SizeOfStackCommit ++ .long 0 # SizeOfHeapReserve ++ .long 0 # SizeOfHeapCommit ++#else ++ .quad 0 # SizeOfStackReserve ++ .quad 0 # SizeOfStackCommit ++ .quad 0 # SizeOfHeapReserve ++ .quad 0 # SizeOfHeapCommit ++#endif ++ .long 0 # LoaderFlags ++ .long 0x1 # NumberOfRvaAndSizes ++ ++ .quad 0 # ExportTable ++ .quad 0 # ImportTable ++ .quad 0 # ResourceTable ++ .quad 0 # ExceptionTable ++ .quad 0 # CertificationTable ++ .quad 0 # BaseRelocationTable ++ ++ # Section table ++section_table: ++ .ascii ".text" ++ .byte 0 ++ .byte 0 ++ .byte 0 ++ .long 0 ++ .long 0x0 # startup_{32,64} ++ .long 0 # Size of initialized data ++ # on disk ++ .long 0x0 # startup_{32,64} ++ .long 0 # PointerToRelocations ++ .long 0 # PointerToLineNumbers ++ .word 0 # NumberOfRelocations ++ .word 0 # NumberOfLineNumbers ++ .long 0x60500020 # Characteristics (section flags) ++ ++ # ++ # The EFI application loader requires a relocation section ++ # because EFI applications are relocatable and not having ++ # this section seems to confuse it. But since we don't need ++ # the loader to fixup any relocs for us just fill it with a ++ # single dummy reloc. ++ # ++ .ascii ".reloc" ++ .byte 0 ++ .byte 0 ++ .long reloc_end - reloc_start ++ .long reloc_start ++ .long reloc_end - reloc_start # SizeOfRawData ++ .long reloc_start # PointerToRawData ++ .long 0 # PointerToRelocations ++ .long 0 # PointerToLineNumbers ++ .word 0 # NumberOfRelocations ++ .word 0 # NumberOfLineNumbers ++ .long 0x42100040 # Characteristics (section flags) ++#endif /* CONFIG_EFI_STUB */ + + # Kernel attributes; used by setup. This is part 1 of the + # header, from the old boot sector. +@@ -318,3 +466,13 @@ die: + setup_corrupt: + .byte 7 + .string "No setup signature found...\n" ++ ++ .data ++dummy: .long 0 ++ ++ .section .reloc ++reloc_start: ++ .long dummy - reloc_start ++ .long 10 ++ .word 0 ++reloc_end: +diff --git a/arch/x86/boot/string.c b/arch/x86/boot/string.c +index 3cbc405..574dedf 100644 +--- a/arch/x86/boot/string.c ++++ b/arch/x86/boot/string.c +@@ -111,3 +111,38 @@ unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int bas + + return result; + } ++ ++/** ++ * strlen - Find the length of a string ++ * @s: The string to be sized ++ */ ++size_t strlen(const char *s) ++{ ++ const char *sc; ++ ++ for (sc = s; *sc != '\0'; ++sc) ++ /* nothing */; ++ return sc - s; ++} ++ ++/** ++ * strstr - Find the first substring in a %NUL terminated string ++ * @s1: The string to be searched ++ * @s2: The string to search for ++ */ ++char *strstr(const char *s1, const char *s2) ++{ ++ size_t l1, l2; ++ ++ l2 = strlen(s2); ++ if (!l2) ++ return (char *)s1; ++ l1 = strlen(s1); ++ while (l1 >= l2) { ++ l1--; ++ if (!memcmp(s1, s2, l2)) ++ return (char *)s1; ++ s1++; ++ } ++ return NULL; ++} +diff --git a/arch/x86/boot/tools/build.c b/arch/x86/boot/tools/build.c +index fdc60a0..4e9bd6b 100644 +--- a/arch/x86/boot/tools/build.c ++++ b/arch/x86/boot/tools/build.c +@@ -135,6 +135,9 @@ static void usage(void) + + int main(int argc, char ** argv) + { ++#ifdef CONFIG_EFI_STUB ++ unsigned int file_sz, pe_header; ++#endif + unsigned int i, sz, setup_sectors; + int c; + u32 sys_size; +@@ -194,6 +197,42 @@ int main(int argc, char ** argv) + buf[0x1f6] = sys_size >> 16; + buf[0x1f7] = sys_size >> 24; + ++#ifdef CONFIG_EFI_STUB ++ file_sz = sz + i + ((sys_size * 16) - sz); ++ ++ pe_header = *(unsigned int *)&buf[0x3c]; ++ ++ /* Size of code */ ++ *(unsigned int *)&buf[pe_header + 0x1c] = file_sz; ++ ++ /* Size of image */ ++ *(unsigned int *)&buf[pe_header + 0x50] = file_sz; ++ ++#ifdef CONFIG_X86_32 ++ /* Address of entry point */ ++ *(unsigned int *)&buf[pe_header + 0x28] = i; ++ ++ /* .text size */ ++ *(unsigned int *)&buf[pe_header + 0xb0] = file_sz; ++ ++ /* .text size of initialised data */ ++ *(unsigned int *)&buf[pe_header + 0xb8] = file_sz; ++#else ++ /* ++ * Address of entry point. startup_32 is at the beginning and ++ * the 64-bit entry point (startup_64) is always 512 bytes ++ * after. ++ */ ++ *(unsigned int *)&buf[pe_header + 0x28] = i + 512; ++ ++ /* .text size */ ++ *(unsigned int *)&buf[pe_header + 0xc0] = file_sz; ++ ++ /* .text size of initialised data */ ++ *(unsigned int *)&buf[pe_header + 0xc8] = file_sz; ++#endif /* CONFIG_X86_32 */ ++#endif /* CONFIG_EFI_STUB */ ++ + crc = partial_crc32(buf, i, crc); + if (fwrite(buf, 1, i, stdout) != i) + die("Writing setup failed"); +diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h +index e020d88..2f90c51 100644 +--- a/arch/x86/include/asm/bootparam.h ++++ b/arch/x86/include/asm/bootparam.h +@@ -64,6 +64,8 @@ struct setup_header { + __u32 payload_offset; + __u32 payload_length; + __u64 setup_data; ++ __u64 pref_address; ++ __u32 init_size; + } __attribute__((packed)); + + struct sys_desc_table { +diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h +index 7093e4a..844f735 100644 +--- a/arch/x86/include/asm/efi.h ++++ b/arch/x86/include/asm/efi.h +@@ -3,6 +3,8 @@ + + #ifdef CONFIG_X86_32 + ++#define EFI_LOADER_SIGNATURE "EL32" ++ + extern unsigned long asmlinkage efi_call_phys(void *, ...); + + #define efi_call_phys0(f) efi_call_phys(f) +@@ -37,6 +39,8 @@ extern unsigned long asmlinkage efi_call_phys(void *, ...); + + #else /* !CONFIG_X86_32 */ + ++#define EFI_LOADER_SIGNATURE "EL64" ++ + extern u64 efi_call0(void *fp); + extern u64 efi_call1(void *fp, u64 arg1); + extern u64 efi_call2(void *fp, u64 arg1, u64 arg2); +diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c +index 4f13faf..68de2dc 100644 +--- a/arch/x86/kernel/asm-offsets.c ++++ b/arch/x86/kernel/asm-offsets.c +@@ -67,4 +67,6 @@ void common(void) { + OFFSET(BP_hardware_subarch, boot_params, hdr.hardware_subarch); + OFFSET(BP_version, boot_params, hdr.version); + OFFSET(BP_kernel_alignment, boot_params, hdr.kernel_alignment); ++ OFFSET(BP_pref_address, boot_params, hdr.pref_address); ++ OFFSET(BP_code32_start, boot_params, hdr.code32_start); + } +diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c +index afaf384..eca164b 100644 +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -750,12 +750,7 @@ void __init setup_arch(char **cmdline_p) + #endif + #ifdef CONFIG_EFI + if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature, +-#ifdef CONFIG_X86_32 +- "EL32", +-#else +- "EL64", +-#endif +- 4)) { ++ EFI_LOADER_SIGNATURE, 4)) { + efi_enabled = 1; + efi_memblock_x86_reserve_range(); + } +diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c +index 5cab48e..1156e9a 100644 +--- a/arch/x86/platform/efi/efi_32.c ++++ b/arch/x86/platform/efi/efi_32.c +@@ -44,8 +44,12 @@ void efi_call_phys_prelog(void) + { + unsigned long cr4; + unsigned long temp; ++ unsigned long phys_addr, virt_addr; + struct desc_ptr gdt_descr; + ++ virt_addr = (unsigned long)_text; ++ phys_addr = virt_addr - PAGE_OFFSET; ++ + local_irq_save(efi_rt_eflags); + + /* +@@ -57,18 +61,18 @@ void efi_call_phys_prelog(void) + + if (cr4 & X86_CR4_PAE) { + efi_bak_pg_dir_pointer[0].pgd = +- swapper_pg_dir[pgd_index(0)].pgd; +- swapper_pg_dir[0].pgd = +- swapper_pg_dir[pgd_index(PAGE_OFFSET)].pgd; ++ swapper_pg_dir[pgd_index(phys_addr)].pgd; ++ swapper_pg_dir[pgd_index(phys_addr)].pgd = ++ swapper_pg_dir[pgd_index(virt_addr)].pgd; + } else { + efi_bak_pg_dir_pointer[0].pgd = +- swapper_pg_dir[pgd_index(0)].pgd; ++ swapper_pg_dir[pgd_index(phys_addr)].pgd; + efi_bak_pg_dir_pointer[1].pgd = +- swapper_pg_dir[pgd_index(0x400000)].pgd; +- swapper_pg_dir[pgd_index(0)].pgd = +- swapper_pg_dir[pgd_index(PAGE_OFFSET)].pgd; +- temp = PAGE_OFFSET + 0x400000; +- swapper_pg_dir[pgd_index(0x400000)].pgd = ++ swapper_pg_dir[pgd_index(phys_addr + 0x400000)].pgd; ++ swapper_pg_dir[pgd_index(phys_addr)].pgd = ++ swapper_pg_dir[pgd_index(virt_addr)].pgd; ++ temp = virt_addr + 0x400000; ++ swapper_pg_dir[pgd_index(phys_addr + 0x400000)].pgd = + swapper_pg_dir[pgd_index(temp)].pgd; + } + +diff --git a/include/linux/efi.h b/include/linux/efi.h +index 2362a0b..37c3007 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -109,6 +109,14 @@ typedef struct { + u32 imagesize; + } efi_capsule_header_t; + ++/* ++ * Allocation types for calls to boottime->allocate_pages. ++ */ ++#define EFI_ALLOCATE_ANY_PAGES 0 ++#define EFI_ALLOCATE_MAX_ADDRESS 1 ++#define EFI_ALLOCATE_ADDRESS 2 ++#define EFI_MAX_ALLOCATE_TYPE 3 ++ + typedef int (*efi_freemem_callback_t) (u64 start, u64 end, void *arg); + + /* +@@ -139,6 +147,57 @@ typedef struct { + } efi_time_cap_t; + + /* ++ * EFI Boot Services table ++ */ ++typedef struct { ++ efi_table_hdr_t hdr; ++ void *raise_tpl; ++ void *restore_tpl; ++ void *allocate_pages; ++ void *free_pages; ++ void *get_memory_map; ++ void *allocate_pool; ++ void *free_pool; ++ void *create_event; ++ void *set_timer; ++ void *wait_for_event; ++ void *signal_event; ++ void *close_event; ++ void *check_event; ++ void *install_protocol_interface; ++ void *reinstall_protocol_interface; ++ void *uninstall_protocol_interface; ++ void *handle_protocol; ++ void *__reserved; ++ void *register_protocol_notify; ++ void *locate_handle; ++ void *locate_device_path; ++ void *install_configuration_table; ++ void *load_image; ++ void *start_image; ++ void *exit; ++ void *unload_image; ++ void *exit_boot_services; ++ void *get_next_monotonic_count; ++ void *stall; ++ void *set_watchdog_timer; ++ void *connect_controller; ++ void *disconnect_controller; ++ void *open_protocol; ++ void *close_protocol; ++ void *open_protocol_information; ++ void *protocols_per_handle; ++ void *locate_handle_buffer; ++ void *locate_protocol; ++ void *install_multiple_protocol_interfaces; ++ void *uninstall_multiple_protocol_interfaces; ++ void *calculate_crc32; ++ void *copy_mem; ++ void *set_mem; ++ void *create_event_ex; ++} efi_boot_services_t; ++ ++/* + * Types and defines for EFI ResetSystem + */ + #define EFI_RESET_COLD 0 +@@ -236,6 +295,24 @@ typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **capsules, + #define LINUX_EFI_CRASH_GUID \ + EFI_GUID( 0xcfc8fc79, 0xbe2e, 0x4ddc, 0x97, 0xf0, 0x9f, 0x98, 0xbf, 0xe2, 0x98, 0xa0 ) + ++#define LOADED_IMAGE_PROTOCOL_GUID \ ++ EFI_GUID( 0x5b1b31a1, 0x9562, 0x11d2, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b ) ++ ++#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \ ++ EFI_GUID( 0x9042a9de, 0x23dc, 0x4a38, 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a ) ++ ++#define EFI_UGA_PROTOCOL_GUID \ ++ EFI_GUID( 0x982c298b, 0xf4fa, 0x41cb, 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 ) ++ ++#define EFI_PCI_IO_PROTOCOL_GUID \ ++ EFI_GUID( 0x4cf5b200, 0x68b8, 0x4ca5, 0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x2, 0x9a ) ++ ++#define EFI_FILE_INFO_ID \ ++ EFI_GUID( 0x9576e92, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b ) ++ ++#define EFI_FILE_SYSTEM_GUID \ ++ EFI_GUID( 0x964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b ) ++ + typedef struct { + efi_guid_t guid; + unsigned long table; +@@ -261,7 +338,7 @@ typedef struct { + unsigned long stderr_handle; + unsigned long stderr; + efi_runtime_services_t *runtime; +- unsigned long boottime; ++ efi_boot_services_t *boottime; + unsigned long nr_tables; + unsigned long tables; + } efi_system_table_t; +@@ -275,6 +352,56 @@ struct efi_memory_map { + unsigned long desc_size; + }; + ++typedef struct { ++ u32 revision; ++ void *parent_handle; ++ efi_system_table_t *system_table; ++ void *device_handle; ++ void *file_path; ++ void *reserved; ++ u32 load_options_size; ++ void *load_options; ++ void *image_base; ++ __aligned_u64 image_size; ++ unsigned int image_code_type; ++ unsigned int image_data_type; ++ unsigned long unload; ++} efi_loaded_image_t; ++ ++typedef struct { ++ u64 revision; ++ void *open_volume; ++} efi_file_io_interface_t; ++ ++typedef struct { ++ u64 size; ++ u64 file_size; ++ u64 phys_size; ++ efi_time_t create_time; ++ efi_time_t last_access_time; ++ efi_time_t modification_time; ++ __aligned_u64 attribute; ++ efi_char16_t filename[1]; ++} efi_file_info_t; ++ ++typedef struct { ++ u64 revision; ++ void *open; ++ void *close; ++ void *delete; ++ void *read; ++ void *write; ++ void *get_position; ++ void *set_position; ++ void *get_info; ++ void *set_info; ++ void *flush; ++} efi_file_handle_t; ++ ++#define EFI_FILE_MODE_READ 0x0000000000000001 ++#define EFI_FILE_MODE_WRITE 0x0000000000000002 ++#define EFI_FILE_MODE_CREATE 0x8000000000000000 ++ + #define EFI_INVALID_TABLE_ADDR (~0UL) + + /* +@@ -385,6 +512,13 @@ extern int __init efi_setup_pcdp_console(char *); + #define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 + + /* ++ * The type of search to perform when calling boottime->locate_handle ++ */ ++#define EFI_LOCATE_ALL_HANDLES 0 ++#define EFI_LOCATE_BY_REGISTER_NOTIFY 1 ++#define EFI_LOCATE_BY_PROTOCOL 2 ++ ++/* + * EFI Device Path information + */ + #define EFI_DEV_HW 0x01 diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 672464e8965..585a8c0340b 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -415,4 +415,13 @@ rec { name = "glibc-getline"; patch = ./getline.patch; }; + + efi_stub = + { + # Patch to enable making the kernel a bootable efi image to avoid + # needing a bootloader on efi systems + # From the x86/efi-stub branch of git://github.com/mfleming/linux-2.6.git + name = "efi-stub"; + patch = ./efi-stub.patch; + }; } From 4b795e225b257d7c08ca242b72a87f56715e9e53 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 2 Oct 2011 04:03:02 +0000 Subject: [PATCH 43/76] module-init-tools: 3.16 svn path=/nixpkgs/trunk/; revision=29556 --- .../linux/module-init-tools/default.nix | 25 +- .../linux/module-init-tools/docbook2man.patch | 12 + .../linux/module-init-tools/module-dir.patch | 305 +++++++++--------- 3 files changed, 174 insertions(+), 168 deletions(-) create mode 100644 pkgs/os-specific/linux/module-init-tools/docbook2man.patch diff --git a/pkgs/os-specific/linux/module-init-tools/default.nix b/pkgs/os-specific/linux/module-init-tools/default.nix index 5fdfedc3e2f..d29b8bee5e4 100644 --- a/pkgs/os-specific/linux/module-init-tools/default.nix +++ b/pkgs/os-specific/linux/module-init-tools/default.nix @@ -1,23 +1,16 @@ -{stdenv, fetchurl}: +{stdenv, fetchurl, docbook2x}: -stdenv.mkDerivation { - name = "module-init-tools-3.4"; +stdenv.mkDerivation rec { + name = "module-init-tools-3.16"; - src = [ - (fetchurl { - url = mirror://kernel/linux/utils/kernel/module-init-tools/module-init-tools-3.4.tar.bz2; - sha256 = "11rxcdr915skc1m6dcavavw8dhcsy24wpi56sw1m4akj2frs3iwn"; - }) + src = fetchurl { + url = "mirror://kernel/linux/utils/kernel/module-init-tools/${name}.tar.bz2"; + sha256 = "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"; + }; - # Upstream forgot to include the generated manpages. Thankfully - # the Gentoo people fixed this for us :-) - (fetchurl { - url = mirror://gentoo/distfiles/module-init-tools-3.4-manpages.tar.bz2; - sha256 = "0jid24girjhr30mrdckylkcz11v4in46nshhrqv18yaxm6506v6j"; - }) - ]; + buildInputs = [ docbook2x ]; - patches = [./module-dir.patch]; + patches = [ ./module-dir.patch ./docbook2man.patch ]; postInstall = "rm $out/sbin/insmod.static"; # don't need it diff --git a/pkgs/os-specific/linux/module-init-tools/docbook2man.patch b/pkgs/os-specific/linux/module-init-tools/docbook2man.patch new file mode 100644 index 00000000000..4de07b658a9 --- /dev/null +++ b/pkgs/os-specific/linux/module-init-tools/docbook2man.patch @@ -0,0 +1,12 @@ +diff -Naur module-init-tools-3.16-orig/Makefile.in module-init-tools-3.16/Makefile.in +--- module-init-tools-3.16-orig/Makefile.in 2011-06-02 13:56:45.000000000 -0400 ++++ module-init-tools-3.16/Makefile.in 2011-10-01 23:59:30.584443193 -0400 +@@ -174,7 +174,7 @@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ +-DOCBOOKTOMAN = @DOCBOOKTOMAN@ ++DOCBOOKTOMAN = @DOCBOOKTOMAN@ --sgml + ECHO_C = @ECHO_C@ + ECHO_N = @ECHO_N@ + ECHO_T = @ECHO_T@ diff --git a/pkgs/os-specific/linux/module-init-tools/module-dir.patch b/pkgs/os-specific/linux/module-init-tools/module-dir.patch index cda28c14527..90805b00c3c 100644 --- a/pkgs/os-specific/linux/module-init-tools/module-dir.patch +++ b/pkgs/os-specific/linux/module-init-tools/module-dir.patch @@ -1,152 +1,153 @@ -diff -rc module-init-tools-3.4-orig/depmod.c module-init-tools-3.4/depmod.c -*** module-init-tools-3.4-orig/depmod.c 2007-10-07 23:51:46.000000000 +0200 ---- module-init-tools-3.4/depmod.c 2008-08-11 12:03:14.000000000 +0200 -*************** -*** 1066,1071 **** ---- 1066,1072 ---- - *system_map = NULL; - struct module *list = NULL; - int i; -+ char *module_dir; - const char *config = NULL; - struct module_search *search = NULL; - struct module_overrides *overrides = NULL; -*************** -*** 1148,1157 **** - if (optind == argc) - all = 1; - - dirname = NOFAIL(malloc(strlen(basedir) -! + strlen(MODULE_DIR) - + strlen(version) + 1)); -! sprintf(dirname, "%s%s%s", basedir, MODULE_DIR, version); - - if (maybe_all) { - if (!doing_stdout && !depfile_out_of_date(dirname)) ---- 1149,1162 ---- - if (optind == argc) - all = 1; - -+ if((module_dir = getenv("MODULE_DIR")) == NULL) { -+ module_dir = "/lib/modules/"; -+ } -+ - dirname = NOFAIL(malloc(strlen(basedir) -! + strlen(module_dir) - + strlen(version) + 1)); -! sprintf(dirname, "%s%s%s", basedir, module_dir, version); - - if (maybe_all) { - if (!doing_stdout && !depfile_out_of_date(dirname)) -Only in module-init-tools-3.4/: depmod.c~ -Only in module-init-tools-3.4/: depmod.c.rej -diff -rc module-init-tools-3.4-orig/modinfo.c module-init-tools-3.4/modinfo.c -*** module-init-tools-3.4-orig/modinfo.c 2007-10-07 23:51:46.000000000 +0200 ---- module-init-tools-3.4/modinfo.c 2008-08-11 12:07:55.000000000 +0200 -*************** -*** 18,27 **** - #define streq(a,b) (strcmp((a),(b)) == 0) - #define strstarts(a,start) (strncmp((a),(start), strlen(start)) == 0) - -- #ifndef MODULE_DIR -- #define MODULE_DIR "/lib/modules" -- #endif -- - static int elf_endian; - static int my_endian; - ---- 18,23 ---- -*************** -*** 278,283 **** ---- 274,280 ---- - char *data; - struct utsname buf; - char *depname, *p; -+ char *module_dir; - - data = grab_file(name, size); - if (data) { -*************** -*** 290,301 **** - return NULL; - } - - /* Search for it in modules.dep. */ - if (kernel) { -! asprintf(&depname, "%s/%s/modules.dep", MODULE_DIR, kernel); - } else { - uname(&buf); -! asprintf(&depname, "%s/%s/modules.dep", MODULE_DIR, - buf.release); - } - data = grab_file(depname, size); ---- 287,302 ---- - return NULL; - } - -+ if((module_dir = getenv("MODULE_DIR")) == NULL) { -+ module_dir = "/lib/modules"; -+ } -+ - /* Search for it in modules.dep. */ - if (kernel) { -! asprintf(&depname, "%s/%s/modules.dep", module_dir, kernel); - } else { - uname(&buf); -! asprintf(&depname, "%s/%s/modules.dep", module_dir, - buf.release); - } - data = grab_file(depname, size); -Only in module-init-tools-3.4/: modinfo.c~ -Only in module-init-tools-3.4/: modinfo.c.rej -diff -rc module-init-tools-3.4-orig/modprobe.c module-init-tools-3.4/modprobe.c -*** module-init-tools-3.4-orig/modprobe.c 2007-10-07 23:57:23.000000000 +0200 ---- module-init-tools-3.4/modprobe.c 2008-08-11 12:06:54.000000000 +0200 -*************** -*** 55,64 **** - char filename[0]; - }; - -- #ifndef MODULE_DIR -- #define MODULE_DIR "/lib/modules" -- #endif -- - typedef void (*errfn_t)(const char *fmt, ...); - - /* Do we use syslog or stderr for messages? */ ---- 55,60 ---- -*************** -*** 1433,1438 **** ---- 1429,1435 ---- - char *newname = NULL; - char *aliasfilename, *symfilename; - errfn_t error = fatal; -+ char *module_dir = NULL; - int flags = O_NONBLOCK|O_EXCL; - - /* Prepend options from environment. */ -*************** -*** 1559,1566 **** - if (argc < optind + 1 && !dump_only && !list_only && !remove) - print_usage(argv[0]); - -! dirname = NOFAIL(malloc(strlen(buf.release) + sizeof(MODULE_DIR) + 1)); -! sprintf(dirname, "%s/%s", MODULE_DIR, buf.release); - aliasfilename = NOFAIL(malloc(strlen(dirname) - + sizeof("/modules.alias"))); - sprintf(aliasfilename, "%s/modules.alias", dirname); ---- 1556,1567 ---- - if (argc < optind + 1 && !dump_only && !list_only && !remove) - print_usage(argv[0]); - -! if((module_dir = getenv("MODULE_DIR")) == NULL) { -! module_dir = "/lib/modules"; -! } -! -! dirname = NOFAIL(malloc(strlen(buf.release) + strlen(module_dir) + 2)); -! sprintf(dirname, "%s/%s", module_dir, buf.release); - aliasfilename = NOFAIL(malloc(strlen(dirname) - + sizeof("/modules.alias"))); - sprintf(aliasfilename, "%s/modules.alias", dirname); -Only in module-init-tools-3.4/: modprobe.c~ -Only in module-init-tools-3.4/: modprobe.c.rej +diff -Naur module-init-tools-3.16-orig/depmod.c module-init-tools-3.16/depmod.c +--- module-init-tools-3.16-orig/depmod.c 2011-06-02 13:55:01.000000000 -0400 ++++ module-init-tools-3.16/depmod.c 2011-10-01 23:30:14.947293695 -0400 +@@ -48,10 +48,6 @@ + + #include "testing.h" + +-#ifndef MODULE_DIR +-#define MODULE_DIR "/lib/modules/" +-#endif +- + #ifndef MODULE_BUILTIN_KEY + #define MODULE_BUILTIN_KEY "built-in" + #endif +@@ -1514,6 +1510,7 @@ + struct module_overrides **overrides) + { + char *line; ++ char *module_dir; + unsigned int linenum = 0; + FILE *cfile; + +@@ -1536,6 +1533,9 @@ + continue; + } + ++ if((module_dir = getenv("MODULE_DIR")) == NULL) ++ module_dir = "/lib/modules/"; ++ + if (streq(cmd, "search")) { + char *search_path; + +@@ -1550,7 +1550,7 @@ + continue; + } + nofail_asprintf(&dirname, "%s%s%s/%s", basedir, +- MODULE_DIR, kernelversion, search_path); ++ module_dir, kernelversion, search_path); + len = strlen(dirname); + *search = add_search(dirname, len, *search); + free(dirname); +@@ -1565,7 +1565,7 @@ + continue; + + nofail_asprintf(&pathname, "%s%s%s/%s/%s.ko", basedir, +- MODULE_DIR, kernelversion, subdir, modname); ++ module_dir, kernelversion, subdir, modname); + + *overrides = add_override(pathname, *overrides); + free(pathname); +@@ -1737,6 +1737,7 @@ + char *basedir = "", *dirname, *version; + char *system_map = NULL, *module_symvers = NULL; + int i; ++ char *module_dir; + const char *config = NULL; + + if (native_endianness() == 0) +@@ -1832,7 +1833,10 @@ + if (optind == argc) + all = 1; + +- nofail_asprintf(&dirname, "%s%s%s", basedir, MODULE_DIR, version); ++ if((module_dir = getenv("MODULE_DIR")) == NULL) ++ module_dir = "/lib/modules/"; ++ ++ nofail_asprintf(&dirname, "%s%s%s", basedir, module_dir, version); + + if (maybe_all) { + if (!doing_stdout && !depfile_out_of_date(dirname)) +@@ -1850,7 +1854,7 @@ + size_t len; + + nofail_asprintf(&dirname, "%s%s%s/updates", basedir, +- MODULE_DIR, version); ++ module_dir, version); + len = strlen(dirname); + search = add_search(dirname, len, search); + } +diff -Naur module-init-tools-3.16-orig/modinfo.c module-init-tools-3.16/modinfo.c +--- module-init-tools-3.16-orig/modinfo.c 2011-06-02 13:55:01.000000000 -0400 ++++ module-init-tools-3.16/modinfo.c 2011-10-01 23:32:15.335093548 -0400 +@@ -19,10 +19,6 @@ + #include "zlibsupport.h" + #include "testing.h" + +-#ifndef MODULE_DIR +-#define MODULE_DIR "/lib/modules" +-#endif +- + struct param + { + struct param *next; +@@ -192,6 +188,7 @@ + unsigned long size; + struct utsname buf; + char *depname, *p, *moddir; ++ char *module_dir; + struct elf_file *module; + + if (strchr(name, '.') || strchr(name, '/')) { +@@ -206,10 +203,14 @@ + uname(&buf); + kernel = buf.release; + } ++ ++ if((module_dir = getenv("MODULE_DIR")) == NULL) ++ module_dir = "/lib/modules/"; ++ + if (strlen(basedir)) +- nofail_asprintf(&moddir, "%s/%s/%s", basedir, MODULE_DIR, kernel); ++ nofail_asprintf(&moddir, "%s/%s/%s", basedir, module_dir, kernel); + else +- nofail_asprintf(&moddir, "%s/%s", MODULE_DIR, kernel); ++ nofail_asprintf(&moddir, "%s/%s", module_dir, kernel); + + /* Search for it in modules.dep. */ + nofail_asprintf(&depname, "%s/%s", moddir, "modules.dep"); +diff -Naur module-init-tools-3.16-orig/modprobe.c module-init-tools-3.16/modprobe.c +--- module-init-tools-3.16-orig/modprobe.c 2011-06-02 13:55:01.000000000 -0400 ++++ module-init-tools-3.16/modprobe.c 2011-10-01 23:34:04.111913368 -0400 +@@ -86,10 +86,6 @@ + + } modprobe_flags_t; + +-#ifndef MODULE_DIR +-#define MODULE_DIR "/lib/modules" +-#endif +- + /** + * print_usage - output the prefered program usage + * +@@ -2131,6 +2127,7 @@ + char *cmdline_opts = NULL; + char *dirname; + errfn_t error = fatal; ++ char *module_dir; + int failed = 0; + modprobe_flags_t flags = 0; + struct modprobe_conf conf = {}; +@@ -2233,7 +2230,10 @@ + if (argc < optind + 1 && !dump_config && !list_only) + print_usage(argv[0]); + +- nofail_asprintf(&dirname, "%s%s/%s", basedir, MODULE_DIR, buf.release); ++ if((module_dir = getenv("MODULE_DIR")) == NULL) ++ module_dir = "/lib/modules/"; ++ ++ nofail_asprintf(&dirname, "%s%s/%s", basedir, module_dir, buf.release); + + /* Old-style -t xxx wildcard? Only with -l. */ + if (list_only) { + From 50531eacb80735f382971bbc1090162dcafb9cab Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Sun, 2 Oct 2011 07:28:11 +0000 Subject: [PATCH 44/76] qt-4.7.4 svn path=/nixpkgs/trunk/; revision=29557 --- pkgs/development/libraries/qt-4.x/4.7/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-4.x/4.7/default.nix b/pkgs/development/libraries/qt-4.x/4.7/default.nix index 67725315aa5..47832a114b4 100644 --- a/pkgs/development/libraries/qt-4.x/4.7/default.nix +++ b/pkgs/development/libraries/qt-4.x/4.7/default.nix @@ -9,7 +9,7 @@ }: let - v = "4.7.3"; + v = "4.7.4"; in stdenv.mkDerivation rec { @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-${v}.tar.gz"; - sha256 = "0zlk0lcrkhi8wdb5j2lqz3nclk07blbiial7lzs03708kpb6yayh"; + sha256 = "07i283si8rckdsg3h9a4sp213l16hgjrl7cpzclrjvx4x2y5w6cp"; }; preConfigure = From fa500dca2569d7abef64cd63da4e7e60fd2ddc65 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Sun, 2 Oct 2011 09:24:23 +0000 Subject: [PATCH 45/76] Fix typo in release-notes svn path=/nixpkgs/trunk/; revision=29558 --- doc/release-notes.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-notes.xml b/doc/release-notes.xml index 82a43c2887b..f8a4e83c8b5 100644 --- a/doc/release-notes.xml +++ b/doc/release-notes.xml @@ -80,7 +80,7 @@ worth listing: Support for building derivations in a virtual machine, including RPM and Debian builds in automatically generated VM images. See - pkgs/build-support/vm.default.nix for + pkgs/build-support/vm/default.nix for details. Improved support for building Haskell From 34144e835dc1fbc31dc8e38662ff330c278db1c7 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 2 Oct 2011 11:01:08 +0000 Subject: [PATCH 46/76] Linux 3.x: Use our module directory during modules_install The "unset MODULE_DIR" trick was enough to get Linux 3.x kernels compiling, but it was definitely the Wrong Thing We NEED MODULE_DIR set so that depmod can store the right dependencies during the build. The REAL problem with the 3.x kernels was two-fold: Our module-init-tools was so old that the kernel build needed to introduce a hack when calling depmod (involving creating a symlink prepending 99.98 to the version number), and the depmod wrapper was moved out of the Makefile into scripts/depmod.sh, so our substituteInPlace to get rid of '-b $(INSTALL_MOD_PATH)' in the Makefile was a noop and INSTALL_MOD_PATH was still being passed to depmod. This is now fixed and modprobe can successfully find dependencies using the modules.dep created during install svn path=/nixpkgs/trunk/; revision=29559 --- pkgs/os-specific/linux/kernel/generic.nix | 10 ---------- pkgs/os-specific/linux/kernel/linux-3.0.nix | 6 ++++-- pkgs/os-specific/linux/kernel/linux-3.1.nix | 6 ++++-- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index af62125eb75..9fe1dedda86 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -38,7 +38,6 @@ , extraMeta ? {} , ubootChooser ? null , postInstall ? "" -, setModuleDir ? true , # After the builder did a 'make all' (kernel + modules) # we force building the target asked: bzImage/zImage/uImage/... @@ -80,15 +79,6 @@ stdenv.mkDerivation { inherit preConfigure src module_init_tools localVersion postInstall; - #Currently, the builder sets $MODULE_DIR during installPhase. This causes - #problems with at least linux 3.0, so we need to conditionally avoid - #setting $MODULE_DIR. This prepend to postBuild accomplishes this with a - #sed/eval trick thanks to MarcWeber - - postBuild = (if setModuleDir then "" else '' - eval "$(type installPhase | sed -e '1d' -e '/export MODULE_DIR/d')"; - '') + postBuild; - patches = map (p: p.patch) kernelPatches; kernelConfig = kernelConfigFun config; diff --git a/pkgs/os-specific/linux/kernel/linux-3.0.nix b/pkgs/os-specific/linux/kernel/linux-3.0.nix index 1b685cd2d94..6f1a32e5c0f 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.0.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.0.nix @@ -202,6 +202,10 @@ import ./generic.nix ( rec { version = "3.0.4"; + preConfigure = '' + substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' "" + ''; + src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2"; sha256 = "1vypjcdii75h5f4zsw9lm8wzxd5ix0mk5p94c96hxv828mqqkmhk"; @@ -210,8 +214,6 @@ import ./generic.nix ( config = configWithPlatform stdenv.platform; configCross = configWithPlatform stdenv.cross.platform; - setModuleDir = false; - features.iwlwifi = true; } diff --git a/pkgs/os-specific/linux/kernel/linux-3.1.nix b/pkgs/os-specific/linux/kernel/linux-3.1.nix index ae78de1e476..4f8d08340e6 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.1.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.1.nix @@ -203,6 +203,10 @@ import ./generic.nix ( version = "3.1-rc8"; modDirVersion = "3.1.0-rc8"; + + preConfigure = '' + substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' "" + ''; src = fetchurl { url = "https://github.com/torvalds/linux/tarball/v${version}"; @@ -213,8 +217,6 @@ import ./generic.nix ( config = configWithPlatform stdenv.platform; configCross = configWithPlatform stdenv.cross.platform; - setModuleDir = false; - features.iwlwifi = true; } From 36910c10e5648f5e5f777301e427f3439d5e14b5 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 2 Oct 2011 11:50:19 +0000 Subject: [PATCH 47/76] modprobe --show-depends now spits out 'builtin' if a requested module is, well, built-in svn path=/nixpkgs/trunk/; revision=29560 --- pkgs/build-support/kernel/modules-closure.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh index af1faa7708c..383e66b51f0 100644 --- a/pkgs/build-support/kernel/modules-closure.sh +++ b/pkgs/build-support/kernel/modules-closure.sh @@ -18,7 +18,10 @@ for module in $rootModules; do | sed 's/^insmod //') \ || if test -z "$allowMissing"; then exit 1; fi #for i in $deps; do echo $i; done - closure="$closure $deps" + if [ "$deps" -ne "builtin" ] + then + closure="$closure $deps" + fi done echo "closure:" From 21b2dd7ab4004008b15dd8f39dd5d627ef101321 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 2 Oct 2011 12:53:51 +0000 Subject: [PATCH 48/76] D'oh svn path=/nixpkgs/trunk/; revision=29562 --- pkgs/build-support/kernel/modules-closure.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh index 383e66b51f0..c1e216956e7 100644 --- a/pkgs/build-support/kernel/modules-closure.sh +++ b/pkgs/build-support/kernel/modules-closure.sh @@ -18,7 +18,7 @@ for module in $rootModules; do | sed 's/^insmod //') \ || if test -z "$allowMissing"; then exit 1; fi #for i in $deps; do echo $i; done - if [ "$deps" -ne "builtin" ] + if [[ "$deps" != builtin* ]] then closure="$closure $deps" fi From c073bf9c2261ad1ff6ad945555b5f6a990d0ed6c Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 2 Oct 2011 14:02:06 +0000 Subject: [PATCH 49/76] Update the shadow tarball url svn path=/nixpkgs/trunk/; revision=29564 --- pkgs/os-specific/linux/shadow/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix index 6c7f9083c72..e4722f26d2b 100644 --- a/pkgs/os-specific/linux/shadow/default.nix +++ b/pkgs/os-specific/linux/shadow/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation rec { name = "shadow-4.1.4.2"; src = fetchurl { - url = "ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/${name}.tar.bz2"; + url = "http://pkg-shadow.alioth.debian.org/releases/${name}.tar.bz2"; sha256 = "1449ny7pdnwkavg92wvibapnkgdq5pas38nvl1m5xa37g5m7z64p"; }; From 2a94841c64ceda675bc1700263d390edf6fa0c32 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 2 Oct 2011 14:20:49 +0000 Subject: [PATCH 50/76] Enable building 3.1 with an efi stub It's still not enabled by default, you need to set CONFIG_EFI_STUB=y svn path=/nixpkgs/trunk/; revision=29565 --- pkgs/top-level/all-packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 913bbba51c5..d6ea54bdb03 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5561,6 +5561,7 @@ let kernelPatches = [ #kernelPatches.fbcondecor_2_6_38 kernelPatches.sec_perm_2_6_24 + kernelPatches.efi_stub #kernelPatches.aufs2_1_2_6_38 #kernelPatches.mips_restart_2_6_36 ]; From 494e927d1cd8ce252379d64770c939446da7253b Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 2 Oct 2011 14:34:23 +0000 Subject: [PATCH 51/76] libcaca: Bump svn path=/nixpkgs/trunk/; revision=29566 --- pkgs/development/libraries/libcaca/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libcaca/default.nix b/pkgs/development/libraries/libcaca/default.nix index 4c11a3a1fe3..b8410380aba 100644 --- a/pkgs/development/libraries/libcaca/default.nix +++ b/pkgs/development/libraries/libcaca/default.nix @@ -1,11 +1,11 @@ {stdenv, fetchurl, ncurses}: stdenv.mkDerivation rec { - name = "libcaca-0.99.beta16"; + name = "libcaca-0.99.beta17"; src = fetchurl { - url = "http://caca.zoy.org/raw-attachment/wiki/libcaca/${name}.tar.gz"; - sha256 = "1k2anqc9jxvlyar6ximf9l55xzzhgwdbjbclpj64vg6lpqf96k6a"; + url = "http://caca.zoy.org/files/libcaca/${name}.tar.gz"; + sha256 = "1mpicj3xf4d0mf8papb1zbks5yzi4lnj6yh5cvpq7sb176gawmb3"; }; configureFlags = "--disable-x11 --disable-imlib2 --disable-doc"; From 5a5602184ea2251ac8735123cd857ef45ed35ac4 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sun, 2 Oct 2011 17:12:50 +0000 Subject: [PATCH 52/76] Whoops, forgot to re-inherit postBuild now that it's not set manually I really should have done these changes in a topic branch, sorry svn path=/nixpkgs/trunk/; revision=29567 --- pkgs/os-specific/linux/kernel/generic.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 9fe1dedda86..eaa90ac0eec 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -77,7 +77,7 @@ stdenv.mkDerivation { generateConfig = ./generate-config.pl; - inherit preConfigure src module_init_tools localVersion postInstall; + inherit preConfigure src module_init_tools localVersion postInstall postBuild; patches = map (p: p.patch) kernelPatches; From 0a3e9cad72b77954fb3a9bb56ef23db8ea9a3952 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Sun, 2 Oct 2011 18:12:29 +0000 Subject: [PATCH 53/76] Make dbus_all_1_5_6.tools compile svn path=/nixpkgs/trunk/; revision=29568 --- pkgs/development/libraries/dbus/1.5.6.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/dbus/1.5.6.nix b/pkgs/development/libraries/dbus/1.5.6.nix index a5ba03159f1..9c158933cb0 100644 --- a/pkgs/development/libraries/dbus/1.5.6.nix +++ b/pkgs/development/libraries/dbus/1.5.6.nix @@ -49,7 +49,7 @@ in rec { preConfigure = '' - sed -i 's@ $(top_builddir)/dbus/libdbus-1.la@@' tools/Makefile.in + sed -i 's@$(top_builddir)/dbus/libdbus-1.la@@' tools/Makefile.in substituteInPlace tools/Makefile.in --replace 'install-localstatelibDATA:' 'disabled:' ''; From 4cdf639958c9084b32a42bd4f75fca3720b8897a Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Sun, 2 Oct 2011 19:53:20 +0000 Subject: [PATCH 54/76] Remove unused parameter from xorg call svn path=/nixpkgs/trunk/; revision=29569 --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d6ea54bdb03..71a6b6076ae 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4997,7 +4997,7 @@ let xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix { inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig libxslt expat libdrm libpng zlib perl mesa - xkeyboard_config dbus hal libuuid openssl gperf m4 + xkeyboard_config dbus libuuid openssl gperf m4 autoconf libtool xmlto asciidoc udev flex bison python; automake = automake110x; }); From 5328a95a3c3a8a6dbf03d823cba288b9d5c8e360 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:12:07 +0000 Subject: [PATCH 55/76] haddock-2.4.2: added 'alex' build input svn path=/nixpkgs/trunk/; revision=29570 --- pkgs/development/tools/documentation/haddock/2.4.2.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/documentation/haddock/2.4.2.nix b/pkgs/development/tools/documentation/haddock/2.4.2.nix index 226a4fd676e..30b06ed280a 100644 --- a/pkgs/development/tools/documentation/haddock/2.4.2.nix +++ b/pkgs/development/tools/documentation/haddock/2.4.2.nix @@ -1,4 +1,4 @@ -{ cabal, ghcPaths }: +{ cabal, alex, ghcPaths }: cabal.mkDerivation (self: { pname = "haddock"; @@ -7,6 +7,7 @@ cabal.mkDerivation (self: { isLibrary = true; isExecutable = true; buildDepends = [ ghcPaths ]; + buildTools = [ alex ]; meta = { homepage = "http://www.haskell.org/haddock/"; description = "A documentation-generation tool for Haskell libraries"; From 3277d89fcf7c762a7b3998e344fb2b1cd1aef1b1 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:13:54 +0000 Subject: [PATCH 56/76] haddock-2.4.2: added 'happy' build input svn path=/nixpkgs/trunk/; revision=29571 --- pkgs/development/tools/documentation/haddock/2.4.2.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/documentation/haddock/2.4.2.nix b/pkgs/development/tools/documentation/haddock/2.4.2.nix index 30b06ed280a..3abd66fe534 100644 --- a/pkgs/development/tools/documentation/haddock/2.4.2.nix +++ b/pkgs/development/tools/documentation/haddock/2.4.2.nix @@ -1,4 +1,4 @@ -{ cabal, alex, ghcPaths }: +{ cabal, alex, ghcPaths, happy }: cabal.mkDerivation (self: { pname = "haddock"; @@ -7,7 +7,7 @@ cabal.mkDerivation (self: { isLibrary = true; isExecutable = true; buildDepends = [ ghcPaths ]; - buildTools = [ alex ]; + buildTools = [ alex happy ]; meta = { homepage = "http://www.haskell.org/haddock/"; description = "A documentation-generation tool for Haskell libraries"; From ec549646da97cbe5ef84fc193245e29169101d06 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:20 +0000 Subject: [PATCH 57/76] haskell-haddock: added version 2.9.3 svn path=/nixpkgs/trunk/; revision=29572 --- .../tools/documentation/haddock/2.9.3.nix | 21 +++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 1 + 2 files changed, 22 insertions(+) create mode 100644 pkgs/development/tools/documentation/haddock/2.9.3.nix diff --git a/pkgs/development/tools/documentation/haddock/2.9.3.nix b/pkgs/development/tools/documentation/haddock/2.9.3.nix new file mode 100644 index 00000000000..1d12654b33f --- /dev/null +++ b/pkgs/development/tools/documentation/haddock/2.9.3.nix @@ -0,0 +1,21 @@ +{ cabal, alex, ghcPaths, happy, xhtml }: + +cabal.mkDerivation (self: { + pname = "haddock"; + version = "2.9.3"; + sha256 = "0r3yp5s7qv9hmwwfz8rxbwj39qpysgyg53ka4alaxnfma0a96iyj"; + isLibrary = true; + isExecutable = true; + buildDepends = [ ghcPaths xhtml ]; + buildTools = [ alex happy ]; + meta = { + homepage = "http://www.haskell.org/haddock/"; + description = "A documentation-generation tool for Haskell libraries"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ + self.stdenv.lib.maintainers.andres + self.stdenv.lib.maintainers.simons + ]; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index f7edf77d32a..eea52606d18 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1369,6 +1369,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); haddock_2_4_2 = callPackage ../development/tools/documentation/haddock/2.4.2.nix {}; haddock_2_7_2 = callPackage ../development/tools/documentation/haddock/2.7.2.nix {}; haddock_2_9_2 = callPackage ../development/tools/documentation/haddock/2.9.2.nix {}; + haddock_2_9_3 = callPackage ../development/tools/documentation/haddock/2.9.3.nix {}; haddock = self.haddock_2_7_2; happy_1_18_4 = callPackage ../development/tools/parsing/happy/1.18.4.nix {}; From e0cf0de6c21d737d0c5e7665cd554b16d7a10048 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:25 +0000 Subject: [PATCH 58/76] haskell-X11-xft: updated to version 0.3.1 svn path=/nixpkgs/trunk/; revision=29573 --- pkgs/development/libraries/haskell/X11-xft/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/X11-xft/default.nix b/pkgs/development/libraries/haskell/X11-xft/default.nix index 14af645928c..d9eee5f5e1c 100644 --- a/pkgs/development/libraries/haskell/X11-xft/default.nix +++ b/pkgs/development/libraries/haskell/X11-xft/default.nix @@ -3,8 +3,8 @@ cabal.mkDerivation (self: { pname = "X11-xft"; - version = "0.3"; - sha256 = "48892d0d0a90d5b47658877facabf277bf8466b7388eaf6ce163b843432a567d"; + version = "0.3.1"; + sha256 = "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"; buildDepends = [ utf8String X11 ]; extraLibraries = [ fontconfig freetype pkgconfig ]; pkgconfigDepends = [ libXft ]; From 264e8539b553855c1f52febb648a8937df071333 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:29 +0000 Subject: [PATCH 59/76] haskell-blaze-html: updated to version 0.4.2.0 svn path=/nixpkgs/trunk/; revision=29574 --- pkgs/development/libraries/haskell/blaze-html/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/blaze-html/default.nix b/pkgs/development/libraries/haskell/blaze-html/default.nix index e5a49912779..6315bade7b0 100644 --- a/pkgs/development/libraries/haskell/blaze-html/default.nix +++ b/pkgs/development/libraries/haskell/blaze-html/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "blaze-html"; - version = "0.4.1.7"; - sha256 = "0hfnfwbw8gshcv15i8jb6636rh3dl4zwwp6l21yjbrblh3825k0y"; + version = "0.4.2.0"; + sha256 = "098y9mzq6jr73lavv7ky58bl3aajvdg72y12varpf3v3rr4l0lb2"; buildDepends = [ blazeBuilder text ]; meta = { homepage = "http://jaspervdj.be/blaze"; From 750527851ce56bffdae4235997bba5884b840e37 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:33 +0000 Subject: [PATCH 60/76] haskell-hledger-chart: updated to version 0.16 svn path=/nixpkgs/trunk/; revision=29575 --- pkgs/development/libraries/haskell/hledger-chart/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/hledger-chart/default.nix b/pkgs/development/libraries/haskell/hledger-chart/default.nix index 23dcb192900..1b9d0eb6f55 100644 --- a/pkgs/development/libraries/haskell/hledger-chart/default.nix +++ b/pkgs/development/libraries/haskell/hledger-chart/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "hledger-chart"; - version = "0.15.2"; - sha256 = "1cs4m6lhpqib2rhpvyrw5319mjqw8cwlin7734m7yndjj8li8rcx"; + version = "0.16"; + sha256 = "05njn30xxnjxigvz6sjhm1ks595f9y7ndw3il1grh09rhvgp42f7"; isLibrary = false; isExecutable = true; buildDepends = [ From bfd8bc177b2e41489e9240b52eee920d5637a365 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:37 +0000 Subject: [PATCH 61/76] haskell-hledger-lib: updated to version 0.16 svn path=/nixpkgs/trunk/; revision=29576 --- pkgs/development/libraries/haskell/hledger-lib/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/hledger-lib/default.nix b/pkgs/development/libraries/haskell/hledger-lib/default.nix index 032e7caa5a8..16dc72f3450 100644 --- a/pkgs/development/libraries/haskell/hledger-lib/default.nix +++ b/pkgs/development/libraries/haskell/hledger-lib/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "hledger-lib"; - version = "0.15.2"; - sha256 = "1if20197nyg1as6v1c4a0js694zg213nf7rhfhv2a46af58n0bgq"; + version = "0.16"; + sha256 = "095hghg7b6x355yfd3xcp8cngl94k8qbl5x7qm12ncin9dsmz8h8"; buildDepends = [ cmdargs HUnit mtl parsec regexpr safe split time utf8String ]; From b0b151d05d96d30d426ce0b99fa42a34b7126f96 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:42 +0000 Subject: [PATCH 62/76] haskell-hledger-vty: updated to version 0.16 svn path=/nixpkgs/trunk/; revision=29577 --- pkgs/development/libraries/haskell/hledger-vty/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/hledger-vty/default.nix b/pkgs/development/libraries/haskell/hledger-vty/default.nix index 51d2f0af1af..5cd816c5ddf 100644 --- a/pkgs/development/libraries/haskell/hledger-vty/default.nix +++ b/pkgs/development/libraries/haskell/hledger-vty/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "hledger-vty"; - version = "0.15.2"; - sha256 = "0sii9psh1mm5f8w782bv2m5rxn29q23v17avhw0x5ssm9zy9yxqd"; + version = "0.16"; + sha256 = "161ziq4vwg6wsxijq065g1dpfnvcpxzzbarsj7znbqq4gs02mxx2"; isLibrary = false; isExecutable = true; buildDepends = [ cmdargs hledger hledgerLib HUnit safe time vty ]; From 60310380e9a7eab27de3cd32b2b69f782026d400 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:46 +0000 Subject: [PATCH 63/76] haskell-hledger-web: updated to version 0.16 svn path=/nixpkgs/trunk/; revision=29578 --- .../libraries/haskell/hledger-web/default.nix | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/haskell/hledger-web/default.nix b/pkgs/development/libraries/haskell/hledger-web/default.nix index 7dad816d240..2c3affc9c62 100644 --- a/pkgs/development/libraries/haskell/hledger-web/default.nix +++ b/pkgs/development/libraries/haskell/hledger-web/default.nix @@ -1,19 +1,23 @@ -{ cabal, aeson, cmdargs, failure, fileEmbed, hamlet, hledger -, hledgerLib, HUnit, ioStorage, parsec, regexpr, safe, text, time -, transformers, wai, waiExtra, warp, yesodCore, yesodForm -, yesodJson, yesodStatic +{ cabal, aesonNative, blazeHtml, clientsession, cmdargs, dataObject +, dataObjectYaml, failure, fileEmbed, hamlet, hledger, hledgerLib +, HUnit, ioStorage, parsec, regexpr, safe, shakespeareCss +, shakespeareJs, shakespeareText, text, time, transformers, wai +, waiExtra, warp, yesod, yesodCore, yesodForm, yesodJson +, yesodStatic }: cabal.mkDerivation (self: { pname = "hledger-web"; - version = "0.15.3"; - sha256 = "1z2pimxz2ykfb89qwp6cil4nljn8pcz8n7pjhvk948zsd96n2i6f"; + version = "0.16"; + sha256 = "1564w1619s08q5c1zx8i8z488zis13a8d6n4cnyha9ci95p1c89j"; isLibrary = true; isExecutable = true; buildDepends = [ - aeson cmdargs failure fileEmbed hamlet hledger hledgerLib HUnit - ioStorage parsec regexpr safe text time transformers wai waiExtra - warp yesodCore yesodForm yesodJson yesodStatic + aesonNative blazeHtml clientsession cmdargs dataObject + dataObjectYaml failure fileEmbed hamlet hledger hledgerLib HUnit + ioStorage parsec regexpr safe shakespeareCss shakespeareJs + shakespeareText text time transformers wai waiExtra warp yesod + yesodCore yesodForm yesodJson yesodStatic ]; meta = { homepage = "http://hledger.org"; From 0fe8cb05b5fac9f8719bef0bd510098edbff9e00 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:50 +0000 Subject: [PATCH 64/76] haskell-hledger: updated to version 0.16 svn path=/nixpkgs/trunk/; revision=29579 --- pkgs/development/libraries/haskell/hledger/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/hledger/default.nix b/pkgs/development/libraries/haskell/hledger/default.nix index 080419d85e5..471e410553a 100644 --- a/pkgs/development/libraries/haskell/hledger/default.nix +++ b/pkgs/development/libraries/haskell/hledger/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "hledger"; - version = "0.15.2"; - sha256 = "0gja0jvr8v9s1608w45rg1dwhj48yls59shqcs4z936xdg69l42w"; + version = "0.16"; + sha256 = "0wz4g67ilxj741j8d7amssa6dr0xrdfghwmhzwlcp1fj4a5a44c8"; isLibrary = true; isExecutable = true; buildDepends = [ From 8df74ef75a2283476c703724aa8a3324b5284bfe Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:27:55 +0000 Subject: [PATCH 65/76] haskell-hlint: updated to version 1.8.17 svn path=/nixpkgs/trunk/; revision=29580 --- pkgs/development/tools/haskell/hlint/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix index be66cfc0680..53a60968860 100644 --- a/pkgs/development/tools/haskell/hlint/default.nix +++ b/pkgs/development/tools/haskell/hlint/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "hlint"; - version = "1.8.16"; - sha256 = "0crahq7fvhf0qvjcpjnmv5yh29l52cv7rgfwrc6ka4q0dm9r49vb"; + version = "1.8.17"; + sha256 = "0p2sd24zi4a9fynib03dll8jbcc7izbmknfxv80v9j3lb2p8qj5h"; isLibrary = true; isExecutable = true; buildDepends = [ From 944a9932bcbb6454d1c0a2f5f2869e70036af6b8 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:28:00 +0000 Subject: [PATCH 66/76] haskell-network: added version 2.3.0.6 svn path=/nixpkgs/trunk/; revision=29581 --- .../libraries/haskell/network/2.3.0.6.nix | 18 ++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/haskell/network/2.3.0.6.nix diff --git a/pkgs/development/libraries/haskell/network/2.3.0.6.nix b/pkgs/development/libraries/haskell/network/2.3.0.6.nix new file mode 100644 index 00000000000..a62a0f59773 --- /dev/null +++ b/pkgs/development/libraries/haskell/network/2.3.0.6.nix @@ -0,0 +1,18 @@ +{ cabal, parsec }: + +cabal.mkDerivation (self: { + pname = "network"; + version = "2.3.0.6"; + sha256 = "0xdqcf7zfxpa7qmvwzxf11y61b6xn4v2jjrqpibr2pfqqr0p3gkw"; + buildDepends = [ parsec ]; + meta = { + homepage = "http://github.com/haskell/network"; + description = "Low-level networking interface"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ + self.stdenv.lib.maintainers.andres + self.stdenv.lib.maintainers.simons + ]; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index eea52606d18..67fc927b939 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -878,7 +878,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); network_2_2_1_7 = callPackage ../development/libraries/haskell/network/2.2.1.7.nix {}; network_2_3_0_2 = callPackage ../development/libraries/haskell/network/2.3.0.2.nix {}; network_2_3_0_5 = callPackage ../development/libraries/haskell/network/2.3.0.5.nix {}; - network = self.network_2_2_1_4; + network_2_3_0_6 = callPackage ../development/libraries/haskell/network/2.3.0.6.nix {}; + network = self.network_2_3_0_6; nixosTypes = callPackage ../development/libraries/haskell/nixos-types {}; From 54a78ff2ed432aaaedb6427bbd8ec84fbebfff5b Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:28:04 +0000 Subject: [PATCH 67/76] haskell-yaml: added version 0.4.1.1 svn path=/nixpkgs/trunk/; revision=29582 --- .../libraries/haskell/yaml/default.nix | 20 +++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 pkgs/development/libraries/haskell/yaml/default.nix diff --git a/pkgs/development/libraries/haskell/yaml/default.nix b/pkgs/development/libraries/haskell/yaml/default.nix new file mode 100644 index 00000000000..fce7026c0ca --- /dev/null +++ b/pkgs/development/libraries/haskell/yaml/default.nix @@ -0,0 +1,20 @@ +{ cabal, enumerator, transformers }: + +cabal.mkDerivation (self: { + pname = "yaml"; + version = "0.4.1.1"; + sha256 = "0qm7kfvi99m80m2lsmn98ssr2sfsw1rbbmzyjlg7bmvbaxsyw0b9"; + isLibrary = true; + isExecutable = true; + buildDepends = [ enumerator transformers ]; + meta = { + homepage = "http://github.com/snoyberg/yaml/"; + description = "Low-level binding to the libyaml C library"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ + self.stdenv.lib.maintainers.andres + self.stdenv.lib.maintainers.simons + ]; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 67fc927b939..c65463ed4d3 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1293,6 +1293,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); xssSanitize = callPackage ../development/libraries/haskell/xss-sanitize {}; + yaml = callPackage ../development/libraries/haskell/yaml {}; + yap = callPackage ../development/libraries/haskell/yap {}; yesod = callPackage ../development/libraries/haskell/yesod {}; From 1d0620f3aeb875ff4895653fc5a155ac2f12d079 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:28:09 +0000 Subject: [PATCH 68/76] haskell-data-object: added version 0.3.1.7 svn path=/nixpkgs/trunk/; revision=29583 --- .../libraries/haskell/data-object/default.nix | 18 ++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 4 ++++ 2 files changed, 22 insertions(+) create mode 100644 pkgs/development/libraries/haskell/data-object/default.nix diff --git a/pkgs/development/libraries/haskell/data-object/default.nix b/pkgs/development/libraries/haskell/data-object/default.nix new file mode 100644 index 00000000000..2c774c8c79f --- /dev/null +++ b/pkgs/development/libraries/haskell/data-object/default.nix @@ -0,0 +1,18 @@ +{ cabal, failure, text, time }: + +cabal.mkDerivation (self: { + pname = "data-object"; + version = "0.3.1.7"; + sha256 = "0b4jai09nx3h2vfj5f2q1wp0wldvkjygyzkgrrc6hnsfx2qv8qf7"; + buildDepends = [ failure text time ]; + meta = { + homepage = "http://github.com/snoyberg/data-object/tree/master"; + description = "Represent hierachichal structures, called objects in JSON"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ + self.stdenv.lib.maintainers.andres + self.stdenv.lib.maintainers.simons + ]; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index c65463ed4d3..979542ebb8a 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -504,6 +504,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); dataenc = callPackage ../development/libraries/haskell/dataenc {}; + dataObject = callPackage ../development/libraries/haskell/data-object {}; + + dataObjectYaml = callPackage ../development/libraries/haskell/data-object-yaml {}; + dataReify = callPackage ../development/libraries/haskell/data-reify {}; datetime = callPackage ../development/libraries/haskell/datetime {}; From c096ba1ba8e71e65dae09b05200d6facd0a875c1 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:28:14 +0000 Subject: [PATCH 69/76] haskell-data-object-yaml: added version 0.3.3.5 svn path=/nixpkgs/trunk/; revision=29584 --- .../haskell/data-object-yaml/default.nix | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 pkgs/development/libraries/haskell/data-object-yaml/default.nix diff --git a/pkgs/development/libraries/haskell/data-object-yaml/default.nix b/pkgs/development/libraries/haskell/data-object-yaml/default.nix new file mode 100644 index 00000000000..9622c2af6b9 --- /dev/null +++ b/pkgs/development/libraries/haskell/data-object-yaml/default.nix @@ -0,0 +1,25 @@ +{ cabal, convertibleText, dataObject, enumerator, failure, text +, transformers, yaml +}: + +cabal.mkDerivation (self: { + pname = "data-object-yaml"; + version = "0.3.3.5"; + sha256 = "0ag0rac9j4ipfg9haa63s73sn7zckrpwybcfk2nbg84ix56nv36w"; + isLibrary = true; + isExecutable = true; + buildDepends = [ + convertibleText dataObject enumerator failure text transformers + yaml + ]; + meta = { + homepage = "http://github.com/snoyberg/data-object-yaml"; + description = "Serialize data to and from Yaml files"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ + self.stdenv.lib.maintainers.andres + self.stdenv.lib.maintainers.simons + ]; + }; +}) From 13b67df58ed68c2dafecae78e095a9c1df4648f5 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sun, 2 Oct 2011 20:28:19 +0000 Subject: [PATCH 70/76] haskell-convertible-text: added version 0.3.0.10 svn path=/nixpkgs/trunk/; revision=29585 --- .../haskell/convertible-text/default.nix | 20 +++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 pkgs/development/libraries/haskell/convertible-text/default.nix diff --git a/pkgs/development/libraries/haskell/convertible-text/default.nix b/pkgs/development/libraries/haskell/convertible-text/default.nix new file mode 100644 index 00000000000..305d589dfb5 --- /dev/null +++ b/pkgs/development/libraries/haskell/convertible-text/default.nix @@ -0,0 +1,20 @@ +{ cabal, attempt, text, time }: + +cabal.mkDerivation (self: { + pname = "convertible-text"; + version = "0.3.0.10"; + sha256 = "1hi7rqijay37b5msyzqqgvkvrsdpj9p96ajxmyk4vm7nnk5dfhbp"; + isLibrary = true; + isExecutable = true; + buildDepends = [ attempt text time ]; + meta = { + homepage = "http://github.com/snoyberg/convertible/tree/text"; + description = "Typeclasses and instances for converting between types"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ + self.stdenv.lib.maintainers.andres + self.stdenv.lib.maintainers.simons + ]; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 979542ebb8a..907a6dac911 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -474,6 +474,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); time = self.time_1_1_3; }; + convertibleText = callPackage ../development/libraries/haskell/convertible-text {}; + continuedFractions = callPackage ../development/libraries/haskell/continued-fractions {}; converge = callPackage ../development/libraries/haskell/converge {}; From 9839a5d924edc7ce867d4aad1014a1c6eb827bb9 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Sun, 2 Oct 2011 21:15:19 +0000 Subject: [PATCH 71/76] policykit: use meta.platforms This makes it easier to remove policykit in the future svn path=/nixpkgs/trunk/; revision=29594 --- pkgs/development/libraries/policykit/default.nix | 1 + pkgs/top-level/release.nix | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/policykit/default.nix b/pkgs/development/libraries/policykit/default.nix index 41b6839f0c2..f494710be63 100644 --- a/pkgs/development/libraries/policykit/default.nix +++ b/pkgs/development/libraries/policykit/default.nix @@ -30,5 +30,6 @@ stdenv.mkDerivation rec { meta = { homepage = http://www.freedesktop.org/wiki/Software/PolicyKit; description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes (obsolete)"; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 247b9be61ad..5f4fb2a8335 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -240,7 +240,6 @@ with (import ./release-lib.nix); pkgconfig = all; pltScheme = linux; pmccabe = linux; - policykit = linux; portmap = linux; postgresql = all; postfix = linux; From 86d3591d7efeec19de20197e7542398d52b17356 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Sun, 2 Oct 2011 21:15:29 +0000 Subject: [PATCH 72/76] Switch to unzip-6.0 svn path=/nixpkgs/trunk/; revision=29595 --- pkgs/top-level/all-packages.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 71a6b6076ae..c9919d04861 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1474,9 +1474,8 @@ let unshield = callPackage ../tools/archivers/unshield { }; - unzip = unzip552; + unzip = unzip60; - # TODO: remove in the next stdenv update. unzip552 = callPackage ../tools/archivers/unzip/5.52.nix { }; unzip60 = callPackage ../tools/archivers/unzip/6.0.nix { }; From 371cd8bc513ecb78f4dcc2e692f4e65a729299a4 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Sun, 2 Oct 2011 21:15:36 +0000 Subject: [PATCH 73/76] kde3: use meta.platforms svn path=/nixpkgs/trunk/; revision=29596 --- pkgs/applications/editors/kile/default.nix | 1 + pkgs/applications/misc/k3b/1.0.nix | 1 + pkgs/desktops/kde-3/kdebase/default.nix | 2 ++ pkgs/desktops/kde-3/kdelibs/default.nix | 2 ++ pkgs/top-level/release.nix | 7 ------- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix index 51c58c11cf8..704b8e1b824 100644 --- a/pkgs/applications/editors/kile/default.nix +++ b/pkgs/applications/editors/kile/default.nix @@ -17,5 +17,6 @@ stdenv.mkDerivation { description = "An integrated LaTeX editor for KDE"; homepage = http://kile.sourceforge.net; license = "GPLv2"; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/applications/misc/k3b/1.0.nix b/pkgs/applications/misc/k3b/1.0.nix index 7ac483cedea..bd01174ae59 100644 --- a/pkgs/applications/misc/k3b/1.0.nix +++ b/pkgs/applications/misc/k3b/1.0.nix @@ -15,5 +15,6 @@ stdenv.mkDerivation { meta = { description = "A CD and DVD authoring application for KDE"; homepage = http://www.k3b.org/; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/desktops/kde-3/kdebase/default.nix b/pkgs/desktops/kde-3/kdebase/default.nix index 814d4629157..6a6a1ea4a1e 100644 --- a/pkgs/desktops/kde-3/kdebase/default.nix +++ b/pkgs/desktops/kde-3/kdebase/default.nix @@ -52,4 +52,6 @@ stdenv.mkDerivation { # Work around some inexplicable build failure starting in kdebase 3.5.9. LDFLAGS = "-L${kdelibs}/lib"; + + meta.platforms = stdenv.lib.platforms.linux; } diff --git a/pkgs/desktops/kde-3/kdelibs/default.nix b/pkgs/desktops/kde-3/kdelibs/default.nix index e191421e572..69c6c5c332e 100644 --- a/pkgs/desktops/kde-3/kdelibs/default.nix +++ b/pkgs/desktops/kde-3/kdelibs/default.nix @@ -49,4 +49,6 @@ stdenv.mkDerivation { --x-includes=${xlibs.libX11}/include --x-libraries=${xlibs.libX11}/lib ''; + + meta.platforms = stdenv.lib.platforms.linux; } diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 5f4fb2a8335..09be02ba915 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -436,13 +436,6 @@ with (import ./release-lib.nix); }; */ - kde3 = { - kdebase = linux; - kdelibs = linux; - k3b = linux; - kile = linux; - }; - linuxPackages_2_6_25 = { aufs = linux; kernel = linux; From 1fb8696d940155ff4e8529258d415653c64cf8f7 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 3 Oct 2011 09:01:28 +0000 Subject: [PATCH 74/76] haskell-hakyll: updated to version 3.2.0.8 svn path=/nixpkgs/trunk/; revision=29597 --- pkgs/development/libraries/haskell/hakyll/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix index d9a8b38730a..856949200e0 100644 --- a/pkgs/development/libraries/haskell/hakyll/default.nix +++ b/pkgs/development/libraries/haskell/hakyll/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "hakyll"; - version = "3.2.0.7"; - sha256 = "1p06596yfsa0lk5ipdxm1b8j81aph2k30pm2g6ghw6k7fglklyl5"; + version = "3.2.0.8"; + sha256 = "1yp01g7wzr9qkx3vz7v791gglmr0pg5c6jj076rv118kw0l8n61l"; buildDepends = [ binary blazeHtml cryptohash hamlet mtl pandoc parsec regexBase regexPcre snapCore snapServer tagsoup time From 4d2b6a350bfbed7ff5391d06529d7af015bb7df0 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 3 Oct 2011 09:01:42 +0000 Subject: [PATCH 75/76] haskell-cabal-ghci: updated to version 0.2.0 svn path=/nixpkgs/trunk/; revision=29598 --- pkgs/development/tools/haskell/cabal-ghci/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/haskell/cabal-ghci/default.nix b/pkgs/development/tools/haskell/cabal-ghci/default.nix index ad452a663e8..b55127e43bc 100644 --- a/pkgs/development/tools/haskell/cabal-ghci/default.nix +++ b/pkgs/development/tools/haskell/cabal-ghci/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "cabal-ghci"; - version = "0.1.1"; - sha256 = "09r66fv8ncsdj90zrhg4srxhmbhmf7q61kvfc39x4jbyskgciqms"; + version = "0.2.0"; + sha256 = "0920q103g626f8syvn73bwqnix8x6q58xyazys6yinhr7dgi2x6m"; isLibrary = true; isExecutable = true; meta = { From 936c460abbd03a011183d5506b8a63f836b83e85 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Mon, 3 Oct 2011 15:35:50 +0000 Subject: [PATCH 76/76] Ruby: Separate 'install the current version of ruby' from 'install version x of ruby' when x is also the current version svn path=/nixpkgs/trunk/; revision=29600 --- .../development/interpreters/ruby/default.nix | 53 +------------------ .../development/interpreters/ruby/ruby-19.nix | 52 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 +- 3 files changed, 55 insertions(+), 54 deletions(-) create mode 100644 pkgs/development/interpreters/ruby/ruby-19.nix diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index d5ccb19caec..550edcc004a 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -1,52 +1 @@ -{ stdenv, fetchurl -, zlib, zlibSupport ? true -, openssl, opensslSupport ? true -, gdbm, gdbmSupport ? true -, ncurses, readline, cursesSupport ? false -, groff, docSupport ? false -}: - -let - op = stdenv.lib.optional; - ops = stdenv.lib.optionals; -in - -stdenv.mkDerivation rec { - version = with passthru; "${majorVersion}.${minorVersion}-p${patchLevel}"; - - name = "ruby-${version}"; - - src = fetchurl { - url = "ftp://ftp.ruby-lang.org/pub/ruby/1.9/${name}.tar.gz"; - sha256 = "0zmxdqzprbdc5mvmba1i94mpqnqxxlh460jri7bx6i29bibigj0w"; - }; - - # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. - NROFF = "${groff}/bin/nroff"; - - buildInputs = (ops cursesSupport [ ncurses readline ] ) - ++ (op docSupport groff ) - ++ (op zlibSupport zlib) - ++ (op opensslSupport openssl) - ++ (op gdbmSupport gdbm); - - configureFlags = ["--enable-shared" "--enable-pthread"]; - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = "mkdir -pv $out/${passthru.gemPath}"; - - meta = { - license = "Ruby"; - homepage = "http://www.ruby-lang.org/en/"; - description = "The Ruby language"; - }; - - passthru = rec { - majorVersion = "1.9"; - minorVersion = "2"; - patchLevel = "290"; - libPath = "lib/ruby/${majorVersion}"; - gemPath = "lib/ruby/gems/${majorVersion}"; - }; -} +import ./ruby-19.nix diff --git a/pkgs/development/interpreters/ruby/ruby-19.nix b/pkgs/development/interpreters/ruby/ruby-19.nix new file mode 100644 index 00000000000..d5ccb19caec --- /dev/null +++ b/pkgs/development/interpreters/ruby/ruby-19.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchurl +, zlib, zlibSupport ? true +, openssl, opensslSupport ? true +, gdbm, gdbmSupport ? true +, ncurses, readline, cursesSupport ? false +, groff, docSupport ? false +}: + +let + op = stdenv.lib.optional; + ops = stdenv.lib.optionals; +in + +stdenv.mkDerivation rec { + version = with passthru; "${majorVersion}.${minorVersion}-p${patchLevel}"; + + name = "ruby-${version}"; + + src = fetchurl { + url = "ftp://ftp.ruby-lang.org/pub/ruby/1.9/${name}.tar.gz"; + sha256 = "0zmxdqzprbdc5mvmba1i94mpqnqxxlh460jri7bx6i29bibigj0w"; + }; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; + + buildInputs = (ops cursesSupport [ ncurses readline ] ) + ++ (op docSupport groff ) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm); + + configureFlags = ["--enable-shared" "--enable-pthread"]; + + installFlags = stdenv.lib.optionalString docSupport "install-doc"; + # Bundler tries to create this directory + postInstall = "mkdir -pv $out/${passthru.gemPath}"; + + meta = { + license = "Ruby"; + homepage = "http://www.ruby-lang.org/en/"; + description = "The Ruby language"; + }; + + passthru = rec { + majorVersion = "1.9"; + minorVersion = "2"; + patchLevel = "290"; + libPath = "lib/ruby/${majorVersion}"; + gemPath = "lib/ruby/gems/${majorVersion}"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c9919d04861..70e872fa863 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2601,8 +2601,8 @@ let regina = callPackage ../development/interpreters/regina {}; ruby18 = callPackage ../development/interpreters/ruby/ruby-18.nix { }; - ruby19 = callPackage ../development/interpreters/ruby { }; - ruby = ruby19; + ruby19 = callPackage ../development/interpreters/ruby/ruby-19.nix { }; + ruby = callPackage ../development/interpreters/ruby { }; rubyLibs = recurseIntoAttrs (callPackage ../development/interpreters/ruby/libs.nix { });