aboutsummaryrefslogtreecommitdiff
path: root/meta-linaro-integration/recipes-devtools/opkg/files/0001-md5-Add-md5_to_string-function.patch
diff options
context:
space:
mode:
authorNicolas Dechesne <nicolas.dechesne@linaro.org>2015-11-02 22:18:09 +0000
committerNicolas Dechesne <nicolas.dechesne@linaro.org>2015-11-03 10:22:13 +0100
commitc8e320957ececdcb70cd51fb9db2f19eb2e7e674 (patch)
tree474a7c3a9ade7f9b2d595e60cb13edcfcd652c44 /meta-linaro-integration/recipes-devtools/opkg/files/0001-md5-Add-md5_to_string-function.patch
parent6870b7816c627f55b9463ef0eb0fe29ce3db14da (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.patch117
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
+