diff --git a/sys-apps/razercfg/Manifest b/sys-apps/razercfg/Manifest new file mode 100644 index 000000000..ceef55f16 --- /dev/null +++ b/sys-apps/razercfg/Manifest @@ -0,0 +1 @@ +DIST razercfg-0.40.tar.bz2 105706 BLAKE2B e9f931e4adf74834979d955cf5181f60577a9fc6a5274a537a3c46926259d6e324b089c03282093d4da03871dd15647e11f52fe200a9884db31915ac1856dff1 SHA512 42c3e7a34a348982fb2c1022c85dd3ec6d875dec387492eb4f6aece82423a1fd5984c4efb79926084aac880944a9e139a424487ab277d8c1a56c4f9c0a7c9d6e diff --git a/sys-apps/razercfg/files/razercfg-0.39-unit-variables.patch b/sys-apps/razercfg/files/razercfg-0.39-unit-variables.patch new file mode 100644 index 000000000..c17e529c4 --- /dev/null +++ b/sys-apps/razercfg/files/razercfg-0.39-unit-variables.patch @@ -0,0 +1,21 @@ +We set these variables in the ebuild, so don't override them. + +--- a/scripts/cmake.global ++++ b/scripts/cmake.global +@@ -27,16 +27,6 @@ + include_directories(AFTER ${LIBUSB_INCLUDE_PATH}) + set(CMAKE_REQUIRED_INCLUDES "${LIBUSB_INCLUDE_PATH};${CMAKE_REQUIRED_INCLUDES}") + +-execute_process(COMMAND pkg-config --variable=systemdsystemunitdir systemd +- OUTPUT_VARIABLE SYSTEMD_UNIT_DIR +- ERROR_QUIET +- OUTPUT_STRIP_TRAILING_WHITESPACE) +- +-execute_process(COMMAND pkg-config --variable=udevdir udev +- OUTPUT_VARIABLE UDEV_DIR +- ERROR_QUIET +- OUTPUT_STRIP_TRAILING_WHITESPACE) +- + macro(INSTALL_EXEC_CMD _COMMAND _FAILMSG) + install(CODE " + execute_process(COMMAND ${_COMMAND} RESULT_VARIABLE install_exec_res) diff --git a/sys-apps/razercfg/files/razercfg-0.40-unit-variables.patch b/sys-apps/razercfg/files/razercfg-0.40-unit-variables.patch new file mode 100644 index 000000000..c17e529c4 --- /dev/null +++ b/sys-apps/razercfg/files/razercfg-0.40-unit-variables.patch @@ -0,0 +1,21 @@ +We set these variables in the ebuild, so don't override them. + +--- a/scripts/cmake.global ++++ b/scripts/cmake.global +@@ -27,16 +27,6 @@ + include_directories(AFTER ${LIBUSB_INCLUDE_PATH}) + set(CMAKE_REQUIRED_INCLUDES "${LIBUSB_INCLUDE_PATH};${CMAKE_REQUIRED_INCLUDES}") + +-execute_process(COMMAND pkg-config --variable=systemdsystemunitdir systemd +- OUTPUT_VARIABLE SYSTEMD_UNIT_DIR +- ERROR_QUIET +- OUTPUT_STRIP_TRAILING_WHITESPACE) +- +-execute_process(COMMAND pkg-config --variable=udevdir udev +- OUTPUT_VARIABLE UDEV_DIR +- ERROR_QUIET +- OUTPUT_STRIP_TRAILING_WHITESPACE) +- + macro(INSTALL_EXEC_CMD _COMMAND _FAILMSG) + install(CODE " + execute_process(COMMAND ${_COMMAND} RESULT_VARIABLE install_exec_res) diff --git a/sys-apps/razercfg/files/razerd.init.d-r2 b/sys-apps/razercfg/files/razerd.init.d-r2 new file mode 100644 index 000000000..dd4ab9fd4 --- /dev/null +++ b/sys-apps/razercfg/files/razerd.init.d-r2 @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + use logger +} + +PIDFILE=/run/razerd/razerd.pid + +start() { + ebegin "Starting razerd" + start-stop-daemon --start \ + --pidfile ${PIDFILE} \ + --exec /usr/bin/razerd \ + -- --background --pidfile ${PIDFILE} + eend $? +} + +stop() { + ebegin "Stopping razerd" + start-stop-daemon --stop --pidfile ${PIDFILE} + eend $? +} + diff --git a/sys-apps/razercfg/metadata.xml b/sys-apps/razercfg/metadata.xml new file mode 100644 index 000000000..77b7acea5 --- /dev/null +++ b/sys-apps/razercfg/metadata.xml @@ -0,0 +1,18 @@ + + + + +Utility to for advanced configuration of the following Razer mice: Copperhead +Lachesis (Classic), DeathAdder (Classic, 3500 DPI, Black Edition, 2013), Taipan +Naga (Classic, 2012, 2014, Hex), Krait, Boomslang CE. The tool architecture is +based on "razerd", which is a background daemon doing all of the lowlevel +privilege hardware accesses. The user interface tools are "razercfg", a +commandline tool; and "qrazercfg", a QT4 based graphical device configuration +tool. + + + + Installs the pm-utils hooks for suspend/resume and + requires sys-power/pm-utils + + diff --git a/sys-apps/razercfg/razercfg-0.40.ebuild b/sys-apps/razercfg/razercfg-0.40.ebuild new file mode 100644 index 000000000..29de173c7 --- /dev/null +++ b/sys-apps/razercfg/razercfg-0.40.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python{3_4,3_5,3_6} ) + +inherit cmake-utils python-single-r1 systemd udev + +DESCRIPTION="Utility for advanced configuration of Razer mice" +HOMEPAGE="https://bues.ch/cms/hacking/razercfg.html" +SRC_URI="https://bues.ch/${PN}/${P}.tar.bz2" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+pm-utils +udev qt5" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="${PYTHON_DEPS} + virtual/libusb:1 + pm-utils? ( sys-power/pm-utils ) + udev? ( virtual/udev ) + qt5? ( dev-python/PyQt5 ) +" +DEPEND="${PYTHON_DEPS} + dev-python/setuptools[${PYTHON_USEDEP}] + virtual/libusb:1 + virtual/pkgconfig +" + +PATCHES=( "${FILESDIR}/${P}-unit-variables.patch" ) + +src_prepare() { + cmake-utils_src_prepare + + sed -i CMakeLists.txt \ + -e '/udevadm control/{N;d}' \ + -e '/systemctl/{N;d}' \ + -e "s:/etc/pm/sleep.d:/usr/$(get_libdir)/pm-utils/sleep.d/:" \ + -e 's:50-razer:80razer:' \ + || die + + sed -i librazer/CMakeLists.txt \ + -e '/ldconfig/{N;d}' \ + -e "s:DESTINATION lib:DESTINATION $(get_libdir):" \ + || die + + sed -i ui/razercfg.desktop.template \ + -e '/^Categories=/s/=.*$/=Qt;Settings/' \ + || die +} + +src_configure() { + local mycmakeargs=( + -DPYTHON="${PYTHON}" + -DSYSTEMD_UNIT_DIR="$(systemd_get_systemunitdir)" + -DUDEV_DIR="$(get_udevdir)" + ) + RAZERCFG_PKG_BUILD=1 cmake-utils_src_configure +} + +src_install() { + RAZERCFG_PKG_BUILD=1 cmake-utils_src_install + + newinitd "${FILESDIR}"/razerd.init.d-r2 razerd + dodoc README.* HACKING.* razer.conf + + if ! use qt5; then + rm "${D%/}"/usr/bin/qrazercfg{,-applet} || die + rm "${D%/}"/usr/share/icons/hicolor/scalable/apps/razercfg* || die + rm "${D%/}"/usr/share/applications/razercfg.desktop || die + fi + + if ! use pm-utils; then + rm "${D%/}/usr/$(get_libdir)/pm-utils/sleep.d/80razer" || die + fi +} + +pkg_postinst() { + if use udev ; then + udevadm control --reload-rules + udevadm trigger --subsystem-match=usb + fi + + if [[ -e "${ROOT%/}"/usr/bin/pyrazer.pyc ]]; then + eerror "A stale ${ROOT}usr/bin/pyrazer.pyc exists and will prevent" + eerror "the Python frontends from working until removed manually." + fi +}