From bc6f77df76b6f0efc31b299bfa7971d3eab067ef Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Tue, 2 Oct 2018 13:10:17 +0000 Subject: android-tools: upgrade to 9.0.0-r10 * build it with ninja like Arch does in: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/android-tools&id=21f3ef02af9b2252129bee4d11b7740ce4b1d88f and import the patches from Arch * import few more patches from debian, Nonnull.patch, stdatomic.patch from https://salsa.debian.org/android-tools-team/android-platform-system-core/tree/e80c68d02a2fde9f351ac26e9feb984da1e8841a/debian/patches * and switch to boringssl, because with openssl10 it cannot be really used by anything, because openssl.cnf from openssl10-native will conflict with openssl.cnf installed to RSS by openssl-native, e.g.: DEBUG: Executing python function sstate_task_prefunc DEBUG: Python function sstate_task_prefunc finished DEBUG: Executing python function extend_recipe_sysroot NOTE: Direct dependencies are ['virtual:native:/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.3.bb:do_populate_sysroot', '/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/quilt/quilt-native_0.65.bb:do_populate_sysroot', '/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/gcc/gcc-cross_8.2.bb:do_populate_sysroot', '/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/gcc/gcc-runtime_8.2.bb:do_populate_sysroot', '/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-core/glibc/glibc_2.28.bb:do_populate_sysroot', 'virtual:native:/OE/build/owpb/webos-ports/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb:do_populate_sysroot', 'virtual:native:/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/rpm/rpm_4.14.2.bb:do_populate_sysroot', 'virtual:native:/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb:do_populate_sysroot', 'virtual:native:/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot'] ERROR: Error executing a python function in exec_python_func() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: 0001: *** 0002:extend_recipe_sysroot(d) 0003: File: '/OE/build/owpb/webos-ports/openembedded-core/meta/classes/staging.bbclass', lineno: 553, function: extend_recipe_sysroot 0549: dest = newmanifest[l] 0550: if l.endswith("/"): 0551: staging_copydir(l, targetdir, dest, seendirs) 0552: continue *** 0553: staging_copyfile(l, targetdir, dest, postinsts, seendirs) 0554: 0555: bb.note("Installed into sysroot: %s" % str(msg_adding)) 0556: bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists)) 0557: File: '/OE/build/owpb/webos-ports/openembedded-core/meta/classes/staging.bbclass', lineno: 151, function: staging_copyfile 0147: os.symlink(linkto, dest) 0148: #bb.warn(c) 0149: else: 0150: try: *** 0151: os.link(c, dest) 0152: except OSError as err: 0153: if err.errno == errno.EXDEV: 0154: bb.utils.copyfile(c, dest) 0155: else: Exception: FileExistsError: [Errno 17] File exists: '/OE/build/owpb/webos-ports/tmp-glibc/sysroots-components/x86_64/openssl-native/etc/ssl/openssl.cnf' -> '/OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/android-system-image-tissot/20180914-22-r0/recipe-sysroot-native/etc/ssl/openssl.cnf' DEBUG: Python function extend_recipe_sysroot finished ERROR: Function failed: extend_recipe_sysroot Signed-off-by: Martin Jansa --- .../core/0005-adb-add-base64-implementation.patch | 348 --------------------- 1 file changed, 348 deletions(-) delete mode 100644 meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch (limited to 'meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch') diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch deleted file mode 100644 index fcd4ae2388..0000000000 --- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch +++ /dev/null @@ -1,348 +0,0 @@ -From 753bcb5971401b82fb2e6197d31c9e386f6d0392 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 15 Sep 2017 15:46:38 -0700 -Subject: [PATCH] adb: add base64 implementation - -musl needs it - -Signed-off-by: Khem Raj ---- - adb/adb_auth_client.c | 2 +- - adb/base64.c | 315 ++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 316 insertions(+), 1 deletion(-) - create mode 100644 adb/base64.c - -diff --git a/adb/adb_auth_client.c b/adb/adb_auth_client.c -index 55e9dcad19..104b413b8b 100644 ---- a/adb/adb_auth_client.c -+++ b/adb/adb_auth_client.c -@@ -75,7 +75,7 @@ static void read_keys(const char *file, struct listnode *list) - if (sep) - *sep = '\0'; - -- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4); -+ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4); - if (ret != sizeof(key->key)) { - D("%s: Invalid base64 data ret=%d\n", file, ret); - free(key); -diff --git a/adb/base64.c b/adb/base64.c -new file mode 100644 -index 0000000000..95da284d0d ---- /dev/null -+++ b/adb/base64.c -@@ -0,0 +1,315 @@ -+/* -+ * Copyright (c) 1996-1999 by Internet Software Consortium. -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS -+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE -+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL -+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -+ * SOFTWARE. -+ */ -+ -+/* -+ * Portions Copyright (c) 1995 by International Business Machines, Inc. -+ * -+ * International Business Machines, Inc. (hereinafter called IBM) grants -+ * permission under its copyrights to use, copy, modify, and distribute this -+ * Software with or without fee, provided that the above copyright notice and -+ * all paragraphs of this notice appear in all copies, and that the name of IBM -+ * not be used in connection with the marketing of any product incorporating -+ * the Software or modifications thereof, without specific, written prior -+ * permission. -+ * -+ * To the extent it has a right to do so, IBM grants an immunity from suit -+ * under its patents, if any, for the use, sale or manufacture of products to -+ * the extent that such products are used for performing Domain Name System -+ * dynamic updates in TCP/IP networks by means of the Software. No immunity is -+ * granted for any product per se or for any other function of any product. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES, -+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, -+ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING -+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN -+ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES. -+ */ -+ -+#if !defined(LINT) && !defined(CODECENTER) -+static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $"; -+#endif /* not lint */ -+ -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define Assert(Cond) if (!(Cond)) abort() -+ -+static const char Base64[] = -+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -+static const char Pad64 = '='; -+ -+/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt) -+ The following encoding technique is taken from RFC 1521 by Borenstein -+ and Freed. It is reproduced here in a slightly edited form for -+ convenience. -+ -+ A 65-character subset of US-ASCII is used, enabling 6 bits to be -+ represented per printable character. (The extra 65th character, "=", -+ is used to signify a special processing function.) -+ -+ The encoding process represents 24-bit groups of input bits as output -+ strings of 4 encoded characters. Proceeding from left to right, a -+ 24-bit input group is formed by concatenating 3 8-bit input groups. -+ These 24 bits are then treated as 4 concatenated 6-bit groups, each -+ of which is translated into a single digit in the base64 alphabet. -+ -+ Each 6-bit group is used as an index into an array of 64 printable -+ characters. The character referenced by the index is placed in the -+ output string. -+ -+ Table 1: The Base64 Alphabet -+ -+ Value Encoding Value Encoding Value Encoding Value Encoding -+ 0 A 17 R 34 i 51 z -+ 1 B 18 S 35 j 52 0 -+ 2 C 19 T 36 k 53 1 -+ 3 D 20 U 37 l 54 2 -+ 4 E 21 V 38 m 55 3 -+ 5 F 22 W 39 n 56 4 -+ 6 G 23 X 40 o 57 5 -+ 7 H 24 Y 41 p 58 6 -+ 8 I 25 Z 42 q 59 7 -+ 9 J 26 a 43 r 60 8 -+ 10 K 27 b 44 s 61 9 -+ 11 L 28 c 45 t 62 + -+ 12 M 29 d 46 u 63 / -+ 13 N 30 e 47 v -+ 14 O 31 f 48 w (pad) = -+ 15 P 32 g 49 x -+ 16 Q 33 h 50 y -+ -+ Special processing is performed if fewer than 24 bits are available -+ at the end of the data being encoded. A full encoding quantum is -+ always completed at the end of a quantity. When fewer than 24 input -+ bits are available in an input group, zero bits are added (on the -+ right) to form an integral number of 6-bit groups. Padding at the -+ end of the data is performed using the '=' character. -+ -+ Since all base64 input is an integral number of octets, only the -+ ------------------------------------------------- -+ following cases can arise: -+ -+ (1) the final quantum of encoding input is an integral -+ multiple of 24 bits; here, the final unit of encoded -+ output will be an integral multiple of 4 characters -+ with no "=" padding, -+ (2) the final quantum of encoding input is exactly 8 bits; -+ here, the final unit of encoded output will be two -+ characters followed by two "=" padding characters, or -+ (3) the final quantum of encoding input is exactly 16 bits; -+ here, the final unit of encoded output will be three -+ characters followed by one "=" padding character. -+ */ -+ -+int -+b64_ntop(const uint8_t* src, size_t srclength, char* target, size_t targsize) -+{ -+ size_t datalength = 0; -+ uint8_t input[3]; -+ uint8_t output[4]; -+ size_t i; -+ -+ while (2 < srclength) { -+ input[0] = *src++; -+ input[1] = *src++; -+ input[2] = *src++; -+ srclength -= 3; -+ -+ output[0] = input[0] >> 2; -+ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); -+ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); -+ output[3] = input[2] & 0x3f; -+ Assert(output[0] < 64); -+ Assert(output[1] < 64); -+ Assert(output[2] < 64); -+ Assert(output[3] < 64); -+ -+ if (datalength + 4 > targsize) -+ return (-1); -+ target[datalength++] = Base64[output[0]]; -+ target[datalength++] = Base64[output[1]]; -+ target[datalength++] = Base64[output[2]]; -+ target[datalength++] = Base64[output[3]]; -+ } -+ -+ /* Now we worry about padding. */ -+ if (0 != srclength) { -+ /* Get what's left. */ -+ input[0] = input[1] = input[2] = '\0'; -+ for (i = 0; i < srclength; i++) -+ input[i] = *src++; -+ -+ output[0] = input[0] >> 2; -+ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); -+ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); -+ Assert(output[0] < 64); -+ Assert(output[1] < 64); -+ Assert(output[2] < 64); -+ -+ if (datalength + 4 > targsize) -+ return (-1); -+ target[datalength++] = Base64[output[0]]; -+ target[datalength++] = Base64[output[1]]; -+ if (srclength == 1) -+ target[datalength++] = Pad64; -+ else -+ target[datalength++] = Base64[output[2]]; -+ target[datalength++] = Pad64; -+ } -+ if (datalength >= targsize) -+ return (-1); -+ target[datalength] = '\0'; /* Returned value doesn't count \0. */ -+ return (datalength); -+} -+ -+/* skips all whitespace anywhere. -+ converts characters, four at a time, starting at (or after) -+ src from base - 64 numbers into three 8 bit bytes in the target area. -+ it returns the number of data bytes stored at the target, or -1 on error. -+ */ -+ -+int b64_pton(const char* src, uint8_t* target, size_t targsize) -+{ -+ int tarindex, state, ch; -+ char *pos; -+ -+ state = 0; -+ tarindex = 0; -+ -+ while ((ch = *src++) != '\0') { -+ if (isspace(ch)) /* Skip whitespace anywhere. */ -+ continue; -+ -+ if (ch == Pad64) -+ break; -+ -+ pos = strchr(Base64, ch); -+ if (pos == 0) /* A non-base64 character. */ -+ return (-1); -+ -+ switch (state) { -+ case 0: -+ if (target) { -+ if ((size_t)tarindex >= targsize) -+ return (-1); -+ target[tarindex] = (pos - Base64) << 2; -+ } -+ state = 1; -+ break; -+ case 1: -+ if (target) { -+ if ((size_t)tarindex + 1 >= targsize) -+ return (-1); -+ target[tarindex] |= (pos - Base64) >> 4; -+ target[tarindex+1] = ((pos - Base64) & 0x0f) -+ << 4 ; -+ } -+ tarindex++; -+ state = 2; -+ break; -+ case 2: -+ if (target) { -+ if ((size_t)tarindex + 1 >= targsize) -+ return (-1); -+ target[tarindex] |= (pos - Base64) >> 2; -+ target[tarindex+1] = ((pos - Base64) & 0x03) -+ << 6; -+ } -+ tarindex++; -+ state = 3; -+ break; -+ case 3: -+ if (target) { -+ if ((size_t)tarindex >= targsize) -+ return (-1); -+ target[tarindex] |= (pos - Base64); -+ } -+ tarindex++; -+ state = 0; -+ break; -+ default: -+ abort(); -+ } -+ } -+ -+ /* -+ * We are done decoding Base-64 chars. Let's see if we ended -+ * on a byte boundary, and/or with erroneous trailing characters. -+ */ -+ -+ if (ch == Pad64) { /* We got a pad char. */ -+ ch = *src++; /* Skip it, get next. */ -+ switch (state) { -+ case 0: /* Invalid = in first position */ -+ case 1: /* Invalid = in second position */ -+ return (-1); -+ -+ case 2: /* Valid, means one byte of info */ -+ /* Skip any number of spaces. */ -+ for ((void)NULL; ch != '\0'; ch = *src++) -+ if (!isspace(ch)) -+ break; -+ /* Make sure there is another trailing = sign. */ -+ if (ch != Pad64) -+ return (-1); -+ ch = *src++; /* Skip the = */ -+ /* Fall through to "single trailing =" case. */ -+ /* FALLTHROUGH */ -+ -+ case 3: /* Valid, means two bytes of info */ -+ /* -+ * We know this char is an =. Is there anything but -+ * whitespace after it? -+ */ -+ for ((void)NULL; ch != '\0'; ch = *src++) -+ if (!isspace(ch)) -+ return (-1); -+ -+ /* -+ * Now make sure for cases 2 and 3 that the "extra" -+ * bits that slopped past the last full byte were -+ * zeros. If we don't check them, they become a -+ * subliminal channel. -+ */ -+ if (target && target[tarindex] != 0) -+ return (-1); -+ } -+ } else { -+ /* -+ * We ended by seeing the end of the string. Make sure we -+ * have no partial bytes lying around. -+ */ -+ if (state != 0) -+ return (-1); -+ } -+ -+ return (tarindex); -+} -+ -- cgit 1.2.3-korg