I wanted to set up a home server, something with a little more juice than the Pi. I did a test run of installing HA on Linux, specifically Linux Mint 18. I set up one of my spare laptops with Linux Mint and nothing else and proceeded to install HA manually. I followed this guide:
Install Home Assistant On CentOS 7
Now, of course, I had to make some changes to the packages and dependencies installed but by and large things went smoothly and I have HA up and running and autostarting on that machine.
Encouraged by this I began looking at Dell PowerEdge R710’s for a rack mountable server. I have a bunch of Cisco gear at home and I figured I would get a nice cabinet mount it all and call it good. However, before I went through all that I wanted to do a trial run in setting up Ubuntu Server and making sure I could get HA to install on it. I go through all the steps, which was much easier this time because I took very detailed notes, so it was much more a breeze. Everything went smoothly until the very last step of compiling the OZWCP. In doing so I get the following output when I ran sudo make:
g++ -c -Wall -Wno-unknown-pragmas -Wno-inline -Wno-format -g -DDEBUG -ggdb -O0 -I /opt/python-openzwave/openzwave/cpp/src -I /opt/python-openzwave/openzwave/cpp/src/command_classes/ -I /opt/python-openzwave/openzwave/cpp/src/value_classes/ -I /opt/python-openzwave/openzwave/cpp/src/platform/ -I /opt/python-openzwave/openzwave/cpp/src/platform/unix -I /opt/python-openzwave/openzwave/cpp/tinyxml/ -I /usr/local/include/ -o ozwcp.o ozwcp.cpp
g++ -c -Wall -Wno-unknown-pragmas -Wno-inline -Wno-format -g -DDEBUG -ggdb -O0 -I /opt/python-openzwave/openzwave/cpp/src -I /opt/python-openzwave/openzwave/cpp/src/command_classes/ -I /opt/python-openzwave/openzwave/cpp/src/value_classes/ -I /opt/python-openzwave/openzwave/cpp/src/platform/ -I /opt/python-openzwave/openzwave/cpp/src/platform/unix -I /opt/python-openzwave/openzwave/cpp/tinyxml/ -I /usr/local/include/ -o webserver.o webserver.cpp
g++ -c -Wall -Wno-unknown-pragmas -Wno-inline -Wno-format -g -DDEBUG -ggdb -O0 -I /opt/python-openzwave/openzwave/cpp/src -I /opt/python-openzwave/openzwave/cpp/src/command_classes/ -I /opt/python-openzwave/openzwave/cpp/src/value_classes/ -I /opt/python-openzwave/openzwave/cpp/src/platform/ -I /opt/python-openzwave/openzwave/cpp/src/platform/unix -I /opt/python-openzwave/openzwave/cpp/tinyxml/ -I /usr/local/include/ -o zwavelib.o zwavelib.cpp
g++ -o ozwcp -g ozwcp.o webserver.o zwavelib.o /opt/python-openzwave/openzwave/libopenzwave.a -lgnutls -lgcrypt /usr/local/lib/libmicrohttpd.a -pthread -ludev -lresolv
webserver.o: In function `Webserver::SendTopoResponse(MHD_Connection*, char const*, char const*, char const*, char const*)':
/opt/open-zwave-control-panel/webserver.cpp:338: warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'
/usr/local/lib/libmicrohttpd.a(connection.o): In function `do_read':
/opt/libmicrohttpd/src/daemon/connection.c:1501: undefined reference to `gnutls_strerror'
/usr/local/lib/libmicrohttpd.a(connection.o): In function `do_write':
/opt/libmicrohttpd/src/daemon/connection.c:1548: undefined reference to `gnutls_strerror'
/usr/local/lib/libmicrohttpd.a(connection.o): In function `MHD_connection_get_pollfd':
/opt/libmicrohttpd/src/daemon/connection.c:855: undefined reference to `gnutls_record_get_direction'
/usr/local/lib/libmicrohttpd.a(connection.o): In function `MHD_get_connection_info':
/opt/libmicrohttpd/src/daemon/connection.c:2401: undefined reference to `gnutls_cipher_get'
/opt/libmicrohttpd/src/daemon/connection.c:2406: undefined reference to `gnutls_protocol_get_version'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `parse_options_va':
/opt/libmicrohttpd/src/daemon/daemon.c:1785: undefined reference to `gnutls_priority_deinit'
/opt/libmicrohttpd/src/daemon/daemon.c:1786: undefined reference to `gnutls_priority_init'
/opt/libmicrohttpd/src/daemon/daemon.c:1792: undefined reference to `gnutls_strerror'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `recv_tls_adapter':
/opt/libmicrohttpd/src/daemon/daemon.c:385: undefined reference to `gnutls_record_recv'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `send_tls_adapter':
/opt/libmicrohttpd/src/daemon/daemon.c:417: undefined reference to `gnutls_record_send'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_cleanup_connections':
/opt/libmicrohttpd/src/daemon/daemon.c:1171: undefined reference to `gnutls_deinit'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_add_connection':
/opt/libmicrohttpd/src/daemon/daemon.c:977: undefined reference to `gnutls_init'
/opt/libmicrohttpd/src/daemon/daemon.c:978: undefined reference to `gnutls_priority_set'
/opt/libmicrohttpd/src/daemon/daemon.c:984: undefined reference to `gnutls_credentials_set'
/opt/libmicrohttpd/src/daemon/daemon.c:1008: undefined reference to `gnutls_transport_set_ptr'
/opt/libmicrohttpd/src/daemon/daemon.c:1010: undefined reference to `gnutls_transport_set_pull_function'
/opt/libmicrohttpd/src/daemon/daemon.c:1013: undefined reference to `gnutls_transport_set_push_function'
/opt/libmicrohttpd/src/daemon/daemon.c:1018: undefined reference to `gnutls_certificate_server_set_request'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_get_timeout':
/opt/libmicrohttpd/src/daemon/daemon.c:1235: undefined reference to `gnutls_record_check_pending'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_stop_daemon':
/opt/libmicrohttpd/src/daemon/daemon.c:2585: undefined reference to `gnutls_priority_deinit'
/opt/libmicrohttpd/src/daemon/daemon.c:2587: undefined reference to `gnutls_certificate_free_credentials'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_start_daemon_va':
/opt/libmicrohttpd/src/daemon/daemon.c:2439: undefined reference to `gnutls_priority_deinit'
/opt/libmicrohttpd/src/daemon/daemon.c:1979: undefined reference to `gnutls_priority_init'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_TLS_init':
/opt/libmicrohttpd/src/daemon/daemon.c:484: undefined reference to `gnutls_certificate_allocate_credentials'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_init_daemon_certificate':
/opt/libmicrohttpd/src/daemon/daemon.c:443: undefined reference to `gnutls_certificate_set_x509_trust_mem'
/opt/libmicrohttpd/src/daemon/daemon.c:461: undefined reference to `gnutls_certificate_set_x509_key_mem'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_start_daemon_va':
/opt/libmicrohttpd/src/daemon/daemon.c:2108: undefined reference to `gnutls_priority_deinit'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_init':
/opt/libmicrohttpd/src/daemon/daemon.c:2714: undefined reference to `gcry_control'
/opt/libmicrohttpd/src/daemon/daemon.c:2715: undefined reference to `gnutls_global_init'
/usr/local/lib/libmicrohttpd.a(daemon.o): In function `MHD_fini':
/opt/libmicrohttpd/src/daemon/daemon.c:2726: undefined reference to `gnutls_global_deinit'
/usr/local/lib/libmicrohttpd.a(connection_https.o): In function `MHD_tls_connection_handle_write':
/opt/libmicrohttpd/src/daemon/connection_https.c:108: undefined reference to `gnutls_handshake'
/usr/local/lib/libmicrohttpd.a(connection_https.o): In function `MHD_tls_connection_handle_read':
/opt/libmicrohttpd/src/daemon/connection_https.c:62: undefined reference to `gnutls_handshake'
/usr/local/lib/libmicrohttpd.a(connection_https.o): In function `MHD_tls_connection_handle_idle':
/opt/libmicrohttpd/src/daemon/connection_https.c:167: undefined reference to `gnutls_record_check_pending'
/opt/libmicrohttpd/src/daemon/connection_https.c:164: undefined reference to `gnutls_bye'
At the end of it, the following error was spit out:
collect2: error: ld returned 1 exit status
Makefile:71: recipe for target 'ozwcp' failed
make: *** [ozwcp] Error 1
I thought, okay, Google time. There is literally like only two pages of results in searching on that Makefile error, all of which I have either done or tried.
So I think, okay, maybe there is something different in the base of Ubuntu Server from Linux Mint. So I wipe the drive and install Linux Mint. Fresh install and straight into installing Home Assistant. I get to the exact same spot and get the exact same error. I am now like what the @#$@# @$@#$@$%^%#!!! My laptop is running this EXACT same version of Linux and HA is working perfectly on it.
I know gnutls is installed on the machine because, I installed it and I can check for it:
$ sudo pkg-config gnutls --libs
-lgnutls
And
$ whereis gnutls
gnutls: /usr/include/gnutls
So I am not sure what is going wrong, but I am at my witts end and thought I would post up here in case anyone had some ideas or perhaps have solved this at some point.