commit:     3cfee91ed2c9919833cec4489003005e9e4390cf
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 17 16:24:51 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Thu Dec 17 16:30:18 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3cfee91e

sys-apps/roccat-tools: migrate to lua-single.eclass

Supports lua5-1 (as per the unmigrated ebuild) and luajit (as
accidentally discovered during early tests; see Bug #760486).
Tested with INPUT_DEVICES=roccat_ryosmk, the logic is shared with the
other two Lua-dependent devices so it should work with those as well.

Closes: https://bugs.gentoo.org/752864
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 profiles/package.mask                              |   1 +
 .../files/roccat-tools-5.9.0-cmake_lua_impl.patch  |  11 ++
 .../roccat-tools/roccat-tools-5.9.0-r100.ebuild    | 147 +++++++++++++++++++++
 3 files changed, 159 insertions(+)

diff --git a/profiles/package.mask b/profiles/package.mask
index c8907265af7..8625e2eefc6 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -530,6 +530,7 @@ kde-apps/kdebase-meta:5
 =sci-visualization/gnuplot-5.4.1-r1
 >=sci-visualization/fityk-1.3.1-r100
 >=sys-apps/likwid-4.3.4
+>=sys-apps/roccat-tools-5.9.0-r100
 >=sys-cluster/slurm-20.11.0.1-r100
 >=www-apache/mod_security-2.9.3-r100
 >=www-client/elinks-0.13.5-r100

diff --git 
a/sys-apps/roccat-tools/files/roccat-tools-5.9.0-cmake_lua_impl.patch 
b/sys-apps/roccat-tools/files/roccat-tools-5.9.0-cmake_lua_impl.patch
new file mode 100644
index 00000000000..3009572a811
--- /dev/null
+++ b/sys-apps/roccat-tools/files/roccat-tools-5.9.0-cmake_lua_impl.patch
@@ -0,0 +1,11 @@
+--- a/cmake_modules/FindLUA.cmake
++++ b/cmake_modules/FindLUA.cmake
+@@ -36,7 +36,7 @@
+   ${_LUA_FIND_VERSION_SHORT}
+   -${_LUA_FIND_VERSION_SHORT}
+ )
+-SET(_LUA_NAMES luajit lua)
++SET(_LUA_NAMES ${LUA_IMPL})
+ 
+ FIND_PACKAGE(PkgConfig)
+ 

diff --git a/sys-apps/roccat-tools/roccat-tools-5.9.0-r100.ebuild 
b/sys-apps/roccat-tools/roccat-tools-5.9.0-r100.ebuild
new file mode 100644
index 00000000000..1a5d2b88c0a
--- /dev/null
+++ b/sys-apps/roccat-tools/roccat-tools-5.9.0-r100.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-1 luajit )
+
+inherit readme.gentoo-r1 cmake flag-o-matic lua-single toolchain-funcs udev 
user xdg
+
+DESCRIPTION="Utility for advanced configuration of Roccat devices"
+
+HOMEPAGE="http://roccat.sourceforge.net/";
+SRC_URI="mirror://sourceforge/roccat/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE_INPUT_DEVICES=(
+       input_devices_roccat_arvo
+       input_devices_roccat_isku
+       input_devices_roccat_iskufx
+       input_devices_roccat_kiro
+       input_devices_roccat_kone
+       input_devices_roccat_koneplus
+       input_devices_roccat_konepure
+       input_devices_roccat_konepuremilitary
+       input_devices_roccat_konepureoptical
+       input_devices_roccat_konextd
+       input_devices_roccat_konextdoptical
+       input_devices_roccat_kovaplus
+       input_devices_roccat_kova2016
+       input_devices_roccat_lua
+       input_devices_roccat_nyth
+       input_devices_roccat_pyra
+       input_devices_roccat_ryosmk
+       input_devices_roccat_ryosmkfx
+       input_devices_roccat_ryostkl
+       input_devices_roccat_savu
+       input_devices_roccat_skeltr
+       input_devices_roccat_sova
+       input_devices_roccat_suora
+       input_devices_roccat_tyon
+)
+
+IUSE="${IUSE_INPUT_DEVICES[@]}"
+
+REQUIRED_USE="
+       input_devices_roccat_ryosmk? ( ${LUA_REQUIRED_USE} )
+       input_devices_roccat_ryosmkfx? ( ${LUA_REQUIRED_USE} )
+       input_devices_roccat_ryostkl? ( ${LUA_REQUIRED_USE} )
+"
+
+RDEPEND="
+       dev-libs/dbus-glib
+       dev-libs/glib:2
+       >=dev-libs/libgaminggear-0.15.1
+       dev-libs/libgudev:=
+       sys-apps/dbus
+       x11-libs/cairo
+       x11-libs/gtk+:2
+       x11-libs/libX11
+       virtual/libusb:1
+       input_devices_roccat_ryosmk? ( ${LUA_DEPS} )
+       input_devices_roccat_ryosmkfx? ( ${LUA_DEPS} )
+       input_devices_roccat_ryostkl? ( ${LUA_DEPS} )
+"
+
+DEPEND="
+       ${RDEPEND}
+"
+BDEPEND="
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-5.9.0-cmake_lua_impl.patch
+)
+
+DOCS=( Changelog KNOWN_LIMITATIONS README )
+
+pkg_setup() {
+       # Don't bother checking all the relevant USE flags, this is harmless
+       # to call even when no Lua implementations have been pulled in
+       # by dependencies.
+       lua-single_pkg_setup
+
+       enewgroup roccat
+
+       local model
+       for model in ${IUSE_INPUT_DEVICES[@]} ; do
+               use ${model} && USED_MODELS+="${model/input_devices_roccat_/;}"
+       done
+}
+
+# Required because xdg.eclass overrides src_prepare() from cmake.eclass
+src_prepare() {
+       cmake_src_prepare
+}
+
+src_configure() {
+       if has_version \>=x11-libs/pango-1.44.0 ; then
+               # Fix build with pango-1.44 which depends on harfbuzz
+               local PKGCONF="$(tc-getPKG_CONFIG)"
+               append-cflags "$(${PKGCONF} --cflags harfbuzz)"
+       fi
+
+       mycmakeargs=(
+               -DDEVICES="${USED_MODELS/;/}"
+               -DUDEVDIR="${EPREFIX}$(get_udevdir)/rules.d"
+       )
+
+       local lua_use=(
+               input_devices_roccat_ryosmk
+               input_devices_roccat_ryosmkfx
+               input_devices_roccat_ryostkl
+       )
+       local luse
+       for luse in ${lua_use[@]} ; do
+               if use ${luse} ; then
+                       mycmakeargs+=(
+                               -DLUA_IMPL="${ELUA}"
+                               -DWITH_LUA="$(ver_cut 1-2 $(lua_get_version))"
+                       )
+                       break
+               fi
+       done
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+       local stat_dir=/var/lib/roccat
+       keepdir ${stat_dir}
+       fowners root:roccat ${stat_dir}
+       fperms 2770 ${stat_dir}
+       readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+       readme.gentoo_print_elog
+       ewarn
+       ewarn "This version breaks stored data for some devices. Before 
reporting bugs please delete"
+       ewarn "affected folder(s) in /var/lib/roccat"
+       ewarn
+}

Reply via email to