diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2016-08-17 14:31:25 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2016-08-22 16:43:26 +0000 |
commit | 60f9d69e016b11c468c98ea75ba0a60c44afbbc4 (patch) | |
tree | ecb49581a9e41a37943c22cd9ef3f63451b20ee7 /import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch | |
parent | e18c61205e0234b03697129c20cc69c9b3940efc (diff) | |
download | blackbird-openbmc-60f9d69e016b11c468c98ea75ba0a60c44afbbc4.tar.gz blackbird-openbmc-60f9d69e016b11c468c98ea75ba0a60c44afbbc4.zip |
yocto-poky: Move to import-layers subdir
We are going to import additional layers, so create a subdir to
hold all of the layers that we import with git-subtree.
Change-Id: I6f732153a22be8ca663035c518837e3cc5ec0799
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch')
-rw-r--r-- | import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch new file mode 100644 index 000000000..81fc84937 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch @@ -0,0 +1,136 @@ +lib/rpmrc.c: Update --target processing to support full GNU canonical arch + +Prior to this patch, when using --target, RPM supported the format: + <arch> + <arch>-<os> + <arch>-<os>-gnu + <arch>-<arbitrary items>-<os> + <arch>-<arbitrary items>-<os>-gnu + +This patch changes the list of supported items to: + <arch> + <arch>-<os> + <arch>-<os>-gnu + <arch>-<vendor>-<os> + <arch>-<vendor>-<os>-<extension> + +Upstream-Status: Submitted [RPM5 maintainer] + +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> + +Index: rpm-5.4.14/lib/rpmrc.c +=================================================================== +--- rpm-5.4.14.orig/lib/rpmrc.c ++++ rpm-5.4.14/lib/rpmrc.c +@@ -925,8 +925,8 @@ static void getMachineInfo(int type, /*@ + + static void rpmRebuildTargetVars(const char ** target, const char ** canontarget) + { +- +- char *ca = NULL, *co = NULL, *ct = NULL; ++ /* ca = arch, cv = vendor, co = os, ce = extension, ct = canon target */ ++ char *ca = NULL, *cv = NULL, *co = NULL, *ce = NULL, *ct = NULL; + int x; + + /* Rebuild the compat table to recalculate the current target arch. */ +@@ -936,23 +936,60 @@ static void rpmRebuildTargetVars(const c + rpmSetTables(RPM_MACHTABLE_BUILDARCH, RPM_MACHTABLE_BUILDOS); + + if (target && *target) { ++ /* GNU canonical format is: ++ * <arch>-<vendor>-<os>[-extension] ++ * ++ * We support the both the GNU canonical format ++ * as well as the traditional RPM formats: ++ * <arch> ++ * <arch>-<os>[-gnu] ++ */ + char *c; + /* Set arch and os from specified build target */ + ca = xstrdup(*target); +- if ((c = strchr(ca, '-')) != NULL) { ++ if ((c = strchr(ca, '-')) == NULL) { ++ /* Format is <arch> */ ++ ; ++ } else { + *c++ = '\0'; +- +- if ((co = strrchr(c, '-')) == NULL) { +- co = c; ++ cv = c; ++ ++ if ((c = strchr(c, '-')) == NULL) { ++ /* Format is <arch>-<os> */ ++ co = cv; ++ cv = NULL; + } else { +- if (!xstrcasecmp(co, "-gnu")) +- *co = '\0'; +- if ((co = strrchr(c, '-')) == NULL) +- co = c; +- else +- co++; ++ *c++ = '\0'; ++ co = c; ++ ++ if ((c = strchr(c, '-')) == NULL) { ++ /* Might be: ++ * <arch>-<vendor>-<os> ++ * <arch>-<os>-gnu ++ */ ++ if (!xstrcasecmp(co, "gnu")) { ++ /* Format was <arch>-<os>-gnu */ ++ ce = co; ++ co = cv; ++ cv = NULL; ++ } ++ } else { ++ /* Format was <arch>-<vendor>-<os>-<extension> */ ++ *c++ = '\0'; ++ ce = c; ++ } + } ++ if (cv != NULL) cv = xstrdup(cv); + if (co != NULL) co = xstrdup(co); ++ if (ce != NULL) { ++ /* We need to prefix it with a "-" */ ++ char * lce = NULL; ++ ++ lce = xmalloc(strlen(ce) + sizeof("-")); ++ sprintf(lce, "-%s", ce); ++ ++ ce = lce; ++ } + } + } else { + const char *a = NULL; +@@ -995,8 +1032,16 @@ static void rpmRebuildTargetVars(const c + addMacro(NULL, "_target", NULL, ct, RMIL_RPMRC); + delMacro(NULL, "_target_cpu"); + addMacro(NULL, "_target_cpu", NULL, ca, RMIL_RPMRC); ++ if (cv) { ++ delMacro(NULL, "_target_vendor"); ++ addMacro(NULL, "_target_vendor", NULL, cv, RMIL_RPMRC); ++ } + delMacro(NULL, "_target_os"); + addMacro(NULL, "_target_os", NULL, co, RMIL_RPMRC); ++ if (ce) { ++ delMacro(NULL, "_gnu"); ++ addMacro(NULL, "_gnu", NULL, ce, RMIL_RPMRC); ++ } + + if (canontarget) + *canontarget = ct; +@@ -1004,8 +1049,12 @@ static void rpmRebuildTargetVars(const c + ct = _free(ct); + ca = _free(ca); + /*@-usereleased@*/ ++ cv = _free(cv); ++ /*@-usereleased@*/ + co = _free(co); + /*@=usereleased@*/ ++ ce = _free(ce); ++ /*@-usereleased@*/ + } + + void rpmFreeRpmrc(void) |