summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2020-12-12 01:27:59 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-12-12 01:28:21 +0300
commit8fc454f9beebdd347403145c991697019a593cff (patch)
tree8cf3da68cb51c21d0989a7fb81249229e70b6fc8 /meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch
parent12e5ffbbbaa05790d387750fadff4a2bf74e4f93 (diff)
downloadopenbmc-8fc454f9beebdd347403145c991697019a593cff.tar.xz
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 <geissonator@yahoo.com> Change-Id: I8371eb789fa288193da895bd51ce2160194809d8
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch')
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch155
1 files changed, 155 insertions, 0 deletions
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 <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <linux/kd.h>
++#include <linux/input.h>
+
+ /* 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;
+ }