mirror of
https://github.com/stefanberger/libtpms
synced 2025-12-28 07:43:10 +00:00
Ubuntu has different package names that need to be documented separtely. Ubuntu requires exec_prefix in the libtpms.pc file for pkg-config to work. Rework some of the configure.ac parts. Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
159 lines
4.4 KiB
Plaintext
159 lines
4.4 KiB
Plaintext
This document contains the following sections:
|
|
==============================================
|
|
|
|
- Quick start
|
|
- Building libtpms
|
|
- Installing libtpms, include files and man pages
|
|
- Uninstalling libtpms, include files and man pages
|
|
- More on man pages
|
|
|
|
Quick start:
|
|
------------
|
|
|
|
The libtpms library can be built using the steps:
|
|
|
|
# ./bootstrap.sh
|
|
# ./configure
|
|
# make
|
|
# sudo make install
|
|
|
|
Building libtpms:
|
|
-----------------
|
|
|
|
The configure script needs to be run first, and can be done using:
|
|
|
|
./configure
|
|
|
|
By default, files will be installed in '/usr/local/lib', etc. If you
|
|
would like to have these files installed in '/usr/lib', etc, then run
|
|
configure using:
|
|
|
|
./configure --prefix=/usr
|
|
|
|
For more details on configure options, run "./configure -h".
|
|
|
|
Building libtpms can be done using:
|
|
|
|
make clean all
|
|
|
|
The library is known to build on Linux and Cygwin systems and possible
|
|
other Operating Systems that use .so as library extensions.
|
|
|
|
On Linux systems, libtpms can be built with either one of the following
|
|
crypto backends:
|
|
|
|
- openssl
|
|
- freebl
|
|
|
|
On Cygwin only openssl is available and therefore can only be built with
|
|
openssl.
|
|
|
|
To build for openssl, the following development packages must have been
|
|
installed:
|
|
|
|
Fedora/RedHat:
|
|
- glibc-headers
|
|
- openssl-devel
|
|
|
|
Ubuntu:
|
|
- libc6-dev
|
|
- libssl-dev
|
|
|
|
To build for freebl, the following development packages must have been
|
|
installed prior to compilation:
|
|
|
|
Fedora/RedHat:
|
|
- glibc-headers
|
|
- nss-softokn-freebl-devel (preferably version 3.12.9-2 or newer)
|
|
- nss-softokn-devel (preferably version 3.12.9-2 or newer)
|
|
- gmp-devel
|
|
|
|
Ubuntu:
|
|
- libc6-dev
|
|
- libgmp-dev
|
|
- libnspr4-dev
|
|
- libnss3-dev (preferably version 3.17.2; needs to have blapi.h)
|
|
|
|
By default, libtpms is built with the openssl crypto library, which was
|
|
shown above. To build with the freebl crypto library the following command
|
|
line can be used:
|
|
|
|
make CRYPTO_SUBSYSTEM=freebl clean all
|
|
|
|
To verify that libtpms was built with freebl as the crypto backend, one
|
|
can run:
|
|
|
|
ldd /usr/lib/libtpms.so
|
|
|
|
linux-vdso.so.1 => (0x00007fff8d5ff000)
|
|
libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00007f5352a13000)
|
|
libnspr4.so => /lib64/libnspr4.so (0x00007f53527d6000)
|
|
libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007f53525b6000)
|
|
libnss3.so => /usr/lib64/libnss3.so (0x00007f535227c000)
|
|
libc.so.6 => /lib64/libc.so.6 (0x00007f5351ed8000)
|
|
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5351cba000)
|
|
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5351ab6000)
|
|
libplc4.so => /lib64/libplc4.so (0x00007f53518b2000)
|
|
libplds4.so => /lib64/libplds4.so (0x00007f53516ae000)
|
|
/lib64/ld-linux-x86-64.so.2 (0x0000003a1c000000)
|
|
|
|
The fact that the libraries libgmp, libnspr4, libnssutil3, libnss3,
|
|
libpc4, and libplds4 are linked agaist is an indication that the freebl
|
|
library was used for linking.
|
|
|
|
In case of openssl's libcrypto the output would be the following:
|
|
|
|
linux-vdso.so.1 => (0x00007fffcbdff000)
|
|
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fdb1d00e000)
|
|
libc.so.6 => /lib64/libc.so.6 (0x00007fdb1cc6a000)
|
|
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdb1ca65000)
|
|
libz.so.1 => /lib64/libz.so.1 (0x00007fdb1c84e000)
|
|
/lib64/ld-linux-x86-64.so.2 (0x0000003a1c000000)
|
|
|
|
|
|
A debug build that prints out __lots__ of debugging information on the
|
|
TPM level can be built by invoking make as follows:
|
|
|
|
make CRYPTO_SUBSYSTEM=freebl BUILD_TYPE=debug
|
|
|
|
|
|
Installing libtpms, include files and man pages:
|
|
------------------------------------------------
|
|
|
|
The installation of libtpms, the development include files (headers) and
|
|
man pages can be achieved through:
|
|
|
|
make install
|
|
|
|
This will copy libtpms into the standard library directory on your Linux
|
|
system such as /usr/lib or /usr/lib64, depending on whether you built for
|
|
a 32 bit or 64 bit machine.
|
|
|
|
The public include files of libtpms will be copied to /usr/include/libtpms.
|
|
|
|
The man pages explaining the libtpms API will be copied to /usr/share/man.
|
|
|
|
|
|
Uninstalling libtpms, include files and man pages:
|
|
--------------------------------------------------
|
|
|
|
The libtpms library, its development include files (headers) and man pages
|
|
can be uninstalled from their standard locations using
|
|
|
|
make uninstall
|
|
|
|
|
|
More on man pages
|
|
-----------------
|
|
|
|
All of the libtpms APIs have a man page. The man pages contain explanations
|
|
on how to use the APIs as well as examples. Once installed, they can be
|
|
viewed as a typical man page:
|
|
|
|
man TPMLIB_MainInit
|
|
|
|
Otherwise, if they are not installed, they can then be viewed from the
|
|
libtpms root directory using:
|
|
|
|
man -M ./man TPMLIB_MainInit
|