From 8fc454f9beebdd347403145c991697019a593cff Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 11 Dec 2020 16:27:59 -0600 Subject: meta-openembedded: subtree update:f623d8b574..936f2380bb Alexander Vickberg (2): libwebsockets: upgrade to 4.1.6 mbedtls: upgrade to 2.24.0 Bartosz Golaszewski (1): libgpiod: update v1.4.5 -> v1.6.2 Beniamin Sandu (1): trace-cmd: create recipe for version 2.9.1 Fabio Berton (2): beep: Add recipe for version 1.2.2 linuxconsole: Add recipe for version 1.7.0 Gianfranco (1): dlt-daemon: add upstream patch to fix CVE-2020-29394 Kai Kang (1): colord: fix installed-vs-shipped error Khem Raj (1): packagegroup-meta-python: Remove packages moved to core Luca Boccassi (3): dbus-broker: rdepend on dbus-common dbus-brocker: upgrade 23 -> 24 dbus-broker: upgrade 24 -> 25 Martin Jansa (1): nanopb: move to dynamic-layers Michael Vetter (1): jasper: upgrade 2.0.22 -> 2.0.23 Philip Balister (1): spdlog: Fix recipe so other recipes can use spdlog with external fmt. Robert Karszniewicz (1): firmwared: add recipe Roland Hieber (5): pcsc-lite: provide pcsc-lite-lib-native explicitly for native build lockfile-progs: use DEBIAN_MIRROR in SRC_URI fbset: use DEBIAN_MIRROR in SRC_URI liboop: use upstream SRC_URI openct: use upstream SRC_URI Senthil Selvaganesan (1): fcgiwrap: add recipe Thomas Perrot (1): openocd: disable the support of ccache Trevor Woerner (4): glmark2: update information glmark2: update to latest glmark2: add support for dispmanx glmark2: revert to previous behaviour Vyacheslav Yurkov (1): python3-aiohttp: added missing RDEPENDs Wang Mingyu (2): gensio: 2.1.4 -> 2.2.0 ser2net: 4.2.0 -> 4.3.0 Zang Ruochen (7): dialog: upgrade 1.3-20200327 -> 1.3-20201126 fmt: upgrade 7.1.2 -> 7.1.3 hidapi: upgrade 0.10.0 -> 0.10.1 opensc: upgrade 0.20.0 -> 0.20.1 pugixml: upgrade 1.10 -> 1.11 satyr: upgrade 0.31 -> 0.35 nanopb: upgrade 0.4.3 -> 0.4.4 zhengruoqin (9): c-periphery: upgrade 2.2.4 -> 2.2.5 crash: upgrade 7.2.8 -> 7.2.9 dfu-util: upgrade 0.9 -> 0.10 monit: upgrade 5.26.0 -> 5.27.1 qpdf: upgrade 10.0.1 -> 10.0.4 tcsh: upgrade 6.22.02 -> 6.22.03 xserver-xorg-cvt-native: upgrade 1.20.5 -> 1.20.9 zchunk: upgrade 1.1.6 -> 1.1.7 libconfig-autoconf-perl: upgrade 0.318 -> 0.319 Signed-off-by: Andrew Geissler Change-Id: I8371eb789fa288193da895bd51ce2160194809d8 --- .../meta-oe/recipes-extended/beep/beep_1.2.2.bb | 25 ++++ .../recipes-extended/beep/files/linux-input.patch | 155 +++++++++++++++++++++ .../recipes-extended/dialog/dialog_1.3-20200327.bb | 33 ----- .../recipes-extended/dialog/dialog_1.3-20201126.bb | 33 +++++ .../dlt-daemon/dlt-daemon/275.patch | 38 +++++ .../dlt-daemon/dlt-daemon_2.18.5.bb | 1 + .../inputattach-config/inputattach-config.bb | 12 ++ .../inputattach-config/inputattach.conf | 8 ++ .../51-these-are-not-joysticks-rm.rules | 83 +++++++++++ .../linuxconsole/linuxconsole/60-joystick.rules | 7 + .../linuxconsole/linuxconsole/inputattach.service | 11 ++ .../linuxconsole/linuxconsole/inputattachctl | 16 +++ .../linuxconsole/linuxconsole_1.7.0.bb | 83 +++++++++++ .../lockfile-progs/lockfile-progs_0.1.18.bb | 2 +- 14 files changed, 473 insertions(+), 34 deletions(-) create mode 100644 meta-openembedded/meta-oe/recipes-extended/beep/beep_1.2.2.bb create mode 100644 meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch delete mode 100644 meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20200327.bb create mode 100644 meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb create mode 100644 meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch create mode 100644 meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb create mode 100644 meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf create mode 100644 meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules create mode 100644 meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules create mode 100644 meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service create mode 100644 meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl create mode 100644 meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb (limited to 'meta-openembedded/meta-oe/recipes-extended') diff --git a/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.2.2.bb b/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.2.2.bb new file mode 100644 index 000000000..cafc86964 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.2.2.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "beep is a command line tool for linux that beeps the PC speaker" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +SRC_URI = "\ + http://johnath.com/beep/beep-${PV}.tar.gz \ + file://linux-input.patch \ +" + +SRC_URI[sha256sum] = "5c0445dac43950b7c7c3f235c6fb21f620ab3fd2f3aafaf09896e5730fcf49a1" + +S = "${WORKDIR}/${BPN}-${PV}" + +EXTRA_OEMAKE += 'CC="${CC}"' +EXTRA_OEMAKE += 'FLAGS="${CFLAGS} ${LDFLAGS}"' + +do_configure[noexec] = "1" + +do_compile() { + oe_runmake +} + +do_install() { + install -Dm 0755 ${B}/${PN} ${D}${bindir}/${PN} +} diff --git a/meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch b/meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch new file mode 100644 index 000000000..1b38ba72a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch @@ -0,0 +1,155 @@ +# the diff between Alessandro Zummo's copy of beep.c and the original +# one... + +--- beep-1.2.2/beep.c.orig 2006-01-29 12:13:36.994560551 -0800 ++++ beep-1.2.2/beep.c 2006-01-29 12:35:02.950558713 -0800 +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + /* I don't know where this number comes from, I admit that freely. A + wonderful human named Raine M. Ekman used it in a program that played +@@ -86,18 +87,28 @@ typedef struct beep_parms_t { + struct beep_parms_t *next; /* in case -n/--new is used. */ + } beep_parms_t; + ++enum { BEEP_TYPE_CONSOLE, BEEP_TYPE_EVDEV }; ++ + /* Momma taught me never to use globals, but we need something the signal + handlers can get at.*/ + int console_fd = -1; ++int console_type = BEEP_TYPE_CONSOLE; ++char *console_device = NULL; ++ ++void do_beep(int freq); + + /* If we get interrupted, it would be nice to not leave the speaker beeping in + perpetuity. */ + void handle_signal(int signum) { ++ ++ if(console_device) ++ free(console_device); ++ + switch(signum) { + case SIGINT: + if(console_fd >= 0) { + /* Kill the sound, quit gracefully */ +- ioctl(console_fd, KIOCSOUND, 0); ++ do_beep(0); + close(console_fd); + exit(signum); + } else { +@@ -110,7 +121,7 @@ void handle_signal(int signum) { + /* print usage and exit */ + void usage_bail(const char *executable_name) { + printf("Usage:\n%s [-f freq] [-l length] [-r reps] [-d delay] " +- "[-D delay] [-s] [-c]\n", ++ "[-D delay] [-s] [-c] [-e device]\n", + executable_name); + printf("%s [Options...] [-n] [--new] [Options...] ... \n", executable_name); + printf("%s [-h] [--help]\n", executable_name); +@@ -141,11 +152,12 @@ void usage_bail(const char *executable_n + void parse_command_line(int argc, char **argv, beep_parms_t *result) { + int c; + +- struct option opt_list[4] = {{"help", 0, NULL, 'h'}, ++ struct option opt_list[] = {{"help", 0, NULL, 'h'}, + {"version", 0, NULL, 'V'}, + {"new", 0, NULL, 'n'}, ++ {"device", 1, NULL, 'e'}, + {0,0,0,0}}; +- while((c = getopt_long(argc, argv, "f:l:r:d:D:schvVn", opt_list, NULL)) ++ while((c = getopt_long(argc, argv, "f:l:r:d:D:schvVne:", opt_list, NULL)) + != EOF) { + int argval = -1; /* handle parsed numbers for various arguments */ + float argfreq = -1; +@@ -207,6 +219,9 @@ void parse_command_line(int argc, char * + result->next->next = NULL; + result = result->next; /* yes, I meant to do that. */ + break; ++ case 'e' : /* also --device */ ++ console_device = strdup(optarg); ++ break; + case 'h' : /* notice that this is also --help */ + default : + usage_bail(argv[0]); +@@ -214,26 +229,61 @@ void parse_command_line(int argc, char * + } + } + ++void do_beep(int freq) ++{ ++ if (console_type == BEEP_TYPE_CONSOLE) ++ { ++ if(ioctl(console_fd, KIOCSOUND, freq != 0 ++ ? (int)(CLOCK_TICK_RATE/freq) ++ : freq) < 0) { ++ printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */ ++ perror("ioctl"); ++ } ++ } ++ else ++ { ++ /* BEEP_TYPE_EVDEV */ ++ struct input_event e; ++ ++ e.type = EV_SND; ++ e.code = SND_TONE; ++ e.value = freq; ++ ++ write(console_fd, &e, sizeof(struct input_event)); ++ } ++} ++ + void play_beep(beep_parms_t parms) { + int i; /* loop counter */ + + /* try to snag the console */ +- if((console_fd = open("/dev/console", O_WRONLY)) == -1) { +- fprintf(stderr, "Could not open /dev/console for writing.\n"); ++ ++ if(console_device) ++ console_fd = open(console_device, O_WRONLY); ++ else ++ if((console_fd = open("/dev/input/event0", O_WRONLY)) == -1) ++ if((console_fd = open("/dev/tty0", O_WRONLY)) == -1) ++ console_fd = open("/dev/vc/0", O_WRONLY); ++ ++ if(console_fd == -1) { ++ fprintf(stderr, "Could not open %s for writing\n", ++ console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0"); + printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */ + perror("open"); + exit(1); + } + ++ if (ioctl(console_fd, EVIOCGSND(0)) != -1) ++ console_type = BEEP_TYPE_EVDEV; ++ else ++ console_type = BEEP_TYPE_CONSOLE; ++ + /* Beep */ + for (i = 0; i < parms.reps; i++) { /* start beep */ +- if(ioctl(console_fd, KIOCSOUND, (int)(CLOCK_TICK_RATE/parms.freq)) < 0) { +- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */ +- perror("ioctl"); +- } ++ do_beep(parms.freq); + /* Look ma, I'm not ansi C compatible! */ + usleep(1000*parms.length); /* wait... */ +- ioctl(console_fd, KIOCSOUND, 0); /* stop beep */ ++ do_beep(0); + if(parms.end_delay || (i+1 < parms.reps)) + usleep(1000*parms.delay); /* wait... */ + } /* repeat. */ +@@ -295,5 +345,8 @@ int main(int argc, char **argv) { + parms = next; + } + ++ if(console_device) ++ free(console_device); ++ + return EXIT_SUCCESS; + } diff --git a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20200327.bb b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20200327.bb deleted file mode 100644 index 4c3177c05..000000000 --- a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20200327.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "display dialog boxes from shell scripts" -DESCRIPTION = "Dialog lets you to present a variety of questions \ -or display messages using dialog boxes from a shell \ -script (or any scripting language)." -HOMEPAGE = "http://invisible-island.net/dialog/" -SECTION = "console/utils" -DEPENDS = "ncurses" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" - -SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \ - " -SRC_URI[md5sum] = "f7a3c240af305b5282af590541e8f4b7" -SRC_URI[sha256sum] = "466163e8b97c2b7709d00389199add3156bd813f60ccb0335d0a30f2d4a17f99" - -# hardcoded here for use in dialog-static recipe -S = "${WORKDIR}/dialog-${PV}" - -inherit autotools-brokensep pkgconfig - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" - -PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11" - -EXTRA_OECONF = "--with-ncurses \ - --disable-rpath-hack" - -do_configure() { - gnu-configize --force - sed -i 's,${cf_ncuconfig_root}6-config,${cf_ncuconfig_root}-config,g' -i configure - sed -i 's,cf_have_ncuconfig=unknown,cf_have_ncuconfig=yes,g' -i configure - oe_runconf -} diff --git a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb new file mode 100644 index 000000000..5097788ed --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb @@ -0,0 +1,33 @@ +SUMMARY = "display dialog boxes from shell scripts" +DESCRIPTION = "Dialog lets you to present a variety of questions \ +or display messages using dialog boxes from a shell \ +script (or any scripting language)." +HOMEPAGE = "http://invisible-island.net/dialog/" +SECTION = "console/utils" +DEPENDS = "ncurses" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" + +SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \ + " +SRC_URI[md5sum] = "14bf3b33de348838ff30aff0aa9d1c2e" +SRC_URI[sha256sum] = "c9233a6c8ea33a59e2378e5146ae2bd13b519744cfdb647af7420adac5ad3866" + +# hardcoded here for use in dialog-static recipe +S = "${WORKDIR}/dialog-${PV}" + +inherit autotools-brokensep pkgconfig + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11" + +EXTRA_OECONF = "--with-ncurses \ + --disable-rpath-hack" + +do_configure() { + gnu-configize --force + sed -i 's,${cf_ncuconfig_root}6-config,${cf_ncuconfig_root}-config,g' -i configure + sed -i 's,cf_have_ncuconfig=unknown,cf_have_ncuconfig=yes,g' -i configure + oe_runconf +} diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch new file mode 100644 index 000000000..75065eb05 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch @@ -0,0 +1,38 @@ +Upstream-status: Backport +CVE: CVE-2020-29394 +From 7f5cd5404a03fa330e192084f6bdafb2dc9bdcb7 Mon Sep 17 00:00:00 2001 +From: GwanYeong Kim +Date: Sat, 28 Nov 2020 12:24:46 +0900 +Subject: [PATCH] dlt_common: Fix buffer overflow in dlt_filter_load + +A buffer overflow in the dlt_filter_load function in dlt_common.c in dlt-daemon allows arbitrary code execution via an unsafe usage of fscanf, because it does not limit the number of characters to be read in a format argument. + +Fixed: #274 + +Signed-off-by: GwanYeong Kim +--- + src/shared/dlt_common.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c +index 254f4ce4..d15b1cec 100644 +--- a/src/shared/dlt_common.c ++++ b/src/shared/dlt_common.c +@@ -404,7 +404,7 @@ DltReturnValue dlt_filter_load(DltFilter *filter, const char *filename, int verb + while (!feof(handle)) { + str1[0] = 0; + +- if (fscanf(handle, "%s", str1) != 1) ++ if (fscanf(handle, "%254s", str1) != 1) + break; + + if (str1[0] == 0) +@@ -419,7 +419,7 @@ DltReturnValue dlt_filter_load(DltFilter *filter, const char *filename, int verb + + str1[0] = 0; + +- if (fscanf(handle, "%s", str1) != 1) ++ if (fscanf(handle, "%254s", str1) != 1) + break; + + if (str1[0] == 0) diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb index f3fcee4d2..5066e76d3 100644 --- a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb +++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb @@ -19,6 +19,7 @@ SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=https \ file://0004-Modify-systemd-config-directory.patch \ file://241.patch \ file://245.patch \ + file://275.patch \ " SRCREV = "f1ac087c766827b1d0ed9c3a814b3cc052e948f2" diff --git a/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb b/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb new file mode 100644 index 000000000..68beec670 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb @@ -0,0 +1,12 @@ +SUMMARY = "inputattach configuration file" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "file://inputattach.conf" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install() { + install -Dm 0644 ${WORKDIR}/inputattach.conf ${D}${sysconfdir}/inputattach.conf +} diff --git a/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf b/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf new file mode 100644 index 000000000..86c421012 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf @@ -0,0 +1,8 @@ +# +# Configuration for inputattach +# +# Every line of this file are inputattach arguments, see 'inputattach --help'. +# An inputattach instance will be started for each element. +# +# --microsoft /dev/ttyS0 +# --baud 9600 --w8001 /dev/ttyS1 diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules new file mode 100644 index 000000000..3e0ab4018 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules @@ -0,0 +1,83 @@ +# /etc/udev/rules.d/51-these-are-not-joysticks-rm.rules +# +# This file is auto-generated. For more information: +# https://github.com/denilsonsa/udev-joystick-blacklist + +SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c30a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c30a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a0df", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a0df", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="1410", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="1410", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3043", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3043", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="31b5", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="31b5", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3997", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3997", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3f8b", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3f8b", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="51f4", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="51f4", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="5589", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="5589", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7b22", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7b22", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7f2d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7f2d", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="8090", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="8090", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9033", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9033", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9066", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9066", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="90c0", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="90c0", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f012", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f012", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f32a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f32a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f613", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f613", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f624", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f624", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b3c", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b3c", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad03", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad03", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="1e7d", ATTRS{idProduct}=="2e4a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="1e7d", ATTRS{idProduct}=="2e4a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="422d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="422d", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="001f", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="001f", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="0028", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}="" +SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="0028", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="" diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules new file mode 100644 index 000000000..24b009be2 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules @@ -0,0 +1,7 @@ +# Restore any stored calibration for the device +ACTION=="add", KERNEL=="js*", RUN+="/usr/bin/jscal-restore %E{DEVNAME}" + +# Set PS3 controller leds to the same value bluez will choose for it. +# IMPORT{parent} used because $parent did not appear to be working; we +# don't need the devpath of the js device for this so it is OK to overwrite. +ACTION=="add", KERNEL=="js*", IMPORT{parent}="DEVPATH", ATTRS{name}=="Sony PLAYSTATION(R)3 Controller", RUN+="/lib/udev/js-set-enum-leds /sys/%E{DEVPATH}/device/leds/ $number" diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service new file mode 100644 index 000000000..2ec902c09 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service @@ -0,0 +1,11 @@ +[Unit] +Description=Attach serial input devices to kernel input subsystem +After=syslog.target + +[Service] +Type=forking +ExecStart=/usr/bin/inputattachctl start +ExecStop=/usr/bin/inputattachctl stop + +[Install] +WantedBy=multi-user.target diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl new file mode 100644 index 000000000..c6da4e68f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl @@ -0,0 +1,16 @@ +#!/bin/sh + +do_start() { + grep -v '^#' /etc/inputattach.conf | while read -r line; do + inputattach --daemon $line || exit 1 + done +} + +case "$1" in + start) + do_start + ;; + stop) + killall -9 inputattach || true + ;; +esac diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb new file mode 100644 index 000000000..c4cd1d609 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb @@ -0,0 +1,83 @@ +SUMMARY = "Linux Console Project" +DESCRIPTION = "This project maintains the Linux Console tools, which include \ +utilities to test and configure joysticks, connect legacy devices to the kernel's \ +input subsystem (providing support for serial mice, touchscreens etc.), and test \ +the input event layer." +HOMEPAGE = "https://sourceforge.net/projects/linuxconsole" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "libsdl2" +DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/linuxconsole/linuxconsoletools-${PV}.tar.bz2 \ + file://51-these-are-not-joysticks-rm.rules \ + file://60-joystick.rules \ + file://inputattachctl \ + file://inputattach.service \ +" + +SRC_URI[sha256sum] = "95d112f06393806116341d593bda002c8bc44119c1538407623268fed90d8c34" + +S = "${WORKDIR}/linuxconsoletools-${PV}" + +inherit systemd pkgconfig + +EXTRA_OEMAKE = "DESTDIR=${D} PREFIX=${prefix} -C utils" +EXTRA_OEMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'SYSTEMD_SUPPORT=1', '', d)}" + +SYSTEMD_PACKAGES += "inputattach" +SYSTEMD_SERVICE_inputattach = "inputattach.service" +SYSTEMD_AUTO_ENABLE_inputattach = "enable" + +do_compile() { + oe_runmake +} + +do_install() { + oe_runmake install + + install -Dm 0644 ${WORKDIR}/51-these-are-not-joysticks-rm.rules ${D}${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules + install -Dm 0644 ${WORKDIR}/60-joystick.rules ${D}${base_libdir}/udev/rules.d/60-joystick.rules + + install -Dm 0644 ${WORKDIR}/inputattach.service ${D}${systemd_system_unitdir}/inputattach.service + install -Dm 0755 ${WORKDIR}/inputattachctl ${D}${bindir}/inputattachctl +} + +PACKAGES += "inputattach joystick" + +# We won't package any file here as we are following the same packaging schema +# Debian does and we are splitting it in 'inputattach' and 'joystick' packages. +FILES_${PN} = "" + +FILES_inputattach += "\ + ${bindir}/inputattach \ + ${bindir}/inputattachctl \ + ${systemd_system_unitdir}/inputattach.service \ +" + +FILES_joystick += "\ + ${bindir}/evdev-joystick \ + ${bindir}/ffcfstress \ + ${bindir}/ffmvforce \ + ${bindir}/ffset \ + ${bindir}/fftest \ + ${bindir}/jscal \ + ${bindir}/jscal-restore \ + ${bindir}/jscal-store \ + ${bindir}/jstest \ + ${datadir}/joystick \ + ${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules \ + ${base_libdir}/udev/js-set-enum-leds \ + ${base_libdir}/udev/rules.d/60-joystick.rules \ + ${base_libdir}/udev/rules.d/80-stelladaptor-joystick.rules \ +" + +RDEPENDS_inputattach += "inputattach-config" + +RDEPENDS_joystick += "\ + bash \ + gawk \ +" diff --git a/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb b/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb index c76e0f69e..a82f10b91 100644 --- a/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb +++ b/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb @@ -8,7 +8,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" DEPENDS = "liblockfile" -SRC_URI = "http://ftp.de.debian.org/debian/pool/main/l/${BPN}/${BPN}_${PV}.tar.gz" +SRC_URI = "${DEBIAN_MIRROR}/main/l/${BPN}/${BPN}_${PV}.tar.gz" SRC_URI[md5sum] = "4eb83bdf88016db836b7cc09591fb0f3" SRC_URI[sha256sum] = "a42995a4b97e6188efc90fcc1a761163c4b2cff5c81b936f85c84301ddb05ce6" -- cgit v1.2.3