Versions

2.8.1

  • Requires OpenSSL > xxx, but not constrained correctly in configure.ac. This causes “implicit declaration of PEM_read_bio_PUBKEY”, etc. at build time

Building Notes

On CentOS-7:

Building from git requires the dependencies below being present, and ./autogen.sh bootstrapping. The usual autoreconf -fvi is not enough.

#### “ModuleNotFoundError: No module named ‘six’

  • depends on python36-six but not checked in configure.ac:
    • yum install python36-six

#### “/opt/rh/devtoolset-11/root/usr/libexec/gcc/x86_64-redhat-linux/11/ld: cannot find -lltdl

  • depends on libtool-ltdl-devel but not checked in configure.ac:
    • yum install libtool-ltdl-devel

#### “implicit declaration of PEM_read_bio_PUBKEY

  • improper dependency on openssl. required version is not correctly specified.

#### “You don’t have gtk-doc installed, and thus won’t be able to generate the documentation.

  • gtk-doc-tools is required, not recommended:
    • Causes errors at bootstrapping and configuration:
      • docs/reference/lasso/Makefile.am:118: error: EXTRA_DIST must be set with ‘=’ before using ‘+=’” and,
      • config.status: error: cannot find input file: `docs/reference/lasso/Makefile.in’
      • without it,automake cannot generate Makefile templates (Makefile.in files).
      • If you’ve attempted bootstrapping without it, cleanup is required with ./autogen.sh
  • yum install gtk-doc-tools

## Testing Notes

  • there are 3 test suites:
    • tests,
    • bindings/python/tests,
    • bindings/perl
  • the “tests” test suite is disabled silently if check-devel is not installed:
    • yum install check-devel
  • the library tests in tests/ use forking, making debugging not straight forward.
    • set int dont_fork = 1; in main() to avoid forking. Then a single click on the “debug” button in Testing UI allows single-stepping and breakpoints in the test, or
    • set “CK_FORK=no” in TEST_ENVIRONMENTS ## Bootstrap fail
  • Bootstrapping is implemented in autogen.sh, which also configures the project. The failure of this script can indicate either:
    • the bootstrapping itself failed or,
    • the initial configuration failed
  • The initial configuration requires gtk-doc: --enable-gtk-doc

Test fail with error 2

  • Error 2 is a dependency build failure, ie, the test could not be built.
  • Running or debugging a test in the tests suite without building ‘all’ first results in:
    • “make: *** No rule to make target ‘../lasso/liblasso.la’, needed by ‘tests’. Stop.”
    • this means the liblasso.la static library is not a dependency of the test. Ie, modifying the source of this library and then running the test means the test does not run on the updated library.
  • The tests/tests.log and tests/tests2.log tests belongs in the lasso subdirectory, where the liblasso.la is built, as they are unit tests against functions in that library. Moving the unit tests to the appropriate directory would allow the dependency liblasso.la to be built/updated if needed when the tests run.

Config fail

  • Project has a few dependencies, without which configuration fails.
    • Check the Terminal output for a message "configure: error: Package requirements (...) were not met" and install the listed dependencies.