# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit linux-info git-r3 udev
DESCRIPTION="libusb driver for the g13"
HOMEPAGE="https://github.com/ecraven/g13"
EGIT_REPO_URI="https://github.com/ecraven/g13.git"
EGIT_COMMIT="9a917c3c785161c788c47f09846b2fdd2550a9f8"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND="
dev-libs/boost
dev-libs/libusb
"
RDEPEND="${DEPEND}
media-gfx/imagemagick
sys-apps/coreutils
"
PATCHES=(
"${FILESDIR}/add-modifiers.patch"
"${FILESDIR}/add-logging.patch"
)
pkg_pretend() {
CONFIG_CHECK="~INPUT_UINPUT"
check_extra_config
}
pkg_setup() {
# use plugdev for now
# see: https://blogs.gentoo.org/mgorny/2013/07/03/local-device-access-from-plugdev-to-logind/
enewgroup plugdev
enewuser g13 -1 -1 "/dev/null" "plugdev,usb"
}
src_prepare () {
eapply_user
sed -i -e 's:/tmp/:/run/:' "g13.h"
sed -i '/MODE/G' "91-g13.rules"
# https://bugs.gentoo.org/823329
sed -i -e 's:-lboost_system-mt:-lboost_system:' "Makefile"
}
src_compile() {
emake || die "emake failed"
}
src_install() {
dosbin g13d
dobin pbm2lpbm
dobin ${FILESDIR}/g13writelcd ${FILESDIR}/g13loadbind ${FILESDIR}/g13mod
dodoc README.org *.bind ${FILESDIR}/keys.txt
insinto /usr/share/${PN}
doins *.lpbm ${FILESDIR}/99-uinput-g13.rules
insinto /lib/udev/rules.d
doins 91-g13.rules
newconfd "${FILESDIR}/${PN}.conf.d" "${PN}"
newinitd "${FILESDIR}/${PN}.init.d" "${PN}"
}
pkg_postinst() {
udev_reload
elog "Note that the command pipe is: /run/g13-0"
elog "And you need to be in the plugdev group to write to it."
elog ""
elog "If you have configured UINPUT support as a modules you"
elog "may wish to add uinput to /etc/modules"
elog ""
elog "You probably want to copy:"
elog " /usr/share/${PN}/92-uinput-g13.rules to /etc/udev/rules.d"
elog ""
elog "If you want to start g13d automatically on system boot:"
elog " rc-update add g13 default"
elog ""
elog "The daemon output is being logged to /var/log/${PN}.log"
elog ""
elog "Bindings similar to the windows default are available at:"
elog " https://github.com/zekesonxx/g13-profiles"
}
pkg_postrm() {
udev_reload
}