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
diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/2.0.nix
similarity index 92%
rename from pkgs/applications/editors/kile/default.nix
rename to pkgs/applications/editors/kile/2.0.nix
index 51c58c11cf8..704b8e1b824 100644
--- a/pkgs/applications/editors/kile/default.nix
+++ b/pkgs/applications/editors/kile/2.0.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/editors/kile/2.1.nix b/pkgs/applications/editors/kile/2.1.nix
new file mode 100644
index 00000000000..c2d2167e3dd
--- /dev/null
+++ b/pkgs/applications/editors/kile/2.1.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, kdelibs, cmake, gettext }:
+
+stdenv.mkDerivation rec {
+ name = "kile-2.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/kile/${name}.tar.bz2";
+ sha256 = "0ag6ya0625w34hpk0bpkjyi0ydw699zbkf86vwc19mh9cb0n0aic";
+ };
+
+ buildNativeInputs = [ cmake gettext ];
+ buildInputs = [ kdelibs ];
+
+ meta = {
+ description = "An integrated LaTeX editor for KDE";
+ homepage = http://kile.sourceforge.net;
+ maintainers = [ stdenv.lib.maintainers.urkud ];
+ license = stdenv.lib.licenses.gpl2Plus;
+ inherit (kdelibs.meta) platforms;
+ };
+}
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index f892cf175c1..421fb40e1bd 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,21 +1,21 @@
{ stdenv, fetchurl, python, pyqt4, sip, popplerQt4, pkgconfig, libpng
-, imagemagick, libjpeg, fontconfig, podofo, qt4
+, imagemagick, libjpeg, fontconfig, podofo, qt4, icu
, pil, makeWrapper, unrar, chmlib, pythonPackages
}:
stdenv.mkDerivation rec {
- name = "calibre-0.7.14";
+ name = "calibre-0.8.21";
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.gz";
- sha256 = "07vnmxxpg77pmd7fhcrlnark02bn6zj62hbsybdqz8fp1yp99wkn";
+ sha256 = "173is8qlsm1gbsx5a411c2226kakwyv200wcw97yfs613k7cz256";
};
inherit python;
buildInputs =
[ python pyqt4 sip popplerQt4 pkgconfig libpng imagemagick libjpeg
- fontconfig podofo qt4 pil makeWrapper chmlib
+ fontconfig podofo qt4 pil makeWrapper chmlib icu
pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
pythonPackages.cssutils pythonPackages.beautifulsoap pythonPackages.sqlite3
];
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/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 0cb4999bce6..6fd4f9d148e 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -4,14 +4,14 @@
, xorriso, makeself, perl, jdk
}:
-let version = "4.1.0"; in
+let version = "4.1.2"; in
stdenv.mkDerivation {
name = "virtualbox-${version}-${kernel.version}";
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
- sha256 = "1pi066xnjgr3fl42i1vc1pbwic9l4m1k6mzs4ip41fz99w59xfzp";
+ sha256 = "1g3nqlxk4bxkq5yqwk0mrn50mz5y0kxpcn0hq5f81bbb9niglc5h";
};
buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL hal libcap glib kernel python alsaLib curl pam xorriso makeself perl jdk ];
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh
index a1e790a9c72..8b244043676 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" != builtin* ]]
+ then
+ closure="$closure $deps"
+ fi
done
echo "closure:"
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/development/compilers/bigloo/default.nix b/pkgs/development/compilers/bigloo/default.nix
index e4cc56a5f05..fac4a99283a 100644
--- a/pkgs/development/compilers/bigloo/default.nix
+++ b/pkgs/development/compilers/bigloo/default.nix
@@ -1,20 +1,25 @@
{ fetchurl, stdenv }:
stdenv.mkDerivation rec {
- name = "bigloo3.2a";
+ name = "bigloo3.7a";
src = fetchurl {
- url = "ftp://ftp-sop.inria.fr/mimosa/fp/Bigloo/${name}.tar.gz";
- sha256 = "131jnn17rcccbijpji7v5xlx4z2jldhbn46gkysf6axdcwxwqgg4";
+ url = "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/${name}.tar.gz";
+ sha256 = "0y8i87c2bpqzap8rhzgpyfgdzq21py5xq6mgp0w6xv4rjcj9d0v1";
};
+ preConfigure =
+ # Help libgc's configure.
+ '' export CXXCPP="g++ -E"
+ '';
+
patchPhase = ''
# Fix absolute paths.
sed -e 's=/bin/mv=mv=g' -e 's=/bin/rm=rm=g' \
-e 's=/tmp=$TMPDIR=g' -i configure autoconf/* \
[Mm]akefile* */[Mm]akefile* */*/[Mm]akefile* \
*/*/*/[Mm]akefile* */*/*/*/[Mm]akefile* \
- comptime/Cc/cc.scm gc/install-gc-*
+ comptime/Cc/cc.scm gc/install-*
# Make sure we don't change string lengths in the generated
# C files.
@@ -24,7 +29,7 @@ stdenv.mkDerivation rec {
checkTarget = "test";
- meta = {
+ meta = {
description = "Bigloo, an efficient Scheme compiler";
longDescription = ''
@@ -39,7 +44,7 @@ stdenv.mkDerivation rec {
between Scheme and C# programs.
'';
- homepage = http://www-sop.inria.fr/mimosa/fp/Bigloo/;
+ homepage = http://www-sop.inria.fr/indes/fp/Bigloo/;
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
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/development/libraries/babl/default.nix b/pkgs/development/libraries/babl/default.nix
index 2464a09f51a..77ddecd71c0 100644
--- a/pkgs/development/libraries/babl/default.nix
+++ b/pkgs/development/libraries/babl/default.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl }:
-stdenv.mkDerivation {
- name = "babl-0.0.22";
+stdenv.mkDerivation rec {
+ name = "babl-0.1.4";
src = fetchurl {
- url = ftp://ftp.gtk.org/pub/babl/0.0/babl-0.0.22.tar.bz2;
- sha256 = "0v8gbf9si4sd06199f8lfmrsbvi6i0hxphd34kyvsj6g2kkkg10s";
+ url = "ftp://ftp.gimp.org/pub/babl/0.1/${name}.tar.bz2";
+ sha256 = "0cz7zw206bb87c0n0h54h4wlkaa3hx3wsia30mgq316y50jk2djv";
};
meta = {
diff --git a/pkgs/development/libraries/boolstuff/default.nix b/pkgs/development/libraries/boolstuff/default.nix
index 419215a45a5..c05fddc18cf 100644
--- a/pkgs/development/libraries/boolstuff/default.nix
+++ b/pkgs/development/libraries/boolstuff/default.nix
@@ -1,18 +1,20 @@
{ stdenv, fetchurl, pkgconfig }:
-stdenv.mkDerivation {
- name = "boolstuff-0.1.12";
+let baseurl = "http://perso.b2b2c.ca/sarrazip/dev"; in
+
+stdenv.mkDerivation rec {
+ name = "boolstuff-0.1.13";
src = fetchurl {
- url = http://perso.b2b2c.ca/sarrazip/dev/boolstuff-0.1.12.tar.gz;
- sha256 = "0h39civar6fjswaf3bn1r2ddj589rya0prd6gzsyv3qzr9srprq9";
+ url = "${baseurl}/${name}.tar.gz";
+ sha256 = "0akwb57lnzq1ak32k6mdxbma2gj0pqhj8y9m6hq79djb9s3mxvmn";
};
- buildInputs = [ pkgconfig ];
+ buildNativeInputs = [ pkgconfig ];
meta = {
description = "Library for operations on boolean expression binary trees";
- homepage = http://perso.b2b2c.ca/sarrazip/dev/boolstuff.html;
+ homepage = "${baseurl}/boolstuff.html";
license = "GPL";
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
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:'
'';
diff --git a/pkgs/development/libraries/dotnetfx40/default.nix b/pkgs/development/libraries/dotnetfx40/default.nix
new file mode 100644
index 00000000000..b9ce4738d12
--- /dev/null
+++ b/pkgs/development/libraries/dotnetfx40/default.nix
@@ -0,0 +1,23 @@
+{stdenv}:
+
+let
+ windir = "/cygdrive/c/WINDOWS";
+in
+{
+ pkg = stdenv.mkDerivation {
+ name = "dotnetfx-4.0";
+ src = "${windir}/Microsoft.NET/Framework/v4.0.30319";
+ buildCommand = ''
+ ensureDir $out/bin
+ ln -s $src/MSBuild.exe $out/bin
+ '';
+ };
+
+ assembly20Path = "/cygdrive/c/WINDOWS/Microsoft.NET/Framework/v2.0.50727";
+
+ wcfPath = "/cygdrive/c/WINDOWS/Microsoft.NET/Framework/v3.0/WINDOW~1";
+
+ referenceAssembly30Path = "/cygdrive/c/PROGRA~1/REFERE~1/Microsoft/Framework/v3.0";
+
+ referenceAssembly35Path = "/cygdrive/c/PROGRA~1/REFERE~1/Microsoft/Framework/v3.5";
+}
diff --git a/pkgs/development/libraries/gegl/default.nix b/pkgs/development/libraries/gegl/default.nix
index 3b1900ae89c..8fa87d90be2 100644
--- a/pkgs/development/libraries/gegl/default.nix
+++ b/pkgs/development/libraries/gegl/default.nix
@@ -1,17 +1,20 @@
{ stdenv, fetchurl, pkgconfig, glib, babl, libpng, cairo, libjpeg
-, librsvg, pango, gtk }:
+, librsvg, pango, gtk, bzip2 }:
-stdenv.mkDerivation {
- name = "gegl-0.0.22";
+stdenv.mkDerivation rec {
+ name = "gegl-0.1.6";
src = fetchurl {
- url = ftp://ftp.gimp.org/pub/gegl/0.0/gegl-0.0.22.tar.bz2;
- sha256 = "0nx6r9amzhw5d2ghlw3z8qnry18rwz1ymvl2cm31b8p49z436wl5";
+ url = "ftp://ftp.gimp.org/pub/gegl/0.1/${name}.tar.bz2";
+ sha256 = "1l966ygss2zkksyw62nm139v2abfzbqqrj0psizvbgzf4mb24rm1";
};
- configureFlags = "--disable-docs"; # needs fonts otherwise don't know how to pass them
+ # needs fonts otherwise don't know how to pass them
+ configureFlags = "--disable-docs";
- buildInputs = [ pkgconfig glib babl libpng cairo libjpeg librsvg pango gtk ];
+ buildInputs = [ babl libpng cairo libjpeg librsvg pango gtk bzip2 ];
+
+ buildNativeInputs = [ pkgconfig ];
meta = {
description = "Graph-based image processing framework";
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 ];
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";
diff --git a/pkgs/development/libraries/haskell/clientsession/default.nix b/pkgs/development/libraries/haskell/clientsession/default.nix
index 2c577fbc2ef..c5096ae9a77 100644
--- a/pkgs/development/libraries/haskell/clientsession/default.nix
+++ b/pkgs/development/libraries/haskell/clientsession/default.nix
@@ -3,8 +3,8 @@
cabal.mkDerivation (self: {
pname = "clientsession";
- version = "0.7.3";
- sha256 = "1f5ri7h8l3v60bj6ywhn2v3kih5lclk76qx7y6jc7nyf9499aja5";
+ version = "0.7.3.1";
+ sha256 = "0q16brla4m5g7dmgln3awx964ms7pi1s2r21idmc0mk4rnw2rpi7";
buildDepends = [
base64Bytestring cereal cryptoApi cryptocipher skein
];
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/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
+ ];
+ };
+})
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/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index d9a8b38730a..ca5cd97269d 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.9";
+ sha256 = "1gb10bvzlm8qn6ap7cxykscbhbs2jsfqgsw53r8vd8k5bfgm5jv6";
buildDepends = [
binary blazeHtml cryptohash hamlet mtl pandoc parsec regexBase
regexPcre snapCore snapServer tagsoup time
diff --git a/pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix b/pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix
deleted file mode 100644
index 0bf489ae983..00000000000
--- a/pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ cabal, blazeBuilder, blazeHtml, failure, parsec, text }:
-
-cabal.mkDerivation (self: {
- pname = "hamlet";
- version = "0.8.2.1";
- sha256 = "0798ic6qap4npw2rx42xcgmi1fcbwqvyic5x6vyyf6abvxv16925";
- buildDepends = [ blazeBuilder blazeHtml failure parsec text ];
- meta = {
- homepage = "http://www.yesodweb.com/";
- description = "Haml-like template files that are compile-time checked";
- 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/development/libraries/haskell/hamlet/0.10.1.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
similarity index 86%
rename from pkgs/development/libraries/haskell/hamlet/0.10.1.nix
rename to pkgs/development/libraries/haskell/hamlet/default.nix
index e3b80dd1edc..9f1831a991f 100644
--- a/pkgs/development/libraries/haskell/hamlet/0.10.1.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "hamlet";
- version = "0.10.1";
- sha256 = "1n68nz2s61j8yfwjpgp9bjl0mc7gcpc5ysmx0vgggqxz2r3gayf6";
+ version = "0.10.3";
+ sha256 = "1xkk8hcmfnn9y14fsrab3cv8xknhf8j6hkv668yshg8bjzz1smva";
buildDepends = [
blazeBuilder blazeHtml failure parsec shakespeare text
];
diff --git a/pkgs/development/libraries/haskell/hledger-chart/default.nix b/pkgs/development/libraries/haskell/hledger-chart/default.nix
index 23dcb192900..84b8c33fc21 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.1";
+ sha256 = "1yk563032ir98gqdvxazjjl1alg6q1pflzawh11pr3zrdnriracn";
isLibrary = false;
isExecutable = true;
buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hledger-lib/default.nix b/pkgs/development/libraries/haskell/hledger-lib/default.nix
index 032e7caa5a8..d8fdbf3f71d 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.1";
+ sha256 = "15imhdkzfnxr72lsghrbsfisc7c2al4jkzcp72yf4hhra4zym1sd";
buildDepends = [
cmdargs HUnit mtl parsec regexpr safe split time utf8String
];
diff --git a/pkgs/development/libraries/haskell/hledger-vty/default.nix b/pkgs/development/libraries/haskell/hledger-vty/default.nix
index 51d2f0af1af..0a6dd1cf202 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.1";
+ sha256 = "10aq9apxz6nrzvvynha0wkhy34dn8dybizr8assni6rns8ylh188";
isLibrary = false;
isExecutable = true;
buildDepends = [ cmdargs hledger hledgerLib HUnit safe time vty ];
diff --git a/pkgs/development/libraries/haskell/hledger-web/default.nix b/pkgs/development/libraries/haskell/hledger-web/default.nix
index 7dad816d240..a046e86e075 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.3";
+ sha256 = "0jciah0k6i4aa21hgpl1nqfyjkmm5kg5zmzmxwynvwckncy17ihg";
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";
diff --git a/pkgs/development/libraries/haskell/hledger/default.nix b/pkgs/development/libraries/haskell/hledger/default.nix
index 080419d85e5..e0560855286 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.1";
+ sha256 = "182a5qlcxbh9q8hzrmgm99hcgvxjq8j5xq202iff14p1yqv0irs2";
isLibrary = true;
isExecutable = true;
buildDepends = [
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/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index af69ad9d267..67d8e10a3ef 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "persistent-template";
- version = "0.6.2";
- sha256 = "1gnqryn701b97fwzjhkk4x4k7p1w5w8cdn5x9hz8sb68vkgrplfx";
+ version = "0.6.3";
+ sha256 = "1vcjvfjxmv9c0wg7pbx0lw73128f5y0r4sfdsyq3jrkkiq1bgsxa";
buildDepends = [ monadControl persistent text ];
meta = {
homepage = "http://www.yesodweb.com/book/persistent";
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index 9329faad348..879edcbcb7b 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -1,14 +1,14 @@
-{ cabal, blazeHtml, enumerator, monadControl, mtl, pathPieces, pool
-, sqlite, text, time, transformers
+{ cabal, blazeHtml, dataObject, enumerator, monadControl, mtl
+, pathPieces, pool, sqlite, text, time, transformers
}:
cabal.mkDerivation (self: {
pname = "persistent";
- version = "0.6.2";
- sha256 = "1bzv3wqqy32z20xbda8kr4m1fybnziv0gp6m8v3w0brrvmns20g2";
+ version = "0.6.3";
+ sha256 = "0m50z9k941bhh05jjz1268sn1bi7w8i6jzccldgnbjjvsw2xaisx";
buildDepends = [
- blazeHtml enumerator monadControl mtl pathPieces pool text time
- transformers
+ blazeHtml dataObject enumerator monadControl mtl pathPieces pool
+ text time transformers
];
extraLibraries = [ sqlite ];
meta = {
diff --git a/pkgs/development/libraries/haskell/shakespeare-css/default.nix b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
index 0bc2f187fb2..65f2debed9c 100644
--- a/pkgs/development/libraries/haskell/shakespeare-css/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "shakespeare-css";
- version = "0.10.1";
- sha256 = "1qdql6qcm7jzb5r1fvrmpyighn1ykrjgs9za1n9m2r47y0n03hsg";
+ version = "0.10.2";
+ sha256 = "181bknfws2s7jygy527w93v07i04xf1pwyfmylva59p0z45adlb4";
buildDepends = [ parsec shakespeare text ];
meta = {
homepage = "http://www.yesodweb.com/book/templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare-js/default.nix b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
index 064e1828f9d..5a402840d71 100644
--- a/pkgs/development/libraries/haskell/shakespeare-js/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "shakespeare-js";
- version = "0.10.1";
- sha256 = "0j9jzrnvarwkab9zynz8k60ilgj5kyqdm56lricpii27qlkqnmf3";
+ version = "0.10.2";
+ sha256 = "1yyqfp2lj8vq7x2a74wrgm7kx6zp1djp67bls9ip74kxi24dbznv";
buildDepends = [ shakespeare text ];
meta = {
homepage = "http://www.yesodweb.com/book/templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare-text/default.nix b/pkgs/development/libraries/haskell/shakespeare-text/default.nix
index 7c8cfceef17..58ffa1404fc 100644
--- a/pkgs/development/libraries/haskell/shakespeare-text/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-text/default.nix
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "shakespeare-text";
- version = "0.10.1";
- sha256 = "1p05nsfmlibhpik6dd40m0djk5yckl4i2ylx9lwyi68lx0izbm5j";
+ version = "0.10.2";
+ sha256 = "04n1aflg4b5byfsg494d4dskx25nyy0a654wl4cxz8920sl7qpha";
buildDepends = [ shakespeare text ];
meta = {
homepage = "http://www.yesodweb.com/book/templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
index 409b9b838a4..1c57e45713c 100644
--- a/pkgs/development/libraries/haskell/shakespeare/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -1,10 +1,10 @@
-{ cabal, blazeBuilder, blazeHtml, failure, parsec, text }:
+{ cabal, parsec, text }:
cabal.mkDerivation (self: {
pname = "shakespeare";
- version = "0.10.1";
- sha256 = "1ckzfxrs65n8cx0hm64c3jd4hbw48x1vi0cvnkz39k500jpq874f";
- buildDepends = [ blazeBuilder blazeHtml failure parsec text ];
+ version = "0.10.1.1";
+ sha256 = "1qd5wrcr4ss5zigbb7s6c7y7qbvrnbvgdpwq985yyy71i5hwxv0a";
+ buildDepends = [ parsec text ];
meta = {
homepage = "http://www.yesodweb.com/book/templates";
description = "A toolkit for making compile-time interpolated templates";
diff --git a/pkgs/development/libraries/haskell/skein/default.nix b/pkgs/development/libraries/haskell/skein/default.nix
index 2eebd665aa1..4795c5f2f04 100644
--- a/pkgs/development/libraries/haskell/skein/default.nix
+++ b/pkgs/development/libraries/haskell/skein/default.nix
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "skein";
- version = "0.1";
- sha256 = "10fnhbjdq4vrpl17b27pmxg943wsxv27js6p5nrgyzx9ybmdrmdi";
+ version = "0.1.0.1";
+ sha256 = "1i05ajmnsm0ac9cqnf1lmdaa6sxkirxv5r2h8phpapzvzwislpr8";
buildDepends = [ cereal cryptoApi tagged ];
meta = {
description = "Skein, a family of cryptographic hash functions. Includes Skein-MAC as well.";
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
index 3fa0595bc13..2ef32922346 100644
--- a/pkgs/development/libraries/haskell/wai-app-static/default.nix
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "wai-app-static";
- version = "0.3.3";
- sha256 = "04b4cw93agw136xjh9rssiw96vz3kxji7zh209brwfnwh13bra17";
+ version = "0.3.4";
+ sha256 = "0jxlm0qfv59c3q6ngvr94rzrn01byfn3wak208ws18xhk14cv058";
buildDepends = [
base64Bytestring blazeBuilder blazeHtml cryptohash fileEmbed
httpDate httpTypes text time transformers unixCompat wai
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index 9fce21f06db..7a06bfb1958 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "wai-extra";
- version = "0.4.2";
- sha256 = "1k2dsjramy14rfd1j8k7zgirdfl2zybd0z0pxkvxdrgr9s2pk51y";
+ version = "0.4.3";
+ sha256 = "07m86khgfyyadjgq8yp9kj3ljlpkvf209b1cfz2x7n5wdq8k2wm9";
buildDepends = [
blazeBuilder blazeBuilderEnumerator caseInsensitive enumerator
httpTypes network text time transformers wai zlibBindings
diff --git a/pkgs/development/libraries/haskell/xml-enumerator/default.nix b/pkgs/development/libraries/haskell/xml-enumerator/default.nix
index 016c841eb07..28dfbef6de4 100644
--- a/pkgs/development/libraries/haskell/xml-enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/xml-enumerator/default.nix
@@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "xml-enumerator";
- version = "0.4.1";
- sha256 = "081avccvkakcbf2m22xdda63jhwykqxxclmlhj6msawkyyqniadj";
+ version = "0.4.2.1";
+ sha256 = "0xz0a4dk94zg0sm0gy90ymmhzrsdvmqvl3qw2xycys6pzmg51im7";
buildDepends = [
attoparsecText attoparsecTextEnumerator blazeBuilder
blazeBuilderEnumerator dataDefault enumerator failure text
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/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";
diff --git a/pkgs/development/libraries/liblastfm/default.nix b/pkgs/development/libraries/liblastfm/default.nix
index acc5af0ca9e..57a325a7234 100644
--- a/pkgs/development/libraries/liblastfm/default.nix
+++ b/pkgs/development/libraries/liblastfm/default.nix
@@ -1,18 +1,25 @@
{ stdenv, fetchurl, ruby, qt4, pkgconfig, libsamplerate, fftwSinglePrec }:
-stdenv.mkDerivation rec {
- name = "liblastfm-0.3.0";
+let version = "0.3.3"; in
+stdenv.mkDerivation rec {
+ name = "liblastfm-${version}";
+
+ # Upstream does not package git tags as tarballs. Get tarball from github.
src = fetchurl {
- url = "http://cdn.last.fm/src/${name}.tar.bz2";
- sha256 = "0vgpkbqmynm975nlcw3caxpz30wvvz35c7a9kfr2wjqizvxrfwnx";
+ url = "https://github.com/mxcl/liblastfm/tarball/${version}";
+ name = "${name}.tar.gz";
+ sha256 = "0v33vzj89mgx2pc5fmiywlz51i553ckydw9xz70fiflm2inbl1r6";
};
prefixKey = "--prefix ";
propagatedBuildInputs = [ qt4 libsamplerate fftwSinglePrec ];
- buildInputs = [ ruby pkgconfig ];
+ buildNativeInputs = [ ruby pkgconfig ];
- patchPhase = "patchShebangs .";
+ configureFlags = "--release";
+
+ patches = [ ./ruby-1.9.patch ];
+ postPatch = "patchShebangs .";
meta = {
homepage = http://github.com/mxcl/liblastfm;
diff --git a/pkgs/development/libraries/liblastfm/ruby-1.9.patch b/pkgs/development/libraries/liblastfm/ruby-1.9.patch
new file mode 100644
index 00000000000..ac6d175e73a
--- /dev/null
+++ b/pkgs/development/libraries/liblastfm/ruby-1.9.patch
@@ -0,0 +1,45 @@
+From: Yury G. Kudryashov
+Subject: [PATCH] Fix compilation with ruby-1.9
+
+__FILE__ is a relative path in ruby-1.9
+
+---
+ admin/Makefile.rb | 4 ++--
+ admin/qpp | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/admin/Makefile.rb b/admin/Makefile.rb
+index 592f5a5..33fe688 100755
+--- a/admin/Makefile.rb
++++ b/admin/Makefile.rb
+@@ -6,7 +6,7 @@
+
+ cwd = File.dirname( __FILE__ )
+ require 'find'
+-require "#{cwd}/platform.rb"
++require_relative 'platform'
+
+
+ ######################################################################### defs
+@@ -158,4 +158,4 @@ puts <<-EOS
+ .PHONY: dist
+ dist:
+ git archive --prefix=#{BASENAME}/ HEAD | bzip2 > #{BASENAME}.tar.bz2
+-EOS
+\ No newline at end of file
++EOS
+diff --git a/admin/qpp b/admin/qpp
+index 36b2d05..ee840fd 100755
+--- a/admin/qpp
++++ b/admin/qpp
+@@ -4,7 +4,7 @@
+
+ cwd=File.dirname __FILE__
+ require 'find'
+-require "#{cwd}/findsrc"
++require_relative 'findsrc'
+
+ sources = Array.new
+ headers = Array.new
+--
+tg: (f0b3239..) t/ruby19 (depends on: master)
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/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 =
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index 6b35cbc4e68..a9774a84638 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, perl, gdb, autoconf, automake }:
+{ stdenv, fetchurl, perl, gdb }:
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
name = "valgrind-3.6.1";
src = fetchurl {
@@ -10,11 +10,13 @@ stdenv.mkDerivation rec {
# Perl is needed for `cg_annotate'.
# GDB is needed to provide a sane default for `--db-command'.
- buildNativeInputs = [ perl autoconf automake ];
+ buildNativeInputs = [ perl ];
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) gdb;
configureFlags =
- if stdenv.system == "x86_64-linux" then ["--enable-only64bit"] else [];
+ if (stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin")
+ then [ "--enable-only64bit" ]
+ else [];
postInstall = ''
for i in $out/lib/valgrind/*.supp; do
@@ -39,8 +41,39 @@ stdenv.mkDerivation rec {
license = "GPLv2+";
- maintainers = [ stdenv.lib.maintainers.eelco ];
-
+ maintainers = with stdenv.lib.maintainers; [ eelco ludo ];
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
};
}
+
+//
+
+(if stdenv.isDarwin
+ then {
+ patchPhase =
+ # Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666).
+ '' echo "getting rid of the \`-arch' GCC option..."
+ find -name Makefile\* -exec \
+ sed -i {} -e's/DARWIN\(.*\)-arch [^ ]\+/DARWIN\1/g' \;
+
+ sed -i coregrind/link_tool_exe_darwin.in \
+ -e 's/^my \$archstr = .*/my $archstr = "x86_64";/g'
+ '';
+
+ preConfigure =
+ # Shamelessly drag in MIG.
+ '' mkdir -p "$TMPDIR/impure-deps/bin"
+
+ # MIG assumes the standard Darwin core utilities (e.g., `rm -d'), so
+ # let it see the impure directories.
+ cat > "$TMPDIR/impure-deps/bin/mig" <
++#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/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index af62125eb75..eaa90ac0eec 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/...
@@ -78,16 +77,7 @@ stdenv.mkDerivation {
generateConfig = ./generate-config.pl;
- 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;
+ inherit preConfigure src module_init_tools localVersion postInstall postBuild;
patches = map (p: p.patch) kernelPatches;
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;
}
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;
+ };
}
diff --git a/pkgs/os-specific/linux/libcg/default.nix b/pkgs/os-specific/linux/libcg/default.nix
index 221150dc891..14f96eb15ae 100644
--- a/pkgs/os-specific/linux/libcg/default.nix
+++ b/pkgs/os-specific/linux/libcg/default.nix
@@ -1,15 +1,20 @@
{stdenv, fetchurl, pam, yacc, flex}:
stdenv.mkDerivation rec {
- name = "libcgroup-0.36.2";
+ name = "libcgroup-0.37.1";
+
src = fetchurl {
url = "mirror://sourceforge/libcg/${name}.tar.bz2";
- sha256 = "1qvkd976485vyshaq1cwjzg6w54c3djsaic024yx3sfp14f1gnvz";
+ sha256 = "03awrn49bb84a9vaha1kjdbpwdnrfwmd08mlajjilr6kwlnn620b";
};
- buildInputs = [ pam yacc flex ];
+
+ buildInputs = [ pam ];
+
+ buildNativeInputs = [ yacc flex ];
meta = {
description = "library that abstracts the control group file system in Linux";
homepage = "http://libcg.sourceforge.net";
license = "LGPL";
+ platforms = stdenv.lib.platforms.linux;
};
}
diff --git a/pkgs/os-specific/linux/module-init-tools/default.nix b/pkgs/os-specific/linux/module-init-tools/default.nix
index 003ee1263f8..fc716469a49 100644
--- a/pkgs/os-specific/linux/module-init-tools/default.nix
+++ b/pkgs/os-specific/linux/module-init-tools/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, docbook2x}:
stdenv.mkDerivation {
name = "module-init-tools-3.16";
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
})
];
- 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/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";
};
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 89a7a541aab..d2718d53b63 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -241,7 +241,7 @@ let
dotnetenv = import ../build-support/dotnetenv {
inherit stdenv;
- dotnetfx = dotnetfx35;
+ dotnetfx = dotnetfx40;
};
vsenv = callPackage ../build-support/vsenv {
@@ -592,6 +592,8 @@ let
dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
+ dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
+
dropbear = callPackage ../tools/networking/dropbear {
enableStatic = true;
zlib = zlibStatic;
@@ -2299,6 +2301,8 @@ let
mkOcamlPackages = ocaml: self: let callPackage = newScope self; in rec {
inherit ocaml;
+ camlidl = callPackage ../development/tools/ocaml/camlidl { };
+
camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { };
camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 {
@@ -2611,8 +2615,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 { });
@@ -5006,7 +5010,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;
});
@@ -5244,7 +5248,7 @@ let
linuxHeaders =
let
-
+
kernel = {
src = linuxPackages.kernel.src;
version = linuxPackages.kernel.version;
@@ -5580,6 +5584,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
];
@@ -7914,7 +7919,7 @@ let
inherit (kde3) kdelibs;
};
- kile = callPackage ../applications/editors/kile {
+ kile = callPackage ../applications/editors/kile/2.0.nix {
inherit (kde3) arts kdelibs;
qt = qt3;
};
@@ -7981,6 +7986,8 @@ let
kdiff3 = callPackage ../tools/text/kdiff3 { };
+ kile = callPackage ../applications/editors/kile/2.1.nix { };
+
kmplayer = callPackage ../applications/video/kmplayer {
inherit (pkgs.gtkLibs) pango;
};
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index f7edf77d32a..e55b471a957 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 {};
@@ -504,6 +506,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 {};
@@ -640,13 +646,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
fgl = self.fgl_5_4_2_4;
};
- hakyll = callPackage ../development/libraries/haskell/hakyll {
- hamlet = self.hamlet_0_8_2_1;
- };
+ hakyll = callPackage ../development/libraries/haskell/hakyll {};
- hamlet_0_8_2_1 = callPackage ../development/libraries/haskell/hamlet/0.8.2.1.nix {};
- hamlet_0_10_1 = callPackage ../development/libraries/haskell/hamlet/0.10.1.nix {};
- hamlet = self.hamlet_0_10_1;
+ hamlet = callPackage ../development/libraries/haskell/hamlet {};
happstackData = callPackage ../development/libraries/haskell/happstack/happstack-data.nix {};
@@ -878,7 +880,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 {};
@@ -1292,6 +1295,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 {};
@@ -1369,6 +1374,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_4 = callPackage ../development/tools/documentation/haddock/2.9.4.nix {};
haddock = self.haddock_2_7_2;
happy_1_18_4 = callPackage ../development/tools/parsing/happy/1.18.4.nix {};
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 247b9be61ad..09be02ba915 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;
@@ -437,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;