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:   10-Apr-2011 08:57:34
  Branch: rpm-5_3                          Handle: 2011041006573400

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

  Log:
    filter out some redundant devel(...) dependencies

  Summary:
    Revision    Changes     Path
    2.167.2.10  +23 -10     rpm/lib/rpmds.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmds.c
  ============================================================================
  $ cvs diff -u -r2.167.2.9 -r2.167.2.10 rpmds.c
  --- rpm/lib/rpmds.c   10 Apr 2011 06:06:17 -0000      2.167.2.9
  +++ rpm/lib/rpmds.c   10 Apr 2011 06:57:34 -0000      2.167.2.10
  @@ -2905,21 +2905,19 @@
        if (!devel && s[strlen(s)-1] != ')')
        (void) stpcpy( stpcpy(tmp, s), "()(64bit)");
       else {
  -         char *suffix;
            tmp = stpcpy(tmp, s);
  -         if (devel && (suffix = strstr(t, ".so")))
  -             tmp = suffix;
  +         if (devel)
  +             tmp = strstr(t, ".so");
            tmp = stpcpy(tmp, "(64bit)");
           }
       }else
   #endif
        tmp = stpcpy(tmp, s);
       if (devel) {
  -     char *suffix;
  -     tmp = stpcpy(tmp, s);
  -     if (devel && (suffix = strstr(t, ".so")))
  +     char *suffix = strstr(t, ".so");
  +     if (suffix)
            tmp = suffix;
  -     (void) stpcpy(tmp, ")");
  +     tmp = stpcpy(tmp, ")");
       }
   
       return t;
  @@ -3283,8 +3281,16 @@
       int skipR = (flags & RPMELF_FLAG_SKIPREQUIRES);
       int lnklen;
       char path[MAXPATHLEN];
  +    /*
  +     * We filter out these as they come with glibc, making dependencies on
  +     * them rather redundant.
  +     */
  +    const char *filterRequires[] = {"ld-linux", "ld64-linux" 
"libBrokenLocale.so",
  +     "libanl.so", "libc.so", "libcidn.so", "libcrypt.so", "libdl.so", 
"libm.so",
  +     "libnsl.so", "libnss_compat.so", "libnss_dns.so", "libnss_files.so",
  +     "libnss_hesiod.so", "libnss_nis.so", "libnss_nisplus.so", 
"libpthread.so",
  +     "libresolv.so", "librt.so", "libutil.so", "libthread_db.so"};
       ARGV_t deps = NULL;
  -    size_t nb = strlen(fn);
   
       /* Filename must end with ".so" to be devel(...) dependency. */
       s = rindex(fn, '.');
  @@ -3358,7 +3364,13 @@
                        s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
   assert(s != NULL);
                        buf[0] = '\0';
  -                     argvAdd(&deps, s);
  +
  +                     for (i = 0; i < 
(int)(sizeof(filterRequires)/sizeof(filterRequires[0])); i++)
  +                         if (!strncmp(s, filterRequires[i], 
strlen(filterRequires[i])))
  +                             break;
  +
  +                     if (sizeof(filterRequires)/sizeof(filterRequires[0]) == 
i)
  +                         argvAdd(&deps, s);
                        /*@switchbreak@*/ break;
                    case DT_SONAME:
                        gotSONAME = 1;
  @@ -3366,6 +3378,7 @@
   assert(s != NULL);
                        /* Add next provide dependency. */
                        buf[0] = '\0';
  +
                        if (!skipP) {
                            ds = rpmdsSingle(RPMTAG_PROVIDENAME,
                                    sonameDep(buf, s, isElf64, 1),
  @@ -3384,7 +3397,7 @@
       /*@=uniondef @*/
   
   exit:
  -    if (gotSONAME)
  +    if (gotSONAME && !skipR)
        for (i = 0, cnt = argvCount(deps); i < cnt; i++) {
            ds = rpmdsSingle(RPMTAG_REQUIRENAME,
                    sonameDep(buf, deps[i], isElf64, 1),
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to