initial commit

This commit is contained in:
lucy 2026-05-15 12:08:43 +02:00
commit 3d6b1c83a1
7 changed files with 889 additions and 0 deletions

View file

@ -0,0 +1,231 @@
# Copyright 2023-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DOTNET_PKG_COMPAT=8.0
# !!! REPLACE THIS LIST !!!
# This was the 0.6.6.2 list. v0.6.7 changed dependencies (PR #4235 updated all
# NuGets except Eto, PR #4371 replaced moq with NSubstitute).
# See the comment block at the bottom of this file for how to regenerate.
NUGETS="
atksharp@3.24.24.34
benchmarkdotnet@0.15.8
benchmarkdotnet.annotations@0.15.8
cairosharp@3.24.24.34
castle.core@5.1.1
commandlineparser@2.9.1
coverlet.collector@6.0.4
diffplex@1.9.0
eto.forms@2.5.10
eto.forms@2.5.11
eto.platform.gtk@2.5.11
eto.platform.mac64@2.5.10
eto.platform.wpf@2.5.6
gdksharp@3.24.24.34
gee.external.capstone@2.3.0
giosharp@3.24.24.34
glibsharp@3.24.24.34
gtksharp@3.24.24.34
hidsharpcore@1.3.0
iced@1.21.0
jetbrains.annotations@2025.2.4
messagepack@2.5.192
messagepack.annotations@2.5.192
microsoft.codeanalysis.analyzers@3.11.0
microsoft.codeanalysis.common@4.14.0
microsoft.codeanalysis.csharp@4.14.0
microsoft.codecoverage@18.0.1
microsoft.diagnostics.netcore.client@0.2.510501
microsoft.diagnostics.runtime@3.1.512801
microsoft.diagnostics.tracing.traceevent@3.1.21
microsoft.dotnet.platformabstractions@3.1.6
microsoft.extensions.dependencyinjection@10.0.1
microsoft.extensions.dependencyinjection.abstractions@10.0.1
microsoft.extensions.logging@6.0.0
microsoft.extensions.logging.abstractions@6.0.0
microsoft.extensions.options@6.0.0
microsoft.extensions.primitives@6.0.0
microsoft.netcore.platforms@5.0.0
microsoft.net.stringtools@17.6.3
microsoft.net.test.sdk@18.0.1
microsoft.testplatform.objectmodel@18.0.1
microsoft.testplatform.testhost@18.0.1
microsoft.visualstudio.threading.only@17.13.61
microsoft.visualstudio.validation@17.8.8
microsoft.win32.registry@5.0.0
nerdbank.streams@2.12.87
newtonsoft.json@13.0.4
newtonsoft.json.schema@4.0.1
nsubstitute@5.3.0
nsubstitute.analyzers.csharp@1.0.17
octokit@14.0.0
pangosharp@3.24.24.34
perfolizer@0.6.1
pragmastat@3.2.4
sharpziplib@1.4.2
streamjsonrpc@2.22.23
system.codedom@9.0.5
system.collections.immutable@8.0.0
system.collections.immutable@9.0.0
system.commandline@2.0.1
system.componentmodel.annotations@5.0.0
system.diagnostics.diagnosticsource@6.0.0
system.diagnostics.eventlog@6.0.0
system.io.pipelines@8.0.0
system.management@9.0.5
system.reflection.metadata@8.0.0
system.reflection.metadata@9.0.0
system.reflection.typeextensions@4.7.0
system.runtime.compilerservices.unsafe@6.0.0
system.security.accesscontrol@5.0.0
system.security.principal.windows@5.0.0
system.text.json@8.0.5
validation@2.5.51
waylandnet@0.2.0
xunit@2.9.3
xunit.abstractions@2.0.3
xunit.analyzers@1.18.0
xunit.assert@2.9.3
xunit.core@2.9.3
xunit.extensibility.core@2.9.3
xunit.extensibility.execution@2.9.3
xunit.runner.visualstudio@3.1.5
xunit.skippablefact@1.5.23
"
inherit desktop dotnet-pkg linux-info systemd udev xdg
DESCRIPTION="A cross-platform open-source tablet driver"
HOMEPAGE="https://opentabletdriver.net/"
SRC_URI="
https://github.com/OpenTabletDriver/OpenTabletDriver/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
${NUGET_URIS}
"
LICENSE="LGPL-3+"
# nuget licenses
LICENSE+=" Apache-2.0 ISC MIT"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
dev-libs/libevdev
virtual/udev
x11-libs/gtk+:3
x11-libs/libX11
x11-libs/libXrandr
x11-libs/libnotify
!x11-drivers/OpenTabletDriver-bin
"
BDEPEND="app-misc/jq"
CONFIG_CHECK="~INPUT_UINPUT"
DOTNET_PKG_PROJECTS=(
"${S}/OpenTabletDriver.Console/OpenTabletDriver.Console.csproj"
"${S}/OpenTabletDriver.Daemon/OpenTabletDriver.Daemon.csproj"
"${S}/OpenTabletDriver.UX.Gtk/OpenTabletDriver.UX.Gtk.csproj"
)
pkg_setup() {
linux-info_pkg_setup
dotnet-pkg_pkg_setup
}
src_prepare() {
# Build doesn't need the solution file but eclass tries to use it.
rm -f OpenTabletDriver.sln || die
dotnet-pkg_src_prepare
}
src_configure() {
dotnet-pkg_src_configure
# These projects are only used at build time, should not be installed.
dotnet-pkg-base_restore OpenTabletDriver.Tests
}
src_compile() {
dotnet-pkg_src_compile
./generate-rules.sh > 70-opentabletdriver.rules || die
}
src_install() {
dotnet-pkg_src_install
dotnet-pkg-base_dolauncher "/usr/share/${P}/${PN}.Console" otd
dotnet-pkg-base_dolauncher "/usr/share/${P}/${PN}.Daemon" otd-daemon
dotnet-pkg-base_dolauncher "/usr/share/${P}/${PN}.UX.Gtk" otd-gui
doicon OpenTabletDriver.UX/Assets/otd.png
doman docs/manpages/opentabletdriver.8
make_desktop_entry otd-gui OpenTabletDriver otd Settings
udev_dorules 70-opentabletdriver.rules
# !!! VERIFY PATH !!!
# v0.6.7 reworked the build system (PR #4179). The path below may have
# moved. If `cd` fails, check eng/ for the new layout - it may now be
# eng/linux/ or somewhere under eng/bash/. Adjust accordingly.
cd "${S}/eng/bash/Generic/usr" || die
insinto /lib/modprobe.d
doins lib/modprobe.d/99-opentabletdriver.conf
insinto /usr/lib/modules-load.d
doins lib/modules-load.d/opentabletdriver.conf
insinto /usr/share/libinput
doins share/libinput/30-vendor-opentabletdriver.quirks
systemd_douserunit lib/systemd/user/opentabletdriver.service
}
src_test() {
dotnet-pkg-base_test OpenTabletDriver.Tests
}
pkg_postinst() {
udev_reload
xdg_pkg_postinst
if [[ -z ${REPLACING_VERSIONS} ]]; then
elog "Please replug your tablet before attempting to use the driver"
fi
}
pkg_postrm() {
udev_reload
xdg_pkg_postrm
}
# ============================================================================
# How to regenerate the NUGETS list:
# ============================================================================
#
# 1. Download and extract the source:
# wget https://github.com/OpenTabletDriver/OpenTabletDriver/archive/refs/tags/v0.6.7.tar.gz
# tar xf v0.6.7.tar.gz
# cd OpenTabletDriver-0.6.7
#
# 2. Generate or update the lock files (requires .NET 8 SDK installed):
# dotnet restore --force-evaluate
# # This regenerates packages.lock.json in each project directory.
#
# 3. Extract the NUGETS list from all lock files:
# find . -name 'packages.lock.json' -exec jq -r '
# .dependencies | to_entries[] | .value | to_entries[] |
# "\(.key | ascii_downcase)@\(.value.resolved // .value.requested)"
# ' {} + | sort -u
#
# Replace the PLACEHOLDER line in the NUGETS variable above with this
# output. Each line must be `name@version`, no quotes, no commas.
#
# 4. Verify the build path changes from PR #4179. Check that the linux
# packaging files still live at eng/linux/Generic/usr - they may have
# moved. If they did, update the cd line in src_install accordingly.
#
# 5. Generate the manifest:
# pkgdev manifest # or: ebuild ./OpenTabletDriver-0.6.7.ebuild manifest
#
# 6. Test the build in a clean environment before submitting upstream:
# ebuild ./OpenTabletDriver-0.6.7.ebuild clean compile
#
# ============================================================================