diff options
Diffstat (limited to 'meta/packages/ipkg/files/ipkg_bugfix.patch')
-rw-r--r-- | meta/packages/ipkg/files/ipkg_bugfix.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/meta/packages/ipkg/files/ipkg_bugfix.patch b/meta/packages/ipkg/files/ipkg_bugfix.patch new file mode 100644 index 0000000000..51eccbb2bd --- /dev/null +++ b/meta/packages/ipkg/files/ipkg_bugfix.patch | |||
@@ -0,0 +1,44 @@ | |||
1 | Index: C/ipkg_conf.c | ||
2 | =================================================================== | ||
3 | --- C.orig/ipkg_conf.c 2005-06-21 13:59:32.000000000 +0000 | ||
4 | +++ C/ipkg_conf.c 2007-11-27 01:11:17.000000000 +0000 | ||
5 | @@ -423,6 +423,7 @@ | ||
6 | nv_pair_t *nv_pair; | ||
7 | pkg_dest_t *dest; | ||
8 | char *root_dir; | ||
9 | + char *list_dir2; | ||
10 | |||
11 | for (iter = nv_pair_list->head; iter; iter = iter->next) { | ||
12 | nv_pair = iter->data; | ||
13 | @@ -432,8 +433,14 @@ | ||
14 | } else { | ||
15 | root_dir = strdup(nv_pair->value); | ||
16 | } | ||
17 | - dest = pkg_dest_list_append(&conf->pkg_dest_list, nv_pair->name, root_dir, lists_dir); | ||
18 | + if (conf->offline_root) { | ||
19 | + sprintf_alloc(&list_dir2, "%s%s", conf->offline_root, lists_dir); | ||
20 | + } else { | ||
21 | + list_dir2 = strdup(lists_dir); | ||
22 | + } | ||
23 | + dest = pkg_dest_list_append(&conf->pkg_dest_list, nv_pair->name, root_dir, list_dir2); | ||
24 | free(root_dir); | ||
25 | + free(list_dir2); | ||
26 | if (dest == NULL) { | ||
27 | continue; | ||
28 | } | ||
29 | @@ -562,13 +569,13 @@ | ||
30 | } else if (strcmp(type, "dest") == 0) { | ||
31 | nv_pair_list_append(tmp_dest_nv_pair_list, name, value); | ||
32 | } else if (strcmp(type, "lists_dir") == 0) { | ||
33 | - *lists_dir = realloc(*lists_dir,strlen(value)+1); | ||
34 | + *lists_dir = realloc(*lists_dir,strlen(name)+1); | ||
35 | if (*lists_dir == NULL) { | ||
36 | ipkg_message(conf, IPKG_ERROR, "ERROR: Not enough memory\n"); | ||
37 | free(options); | ||
38 | return EINVAL; | ||
39 | } | ||
40 | - sprintf (*lists_dir,"%s",value); | ||
41 | + sprintf (*lists_dir,"%s", name); | ||
42 | } else if (strcmp(type, "arch") == 0) { | ||
43 | ipkg_message(conf, IPKG_INFO, "supported arch %s priority (%s)\n", name, value); | ||
44 | if (!value) { | ||