From e528ed80da2a55026cc8ad814468549e4aacca86 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Tue, 22 Dec 2009 11:46:49 +0000
Subject: opkg: only select overlay_root if the install destination is root,
 this eliminates the need for force_space when using external destinations
 like usb disks

SVN-Revision: 18884
---
 package/opkg/Makefile                             |  2 +-
 package/opkg/patches/003-fs_overlay_support.patch | 21 +++++++++++++++------
 2 files changed, 16 insertions(+), 7 deletions(-)

(limited to 'package/opkg')

diff --git a/package/opkg/Makefile b/package/opkg/Makefile
index 6cabdec305..491d52e432 100644
--- a/package/opkg/Makefile
+++ b/package/opkg/Makefile
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 PKG_NAME:=opkg
 PKG_REV:=503
 PKG_VERSION:=$(PKG_REV)
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=svn
 PKG_SOURCE_VERSION:=$(PKG_REV)
diff --git a/package/opkg/patches/003-fs_overlay_support.patch b/package/opkg/patches/003-fs_overlay_support.patch
index 8d18c28d2c..aa8b83ba6e 100644
--- a/package/opkg/patches/003-fs_overlay_support.patch
+++ b/package/opkg/patches/003-fs_overlay_support.patch
@@ -26,17 +26,26 @@ Signed-off-by: Nicolas Thill <nico@openwrt.org>
       int noaction;
 --- a/libopkg/opkg_install.c
 +++ b/libopkg/opkg_install.c
-@@ -194,8 +194,11 @@
+@@ -189,13 +189,19 @@
+ verify_pkg_installable(pkg_t *pkg)
+ {
+ 	unsigned long kbs_available, pkg_size_kbs;
+-	char *root_dir;
++	char *root_dir = NULL;
+ 
  	if (conf->force_space || pkg->installed_size == 0)
  		return 0;
  
 -	root_dir = pkg->dest ? pkg->dest->root_dir :
 -						conf->default_dest->root_dir;
-+	root_dir = pkg->dest
-+		? pkg->dest->root_dir
-+		: conf->overlay_root
-+			? conf->overlay_root
-+			: conf->default_dest->root_dir;
++	if( !pkg->dest || !strcmp(pkg->dest->name, "root") )
++		root_dir = conf->overlay_root;
++	else
++		root_dir = pkg->dest->root_dir;
++
++	if( !root_dir )
++		root_dir = conf->default_dest->root_dir;
++
  	kbs_available = get_available_kbytes(root_dir);
  
  	pkg_size_kbs = (pkg->installed_size + 1023)/1024;
-- 
cgit v1.2.3