cassandra-driver requires an older version of cython than the one
present in nixpkgs.
Next cassandra-driver version will support cython 0.29
82c84255ff
We use `dpkg` 1.19.2 since 23661254e45d6eb47acad16a174637803637917a.
This version dropped pkg_db_reset` in `<dpkg/dpkg_db.h>` which broke compilation with the
following errors:
```
/build/source/osquery/tables/system/linux/deb_packages.cpp: In function 'void osquery::tables::dpkg_setup(pkg_array*)':
/build/source/osquery/tables/system/linux/deb_packages.cpp:83:3: error: 'pkg_array_init_from_db' was not declared in this scope
pkg_array_init_from_db(packages);
^~~~~~~~~~~~~~~~~~~~~~
/build/source/osquery/tables/system/linux/deb_packages.cpp:83:3: note: suggested alternative: 'pkg_array_init_from_hash'
pkg_array_init_from_db(packages);
^~~~~~~~~~~~~~~~~~~~~~
pkg_array_init_from_hash
/build/source/osquery/tables/system/linux/deb_packages.cpp: In function 'void osquery::tables::dpkg_teardown(pkg_array*)':
/build/source/osquery/tables/system/linux/deb_packages.cpp:93:3: error: 'pkg_db_reset' was not declared in this scope
pkg_db_reset();
^~~~~~~~~~~~
/build/source/osquery/tables/system/linux/deb_packages.cpp:93:3: note: suggested alternative: 'pkg_hash_reset'
pkg_db_reset();
^~~~~~~~~~~~
pkg_hash_reset
make[2]: *** [osquery/tables/CMakeFiles/osquery_system_tables.dir/build.make:115: osquery/tables/CMakeFiles/osquery_system_tables.dir/system/linux/deb_packages.cpp.o] Error 1
```
As there's currently no upstream fix, it's better to use an older
version of `dpkg` for now.
The build missed `openssl` as input and failed with an error like this:
```
/nix/store/7n1h80xkbjhcijzp0iylk0nc7w05vy8k-net-snmp-5.8/include/net-snmp/library/scapi.h:14:10: fatal error: openssl/ossl_typ.h: No such file or directory
#include <openssl/ossl_typ.h> /* EVP_MD */
^~~~~~~~~~~~~~~~~~~~
compilation terminated.
```
This also unbreaks `osquery` (https://hydra.nixos.org/build/88547811).
See also https://hydra.nixos.org/build/88562937
The 'modules.conf' file in the root of the source determines which
modules to build. Not all of the build inputs have been correctly
moved into their respective module as this requires a bit of work and
trial-and-error.