summaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/kmscon-runtime-keymap-switch.patch229
-rw-r--r--gnu/packages/patches/kodi-skip-test-449.patch53
-rw-r--r--gnu/packages/patches/libssh-hostname-parser-bug.patch17
-rw-r--r--gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch40
-rw-r--r--gnu/packages/patches/openssh-CVE-2018-20685.patch44
5 files changed, 366 insertions, 17 deletions
diff --git a/gnu/packages/patches/kmscon-runtime-keymap-switch.patch b/gnu/packages/patches/kmscon-runtime-keymap-switch.patch
new file mode 100644
index 0000000000..656c76fa40
--- /dev/null
+++ b/gnu/packages/patches/kmscon-runtime-keymap-switch.patch
@@ -0,0 +1,229 @@
+From 360d44d67e7be46108bec982ff2e79b89f04a9a3 Mon Sep 17 00:00:00 2001
+From: Mathieu Othacehe <m.othacehe@gmail.com>
+Date: Thu, 15 Nov 2018 14:34:40 +0900
+Subject: [PATCH] add runtime keymap switch support.
+
+---
+ src/pty.c | 23 ++++++++++-
+ src/uterm_input.c | 2 +
+ src/uterm_input_internal.h | 5 +++
+ src/uterm_input_uxkb.c | 83 ++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 111 insertions(+), 2 deletions(-)
+
+diff --git a/src/pty.c b/src/pty.c
+index 1443f4a..f64cb5b 100644
+--- a/src/pty.c
++++ b/src/pty.c
+@@ -46,6 +46,8 @@
+
+ #define KMSCON_NREAD 16384
+
++#define INPUT_KEYMAP_UPDATE_FILE "/tmp/kmscon-%d-keymap-update"
++
+ struct kmscon_pty {
+ unsigned long ref;
+ struct ev_eloop *eloop;
+@@ -241,9 +243,22 @@ static bool pty_is_open(struct kmscon_pty *pty)
+ return pty->fd >= 0;
+ }
+
++static int kmscon_keymap_update(pid_t pid)
++{
++ char *file;
++ int ret;
++
++ ret = asprintf(&file, INPUT_KEYMAP_UPDATE_FILE, pid);
++ if (ret < 0)
++ return ret;
++
++ return setenv("KEYMAP_UPDATE", file, 1);
++}
++
+ static void __attribute__((noreturn))
+ exec_child(const char *term, const char *colorterm, char **argv,
+- const char *seat, const char *vtnr, bool env_reset)
++ const char *seat, const char *vtnr, bool env_reset,
++ pid_t kmscon_pid)
+ {
+ char **env;
+ char **def_argv;
+@@ -277,6 +292,8 @@ exec_child(const char *term, const char *colorterm, char **argv,
+ if (vtnr)
+ setenv("XDG_VTNR", vtnr, 1);
+
++ kmscon_keymap_update(kmscon_pid);
++
+ execve(argv[0], argv, environ);
+
+ log_err("failed to exec child %s: %m", argv[0]);
+@@ -383,12 +400,14 @@ static int pty_spawn(struct kmscon_pty *pty, int master,
+ unsigned short width, unsigned short height)
+ {
+ pid_t pid;
++ pid_t kmscon_pid;
+ struct winsize ws;
+
+ memset(&ws, 0, sizeof(ws));
+ ws.ws_col = width;
+ ws.ws_row = height;
+
++ kmscon_pid = getpid();
+ pid = fork();
+ switch (pid) {
+ case -1:
+@@ -397,7 +416,7 @@ static int pty_spawn(struct kmscon_pty *pty, int master,
+ case 0:
+ setup_child(master, &ws);
+ exec_child(pty->term, pty->colorterm, pty->argv, pty->seat,
+- pty->vtnr, pty->env_reset);
++ pty->vtnr, pty->env_reset, kmscon_pid);
+ exit(EXIT_FAILURE);
+ default:
+ log_debug("forking child %d", pid);
+diff --git a/src/uterm_input.c b/src/uterm_input.c
+index 6fcbc4b..990a09d 100644
+--- a/src/uterm_input.c
++++ b/src/uterm_input.c
+@@ -178,6 +178,8 @@ static void input_new_dev(struct uterm_input *input,
+ if (ret)
+ goto err_rcodepoints;
+
++ uxkb_dev_keymap_update(dev);
++
+ if (input->awake > 0) {
+ ret = input_wake_up_dev(dev);
+ if (ret)
+diff --git a/src/uterm_input_internal.h b/src/uterm_input_internal.h
+index 04e6cc9..ec44459 100644
+--- a/src/uterm_input_internal.h
++++ b/src/uterm_input_internal.h
+@@ -39,6 +39,8 @@
+ #include "shl_misc.h"
+ #include "uterm_input.h"
+
++#define INPUT_KEYMAP_UPDATE_FILE "/tmp/kmscon-%d-keymap-update"
++
+ enum uterm_input_device_capability {
+ UTERM_DEVICE_HAS_KEYS = (1 << 0),
+ UTERM_DEVICE_HAS_LEDS = (1 << 1),
+@@ -62,6 +64,8 @@ struct uterm_input_dev {
+
+ bool repeating;
+ struct ev_timer *repeat_timer;
++ struct ev_fd *fd_update;
++ int rupdate_fd;
+ };
+
+ struct uterm_input {
+@@ -95,6 +99,7 @@ void uxkb_desc_destroy(struct uterm_input *input);
+
+ int uxkb_dev_init(struct uterm_input_dev *dev);
+ void uxkb_dev_destroy(struct uterm_input_dev *dev);
++int uxkb_dev_keymap_update(struct uterm_input_dev *dev);
+ int uxkb_dev_process(struct uterm_input_dev *dev,
+ uint16_t key_state,
+ uint16_t code);
+diff --git a/src/uterm_input_uxkb.c b/src/uterm_input_uxkb.c
+index 925c755..4760972 100644
+--- a/src/uterm_input_uxkb.c
++++ b/src/uterm_input_uxkb.c
+@@ -31,6 +31,9 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+ #include <xkbcommon/xkbcommon.h>
+ #include "shl_hook.h"
+ #include "shl_llog.h"
+@@ -178,6 +181,86 @@ static void timer_event(struct ev_timer *timer, uint64_t num, void *data)
+ shl_hook_call(dev->input->hook, dev->input, &dev->repeat_event);
+ }
+
++static void uxkb_keymap_update_handler(struct ev_fd *fd, int mask, void *data)
++{
++ struct uterm_input_dev *dev = data;
++ char in;
++ char keymap[3][255];
++ int pos = 0;
++ int curr_keymap = 0;
++ int ret;
++ char *model, *layout, *variant;
++
++ if (!(mask & EV_READABLE))
++ return;
++
++ memset(keymap, 0, sizeof(keymap));
++
++ model = keymap[0];
++ layout = keymap[1];
++ variant = keymap[2];
++
++ do {
++ ret = read(dev->rupdate_fd, &in, sizeof(in));
++ if (ret <= 0)
++ break;
++
++ keymap[curr_keymap][pos++] = in;
++
++ if (in == '\0') {
++ curr_keymap++;
++ pos = 0;
++ }
++ } while (1);
++
++ llog_info(dev->input, "HANDLER CALLED %s|%s|%s\n",
++ model, layout, variant);
++ uxkb_desc_init(dev->input, model, layout, variant, NULL, NULL);
++
++ dev->state = xkb_state_new(dev->input->keymap);
++ if (!dev->state) {
++ llog_error(dev->input, "cannot create XKB state");
++ return;
++ }
++}
++
++int uxkb_dev_keymap_update(struct uterm_input_dev *dev)
++{
++ int ret;
++ char *file;
++ int pid = getpid();
++
++ ret = asprintf(&file, INPUT_KEYMAP_UPDATE_FILE, pid);
++ if (ret < 0)
++ return ret;
++
++ ret = mkfifo(file, S_IRWXU);
++ if (ret < 0) {
++ llog_warn(dev->input, "could not open fifo");
++ return -EFAULT;
++ }
++ dev->rupdate_fd = open(file, O_RDONLY | O_NONBLOCK);
++ if (dev->rupdate_fd < 0) {
++ llog_warn(dev->input, "cannot open file %s (%d): %m",
++ file, errno);
++ return -EFAULT;
++ }
++
++ setenv("KEYMAP_UPDATE", file, 1);
++
++ ret = ev_eloop_new_fd(dev->input->eloop, &dev->fd_update,
++ dev->rupdate_fd, EV_READABLE,
++ uxkb_keymap_update_handler, dev);
++ if (ret) {
++ llog_error(dev->input, "could not init keymap update");
++ close(dev->rupdate_fd);
++ dev->rupdate_fd = -1;
++ return ret;
++ }
++
++ return 0;
++}
++
+ int uxkb_dev_init(struct uterm_input_dev *dev)
+ {
+ int ret;
+--
+2.17.1
+
diff --git a/gnu/packages/patches/kodi-skip-test-449.patch b/gnu/packages/patches/kodi-skip-test-449.patch
new file mode 100644
index 0000000000..a418239a7c
--- /dev/null
+++ b/gnu/packages/patches/kodi-skip-test-449.patch
@@ -0,0 +1,53 @@
+This test fails regularly between 18.0rc3 and 18.0rc5.2
+
+449/520 Test #449: TestWebServer.CanHeadFile................................................***Failed 0.90 sec
+Note: Google Test filter = TestWebServer.CanHeadFile
+[==========] Running 1 test from 1 test case.
+[----------] Global test environment set-up.
+[----------] 1 test from TestWebServer
+[ RUN ] TestWebServer.CanHeadFile
+/tmp/guix-build-kodi-18.0rc5.2.drv-0/kodi-18.0rc5.2-checkout/xbmc/network/test/TestWebServer.cpp:156: Failure
+ Expected: "4"
+To be equal to: httpHeader.GetValue("Content-Length").c_str()
+ Which is: "0"
+[ FAILED ] TestWebServer.CanHeadFile (6 ms)
+[----------] 1 test from TestWebServer (6 ms total)
+
+[----------] Global test environment tear-down
+[==========] 1 test from 1 test case ran. (635 ms total)
+[ PASSED ] 0 tests.
+[ FAILED ] 1 test, listed below:
+[ FAILED ] TestWebServer.CanHeadFile
+
+---
+ xbmc/network/test/TestWebServer.cpp | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/xbmc/network/test/TestWebServer.cpp b/xbmc/network/test/TestWebServer.cpp
+index a87d9f4..b2240f4 100644
+--- a/xbmc/network/test/TestWebServer.cpp
++++ b/xbmc/network/test/TestWebServer.cpp
+@@ -520,13 +520,13 @@ TEST_F(TestWebServer, CanNotHeadNonExistingFile)
+ ASSERT_FALSE(curl.Exists(CURL(GetUrlOfTestFile("file_does_not_exist"))));
+ }
+
+-TEST_F(TestWebServer, CanHeadFile)
+-{
+- CCurlFile curl;
+- ASSERT_TRUE(curl.Exists(CURL(GetUrlOfTestFile(TEST_FILES_HTML))));
+-
+- CheckHtmlTestFileResponse(curl);
+-}
++//TEST_F(TestWebServer, CanHeadFile)
++//{
++// CCurlFile curl;
++// ASSERT_TRUE(curl.Exists(CURL(GetUrlOfTestFile(TEST_FILES_HTML))));
++//
++// CheckHtmlTestFileResponse(curl);
++//}
+
+ TEST_F(TestWebServer, CanNotGetNonExistingFile)
+ {
+--
+2.20.1
+
diff --git a/gnu/packages/patches/libssh-hostname-parser-bug.patch b/gnu/packages/patches/libssh-hostname-parser-bug.patch
deleted file mode 100644
index de2336e86d..0000000000
--- a/gnu/packages/patches/libssh-hostname-parser-bug.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-It does not handle the case for the unsupported opcode (-1)
-which would cause a segfault when accessing the "seen" array.
-
-diff --git a/src/config.c b/src/config.c
-index c5313ec8..72e07639 100644
---- a/src/config.c
-+++ b/src/config.c
-@@ -218,7 +218,8 @@ static int ssh_config_parse_line(ssh_session session, const char *line,
- }
-
- opcode = ssh_config_get_opcode(keyword);
-- if (*parsing == 1 && opcode != SOC_HOST) {
-+ if (*parsing == 1 && opcode != SOC_HOST &&
-+ opcode > SOC_UNSUPPORTED && opcode < SOC_END) {
- if (seen[opcode] != 0) {
- return 0;
- }
diff --git a/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch b/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch
new file mode 100644
index 0000000000..7792f8d1bf
--- /dev/null
+++ b/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch
@@ -0,0 +1,40 @@
+https://github.com/opencv/opencv_contrib/commit/8aaa91c3dc835690477d7777e66948dbf5a87edc.patch
+
+From 8aaa91c3dc835690477d7777e66948dbf5a87edc Mon Sep 17 00:00:00 2001
+From: Tomoaki Teshima <tomoaki.teshima@gmail.com>
+Date: Mon, 5 Nov 2018 20:32:23 +0900
+Subject: [PATCH] avoid test failing on Aarch64 * loosen the threshold in
+ Rgbd_Normals.compute * make the minimum tvec larger in
+ RGBD_Odometry_Rgbd.algorithmic
+
+---
+ modules/rgbd/test/test_normal.cpp | 2 +-
+ modules/rgbd/test/test_odometry.cpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/rgbd/test/test_normal.cpp b/modules/rgbd/test/test_normal.cpp
+index f2233553a7..ed54f2cd98 100644
+--- a/modules/rgbd/test/test_normal.cpp
++++ b/modules/rgbd/test/test_normal.cpp
+@@ -211,7 +211,7 @@ class CV_RgbdNormalsTest: public cvtest::BaseTest
+ std::cout << std::endl << "*** FALS" << std::endl;
+ errors[0][0] = 0.006f;
+ errors[0][1] = 0.03f;
+- errors[1][0] = 0.00008f;
++ errors[1][0] = 0.0001f;
+ errors[1][1] = 0.02f;
+ break;
+ case 1:
+diff --git a/modules/rgbd/test/test_odometry.cpp b/modules/rgbd/test/test_odometry.cpp
+index 62b654a1ec..f5a2084504 100644
+--- a/modules/rgbd/test/test_odometry.cpp
++++ b/modules/rgbd/test/test_odometry.cpp
+@@ -213,7 +213,7 @@ void CV_OdometryTest::generateRandomTransformation(Mat& rvec, Mat& tvec)
+ normalize(rvec, rvec, rng.uniform(0.007f, maxRotation));
+
+ randu(tvec, Scalar(-1000), Scalar(1000));
+- normalize(tvec, tvec, rng.uniform(0.007f, maxTranslation));
++ normalize(tvec, tvec, rng.uniform(0.008f, maxTranslation));
+ }
+
+ void CV_OdometryTest::run(int)
diff --git a/gnu/packages/patches/openssh-CVE-2018-20685.patch b/gnu/packages/patches/openssh-CVE-2018-20685.patch
new file mode 100644
index 0000000000..463c08a9d4
--- /dev/null
+++ b/gnu/packages/patches/openssh-CVE-2018-20685.patch
@@ -0,0 +1,44 @@
+Fix CVE-2018-20685:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20685
+
+Patch copied from upstream source repository:
+
+https://github.com/openssh/openssh-portable/commit/6010c0303a422a9c5fa8860c061bf7105eb7f8b2
+
+From 6010c0303a422a9c5fa8860c061bf7105eb7f8b2 Mon Sep 17 00:00:00 2001
+From: "djm@openbsd.org" <djm@openbsd.org>
+Date: Fri, 16 Nov 2018 03:03:10 +0000
+Subject: [PATCH] upstream: disallow empty incoming filename or ones that refer
+ to the
+
+current directory; based on report/patch from Harry Sintonen
+
+OpenBSD-Commit-ID: f27651b30eaee2df49540ab68d030865c04f6de9
+---
+ scp.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/scp.c b/scp.c
+index 60682c68..4f3fdcd3 100644
+--- a/scp.c
++++ b/scp.c
+#@@ -1,4 +1,4 @@
+#-/* $OpenBSD: scp.c,v 1.197 2018/06/01 04:31:48 dtucker Exp $ */
+#+/* $OpenBSD: scp.c,v 1.198 2018/11/16 03:03:10 djm Exp $ */
+# /*
+# * scp - secure remote copy. This is basically patched BSD rcp which
+# * uses ssh to do the data transfer (instead of using rcmd).
+@@ -1106,7 +1106,8 @@ sink(int argc, char **argv)
+ SCREWUP("size out of range");
+ size = (off_t)ull;
+
+- if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) {
++ if (*cp == '\0' || strchr(cp, '/') != NULL ||
++ strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) {
+ run_err("error: unexpected filename: %s", cp);
+ exit(1);
+ }
+--
+2.20.1
+