From 383c0b097b7eba16801a9e3c4b8e36a4b6de74ab Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 20 Jan 2017 13:33:05 +0200
Subject: [PATCH 2/2] Add support for prefixing /etc from RPM_ETCCONFIGDIR
 environment variable

This is needed so that rpm can pick up target-specific configuration
from target rootfs instead of its own native sysroot.

Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 lib/rpmrc.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/lib/rpmrc.c b/lib/rpmrc.c
index 19fe80f98..6b27b3941 100644
--- a/lib/rpmrc.c
+++ b/lib/rpmrc.c
@@ -455,10 +455,14 @@ const char * lookupInDefaultTable(const char * name,
 static void setDefaults(void)
 {
     const char *confdir = rpmConfigDir();
+    const char *etcconfdir = getenv("RPM_ETCCONFIGDIR");
+    if (etcconfdir == NULL)
+        etcconfdir = "";
+
     if (!defrcfiles) {
 	defrcfiles = rstrscat(NULL, confdir, "/rpmrc", ":",
 				confdir, "/" RPMCANONVENDOR "/rpmrc", ":",
-				SYSCONFDIR "/rpmrc", ":");
+				etcconfdir, SYSCONFDIR "/rpmrc", ":", NULL);
     }
 
 #ifndef MACROFILES
@@ -468,9 +472,9 @@ static void setDefaults(void)
 				confdir, "/platform/%{_target}/macros", ":",
 				confdir, "/fileattrs/*.attr", ":",
   				confdir, "/" RPMCANONVENDOR "/macros", ":",
-				SYSCONFDIR "/rpm/macros.*", ":",
-				SYSCONFDIR "/rpm/macros", ":",
-				SYSCONFDIR "/rpm/%{_target}/macros", ":");
+				etcconfdir, SYSCONFDIR "/rpm/macros.*", ":",
+				etcconfdir, SYSCONFDIR "/rpm/macros", ":",
+				etcconfdir, SYSCONFDIR "/rpm/%{_target}/macros", ":", NULL);
     }
 #else
     macrofiles = MACROFILES;
@@ -989,7 +993,11 @@ static void read_auxv(void)
  */
 static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
 {
-    const char * const platform_path = SYSCONFDIR "/rpm/platform";
+    const char *etcconfdir = getenv("RPM_ETCCONFIGDIR");
+    if (etcconfdir == NULL)
+        etcconfdir = "";
+
+    const char * const platform_path = rstrscat(NULL, etcconfdir, SYSCONFDIR "/rpm/platform", NULL);
     static struct utsname un;
     char * chptr;
     canonEntry canon;
@@ -1286,6 +1294,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
 
     if (arch) *arch = un.machine;
     if (os) *os = un.sysname;
+    free(platform_path);
 }
 
 static
-- 
2.11.0

