Changeset 13710


Ignore:
Timestamp:
2008-12-21T20:52:14+01:00 (8 years ago)
Author:
nbd
Message:

fix opkg overlay_root option for jffs2-only images

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/opkg/patches/003-fs_overlay_support.patch

    r13650 r13710  
    55 
    66 
    7 diff -ruN opkg-4564-old/libopkg/opkg_conf.c opkg-4564-new/libopkg/opkg_conf.c 
    8 --- opkg-4564-old/libopkg/opkg_conf.c   2008-08-04 19:18:51.000000000 +0200 
    9 +++ opkg-4564-new/libopkg/opkg_conf.c   2008-12-12 02:26:35.000000000 +0100 
    10 @@ -64,6 +64,7 @@ 
     7--- a/libopkg/opkg_conf.c 
     8+++ b/libopkg/opkg_conf.c 
     9@@ -64,6 +64,7 @@ int opkg_init_options_array(const opkg_c 
    1110          { "offline_root", OPKG_OPT_TYPE_STRING, &conf->offline_root }, 
    1211          { "offline_root_post_script_cmd", OPKG_OPT_TYPE_STRING, &conf->offline_root_post_script_cmd }, 
     
    1615          { "proxy_user", OPKG_OPT_TYPE_STRING, &conf->proxy_user }, 
    1716          { "query-all", OPKG_OPT_TYPE_BOOL, &conf->query_all }, 
    18 diff -ruN opkg-4564-old/libopkg/opkg_conf.h opkg-4564-new/libopkg/opkg_conf.h 
    19 --- opkg-4564-old/libopkg/opkg_conf.h   2008-08-04 19:18:51.000000000 +0200 
    20 +++ opkg-4564-new/libopkg/opkg_conf.h   2008-12-12 02:25:33.000000000 +0100 
    21 @@ -67,6 +67,7 @@ 
     17--- a/libopkg/opkg_conf.h 
     18+++ b/libopkg/opkg_conf.h 
     19@@ -67,6 +67,7 @@ struct opkg_conf 
    2220      char *offline_root; 
    2321      char *offline_root_pre_script_cmd; 
     
    2725      int verbosity; 
    2826      int noaction; 
    29 Binary files opkg-4564-old/libopkg/opkg_conf.o and opkg-4564-new/libopkg/opkg_conf.o differ 
    30 diff -ruN opkg-4564-old/libopkg/opkg_install.c opkg-4564-new/libopkg/opkg_install.c 
    31 --- opkg-4564-old/libopkg/opkg_install.c        2008-08-04 19:18:51.000000000 +0200 
    32 +++ opkg-4564-new/libopkg/opkg_install.c        2008-12-12 02:29:13.000000000 +0100 
    33 @@ -525,9 +525,15 @@ 
     27--- a/libopkg/opkg_install.c 
     28+++ b/libopkg/opkg_install.c 
     29@@ -524,10 +524,13 @@ static int verify_pkg_installable(opkg_c 
     30      *    my diddling with the .opk file size below isn't going to cut it. 
    3431      * 3) return a proper error code instead of 1 
    3532      */ 
    36       int comp_size, blocks_available; 
    37 +     char *root; 
    38       
     33-     int comp_size, blocks_available; 
     34-     
     35+     int comp_size, blocks_available = -1; 
     36+ 
    3937      if (!conf->force_space && pkg->installed_size != NULL) { 
    4038-         blocks_available = get_available_blocks(conf->default_dest->root_dir); 
    41 +          if (conf->overlay_root != NULL) { 
    42 +               root = conf->overlay_root; 
    43 +          } else { 
    44 +               root = conf->default_dest->root_dir; 
    45 +          } 
    46 +         blocks_available = get_available_blocks(root); 
     39+          if (conf->overlay_root != NULL) 
     40+               blocks_available = get_available_blocks(conf->overlay_root); 
     41+          if (blocks_available < 0) 
     42+               blocks_available = get_available_blocks(conf->default_dest->root_dir); 
    4743  
    4844          comp_size = strtoul(pkg->installed_size, NULL, 0); 
    4945          /* round up a blocks count without doing fancy-but-slow casting jazz */  
     46--- a/libopkg/opkg_utils.c 
     47+++ b/libopkg/opkg_utils.c 
     48@@ -30,10 +30,8 @@ int get_available_blocks(char * filesyst 
     49 { 
     50      struct statfs sfs; 
     51  
     52-     if(statfs(filesystem, &sfs)){ 
     53-         fprintf(stderr, "bad statfs\n"); 
     54-         return 0; 
     55-     } 
     56+     if(statfs(filesystem, &sfs)) 
     57+         return -1; 
     58      /*    fprintf(stderr, "reported fs type %x\n", sfs.f_type); */ 
     59      return ((sfs.f_bavail * sfs.f_bsize) / 1024); 
     60 } 
Note: See TracChangeset for help on using the changeset viewer.