summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-01-20 22:12:10 +0100
committerLudovic Courtès <ludo@gnu.org>2019-01-20 22:12:10 +0100
commit3e2d4e69c340c3520f546f8c7e21e52383058d1c (patch)
tree0bc92edb753cfdf9a9e7ef763ebc19f0cd2d528c /gnu/packages/patches
parentad79ae7e2d7505292b11e87302b08f4db0f934e9 (diff)
parente5ad2cdf172eecc7edef37a500593b1941af013c (diff)
downloadguix-3e2d4e69c340c3520f546f8c7e21e52383058d1c.tar.gz
Merge branch 'master' into staging
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
+