# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
maintainer="fossdd <fossdd@pwned.life>"
pkgname=modemmanager
pkgver=1.24.0
pkgrel=0
pkgdesc="ModemManager library"
url="https://www.freedesktop.org/wiki/Software/ModemManager"
arch="all"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
depends="dbus polkit libmm-glib=$pkgver-r$pkgrel"
depends_dev="libmm-glib=$pkgver-r$pkgrel"
makedepends="
	$depends_dev
	bash-completion-dev
	dbus-dev
	elogind-dev
	gobject-introspection-dev
	gtk-doc
	libgudev-dev
	libmbim-dev
	libqmi-dev
	linux-headers
	meson
	polkit-dev
	vala
	"
checkdepends="glib-dev py3-gobject3 py3-dbus"
subpackages="
	$pkgname-lang
	$pkgname-doc
	libmm-glib:libmm
	$pkgname-dbg
	$pkgname-dev
	$pkgname-openrc
	$pkgname-bash-completion
	"
source="https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/archive/$pkgver/ModemManager-$pkgver.tar.gz
	$pkgname.rules
	$pkgname.initd
	"
builddir="$srcdir"/ModemManager-$pkgver

build() {
	# Temporarily disable gtkdoc generation due to error in helper script
	# https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/902
	abuild-meson \
		-Db_lto=true \
		-Dsystemdsystemunitdir=no \
		-Ddbus_policy_dir=/usr/share/dbus-1/system.d \
		-Dgtk_doc=false \
		-Dpolkit=permissive \
		-Dsystemd_journal=false \
		-Dsystemd_suspend_resume=true \
		-Dvapi=true \
		. output
	meson compile -C output
}

check() {
	meson test -C output
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output
	rm -rf "$pkgdir"/usr/share/dbus-1/system-services #systemd-service
	install -m644 -D "$srcdir/$pkgname.rules" \
		"$pkgdir/usr/share/polkit-1/rules.d/01-org.freedesktop.ModemManager.rules"
	install -m755 -D "$srcdir/$pkgname.initd" \
		"$pkgdir/etc/init.d/$pkgname"

	# post-install message
	mkdir -p "$pkgdir/usr/share/doc/$pkgname"
	cat > "$pkgdir"/usr/share/doc/$pkgname/README.alpine <<- EOF
	If your USB modem shows up as a Flash drive when you plug it in:

	install 'usb-modeswitch' to automatically switch to USB modem mode whenever you plug it in.
	To control your modem without the root password: add your user account to the 'plugdev' group.
	EOF
}

libmm() {
	depends=""
	amove usr/lib/girepository-1.0
	amove usr/lib/libmm-glib.so*
}

sha512sums="
3a98b88d34b02f245366fefbdd6687063a8fc7a36e4e4075419c034e46bb495c88543f5da5d294f2f902c034f2b9cfaabf9cc88c75ca57bf7096153e2a8a9e1d  ModemManager-1.24.0.tar.gz
6fab86c27502b29be0c6610d835a3249a4a81993eb986cff2c3ea9393fadd3f693ba4bb0532ae0e50a83d359559511859dd05f7ea2f0cb52839f535a7e49f8a0  modemmanager.rules
6e234cebcdec6d1afbca164ee5c13c96f7132ef31231d5c043cc5750ebe99e362a384d0463874b3c1c30799b433e0d3286add03af13c97fa406b4b5d2b78880c  modemmanager.initd
"
