From 541b6b7bd80dc321493e42955d93b277af0c9221 Mon Sep 17 00:00:00 2001
From: Paul Eggleton <paul.eggleton@linux.intel.com>
Date: Mon, 9 Jul 2012 11:01:15 +0100
Subject: [PATCH 5/7] Do not read /etc/opkg/*.conf if -f is specified

If a configuration file is specified on the command line, we should
assume it contains all of the configuration and not try to read the
configuration in /etc/opkg.

Upstream-Status: Submitted
http://code.google.com/p/opkg/issues/detail?id=93

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 libopkg/opkg_conf.c | 55 +++++++++++++++++++++++++++--------------------------
 1 file changed, 28 insertions(+), 27 deletions(-)

diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c
index 4711ce7..1e65bad 100644
--- a/libopkg/opkg_conf.c
+++ b/libopkg/opkg_conf.c
@@ -473,39 +473,40 @@ opkg_conf_load(void)
 				&conf->pkg_src_list, &conf->dist_src_list))
 			goto err1;
 	}
-
-	if (conf->offline_root)
-		sprintf_alloc(&etc_opkg_conf_pattern, "%s/etc/opkg/*.conf", conf->offline_root);
 	else {
-		const char *conf_file_dir = getenv("OPKG_CONF_DIR");
-		if (conf_file_dir == NULL)
-			conf_file_dir = OPKG_CONF_DEFAULT_CONF_FILE_DIR;
-			sprintf_alloc(&etc_opkg_conf_pattern, "%s/*.conf", conf_file_dir);
-	}
-
-	memset(&globbuf, 0, sizeof(globbuf));
-	glob_ret = glob(etc_opkg_conf_pattern, 0, glob_errfunc, &globbuf);
-	if (glob_ret && glob_ret != GLOB_NOMATCH) {
-		free(etc_opkg_conf_pattern);
-		globfree(&globbuf);
-		goto err1;
-	}
-
-	free(etc_opkg_conf_pattern);
+		if (conf->offline_root)
+			sprintf_alloc(&etc_opkg_conf_pattern, "%s/etc/opkg/*.conf", conf->offline_root);
+		else {
+			const char *conf_file_dir = getenv("OPKG_CONF_DIR");
+			if (conf_file_dir == NULL)
+				conf_file_dir = OPKG_CONF_DEFAULT_CONF_FILE_DIR;
+				sprintf_alloc(&etc_opkg_conf_pattern, "%s/*.conf", conf_file_dir);
+		}
 
-	for (i = 0; i < globbuf.gl_pathc; i++) {
-		if (globbuf.gl_pathv[i])
-			if (conf->conf_file &&
-					!strcmp(conf->conf_file, globbuf.gl_pathv[i]))
-				continue;
-		if ( opkg_conf_parse_file(globbuf.gl_pathv[i],
-			&conf->pkg_src_list, &conf->dist_src_list)<0) {
+		memset(&globbuf, 0, sizeof(globbuf));
+		glob_ret = glob(etc_opkg_conf_pattern, 0, glob_errfunc, &globbuf);
+		if (glob_ret && glob_ret != GLOB_NOMATCH) {
+			free(etc_opkg_conf_pattern);
 			globfree(&globbuf);
 			goto err1;
 		}
-	}
 
-	globfree(&globbuf);
+		free(etc_opkg_conf_pattern);
+
+		for (i = 0; i < globbuf.gl_pathc; i++) {
+			if (globbuf.gl_pathv[i])
+				if (conf->conf_file &&
+						!strcmp(conf->conf_file, globbuf.gl_pathv[i]))
+					continue;
+			if ( opkg_conf_parse_file(globbuf.gl_pathv[i],
+				&conf->pkg_src_list, &conf->dist_src_list)<0) {
+				globfree(&globbuf);
+				goto err1;
+			}
+		}
+
+		globfree(&globbuf);
+	}
 
 	if (conf->offline_root)
 		sprintf_alloc (&lock_file, "%s/%s", conf->offline_root, OPKGLOCKFILE);
-- 
1.7.12

