Skip to content

Commit

Permalink
sys-apps/openrazer: port to linux-mod-r1
Browse files Browse the repository at this point in the history
  • Loading branch information
xgqt committed Jun 17, 2023
1 parent a7c8e78 commit e4e0817
Showing 1 changed file with 165 additions and 0 deletions.
165 changes: 165 additions & 0 deletions sys-apps/openrazer/openrazer-3.6.1-r1.ebuild
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
}

0 comments on commit e4e0817

Please sign in to comment.