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:51
Branch: rpm-5_1 Handle: 2008081716065100
Modified files: (Branch: rpm-5_1)
rpm CHANGES
rpm/lib rpmns.c
Log:
- WR: Permit configurable arch strings.
Summary:
Revision Changes Path
1.2288.2.82 +1 -0 rpm/CHANGES
1.22.2.1 +26 -3 rpm/lib/rpmns.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2288.2.81 -r1.2288.2.82 CHANGES
--- rpm/CHANGES 17 Aug 2008 16:04:58 -0000 1.2288.2.81
+++ rpm/CHANGES 17 Aug 2008 16:06:51 -0000 1.2288.2.82
@@ -1,4 +1,5 @@
5.1.4 -> 5.1.5:
+ - 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: db_tool: remove gcc whinings.
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmns.c
============================================================================
$ cvs diff -u -r1.22 -r1.22.2.1 rpmns.c
--- rpm/lib/rpmns.c 2 Apr 2008 18:35:26 -0000 1.22
+++ rpm/lib/rpmns.c 17 Aug 2008 16:06:51 -0000 1.22.2.1
@@ -59,12 +59,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:51 2008