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 { };