Apocrypha

lemurs-0.3.2guru

# Copyright 2023-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

CRATES="
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]+wasi-snapshot-preview1
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
"
inherit cargo pam systemd

DESCRIPTION="A TUI Display/Login Manager"
HOMEPAGE="https://github.com/coastalwhite/lemurs"
SRC_URI="https://github.com/coastalwhite/lemurs/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz \
${CARGO_CRATE_URIS}"

LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-DFS-2016"
SLOT="0"
KEYWORDS="~amd64"
IUSE="systemd"

RDEPEND="${DEPEND}
				sys-libs/pam
				systemd? ( sys-apps/systemd:= )
				!systemd? ( sys-apps/kbd )
"

PATCHES=(
	# bug #942191
	"${FILESDIR}/${P}-rust-1.81.patch"
)

QA_FLAGS_IGNORED="usr/bin/lemurs"

src_prepare() {
	default
	# Run lemurs on tty7 so it doesn't conflict with agetty
	# And replace systemd's reboot and shutdown commands
	if ! use systemd ; then
		sed -i 's/tty = 2/tty = 7/' "${S}"/extra/config.toml || die "Sed on config.toml failed"

		sed -i 's/shutdown_cmd = "systemctl poweroff -l"/shutdown_cmd = "poweroff"/' \
		"${S}"/extra/config.toml || die "Sed on config.toml failed"

		sed -i 's/reboot_cmd = "systemctl reboot -l"/reboot_cmd = "reboot"/' \
		"${S}"/extra/config.toml || die "Sed on config.toml failed"
	fi
}

src_install() {
	dodir /etc/lemurs
	keepdir /etc/lemurs/{wayland,wms}

	exeinto /etc/lemurs
	doexe "${S}"/extra/xsetup.sh

	insinto /etc/lemurs
	doins "${S}"/extra/config.toml

	dodoc "${S}"/README.md

	# Lemur's default PAM doesn't make elogind do its job
	# i.e. doesn't make /run/user/*
	newpamd "${FILESDIR}"/lemurs.pam lemurs

	newinitd "${FILESDIR}"/lemurs.initd lemurs
	systemd_dounit "${S}"/extra/lemurs.service

	dobin "$(cargo_target_dir)"/lemurs
}

pkg_postinst() {
	elog "Before starting lemurs you have to configure all your WMs/DEs manually."
	elog "See: https://github.com/coastalwhite/lemurs#usage"
	elog
	if use systemd ; then
		elog "To start lemurs:"
		elog "  systemctl start lemurs"
		elog "To start it with the system:"
		elog "  systemctl enable lemurs"
		ewarn "This package has not yet been tested on a systemd system,"
		ewarn "so it may not function properly."
		ewarn "If possible, please email the package maintainer to confirm that it works (or not):"
		ewarn
		ewarn "Remigiusz Micielski <[email protected]>"
		ewarn
	else
		elog "To start lemurs:"
		elog "  rc-service lemurs start"
		elog "To boot it with the system:"
		elog "  rc-update add lemurs"
	fi
}