summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/newt/default.nix29
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix51
-rw-r--r--pkgs/os-specific/linux/kernel/perf.nix17
-rw-r--r--pkgs/top-level/all-packages.nix2
4 files changed, 93 insertions, 6 deletions
diff --git a/pkgs/development/libraries/newt/default.nix b/pkgs/development/libraries/newt/default.nix
new file mode 100644
index 00000000000..743314d1815
--- /dev/null
+++ b/pkgs/development/libraries/newt/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv, slang, popt }:
+
+stdenv.mkDerivation rec {
+  name = "newt-0.52.14";
+
+  src = fetchurl {
+    url = "https://fedorahosted.org/releases/n/e/newt/${name}.tar.gz";
+    sha256 = "13lp815zwldbw917wxmjy90gp608n3zlk4p3ybfqh0x6p9c4y3zp";
+  };
+
+  patchPhase = ''
+    sed -i -e s,/usr/bin/install,install, -e s,-I/usr/include/slang,, Makefile.in po/Makefile
+  '';
+
+  buildInputs = [ slang popt ];
+
+  crossAttrs = {
+    makeFlags = "CROSS_COMPILE=${stdenv.cross.config}-";
+  };
+
+  meta = {
+    homepage = https://fedorahosted.org/newt/;
+    description = "Library for color text mode, widget based user interfaces";
+
+    license = "LGPLv2";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.viric ];
+  };
+}
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 79ba4a3732c..980ead10084 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, zlib, bzip2, xz, m4}:
+{stdenv, fetchurl, m4, zlib, bzip2, xz, bison, flex, gettext}:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
@@ -13,9 +13,54 @@ stdenv.mkDerivation rec {
     sha256 = "19mlgxyzcwiv64ynj2cibgkiw4qkm3n37kizvy6555dsmlaqfybq";
   };
 
-  buildInputs = [ zlib bzip2 xz ];
+  patches = [
+    (fetchurl {
+      url = https://fedorahosted.org/releases/e/l/elfutils/0.152/elfutils-portability.patch;
+      sha256 = "0q318w4cvvqv9ps4xcwphapj1gl31isgjyya4y9sm72qj68n61p0";
+    }) ];
 
-  buildNativeInputs = [m4];
+  # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
+  # as the host-bzip2 will be in the path.
+  buildNativeInputs = [m4 bison flex gettext bzip2];
+  buildInputs = [zlib bzip2 xz];
+
+  crossAttrs = {
+
+    /* Having bzip2 will harm, because anything using elfutils 
+       as buildInput cross-building, will not be able to run 'bzip2' */
+    propagatedBuildInputs = [ zlib.hostDrv ];
+
+    # This program does not cross-build fine. So I only cross-build some parts
+    # I need for the linux perf tool.
+    # On the awful cross-building:
+    # http://comments.gmane.org/gmane.comp.sysutils.elfutils.devel/2005
+    #
+    # I wrote this testing for the nanonote.
+    buildPhase = ''
+      pushd libebl
+      make
+      popd
+      pushd libelf
+      make
+      popd
+      pushd libdwfl
+      make
+      popd
+      pushd libdw
+      make
+      popd
+    '';
+
+    installPhase = ''
+      pushd libelf
+      make install
+      popd
+      pushd libdw
+      make install
+      popd
+      cp version.h $out/include
+    '';
+  };
   
   dontAddDisableDepTrack = true;
 
diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix
index 4b8583dcc95..e45a15150d7 100644
--- a/pkgs/os-specific/linux/kernel/perf.nix
+++ b/pkgs/os-specific/linux/kernel/perf.nix
@@ -1,4 +1,4 @@
-{ stdenv, kernel, elfutils }:
+{ stdenv, kernel, elfutils, python, perl, newt }:
 
 stdenv.mkDerivation {
   name = "perf-linux-${kernel.version}";
@@ -7,10 +7,21 @@ stdenv.mkDerivation {
 
   preConfigure = ''
     cd tools/perf
-    export makeFlags="DESTDIR=$out"
+    sed -i s,/usr/include/elfutils,$elfutils/include/elfutils, Makefile
+    export makeFlags="DESTDIR=$out $makeFlags"
   '';
 
-  buildInputs = [ elfutils ];
+  buildInputs = [ elfutils python perl newt ];
+
+  inherit elfutils;
+
+  crossAttrs = {
+    /* I don't want cross-python or cross-perl -
+       I don't know if cross-python even works */
+    propagatedBuildInputs = [ elfutils.hostDrv newt.hostDrv ];
+    makeFlags = "CROSS_COMPILE=${stdenv.cross.config}-";
+    elfutils = elfutils.hostDrv;
+  };
 
   meta = {
     homepage = https://perf.wiki.kernel.org/;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 41d1ba58743..d0d13f84b88 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4318,6 +4318,8 @@ let
 
   nettle = callPackage ../development/libraries/nettle { };
 
+  newt = callPackage ../development/libraries/newt { };
+
   nspr = callPackage ../development/libraries/nspr { };
 
   nss = callPackage ../development/libraries/nss { };