RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 17-Aug-2008 18:06:13
Branch: HEAD Handle: 2008081716061300
Modified files:
rpm CHANGES
rpm/rpmdb rpmns.c
Log:
- WR: Permit configurable arch strings.
Summary:
Revision Changes Path
1.2517 +1 -0 rpm/CHANGES
1.9 +26 -3 rpm/rpmdb/rpmns.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2516 -r1.2517 CHANGES
--- rpm/CHANGES 17 Aug 2008 16:04:00 -0000 1.2516
+++ rpm/CHANGES 17 Aug 2008 16:06:13 -0000 1.2517
@@ -1,5 +1,6 @@
5.1.0 -> 5.2a0:
+ - jbj: WR: Permit configurable arch strings.
- jbj: WR: Use %{_host_vendor} and %{_host_os} for platform.
- jbj: WR: fakeroot maps devices to files. avoid /dev/* in checkfiles.
- jbj: lua: don't exit chroot if already within running script.
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/rpmns.c
============================================================================
$ cvs diff -u -r1.8 -r1.9 rpmns.c
--- rpm/rpmdb/rpmns.c 3 Aug 2008 19:59:09 -0000 1.8
+++ rpm/rpmdb/rpmns.c 17 Aug 2008 16:06:13 -0000 1.9
@@ -62,12 +62,35 @@
nsType rpmnsArch(const char * str)
{
+ nsType rc = RPMNS_TYPE_UNKNOWN;
const char ** av;
+
+#if defined(RPM_VENDOR_WINDRIVER)
+ const char * known_arch = rpmExpand("%{?_known_arch}", NULL);
+ const char *p, *pe, *t;
+ for (p = pe = known_arch ; rc == RPMNS_TYPE_UNKNOWN && pe && *pe ; ) {
+ while (*p && xisspace(*p)) p++;
+ pe = p ; while (*pe && !xisspace(*pe)) pe++;
+ if (p == pe)
+ break;
+ t = strndup(p, (pe - p));
+ p = pe;
+ if (!strcmp(str, t))
+ rc = RPMNS_TYPE_ARCH;
+ t = _free(t);
+ }
+ known_arch = _free(known_arch);
+#endif
+
+ if (rc == RPMNS_TYPE_UNKNOWN)
for (av = rpmnsArches; *av != NULL; av++) {
- if (!strcmp(str, *av))
- return RPMNS_TYPE_ARCH;
+ if (strcmp(str, *av))
+ continue;
+ rc = RPMNS_TYPE_ARCH;
+ break;
}
- return RPMNS_TYPE_UNKNOWN;
+
+ return rc;
}
/**
@@ .
Received on Sun Aug 17 18:06:13 2008