diff options
author | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
commit | 709c4d66e0b107ca606941b988bad717c0b45d9b (patch) | |
tree | 37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/ipkg/files/is-processing.patch | |
parent | fa6cd5a3b993f16c27de4ff82b42684516d433ba (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 'recipes/ipkg/files/is-processing.patch')
-rw-r--r-- | recipes/ipkg/files/is-processing.patch | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/recipes/ipkg/files/is-processing.patch b/recipes/ipkg/files/is-processing.patch new file mode 100644 index 0000000000..45ede41668 --- /dev/null +++ b/recipes/ipkg/files/is-processing.patch @@ -0,0 +1,179 @@ +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); +
|