RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Per Øyvind Karlsen
  Root:   /v/rpm/cvs                       Email:  pkarl...@rpm5.org
  Module: rpm                              Date:   24-Mar-2011 17:55:06
  Branch: rpm-5_3                          Handle: 2011032416550600

  Modified files:           (Branch: rpm-5_3)
    rpm/lib                 psm.c

  Log:
    commit fire-file-triggers-only-once patch from mandriva under #ifdef

  Summary:
    Revision    Changes     Path
    2.394.2.7   +21 -0      rpm/lib/psm.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/lib/psm.c
  ============================================================================
  $ cvs diff -u -r2.394.2.6 -r2.394.2.7 psm.c
  --- rpm/lib/psm.c     24 Mar 2011 16:47:31 -0000      2.394.2.6
  +++ rpm/lib/psm.c     24 Mar 2011 16:55:06 -0000      2.394.2.7
  @@ -1476,11 +1476,32 @@
                /*@innercontinue@*/ continue;
            rc |= handleOneTrigger(psm, fi->h, triggeredH, arg2);
            prev = instance;
  +
  +#if !defined(RPM_VENDOR_MANDRIVA)
  +         /*
  +          * FIXME: 'instances' is never really used for anything later,
  +          * and seems to have some bug making it eat it all memory
  +          */
            xx = argiAdd(&instances, -1, instance);
            xx = argiSort(instances, NULL);
  +#else
  +         /* As no filenames or anything is passed to the trigger script,
  +          * there doesn't seem to be any reason to fire the same trigger
  +          * over and over..
  +          */
  +         if(tagno == RPMTAG_BASENAMES || RPMTAG_DIRNAMES)
  +             break;
  +         xx = argiAdd(&instances, -1, instance);
  +         xx = argiSort(instances, NULL);
  +#endif
        }
   
        mi = rpmmiFree(mi);
  +#if defined(RPM_VENDOR_MANDRIVA)
  +     /* again don't fire same trigger over and over.. */
  +     if(tagno == RPMTAG_BASENAMES || RPMTAG_DIRNAMES)
  +         break;
  +#endif
       }
   
       instances = argiFree(instances);
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to