RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: [EMAIL PROTECTED]
Module: rpm Date: 20-Feb-2008 00:23:15
Branch: HEAD Handle: 2008021923231401
Modified files:
rpm CHANGES
rpm/lib rpminstall.c
Log:
- jbj: refactor rpmcliErase to use same code as rpmtsInstall.
- jbj: fix: rpmtsCheck non-zero return prevents --erase.
Summary:
Revision Changes Path
1.2197 +2 -0 rpm/CHANGES
1.203 +16 -40 rpm/lib/rpminstall.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2196 -r1.2197 CHANGES
--- rpm/CHANGES 19 Feb 2008 20:08:56 -0000 1.2196
+++ rpm/CHANGES 19 Feb 2008 23:23:14 -0000 1.2197
@@ -1,4 +1,6 @@
5.0.0 -> 5.1a1:
+ - jbj: refactor rpmcliErase to use same code as rpmtsInstall.
+ - jbj: fix: rpmtsCheck non-zero return prevents --erase.
- jbj: fix: avoid {pre,post}trans scrareMem assert failure.
- jbj: rpmio: add self-consistent rpmdigest --all verify test.
- jbj: rpmdigest: do algo name -> number with optionsTable instead.
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpminstall.c
============================================================================
$ cvs diff -u -r1.202 -r1.203 rpminstall.c
--- rpm/lib/rpminstall.c 17 Feb 2008 18:24:16 -0000 1.202
+++ rpm/lib/rpminstall.c 19 Feb 2008 23:23:15 -0000 1.203
@@ -694,10 +694,9 @@
int count;
const char ** arg;
int numFailed = 0;
- int stopUninstall = 0;
- int numPackages = 0;
+ int numRPMS = 0;
rpmVSFlags vsflags, ovsflags;
- rpmps ps;
+ int rc;
if (argv == NULL) return 0;
@@ -758,55 +757,32 @@
}
if (recOffset) {
(void) rpmtsAddEraseElement(ts, h, recOffset);
- numPackages++;
+ numRPMS++;
}
}
}
mi = rpmdbFreeIterator(mi);
}
- if (numFailed) goto exit;
-
- if (!(ia->installInterfaceFlags & INSTALL_NODEPS)) {
-
- if (rpmtsCheck(ts)) {
- numFailed = numPackages;
- stopUninstall = 1;
- }
-
- ps = rpmtsProblems(ts);
- if (!stopUninstall && rpmpsNumProblems(ps) > 0) {
- rpmlog(RPMLOG_ERR, _("Failed dependencies:\n"));
- rpmpsPrint(NULL, ps);
- numFailed += numPackages;
- stopUninstall = 1;
- }
- ps = rpmpsFree(ps);
- }
-
- if (!stopUninstall && !(ia->installInterfaceFlags & INSTALL_NOORDER)) {
- if (rpmtsOrder(ts)) {
- numFailed += numPackages;
- stopUninstall = 1;
- }
- }
-
- if (numPackages > 0 && !stopUninstall) {
+ if (numFailed == 0 && numRPMS > 0) {
+ if (!(ia->installInterfaceFlags & INSTALL_NODEPS)
+ && (rc = rpmcliInstallCheck(ts)) != 0)
+ numFailed = numRPMS;
+
+ if (numFailed == 0
+ && !(ia->installInterfaceFlags & INSTALL_NOORDER)
+ && (rc = rpmcliInstallOrder(ts)) != 0)
+ numFailed = numRPMS;
/* Drop added/available package indices and dependency sets. */
rpmtsClean(ts);
- numPackages = rpmtsRun(ts, NULL,
- ia->probFilter &
(RPMPROB_FILTER_DISKSPACE|RPMPROB_FILTER_DISKNODES));
- ps = rpmtsProblems(ts);
- if (rpmpsNumProblems(ps) > 0)
- rpmpsPrint(NULL, ps);
- numFailed += numPackages;
- stopUninstall = 1;
- ps = rpmpsFree(ps);
+ if (numFailed == 0
+ && (rc = rpmcliInstallRun(ts, NULL, ia->probFilter &
(RPMPROB_FILTER_DISKSPACE|RPMPROB_FILTER_DISKNODES))) != 0)
+ numFailed += (rc < 0 ? numRPMS : rc);
+
}
-exit:
rpmtsEmpty(ts);
return numFailed;
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [email protected]