See if this patch avoids erasing perl. It should.
Having upgrade behavior dependent on the value configured in
# Default query format string for displaying package names everywhere
%___NVRA %%{NAME}-%%{VERSION}-%%{RELEASE}%%|ARCH?{.%%|
SOURCERPM?{%%{ARCH}}:{src}|}:{}|
is too risky ...
73 de Jeff
On Apr 15, 2008, at 9:18 AM, Jeff Johnson wrote:
> 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: 15-Apr-2008
> 15:18:38
> Branch: HEAD Handle: 2008041513183701
>
> Modified files:
> rpm CHANGES
> rpm/lib rpmte.c
>
> Log:
> - jbj: rpmte: revert to individual tags instead of RPMTAG_NVRA.
>
> Summary:
> Revision Changes Path
> 1.2301 +2 -1 rpm/CHANGES
> 2.81 +12 -8 rpm/lib/rpmte.c
>
> ______________________________________________________________________
> ______
>
> patch -p0 <<'@@ .'
> Index: rpm/CHANGES
>
> ======================================================================
> ======
> $ cvs diff -u -r1.2300 -r1.2301 CHANGES
> --- rpm/CHANGES 14 Apr 2008 11:33:03 -0000 1.2300
> +++ rpm/CHANGES 15 Apr 2008 13:18:37 -0000 1.2301
> @@ -1,5 +1,6 @@
>
> -5.1b1 -> 5.2a0:
> +5.1.0 -> 5.2a0:
> + - jbj: rpmte: revert to individual tags instead of RPMTAG_NVRA.
> - jbj: rpmte: fix: snip ".arch" from "-release", same NEVRA
> check broke.
> - afb: fix VPATH builds finding rpmversion.h (in build)
> - afb: fix parallel build of rpmdigest (automake quirk)
> @@ .
> patch -p0 <<'@@ .'
> Index: rpm/lib/rpmte.c
>
> ======================================================================
> ======
> $ cvs diff -u -r2.80 -r2.81 rpmte.c
> --- rpm/lib/rpmte.c 14 Apr 2008 11:33:04 -0000 2.80
> +++ rpm/lib/rpmte.c 15 Apr 2008 13:18:38 -0000 2.81
> @@ -57,6 +57,8 @@
> p->arch = _free(p->arch);
> p->epoch = _free(p->epoch);
> p->name = _free(p->name);
> + p->version = _free(p->version);
> + p->release = _free(p->release);
> p->NEVR = _free(p->NEVR);
> p->NEVRA = _free(p->NEVRA);
> p->pkgid = _free(p->pkgid);
> @@ -102,15 +104,17 @@
> xx = headerGet(h, he, 0);
> assert(he->p.str != NULL);
> p->NEVR = (xx ? he->p.str : xstrdup("?N-?V-?R.?A"));
> - p->name = xstrdup(p->NEVR);
> - /* XXX discard ".arch" from NVRA */
> - if ((p->release = strrchr(p->name, '.')) != NULL)
> - *p->release++ = '\0';
> - if ((p->release = strrchr(p->name, '-')) != NULL)
> - *p->release++ = '\0';
> - if ((p->version = strrchr(p->name, '-')) != NULL)
> - *p->version++ = '\0';
>
> + he->tag = RPMTAG_NAME;
> + xx = headerGet(h, he, 0);
> + p->name = (xx ? he->p.str : xstrdup("?RPMTAG_NAME?"));
> + he->tag = RPMTAG_VERSION;
> + xx = headerGet(h, he, 0);
> + p->version = (xx ? he->p.str : xstrdup("?RPMTAG_VERSION?"));
> + he->tag = RPMTAG_RELEASE;
> + xx = headerGet(h, he, 0);
> + p->release = (xx ? he->p.str : xstrdup("?RPMTAG_RELEASE?"));
> +
> p->db_instance = 0;
>
> he->tag = RPMTAG_HDRID;
> @@ .
> ______________________________________________________________________
> RPM Package Manager http://rpm5.org
> CVS Sources Repository rpm-cvs@rpm5.org
Received on Tue Apr 15 15:23:22 2008