Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame^] | 1 | From d7143dc4e75c8bcc5cc4c852a4b972942b7e4d07 Mon Sep 17 00:00:00 2001 |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
| 3 | Date: Fri, 20 Jan 2017 13:33:05 +0200 |
Patrick Williams | 73bd93f | 2024-02-20 08:07:48 -0600 | [diff] [blame] | 4 | Subject: [PATCH] Add support for prefixing /etc from RPM_ETCCONFIGDIR |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 5 | environment variable |
| 6 | |
| 7 | This is needed so that rpm can pick up target-specific configuration |
| 8 | from target rootfs instead of its own native sysroot. |
| 9 | |
| 10 | Upstream-Status: Inappropriate [oe-core specific] |
| 11 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
| 12 | --- |
| 13 | lib/rpmrc.c | 19 ++++++++++++++----- |
| 14 | 1 file changed, 14 insertions(+), 5 deletions(-) |
| 15 | |
Patrick Williams | 73bd93f | 2024-02-20 08:07:48 -0600 | [diff] [blame] | 16 | diff --git a/lib/rpmrc.c b/lib/rpmrc.c |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame^] | 17 | index 483585ae4..ea858c290 100644 |
Patrick Williams | 73bd93f | 2024-02-20 08:07:48 -0600 | [diff] [blame] | 18 | --- a/lib/rpmrc.c |
| 19 | +++ b/lib/rpmrc.c |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame^] | 20 | @@ -456,10 +456,14 @@ const char * lookupInDefaultTable(const char * name, |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 21 | static void setDefaults(void) |
| 22 | { |
| 23 | const char *confdir = rpmConfigDir(); |
| 24 | + const char *etcconfdir = getenv("RPM_ETCCONFIGDIR"); |
| 25 | + if (etcconfdir == NULL) |
| 26 | + etcconfdir = ""; |
| 27 | + |
| 28 | if (!defrcfiles) { |
| 29 | defrcfiles = rstrscat(NULL, confdir, "/rpmrc", ":", |
Patrick Williams | 73bd93f | 2024-02-20 08:07:48 -0600 | [diff] [blame] | 30 | confdir, "/" RPM_VENDOR "/rpmrc", ":", |
| 31 | - SYSCONFDIR "/rpmrc", NULL); |
| 32 | + etcconfdir, SYSCONFDIR "/rpmrc", NULL); |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 33 | } |
| 34 | |
| 35 | #ifndef MACROFILES |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame^] | 36 | @@ -469,9 +473,9 @@ static void setDefaults(void) |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 37 | confdir, "/platform/%{_target}/macros", ":", |
| 38 | confdir, "/fileattrs/*.attr", ":", |
Patrick Williams | 73bd93f | 2024-02-20 08:07:48 -0600 | [diff] [blame] | 39 | confdir, "/" RPM_VENDOR "/macros", ":", |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 40 | - SYSCONFDIR "/rpm/macros.*", ":", |
| 41 | - SYSCONFDIR "/rpm/macros", ":", |
Patrick Williams | 73bd93f | 2024-02-20 08:07:48 -0600 | [diff] [blame] | 42 | - SYSCONFDIR "/rpm/%{_target}/macros", NULL); |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 43 | + etcconfdir, SYSCONFDIR "/rpm/macros.*", ":", |
| 44 | + etcconfdir, SYSCONFDIR "/rpm/macros", ":", |
Patrick Williams | 73bd93f | 2024-02-20 08:07:48 -0600 | [diff] [blame] | 45 | + etcconfdir, SYSCONFDIR "/rpm/%{_target}/macros", NULL); |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 46 | } |
| 47 | #else |
| 48 | macrofiles = MACROFILES; |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame^] | 49 | @@ -1115,7 +1119,11 @@ static void read_auxv(void) |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 50 | */ |
| 51 | static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) |
| 52 | { |
| 53 | - const char * const platform_path = SYSCONFDIR "/rpm/platform"; |
| 54 | + const char *etcconfdir = getenv("RPM_ETCCONFIGDIR"); |
| 55 | + if (etcconfdir == NULL) |
| 56 | + etcconfdir = ""; |
| 57 | + |
| 58 | + const char * const platform_path = rstrscat(NULL, etcconfdir, SYSCONFDIR "/rpm/platform", NULL); |
| 59 | static struct utsname un; |
| 60 | char * chptr; |
| 61 | canonEntry canon; |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame^] | 62 | @@ -1435,6 +1443,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 63 | |
| 64 | if (arch) *arch = un.machine; |
| 65 | if (os) *os = un.sysname; |
| 66 | + free(platform_path); |
| 67 | } |
| 68 | |
| 69 | static |