sys-apps/openrazer: new package; add version 3.4.0

Signed-off-by: Maciej Barć <xgqt@gentoo.org>
This commit is contained in:
Maciej Barć
2022-09-21 00:59:28 +02:00
parent af3669f391
commit 296847fca8
3 changed files with 163 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST openrazer-3.4.0.tar.gz 233490 BLAKE2B dc5236e75b998c72c4ebc2420d2c5f3d996af19e87d91d4d76dca7098c6120a12b642c314eca037973f140e4679ab42d0f25ce5225bc97d9839468f8325de56b SHA512 ba9efb3ce2736365e453328e81683368df0ef894ac44ac79c7b34c5bd782b9394170a9528d58db954da880f18a5e72a3d84810ec11b5b34845eee7daa9babd22

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>xgqt@gentoo.org</email>
<name>Maciej Barć</name>
</maintainer>
<use>
<flag name="client">Build the OpenRazer daemon client</flag>
<flag name="daemon">Build the OpenRazer daemon service</flag>
</use>
<upstream>
<bugs-to>https://github.com/openrazer/openrazer/issues/</bugs-to>
<remote-id type="github">openrazer/openrazer</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,145 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
inherit desktop systemd udev xdg-utils distutils-r1 python-r1 linux-mod
DESCRIPTION="Drivers and user-space daemon to control Razer devices on GNU/Linux"
HOMEPAGE="https://openrazer.github.io/
https://github.com/openrazer/openrazer/"
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
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 )
# This is a bit weird, but it's end result is what we want.
BUILD_TARGETS="clean driver"
BUILD_PARAMS="-C ${S} SUBDIRS=${S}/driver KERNELDIR=${KERNEL_DIR}"
MODULE_NAMES="
razeraccessory(hid:${S}/driver)
razerkbd(hid:${S}/driver)
razerkraken(hid:${S}/driver)
razermouse(hid:${S}/driver)
"
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() {
linux-mod_src_compile
distutils-r1_src_compile
if use daemon ; then
emake -C "${S}"/daemon PREFIX=/usr service
fi
}
src_test() {
( cd "${S}"/daemon/tests || die ; distutils-r1_src_test )
}
src_install() {
linux-mod_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
# systemd units
systemd_dounit "${S}"/daemon/org.razer.service
systemd_dounit "${S}"/daemon/${PN}-daemon.service
# Manpages
doman "${S}"/daemon/resources/man/${PN}-daemon.8
doman "${S}"/daemon/resources/man/razer.conf.5
# Autostart menu
newicon logo/${PN}-chroma.svg ${PN}-daemon.svg
domenu "${S}"/install_files/desktop/${PN}-daemon.desktop
fi
}
pkg_postinst() {
linux-mod_pkg_postinst
udev_reload
if use daemon ; then
xdg_icon_cache_update
xdg_desktop_database_update
fi
}
pkg_postrm() {
linux-mod_pkg_postrm
udev_reload
if use daemon ; then
xdg_icon_cache_update
xdg_desktop_database_update
fi
}