summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended')
-rw-r--r--meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch60
-rw-r--r--meta/recipes-extended/libsolv/libsolv/0002-Fixes-to-internal-fopencookie-implementation.patch104
-rw-r--r--meta/recipes-extended/libsolv/libsolv_0.6.26.bb6
3 files changed, 137 insertions, 33 deletions
diff --git a/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch b/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch
index 851fe57569..a575d0ebce 100644
--- a/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch
+++ b/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch
@@ -1,25 +1,24 @@
1From 0a8e50f7322832efdaf33da87839fbba05a755de Mon Sep 17 00:00:00 2001 1From 4d9b6ec30b78d00ead0a22eb5d047dcdba37e99c Mon Sep 17 00:00:00 2001
2From: "Maxin B. John" <maxin.john@intel.com> 2From: =?UTF-8?q?Neal=20Gompa=20=28=E3=83=8B=E3=83=BC=E3=83=AB=E3=83=BB?=
3Date: Mon, 21 Nov 2016 11:46:00 +0200 3 =?UTF-8?q?=E3=82=B3=E3=82=99=E3=83=B3=E3=83=8F=E3=82=9A=29?=
4Subject: [PATCH] Add fallback fopencookie() implementation 4 <ngompa13@gmail.com>
5MIME-Version: 1.0 5Date: Wed, 11 Nov 2015 20:32:17 -0500
6Content-Type: text/plain; charset=UTF-8 6Subject: [PATCH 1/2] Add fallback fopencookie() implementation
7Content-Transfer-Encoding: 8bit
8 7
9In environments where neither fopencookie() nor funopen() 8In environments where neither fopencookie() nor funopen()
10are implemented, we need to provide a suitable implementation 9are implemented, we need to provide a suitable implementation
11of fopencookie() that we can use. 10of fopencookie() that we can use.
12 11
13Upstream-Status: Denied [ https://github.com/openSUSE/libsolv/pull/112 ] 12Alex Kanavin: rebased CMakeLists.txt change to apply to latest upstream code.
14 13
15Signed-off-by: Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com> 14Upstream-Status: Denied [https://github.com/openSUSE/libsolv/pull/112]
16Signed-off-by: Maxin B. John <maxin.john@intel.com> 15Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
17--- 16---
18 ext/CMakeLists.txt | 7 ++ 17 ext/CMakeLists.txt | 7 ++
19 ext/solv_xfopen.c | 10 +-- 18 ext/solv_xfopen.c | 10 +--
20 ext/solv_xfopen_fallback_fopencookie.c | 124 +++++++++++++++++++++++++++++++++ 19 ext/solv_xfopen_fallback_fopencookie.c | 123 +++++++++++++++++++++++++++++++++
21 ext/solv_xfopen_fallback_fopencookie.h | 28 ++++++++ 20 ext/solv_xfopen_fallback_fopencookie.h | 28 ++++++++
22 4 files changed, 165 insertions(+), 4 deletions(-) 21 4 files changed, 164 insertions(+), 4 deletions(-)
23 create mode 100644 ext/solv_xfopen_fallback_fopencookie.c 22 create mode 100644 ext/solv_xfopen_fallback_fopencookie.c
24 create mode 100644 ext/solv_xfopen_fallback_fopencookie.h 23 create mode 100644 ext/solv_xfopen_fallback_fopencookie.h
25 24
@@ -85,17 +84,17 @@ index b0421bf..31345dd 100644
85 84
86diff --git a/ext/solv_xfopen_fallback_fopencookie.c b/ext/solv_xfopen_fallback_fopencookie.c 85diff --git a/ext/solv_xfopen_fallback_fopencookie.c b/ext/solv_xfopen_fallback_fopencookie.c
87new file mode 100644 86new file mode 100644
88index 0000000..89426a9 87index 0000000..0ce2571
89--- /dev/null 88--- /dev/null
90+++ b/ext/solv_xfopen_fallback_fopencookie.c 89+++ b/ext/solv_xfopen_fallback_fopencookie.c
91@@ -0,0 +1,124 @@ 90@@ -0,0 +1,123 @@
92+/* 91+/*
93+ * Provides a very limited fopencookie() for environments with a libc 92+ * Provides a very limited fopencookie() for environments with a libc
94+ * that lacks it. 93+ * that lacks it.
95+ * 94+ *
96+ * Authors: zhasha & nsz 95+ * Author: zhasha
97+ * Modified for libsolv by Neal Gompa 96+ * Modified for libsolv by Neal Gompa
98+ * 97+ *
99+ * This program is licensed under the BSD license, read LICENSE.BSD 98+ * This program is licensed under the BSD license, read LICENSE.BSD
100+ * for further information. 99+ * for further information.
101+ * 100+ *
@@ -124,7 +123,7 @@ index 0000000..89426a9
124+{ 123+{
125+ struct ctx *ctx = arg; 124+ struct ctx *ctx = arg;
126+ ssize_t r; 125+ ssize_t r;
127+ size_t n, k; 126+ size_t n;
128+ 127+
129+ pthread_detach(pthread_self()); 128+ pthread_detach(pthread_self());
130+ 129+
@@ -138,18 +137,17 @@ index 0000000..89426a9
138+ } 137+ }
139+ if (r == 0) { break; } 138+ if (r == 0) { break; }
140+ 139+
141+ n = r, k = 0;
142+ while (n > 0) { 140+ while (n > 0) {
143+ r = ctx->io.write ? 141+ r = ctx->io.write ?
144+ (ctx->io.write)(ctx->cookie, ctx->buf + k, n) : 142+ (ctx->io.write)(ctx->cookie, ctx->buf + ((size_t)r - n), n) :
145+ write(ctx->fd, ctx->buf + k, n); 143+ write(ctx->fd, ctx->buf + ((size_t)r - n), n);
146+ if (r < 0) { 144+ if (r < 0) {
147+ if (errno != EINTR) { break; } 145+ if (errno != EINTR) { break; }
148+ continue; 146+ continue;
149+ } 147+ }
150+ if (r == 0) { break; } 148+ if (r == 0) { break; }
151+ 149+
152+ n -= r, k += r; 150+ n -= (size_t)r;
153+ } 151+ }
154+ if (n > 0) { break; } 152+ if (n > 0) { break; }
155+ } 153+ }
@@ -169,8 +167,8 @@ index 0000000..89426a9
169+ 167+
170+ switch (mode[0]) { 168+ switch (mode[0]) {
171+ case 'a': 169+ case 'a':
172+ case 'w': wr = 1; break;
173+ case 'r': rd = 1; break; 170+ case 'r': rd = 1; break;
171+ case 'w': wr = 1; break;
174+ default: 172+ default:
175+ errno = EINVAL; 173+ errno = EINVAL;
176+ return NULL; 174+ return NULL;
@@ -215,20 +213,20 @@ index 0000000..89426a9
215+} 213+}
216diff --git a/ext/solv_xfopen_fallback_fopencookie.h b/ext/solv_xfopen_fallback_fopencookie.h 214diff --git a/ext/solv_xfopen_fallback_fopencookie.h b/ext/solv_xfopen_fallback_fopencookie.h
217new file mode 100644 215new file mode 100644
218index 0000000..7223e3f 216index 0000000..6a7bfee
219--- /dev/null 217--- /dev/null
220+++ b/ext/solv_xfopen_fallback_fopencookie.h 218+++ b/ext/solv_xfopen_fallback_fopencookie.h
221@@ -0,0 +1,28 @@ 219@@ -0,0 +1,28 @@
222+/* 220+/*
223+ * Provides a very limited fopencookie() for environments with a libc 221+ * Provides a very limited fopencookie() for environments with a libc
224+ * that lacks it. 222+ * that lacks it.
225+ * 223+ *
226+ * Authors: zhasha & nsz 224+ * Author: zhasha
227+ * Modified for libsolv by Neal Gompa 225+ * Modified for libsolv by Neal Gompa
228+ * 226+ *
229+ * This program is licensed under the BSD license, read LICENSE.BSD 227+ * This program is licensed under the BSD license, read LICENSE.BSD
230+ * for further information. 228+ * for further information.
231+ * 229+ *
232+ */ 230+ */
233+ 231+
234+#ifndef SOLV_XFOPEN_FALLBACK_FOPENCOOKIE_H 232+#ifndef SOLV_XFOPEN_FALLBACK_FOPENCOOKIE_H
@@ -248,5 +246,5 @@ index 0000000..7223e3f
248+ 246+
249+#endif 247+#endif
250-- 248--
2512.4.0 2492.11.0
252 250
diff --git a/meta/recipes-extended/libsolv/libsolv/0002-Fixes-to-internal-fopencookie-implementation.patch b/meta/recipes-extended/libsolv/libsolv/0002-Fixes-to-internal-fopencookie-implementation.patch
new file mode 100644
index 0000000000..efb4e3ad7e
--- /dev/null
+++ b/meta/recipes-extended/libsolv/libsolv/0002-Fixes-to-internal-fopencookie-implementation.patch
@@ -0,0 +1,104 @@
1From 99b10cdf6a0f8a24e1670c1813b1d9563ae3f5b5 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Neal=20Gompa=20=28=E3=83=8B=E3=83=BC=E3=83=AB=E3=83=BB?=
3 =?UTF-8?q?=E3=82=B3=E3=82=99=E3=83=B3=E3=83=8F=E3=82=9A=29?=
4 <ngompa13@gmail.com>
5Date: Mon, 23 Nov 2015 18:19:41 -0500
6Subject: [PATCH 2/2] Fixes to internal fopencookie() implementation
7
8Credits to the fixes go to nsz on #musl on Freenode,
9who gloriously fixed the implementation such that
10the tests all pass.
11
12Upstream-Status: Denied [https://github.com/openSUSE/libsolv/pull/112]
13Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
14---
15 ext/solv_xfopen_fallback_fopencookie.c | 19 ++++++++++---------
16 ext/solv_xfopen_fallback_fopencookie.h | 10 +++++-----
17 2 files changed, 15 insertions(+), 14 deletions(-)
18
19diff --git a/ext/solv_xfopen_fallback_fopencookie.c b/ext/solv_xfopen_fallback_fopencookie.c
20index 0ce2571..89426a9 100644
21--- a/ext/solv_xfopen_fallback_fopencookie.c
22+++ b/ext/solv_xfopen_fallback_fopencookie.c
23@@ -1,10 +1,10 @@
24-/*
25+/*
26 * Provides a very limited fopencookie() for environments with a libc
27 * that lacks it.
28- *
29- * Author: zhasha
30+ *
31+ * Authors: zhasha & nsz
32 * Modified for libsolv by Neal Gompa
33- *
34+ *
35 * This program is licensed under the BSD license, read LICENSE.BSD
36 * for further information.
37 *
38@@ -33,7 +33,7 @@ static void *proxy(void *arg)
39 {
40 struct ctx *ctx = arg;
41 ssize_t r;
42- size_t n;
43+ size_t n, k;
44
45 pthread_detach(pthread_self());
46
47@@ -47,17 +47,18 @@ static void *proxy(void *arg)
48 }
49 if (r == 0) { break; }
50
51+ n = r, k = 0;
52 while (n > 0) {
53 r = ctx->io.write ?
54- (ctx->io.write)(ctx->cookie, ctx->buf + ((size_t)r - n), n) :
55- write(ctx->fd, ctx->buf + ((size_t)r - n), n);
56+ (ctx->io.write)(ctx->cookie, ctx->buf + k, n) :
57+ write(ctx->fd, ctx->buf + k, n);
58 if (r < 0) {
59 if (errno != EINTR) { break; }
60 continue;
61 }
62 if (r == 0) { break; }
63
64- n -= (size_t)r;
65+ n -= r, k += r;
66 }
67 if (n > 0) { break; }
68 }
69@@ -77,8 +78,8 @@ FILE *fopencookie(void *cookie, const char *mode, struct cookie_io_functions_t i
70
71 switch (mode[0]) {
72 case 'a':
73- case 'r': rd = 1; break;
74 case 'w': wr = 1; break;
75+ case 'r': rd = 1; break;
76 default:
77 errno = EINVAL;
78 return NULL;
79diff --git a/ext/solv_xfopen_fallback_fopencookie.h b/ext/solv_xfopen_fallback_fopencookie.h
80index 6a7bfee..7223e3f 100644
81--- a/ext/solv_xfopen_fallback_fopencookie.h
82+++ b/ext/solv_xfopen_fallback_fopencookie.h
83@@ -1,13 +1,13 @@
84-/*
85+/*
86 * Provides a very limited fopencookie() for environments with a libc
87 * that lacks it.
88- *
89- * Author: zhasha
90+ *
91+ * Authors: zhasha & nsz
92 * Modified for libsolv by Neal Gompa
93- *
94+ *
95 * This program is licensed under the BSD license, read LICENSE.BSD
96 * for further information.
97- *
98+ *
99 */
100
101 #ifndef SOLV_XFOPEN_FALLBACK_FOPENCOOKIE_H
102--
1032.11.0
104
diff --git a/meta/recipes-extended/libsolv/libsolv_0.6.26.bb b/meta/recipes-extended/libsolv/libsolv_0.6.26.bb
index c90f5834f5..42d63aeb13 100644
--- a/meta/recipes-extended/libsolv/libsolv_0.6.26.bb
+++ b/meta/recipes-extended/libsolv/libsolv_0.6.26.bb
@@ -8,8 +8,10 @@ LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8"
8DEPENDS = "expat zlib rpm" 8DEPENDS = "expat zlib rpm"
9 9
10SRC_URI = "git://github.com/openSUSE/libsolv.git \ 10SRC_URI = "git://github.com/openSUSE/libsolv.git \
11 " 11 "
12SRC_URI_append_libc-musl = " file://0001-Add-fallback-fopencookie-implementation.patch" 12SRC_URI_append_libc-musl = " file://0001-Add-fallback-fopencookie-implementation.patch \
13 file://0002-Fixes-to-internal-fopencookie-implementation.patch \
14 "
13 15
14SRCREV = "ba32f8286d3deec6faaabc79762a4760e9af0a07" 16SRCREV = "ba32f8286d3deec6faaabc79762a4760e9af0a07"
15UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" 17UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"