# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
setvar pkgname = 'mosquitto'
setvar pkgver = '1.4.14'
setvar pkgrel = '1'
setvar pkgdesc = ""An Open Source MQTT v3.1 Broker""
setvar url = ""http://mosquitto.org/""
setvar arch = ""all""
setvar license = ""BSD""
setvar depends = """"
setvar depends_dev = """"
setvar makedepends = ""$depends_dev libressl-dev c-ares-dev util-linux-dev
	libwebsockets-dev""
setvar install = ""$pkgname.pre-install""
setvar subpackages = ""$pkgname-dev $pkgname-doc $pkgname-libs++:_pp
	$pkgname-libs $pkgname-clients""
setvar replaces = ""mosquitto-utils""
setvar source = ""http://mosquitto.org/files/source/$pkgname-$pkgver.tar.gz
	libressl.patch
	config.patch
	mosquitto.initd""
setvar builddir = ""$srcdir/$pkgname-$pkgver""

# secfixes:
#   1.4.13-r0:
#     - CVE-2017-9868
#   1.4.12-r0:
#     - CVE-2017-7650

proc prepare {
	default_prepare || return 1

	# dont strip
	sed -i -e "s|(INSTALL) -s|(INSTALL)|g" \
		-e 's|--strip-program=${CROSS_COMPILE}${STRIP}||' \
		*/Makefile */*/Makefile
}

proc build {
	cd $builddir
	# PSK not supported by libressl
	make \
		WITH_MEMORY_TRACKING=no \
		WITH_WEBSOCKETS=yes \
		WITH_SRV=yes \
		WITH_TLS_PSK=no \
		WITH_ADNS=no \
		prefix=/usr || return 1
}

proc package {
	cd $builddir

	make prefix=/usr DESTDIR="$pkgdir" install || return 1

	mv "$pkgdir"/etc/mosquitto/mosquitto.conf.example \
		"$pkgdir"/etc/mosquitto/mosquitto.conf || return 1
	sed -i -e 's/#log_dest stderr/log_dest syslog/' \
		"$pkgdir"/etc/mosquitto/mosquitto.conf || return 1

	install -Dm755 "$srcdir"/mosquitto.initd "$pkgdir"/etc/init.d/mosquitto
}

proc _pp {
	setvar pkgdesc = ""C++ wrapper for libmosquitto""
	setvar replaces = ''

	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libmosquittopp.so.* "$subpkgdir"/usr/lib/
}

proc clients {
	setvar pkgdesc = ""Mosquitto command line MQTT clients""
	setvar replaces = ""mosquitto-utils""

	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/mosquitto_[ps]ub "$subpkgdir"/usr/bin/
}

setvar sha512sums = ""dc75a971354f87deeb79f32435acfae9bc561a1a24a75ee4940a35176ff91758071930d2105d8dee2a090e07527dbfaa5692bece67e03cc87e8b4b8b46f846c2  mosquitto-1.4.14.tar.gz
53859b628f965b77f6e47910c0ceba2f2737b815131ed800dc64a80419e434d25b5ba0938ae645882e9aa5d475d4940c7d35cc6d56f54bc4937a66b32d7db4ad  libressl.patch
d5442373ae6ae8bc83eee59b425fbd76e80f905b9fd2bd2ed2a37a7e156fe95a9cf477c9c4dac0975c5fd90e70884de6fb8a16aefcd37b239199d5deae50b7d2  config.patch
16f96d8f7f3a8b06e2b2e04d42d7e0d89a931b52277fc017e4802f7a3bc85aff4dd290b1a0c40382ea8f5568d0ceb7319c031d9be916f346d805231a002b0433  mosquitto.initd""