# Forked from Alpine to remove symlink in /sbin/udevadm

maintainer="Aster Boese <asterboese@mailbox.org>"
pkgname=eudev
_pkgver=3.2.14
pkgver=9999.$_pkgver
__pkgver=${_pkgver/_pre/-pre}
pkgrel=7
pkgdesc="init system agnostic fork of systemd-udev"
url="https://github.com/eudev-project/eudev"
arch="all"
license="GPL-2.0-or-later"
depends="udev-init-scripts"
replaces="udev"
provides="udev=176"
provider_priority=100
makedepends="
	gperf
	glib-dev
	linux-headers
	kmod-dev
	gobject-introspection-dev
	util-linux-dev
	"
checkdepends="tree xz perl"
subpackages="$pkgname-doc $pkgname-openrc
	$pkgname-netifnames::noarch $pkgname-rule-generator::noarch $pkgname-hwids"
triggers="eudev.trigger=/usr/lib/udev/rules.d eudev-hwids.trigger=/lib/udev/hwdb.d:/usr/lib/udev/hwdb.d"
source="https://github.com/eudev-project/eudev/releases/download/v$__pkgver/eudev-$__pkgver.tar.gz
	load-fbcon.patch
	no-sgx.patch
	78-sound-card.rules_Import_ID_PATH_early.patch
	udev-postmount.initd
	"
builddir="$srcdir"/"$pkgname"-"$__pkgver"

prepare() {
 	default_prepare
	update_config_sub
}

build() {
	CFLAGS="$CFLAGS -flto=auto" \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--localstatedir=/var \
		--enable-manpages \
		--enable-kmod \
		--bindir=/bin \
		--sbindir=/sbin
	make
}

check() {
	make check
}

package() {
	make DESTDIR="$pkgdir" sharepkgconfigdir=/usr/lib/pkgconfig \
		install

	install -Dm755 "$srcdir"/udev-postmount.initd \
		"$pkgdir"/etc/init.d/udev-postmount

	# Remove illogical symlink
	rm "$pkgdir"/sbin/udevadm

	# Remove files from -dev and -libs since we cannot provide them without
	# overriding the systemd provides. Ensure that if these files change on
	# upgrade the deletion command is changed to reflect that. (eudev will
	# never update, but that disclaimer is still important)
	rm "$pkgdir"/usr/lib/libudev.a
	rm "$pkgdir"/usr/lib/libudev.so
	rm "$pkgdir"/usr/lib/libudev.so.1
	rm "$pkgdir"/usr/lib/libudev.so.1.6.3
	rm "$pkgdir"/usr/lib/pkgconfig/libudev.pc
	rm "$pkgdir"/usr/lib/pkgconfig/udev.pc
	rm -r "$pkgdir"/usr/include/
}

netifnames() {
	pkgdesc="udev rules for systemd-style interface names"
	depends="!$pkgname-rule-generator"

	amove usr/lib/udev/rules.d/80-net-name-slot.rules
}

generator() {
	pkgdesc="generate udev net persistance rules"
	depends="!$pkgname-netifnames"

	# Since we didn't enable rules-generator which disables netifnames, we
	# install the rule-generator files.
	sed -i 's/"write_net_rules"/"\/usr\/lib\/udev\/rule_generator\/write_net_rules"/' \
		"$builddir"/rule_generator/75-persistent-net-generator.rules
	install -Dm644 "$builddir"/rule_generator/75-persistent-net-generator.rules \
		"$subpkgdir"/usr/lib/udev/rules.d/75-persistent-net-generator.rules
	install -Dm755 "$builddir"/rule_generator/write_net_rules \
		"$subpkgdir"/usr/lib/udev/rule_generator/write_net_rules
	install -Dm755 "$builddir"/rule_generator/rule_generator.functions \
		"$subpkgdir"/usr/lib/udev/rule_generator.functions
}

hwids() {
	pkgdesc="Hardware identification databases (from eudev)"
	provides="hwids-udev=$pkgver-r$pkgrel"
	install_if="hwdata eudev=$pkgver-r$pkgrel"

	mkdir -p "$subpkgdir"/usr/lib/udev
	mv -v "$pkgdir"/etc/udev/hwdb.d "$subpkgdir"/usr/lib/udev
}

sha512sums="
1e7593b53c5508a99fe7ff5d24d1d09b3753d9cfba086e7d8cc6ab80cc88013ec687dc4f1eac7b7889051f4e5fd5c40d2b87f5f2d948479d679c8836014d08e0  eudev-3.2.14.tar.gz
ff5928fd555e095d9f3234dd004ac4c5925405d308777e9b018e8e03112cd109935b51d75a3bc4a2a1018eb486e8a5e5ef6ee978860002a8fff93b116e9721f5  load-fbcon.patch
1558800e4132ed2c10b37805fca044ff3129cdfebec71d3e758143fab9ffda824e86d52960926a9042b21fc22f0cda8fe6690484913bd7c3dc4436af92923efe  no-sgx.patch
8872f124267485d682dea9c7c47aaa8c228aadef90981c430af7ca7f7025b344d2c3c07c653241190a3f44096aa1d3aff990dd05210f5b278d999d6fede659b5  78-sound-card.rules_Import_ID_PATH_early.patch
8ef1b911843ab13acb1c1b9b7a0a5cd76659f395c3db9e579429556f23eacebb414507dc0231e2455e7589bc70054fa1e6b6dd93dd833f7101c0da0597aabf88  udev-postmount.initd
"
