--- /dev/null
+--- rpm-5.4.10/lib/depends.c.ignore_arch~ 2012-07-27 21:11:47.463139875 +0200
++++ rpm-5.4.10/lib/depends.c 2012-07-27 21:29:21.811958701 +0200
+@@ -587,11 +587,24 @@ int rpmtsAddInstallElement(rpmts ts, Hea
+ if (nplatpat > 1) {
+ const char * platform = NULL;
+
+- he->tag = RPMTAG_PLATFORM;
+- xx = headerGet(h, he, 0);
+- platform = he->p.str;
+- if (!xx || platform == NULL)
+- platform = rpmExpand(arch, "-unknown-", os, NULL);
++ /*
++ * If ignore arch, we just set the arch in package platform string to
++ * same as on system so that we're sure that it'll match, same goes for
++ * os as well.
++ */
++ if (rpmExpandNumeric("%{__ignore_arch}") || rpmExpandNumeric("%{__ignore_os}")) {
++ platform = rpmExpand(
++ rpmExpandNumeric("%{__ignore_arch}") ? "%{_target_cpu}" : arch,
++ "-unknown-",
++ rpmExpandNumeric("%{__ignore_os}") ? "%{_target_os}" : os,
++ NULL);
++ } else {
++ he->tag = RPMTAG_PLATFORM;
++ xx = headerGet(h, he, 0);
++ platform = he->p.str;
++ if (!xx || platform == NULL)
++ platform = rpmExpand(arch, "-unknown-", os, NULL);
++ }
+
+ rc = rpmPlatformScore(platform, platpat, nplatpat);
+ #if defined(RPM_VENDOR_MANDRIVA)
+--- rpm-5.4.10/rpmpopt.in.ignore_arch~ 2012-07-27 21:29:07.687135285 +0200
++++ rpm-5.4.10/rpmpopt.in 2012-07-27 21:29:35.399788829 +0200
+@@ -431,6 +431,10 @@ rpm alias --without --define "_without_
+
+ rpm alias --arch --qf '%-34{=NAME}\t%{ARCH}\n' \
+ --POPTdesc=$"list package architecture"
++
++rpm alias --ignorearch --define '__ignore_arch 1'
++rpm alias --ignoreos --define '__ignore_os 1'
++
+ #==============================================================================
+ rpmbuild alias --dbpath --define '_dbpath !#:+' \
+ --POPTdesc=$"use database in DIRECTORY" \