# Template file for 'elogind'
pkgname=elogind
version=219.14
revision=2
build_style=gnu-configure
hostmakedepends="automake libxslt intltool libtool pkg-config gperf"
makedepends="libcap-devel libmount-devel libseccomp-devel libblkid-devel pam-devel gettext-devel eudev-libudev-devel glib-devel"
depends="dbus"
short_desc="Standalone logind fork"
maintainer="Enno Boland <gottox@voidlinux.eu>"
license="GPL-2, LGPL-2, MIT"
homepage="https://github.com/andywingo/elogind"
distfiles="https://wingolog.org/pub/elogind/elogind-$version.tar.xz"
checksum=9dc150071a3f4c1ad1c989a7a143c2d41a2d571c643b92090e36a5d0396193c9
LDFLAGS="-lrt"
conf_files="/etc/elogind/logind.conf"

pre_configure() {
	vinstall $FILESDIR/elogind.wrapper 755 usr/libexec/elogind
	sed -i -e "s#^Exec=/bin/false#Exec=/usr/libexec/elogind/elogind.wrapper#" \
		src/login/org.freedesktop.login1.service
	# Copy an implementation of glibc printf.h for use with musl libc
	cp -p ${FILESDIR}/parse-printf-format.{c,h} src/shared/
}

post_configure() {
	case "$XBPS_TARGET_MACHINE" in
	*-musl) # We do have an implementation of secure_getenv(3) through a macro...
		sed -i config.h \
			-e 's;/\* #undef HAVE_SECURE_GETENV \*/;#define HAVE_SECURE_GETENV 1;'
		;;
	esac
}

post_install() {
	ln -s libelogind.pc $DESTDIR/usr/lib/pkgconfig/libsystemd.pc
	ln -s libelogind.pc $DESTDIR/usr/lib/pkgconfig/libsystemd-logind.pc
	ln -sr $DESTDIR/usr/include/elogind $DESTDIR/usr/include/systemd
	vinstall ./src/systemd/sd-id128.h 644 usr/include
	vinstall ./src/systemd/_sd-common.h 644 usr/include
	vlicense LICENSE.MIT
}

elogind-devel_package() {
	depends="${sourcepkg}>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/*.la
		vmove usr/lib/*.so
		vmove usr/share/man/man3
		vmove usr/lib/pkgconfig
	}
}
