xinput-calibrator: move it from meta-oe to oe-core
People using xserver-xorg that need to calibrate their touchscreen devices would also need meta-oe. Bringing the recipes to oe-core will make it easier for them. Aditionaly: * drop xterm RDEPENDS. Terminal is not needed to run the menu item; * change xinput_calibrator_pointercal.sh so that it can be run as normal user: pointercal.xinput is saved to ~/.pointercal/ and it will be used when the system boots; * have the calibration run through an Xsession file; * remove the systemd service since calibration is run by Xsession; * do not install pointercal.xinput if it's the default one; [YOCTO #4416] (From OE-Core rev: 4ecafd89dbf41cbd53e6db32678fe625c06caaab) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
054b932f7b
commit
0a3d3b606e
|
@ -0,0 +1 @@
|
|||
# replace with valid machine specific pointercal.xinput
|
|
@ -0,0 +1,20 @@
|
|||
DESCRIPTION = "Touchscreen calibration data from xinput-calibrator"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||
|
||||
PR = "r4"
|
||||
|
||||
SRC_URI = "file://pointercal.xinput"
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
# Only install file if it has a contents
|
||||
if [ -s ${S}/pointercal.xinput ] &&\
|
||||
[ ! -n "$(head -n1 ${S}/pointercal.xinput|grep "replace.*pointercal\.xinput")" ]; then
|
||||
install -d ${D}${sysconfdir}/
|
||||
install -m 0644 ${S}/pointercal.xinput ${D}${sysconfdir}/
|
||||
fi
|
||||
}
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
CONFFILES_${PN} = "${sysconfdir}/pointercal.xinput"
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /etc/formfactor/config
|
||||
|
||||
if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
|
||||
/usr/bin/xinput_calibrator_once.sh
|
||||
fi
|
|
@ -0,0 +1,66 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
From 14734a93bd3fc323325459e24b04795422e395e6 Mon Sep 17 00:00:00 2001
|
||||
From: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
||||
Date: Mon, 1 Jul 2013 15:38:02 +0300
|
||||
Subject: [PATCH] Allow xinput_calibrator_pointercal.sh to be run as normal
|
||||
user
|
||||
|
||||
Allow normal user to create their own pointercal.xinput files that
|
||||
override the system pointercal file in /etc.
|
||||
|
||||
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
||||
---
|
||||
scripts/xinput_calibrator_pointercal.sh | 33 +++++++++++++++++++++----------
|
||||
1 file changed, 23 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/scripts/xinput_calibrator_pointercal.sh b/scripts/xinput_calibrator_pointercal.sh
|
||||
index fccb197..0ada7da 100755
|
||||
--- a/scripts/xinput_calibrator_pointercal.sh
|
||||
+++ b/scripts/xinput_calibrator_pointercal.sh
|
||||
@@ -11,19 +11,32 @@
|
||||
PATH="/usr/bin:$PATH"
|
||||
|
||||
BINARY="xinput_calibrator"
|
||||
-CALFILE="/etc/pointercal.xinput"
|
||||
-LOGFILE="/var/log/xinput_calibrator.pointercal.log"
|
||||
+SYS_CALFILE="/etc/pointercal.xinput"
|
||||
+USER_CALFILE="$HOME/.pointercal/pointercal.xinput"
|
||||
|
||||
-if [ -e $CALFILE ] ; then
|
||||
- if grep replace $CALFILE ; then
|
||||
- echo "Empty calibration file found, removing it"
|
||||
- rm $CALFILE
|
||||
- else
|
||||
- echo "Using calibration data stored in $CALFILE"
|
||||
- . $CALFILE && exit 0
|
||||
- fi
|
||||
+if [ "$USER" = "root" ]; then
|
||||
+ LOGFILE="/var/log/xinput_calibrator.pointercal.log"
|
||||
+ CALFILES="$SYS_CALFILE"
|
||||
+else
|
||||
+ LOGFILE="$HOME/.pointercal/xinput_calibrator.pointercal.log"
|
||||
+ CALFILES="$USER_CALFILE $SYS_CALFILE"
|
||||
+ mkdir -p "$HOME/.pointercal"
|
||||
fi
|
||||
|
||||
+for CALFILE in $CALFILES; do
|
||||
+ if [ -e $CALFILE ]; then
|
||||
+ if grep replace $CALFILE ; then
|
||||
+ echo "Empty calibration file found, removing it"
|
||||
+ rm $CALFILE 2>/dev/null || true
|
||||
+ else
|
||||
+ echo "Using calibration data stored in $CALFILE"
|
||||
+ . $CALFILE && exit 0
|
||||
+ fi
|
||||
+ fi
|
||||
+done
|
||||
+
|
||||
+[ "$USER" != "root" ] && CALFILE=$USER_CALFILE
|
||||
+
|
||||
CALDATA=`$BINARY --output-type xinput -v | tee $LOGFILE | grep ' xinput set' | sed 's/^ //g; s/$/;/g'`
|
||||
if [ ! -z "$CALDATA" ] ; then
|
||||
echo $CALDATA > $CALFILE
|
||||
--
|
||||
1.7.9.5
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
DESCRIPTION = "A generic touchscreen calibration program for X.Org"
|
||||
HOMEPAGE = "http://www.freedesktop.org/wiki/Software/xinput_calibrator"
|
||||
LICENSE = "MIT-X"
|
||||
LIC_FILES_CHKSUM = "file://src/calibrator.cpp;endline=22;md5=1bcba08f67cdb56f34021557898e4b5a"
|
||||
DEPENDS = "virtual/libx11 libxi"
|
||||
|
||||
PV = "0.7.5+git${SRCPV}"
|
||||
PR = "r6"
|
||||
|
||||
inherit autotools
|
||||
|
||||
SRCREV = "c01c5af807cb4b0157b882ab07a893df9a810111"
|
||||
SRC_URI = "git://github.com/tias/xinput_calibrator.git;protocol=git \
|
||||
file://30xinput_calibrate.sh \
|
||||
file://Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# force native X11 ui as we don't have gtk+ in DEPENDS
|
||||
EXTRA_OECONF += "--with-gui=x11"
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 scripts/xinput_calibrator_pointercal.sh ${D}${bindir}/xinput_calibrator_once.sh
|
||||
|
||||
install -d ${D}${sysconfdir}/X11/Xsession.d/
|
||||
install -m 0755 ${WORKDIR}/30xinput_calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
|
||||
}
|
||||
|
||||
RDEPENDS_${PN} = "xinput"
|
||||
RRECOMMENDS_${PN} = "pointercal-xinput"
|
Loading…
Reference in New Issue