source: trunk/package/opkg/patches/003-fs_overlay_support.patch @ 20474

Last change on this file since 20474 was 20474, checked in by juhosg, 7 years ago

package/opkg: refresh patches

File size: 1.9 KB
  • libopkg/opkg_conf.c

    This patch adds a new configuration option (overlay_root) specifying 
    what mount point opkg should check for available storage space.
    
    Signed-off-by: Nicolas Thill <nico@openwrt.org>
    
    
    a b opkg_option_t options[] = { 
    6262          { "download_only", OPKG_OPT_TYPE_BOOL, &_conf.download_only }, 
    6363          { "nodeps", OPKG_OPT_TYPE_BOOL, &_conf.nodeps }, 
    6464          { "offline_root", OPKG_OPT_TYPE_STRING, &_conf.offline_root }, 
     65          { "overlay_root", OPKG_OPT_TYPE_STRING, &_conf.overlay_root }, 
    6566          { "proxy_passwd", OPKG_OPT_TYPE_STRING, &_conf.proxy_passwd }, 
    6667          { "proxy_user", OPKG_OPT_TYPE_STRING, &_conf.proxy_user }, 
    6768          { "query-all", OPKG_OPT_TYPE_BOOL, &_conf.query_all }, 
  • libopkg/opkg_conf.h

    a b struct opkg_conf 
    7676     int check_signature; 
    7777     int nodeps; /* do not follow dependences */ 
    7878     char *offline_root; 
     79     char *overlay_root; 
    7980     int query_all; 
    8081     int verbosity; 
    8182     int noaction; 
  • libopkg/opkg_install.c

    a b  
    2121#include <time.h> 
    2222#include <signal.h> 
    2323#include <unistd.h> 
     24#include <sys/stat.h> 
    2425 
    2526#include "pkg.h" 
    2627#include "pkg_hash.h" 
    static int 
    189190verify_pkg_installable(pkg_t *pkg) 
    190191{ 
    191192        unsigned long kbs_available, pkg_size_kbs; 
    192         char *root_dir; 
     193        char *root_dir = NULL; 
     194        struct stat s; 
    193195 
    194196        if (conf->force_space || pkg->installed_size == 0) 
    195197                return 0; 
    196198 
    197         root_dir = pkg->dest ? pkg->dest->root_dir : 
    198                                                 conf->default_dest->root_dir; 
     199        if( pkg->dest ) 
     200        { 
     201                if( !strcmp(pkg->dest->name, "root") && conf->overlay_root 
     202                    && !stat(conf->overlay_root, &s) && (s.st_mode & S_IFDIR) ) 
     203                        root_dir = conf->overlay_root; 
     204                else 
     205                        root_dir = pkg->dest->root_dir; 
     206        } 
     207 
     208        if( !root_dir ) 
     209                root_dir = conf->default_dest->root_dir; 
     210 
    199211        kbs_available = get_available_kbytes(root_dir); 
    200212 
    201213        pkg_size_kbs = (pkg->installed_size + 1023)/1024; 
Note: See TracBrowser for help on using the repository browser.