summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Lock <joshua.g.lock@intel.com>2016-03-11 14:07:29 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-03-20 22:57:58 +0000
commita6e7a86f1635be9a688c56c25e9d215ea4d2cc84 (patch)
tree148f5a4ebc23414c72263196cb9ee48a26f56847
parentf59263a2d1a4918e8dd12fcf968a826b3e8fa018 (diff)
downloadopenembedded-core-a6e7a86f1635be9a688c56c25e9d215ea4d2cc84.tar.gz
openembedded-core-a6e7a86f1635be9a688c56c25e9d215ea4d2cc84.tar.bz2
openembedded-core-a6e7a86f1635be9a688c56c25e9d215ea4d2cc84.zip
rpm: remove RPM 4
RPM4 support is buggy and incomplete. As we don't have the resources or interest to maintain it this patch removes it. Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/recipes-devtools/rpm/rpm-4.11.2/add_RPMSENSE_MISSINGOK_to_rpmmodule.patch20
-rw-r--r--meta/recipes-devtools/rpm/rpm-4.11.2/disable_shortcircuited.patch23
-rw-r--r--meta/recipes-devtools/rpm/rpm-4.11.2/fix_libdir.patch19
-rwxr-xr-xmeta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh16
-rw-r--r--meta/recipes-devtools/rpm/rpm-4.11.2/remove-db3-from-configure.patch26
-rw-r--r--meta/recipes-devtools/rpm/rpm-4.11.2/remove-dir-check.patch23
-rw-r--r--meta/recipes-devtools/rpm/rpm-4.11.2/rpm-scriptetexechelp.patch194
-rw-r--r--meta/recipes-devtools/rpm/rpm-4.11.2/support-suggests-tag.patch384
-rw-r--r--meta/recipes-devtools/rpm/rpm-4.11.2/use-pkgconfig-for-python.patch38
-rw-r--r--meta/recipes-devtools/rpm/rpm_4.11.2.bb132
10 files changed, 0 insertions, 875 deletions
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/add_RPMSENSE_MISSINGOK_to_rpmmodule.patch b/meta/recipes-devtools/rpm/rpm-4.11.2/add_RPMSENSE_MISSINGOK_to_rpmmodule.patch
deleted file mode 100644
index b877870411..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/add_RPMSENSE_MISSINGOK_to_rpmmodule.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Inappropriate [OE-Specific]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-Signed-off-by: Ronan Le Martret <ronan.lemartret@open.eurogiciel.org>
-
-diff --git a/python/rpmmodule.c b/python/rpmmodule.c
-index a4fe217..728c66c 100644
---- a/python/rpmmodule.c
-+++ b/python/rpmmodule.c
-@@ -396,6 +396,10 @@ static int initModule(PyObject *m)
- REGISTER_ENUM(RPMSENSE_STRONG);
- REGISTER_ENUM(RPMSENSE_CONFIG);
-
-+#if defined(RPM_VENDOR_OE)
-+ REGISTER_ENUM(RPMSENSE_MISSINGOK);
-+#endif
-+
- REGISTER_ENUM(RPMTRANS_FLAG_TEST);
- REGISTER_ENUM(RPMTRANS_FLAG_BUILD_PROBS);
- REGISTER_ENUM(RPMTRANS_FLAG_NOSCRIPTS);
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/disable_shortcircuited.patch b/meta/recipes-devtools/rpm/rpm-4.11.2/disable_shortcircuited.patch
deleted file mode 100644
index 7a646de373..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/disable_shortcircuited.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Upstream-Status: Pending
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-Signed-off-by: Ronan Le Martret <ronan.lemartret@open.eurogiciel.org>
-
-
-Index: rpm-4.11.2/build/pack.c
-===================================================================
---- rpm-4.11.2.orig/build/pack.c
-+++ rpm-4.11.2/build/pack.c
-@@ -571,9 +571,9 @@ rpmRC packageBinaries(rpmSpec spec, cons
- headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16);
- }
-
-- if (cheating) {
-- (void) rpmlibNeedsFeature(pkg, "ShortCircuited", "4.9.0-1");
-- }
-+// if (cheating) {
-+// (void) rpmlibNeedsFeature(pkg, "ShortCircuited", "4.9.0-1");
-+// }
-
- { char *binFormat = rpmGetPath("%{_rpmfilename}", NULL);
- char *binRpm, *binDir;
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/fix_libdir.patch b/meta/recipes-devtools/rpm/rpm-4.11.2/fix_libdir.patch
deleted file mode 100644
index be0626c8b3..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/fix_libdir.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Upstream-Status: Inappropriate [OE-Core specific]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-Signed-off-by: Ronan Le Martret <ronan.lemartret@open.eurogiciel.org>
-
-
-diff --git a/installplatform b/installplatform
-index 8c3eba0..fa15e91 100755
---- a/installplatform
-+++ b/installplatform
-@@ -112,7 +112,7 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
- [ -z "$CANONARCH" ] && continue
-
- if [ "$OS" = "linux" ] && [ "$CANONCOLOR" = 3 ]; then
-- LIB=${LIB}64
-+ LIB=${LIB}
- fi
-
- PPD="${DESTDIR}/${platformdir}/${ARCH}-${OS}"
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh b/meta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh
deleted file mode 100755
index 083b174f17..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-[ $# -ge 1 ] || {
- cat > /dev/null
- exit 0
-}
-
-case $1 in
--R|--requires)
- shift
- grep "/usr/\(lib[^/]*\|share\)/python[^/]*/" >/dev/null && echo "python"
- exit 0
- ;;
-esac
-
-exit 0
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/remove-db3-from-configure.patch b/meta/recipes-devtools/rpm/rpm-4.11.2/remove-db3-from-configure.patch
deleted file mode 100644
index 2640e54b5b..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/remove-db3-from-configure.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-
-Disable configuring the db3 directory since we will be using the
-external DB provided as part of OE-Core already, no need to have
-duplicate database code.
-
-Upstream-Status: Inappropriate [OE-Core Specific]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-Index: rpm-4.11.2/configure.ac
-===================================================================
---- rpm-4.11.2.orig/configure.ac
-+++ rpm-4.11.2/configure.ac
-@@ -825,9 +825,9 @@ AC_SUBST(RPMCONFIGDIR)
-
- AC_SUBST(OBJDUMP)
-
--if test "$with_external_db" = no; then
-- AC_CONFIG_SUBDIRS(db3)
--fi
-+#if test "$with_external_db" = no; then
-+# AC_CONFIG_SUBDIRS(db3)
-+#fi
-
- AM_CONDITIONAL([WITH_INTERNAL_DB],[test "$with_external_db" = no])
- AM_CONDITIONAL([DOXYGEN],[test "$DOXYGEN" != no])
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/remove-dir-check.patch b/meta/recipes-devtools/rpm/rpm-4.11.2/remove-dir-check.patch
deleted file mode 100644
index f1ecab7b0e..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/remove-dir-check.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Upstream-Status: Pending
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-Signed-off-by: Ronan Le Martret <ronan.lemartret@open.eurogiciel.org>
-
-
-Index: rpm-4.11.2/build/files.c
-===================================================================
---- rpm-4.11.2.orig/build/files.c
-+++ rpm-4.11.2/build/files.c
-@@ -1321,12 +1321,6 @@ static rpmRC addFile(FileList fl, const
- }
- }
-
-- /* Error out when a non-directory is specified as one in spec */
-- if (fl->cur.isDir && (statp == &statbuf) && !S_ISDIR(statp->st_mode)) {
-- rpmlog(RPMLOG_ERR, _("Not a directory: %s\n"), diskPath);
-- goto exit;
-- }
--
- /* Don't recurse into explicit %dir, don't double-recurse from fts */
- if ((fl->cur.isDir != 1) && (statp == &statbuf) && S_ISDIR(statp->st_mode)) {
- return recurseDir(fl, diskPath);
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/rpm-scriptetexechelp.patch b/meta/recipes-devtools/rpm/rpm-4.11.2/rpm-scriptetexechelp.patch
deleted file mode 100644
index 9333dea441..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/rpm-scriptetexechelp.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-Upstream-Status: Inappropriate [OE-Core]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-Signed-off-by: Ronan Le Martret <ronan.lemartret@open.eurogiciel.org>
-
-
-Index: rpm-4.11.2/lib/psm.c
-===================================================================
---- rpm-4.11.2.orig/lib/psm.c
-+++ rpm-4.11.2/lib/psm.c
-@@ -421,7 +421,8 @@ static rpmRC runScript(rpmpsm psm, ARGV_
-
- rpmswEnter(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0);
- rc = rpmScriptRun(script, arg1, arg2, sfd,
-- prefixes, warn_only, selinux);
-+ prefixes, warn_only, selinux, rpmtsRootDir(psm->ts) );
-+
- rpmswExit(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0);
-
- /* Map warn-only errors to "notfound" for script stop callback */
-@@ -958,15 +959,49 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
- case PSM_DESTROY:
- break;
- case PSM_SCRIPT: /* Run current package scriptlets. */
-+#ifdef RPM_VENDOR_OE
-+ {
-+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
-+ if (scriptletWrapper && *scriptletWrapper)
-+ (void) rpmChrootOut();
-+#endif
-+
- rc = runInstScript(psm);
-+#ifdef RPM_VENDOR_OE
-+ if (scriptletWrapper && *scriptletWrapper)
-+ (void) rpmChrootIn();
-+ }
-+#endif
- break;
- case PSM_TRIGGERS:
- /* Run triggers in other package(s) this package sets off. */
-+#ifdef RPM_VENDOR_OE
-+ {
-+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
-+ if (scriptletWrapper && *scriptletWrapper)
-+ (void) rpmChrootOut();
-+#endif
- rc = runTriggers(psm);
-+#ifdef RPM_VENDOR_OE
-+ if (scriptletWrapper && *scriptletWrapper)
-+ (void) rpmChrootIn();
-+ }
-+#endif
- break;
- case PSM_IMMED_TRIGGERS:
- /* Run triggers in this package other package(s) set off. */
-+#ifdef RPM_VENDOR_OE
-+ {
-+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
-+ if (scriptletWrapper && *scriptletWrapper)
-+ (void) rpmChrootOut();
-+#endif
- rc = runImmedTriggers(psm);
-+#ifdef RPM_VENDOR_OE
-+ if (scriptletWrapper && *scriptletWrapper)
-+ (void) rpmChrootIn();
-+ }
-+#endif
- break;
-
- case PSM_RPMDB_ADD: {
-Index: rpm-4.11.2/lib/rpmscript.c
-===================================================================
---- rpm-4.11.2.orig/lib/rpmscript.c
-+++ rpm-4.11.2/lib/rpmscript.c
-@@ -92,7 +92,7 @@ static rpmRC runLuaScript(int selinux, A
- static const char * const SCRIPT_PATH = "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin";
-
- static void doScriptExec(int selinux, ARGV_const_t argv, ARGV_const_t prefixes,
-- FD_t scriptFd, FD_t out)
-+ FD_t scriptFd, FD_t out, char * rootDir )
- {
- int pipes[2];
- int flag;
-@@ -158,13 +158,12 @@ static void doScriptExec(int selinux, AR
- setenv("RPM_INSTALL_PREFIX", *pf, 1);
- }
- }
--
-- if (chdir("/") == 0) {
-+ if (chdir(rootDir) == 0) {
- /* XXX Don't mtrace into children. */
- unsetenv("MALLOC_CHECK_");
-
- /* Permit libselinux to do the scriptlet exec. */
-- if (selinux == 1) {
-+ if (selinux == 1) {
- xx = rpm_execcon(0, argv[0], argv, environ);
- }
-
-@@ -175,12 +174,12 @@ static void doScriptExec(int selinux, AR
- _exit(127); /* exit 127 for compatibility with bash(1) */
- }
-
--static char * writeScript(const char *cmd, const char *script)
-+static char * writeScript(const char *cmd, const char *script, char * rootDir)
- {
- char *fn = NULL;
- size_t slen = strlen(script);
- int ok = 0;
-- FD_t fd = rpmMkTempFile("/", &fn);
-+ FD_t fd = rpmMkTempFile(rootDir, &fn);
-
- if (Ferror(fd))
- goto exit;
-@@ -204,7 +203,7 @@ exit:
- */
- static rpmRC runExtScript(int selinux, ARGV_const_t prefixes,
- const char *sname, rpmlogLvl lvl, FD_t scriptFd,
-- ARGV_t * argvp, const char *script, int arg1, int arg2)
-+ ARGV_t * argvp, const char *script, int arg1, int arg2,char * rootDir)
- {
- FD_t out = NULL;
- char * fn = NULL;
-@@ -215,7 +214,7 @@ static rpmRC runExtScript(int selinux, A
- rpmlog(RPMLOG_DEBUG, "%s: scriptlet start\n", sname);
-
- if (script) {
-- fn = writeScript(*argvp[0], script);
-+ fn = writeScript(*argvp[0], script, rootDir);
- if (fn == NULL) {
- rpmlog(RPMLOG_ERR,
- _("Couldn't create temporary file for %s: %s\n"),
-@@ -258,7 +257,7 @@ static rpmRC runExtScript(int selinux, A
- } else if (pid == 0) {/* Child */
- rpmlog(RPMLOG_DEBUG, "%s: execv(%s) pid %d\n",
- sname, *argvp[0], (unsigned)getpid());
-- doScriptExec(selinux, *argvp, prefixes, scriptFd, out);
-+ doScriptExec(selinux, *argvp, prefixes, scriptFd, out, rootDir);
- }
-
- do {
-@@ -297,13 +296,27 @@ exit:
- }
-
- rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd,
-- ARGV_const_t prefixes, int warn_only, int selinux)
-+ ARGV_const_t prefixes, int warn_only, int selinux, char * rootDir)
- {
- ARGV_t args = NULL;
- rpmlogLvl lvl = warn_only ? RPMLOG_WARNING : RPMLOG_ERR;
- rpmRC rc;
--
-- if (script == NULL) return RPMRC_OK;
-+#ifdef RPM_VENDOR_OE
-+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
-+#endif
-+
-+ if (script == NULL) return RPMRC_OK;
-+#ifdef RPM_VENDOR_OE
-+ if (scriptletWrapper && *scriptletWrapper) {
-+ argvAdd(&args, scriptletWrapper);
-+
-+ if ( rootDir ) {
-+ argvAdd(&args, rootDir);
-+ } else {
-+ argvAdd(&args, "/");
-+ }
-+ }
-+#endif
-
- /* construct a new argv as we can't modify the one from header */
- if (script->args) {
-@@ -315,7 +328,7 @@ rpmRC rpmScriptRun(rpmScript script, int
- if (rstreq(args[0], "<lua>")) {
- rc = runLuaScript(selinux, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2);
- } else {
-- rc = runExtScript(selinux, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2);
-+ rc = runExtScript(selinux, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, rootDir);
- }
- argvFree(args);
-
-Index: rpm-4.11.2/lib/rpmscript.h
-===================================================================
---- rpm-4.11.2.orig/lib/rpmscript.h
-+++ rpm-4.11.2/lib/rpmscript.h
-@@ -29,7 +29,7 @@ rpmScript rpmScriptFree(rpmScript script
-
- RPM_GNUC_INTERNAL
- rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd,
-- ARGV_const_t prefixes, int warn_only, int selinux);
-+ ARGV_const_t prefixes, int warn_only, int selinux, char * rootDir);
-
- RPM_GNUC_INTERNAL
- rpmTagVal rpmScriptTag(rpmScript script);
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/support-suggests-tag.patch b/meta/recipes-devtools/rpm/rpm-4.11.2/support-suggests-tag.patch
deleted file mode 100644
index 3da608573a..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/support-suggests-tag.patch
+++ /dev/null
@@ -1,384 +0,0 @@
-
-Upstream-Status: Pending
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-Signed-off-by: Ronan Le Martret <ronan.lemartret@open.eurogiciel.org>
-
-diff --git a/build/pack.c b/build/pack.c
-index b6b2bea..5c3d8df 100644
---- a/build/pack.c
-+++ b/build/pack.c
-@@ -273,8 +273,10 @@ static rpmTagVal depevrtags[] = {
- RPMTAG_CONFLICTVERSION,
- RPMTAG_ORDERVERSION,
- RPMTAG_TRIGGERVERSION,
-- RPMTAG_SUGGESTSVERSION,
-- RPMTAG_ENHANCESVERSION,
-+ RPMTAG_SUGGESTVERSION,
-+ RPMTAG_ENHANCEVERSION,
-+ RPMTAG_RECOMMENDVERSION,
-+ RPMTAG_SUPPLEMENTVERSION,
- 0
- };
-
-diff --git a/build/parsePreamble.c b/build/parsePreamble.c
-index 5772bef..cbbbee3 100644
---- a/build/parsePreamble.c
-+++ b/build/parsePreamble.c
-@@ -821,6 +821,10 @@ static rpmRC handlePreambleTag(rpmSpec spec, Package pkg, rpmTagVal tag,
- }
- /* fallthrough */
- case RPMTAG_PREREQ:
-+ case RPMTAG_RECOMMENDFLAGS:
-+ case RPMTAG_SUGGESTFLAGS:
-+ case RPMTAG_SUPPLEMENTFLAGS:
-+ case RPMTAG_ENHANCEFLAGS:
- case RPMTAG_CONFLICTFLAGS:
- case RPMTAG_OBSOLETEFLAGS:
- case RPMTAG_PROVIDEFLAGS:
-@@ -922,6 +926,10 @@ static struct PreambleRec_s const preambleList[] = {
- {RPMTAG_ICON, 0, 0, LEN_AND_STR("icon")},
- {RPMTAG_PROVIDEFLAGS, 0, 0, LEN_AND_STR("provides")},
- {RPMTAG_REQUIREFLAGS, 2, 0, LEN_AND_STR("requires")},
-+ {RPMTAG_RECOMMENDFLAGS, 0, 0, LEN_AND_STR("recommends")},
-+ {RPMTAG_SUGGESTFLAGS, 0, 0, LEN_AND_STR("suggests")},
-+ {RPMTAG_SUPPLEMENTFLAGS, 0, 0, LEN_AND_STR("supplements")},
-+ {RPMTAG_ENHANCEFLAGS, 0, 0, LEN_AND_STR("enhances")},
- {RPMTAG_PREREQ, 2, 1, LEN_AND_STR("prereq")},
- {RPMTAG_CONFLICTFLAGS, 0, 0, LEN_AND_STR("conflicts")},
- {RPMTAG_OBSOLETEFLAGS, 0, 0, LEN_AND_STR("obsoletes")},
-diff --git a/build/parseReqs.c b/build/parseReqs.c
-index ba080a1..1427111 100644
---- a/build/parseReqs.c
-+++ b/build/parseReqs.c
-@@ -61,6 +61,18 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTagVal tagN,
- nametag = RPMTAG_REQUIRENAME;
- tagflags |= RPMSENSE_ANY;
- break;
-+ case RPMTAG_RECOMMENDFLAGS:
-+ nametag = RPMTAG_RECOMMENDNAME;
-+ break;
-+ case RPMTAG_SUGGESTFLAGS:
-+ nametag = RPMTAG_SUGGESTNAME;
-+ break;
-+ case RPMTAG_SUPPLEMENTFLAGS:
-+ nametag = RPMTAG_SUPPLEMENTNAME;
-+ break;
-+ case RPMTAG_ENHANCEFLAGS:
-+ nametag = RPMTAG_ENHANCENAME;
-+ break;
- case RPMTAG_PROVIDEFLAGS:
- nametag = RPMTAG_PROVIDENAME;
- break;
-diff --git a/build/reqprov.c b/build/reqprov.c
-index a368f42..c270af6 100644
---- a/build/reqprov.c
-+++ b/build/reqprov.c
-@@ -81,6 +81,30 @@ int addReqProv(Package pkg, rpmTagVal tagN,
- extra = Flags & RPMSENSE_TRIGGER;
- dsp = &pkg->triggers;
- break;
-+ case RPMTAG_RECOMMENDNAME:
-+ versiontag = RPMTAG_RECOMMENDVERSION;
-+ flagtag = RPMTAG_RECOMMENDFLAGS;
-+ extra = Flags & _ALL_REQUIRES_MASK;
-+ dsp = &pkg->recommends;
-+ break;
-+ case RPMTAG_SUGGESTNAME:
-+ versiontag = RPMTAG_SUGGESTVERSION;
-+ flagtag = RPMTAG_SUGGESTFLAGS;
-+ extra = Flags & _ALL_REQUIRES_MASK;
-+ dsp = &pkg->suggests;
-+ break;
-+ case RPMTAG_SUPPLEMENTNAME:
-+ versiontag = RPMTAG_SUPPLEMENTVERSION;
-+ flagtag = RPMTAG_SUPPLEMENTFLAGS;
-+ extra = Flags & _ALL_REQUIRES_MASK;
-+ dsp = &pkg->supplements;
-+ break;
-+ case RPMTAG_ENHANCENAME:
-+ versiontag = RPMTAG_ENHANCEVERSION;
-+ flagtag = RPMTAG_ENHANCEFLAGS;
-+ extra = Flags & _ALL_REQUIRES_MASK;
-+ dsp = &pkg->enhances;
-+ break;
- case RPMTAG_REQUIRENAME:
- default:
- tagN = RPMTAG_REQUIRENAME;
-diff --git a/build/rpmbuild_internal.h b/build/rpmbuild_internal.h
-index a9e4c7c..0a1977f 100644
---- a/build/rpmbuild_internal.h
-+++ b/build/rpmbuild_internal.h
-@@ -93,6 +93,10 @@ struct Package_s {
- rpmds ds; /*!< Requires: N = EVR */
- rpmds requires;
- rpmds provides;
-+ rpmds recommends;
-+ rpmds suggests;
-+ rpmds supplements;
-+ rpmds enhances;
- rpmds conflicts;
- rpmds obsoletes;
- rpmds triggers;
-diff --git a/build/spec.c b/build/spec.c
-index 703ec78..7ae2120 100644
---- a/build/spec.c
-+++ b/build/spec.c
-@@ -139,6 +139,11 @@ static Package freePackage(Package pkg)
- pkg->ds = rpmdsFree(pkg->ds);
- pkg->requires = rpmdsFree(pkg->requires);
- pkg->provides = rpmdsFree(pkg->provides);
-+ pkg->recommends = rpmdsFree(pkg->recommends);
-+ pkg->suggests = rpmdsFree(pkg->suggests);
-+ pkg->supplements = rpmdsFree(pkg->supplements);
-+ pkg->enhances = rpmdsFree(pkg->enhances);
-+
- pkg->conflicts = rpmdsFree(pkg->conflicts);
- pkg->obsoletes = rpmdsFree(pkg->obsoletes);
- pkg->triggers = rpmdsFree(pkg->triggers);
-diff --git a/lib/rpmds.c b/lib/rpmds.c
-index 7a51167..1e5dda0 100644
---- a/lib/rpmds.c
-+++ b/lib/rpmds.c
-@@ -52,6 +52,22 @@ static int dsType(rpmTagVal tag,
- t = "Requires";
- evr = RPMTAG_REQUIREVERSION;
- f = RPMTAG_REQUIREFLAGS;
-+ } else if (tag == RPMTAG_SUPPLEMENTNAME) {
-+ t = "Supplements";
-+ evr = RPMTAG_SUPPLEMENTVERSION;
-+ f = RPMTAG_SUPPLEMENTFLAGS;
-+ } else if (tag == RPMTAG_ENHANCENAME) {
-+ t = "Enhances";
-+ evr = RPMTAG_ENHANCEVERSION;
-+ f = RPMTAG_ENHANCEFLAGS;
-+ } else if (tag == RPMTAG_RECOMMENDNAME) {
-+ t = "Recommends";
-+ evr = RPMTAG_RECOMMENDVERSION;
-+ f = RPMTAG_RECOMMENDFLAGS;
-+ } else if (tag == RPMTAG_SUGGESTNAME) {
-+ t = "Suggests";
-+ evr = RPMTAG_SUGGESTVERSION;
-+ f = RPMTAG_SUGGESTFLAGS;
- } else if (tag == RPMTAG_CONFLICTNAME) {
- t = "Conflicts";
- evr = RPMTAG_CONFLICTVERSION;
-diff --git a/lib/rpmtag.h b/lib/rpmtag.h
-index 64b03f1..b943229 100644
---- a/lib/rpmtag.h
-+++ b/lib/rpmtag.h
-@@ -217,14 +217,14 @@ typedef enum rpmTag_e {
- RPMTAG_PRETRANSPROG = 1153, /* s[] */
- RPMTAG_POSTTRANSPROG = 1154, /* s[] */
- RPMTAG_DISTTAG = 1155, /* s */
-- RPMTAG_SUGGESTSNAME = 1156, /* s[] extension (unimplemented) */
--#define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME /* s[] (unimplemented) */
-- RPMTAG_SUGGESTSVERSION = 1157, /* s[] extension (unimplemented) */
-- RPMTAG_SUGGESTSFLAGS = 1158, /* i[] extension (unimplemented) */
-- RPMTAG_ENHANCESNAME = 1159, /* s[] extension placeholder (unimplemented) */
--#define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME /* s[] (unimplemented) */
-- RPMTAG_ENHANCESVERSION = 1160, /* s[] extension placeholder (unimplemented) */
-- RPMTAG_ENHANCESFLAGS = 1161, /* i[] extension placeholder (unimplemented) */
-+ RPMTAG_OLDSUGGESTSNAME = 1156, /* s[] (unimplemented) */
-+#define RPMTAG_OLDSUGGESTS RPMTAG_OLDSUGGESTSNAME /* s[] (unimplemented) */
-+ RPMTAG_OLDSUGGESTSVERSION = 1157, /* s[] (unimplemented) */
-+ RPMTAG_OLDSUGGESTSFLAGS = 1158, /* i[] (unimplemented) */
-+ RPMTAG_OLDENHANCESNAME = 1159, /* s[] (unimplemented) */
-+#define RPMTAG_OLDENHANCES RPMTAG_OLDENHANCESNAME /* s[] (unimplemented) */
-+ RPMTAG_OLDENHANCESVERSION = 1160, /* s[] (unimplemented) */
-+ RPMTAG_OLDENHANCESFLAGS = 1161, /* i[] (unimplemented) */
- RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */
- RPMTAG_CVSID = 1163, /* s (unimplemented) */
- #define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */
-@@ -261,6 +261,7 @@ typedef enum rpmTag_e {
- RPMTAG_BUILDOBSOLETES = 1194, /* internal (unimplemented) */
- RPMTAG_DBINSTANCE = 1195, /* i extension */
- RPMTAG_NVRA = 1196, /* s extension */
-+
- /* tags 1997-4999 reserved */
- RPMTAG_FILENAMES = 5000, /* s[] extension */
- RPMTAG_FILEPROVIDE = 5001, /* s[] extension */
-@@ -307,6 +308,26 @@ typedef enum rpmTag_e {
- RPMTAG_OBSOLETENEVRS = 5043, /* s[] extension */
- RPMTAG_CONFLICTNEVRS = 5044, /* s[] extension */
- RPMTAG_FILENLINKS = 5045, /* i[] extension */
-+ RPMTAG_RECOMMENDNAME = 5046, /* s[] */
-+#define RPMTAG_RECOMMENDS RPMTAG_RECOMMENDNAME /* s[] */
-+ RPMTAG_RECOMMENDVERSION = 5047, /* s[] */
-+ RPMTAG_RECOMMENDFLAGS = 5048, /* i[] */
-+ RPMTAG_SUGGESTNAME = 5049, /* s[] */
-+#define RPMTAG_SUGGESTS RPMTAG_SUGGESTNAME /* s[] */
-+ RPMTAG_SUGGESTVERSION = 5050, /* s[] extension */
-+ RPMTAG_SUGGESTFLAGS = 5051, /* i[] extension */
-+ RPMTAG_SUPPLEMENTNAME = 5052, /* s[] */
-+#define RPMTAG_SUPPLEMENTS RPMTAG_SUPPLEMENTNAME /* s[] */
-+ RPMTAG_SUPPLEMENTVERSION = 5053, /* s[] */
-+ RPMTAG_SUPPLEMENTFLAGS = 5054, /* i[] */
-+ RPMTAG_ENHANCENAME = 5055, /* s[] */
-+#define RPMTAG_ENHANCES RPMTAG_ENHANCENAME /* s[] */
-+ RPMTAG_ENHANCEVERSION = 5056, /* s[] */
-+ RPMTAG_ENHANCEFLAGS = 5057, /* i[] */
-+ RPMTAG_RECOMMENDNEVRS = 5058, /* s[] extension */
-+ RPMTAG_SUGGESTNEVRS = 5059, /* s[] extension */
-+ RPMTAG_SUPPLEMENTNEVRS = 5060, /* s[] extension */
-+ RPMTAG_ENHANCENEVRS = 5061, /* s[] extension */
-
- RPMTAG_FIRSTFREE_TAG /*!< internal */
- } rpmTag;
-diff --git a/lib/tagexts.c b/lib/tagexts.c
-index 29b2bae..e940310 100644
---- a/lib/tagexts.c
-+++ b/lib/tagexts.c
-@@ -761,6 +761,26 @@ static int requirenevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
- return depnevrsTag(h, td, hgflags, RPMTAG_REQUIRENAME);
- }
-
-+static int recommendnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
-+{
-+ return depnevrsTag(h, td, hgflags, RPMTAG_RECOMMENDNAME);
-+}
-+
-+static int suggestnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
-+{
-+ return depnevrsTag(h, td, hgflags, RPMTAG_SUGGESTNAME);
-+}
-+
-+static int supplementnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
-+{
-+ return depnevrsTag(h, td, hgflags, RPMTAG_SUPPLEMENTNAME);
-+}
-+
-+static int enhancenevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
-+{
-+ return depnevrsTag(h, td, hgflags, RPMTAG_ENHANCENAME);
-+}
-+
- static int providenevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
- {
- return depnevrsTag(h, td, hgflags, RPMTAG_PROVIDENAME);
-@@ -823,6 +843,10 @@ static const struct headerTagFunc_s rpmHeaderTagExtensions[] = {
- { RPMTAG_EPOCHNUM, epochnumTag },
- { RPMTAG_INSTFILENAMES, instfilenamesTag },
- { RPMTAG_REQUIRENEVRS, requirenevrsTag },
-+ { RPMTAG_RECOMMENDNEVRS, recommendnevrsTag},
-+ { RPMTAG_SUGGESTNEVRS, suggestnevrsTag},
-+ { RPMTAG_SUPPLEMENTNEVRS, supplementnevrsTag},
-+ { RPMTAG_ENHANCENEVRS, enhancenevrsTag},
- { RPMTAG_PROVIDENEVRS, providenevrsTag },
- { RPMTAG_OBSOLETENEVRS, obsoletenevrsTag },
- { RPMTAG_CONFLICTNEVRS, conflictnevrsTag },
-diff --git a/rpmpopt.in b/rpmpopt.in
-index 805599e..036ab4e 100644
---- a/rpmpopt.in
-+++ b/rpmpopt.in
-@@ -67,6 +67,19 @@ rpm alias --requires --qf \
- --POPTdesc=$"list capabilities required by package(s)"
- rpm alias -R --requires
-
-+rpm alias --recommends --qf \
-+ "[%|VERBOSE?{%{RECOMMENDFLAGS:deptype}: }:{}|%{RECOMMENDNEVRS}\n]" \
-+ --POPTdesc=$"list capabilities recommended by package(s)"
-+rpm alias --suggests --qf \
-+ "[%|VERBOSE?{%{SUGGESTFLAGS:deptype}: }:{}|%{SUGGESTNEVRS}\n]" \
-+ --POPTdesc=$"list capabilities suggested by package(s)"
-+rpm alias --supplements --qf \
-+ "[%|VERBOSE?{%{SUPPLEMENTFLAGS:deptype}: }:{}|%{SUPPLEMENTNEVRS}\n]" \
-+ --POPTdesc=$"list capabilities supplemented by package(s)"
-+rpm alias --enhances --qf \
-+ "[%|VERBOSE?{%{ENHANCEFLAGS:deptype}: }:{}|%{ENHANCENEVRS}\n]" \
-+ --POPTdesc=$"list capabilities enhanced by package(s)"
-+
- rpm alias --info --qf '\
- Name : %{NAME}\n\
- %|EPOCH?{Epoch : %{EPOCH}\n}|\
-diff --git a/tests/data/SPECS/deptest.spec b/tests/data/SPECS/deptest.spec
-index cb4cbbd..7c47f6d 100644
---- a/tests/data/SPECS/deptest.spec
-+++ b/tests/data/SPECS/deptest.spec
-@@ -10,6 +10,10 @@ BuildArch: noarch
- %{?provs:Provides: %{provs}}
- %{?cfls:Conflicts: %{cfls}}
- %{?obs:Obsoletes: %{obs}}
-+%{?recs:Recommends: %{recs}}
-+%{?sugs:Suggests: %{sugs}}
-+%{?sups:Supplements: %{sups}}
-+%{?ens:Enhances: %{ens}}
-
- %description
- %{summary}
-diff --git a/tests/rpmbuild.at b/tests/rpmbuild.at
-index 6230903..c4c954c 100644
---- a/tests/rpmbuild.at
-+++ b/tests/rpmbuild.at
-@@ -185,3 +185,25 @@ lrwxrwxrwx /opt/globtest/linkgood
- ],
- [])
- AT_CLEANUP
-+
-+# ------------------------------
-+# Check if weak and reverse requires can be built
-+AT_SETUP([Weak and reverse requires])
-+AT_KEYWORDS([build])
-+AT_CHECK([
-+
-+runroot rpmbuild -bb --quiet \
-+ --define "pkg weakdeps" \
-+ --define "recs foo > 1.2.3" \
-+ --define "sugs bar >= 0.1.2" \
-+ --define "sups baz" \
-+ --define "ens zap = 3" \
-+ /data/SPECS/deptest.spec
-+
-+runroot rpm -qp --qf "[%{supplementname}\n]" /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm
-+],
-+[0],
-+[baz
-+],
-+[ignore])
-+AT_CLEANUP
-diff --git a/tests/rpmgeneral.at b/tests/rpmgeneral.at
-index 13131e2..80cca63 100644
---- a/tests/rpmgeneral.at
-+++ b/tests/rpmgeneral.at
-@@ -79,6 +79,11 @@ DISTTAG
- DISTURL
- DSAHEADER
- E
-+ENHANCEFLAGS
-+ENHANCENAME
-+ENHANCENEVRS
-+ENHANCES
-+ENHANCEVERSION
- EPOCH
- EPOCHNUM
- EVR
-@@ -199,6 +204,11 @@ PROVIDES
- PROVIDEVERSION
- PUBKEYS
- R
-+RECOMMENDFLAGS
-+RECOMMENDNAME
-+RECOMMENDNEVRS
-+RECOMMENDS
-+RECOMMENDVERSION
- RECONTEXTS
- RELEASE
- REMOVETID
-@@ -219,7 +229,17 @@ SOURCE
- SOURCEPACKAGE
- SOURCEPKGID
- SOURCERPM
-+SUGGESTFLAGS
-+SUGGESTNAME
-+SUGGESTNEVRS
-+SUGGESTS
-+SUGGESTVERSION
- SUMMARY
-+SUPPLEMENTFLAGS
-+SUPPLEMENTNAME
-+SUPPLEMENTNEVRS
-+SUPPLEMENTS
-+SUPPLEMENTVERSION
- TRIGGERCONDS
- TRIGGERFLAGS
- TRIGGERINDEX
diff --git a/meta/recipes-devtools/rpm/rpm-4.11.2/use-pkgconfig-for-python.patch b/meta/recipes-devtools/rpm/rpm-4.11.2/use-pkgconfig-for-python.patch
deleted file mode 100644
index 8d84cf8a11..0000000000
--- a/meta/recipes-devtools/rpm/rpm-4.11.2/use-pkgconfig-for-python.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-Use pkgconfig to get the correct include paths
-
-Upstream-Status: Pending
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-Signed-off-by: Ronan Le Martret <ronan.lemartret@open.eurogiciel.org>
-
-diff --git a/configure.ac b/configure.ac
-index e97f727..8179f44 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -540,10 +540,10 @@ esac],
-
- AS_IF([test "$enable_python" = yes],[
- AM_PATH_PYTHON([2.6],[
-- WITH_PYTHON_INCLUDE=`${PYTHON} -c 'from distutils.sysconfig import *; import sys; sys.stdout.write(get_python_inc())'`
-+ WITH_PYTHON_INCLUDE=$(${PKG_CONFIG} --cflags-only-I python)
- WITH_PYTHON_SUBPACKAGE=1
- save_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS -I$WITH_PYTHON_INCLUDE"
-+ CPPFLAGS="$CPPFLAGS $WITH_PYTHON_INCLUDE"
- AC_CHECK_HEADER([Python.h],[],
- [AC_MSG_ERROR([missing Python.h])
- ])
-diff --git a/python/Makefile.am b/python/Makefile.am
-index fff51ae..f37cb9d 100644
---- a/python/Makefile.am
-+++ b/python/Makefile.am
-@@ -4,7 +4,7 @@ EXTRA_DIST = rpm/__init__.py rpm/transaction.py
-
- AM_CPPFLAGS = -I$(top_builddir)/include/
- AM_CPPFLAGS += -I$(top_srcdir)/python
--AM_CPPFLAGS += -I@WITH_PYTHON_INCLUDE@
-+AM_CPPFLAGS += @WITH_PYTHON_INCLUDE@
-
- pkgpyexec_LTLIBRARIES = _rpmmodule.la _rpmbmodule.la _rpmsmodule.la
- pkgpyexec_DATA = rpm/__init__.py rpm/transaction.py
diff --git a/meta/recipes-devtools/rpm/rpm_4.11.2.bb b/meta/recipes-devtools/rpm/rpm_4.11.2.bb
deleted file mode 100644
index 3683971cd5..0000000000
--- a/meta/recipes-devtools/rpm/rpm_4.11.2.bb
+++ /dev/null
@@ -1,132 +0,0 @@
-SUMMARY = "The RPM package management system"
-DESCRIPTION = "The RPM Package Manager (RPM) is a powerful command line driven \
-package management system capable of installing, uninstalling, \
-verifying, querying, and updating software packages. Each software \
-package consists of an archive of files along with information about \
-the package like its version, a description, etc."
-
-SUMMARY_${PN}-dev = "Development files for manipulating RPM packages"
-DESCRIPTION_${PN}-dev = "This package contains the RPM C library and header files. These \
-development files will simplify the process of writing programs that \
-manipulate RPM packages and databases. These files are intended to \
-simplify the process of creating graphical package managers or any \
-other tools that need an intimate knowledge of RPM packages in order \
-to function."
-
-SUMMARY_python-rpm = "Python bindings for apps which will manupulate RPM packages"
-DESCRIPTION_python-rpm = "The rpm-python package contains a module that permits applications \
-written in the Python programming language to use the interface \
-supplied by the RPM Package Manager libraries."
-
-HOMEPAGE = "http://www.rpm.org"
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM ??= "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-
-DEPENDS = "db libxml2 xz findutils file popt nss bzip2 elfutils attr zlib acl gzip python"
-DEPENDS_append_class-native = " file-replacement-native"
-
-SRC_URI += "http://rpm.org/releases/rpm-4.11.x/${BP}.tar.bz2 \
- file://use-pkgconfig-for-python.patch \
- file://remove-db3-from-configure.patch \
- file://add_RPMSENSE_MISSINGOK_to_rpmmodule.patch \
- file://support-suggests-tag.patch \
- file://remove-dir-check.patch \
- file://disable_shortcircuited.patch \
- file://fix_libdir.patch \
- file://rpm-scriptetexechelp.patch \
- file://pythondeps.sh \
- file://rpm-CVE-2014-8118.patch \
- file://rpm-CVE-2013-6435.patch \
- "
-
-SRC_URI[md5sum] = "876ac9948a88367054f8ddb5c0e87173"
-SRC_URI[sha256sum] = "403f8de632b33846ce5746f429c21a60f40dff9dcb56f1b4118f37a0652a48d4"
-
-PR = "r1"
-
-inherit autotools
-inherit pythonnative
-inherit pkgconfig
-inherit gettext
-
-EXTRA_OECONF += "--host=${HOST_SYS} \
- --program-prefix= \
- --prefix=${prefix} \
- --exec-prefix=${prefix} \
- --bindir=${prefix}/bin \
- --sbindir=${prefix}/sbin \
- --sysconfdir=${sysconfdir} \
- --datadir=${prefix}/share \
- --includedir=${prefix}/include \
- --libdir=${prefix}/lib \
- --libexecdir=${prefix}/libexec \
- --localstatedir=${localstatedir} \
- --sharedstatedir=${prefix}/com \
- --mandir=${mandir} \
- --infodir=${infodir} \
- --disable-dependency-tracking \
- --with-acl \
- --without-lua \
- --without-cap \
- --enable-shared \
- --enable-python \
- --with-external-db \
- "
-
-CPPFLAGS_append = " `pkg-config --cflags nss`"
-LDFLAGS_append = " -Wl,-Bsymbolic-functions -ffunction-sections"
-CCFLAGS_append = " -fPIC "
-CXXFLAGS_append = " -fPIC "
-CFLAGS_append = " -fPIC -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE "
-
-do_configure_prepend() {
- rm -rf sqlite
- rm -f m4/libtool.m4
- rm -f m4/lt*.m4
- rm -rf db3/configure*
-}
-
-do_install_append() {
- mv ${D}/${base_bindir}/rpm ${D}/${bindir}/
- rmdir ${D}/${base_bindir}
- rm -f ${D}${prefix}/lib/*.la
- rm -f ${D}${prefix}/lib/rpm-plugins/*.la
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/*.{a,la}
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/rpm/*.{a,la}
- rm -fr ${D}/var
- install -d ${D}${prefix}/lib/rpm/bin
- ln -s ../debugedit ${D}${prefix}/lib/rpm/bin/debugedit
- ln -s ../rpmdeps ${D}${prefix}/lib/rpm/bin/rpmdeps-oecore
- install -m 0755 ${WORKDIR}/pythondeps.sh ${D}/${libdir}/rpm/pythondeps.sh
-}
-
-pkg_postinst_${PN}() {
- [ "x\$D" = "x" ] && ldconfig
- test -f ${localstatedir}/lib/rpm/Packages || rpm --initdb
- rm -f ${localstatedir}/lib/rpm/Filemd5s \
- ${localstatedir}/lib/rpm/Filedigests \
- ${localstatedir}/lib/rpm/Requireversion \
- ${localstatedir}/lib/rpm/Provideversion
-
-}
-
-pkg_postrm_${PN}() {
- [ "x\$D" = "x" ] && ldconfig
-
-}
-
-PACKAGES += "python-${PN}"
-PROVIDES += "python-rpm"
-
-FILES_${PN} += "${libdir}/rpm \
- ${libdir}/rpm-plugins/exec.so \
- "
-RDEPENDS_${PN} = "base-files run-postinsts"
-RDEPENDS_${PN}_class-native = ""
-
-FILES_${PN}-dev += "${libdir}/python2.7/site-packages/rpm/*.la"
-
-FILES_python-${PN} = "${libdir}/python2.7/site-packages/rpm/*"
-RDEPENDS_python-${PN} = "${PN} python"
-
-BBCLASSEXTEND = "native"