forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sys-apps/openrazer: port to linux-mod-r1
Bug: https://bugs.gentoo.org/908692 Closes: https://bugs.gentoo.org/908695 Signed-off-by: Maciej Barć <[email protected]>
- Loading branch information
Showing
1 changed file
with
165 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
# Copyright 1999-2023 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
PYTHON_COMPAT=( python3_{9..11} ) | ||
|
||
inherit readme.gentoo-r1 systemd udev xdg-utils distutils-r1 linux-mod-r1 | ||
|
||
DESCRIPTION="Drivers and user-space daemon to control Razer devices on GNU/Linux" | ||
HOMEPAGE="https://openrazer.github.io/ | ||
https://github.com/openrazer/openrazer/" | ||
|
||
if [[ ${PV} == *9999* ]] ; then | ||
inherit git-r3 | ||
EGIT_REPO_URI="https://github.com/${PN}/${PN}.git" | ||
else | ||
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz | ||
-> ${P}.tar.gz" | ||
KEYWORDS="~amd64 ~x86" | ||
fi | ||
|
||
LICENSE="GPL-2+" | ||
SLOT="0" | ||
|
||
IUSE="+client +daemon" | ||
REQUIRED_USE=" | ||
client? ( daemon ) | ||
daemon? ( ${PYTHON_REQUIRED_USE} ) | ||
test? ( daemon ) | ||
" | ||
|
||
RDEPEND=" | ||
client? ( dev-python/numpy[${PYTHON_USEDEP}] ) | ||
daemon? ( | ||
acct-group/plugdev | ||
dev-python/daemonize[${PYTHON_USEDEP}] | ||
dev-python/dbus-python[${PYTHON_USEDEP}] | ||
dev-python/notify2[${PYTHON_USEDEP}] | ||
dev-python/pygobject:3[${PYTHON_USEDEP}] | ||
dev-python/pyudev[${PYTHON_USEDEP}] | ||
dev-python/setproctitle[${PYTHON_USEDEP}] | ||
x11-libs/gtk+:3[introspection] | ||
x11-misc/xautomation | ||
x11-misc/xdotool | ||
) | ||
" | ||
BDEPEND=" | ||
${RDEPEND} | ||
virtual/linux-sources | ||
" | ||
|
||
DOCS=( README.md ) | ||
|
||
DOC_CONTENTS="To successfully use OpenRazer: load desired kernel module | ||
(razeraccessory, razerkbd, razerkraken and/or razermouse), | ||
add your user to the \"plugdev\" group and start the OpenRazer daemon. | ||
To automatically start up the OpenRazer daemon on session login copy | ||
/usr/share/openrazer/openrazer-daemon.desktop file into Your user's | ||
~/.config/autostart/ directory." | ||
|
||
distutils_enable_tests unittest | ||
|
||
python_compile() { | ||
if use daemon ; then | ||
( cd "${S}"/daemon || die ; distutils-r1_python_compile ) | ||
fi | ||
if use client ; then | ||
( cd "${S}"/pylib || die ; distutils-r1_python_compile ) | ||
fi | ||
} | ||
|
||
python_install() { | ||
if use daemon ; then | ||
( cd "${S}"/daemon || die ; distutils-r1_python_install ) | ||
python_scriptinto /usr/bin | ||
python_newscript "${S}"/daemon/run_openrazer_daemon.py ${PN}-daemon | ||
fi | ||
if use client ; then | ||
( cd "${S}"/pylib || die ; distutils-r1_python_install ) | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
xdg_environment_reset | ||
distutils-r1_src_prepare | ||
|
||
# Remove bad tests. | ||
rm "${S}"/daemon/tests/test_effect_sync.py || die | ||
} | ||
|
||
src_compile() { | ||
local -a modargs=( | ||
SUBDIRS="${S}"/driver | ||
KERNELDIR="${KERNEL_DIR}" | ||
) | ||
local -a modlist=( | ||
{razeraccessory,razerkbd,razerkraken,razermouse}="hid:${S}:driver" | ||
) | ||
linux-mod-r1_src_compile | ||
|
||
distutils-r1_src_compile | ||
|
||
if use daemon ; then | ||
emake -C "${S}"/daemon PREFIX=/usr service | ||
fi | ||
|
||
readme.gentoo_create_doc | ||
} | ||
|
||
src_test() { | ||
( cd "${S}"/daemon/tests || die ; distutils-r1_src_test ) | ||
} | ||
|
||
src_install() { | ||
linux-mod-r1_src_install | ||
distutils-r1_src_install | ||
|
||
udev_dorules "${S}"/install_files/udev/99-razer.rules | ||
exeinto "$(get_udevdir)" | ||
doexe "${S}"/install_files/udev/razer_mount | ||
|
||
# Install configuration example so that the daemon does not complain. | ||
insinto /usr/share/${PN} | ||
newins "${S}"/daemon/resources/razer.conf razer.conf.example | ||
|
||
if use daemon ; then | ||
# dbus service | ||
insinto /usr/share/dbus-1/services | ||
doins "${S}"/daemon/org.razer.service | ||
|
||
# systemd unit | ||
systemd_douserunit "${S}"/daemon/${PN}-daemon.service | ||
|
||
# xdg autostart example file | ||
insinto /usr/share/${PN} | ||
doins "${S}"/install_files/desktop/openrazer-daemon.desktop | ||
|
||
# Manpages | ||
doman "${S}"/daemon/resources/man/${PN}-daemon.8 | ||
doman "${S}"/daemon/resources/man/razer.conf.5 | ||
fi | ||
} | ||
|
||
pkg_postinst() { | ||
linux-mod-r1_pkg_postinst | ||
udev_reload | ||
|
||
if use daemon ; then | ||
xdg_icon_cache_update | ||
xdg_desktop_database_update | ||
fi | ||
|
||
readme.gentoo_print_elog | ||
} | ||
|
||
pkg_postrm() { | ||
linux-mod-r1_pkg_postrm | ||
udev_reload | ||
|
||
if use daemon ; then | ||
xdg_icon_cache_update | ||
xdg_desktop_database_update | ||
fi | ||
} |