summaryrefslogtreecommitdiff
path: root/packages/ipkg
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /packages/ipkg
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'packages/ipkg')
-rw-r--r--packages/ipkg/files/1-pkg-parse--Optimize-inefficient-parsing.patch227
-rw-r--r--packages/ipkg/files/2-pkg-vec--Optimize-gross-inefficiency.patch65
-rw-r--r--packages/ipkg/files/enable_debversion.patch111
-rw-r--r--packages/ipkg/files/ipkg-configure5
-rw-r--r--packages/ipkg/files/is-processing.patch179
-rw-r--r--packages/ipkg/files/libdir.patch11
-rw-r--r--packages/ipkg/files/lonk-link-name.patch38
-rw-r--r--packages/ipkg/files/terse.patch18
-rw-r--r--packages/ipkg/files/uclibc.patch13
-rw-r--r--packages/ipkg/files/uninclude-replace.patch10
-rw-r--r--packages/ipkg/files/update_version_comparision.patch84
-rw-r--r--packages/ipkg/ipkg-0.99.163/patch-ipkg-localfilename29
-rw-r--r--packages/ipkg/ipkg-collateral.bb25
-rw-r--r--packages/ipkg/ipkg-collateral/akita/dest4
-rw-r--r--packages/ipkg/ipkg-collateral/akita/lists4
-rw-r--r--packages/ipkg/ipkg-collateral/collie/dest4
-rw-r--r--packages/ipkg/ipkg-collateral/dest1
-rw-r--r--packages/ipkg/ipkg-collateral/ipkg.conf.comments23
-rw-r--r--packages/ipkg/ipkg-collateral/jornada56x/dest4
-rw-r--r--packages/ipkg/ipkg-collateral/lists2
-rw-r--r--packages/ipkg/ipkg-collateral/mx31moboard/dest3
-rw-r--r--packages/ipkg/ipkg-collateral/mx31moboard/src4
-rw-r--r--packages/ipkg/ipkg-collateral/openmn/src1
-rw-r--r--packages/ipkg/ipkg-collateral/oplinux-uclibc/dest3
-rw-r--r--packages/ipkg/ipkg-collateral/oplinux/dest3
-rw-r--r--packages/ipkg/ipkg-collateral/poodle/dest4
-rw-r--r--packages/ipkg/ipkg-collateral/simpad/dest3
-rw-r--r--packages/ipkg/ipkg-collateral/src0
-rw-r--r--packages/ipkg/ipkg-collateral/tosa/dest4
-rw-r--r--packages/ipkg/ipkg-native.inc12
-rw-r--r--packages/ipkg/ipkg-native_0.99.163.bb16
-rw-r--r--packages/ipkg/ipkg.inc59
-rw-r--r--packages/ipkg/ipkg_0.99.163.bb23
-rw-r--r--packages/ipkg/ipkgorphan_0.0.1.bb18
34 files changed, 0 insertions, 1010 deletions
diff --git a/packages/ipkg/files/1-pkg-parse--Optimize-inefficient-parsing.patch b/packages/ipkg/files/1-pkg-parse--Optimize-inefficient-parsing.patch
deleted file mode 100644
index e7632b11d1..0000000000
--- a/packages/ipkg/files/1-pkg-parse--Optimize-inefficient-parsing.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-# HG changeset patch
-# User pfalcon@localhost
-# Date 1178334771 0
-# Node ID e4c99830ba0d55813e1774bd6d41039ca640d6a6
-# Parent d324eba24e79a0a86df7978f0511e4632a2732c7
-pkg_parse: Optimize inefficient parsing.
-
-Instead of expensively probing all fields in row, dispatch based on the
-first letter of the field. Tests show ~12 times reduction in number of calls
-to low-level parsing functions.
-
-diff -r d324eba24e79 -r e4c99830ba0d pkg_parse.c
---- a/pkg_parse.c Fri May 04 23:22:33 2007 +0000
-+++ b/pkg_parse.c Sat May 05 03:12:51 2007 +0000
-@@ -241,87 +241,116 @@ int pkg_parse_raw(pkg_t *pkg, char ***ra
-
- for (lines = *raw; *lines; lines++) {
- /* fprintf(stderr, "PARSING %s\n", *lines);*/
-- if(isGenericFieldType("Package:", *lines))
-- pkg->name = parseGenericFieldType("Package", *lines);
-- else if(isGenericFieldType("Architecture:", *lines))
-- pkg->architecture = parseGenericFieldType("Architecture", *lines);
-- else if(isGenericFieldType("Filename:", *lines))
-- pkg->filename = parseGenericFieldType("Filename", *lines);
-- else if(isGenericFieldType("Section:", *lines))
-- pkg->section = parseGenericFieldType("Section", *lines);
-- else if(isGenericFieldType("MD5sum:", *lines))
-- pkg->md5sum = parseGenericFieldType("MD5sum", *lines);
-- /* The old ipkg wrote out status files with the wrong case for MD5sum,
-- let's parse it either way */
-- else if(isGenericFieldType("MD5Sum:", *lines))
-- pkg->md5sum = parseGenericFieldType("MD5Sum", *lines);
-- else if(isGenericFieldType("Size:", *lines))
-- pkg->size = parseGenericFieldType("Size", *lines);
-- else if(isGenericFieldType("Source:", *lines))
-- pkg->source = parseGenericFieldType("Source", *lines);
-- else if(isGenericFieldType("Installed-Size:", *lines))
-- pkg->installed_size = parseGenericFieldType("Installed-Size", *lines);
-- else if(isGenericFieldType("Installed-Time:", *lines)) {
-- char *time_str = parseGenericFieldType("Installed-Time", *lines);
-- pkg->installed_time = strtoul(time_str, NULL, 0);
-- } else if(isGenericFieldType("Priority:", *lines))
-- pkg->priority = parseGenericFieldType("Priority", *lines);
-- else if(isGenericFieldType("Essential:", *lines)) {
-- char *essential_value;
-- essential_value = parseGenericFieldType("Essential", *lines);
-- if (strcmp(essential_value, "yes") == 0) {
-- pkg->essential = 1;
-- }
-- free(essential_value);
-- }
-- else if(isGenericFieldType("Status", *lines))
-- parseStatus(pkg, *lines);
-- else if(isGenericFieldType("Version", *lines))
-- parseVersion(pkg, *lines);
-- else if(isGenericFieldType("Maintainer", *lines))
-- pkg->maintainer = parseGenericFieldType("Maintainer", *lines);
-- else if(isGenericFieldType("Conffiles", *lines)){
-- parseConffiles(pkg, *lines);
-- reading_conffiles = 1;
-- }
-- else if(isGenericFieldType("Description", *lines)) {
-- pkg->description = parseGenericFieldType("Description", *lines);
-- reading_conffiles = 0;
-- reading_description = 1;
-- }
--
-- else if(isGenericFieldType("Provides", *lines)){
-+ switch (**lines) {
-+ case 'P':
-+ if(isGenericFieldType("Package:", *lines))
-+ pkg->name = parseGenericFieldType("Package", *lines);
-+ else if(isGenericFieldType("Priority:", *lines))
-+ pkg->priority = parseGenericFieldType("Priority", *lines);
-+ else if(isGenericFieldType("Provides", *lines)){
- /* Here we add the internal_use to align the off by one problem between provides_str and provides */
-- provide = (char * ) malloc(strlen(*lines)+ 35 ); /* Preparing the space for the new ipkg_internal_use_only */
-- if ( alterProvidesLine(*lines,provide) ){
-- return EINVAL;
-- }
-- pkg->provides_str = parseDependsString( provide, &pkg->provides_count);
-+ provide = (char * ) malloc(strlen(*lines)+ 35 ); /* Preparing the space for the new ipkg_internal_use_only */
-+ if ( alterProvidesLine(*lines,provide) ){
-+ return EINVAL;
-+ }
-+ pkg->provides_str = parseDependsString( provide, &pkg->provides_count);
- /* Let's try to hack a bit here.
- The idea is that if a package has no Provides, we would add one generic, to permit the check of dependencies
- in alot of other places. We will remove it before writing down the status database */
-- pkg_false_provides=0;
-- free(provide);
-- }
--
-- else if(isGenericFieldType("Depends", *lines))
-- pkg->depends_str = parseDependsString(*lines, &pkg->depends_count);
-- else if(isGenericFieldType("Pre-Depends", *lines))
-- pkg->pre_depends_str = parseDependsString(*lines, &pkg->pre_depends_count);
-- else if(isGenericFieldType("Recommends", *lines))
-- pkg->recommends_str = parseDependsString(*lines, &pkg->recommends_count);
-- else if(isGenericFieldType("Suggests", *lines))
-- pkg->suggests_str = parseDependsString(*lines, &pkg->suggests_count);
-- /* Abhaya: support for conflicts */
-- else if(isGenericFieldType("Conflicts", *lines))
-- pkg->conflicts_str = parseDependsString(*lines, &pkg->conflicts_count);
-- else if(isGenericFieldType("Replaces", *lines))
-- pkg->replaces_str = parseDependsString(*lines, &pkg->replaces_count);
-- else if(line_is_blank(*lines)) {
-- lines++;
-- break;
-- }
-- else if(**lines == ' '){
-+ pkg_false_provides=0;
-+ free(provide);
-+ }
-+ else if(isGenericFieldType("Pre-Depends", *lines))
-+ pkg->pre_depends_str = parseDependsString(*lines, &pkg->pre_depends_count);
-+ break;
-+
-+ case 'A':
-+ if(isGenericFieldType("Architecture:", *lines))
-+ pkg->architecture = parseGenericFieldType("Architecture", *lines);
-+ break;
-+
-+ case 'F':
-+ if(isGenericFieldType("Filename:", *lines))
-+ pkg->filename = parseGenericFieldType("Filename", *lines);
-+ break;
-+
-+ case 'S':
-+ if(isGenericFieldType("Section:", *lines))
-+ pkg->section = parseGenericFieldType("Section", *lines);
-+ else if(isGenericFieldType("Size:", *lines))
-+ pkg->size = parseGenericFieldType("Size", *lines);
-+ else if(isGenericFieldType("Source:", *lines))
-+ pkg->source = parseGenericFieldType("Source", *lines);
-+ else if(isGenericFieldType("Status", *lines))
-+ parseStatus(pkg, *lines);
-+ else if(isGenericFieldType("Suggests", *lines))
-+ pkg->suggests_str = parseDependsString(*lines, &pkg->suggests_count);
-+ break;
-+
-+ case 'M':
-+ if(isGenericFieldType("MD5sum:", *lines))
-+ pkg->md5sum = parseGenericFieldType("MD5sum", *lines);
-+ /* The old ipkg wrote out status files with the wrong case for MD5sum,
-+ let's parse it either way */
-+ else if(isGenericFieldType("MD5Sum:", *lines))
-+ pkg->md5sum = parseGenericFieldType("MD5Sum", *lines);
-+ else if(isGenericFieldType("Maintainer", *lines))
-+ pkg->maintainer = parseGenericFieldType("Maintainer", *lines);
-+ break;
-+
-+ case 'I':
-+ if(isGenericFieldType("Installed-Size:", *lines))
-+ pkg->installed_size = parseGenericFieldType("Installed-Size", *lines);
-+ else if(isGenericFieldType("Installed-Time:", *lines)) {
-+ char *time_str = parseGenericFieldType("Installed-Time", *lines);
-+ pkg->installed_time = strtoul(time_str, NULL, 0);
-+ }
-+ break;
-+
-+ case 'E':
-+ if(isGenericFieldType("Essential:", *lines)) {
-+ char *essential_value;
-+ essential_value = parseGenericFieldType("Essential", *lines);
-+ if (strcmp(essential_value, "yes") == 0) {
-+ pkg->essential = 1;
-+ }
-+ free(essential_value);
-+ }
-+ break;
-+
-+ case 'V':
-+ if(isGenericFieldType("Version", *lines))
-+ parseVersion(pkg, *lines);
-+ break;
-+
-+ case 'C':
-+ if(isGenericFieldType("Conffiles", *lines)){
-+ parseConffiles(pkg, *lines);
-+ reading_conffiles = 1;
-+ }
-+ else if(isGenericFieldType("Conflicts", *lines))
-+ pkg->conflicts_str = parseDependsString(*lines, &pkg->conflicts_count);
-+ break;
-+
-+ case 'D':
-+ if(isGenericFieldType("Description", *lines)) {
-+ pkg->description = parseGenericFieldType("Description", *lines);
-+ reading_conffiles = 0;
-+ reading_description = 1;
-+ }
-+ else if(isGenericFieldType("Depends", *lines))
-+ pkg->depends_str = parseDependsString(*lines, &pkg->depends_count);
-+ break;
-+
-+ case 'R':
-+ if(isGenericFieldType("Recommends", *lines))
-+ pkg->recommends_str = parseDependsString(*lines, &pkg->recommends_count);
-+ else if(isGenericFieldType("Replaces", *lines))
-+ pkg->replaces_str = parseDependsString(*lines, &pkg->replaces_count);
-+
-+ break;
-+
-+ case ' ':
- if(reading_description) {
- /* we already know it's not blank, so the rest of description */
- pkg->description = realloc(pkg->description,
-@@ -332,8 +361,18 @@ int pkg_parse_raw(pkg_t *pkg, char ***ra
- }
- else if(reading_conffiles)
- parseConffiles(pkg, *lines);
-+
-+ break;
-+
-+ default:
-+ if(line_is_blank(*lines)) {
-+ lines++;
-+ goto out;
-+ }
- }
- }
-+out:;
-+
- *raw = lines;
- /* If the ipk has not a Provides line, we insert our false line */
- if ( pkg_false_provides==1)
diff --git a/packages/ipkg/files/2-pkg-vec--Optimize-gross-inefficiency.patch b/packages/ipkg/files/2-pkg-vec--Optimize-gross-inefficiency.patch
deleted file mode 100644
index 3c5cac49dc..0000000000
--- a/packages/ipkg/files/2-pkg-vec--Optimize-gross-inefficiency.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# HG changeset patch
-# User pfalcon@localhost
-# Date 1178812057 0
-# Node ID eff4450fdea2f8210a4fc927bd35ae2562d2eced
-# Parent e4c99830ba0d55813e1774bd6d41039ca640d6a6
-pkg_vec: Optimize gross inefficiency.
-
-This module tries to implement *unique* vector (without duplicating
-objects), and does this by iterating thru all already existing elements.
-Thus, complexity of adding N elements was O(N^2). However, there're no grave
-reasons to do uniqueness at all:
-1. First of all, if feeds are correct, there won't be duplicates.
-2. Then, even if there will be, there won't be serious problems like
-segfaults.
-3. Finally, for quite a few operations vectors is constructed from a
-hashtable, thus uniqueness is guaranteed (which reduces possible cases of
-non-uniqueness to values of Depends: and friends).
-
-All an all, remove dup check, and make ipkg work order of magnitude faster
-on a feed with few thousands of packages.
-
-diff -r e4c99830ba0d -r eff4450fdea2 pkg_vec.c
---- a/pkg_vec.c Sat May 05 03:12:51 2007 +0000
-+++ b/pkg_vec.c Thu May 10 15:47:37 2007 +0000
-@@ -104,6 +104,7 @@ void pkg_vec_insert(pkg_vec_t *vec, cons
- int i;
- int found = 0;
-
-+#if 0
- /* look for a duplicate pkg by name, version, and architecture */
- for (i = 0; i < vec->len; i++)
- if ((strcmp(pkg->name, vec->pkgs[i]->name) == 0)
-@@ -112,6 +113,7 @@ void pkg_vec_insert(pkg_vec_t *vec, cons
- found = 1;
- break;
- }
-+#endif
-
- /* we didn't find one, add it */
- if(!found){
-@@ -191,6 +193,7 @@ void abstract_pkg_vec_insert(abstract_pk
- {
- int i;
-
-+#if 0
- /* look for a duplicate pkg by name */
- for(i = 0; i < vec->len; i++)
- if (strcmp(pkg->name, vec->pkgs[i]->name) == 0)
-@@ -198,12 +201,15 @@ void abstract_pkg_vec_insert(abstract_pk
-
- /* we didn't find one, add it */
- if(i == vec->len){
-+#endif
- vec->pkgs =
- (abstract_pkg_t **)
- realloc(vec->pkgs, (vec->len + 1) * sizeof(abstract_pkg_t *));
- vec->pkgs[vec->len] = pkg;
- vec->len++;
-- }
-+#if 0
-+ }
-+#endif
- }
-
- abstract_pkg_t * abstract_pkg_vec_get(abstract_pkg_vec_t *vec, int i)
diff --git a/packages/ipkg/files/enable_debversion.patch b/packages/ipkg/files/enable_debversion.patch
deleted file mode 100644
index e9c3a7a1d4..0000000000
--- a/packages/ipkg/files/enable_debversion.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-OE makes heavy use of the revision field so it makes sense to
-enable it. We don't want the familiar stuff though so patch that
-out.
-
-RP - 19/02/2008
-
-Index: ipkg-0.99.163/pkg.c
-===================================================================
---- ipkg-0.99.163.orig/pkg.c 2008-02-19 00:35:03.000000000 +0000
-+++ ipkg-0.99.163/pkg.c 2008-02-19 00:36:02.000000000 +0000
-@@ -1118,15 +1118,11 @@
- return r;
- }
-
--#ifdef USE_DEBVERSION
- r = verrevcmp(pkg->revision, ref_pkg->revision);
- if (r) {
- return r;
- }
-
-- r = verrevcmp(pkg->familiar_revision, ref_pkg->familiar_revision);
--#endif
--
- return r;
- }
-
-@@ -1240,10 +1236,7 @@
- {
- char *complete_version;
- char *epoch_str;
--#ifdef USE_DEBVERSION
- char *revision_str;
-- char *familiar_revision_str;
--#endif
-
- if (pkg->epoch) {
- sprintf_alloc(&epoch_str, "%d:", pkg->epoch);
-@@ -1251,33 +1244,18 @@
- epoch_str = strdup("");
- }
-
--#ifdef USE_DEBVERSION
- if (pkg->revision && strlen(pkg->revision)) {
- sprintf_alloc(&revision_str, "-%s", pkg->revision);
- } else {
- revision_str = strdup("");
- }
-
-- if (pkg->familiar_revision && strlen(pkg->familiar_revision)) {
-- sprintf_alloc(&familiar_revision_str, "-fam%s", pkg->familiar_revision);
-- } else {
-- familiar_revision_str = strdup("");
-- }
--#endif
-
--#ifdef USE_DEBVERSION
-- sprintf_alloc(&complete_version, "%s%s%s%s",
-- epoch_str, pkg->version, revision_str, familiar_revision_str);
--#else
-- sprintf_alloc(&complete_version, "%s%s",
-- epoch_str, pkg->version);
--#endif
-+ sprintf_alloc(&complete_version, "%s%s%s",
-+ epoch_str, pkg->version, revision_str);
-
- free(epoch_str);
--#ifdef USE_DEBVERSION
- free(revision_str);
-- free(familiar_revision_str);
--#endif
-
- return complete_version;
- }
-Index: ipkg-0.99.163/pkg_parse.c
-===================================================================
---- ipkg-0.99.163.orig/pkg_parse.c 2008-02-19 00:35:03.000000000 +0000
-+++ ipkg-0.99.163/pkg_parse.c 2008-02-19 00:38:42.000000000 +0000
-@@ -105,9 +105,7 @@
- int parseVersion(pkg_t *pkg, char *raw)
- {
- char *colon, *eepochcolon;
--#ifdef USE_DEBVERSION
- char *hyphen;
--#endif
- unsigned long epoch;
-
- if (!*raw) {
-@@ -149,23 +147,12 @@
- }
- strcpy(pkg->version, raw);
-
--#ifdef USE_DEBVERSION
- hyphen= strrchr(pkg->version,'-');
-
- if (hyphen) {
- *hyphen++= 0;
-- if (strncmp("fam", hyphen, 3) == 0) {
-- pkg->familiar_revision=hyphen+3;
-- hyphen= strrchr(pkg->version,'-');
-- if (hyphen) {
-- *hyphen++= 0;
-- pkg->revision = hyphen;
-- }
-- } else {
- pkg->revision = hyphen;
-- }
- }
--#endif
-
- /*
- fprintf(stderr,"Parsed version: %lu, %s, %s, %s\n",
diff --git a/packages/ipkg/files/ipkg-configure b/packages/ipkg/files/ipkg-configure
deleted file mode 100644
index e0c65ad4e2..0000000000
--- a/packages/ipkg/files/ipkg-configure
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-echo "Starting to configure packages..."
-ipkg-cl configure
-echo "Finished to configure packages."
diff --git a/packages/ipkg/files/is-processing.patch b/packages/ipkg/files/is-processing.patch
deleted file mode 100644
index 45ede41668..0000000000
--- a/packages/ipkg/files/is-processing.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-diff -Nur ipkg-0.99.163.orig/ipkg_install.c ipkg-0.99.163/ipkg_install.c
---- ipkg-0.99.163.orig/ipkg_install.c 2006-03-30 21:50:24.000000000 +0800
-+++ ipkg-0.99.163/ipkg_install.c 2007-03-15 08:01:20.000000000 +0800
-@@ -211,6 +211,7 @@
- anyone ever wants to make a nice libipkg. */
-
- ipkg_message(conf, IPKG_DEBUG2,"Function: %s calling ipkg_install_pkg \n",__FUNCTION__);
-+ new->is_processing = 1;
- return ipkg_install_pkg(conf, new,0);
- }
-
-diff -Nur ipkg-0.99.163.orig/libbb/unzip.c ipkg-0.99.163/libbb/unzip.c
---- ipkg-0.99.163.orig/libbb/unzip.c 2006-02-06 16:13:02.000000000 +0800
-+++ ipkg-0.99.163/libbb/unzip.c 2007-03-15 08:03:45.000000000 +0800
-@@ -1028,13 +1028,15 @@
- */
- extern void gz_close(int gunzip_pid)
- {
-- if (kill(gunzip_pid, SIGTERM) == -1) {
-- error_msg_and_die("*** Couldnt kill old gunzip process *** aborting");
-- }
-+ if (kill(gunzip_pid, 0) == 0) {
-+ if (kill(gunzip_pid, SIGTERM) == -1) {
-+ error_msg_and_die("*** Couldnt kill old gunzip process *** aborting");
-+ }
-
-- if (waitpid(gunzip_pid, NULL, 0) == -1) {
-- printf("Couldnt wait ?");
-+ if (waitpid(gunzip_pid, NULL, 0) == -1) {
-+ printf("Couldnt wait ?");
-+ }
- }
-- free(window);
-- free(crc_table);
-+ free(window);
-+ free(crc_table);
- }
-diff -Nur ipkg-0.99.163.orig/pkg.c ipkg-0.99.163/pkg.c
---- ipkg-0.99.163.orig/pkg.c 2006-04-21 04:29:28.000000000 +0800
-+++ ipkg-0.99.163/pkg.c 2007-03-20 15:11:32.845064480 +0800
-@@ -33,6 +33,7 @@
- #include "xsystem.h"
- #include "ipkg_conf.h"
-
-+
- typedef struct enum_map enum_map_t;
- struct enum_map
- {
-@@ -522,6 +523,10 @@
- strncat(buff ,line, strlen(line));
- free(line);
-
-+ line = pkg_formatted_field(pkg, "Installed-Size");
-+ strncat(buff ,line, strlen(line));
-+ free(line);
-+
- return buff;
- }
-
-@@ -542,7 +547,6 @@
- }
-
- temp[0]='\0';
--
- switch (field[0])
- {
- case 'a':
-@@ -690,13 +694,42 @@
- case 'I': {
- if (strcasecmp(field, "Installed-Size") == 0) {
- /* Installed-Size */
-- temp = (char *)realloc(temp,strlen(pkg->installed_size)+17);
-- if ( temp == NULL ){
-- fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
-- return NULL;
-- }
-- temp[0]='\0';
-- snprintf(temp, (strlen(pkg->installed_size)+17), "Installed-Size: %s\n", pkg->installed_size);
-+ if (pkg->installed_size) {
-+ temp = (char *)realloc(temp,strlen(pkg->installed_size)+18);
-+ if ( temp == NULL ){
-+ fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
-+ return NULL;
-+ }
-+ temp[0]='\0';
-+ snprintf(temp, (strlen(pkg->installed_size)+18), "Installed-Size: %s\n", pkg->installed_size);
-+ } else {
-+ /* Caculate installed files size */
-+ str_list_elt_t *iter;
-+ struct stat buf;
-+ int installed_files_length = 0;
-+ if (pkg->installed_files == NULL)
-+ break;
-+
-+ if (pkg->is_processing!=1)
-+ break;
-+
-+ for (iter = pkg->installed_files->head; iter; iter = iter->next) {
-+ memset(&buf, 0, sizeof(struct stat));
-+ stat(iter->data, &buf);
-+ if (S_ISREG(buf.st_mode))
-+ installed_files_length += buf.st_size;
-+ }
-+ /*printf("installed_files_length:%d\n", installed_files_length);*/
-+
-+ sprintf_alloc(&pkg->installed_size, "%d", installed_files_length);
-+ temp = (char *)realloc(temp,strlen(pkg->installed_size)+18);
-+ if ( temp == NULL ){
-+ fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
-+ return NULL;
-+ }
-+ temp[0]='\0';
-+ snprintf(temp, (strlen(pkg->installed_size)+18), "Installed-Size: %s\n", pkg->installed_size);
-+ }
- } else if (strcasecmp(field, "Installed-Time") == 0 && pkg->installed_time) {
- temp = (char *)realloc(temp,29);
- if ( temp == NULL ){
-@@ -720,7 +753,7 @@
- return NULL;
- }
- temp[0]='\0';
-- snprintf(temp, (strlen(pkg->maintainer)+14), "maintainer: %s\n", pkg->maintainer);
-+ snprintf(temp, (strlen(pkg->maintainer)+14), "Maintainer: %s\n", pkg->maintainer);
- }
- } else if (strcasecmp(field, "MD5sum") == 0) {
- /* MD5sum */
-@@ -871,6 +904,24 @@
- }
- temp[0]='\0';
- snprintf(temp, (strlen(pkg->size)+8), "Size: %s\n", pkg->size);
-+ } else {
-+ if ( pkg->local_filename ) {
-+ struct stat buf;
-+ memset(&buf, 0, sizeof(struct stat));
-+
-+ if ( stat(pkg->local_filename, &buf) == 0 ) {
-+
-+ sprintf_alloc(&pkg->size, "%d", buf.st_size);
-+ temp = (char *)realloc(temp, strlen(pkg->size)+8);
-+ if ( temp == NULL ){
-+ fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
-+ return NULL;
-+ }
-+ temp[0]='\0';
-+ snprintf(temp, (strlen(pkg->size)+8), "Size: %s\n", pkg->size);
-+ }
-+ }
-+
- }
- } else if (strcasecmp(field, "Source") == 0) {
- /* Source */
-@@ -1016,6 +1067,12 @@
- pkg_print_field(pkg, file, "Essential"); /* @@@@ should be removed in future release. */
- pkg_print_field(pkg, file, "Architecture");
- pkg_print_field(pkg, file, "Conffiles");
-+ pkg_print_field(pkg, file, "Description");
-+ pkg_print_field(pkg, file, "Maintainer");
-+ pkg_print_field(pkg, file, "Section");
-+ pkg_print_field(pkg, file, "Size");
-+ pkg_print_field(pkg, file, "Filename");
-+ pkg_print_field(pkg, file, "Installed-Size");
- pkg_print_field(pkg, file, "Installed-Time");
- fputs("\n", file);
- }
-diff -Nur ipkg-0.99.163.orig/pkg.h ipkg-0.99.163/pkg.h
---- ipkg-0.99.163.orig/pkg.h 2006-05-30 16:31:08.000000000 +0800
-+++ ipkg-0.99.163/pkg.h 2007-03-15 08:01:20.000000000 +0800
-@@ -176,6 +176,10 @@
- int arch_priority;
- /* Adding this flag, to "force" ipkg to choose a "provided_by_hand" package, if there are multiple choice */
- int provided_by_hand;
-+
-+ /* Check whether this pkg is being removed or installed */
-+ int is_processing;
-+
- };
-
- pkg_t *pkg_new(void);
-
diff --git a/packages/ipkg/files/libdir.patch b/packages/ipkg/files/libdir.patch
deleted file mode 100644
index 38f0b4d286..0000000000
--- a/packages/ipkg/files/libdir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- C/ipkg.h.in.old 2005-04-02 17:11:02.762413624 +0100
-+++ C/ipkg.h.in 2005-04-02 17:11:06.314873568 +0100
-@@ -36,7 +36,7 @@
- #define IPKG_LEGAL_PKG_NAME_CHARS "abcdefghijklmnopqrstuvwxyz0123456789.+-"
- #define IPKG_PKG_VERSION_SEP_CHAR '_'
-
--#define IPKG_STATE_DIR_PREFIX LIBDIR"/ipkg"
-+#define IPKG_STATE_DIR_PREFIX "/usr/lib/ipkg"
- #define IPKG_LISTS_DIR_SUFFIX "lists"
- #define IPKG_INFO_DIR_SUFFIX "info"
- #define IPKG_STATUS_FILE_SUFFIX "status"
diff --git a/packages/ipkg/files/lonk-link-name.patch b/packages/ipkg/files/lonk-link-name.patch
deleted file mode 100644
index 14fc73a5ac..0000000000
--- a/packages/ipkg/files/lonk-link-name.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- ipkg-0.99.163/libbb/unarchive.c.orig 2007-10-04 12:39:42.000000000 +0200
-+++ ipkg-0.99.163/libbb/unarchive.c 2007-10-04 12:41:28.000000000 +0200
-@@ -595,10 +595,6 @@
- if (longname) {
- tar_entry->name = longname;
- longname = NULL;
-- }
-- else if (linkname) {
-- tar_entry->name = linkname;
-- linkname = NULL;
- } else
- #endif
- if (tar.formated.prefix[0] == 0) {
-@@ -606,6 +602,15 @@
- } else {
- tar_entry->name = concat_path_file(tar.formated.prefix, tar.formated.name);
- }
-+
-+#ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS
-+ if (linkname) {
-+ tar_entry->link_name = linkname;
-+ linkname = NULL;
-+ } else
-+#endif
-+ tar_entry->link_name = strlen(tar.formated.linkname) ?
-+ xstrdup(tar.formated.linkname) : NULL;
-
- // tar_entry->name = xstrdup(tar.formated.name);
-
-@@ -618,8 +623,6 @@
- tar_entry->gid = strtol(tar.formated.gid, NULL, 8);
- tar_entry->size = strtol(tar.formated.size, NULL, 8);
- tar_entry->mtime = strtol(tar.formated.mtime, NULL, 8);
-- tar_entry->link_name = strlen(tar.formated.linkname) ?
-- xstrdup(tar.formated.linkname) : NULL;
- tar_entry->device = (strtol(tar.formated.devmajor, NULL, 8) << 8) +
- strtol(tar.formated.devminor, NULL, 8);
-
diff --git a/packages/ipkg/files/terse.patch b/packages/ipkg/files/terse.patch
deleted file mode 100644
index 3c4d6bed7e..0000000000
--- a/packages/ipkg/files/terse.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
---- C/ipkg_cmd.c~terse
-+++ C/ipkg_cmd.c
-@@ -148,9 +146,7 @@
- int result;
- p_userdata = userdata;
- result = (cmd->fun)(conf, argc, argv);
-- if ( result == 0 ) {
-- ipkg_message(conf, IPKG_NOTICE, "Successfully terminated.\n");
-- } else {
-+ if ( result != 0 ) {
- ipkg_message(conf, IPKG_NOTICE, "An error ocurred, return value: %d.\n", result);
- }
-
diff --git a/packages/ipkg/files/uclibc.patch b/packages/ipkg/files/uclibc.patch
deleted file mode 100644
index d0d3a3ff7c..0000000000
--- a/packages/ipkg/files/uclibc.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: C/libbb/libbb.h
-===================================================================
---- C.orig/libbb/libbb.h 20