Changeset 18120


Ignore:
Timestamp:
2009-10-22T17:15:19+02:00 (8 years ago)
Author:
jow
Message:

[package] opkg:

  • re-enable upgrade and restrict it to signle packages, fix usage text
  • only read package descriptions if they're actually needed (almost never), saves even more space when parsing package lists
  • refresh patches
Location:
trunk/package/opkg/patches
Files:
1 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/opkg/patches/008-fix_parsing_insanity.patch

    r18119 r18120  
    8585-     raw = read_raw_pkgs_from_stream(control_file); 
    8686-     pkg_parse_raw(pkg, &raw, NULL, NULL); 
    87 +     pkg_parse_fd(pkg, fileno(control_file), NULL, NULL); 
     87+     pkg_parse_fd(pkg, fileno(control_file), NULL, NULL, 0); 
    8888  
    8989      fclose(control_file); 
     
    152152 #include "hash_table.h" 
    153153 #include "pkg.h" 
    154 @@ -112,43 +114,50 @@ 
     154@@ -110,45 +112,52 @@ 
     155 } 
     156  
    155157 int pkg_hash_add_from_file(opkg_conf_t *conf, const char *file_name, 
    156                            pkg_src_t *src, pkg_dest_t *dest, int is_status_file) 
     158-                          pkg_src_t *src, pkg_dest_t *dest, int is_status_file) 
     159+                          pkg_src_t *src, pkg_dest_t *dest, int is_status_file, int no_desc) 
    157160 { 
    158161-     hash_table_t *hash = &conf->pkg_hash; 
     
    208211+                       } 
    209212+ 
    210 +                       if (pkg_parse_fd(pkg, fd, src, dest) == 0) { 
     213+                       if (pkg_parse_fd(pkg, fd, src, dest, no_desc) == 0) { 
    211214+                               if (!pkg->architecture) { 
    212215+                                       char *version_str = pkg_version_str_alloc(pkg); 
     
    241244--- a/libopkg/pkg_parse.c 
    242245+++ b/libopkg/pkg_parse.c 
    243 @@ -191,214 +191,297 @@ 
     246@@ -191,214 +191,301 @@ 
    244247   
    245248 } 
     
    263266-*/ 
    264267-int pkg_parse_raw(pkg_t *pkg, char ***raw, pkg_src_t *src, pkg_dest_t *dest) 
    265 +int pkg_parse_fd(pkg_t *pkg, int fd, pkg_src_t *src, pkg_dest_t *dest) 
     268+int pkg_parse_fd(pkg_t *pkg, int fd, pkg_src_t *src, pkg_dest_t *dest, int no_desc) 
    266269 { 
    267270-    int reading_conffiles, reading_description; 
     
    585588+                               case 'D': 
    586589+                                       if(isGenericFieldType("Description", line)) { 
    587 +                                               pkg->description = parseGenericFieldType("Description", line); 
     590+                                               if(!no_desc) 
     591+                                                       pkg->description = parseGenericFieldType("Description", line); 
    588592+                                               reading_conffiles = 0; 
    589593+                                               reading_description = 1; 
     
    602606+                               case ' ': 
    603607+                                       if(reading_description) { 
    604 +                                               /* we already know it's not blank, so the rest of description */       
    605 +                                               pkg->description = realloc(pkg->description, 
    606 +                                               strlen(pkg->description) + 1 + strlen(line) + 1); 
    607 +                                               strcat(pkg->description, "\n"); 
    608 +                                               strcat(pkg->description, (line)); 
     608+                                               /* we already know it's not blank, so the rest of description */ 
     609+                                               if(!no_desc) 
     610+                                               { 
     611+                                                       pkg->description = realloc(pkg->description, 
     612+                                                               strlen(pkg->description) + 1 + strlen(line) + 1); 
     613+                                                       strcat(pkg->description, "\n"); 
     614+                                                       strcat(pkg->description, (line)); 
     615+                                               } 
    609616+                                       } 
    610617+                                       else if(reading_conffiles) 
     
    749756-int pkg_parse_raw(pkg_t *pkg, char ***raw, pkg_src_t *src, pkg_dest_t *dest); 
    750757-int pkg_valorize_other_field(pkg_t *pkg, char ***raw); 
    751 +int pkg_parse_fd(pkg_t *pkg, int fd, pkg_src_t *src, pkg_dest_t *dest); 
     758+int pkg_parse_fd(pkg_t *pkg, int fd, pkg_src_t *src, pkg_dest_t *dest, int no_desc); 
    752759+int pkg_valorize_other_field(pkg_t *pkg, int fd); 
    753760  
     
    764771 int line_is_blank(const char *line); 
    765772  
     773--- a/libopkg/libopkg.c 
     774+++ b/libopkg/libopkg.c 
     775@@ -88,6 +88,7 @@ 
     776        char *cmd_name; 
     777        opkg_cmd_t *cmd; 
     778        opkg_conf_t opkg_conf; 
     779+       int no_desc = 1; 
     780  
     781        args_init (&args); 
     782  
     783@@ -122,12 +123,18 @@ 
     784              !strcmp(cmd_name,"status") ) 
     785            args.noreadfeedsfile = 1; 
     786  
     787+       if( !strcmp(cmd_name,"list") || 
     788+           !strcmp(cmd_name,"list-installed") || 
     789+           !strcmp(cmd_name,"list_installed") || 
     790+           !strcmp(cmd_name,"search") ) 
     791+          no_desc = 0; 
     792+ 
     793        opkg_cb_message = default_opkg_message_callback; 
     794        opkg_cb_response = default_opkg_response_callback; 
     795        opkg_cb_status = default_opkg_status_callback; 
     796  
     797  
     798-       err = opkg_conf_init (&opkg_conf, &args); 
     799+       err = opkg_conf_init (&opkg_conf, &args, no_desc); 
     800        if (err) 
     801        { 
     802                opkg_print_error_list (&opkg_conf); 
     803--- a/libopkg/opkg.c 
     804+++ b/libopkg/opkg.c 
     805@@ -205,7 +205,7 @@ 
     806   } 
     807  
     808   opkg->conf = calloc (1, sizeof (opkg_conf_t)); 
     809-  err = opkg_conf_init (opkg->conf, opkg->args); 
     810+  err = opkg_conf_init (opkg->conf, opkg->args, 0); 
     811   if (err) 
     812   { 
     813     free (opkg->conf); 
     814@@ -286,7 +286,7 @@ 
     815  
     816   /* throw away old opkg_conf and start again */ 
     817   opkg_conf_deinit (opkg->conf); 
     818-  opkg_conf_init (opkg->conf, opkg->args); 
     819+  opkg_conf_init (opkg->conf, opkg->args, 0); 
     820  
     821   free (opkg->options); 
     822   opkg_init_options_array (opkg->conf, &opkg->options); 
     823--- a/libopkg/opkg_conf.c 
     824+++ b/libopkg/opkg_conf.c 
     825@@ -44,9 +44,9 @@ 
     826 static int opkg_conf_set_default_dest(opkg_conf_t *conf, 
     827                                      const char *default_dest_name); 
     828 static int set_and_load_pkg_src_list(opkg_conf_t *conf, 
     829-                                    pkg_src_list_t *nv_pair_list); 
     830+                                    pkg_src_list_t *nv_pair_list, int no_desc); 
     831 static int set_and_load_pkg_dest_list(opkg_conf_t *conf, 
     832-                                     nv_pair_list_t *nv_pair_list, char * lists_dir); 
     833+                                     nv_pair_list_t *nv_pair_list, char * lists_dir, int no_desc); 
     834  
     835 int opkg_init_options_array(const opkg_conf_t *conf, opkg_option_t **options) 
     836 { 
     837@@ -106,7 +106,7 @@ 
     838      } 
     839 } 
     840  
     841-int opkg_conf_init(opkg_conf_t *conf, const args_t *args) 
     842+int opkg_conf_init(opkg_conf_t *conf, const args_t *args, int no_desc) 
     843 { 
     844      int err; 
     845      char *tmp_dir_base; 
     846@@ -294,12 +294,12 @@ 
     847      if ( !(args->nocheckfordirorfile)){ 
     848         /* need to run load the source list before dest list -Jamey */ 
     849         if ( !(args->noreadfeedsfile)) 
     850-           set_and_load_pkg_src_list(conf, &conf->pkg_src_list); 
     851+           set_and_load_pkg_src_list(conf, &conf->pkg_src_list, no_desc); 
     852     
     853         /* Now that we have resolved conf->offline_root, we can commit to 
     854           the directory names for the dests and load in all the package 
     855           lists. */ 
     856-        set_and_load_pkg_dest_list(conf, &tmp_dest_nv_pair_list,lists_dir); 
     857+        set_and_load_pkg_dest_list(conf, &tmp_dest_nv_pair_list,lists_dir, no_desc); 
     858     
     859         if (args->dest) { 
     860             err = opkg_conf_set_default_dest(conf, args->dest); 
     861@@ -409,7 +409,7 @@ 
     862      return 1; 
     863 } 
     864  
     865-static int set_and_load_pkg_src_list(opkg_conf_t *conf, pkg_src_list_t *pkg_src_list) 
     866+static int set_and_load_pkg_src_list(opkg_conf_t *conf, pkg_src_list_t *pkg_src_list, int no_desc) 
     867 { 
     868      pkg_src_list_elt_t *iter; 
     869      pkg_src_t *src; 
     870@@ -426,7 +426,7 @@ 
     871                          src->name); 
     872  
     873          if (file_exists(list_file)) { 
     874-              pkg_hash_add_from_file(conf, list_file, src, NULL, 0); 
     875+              pkg_hash_add_from_file(conf, list_file, src, NULL, 0, no_desc); 
     876          } 
     877          free(list_file); 
     878      } 
     879@@ -434,7 +434,7 @@ 
     880      return 0; 
     881 } 
     882  
     883-static int set_and_load_pkg_dest_list(opkg_conf_t *conf, nv_pair_list_t *nv_pair_list, char *lists_dir ) 
     884+static int set_and_load_pkg_dest_list(opkg_conf_t *conf, nv_pair_list_t *nv_pair_list, char *lists_dir, int no_desc) 
     885 { 
     886      nv_pair_list_elt_t *iter; 
     887      nv_pair_t *nv_pair; 
     888@@ -459,7 +459,7 @@ 
     889          } 
     890          if (file_exists(dest->status_file_name)) { 
     891               pkg_hash_add_from_file(conf, dest->status_file_name, 
     892-                                     NULL, dest, 1); 
     893+                                     NULL, dest, 1, no_desc); 
     894          } 
     895      } 
     896  
     897--- a/libopkg/opkg_conf.h 
     898+++ b/libopkg/opkg_conf.h 
     899@@ -102,7 +102,7 @@ 
     900      const void *value; 
     901 }; 
     902  
     903-int opkg_conf_init(opkg_conf_t *conf, const args_t *args); 
     904+int opkg_conf_init(opkg_conf_t *conf, const args_t *args, int no_desc); 
     905 void opkg_conf_deinit(opkg_conf_t *conf); 
     906  
     907 int opkg_conf_write_status_files(opkg_conf_t *conf); 
     908--- a/tests/opkg_hash_test.c 
     909+++ b/tests/opkg_hash_test.c 
     910@@ -33,8 +33,8 @@ 
     911     } 
     912     pkg_hash_init("test", hash, 1024); 
     913  
     914-    pkg_hash_add_from_file(&conf, argv[1], NULL, NULL, 0); 
     915-    pkg_hash_add_from_file(&conf, argv[2], NULL, NULL, 0); 
     916+    pkg_hash_add_from_file(&conf, argv[1], NULL, NULL, 0, 0); 
     917+    pkg_hash_add_from_file(&conf, argv[2], NULL, NULL, 0, 0); 
     918  
     919     if (argc < 4) { 
     920        pkg_print_info( pkg_hash_fetch_by_name_version(hash, "libc6", "2.2.3-2"), stdout); 
     921--- a/libopkg/pkg_hash.h 
     922+++ b/libopkg/pkg_hash.h 
     923@@ -33,7 +33,7 @@ 
     924 void pkg_hash_fetch_available(hash_table_t *hash, pkg_vec_t *available); 
     925  
     926 int pkg_hash_add_from_file(opkg_conf_t *conf, const char *file_name, 
     927-                          pkg_src_t *src, pkg_dest_t *dest, int is_status_file); 
     928+                          pkg_src_t *src, pkg_dest_t *dest, int is_status_file, int no_desc); 
     929 pkg_t *hash_insert_pkg(hash_table_t *hash, pkg_t *pkg, int set_status,opkg_conf_t *conf); 
     930  
     931 abstract_pkg_t * ensure_abstract_pkg_by_name(hash_table_t * hash, const char * pkg_name); 
  • trunk/package/opkg/patches/010-remove-flag.patch

    r18119 r18120  
    11--- a/libopkg/args.c 
    22+++ b/libopkg/args.c 
    3 @@ -267,8 +267,6 @@ 
     3@@ -268,8 +268,6 @@ 
    44      printf("\tinstall <file.opk>      Install package <file.opk>\n"); 
    55      printf("\tconfigure [<pkg>]       Configure unpacked packages\n"); 
     
    1212--- a/libopkg/opkg_cmd.c 
    1313+++ b/libopkg/opkg_cmd.c 
    14 @@ -56,7 +56,6 @@ 
    15  static int opkg_list_installed_cmd(opkg_conf_t *conf, int argc, char **argv); 
     14@@ -58,7 +58,6 @@ 
     15 static int opkg_list_upgradable_cmd(opkg_conf_t *conf, int argc, char **argv); 
    1616 static int opkg_remove_cmd(opkg_conf_t *conf, int argc, char **argv); 
    1717 static int opkg_purge_cmd(opkg_conf_t *conf, int argc, char **argv); 
     
    2020 static int opkg_search_cmd(opkg_conf_t *conf, int argc, char **argv); 
    2121 static int opkg_download_cmd(opkg_conf_t *conf, int argc, char **argv); 
    22 @@ -80,7 +79,6 @@ 
    23       {"list", 0, (opkg_cmd_fun_t)opkg_list_cmd}, 
     22@@ -84,7 +83,6 @@ 
    2423      {"list_installed", 0, (opkg_cmd_fun_t)opkg_list_installed_cmd}, 
     24      {"list_upgradable", 0, (opkg_cmd_fun_t)opkg_list_upgradable_cmd}, 
    2525      {"info", 0, (opkg_cmd_fun_t)opkg_info_cmd}, 
    2626-     {"flag", 1, (opkg_cmd_fun_t)opkg_flag_cmd}, 
     
    2828      {"install_pending", 0, (opkg_cmd_fun_t)opkg_install_pending_cmd}, 
    2929      {"install", 1, (opkg_cmd_fun_t)opkg_install_cmd}, 
    30 @@ -974,48 +972,6 @@ 
     30@@ -1050,48 +1048,6 @@ 
    3131      return 0; 
    3232 } 
  • trunk/package/opkg/patches/011-fix_nullpointer_deref.patch

    r18119 r18120  
    11--- a/libopkg/opkg_cmd.c 
    22+++ b/libopkg/opkg_cmd.c 
    3 @@ -878,7 +878,7 @@ 
     3@@ -954,7 +954,7 @@ 
    44                    pkg_to_remove = pkg_hash_fetch_installed_by_name(&conf->pkg_hash, pkg->name ); 
    55                } 
Note: See TracChangeset for help on using the changeset viewer.