Merge pull request #55749 from delroth/tpm2-tools

Add package tpm2-tools (+ deps) to nixpkgs
This commit is contained in:
Ryan Mulligan 2019-02-19 11:51:58 -08:00 committed by GitHub
commit e27fabb737
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 130 additions and 0 deletions

View file

@ -0,0 +1,47 @@
{ stdenv, lib, fetchurl
, cmocka, doxygen, ibm-sw-tpm2, iproute, openssl, perl, pkgconfig, procps
, uthash, which }:
stdenv.mkDerivation rec {
pname = "tpm2-tss";
version = "2.2.0";
src = fetchurl {
url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
sha256 = "10r5wgrq21p0y700gh5iirh26pc5gsaib2b8b2nzmbr27apiw4y9";
};
nativeBuildInputs = [
doxygen perl pkgconfig
# For unit tests and integration tests.
ibm-sw-tpm2 iproute procps which
];
buildInputs = [
openssl
# For unit tests and integration tests.
cmocka uthash
];
postPatch = "patchShebangs script";
configureFlags = [
"--enable-unit"
"--enable-integration"
];
doCheck = true;
postInstall = ''
# Do not install the upstream udev rules, they rely on specific
# users/groups which aren't guaranteed to exist on the system.
rm -R $out/lib/udev
'';
meta = with lib; {
description = "OSS implementation of the TCG TPM2 Software Stack (TSS2)";
homepage = https://github.com/tpm2-software/tpm2-tss;
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = with maintainers; [ delroth ];
};
}

View file

@ -0,0 +1,39 @@
{ stdenv, fetchurl, lib, openssl }:
stdenv.mkDerivation rec {
pname = "ibm-sw-tpm2";
version = "1332";
src = fetchurl {
url = "mirror://sourceforge/ibmswtpm2/ibmtpm${version}.tar.gz";
sha256 = "1zdhi8acd4jfp1v7ibd86hcv0g39yk8qrnhxjmmgzn8i7npr70cf";
};
buildInputs = [ openssl ];
sourceRoot = "src";
prePatch = ''
# Fix hardcoded path to GCC.
substituteInPlace makefile --replace /usr/bin/gcc "${stdenv.cc}/bin/cc"
# Remove problematic default CFLAGS.
substituteInPlace makefile \
--replace -Werror "" \
--replace -O0 "" \
--replace -ggdb ""
'';
installPhase = ''
mkdir -p $out/bin
cp tpm_server $out/bin
'';
meta = with lib; {
description = "IBM's Software TPM 2.0, an implementation of the TCG TPM 2.0 specification";
homepage = https://sourceforge.net/projects/ibmswtpm2/;
platforms = platforms.linux;
maintainers = with maintainers; [ delroth ];
license = licenses.bsd3;
};
}

View file

@ -0,0 +1,38 @@
{ stdenv, fetchurl, fetchpatch, lib
, cmocka, curl, pandoc, pkgconfig, openssl, tpm2-tss }:
stdenv.mkDerivation rec {
pname = "tpm2-tools";
version = "3.1.3";
src = fetchurl {
url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
sha256 = "05is1adwcg7y2p121yldd8m1gigdnzf9izbjazvsr6yg95pmg5fc";
};
patches = [
(fetchpatch {
name = "tests-tss-2.2.0-compat.patch";
url = "https://patch-diff.githubusercontent.com/raw/tpm2-software/tpm2-tools/pull/1322.patch";
sha256 = "0yy5qbgbd13d7cl8pzsji95a6qnwiik5s2cyqj35jd8blymikqxh";
})
];
nativeBuildInputs = [ pandoc pkgconfig ];
buildInputs = [
curl openssl tpm2-tss
# For unit tests.
cmocka
];
configureFlags = [ "--enable-unit" ];
doCheck = true;
meta = with lib; {
description = "Command line tools that provide access to a TPM 2.0 compatible device";
homepage = https://github.com/tpm2-software/tpm2-tools;
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ delroth ];
};
}

View file

@ -3363,6 +3363,8 @@ in
iannix = libsForQt5.callPackage ../applications/audio/iannix { };
ibm-sw-tpm2 = callPackage ../tools/security/ibm-sw-tpm2 { };
ibniz = callPackage ../tools/graphics/ibniz { };
icecast = callPackage ../servers/icecast { };
@ -5827,6 +5829,8 @@ in
tpm-luks = callPackage ../tools/security/tpm-luks { };
tpm2-tools = callPackage ../tools/security/tpm2-tools { };
trezord = callPackage ../servers/trezord { };
tthsum = callPackage ../applications/misc/tthsum { };
@ -12835,6 +12839,8 @@ in
totem-pl-parser = callPackage ../development/libraries/totem-pl-parser { };
tpm2-tss = callPackage ../development/libraries/tpm2-tss { };
tremor = callPackage ../development/libraries/tremor { };
twolame = callPackage ../development/libraries/twolame { };