Panu Matilainen 3f11e3
diff -up rpm-4.6.0/build/files.c.noarch-elf-check rpm-4.6.0/build/files.c
Panu Matilainen 3f11e3
--- rpm-4.6.0/build/files.c.noarch-elf-check	2009-02-06 09:18:53.000000000 +0200
Panu Matilainen 3f11e3
+++ rpm-4.6.0/build/files.c	2009-02-21 12:53:21.000000000 +0200
Panu Matilainen 3f11e3
@@ -2174,17 +2174,27 @@ int processBinaryFiles(rpmSpec spec, int
Panu Matilainen 3f11e3
     check_fileList = newStringBuf();
Panu Matilainen 3f11e3
     
Panu Matilainen 3f11e3
     for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
Panu Matilainen 3f11e3
-	const char *n, *v, *r;
Panu Matilainen 3f11e3
+	const char *n, *v, *r, *a;
Panu Matilainen 3f11e3
 
Panu Matilainen 3f11e3
 	if (pkg->fileList == NULL)
Panu Matilainen 3f11e3
 	    continue;
Panu Matilainen 3f11e3
 
Panu Matilainen 3f11e3
-	(void) headerNVR(pkg->header, &n, &v, &r);
Panu Matilainen 3f11e3
-	rpmlog(RPMLOG_NOTICE, _("Processing files: %s-%s-%s\n"), n, v, r);
Panu Matilainen 3f11e3
+	(void) headerNEVRA(pkg->header, &n, NULL, &v, &r, &a);
Panu Matilainen 3f11e3
+	rpmlog(RPMLOG_NOTICE, _("Processing files: %s-%s-%s-%s\n"), n, v, r, a);
Panu Matilainen 3f11e3
 		   
Panu Matilainen 3f11e3
 	if ((rc = processPackageFiles(spec, pkg, installSpecialDoc, test)) != RPMRC_OK ||
Panu Matilainen 3f11e3
 	    (rc = rpmfcGenerateDepends(spec, pkg)) != RPMRC_OK)
Panu Matilainen 3f11e3
 	    goto exit;
Panu Matilainen 3f11e3
+
Panu Matilainen 3f11e3
+	if (strcmp(a, "noarch") == 0 && headerGetColor(pkg->header) != 0) {
Panu Matilainen 3f11e3
+	    int terminate = rpmExpandNumeric("%{?_binaries_in_noarch_packages_terminate_build}");
Panu Matilainen 3f11e3
+	    rpmlog(terminate ? RPMLOG_ERR : RPMLOG_WARNING, 
Panu Matilainen 3f11e3
+		    _("Arch dependent binaries in noarch package\n"));
Panu Matilainen 3f11e3
+	    if (terminate) {
Panu Matilainen 3f11e3
+		rc = RPMRC_FAIL;
Panu Matilainen 3f11e3
+		goto exit;
Panu Matilainen 3f11e3
+	    }
Panu Matilainen 3f11e3
+	}
Panu Matilainen 3f11e3
     }
Panu Matilainen 3f11e3
 
Panu Matilainen 3f11e3
     /* Now we have in fileList list of files from all packages.
Panu Matilainen 3f11e3
diff -up rpm-4.6.0/macros.in.noarch-elf-check rpm-4.6.0/macros.in
Panu Matilainen 3f11e3
--- rpm-4.6.0/macros.in.noarch-elf-check	2009-02-21 12:41:20.000000000 +0200
Panu Matilainen 3f11e3
+++ rpm-4.6.0/macros.in	2009-02-21 12:41:20.000000000 +0200
Panu Matilainen 3f11e3
@@ -375,6 +375,9 @@ package or when debugging this package.\
Panu Matilainen 3f11e3
 # Note: The default value should be 0 for legacy compatibility.
Panu Matilainen 3f11e3
 %_missing_doc_files_terminate_build	1
Panu Matilainen 3f11e3
 
Panu Matilainen 3f11e3
+# Should binaries in noarch packages terminate a build?
Panu Matilainen 3f11e3
+%_binaries_in_noarch_packages_terminate_build 1
Panu Matilainen 3f11e3
+
Panu Matilainen 3f11e3
 #
Panu Matilainen 3f11e3
 # Should an ELF file processed by find-debuginfo.sh having no build ID
Panu Matilainen 3f11e3
 # terminate a build?  This is left undefined to disable it and defined to