diff options
author | Nicolas Dechesne <nicolas.dechesne@linaro.org> | 2015-11-02 22:18:09 +0000 |
---|---|---|
committer | Nicolas Dechesne <nicolas.dechesne@linaro.org> | 2015-11-03 10:22:13 +0100 |
commit | c8e320957ececdcb70cd51fb9db2f19eb2e7e674 (patch) | |
tree | 474a7c3a9ade7f9b2d595e60cb13edcfcd652c44 /meta-linaro-integration/recipes-devtools/opkg/files/0001-md5-Add-md5_to_string-function.patch | |
parent | 6870b7816c627f55b9463ef0eb0fe29ce3db14da (diff) |
opkg: add patches for file name too long issue
Some of our builds started to fail with "File name too long" errors, and a
similar issue was reported on the yocto mailing list at [1]. There are patches
to address this problem being reviewed on the opkg-dev mailing list, see [2],
let's bring these patches in meta-linaro-integration until we figure out
how/when they will get upstream.
These patches have been tested with the QCOM OpenEmbedded images on
ci.linaro.org, and they fixed the build issues. Broken and fixed build log can
be seen at [3] and [4].
[1] https://lists.yoctoproject.org/pipermail/yocto/2015-October/026939.html
[2] https://groups.google.com/forum/#!topic/opkg-devel/UzDigiuKBcs
[3] https://ci.linaro.org/view/member-builds/job/lt-qcom-openembedded-images/7
[4] https://ci.linaro.org/view/member-builds/job/lt-qcom-openembedded-images/8
Change-Id: Id5d9c7adc2be38a6c5eb9dc878aa751f9648c4c9
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Diffstat (limited to 'meta-linaro-integration/recipes-devtools/opkg/files/0001-md5-Add-md5_to_string-function.patch')
-rw-r--r-- | meta-linaro-integration/recipes-devtools/opkg/files/0001-md5-Add-md5_to_string-function.patch | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/meta-linaro-integration/recipes-devtools/opkg/files/0001-md5-Add-md5_to_string-function.patch b/meta-linaro-integration/recipes-devtools/opkg/files/0001-md5-Add-md5_to_string-function.patch new file mode 100644 index 00000000..8af77586 --- /dev/null +++ b/meta-linaro-integration/recipes-devtools/opkg/files/0001-md5-Add-md5_to_string-function.patch @@ -0,0 +1,117 @@ +From dee50138f4431550598762e781b7e1524da05fd4 Mon Sep 17 00:00:00 2001 +From: Paul Barker <pa...@paulbarker.me.uk> +Date: Sat, 24 Oct 2015 20:15:17 +0100 +Subject: [PATCH 1/3] md5: Add md5_to_string function + +Signed-off-by: Paul Barker <pa...@paulbarker.me.uk> +--- + libopkg/file_util.c | 28 +++------------------------- + libopkg/md5.c | 17 +++++++++++++++++ + libopkg/md5.h | 3 +++ + 3 files changed, 23 insertions(+), 25 deletions(-) + +diff --git a/libopkg/file_util.c b/libopkg/file_util.c +index 5eff469..cb3dbf0 100644 +--- a/libopkg/file_util.c ++++ b/libopkg/file_util.c +@@ -349,27 +349,13 @@ int file_mkdir_hier(const char *path, long mode) + + char *file_md5sum_alloc(const char *file_name) + { +- static const int md5sum_bin_len = 16; +- static const int md5sum_hex_len = 32; +- +- static const unsigned char bin2hex[16] = { +- '0', '1', '2', '3', +- '4', '5', '6', '7', +- '8', '9', 'a', 'b', +- 'c', 'd', 'e', 'f' +- }; +- +- int i, err; ++ int err; + FILE *file; +- char *md5sum_hex; +- unsigned char md5sum_bin[md5sum_bin_len]; +- +- md5sum_hex = xcalloc(1, md5sum_hex_len + 1); ++ unsigned char md5sum_bin[16]; + + file = fopen(file_name, "r"); + if (file == NULL) { + opkg_perror(ERROR, "Failed to open file %s", file_name); +- free(md5sum_hex); + return NULL; + } + +@@ -377,20 +363,12 @@ char *file_md5sum_alloc(const char *file_name) + if (err) { + opkg_msg(ERROR, "Could't compute md5sum for %s.\n", file_name); + fclose(file); +- free(md5sum_hex); + return NULL; + } + + fclose(file); + +- for (i = 0; i < md5sum_bin_len; i++) { +- md5sum_hex[i * 2] = bin2hex[md5sum_bin[i] >> 4]; +- md5sum_hex[i * 2 + 1] = bin2hex[md5sum_bin[i] & 0xf]; +- } +- +- md5sum_hex[md5sum_hex_len] = '\0'; +- +- return md5sum_hex; ++ return md5_to_string(md5sum_bin); + } + + #ifdef HAVE_SHA256 +diff --git a/libopkg/md5.c b/libopkg/md5.c +index d476b8b..7138681 100644 +--- a/libopkg/md5.c ++++ b/libopkg/md5.c +@@ -30,6 +30,8 @@ + #include <string.h> + #include <sys/types.h> + ++#include "xfuncs.h" ++ + #if USE_UNLOCKED_IO + #include "unlocked-io.h" + #endif +@@ -431,3 +433,18 @@ void md5_process_block(const void *buffer, size_t len, struct md5_ctx *ctx) + ctx->C = C; + ctx->D = D; + } ++ ++char *md5_to_string(const void *md5sum_bin) ++{ ++ int i; ++ const char *src = (const char *)md5sum_bin; ++ char *buf = xmalloc(33); ++ ++ /* Print 4 bytes at a time. */ ++ for (i = 0; i < 16; i += 4) { ++ sprintf(&buf[2*i], "%02hhx%02hhx%02hhx%02hhx", ++ src[i], src[i+1], src[i+2], src[i+3]); ++ } ++ ++ return buf; ++} +diff --git a/libopkg/md5.h b/libopkg/md5.h +index 01320f5..2a7274d 100644 +--- a/libopkg/md5.h ++++ b/libopkg/md5.h +@@ -118,6 +118,9 @@ extern int __md5_stream(FILE * stream, void *resblock) __THROW; + extern void *__md5_buffer(const char *buffer, size_t len, + void *resblock) __THROW; + ++/* Convert a binary md5sum value to an ASCII string. */ ++char *md5_to_string(const void *md5sum_bin); ++ + #ifdef __cplusplus + } + #endif +-- +2.6.1 + |