# Contributor: Nathan Angelacos <nangel@alpinelinux.org>
# Maintainer: Nathan Angelacos <nangel@alpinelinux.org>

# gpsd is commonly used with NTP servers to provide a stable clock,
# please do not move to community.

pkgname=gpsd
pkgver=3.26.1
pkgrel=0
pkgdesc="GPS daemon"
arch="all"
url="https://gpsd.io"
license="BSD-2-Clause"
makedepends="scons asciidoctor python3-dev libcap-dev ncurses-dev py3-setuptools"
subpackages="
	$pkgname-dev
	$pkgname-doc
	py3-$pkgname:_py:noarch
	$pkgname-clients:_clients
	$pkgname-openrc"
source="https://download-mirror.savannah.gnu.org/releases/gpsd/gpsd-$pkgver.tar.gz
	timepps.h
	gpsd.initd
	gpsd.confd"

prepare() {
	# We copy timepps.h to the local build directory instead of
	# creating a pps-tools-dev package for ppstime.h
	# (See https://github.com/ago/pps-tools)
	mkdir -p "$builddir"/sys
	cp "$srcdir"/timepps.h "$builddir"/sys/

	default_prepare
}

build() {
	_sitepkgs_dir="$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")"

	CPPFLAGS="$CPPFLAGS -I$builddir" \
	scons -j${JOBS:-1} \
		prefix=/usr \
		target_python=python3 \
		python_shebang=/usr/bin/python3 \
		python_libdir="${_sitepkgs_dir}" \
		dbus_export=no \
		systemd=no
}

check() {
	CPPFLAGS="$CPPFLAGS -I$builddir" \
	scons check
}

package() {
	CPPFLAGS="$CPPFLAGS -I$builddir" \
	DESTDIR="$pkgdir" scons install
	install -m755 -D "$srcdir"/gpsd.initd "$pkgdir"/etc/init.d/gpsd
	install -m644 -D "$srcdir"/gpsd.confd "$pkgdir"/etc/conf.d/gpsd
}

_py() {
	local _py=${subpkgname##-*}
	local _pyver=${_py%py}
	pkgdesc="$pkgname library and clients for python $_pyver"

	amove usr/lib/python3*

	mkdir -p "$subpkgdir"/usr/bin
	for n in gpscat gpsfake gpsprof; do
		mv "$pkgdir"/usr/bin/$n "$subpkgdir"/usr/bin/
	done

}

_clients() {
	pkgdesc="$pkgname clients"
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin
}

sha512sums="
f0d7af38a87ee5dc651b7f07ac365bff56baafcfb1e1feb8410a786549c23f898efc22ba6619a81bdd4f44653ec0d89af2b1ced92e24b4c545e51839b68db7d8  gpsd-3.26.1.tar.gz
699b3652e9033d4deb62b61e4aee8845ecbf2fa257cfc6f821783878245fe9303caf657ab979afd2bd5d034de03837349e3f8f4221eb746280faa8060f2c3b7f  timepps.h
f88940570cbed761495c3a13949428e873c2c3d112e8ac25d36dd3230ecf2171f67b0f429c37e593bb360dc1e5622fe9066e597880264561c81376ff42d1a818  gpsd.initd
75dbfe39eb900cc9587dd70794ee77ae2230765bbede47760ca227145aa3f2290b6995335ffcfeae6cd86f56b01ca87367548f4fbcf810aff1bc012b7416deef  gpsd.confd
"
