Added support for building libmosquitto on FreeBSD/macOS. (#8254)
* Add support for building libmosquitto on BSD/macOS. This takes advantage fo the fact that cmake is now a required buil ddependency to allow building libmosquitto on BSD and macOS systems. * Fix builds on macOS without brew sh Co-authored-by: James Mills <prologic@shortcircuit.net.au>
Austin S. Hemmelgarn committed
Apr 17, 2020 at 07:44 UTC
10a8fd9e8eeac6946c35e830ee6bd5cd029bcadb
1 file changed
+43
-29
netdata-installer.sh
+43
-29
@@ -471,7 +471,23 @@ trap build_error EXIT
471
# -----------------------------------------------------------------------------
472
473
build_libmosquitto() {
474
- run env CFLAGS= CXXFLAGS= LDFLAGS= make -C "${1}/lib"
474
+ if [ "$(uname -s)" = Linux ]; then
475
+ run env CFLAGS= CXXFLAGS= LDFLAGS= make -C "${1}/lib"
476
+ else
477
+ pushd ${1} > /dev/null || return 1
478
+ if [ "$(uname)" = "Darwin" ] && [ -d /usr/local/opt/openssl ]; then
479
+ run env CFLAGS= CXXFLAGS= LDFLAGS= cmake \
480
+ -D OPENSSL_ROOT_DIR=/usr/local/opt/openssl \
481
+ -D OPENSSL_LIBRARIES=/usr/local/opt/openssl/lib \
482
+ -D WITH_STATIC_LIBRARIES:boolean=YES \
483
+ .
484
+ else
485
+ run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -D WITH_STATIC_LIBRARIES:boolean=YES .
486
+ fi
487
+ run env CFLAGS= CXXFLAGS= LDFLAGS= make -C lib
488
+ run mv lib/libmosquitto_static.a lib/libmosquitto.a
489
+ popd || return 1
490
+ fi
491
}
492
493
copy_libmosquitto() {
@@ -489,12 +505,6 @@ bundle_libmosquitto() {
505
return 0
506
fi
507
492
- if [ "$(uname)" != "Linux" ]; then
493
- echo >&2 " Sorry NetData with custom libmosquitto is unsupported on $(uname) at this time!"
494
- echo >&2 " Please contact NetData suppoort! https://github.com/netdata/netdata/issues/new"
495
- return 0
496
- fi
497
-
508
progress "Prepare custom libmosquitto version"
509
510
MOSQUITTO_PACKAGE_VERSION="$(cat packaging/mosquitto.version)"
@@ -503,16 +513,14 @@ bundle_libmosquitto() {
513
MOSQUITTO_PACKAGE_BASENAME="${MOSQUITTO_PACKAGE_VERSION}.tar.gz"
514
515
if fetch_and_verify "mosquitto" \
506
- "https://github.com/netdata/mosquitto/archive/${MOSQUITTO_PACKAGE_BASENAME}" \
507
- "${MOSQUITTO_PACKAGE_BASENAME}" \
508
- "${tmp}" \
509
- "${NETDATA_LOCAL_TARBALL_OVERRIDE_MOSQUITTO}"
510
- then
511
- if run tar -xf "${tmp}/${MOSQUITTO_PACKAGE_BASENAME}" -C "${tmp}" && \
512
- build_libmosquitto "${tmp}/mosquitto-${MOSQUITTO_PACKAGE_VERSION}" && \
513
- copy_libmosquitto "${tmp}/mosquitto-${MOSQUITTO_PACKAGE_VERSION}" && \
514
- rm -rf "${tmp}"
515
- then
516
+ "https://github.com/netdata/mosquitto/archive/${MOSQUITTO_PACKAGE_BASENAME}" \
517
+ "${MOSQUITTO_PACKAGE_BASENAME}" \
518
+ "${tmp}" \
519
+ "${NETDATA_LOCAL_TARBALL_OVERRIDE_MOSQUITTO}"; then
520
+ if run tar -xf "${tmp}/${MOSQUITTO_PACKAGE_BASENAME}" -C "${tmp}" &&
521
+ build_libmosquitto "${tmp}/mosquitto-${MOSQUITTO_PACKAGE_VERSION}" &&
522
+ copy_libmosquitto "${tmp}/mosquitto-${MOSQUITTO_PACKAGE_VERSION}" &&
523
+ rm -rf "${tmp}"; then
524
run_ok "libmosquitto built and prepared."
525
else
526
run_failed "Failed to build libmosquitto."
@@ -538,7 +546,15 @@ bundle_libmosquitto
546
547
build_libwebsockets() {
548
pushd "${1}" > /dev/null || exit 1
541
- run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -D LWS_WITH_SOCKS5:bool=ON .
549
+ if [ "$(uname)" = "Darwin" ] && [ -d /usr/local/opt/openssl ]; then
550
+ run env CFLAGS= CXXFLAGS= LDFLAGS= cmake \
551
+ -D OPENSSL_ROOT_DIR=/usr/local/opt/openssl \
552
+ -D OPENSSL_LIBRARIES=/usr/local/opt/openssl/lib \
553
+ -D LWS_WITH_SOCKS5:bool=ON \
554
+ .
555
+ else
556
+ run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -D LWS_WITH_SOCKS5:bool=ON .
557
+ fi
558
run env CFLAGS= CXXFLAGS= LDFLAGS= make
559
popd > /dev/null || exit 1
560
}
@@ -553,7 +569,7 @@ copy_libwebsockets() {
569
}
570
571
bundle_libwebsockets() {
556
- if [ -n "${NETDATA_DISABLE_CLOUD}" ] ; then
572
+ if [ -n "${NETDATA_DISABLE_CLOUD}" ]; then
573
return 0
574
fi
575
@@ -571,16 +587,14 @@ bundle_libwebsockets() {
587
LIBWEBSOCKETS_PACKAGE_BASENAME="v${LIBWEBSOCKETS_PACKAGE_VERSION}.tar.gz"
588
589
if fetch_and_verify "libwebsockets" \
574
- "https://github.com/warmcat/libwebsockets/archive/${LIBWEBSOCKETS_PACKAGE_BASENAME}" \
575
- "${LIBWEBSOCKETS_PACKAGE_BASENAME}" \
576
- "${tmp}" \
577
- "${NETDATA_LOCAL_TARBALL_OVERRIDE_LIBWEBSOCKETS}"
578
- then
579
- if run tar -xf "${tmp}/${LIBWEBSOCKETS_PACKAGE_BASENAME}" -C "${tmp}" && \
580
- build_libwebsockets "${tmp}/libwebsockets-${LIBWEBSOCKETS_PACKAGE_VERSION}" && \
581
- copy_libwebsockets "${tmp}/libwebsockets-${LIBWEBSOCKETS_PACKAGE_VERSION}" && \
582
- rm -rf "${tmp}"
583
- then
590
+ "https://github.com/warmcat/libwebsockets/archive/${LIBWEBSOCKETS_PACKAGE_BASENAME}" \
591
+ "${LIBWEBSOCKETS_PACKAGE_BASENAME}" \
592
+ "${tmp}" \
593
+ "${NETDATA_LOCAL_TARBALL_OVERRIDE_LIBWEBSOCKETS}"; then
594
+ if run tar -xf "${tmp}/${LIBWEBSOCKETS_PACKAGE_BASENAME}" -C "${tmp}" &&
595
+ build_libwebsockets "${tmp}/libwebsockets-${LIBWEBSOCKETS_PACKAGE_VERSION}" &&
596
+ copy_libwebsockets "${tmp}/libwebsockets-${LIBWEBSOCKETS_PACKAGE_VERSION}" &&
597
+ rm -rf "${tmp}"; then
598
run_ok "libwebsockets built and prepared."
599
else
600
run_failed "Failed to build libwebsockets."