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:   15-May-2009 14:28:45
  Branch: HEAD                             Handle: 2009051512284400

  Modified files:
    rpm                     CHANGES
    rpm/lib                 rpmrc.c

  Log:
    * make it possible to set macro files to load predefines from by defining 
PREMACROFILES at build time.
    * ditch rpmRereadMacros()

  Summary:
    Revision    Changes     Path
    1.2988      +2  -0      rpm/CHANGES
    2.287       +9  -35     rpm/lib/rpmrc.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2987 -r1.2988 CHANGES
  --- rpm/CHANGES       14 May 2009 16:58:23 -0000      1.2987
  +++ rpm/CHANGES       15 May 2009 12:28:44 -0000      1.2988
  @@ -1,5 +1,7 @@
   
   5.2b1 -> 5.3a1
  +    - proyvind: make it possible to set macro files to load predefines from 
by
  +     defining PREMACROFILES at build time.
       - jbj: rpmmi: rename the typedef and rpmmi{Init,Next,Free} methods.
       - jbj: rpmmi: split out a pool destructor (prior to using).
       - jbj: mire: handle items from _mirePool like all other pools.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmrc.c
  ============================================================================
  $ cvs diff -u -r2.286 -r2.287 rpmrc.c
  --- rpm/lib/rpmrc.c   13 May 2009 15:32:54 -0000      2.286
  +++ rpm/lib/rpmrc.c   15 May 2009 12:28:44 -0000      2.287
  @@ -1062,8 +1062,8 @@
    * Read macro configuration file(s).
    * @return           0 on success
    */
  -static int rpmReadRC(void)
  -     /*...@globals defaultsInitialized, rpmMacrofiles,
  +static int rpmReadRC(const char *macrofiles)
  +     /*...@globals defaultsInitialized,
                rpmGlobalMacroContext, rpmCLIMacroContext, h_errno,
                fileSystem, internalState @*/
        /*...@modifies defaultsInitialized, rpmGlobalMacroContext,
  @@ -1077,7 +1077,7 @@
       }
   
       /* Read macro files. */
  -    {        const char *mfpath = rpmExpand(rpmMacrofiles, NULL);
  +    {        const char *mfpath = rpmExpand(macrofiles, NULL);
            
        if (mfpath != NULL) {
            rpmInitMacros(NULL, mfpath);
  @@ -1088,40 +1088,17 @@
       return rc;
   }
   
  -#if defined(WITH_CPUINFO)
  -/* Since %{_prefer_target_cpu} hasn't been read before rpmReadRC(), we need 
to
  - * reread platform specific macros again to be sure to get the right ones.. 
*/
  -static inline void rpmRereadTargetMacros(const char *cpu) {
  -    if(strcmp(current[ARCH], cpu) != 0) {
  -     ARGV_t macroArgv = NULL;
  -     int i, n;
  -     const char delim[] = ":";
  -     char *macrofiles = xcalloc(strlen(rpmMacrofiles), 1);
  -
  -     (void) argvSplit(&macroArgv, rpmMacrofiles, delim);
  -     for(i = 0, n = argvCount(macroArgv); i < n; i++) {
  -         const char *macrofile = rpmExpand(macroArgv[i], NULL);
  -         if(strcmp(macroArgv[i], macrofile) != 0 && strstr(macrofile, cpu) 
!= NULL) {
  -             if(strlen(macrofiles) > 0)
  -                 strncat(macrofiles, delim, strlen(delim));
  -             strncat(macrofiles, macrofile, strlen(macrofile));
  -         }
  -         macrofile = _free(macrofile);
  -     }
  -     if(strlen(macrofiles) > 0)
  -         rpmInitMacros(NULL, macrofiles);
  -     macroArgv = argvFree(macroArgv);
  -    }
  -}
  -#endif
  -
   int rpmReadConfigFiles(/*...@unused@*/ const char * file,
                const char * target)
  -     /*...@globals configTarget @*/
  +     /*...@globals configTarget, rpmMacrofiles @*/
        /*...@modifies configTarget @*/
   {
       mode_t mode = 0022;
   
  +#ifdef PREMACROFILES
  +    if (rpmReadRC(PREMACROFILES)) return -1;
  +#endif
  +
       /* Reset umask to its default umask(2) value. */
       mode = umask(mode);
   
  @@ -1133,7 +1110,7 @@
   
       /* Read the files */
   /*...@-globs@*/
  -    if (rpmReadRC()) return -1;
  +    if (rpmReadRC(rpmMacrofiles)) return -1;
   /*...@=globs@*/
   
       /* Reset target macros */
  @@ -1142,9 +1119,6 @@
   
       /* Finally set target platform */
       {        const char *cpu = rpmExpand("%{_target_cpu}", NULL);
  -#if defined(WITH_CPUINFO)
  -     rpmRereadTargetMacros(cpu);
  -#endif
        const char *os = rpmExpand("%{_target_os}", NULL);
        rpmSetMachine(cpu, os);
   
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to