diff options
author | Vladimir Kondratyev <wulf@FreeBSD.org> | 2021-02-14 23:07:31 +0000 |
---|---|---|
committer | Vladimir Kondratyev <wulf@FreeBSD.org> | 2021-02-14 23:07:31 +0000 |
commit | 75a813c71581cfbb8ae865f30fff77103a0a28f3 (patch) | |
tree | 1e32a7a1e814afd1e9c8b42a5547b516a0d415c1 | |
parent | sysutils/iichid: Update to 0.0.6 (diff) |
new port: sysutils/hid-tools
sysutils/hid-tools: Python scripts to manipulate HID data
PR: 253498
Approved by: lwhsu (ports)
Notes
Notes:
svn path=/head/; revision=565272
-rw-r--r-- | sysutils/Makefile | 1 | ||||
-rw-r--r-- | sysutils/hid-tools/Makefile | 33 | ||||
-rw-r--r-- | sysutils/hid-tools/distinfo | 3 | ||||
-rw-r--r-- | sysutils/hid-tools/files/patch-hidtools_hidraw.py | 58 | ||||
-rw-r--r-- | sysutils/hid-tools/files/patch-man_hid-decode.md | 25 | ||||
-rw-r--r-- | sysutils/hid-tools/pkg-descr | 16 |
6 files changed, 136 insertions, 0 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile index 010f31d39d94..03e07a90f456 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -482,6 +482,7 @@ SUBDIR += hexyl SUBDIR += hfsexplorer SUBDIR += hfsutils + SUBDIR += hid-tools SUBDIR += highlnk SUBDIR += hilite SUBDIR += host-setup diff --git a/sysutils/hid-tools/Makefile b/sysutils/hid-tools/Makefile new file mode 100644 index 000000000000..b1a0795bae90 --- /dev/null +++ b/sysutils/hid-tools/Makefile @@ -0,0 +1,33 @@ +# Created by: Vladimir Kondratyev <wulf@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= hid-tools +PORTVERSION= 0.2 +CATEGORIES= sysutils python +MASTER_SITES= https://gitlab.freedesktop.org/libevdev/${PORTNAME}/-/archive/${DISTVERSION}/ + +MAINTAINER= wulf@FreeBSD.org +COMMENT= Python scripts to manipulate HID data + +LICENSE= GPLv2 + +IGNORE_FreeBSD_11= Is missing a hidraw(4) driver + +RUN_DEPENDS_FreeBSD_12= iichid>=0.0.6:sysutils/iichid +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}click>=0:devel/py-click@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}parse>=0:textproc/py-parse@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyudev>=0:devel/py-pyudev@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}yaml>=0:devel/py-yaml@${PY_FLAVOR} \ + ${RUN_DEPENDS_${OPSYS}_${OSREL:R}} + +USES= python:3.6+ shebangfix tar:bz2 +USE_PYTHON= autoplist distutils + +OPTIONS_DEFINE= MANPAGES +OPTIONS_DEFAULT= MANPAGES + +MANPAGES_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pypandoc>=0:textproc/py-pypandoc@${PY_FLAVOR} + +NO_ARCH= yes + +.include <bsd.port.mk> diff --git a/sysutils/hid-tools/distinfo b/sysutils/hid-tools/distinfo new file mode 100644 index 000000000000..311d21dfc2b1 --- /dev/null +++ b/sysutils/hid-tools/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1612900435 +SHA256 (hid-tools-0.2.tar.bz2) = c0a963f75699d69740ecd10549f3ffe32d620703f3090c5e3c55b9af1d469786 +SIZE (hid-tools-0.2.tar.bz2) = 78530 diff --git a/sysutils/hid-tools/files/patch-hidtools_hidraw.py b/sysutils/hid-tools/files/patch-hidtools_hidraw.py new file mode 100644 index 000000000000..163f1a7eb510 --- /dev/null +++ b/sysutils/hid-tools/files/patch-hidtools_hidraw.py @@ -0,0 +1,58 @@ +Fix ioctl(2) definitions to match <sys/ioccom.h> and <dev/hid/hidraw.h> + +--- hidtools/hidraw.py.orig 2019-03-29 01:29:29 UTC ++++ hidtools/hidraw.py +@@ -36,13 +36,14 @@ def _ioctl(fd, EVIOC, code, return_type, buf=None): + + + # extracted from <asm-generic/ioctl.h> +-_IOC_WRITE = 1 ++_IOC_VOID = 1 + _IOC_READ = 2 ++_IOC_WRITE = 4 + + _IOC_NRBITS = 8 + _IOC_TYPEBITS = 8 +-_IOC_SIZEBITS = 14 +-_IOC_DIRBITS = 2 ++_IOC_SIZEBITS = 13 ++_IOC_DIRBITS = 3 + + _IOC_NRSHIFT = 0 + _IOC_TYPESHIFT = _IOC_NRSHIFT + _IOC_NRBITS +@@ -74,7 +75,7 @@ def _IOW(type, nr, size): + + # define HIDIOCGRDESCSIZE _IOR('H', 0x01, int) + def _IOC_HIDIOCGRDESCSIZE(none, len): +- return _IOR('H', 0x01, len) ++ return _IOR('U', 30, len) + + + def _HIDIOCGRDESCSIZE(fd): +@@ -85,7 +86,7 @@ def _HIDIOCGRDESCSIZE(fd): + + # define HIDIOCGRDESC _IOR('H', 0x02, struct hidraw_report_descriptor) + def _IOC_HIDIOCGRDESC(none, len): +- return _IOR('H', 0x02, len) ++ return _IOC(_IOC_VOID, 'U', 31, 0) + + + def _HIDIOCGRDESC(fd, size): +@@ -102,7 +103,7 @@ def _HIDIOCGRDESC(fd, size): + + # define HIDIOCGRAWINFO _IOR('H', 0x03, struct hidraw_devinfo) + def _IOC_HIDIOCGRAWINFO(none, len): +- return _IOR('H', 0x03, len) ++ return _IOR('U', 32, len) + + + def _HIDIOCGRAWINFO(fd): +@@ -113,7 +114,7 @@ def _HIDIOCGRAWINFO(fd): + + # define HIDIOCGRAWNAME(len) _IOC(_IOC_READ, 'H', 0x04, len) + def _IOC_HIDIOCGRAWNAME(none, len): +- return _IOC(_IOC_READ, 'H', 0x04, len) ++ return _IOC(_IOC_READ, 'U', 33, len) + + + def _HIDIOCGRAWNAME(fd): diff --git a/sysutils/hid-tools/files/patch-man_hid-decode.md b/sysutils/hid-tools/files/patch-man_hid-decode.md new file mode 100644 index 000000000000..9f15d0d35296 --- /dev/null +++ b/sysutils/hid-tools/files/patch-man_hid-decode.md @@ -0,0 +1,25 @@ +Remove unsupported sysfs-dependent parts from manpage. + +--- man/hid-decode.md.orig 2019-03-29 01:29:29 UTC ++++ man/hid-decode.md +@@ -11,8 +11,6 @@ SYNOPSIS + + **hid-decode** */dev/hidraw0* + +-**hid-decode** */dev/input/event0* +- + **hid-decode** *hid-recording* + + DESCRIPTION +@@ -20,11 +18,8 @@ DESCRIPTION + **hid-decode** decodes one or more HID report descriptors into into + human-readable format. It supports a variety of inputs: + +-- a binary format as exported in sysfs, e.g. +- _/sys/class/input/event0/device/device/report_descriptor_ + - the format exported by **hid-recorder(1)** + - a _/dev/hidraw_ node +-- a _/dev/input/event_ node + + The format is deduced based on the input arguments. Undetected formats are + assumed to be binary files. diff --git a/sysutils/hid-tools/pkg-descr b/sysutils/hid-tools/pkg-descr new file mode 100644 index 000000000000..5e682235d56f --- /dev/null +++ b/sysutils/hid-tools/pkg-descr @@ -0,0 +1,16 @@ +hid-tools is a set of tools to interact with the kernel's HID subsystem. + +hid-recorder prints the HID Report Descriptor from a /dev/hidraw device +node and any HID reports coming from that device. The output format can +be used with hid-replay for debugging. + +hid-replay takes the output from hid-recorder and replays it through a +virtual HID device that looks exactly like the one recorded. + +hid-decode takes a HID Report Descriptor and prints a human-readable +version of it. hid-decode takes binary report descriptors, strings of +bytes, and other formats. + +hid-tools requires hidraw.ko driver to be loaded in to kernel. + +WWW: https://gitlab.freedesktop.org/libevdev/hid-tools |