RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/build/ files.c pack.c parsePreamble.c pars...

From: Jeff Johnson <jbj@rpm5.org>
Date: Sun 19 Aug 2007 - 19:43:04 CEST
Message-Id: <20070819174304.C1E19348458@rpm5.org>
  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:   19-Aug-2007 19:43:04
  Branch: HEAD                             Handle: 2007081918430103

  Modified files:
    rpm                     CHANGES
    rpm/build               files.c pack.c parsePreamble.c parsePrep.c
                            parseSpec.c spec.c
    rpm/lib                 psm.c rpmds.c rpminstall.c
    rpm/python              header-py.c rpmts-py.c
    rpm/rpmdb               hdrNVR.c hdrfmt.c librpmdb.vers rpmdb.c

  Log:
    - eliminate headerNVR, use headerNEVRA instead.

  Summary:
    Revision    Changes     Path
    1.1591      +1  -0      rpm/CHANGES
    1.262       +4  -3      rpm/build/files.c
    2.223       +8  -6      rpm/build/pack.c
    2.130       +2  -1      rpm/build/parsePreamble.c
    2.89        +1  -1      rpm/build/parsePrep.c
    2.102       +5  -3      rpm/build/parseSpec.c
    2.153       +5  -3      rpm/build/spec.c
    2.221       +57 -67     rpm/lib/psm.c
    2.63        +2  -2      rpm/lib/rpmds.c
    1.162       +6  -7      rpm/lib/rpminstall.c
    1.51        +1  -1      rpm/python/header-py.c
    1.68        +1  -1      rpm/python/rpmts-py.c
    1.9         +0  -5      rpm/rpmdb/hdrNVR.c
    1.5         +5  -3      rpm/rpmdb/hdrfmt.c
    1.11        +0  -1      rpm/rpmdb/librpmdb.vers
    1.153       +5  -4      rpm/rpmdb/rpmdb.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1590 -r1.1591 CHANGES
  --- rpm/CHANGES	19 Aug 2007 15:26:11 -0000	1.1590
  +++ rpm/CHANGES	19 Aug 2007 17:43:01 -0000	1.1591
  @@ -1,4 +1,5 @@
   4.5 -> 5.0:
  +    - jbj: eliminate headerNVR, use headerNEVRA instead.
       - jbj: eliminate the rpmrbFoo, use rpmcliInstallFoo instead.
       - jbj: load/unload header macros for %{_sourcedir} et al expansions.
       - jbj: don't open rpmdb O_RDWR iff srpm to permit non-root installs.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/files.c
  ============================================================================
  $ cvs diff -u -r1.261 -r1.262 files.c
  --- rpm/build/files.c	18 Aug 2007 21:32:29 -0000	1.261
  +++ rpm/build/files.c	19 Aug 2007 17:43:01 -0000	1.262
  @@ -2650,7 +2650,7 @@
       check_fileList = newStringBuf();
       
       for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
  -	const char *n, *v, *r;
  +	const char *NVRA = NULL;
   	int rc;
   
   	if (pkg->fileList == NULL)
  @@ -2658,8 +2658,9 @@
   
   	(void) headerMacrosLoad(pkg->header);
   
  -	(void) headerNVR(pkg->header, &n, &v, &r);
  -	rpmMessage(RPMMESS_NORMAL, _("Processing files: %s-%s-%s\n"), n, v, r);
  +	(void) headerGetExtension(pkg->header, RPMTAG_NVRA, NULL, &NVRA, NULL);
  +	rpmMessage(RPMMESS_NORMAL, _("Processing files: %s\n"), NVRA);
  +	NVRA = _free(NVRA);
   		   
   	if ((rc = processPackageFiles(spec, pkg, installSpecialDoc, test)))
   	    res = rc;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/pack.c
  ============================================================================
  $ cvs diff -u -r2.222 -r2.223 pack.c
  --- rpm/build/pack.c	17 Aug 2007 16:04:50 -0000	2.222
  +++ rpm/build/pack.c	19 Aug 2007 17:43:01 -0000	2.223
  @@ -45,7 +45,7 @@
   	const char *name, *version, *release;
   	char fileName[BUFSIZ];
   
  -	(void) headerNVR(spec->packages->header, &name, &version, &release);
  +	(void) headerNEVRA(spec->packages->header, &name, NULL, &version, &release, NULL);
   	sprintf(fileName, "%s-%s-%s.%ssrc.rpm", name, version, release,
   	    spec->noSource ? "no" : "");
   	spec->sourceRpmName = xstrdup(fileName);
  @@ -430,7 +430,7 @@
       int bingo = 1;
   
       /* Generate provides for this package name-version-release. */
  -    xx = headerNVR(h, &name, &version, &release);
  +    xx = headerNEVRA(h, &name, NULL, &version, &release, NULL);
       if (!(name && version && release))
   	return;
       pEVR = p = alloca(21 + strlen(version) + 1 + strlen(release) + 1);
  @@ -707,7 +707,7 @@
   	lead.signature_type = RPMSIGTYPE_HEADERSIG;
   
   	{   const char *name, *version, *release;
  -	    (void) headerNVR(h, &name, &version, &release);
  +	    (void) headerNEVRA(h, &name, NULL, &version, &release, NULL);
   	    sprintf(buf, "%s-%s-%s", name, version, release);
   	    strncpy(lead.name, buf, sizeof(lead.name));
   	}
  @@ -876,10 +876,12 @@
   			       rpmHeaderFormats, &errorString);
   	    binFormat = _free(binFormat);
   	    if (binRpm == NULL) {
  -		const char *name;
  -		(void) headerNVR(pkg->header, &name, NULL, NULL);
  +		const char *NVRA = NULL;
  +		(void) headerGetExtension(pkg->header, RPMTAG_NVRA,
  +			NULL, &NVRA, NULL);
   		rpmError(RPMERR_BADFILENAME, _("Could not generate output "
  -		     "filename for package %s: %s\n"), name, errorString);
  +		     "filename for package %s: %s\n"), NVRA, errorString);
  +		NVRA = _free(NVRA);
   		return RPMERR_BADFILENAME;
   	    }
   	    fn = rpmGetPath("%{_rpmdir}/", binRpm, NULL);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/parsePreamble.c
  ============================================================================
  $ cvs diff -u -r2.129 -r2.130 parsePreamble.c
  --- rpm/build/parsePreamble.c	22 Jul 2007 01:35:29 -0000	2.129
  +++ rpm/build/parsePreamble.c	19 Aug 2007 17:43:01 -0000	2.130
  @@ -954,7 +954,8 @@
   	/* Construct the package */
   	if (flag == PART_SUBNAME) {
   	    const char * mainName;
  -	    xx = headerNVR(spec->packages->header, &mainName, NULL, NULL);
  +	    xx = headerGetEntry(spec->packages->header, RPMTAG_NAME,
  +			NULL, &mainName, NULL);
   	    sprintf(NVR, "%s-%s", mainName, name);
   	} else
   	    strcpy(NVR, name);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/parsePrep.c
  ============================================================================
  $ cvs diff -u -r2.88 -r2.89 parsePrep.c
  --- rpm/build/parsePrep.c	17 Aug 2007 00:13:56 -0000	2.88
  +++ rpm/build/parsePrep.c	19 Aug 2007 17:43:01 -0000	2.89
  @@ -384,7 +384,7 @@
   	spec->buildSubdir = xstrdup(dirName);
       } else {
   	const char *name, *version;
  -	(void) headerNVR(spec->packages->header, &name, &version, NULL);
  +	(void) headerNEVRA(spec->packages->header, &name, NULL, &version, NULL, NULL);
   	sprintf(buf, "%s-%s", name, version);
   	spec->buildSubdir = xstrdup(buf);
       }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/parseSpec.c
  ============================================================================
  $ cvs diff -u -r2.101 -r2.102 parseSpec.c
  --- rpm/build/parseSpec.c	10 Jul 2007 19:04:54 -0000	2.101
  +++ rpm/build/parseSpec.c	19 Aug 2007 17:43:02 -0000	2.102
  @@ -600,10 +600,12 @@
   
       for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
   	if (!headerIsEntry(pkg->header, RPMTAG_DESCRIPTION)) {
  -	    const char * name;
  -	    (void) headerNVR(pkg->header, &name, NULL, NULL);
  +	    const char * NVRA = NULL;
  +	    (void) headerGetExtension(pkg->header, RPMTAG_NVRA,
  +			NULL, &NVRA, NULL);
   	    rpmError(RPMERR_BADSPEC, _("Package has no %%description: %s\n"),
  -			name);
  +			NVRA);
  +	    NVRA = _free(NVRA);
   	    spec = freeSpec(spec);
   	    return RPMERR_BADSPEC;
   	}
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/spec.c
  ============================================================================
  $ cvs diff -u -r2.152 -r2.153 spec.c
  --- rpm/build/spec.c	17 Aug 2007 00:13:56 -0000	2.152
  +++ rpm/build/spec.c	19 Aug 2007 17:43:02 -0000	2.153
  @@ -81,7 +81,8 @@
       /* Construct package name */
     { char *n;
       if (flag == PART_SUBNAME) {
  -	(void) headerNVR(spec->packages->header, &pname, NULL, NULL);
  +	(void) headerGetEntry(spec->packages->header, RPMTAG_NAME,
  +		NULL, &pname, NULL);
   	fullName = n = alloca(strlen(pname) + 1 + strlen(name) + 1);
   	while (*pname != '\0') *n++ = *pname++;
   	*n++ = '-';
  @@ -95,7 +96,8 @@
   
       /* Locate package with fullName */
       for (p = spec->packages; p != NULL; p = p->next) {
  -	(void) headerNVR(p->header, &pname, NULL, NULL);
  +	(void) headerGetEntry(spec->packages->header, RPMTAG_NAME,
  +		NULL, &pname, NULL);
   	if (pname && (! strcmp(fullName, pname))) {
   	    break;
   	}
  @@ -660,7 +662,7 @@
   	    for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
   		const char *pkgname;
   		h = pkg->header;
  -		(void) headerNVR(h, &pkgname, NULL, NULL);
  +		(void) headerGetEntry(h, RPMTAG_NAME, NULL, &pkgname, NULL);
   		if (!strcmp(pkgname, fmt))
   		    /*@innerbreak@*/ break;
   	    }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/psm.c
  ============================================================================
  $ cvs diff -u -r2.220 -r2.221 psm.c
  --- rpm/lib/psm.c	18 Aug 2007 21:32:29 -0000	2.220
  +++ rpm/lib/psm.c	19 Aug 2007 17:43:03 -0000	2.221
  @@ -471,7 +471,7 @@
   {
       const rpmts ts = psm->ts;
       int rootFdno = -1;
  -    const char *n, *v, *r;
  +    const char * NVRA = NULL;
       rpmRC rc = RPMRC_OK;
       int i;
       int xx;
  @@ -484,7 +484,8 @@
       if (ssp != NULL)
   	*ssp |= (RPMSCRIPT_STATE_LUA|RPMSCRIPT_STATE_EXEC);
   
  -    xx = headerNVR(h, &n, &v, &r);
  +    xx = headerGetExtension(h, RPMTAG_NVRA, NULL, &NVRA, NULL);
  +assert(NVRA);
   
       /* Save the current working directory. */
   /*@-nullpass@*/
  @@ -532,7 +533,7 @@
   
       {
   	char buf[BUFSIZ];
  -	xx = snprintf(buf, BUFSIZ, "%s(%s-%s-%s)", sln, n, v, r);
  +	xx = snprintf(buf, BUFSIZ, "%s(%s)", sln, NVRA);
   	xx = rpmluaRunScript(lua, script, buf);
   	if (xx == -1)
   	    rc = RPMRC_FAIL;
  @@ -559,6 +560,7 @@
   	xx = fchdir(rootFdno);
   
       xx = close(rootFdno);
  +    NVRA = _free(NVRA);
   
       return rc;
   }
  @@ -617,8 +619,8 @@
       int freePrefixes = 0;
       FD_t scriptFd;
       FD_t out;
  -    rpmRC rc = RPMRC_OK;
  -    const char *n, *v, *r, *a;
  +    rpmRC rc = RPMRC_FAIL;	/* assume failure */
  +    const char * NVRA = NULL;
       int * ssp = NULL;
   
       if (psm->sstates != NULL)
  @@ -627,22 +629,20 @@
   	*ssp = RPMSCRIPT_STATE_UNKNOWN;
   
       if (progArgv == NULL && script == NULL)
  -	return rc;
  +	return RPMRC_OK;
   
  -    /* XXX FIXME: except for %verifyscript, rpmteNEVR can be used. */
  -    xx = headerNVR(h, &n, &v, &r);
  -    xx = hge(h, RPMTAG_ARCH, NULL, &a, NULL);
  +    xx = headerGetExtension(h, RPMTAG_NVRA, NULL, &NVRA, NULL);
  +assert(NVRA);
   
       if (progArgv && strcmp(progArgv[0], "<lua>") == 0) {
   #ifdef WITH_LUA
   	rpmMessage(RPMMESS_DEBUG,
  -		D_("%s: %s(%s-%s-%s.%s) running <lua> scriptlet.\n"),
  -		psm->stepName, tag2sln(psm->scriptTag), n, v, r, a);
  -	return runLuaScript(psm, h, sln, progArgc, progArgv,
  +		D_("%s: %s(%s) running <lua> scriptlet.\n"),
  +		psm->stepName, tag2sln(psm->scriptTag), NVRA);
  +	rc = runLuaScript(psm, h, sln, progArgc, progArgv,
   			    script, arg1, arg2);
  -#else
  -	return RPMRC_FAIL;
   #endif
  +	goto exit;
       }
   
       psm->sq.reaper = 1;
  @@ -653,16 +653,17 @@
       if (ldconfig_path && progArgv != NULL && psm->unorderedSuccessor) {
    	if (ldconfig_done && !strcmp(progArgv[0], ldconfig_path)) {
   	    rpmMessage(RPMMESS_DEBUG,
  -		D_("%s: %s(%s-%s-%s.%s) skipping redundant \"%s\".\n"),
  -		psm->stepName, tag2sln(psm->scriptTag), n, v, r, a,
  +		D_("%s: %s(%s) skipping redundant \"%s\".\n"),
  +		psm->stepName, tag2sln(psm->scriptTag), NVRA,
   		progArgv[0]);
  -	    return rc;
  +	    rc = RPMRC_OK;
  +	    goto exit;
   	}
       }
   
       rpmMessage(RPMMESS_DEBUG,
  -		D_("%s: %s(%s-%s-%s.%s) %ssynchronous scriptlet start\n"),
  -		psm->stepName, tag2sln(psm->scriptTag), n, v, r, a,
  +		D_("%s: %s(%s) %ssynchronous scriptlet start\n"),
  +		psm->stepName, tag2sln(psm->scriptTag), NVRA,
   		(psm->unorderedSuccessor ? "a" : ""));
   
       if (!progArgv) {
  @@ -700,10 +701,8 @@
   	FD_t fd;
   
   	/*@-branchstate@*/
  -	if (makeTempFile((!rpmtsChrootDone(ts) ? rootDir : "/"), &fn, &fd)) {
  -	    if (prefixes != NULL && freePrefixes) free(prefixes);
  -	    return RPMRC_FAIL;
  -	}
  +	if (makeTempFile((!rpmtsChrootDone(ts) ? rootDir : "/"), &fn, &fd))
  +	    goto exit;
   	/*@=branchstate@*/
   
   	if (rpmIsDebug() &&
  @@ -755,18 +754,18 @@
       } else {
   	out = fdDup(STDOUT_FILENO);
       }
  -    if (out == NULL) return RPMRC_FAIL;	/* XXX can't happen */
  +    if (out == NULL)	/* XXX can't happen */
  +	goto exit;
   
       /*@-branchstate@*/
       xx = rpmsqFork(&psm->sq);
       if (psm->sq.child == 0) {
  -	const char * rootDir;
   	int pipes[2];
   	int flag;
   	int fdno;
   
   	pipes[0] = pipes[1] = 0;
  -	/* make stdin inaccessible */
  +	/* Make stdin inaccessible */
   	xx = pipe(pipes);
   	xx = close(pipes[1]);
   	xx = dup2(pipes[0], STDIN_FILENO);
  @@ -777,6 +776,10 @@
   	    flag = fcntl(fdno, F_GETFD);
   	    if (flag == -1 || (flag & FD_CLOEXEC))
   		continue;
  +	    rpmMessage(RPMMESS_DEBUG,
  +			D_("%s: %s(%s)\tfdno(%d) missing FD_CLOEXEC\n"),
  +			psm->stepName, sln, NVRA,
  +			fdno);
   	    xx = fcntl(fdno, F_SETFD, FD_CLOEXEC);
   	    /* XXX W2DO? debug msg for inheirited fdno w/o FD_CLOEXEC */
   	}
  @@ -819,14 +822,7 @@
   	    }
   	}
   
  -	rootDir = ts->rootDir;	/* HACK: rootDir = rpmtsRootDir(ts); instead */
  -	if (rootDir  != NULL)	/* XXX can't happen */
  -	switch(urlIsURL(rootDir)) {
  -	case URL_IS_PATH:
  -	    rootDir += sizeof("file://") - 1;
  -	    rootDir = strchr(rootDir, '/');
  -	    /*@fallthrough@*/
  -	case URL_IS_UNKNOWN:
  +	{   const char * rootDir = rpmtsRootDir(ts);
   	    if (!rpmtsChrootDone(ts) &&
   		!(rootDir[0] == '/' && rootDir[1] == '\0'))
   	    {
  @@ -835,8 +831,8 @@
   		/*@=superuser =noeffect @*/
   	    }
   	    xx = Chdir("/");
  -	    rpmMessage(RPMMESS_DEBUG, D_("%s: %s(%s-%s-%s.%s)\texecv(%s) pid %d\n"),
  -			psm->stepName, sln, n, v, r, a,
  +	    rpmMessage(RPMMESS_DEBUG, D_("%s: %s(%s)\texecv(%s) pid %d\n"),
  +			psm->stepName, sln, NVRA,
   			argv[0], (unsigned)getpid());
   
   	    /* XXX Don't mtrace into children. */
  @@ -852,21 +848,11 @@
   /*@-moduncon@*/
   		xx = rpm_execcon(0, argv[0], (char *const *)argv, environ);
   /*@=moduncon@*/
  -		if (xx != 0)
  -		    break;
  -	    }
  -
  +	    } else {
   /*@-nullstate@*/
  -	    xx = execv(argv[0], (char *const *)argv);
  +		xx = execv(argv[0], (char *const *)argv);
   /*@=nullstate@*/
  -	    break;
  -	case URL_IS_HTTPS:
  -	case URL_IS_HTTP:
  -	case URL_IS_FTP:
  -	case URL_IS_DASH:
  -	case URL_IS_HKP:
  -	default:
  -	    break;
  +	    }
   	}
   
   	if (ssp != NULL)
  @@ -879,7 +865,6 @@
   
       if (psm->sq.child == (pid_t)-1) {
           rpmError(RPMERR_FORK, _("Couldn't fork %s: %s\n"), sln, strerror(errno));
  -        rc = RPMRC_FAIL;
           goto exit;
       }
   
  @@ -889,37 +874,42 @@
     if (!(psm->sq.reaped >= 0 && !strcmp(argv[0], "/usr/sbin/glibc_post_upgrade") && WEXITSTATUS(psm->sq.status) == 110)) {
       if (psm->sq.reaped < 0) {
   	rpmError(RPMERR_SCRIPT,
  -		_("%s(%s-%s-%s.%s) scriptlet failed, waitpid(%d) rc %d: %s\n"),
  -		 sln, n, v, r, a, psm->sq.child, psm->sq.reaped, strerror(errno));
  -	rc = RPMRC_FAIL;
  +		_("%s(%s) scriptlet failed, waitpid(%d) rc %d: %s\n"),
  +		 sln, NVRA, psm->sq.child, psm->sq.reaped, strerror(errno));
  +	goto exit;
       } else
       if (!WIFEXITED(psm->sq.status) || WEXITSTATUS(psm->sq.status)) {
  -      if (WIFSIGNALED(psm->sq.status)) {
  -        rpmError(RPMERR_SCRIPT,
  -                 _("%s(%s-%s-%s.%s) scriptlet failed, signal %d\n"),
  -                 sln, n, v, r, a, WTERMSIG(psm->sq.status));
  -      } else {
  -	rpmError(RPMERR_SCRIPT,
  -		_("%s(%s-%s-%s.%s) scriptlet failed, exit status %d\n"),
  -		sln, n, v, r, a, WEXITSTATUS(psm->sq.status));
  -      }
  -	rc = RPMRC_FAIL;
  +	if (WIFSIGNALED(psm->sq.status)) {
  +	    rpmError(RPMERR_SCRIPT,
  +                 _("%s(%s) scriptlet failed, signal %d\n"),
  +                 sln, NVRA, WTERMSIG(psm->sq.status));
  +	} else {
  +	    rpmError(RPMERR_SCRIPT,
  +		_("%s(%s) scriptlet failed, exit status %d\n"),
  +		sln, NVRA, WEXITSTATUS(psm->sq.status));
  +	}
  +	goto exit;
       }
     }
   
  +    rc = RPMRC_OK;
  +
   exit:
       if (freePrefixes) prefixes = hfd(prefixes, ipt);
   
  -    xx = Fclose(out);	/* XXX dup'd STDOUT_FILENO */
  +    if (out)
  +	xx = Fclose(out);	/* XXX dup'd STDOUT_FILENO */
   
       /*@-branchstate@*/
       if (script) {
   	if (!rpmIsDebug())
  -	    xx = unlink(fn);
  +	    xx = Unlink(fn);
   	fn = _free(fn);
       }
       /*@=branchstate@*/
   
  +    NVRA = _free(NVRA);
  +
       return rc;
   }
   
  @@ -1005,8 +995,8 @@
       int xx;
       int i;
   
  -    xx = headerNVR(sourceH, &sourceName, NULL, NULL);
  -    xx = headerNVR(triggeredH, &triggerName, NULL, NULL);
  +    xx = hge(sourceH, RPMTAG_NAME, NULL, &sourceName, NULL);
  +    xx = hge(triggeredH, RPMTAG_NAME, NULL, &triggerName, NULL);
   
       trigger = rpmdsInit(rpmdsNew(triggeredH, RPMTAG_TRIGGERNAME, scareMem));
       if (trigger == NULL)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmds.c
  ============================================================================
  $ cvs diff -u -r2.62 -r2.63 rpmds.c
  --- rpm/lib/rpmds.c	1 Aug 2007 17:58:35 -0000	2.62
  +++ rpm/lib/rpmds.c	19 Aug 2007 17:43:03 -0000	2.63
  @@ -524,7 +524,7 @@
       } else
   	goto exit;
   
  -    xx = headerNVR(h, &n, &v, &r);
  +    xx = headerNEVRA(h, &n, NULL, &v, &r, NULL);
       ep = NULL;
       xx = hge(h, RPMTAG_EPOCH, NULL, &ep, NULL);
   
  @@ -3820,7 +3820,7 @@
   /*@=boundsread@*/
   
       /* Get package information from header */
  -    (void) headerNVR(h, &pkgN, &V, &R);
  +    (void) headerNEVRA(h, &pkgN, NULL, &V, &R, NULL);
   
       nb = 21 + 1 + 1;
       if (V) nb += strlen(V);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpminstall.c
  ============================================================================
  $ cvs diff -u -r1.161 -r1.162 rpminstall.c
  --- rpm/lib/rpminstall.c	19 Aug 2007 02:34:49 -0000	1.161
  +++ rpm/lib/rpminstall.c	19 Aug 2007 17:43:03 -0000	1.162
  @@ -311,11 +311,9 @@
       int numFailed = 0;
       int numRPMS = 0;
       rpmRelocation relocations = NULL;
  -    rpmRC rpmrc = RPMRC_OK;
       rpmVSFlags vsflags, ovsflags;
       int rc;
       int xx;
  -    int i;
   
       if (argv == NULL) goto exit;
   
  @@ -423,10 +421,11 @@
   		relocations->oldPath = xstrdup(paths[0]);
   		paths = headerFreeData(paths, pft);
   	    } else {
  -		const char * name;
  -		xx = headerNVR(h, &name, NULL, NULL);
  +		const char * NVRA = NULL;
  +		xx = headerGetExtension(h, RPMTAG_NVRA, NULL, &NVRA, NULL);
   		rpmMessage(RPMMESS_ERROR,
  -			       _("package %s is not relocatable\n"), name);
  +			       _("package %s is not relocatable\n"), NVRA);
  +		NVRA = _free(NVRA);
   		numFailed++;
   		goto exit;
   		/*@notreached@*/
  @@ -436,11 +435,11 @@
   	/* === On --freshen, verify package is installed and newer. */
   	if (ia->installInterfaceFlags & INSTALL_FRESHEN) {
   	    rpmdbMatchIterator mi;
  -	    const char * name;
  +	    const char * name = NULL;
   	    Header oldH;
   	    int count;
   
  -	    xx = headerNVR(h, &name, NULL, NULL);
  +	    xx = headerGetEntry(h, RPMTAG_NAME, NULL, &name, NULL);
   	    mi = rpmtsInitIterator(ts, RPMTAG_NAME, name, 0);
   	    count = rpmdbGetIteratorCount(mi);
   	    while ((oldH = rpmdbNextIterator(mi)) != NULL) {
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/python/header-py.c
  ============================================================================
  $ cvs diff -u -r1.50 -r1.51 header-py.c
  --- rpm/python/header-py.c	3 Aug 2007 20:46:39 -0000	1.50
  +++ rpm/python/header-py.c	19 Aug 2007 17:43:04 -0000	1.51
  @@ -339,7 +339,7 @@
       int bingo = 1;
   
       /* Generate provides for this package name-version-release. */
  -    xx = headerNVR(h, &name, &version, &release);
  +    xx = headerNEVRA(h, &name, NULL, &version, &release, NULL);
       if (!(name && version && release))
   	return;
       pEVR = p = alloca(21 + strlen(version) + 1 + strlen(release) + 1);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/python/rpmts-py.c
  ============================================================================
  $ cvs diff -u -r1.67 -r1.68 rpmts-py.c
  --- rpm/python/rpmts-py.c	16 Jul 2007 13:40:47 -0000	1.67
  +++ rpm/python/rpmts-py.c	19 Aug 2007 17:43:04 -0000	1.68
  @@ -236,7 +236,7 @@
       if (pkgObj == NULL) {
   	if (h) {
   	    const char * n = NULL;
  -	    (void) headerNVR(h, &n, NULL, NULL);
  +	    (void) headerGetEntry(h, RPMTAG_NAME, NULL, &n, NULL);
   	    pkgObj = Py_BuildValue("s", n);
   	} else {
   	    pkgObj = Py_None;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/hdrNVR.c
  ============================================================================
  $ cvs diff -u -r1.8 -r1.9 hdrNVR.c
  --- rpm/rpmdb/hdrNVR.c	18 Aug 2007 21:32:31 -0000	1.8
  +++ rpm/rpmdb/hdrNVR.c	19 Aug 2007 17:43:04 -0000	1.9
  @@ -135,11 +135,6 @@
       return 0;
   }
   
  -int headerNVR(Header h, const char **np, const char **vp, const char **rp)
  -{
  -    return headerNEVRA(h, np, NULL, vp, rp, NULL);
  -}
  -
   int headerNEVRA(Header h, const char **np,
   		/*@unused@*/ const char **ep, const char **vp, const char **rp,
   		const char **ap)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/hdrfmt.c
  ============================================================================
  $ cvs diff -u -r1.4 -r1.5 hdrfmt.c
  --- rpm/rpmdb/hdrfmt.c	3 Aug 2007 22:45:12 -0000	1.4
  +++ rpm/rpmdb/hdrfmt.c	19 Aug 2007 17:43:04 -0000	1.5
  @@ -1101,7 +1101,7 @@
   	    const char * n = NULL;
   	    char * mk;
   	    size_t nb = sizeof("()");
  -	    int xx = headerNVR(h, &n, NULL, NULL);
  +	    int xx = headerGetEntry(h, RPMTAG_NAME, NULL, &n, NULL);
   	    xx = 0;	/* XXX keep gcc quiet */
   	    if (tn)	nb += strlen(tn);
   	    if (n)	nb += strlen(n);
  @@ -1343,11 +1343,13 @@
       char * NVRA, * t;
   
       (void) headerNEVRA(h, &N, NULL, &V, &R, &A);
  -    if (N)	nb += strlen(N) + 1;
  +    if (N)	nb += strlen(N);
       if (V)	nb += strlen(V) + 1;
       if (R)	nb += strlen(R) + 1;
       if (A)	nb += strlen(A) + 1;
  -    NVRA = t = xcalloc(1, nb);
  +    nb++;
  +    NVRA = t = xmalloc(nb);
  +    *t = '\0';
   /*@-boundswrite@*/
       if (N)	t = stpcpy(t, N);
       if (V)	t = stpcpy( stpcpy(t, "-"), V);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/librpmdb.vers
  ============================================================================
  $ cvs diff -u -r1.10 -r1.11 librpmdb.vers
  --- rpm/rpmdb/librpmdb.vers	6 Aug 2007 12:20:59 -0000	1.10
  +++ rpm/rpmdb/librpmdb.vers	19 Aug 2007 17:43:04 -0000	1.11
  @@ -32,7 +32,6 @@
       headerMacrosLoad;
       headerMacrosUnload;
       headerNEVRA;
  -    headerNVR;
       hGetColor;
       _init;
       rpm_mergesort;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmdb.c
  ============================================================================
  $ cvs diff -u -r1.152 -r1.153 rpmdb.c
  --- rpm/rpmdb/rpmdb.c	18 Aug 2007 21:32:31 -0000	1.152
  +++ rpm/rpmdb/rpmdb.c	19 Aug 2007 17:43:04 -0000	1.153
  @@ -2791,9 +2791,10 @@
       }
   #endif
   
  -    {	const char *n, *v, *r;
  -	(void) headerNVR(h, &n, &v, &r);
  -	rpmMessage(RPMMESS_DEBUG, "  --- h#%8u %s-%s-%s\n", hdrNum, n, v, r);
  +    {	const char * NVRA = NULL;
  +	(void) headerGetExtension(h, RPMTAG_NVRA, NULL, &NVRA, NULL);
  +	rpmMessage(RPMMESS_DEBUG, "  --- h#%8u %s\n", hdrNum, NVRA);
  +	NVRA = _free(NVRA);
       }
   
       (void) blockSignals(db, &signalMask);
  @@ -4027,7 +4028,7 @@
   		const char * name, * version, * release;
   		int skip = 0;
   
  -		(void) headerNVR(h, &name, &version, &release);
  +		(void) headerNEVRA(h, &name, NULL, &version, &release, NULL);
   
   		/*@-shadow@*/
   		{   rpmdbMatchIterator mi;
  @@ .
Received on Sun Aug 19 19:43:04 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.