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]

Reply via email to