[CVS] RPM: rpm-5_4: rpm/lib/ rpmds.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 28-Aug-2014 15:05:19 Branch: rpm-5_4 Handle: 2014082813051800 Modified files: (Branch: rpm-5_4) rpm/lib rpmds.c Log: - tags: rename RPMTAG_SUGGESTS*/RPMTAG_ENHANCES* (as @rpm.org)/ Summary: RevisionChanges Path 2.170.2.24 +8 -8 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.170.2.23 -r2.170.2.24 rpmds.c --- rpm/lib/rpmds.c 6 Aug 2014 20:42:34 - 2.170.2.23 +++ rpm/lib/rpmds.c 28 Aug 2014 13:05:18 - 2.170.2.24 @@ -149,8 +149,8 @@ case RPMTAG_CONFLICTNAME:Type = Conflicts; break; case RPMTAG_OBSOLETENAME:Type = Obsoletes; break; case RPMTAG_TRIGGERNAME: Type = Triggers; break; -case RPMTAG_SUGGESTSNAME:Type = Suggests; break; -case RPMTAG_ENHANCESNAME:Type = Enhances; break; +case RPMTAG_SUGGESTNAME: Type = Suggests; break; +case RPMTAG_ENHANCENAME: Type = Enhances; break; case RPMTAG_DIRNAMES:Type = Dirs; break; case RPMTAG_BASENAMES: Type = Files; break; case RPMTAG_FILELINKTOS: Type = Linktos; break; @@ -276,13 +276,13 @@ tagEVR = RPMTAG_TRIGGERVERSION; tagF = RPMTAG_TRIGGERFLAGS; break; -case RPMTAG_SUGGESTSNAME: - tagEVR = RPMTAG_SUGGESTSVERSION; - tagF = RPMTAG_SUGGESTSFLAGS; +case RPMTAG_OLDSUGGESTSNAME: + tagEVR = RPMTAG_OLDSUGGESTSVERSION; + tagF = RPMTAG_OLDSUGGESTSFLAGS; break; -case RPMTAG_ENHANCESNAME: - tagEVR = RPMTAG_ENHANCESVERSION; - tagF = RPMTAG_ENHANCESFLAGS; +case RPMTAG_OLDENHANCESNAME: + tagEVR = RPMTAG_OLDENHANCESVERSION; + tagF = RPMTAG_OLDENHANCESFLAGS; break; case RPMTAG_DIRNAMES: tagEVR = (rpmTag) 0; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_4: rpm/lib/ rpmds.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 26-Jun-2013 21:19:49 Branch: rpm-5_4 Handle: 2013062619194900 Modified files: (Branch: rpm-5_4) rpm/lib rpmds.c Log: - coverity #1035879 Summary: RevisionChanges Path 2.170.2.20 +4 -1 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.170.2.19 -r2.170.2.20 rpmds.c --- rpm/lib/rpmds.c 6 Jun 2012 21:25:04 - 2.170.2.19 +++ rpm/lib/rpmds.c 26 Jun 2013 19:19:49 - 2.170.2.20 @@ -4010,8 +4010,11 @@ /*@-mods@*/ evr_tuple_order = rpmExpand(%{?evr_tuple_order}, NULL); /*@=mods@*/ - if (evr_tuple_order == NULL || evr_tuple_order[0] == '\0') + if (evr_tuple_order == NULL || evr_tuple_order[0] == '\0') { + /* XXX coverity #1035879 */ + evr_tuple_order = _free(evr_tuple_order); evr_tuple_order = xstrdup(EVR); + } } assert(evr_tuple_order != NULL evr_tuple_order[0] != '\0'); /*@-freshtrans@*/ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_4: rpm/lib/ rpmds.c rpm/rpmdb/ rpmevr.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 06-Jun-2012 23:25:05 Branch: rpm-5_4 Handle: 2012060621250301 Modified files: (Branch: rpm-5_4) rpm/lib rpmds.c rpm/rpmdb rpmevr.c Log: - rpmevr: add the desired negative twiddle-in-version comparison semantic. Summary: RevisionChanges Path 2.170.2.19 +3 -0 rpm/lib/rpmds.c 1.37.2.9+3 -0 rpm/rpmdb/rpmevr.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.170.2.18 -r2.170.2.19 rpmds.c --- rpm/lib/rpmds.c 29 May 2012 17:42:30 - 2.170.2.18 +++ rpm/lib/rpmds.c 6 Jun 2012 21:25:04 - 2.170.2.19 @@ -4120,6 +4120,9 @@ sense = 0; } } else + if (ix == RPMEVR_T) /* XXX twiddle-in-version negative compare */ +sense = -EVRcmp(a-F[ix], b-F[ix]); + else /*@i@*/ sense = EVRcmp(a-F[ix], b-F[ix]); } if (sense) @@ . patch -p0 '@@ .' Index: rpm/rpmdb/rpmevr.c $ cvs diff -u -r1.37.2.8 -r1.37.2.9 rpmevr.c --- rpm/rpmdb/rpmevr.c29 May 2012 17:42:29 - 1.37.2.8 +++ rpm/rpmdb/rpmevr.c6 Jun 2012 21:25:03 - 1.37.2.9 @@ -320,6 +320,9 @@ rc = 0; } } else + if (ix == RPMEVR_T) /* XXX twiddle-in-version negative compare */ + rc = -compare_values(a-F[ix], b-F[ix]); + else rc = compare_values(a-F[ix], b-F[ix]); if (rc) break; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_4: rpm/lib/ rpmds.c rpm/rpmdb/ rpmevr.c
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: 13-Jul-2011 16:50:07 Branch: rpm-5_4 Handle: 2011071314500601 Modified files: (Branch: rpm-5_4) rpm/lib rpmds.c rpm/rpmdb rpmevr.c Log: fix regression introduced in previous commit Summary: RevisionChanges Path 2.170.2.11 +4 -3 rpm/lib/rpmds.c 1.37.2.4+4 -3 rpm/rpmdb/rpmevr.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.170.2.10 -r2.170.2.11 rpmds.c --- rpm/lib/rpmds.c 12 Jul 2011 10:44:05 - 2.170.2.10 +++ rpm/lib/rpmds.c 13 Jul 2011 14:50:06 - 2.170.2.11 @@ -4065,9 +4065,10 @@ case 'D':ix = RPMEVR_D; /*@switchbreak@*/break; } #if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */ - if(ix == RPMEVR_R (bFlags (~RPMSENSE_GREATER RPMSENSE_EQUAL)) - *(b-F[ix]) == '\0') - break; + if(ix = RPMEVR_R (bFlags (~RPMSENSE_GREATER RPMSENSE_EQUAL)) + !(ix == RPMEVR_D (bFlags RPMSENSE_LESS)) + *(b-F[ix]) == '\0') + break; if (a-F[ix] b-F[ix]) #else if (a-F[ix] *a-F[ix] b-F[ix] *b-F[ix]) @@ . patch -p0 '@@ .' Index: rpm/rpmdb/rpmevr.c $ cvs diff -u -r1.37.2.3 -r1.37.2.4 rpmevr.c --- rpm/rpmdb/rpmevr.c12 Jul 2011 10:44:05 - 1.37.2.3 +++ rpm/rpmdb/rpmevr.c13 Jul 2011 14:50:07 - 1.37.2.4 @@ -286,9 +286,10 @@ case 'D': ix = RPMEVR_D; /*@switchbreak@*/break; } #if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */ - if(ix == RPMEVR_R (b-Flags (~RPMSENSE_GREATER RPMSENSE_EQUAL)) - *(b-F[ix]) == '\0') - break; + if(ix = RPMEVR_R (b-Flags (~RPMSENSE_GREATER RPMSENSE_EQUAL)) + !(ix == RPMEVR_D (b-Flags RPMSENSE_LESS)) + *(b-F[ix]) == '\0') + break; #endif rc = compare_values(a-F[ix], b-F[ix]); @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_4: rpm/lib/ rpmds.c
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:24 Branch: rpm-5_4 Handle: 2011041006572300 Modified files: (Branch: rpm-5_4) rpm/lib rpmds.c Log: filter out some redundant devel(...) dependencies Summary: RevisionChanges Path 2.170.2.7 +23 -10 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.170.2.6 -r2.170.2.7 rpmds.c --- rpm/lib/rpmds.c 10 Apr 2011 06:05:58 - 2.170.2.6 +++ rpm/lib/rpmds.c 10 Apr 2011 06:57:23 - 2.170.2.7 @@ -2904,21 +2904,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; @@ -3282,8 +3280,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, '.'); @@ -3357,7 +3363,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; @@ -3365,6 +3377,7 @@ assert(s != NULL); /* Add next provide dependency. */ buf[0] = '\0'; + if (!skipP) { ds = rpmdsSingle(RPMTAG_PROVIDENAME, sonameDep(buf, s, isElf64, 1), @@ -3383,7 +3396,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 Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_4: rpm/lib/ rpmds.c
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: 11-Apr-2011 07:09:56 Branch: rpm-5_4 Handle: 2011041105095500 Modified files: (Branch: rpm-5_4) rpm/lib rpmds.c Log: fix segfault in case 's == NULL', also use strrchr() rather than rindex() Summary: RevisionChanges Path 2.170.2.9 +2 -3 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.170.2.8 -r2.170.2.9 rpmds.c --- rpm/lib/rpmds.c 10 Apr 2011 22:55:23 - 2.170.2.8 +++ rpm/lib/rpmds.c 11 Apr 2011 05:09:55 - 2.170.2.9 @@ -3282,7 +3282,7 @@ /** \ingroup rpmds * Extract dependencies from a symlink. - * XXX Prototype added to keep GCC quite and avoid adding a symbol. + * XXX Prototype added to keep GCC quiet and avoid adding a symbol. * @param fn file name * @param flags 1: skip provides 2: skip requires * @param *add add(arg, ds) saves next provide/require symlink dependency. @@ -3330,8 +3330,7 @@ ARGV_t deps = NULL; /* Filename must end with .so to be devel(...) dependency. */ -s = rindex(fn, '.'); -if (strcmp(s, .so)) +if ((s = strrchr(fn, '.')) strcmp(s, .so)) return 0; if ((lnklen = readlink(fn, path, MAXPATHLEN - 1)) == -1) { @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_4: rpm/lib/ rpmds.c
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: 25-Jan-2011 15:47:48 Branch: rpm-5_4 Handle: 2011012514474700 Modified files: (Branch: rpm-5_4) rpm/lib rpmds.c Log: handle missing release distepoch in rpmdsCompare() as well Summary: RevisionChanges Path 2.170.2.2 +7 -0 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.170.2.1 -r2.170.2.2 rpmds.c --- rpm/lib/rpmds.c 3 Jan 2011 21:21:39 - 2.170.2.1 +++ rpm/lib/rpmds.c 25 Jan 2011 14:47:47 - 2.170.2.2 @@ -3848,7 +3848,14 @@ case 'R':ix = RPMEVR_R; /*@switchbreak@*/break; case 'D':ix = RPMEVR_D; /*@switchbreak@*/break; } +#if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */ + if(ix = RPMEVR_R (bFlags (~RPMSENSE_GREATER RPMSENSE_EQUAL)) + *(b-F[ix]) == '\0') + break; + if (a-F[ix] b-F[ix]) +#else if (a-F[ix] *a-F[ix] b-F[ix] *b-F[ix]) +#endif /*@i@*/ sense = EVRcmp(a-F[ix], b-F[ix]); if (sense) break; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm-5_4: rpm/lib/ rpmds.c rpm/rpmdb/ rpmns.c rpmns.h
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 03-Jan-2011 22:21:39 Branch: rpm-5_4 Handle: 2011010321213801 Modified files: (Branch: rpm-5_4) rpm/lib rpmds.c rpm/rpmdb rpmns.c rpmns.h Log: - rpmns: optimize out strlen() calls on depsolver fast path. Summary: RevisionChanges Path 2.170.2.1 +0 -1 rpm/lib/rpmds.c 1.15.2.1+87 -77 rpm/rpmdb/rpmns.c 1.4.6.1 +8 -6 rpm/rpmdb/rpmns.h patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.170 -r2.170.2.1 rpmds.c --- rpm/lib/rpmds.c 2 Dec 2010 15:00:50 - 2.170 +++ rpm/lib/rpmds.c 3 Jan 2011 21:21:39 - 2.170.2.1 @@ -416,7 +416,6 @@ const char * Name = ds-N[ds-i]; int xx; -memset(ns, 0, sizeof(*ns)); xx = rpmnsParse(Name, ns); /*...@-compdef -userelea...@*/ /* FIX: correct annotations for ds-ns shadow */ @@ . patch -p0 '@@ .' Index: rpm/rpmdb/rpmns.c $ cvs diff -u -r1.15 -r1.15.2.1 rpmns.c --- rpm/rpmdb/rpmns.c 1 Jun 2010 22:00:27 - 1.15 +++ rpm/rpmdb/rpmns.c 3 Jan 2011 21:21:38 - 1.15.2.1 @@ -100,120 +100,130 @@ * Dependency probe table. */ /*...@unchecked@*/ /*...@observer@*/ +#define _ENTRY(_s, _type) { #_s, sizeof(#_s)-1, _type } static struct _rpmnsProbes_s { /*...@observer@*/ /*...@relnull@*/ const char * NS; +size_t NSlen; nsType Type; } rpmnsProbes[] = { -{ rpmlib, RPMNS_TYPE_RPMLIB }, -{ config, RPMNS_TYPE_CONFIG }, -{ cpuinfo, RPMNS_TYPE_CPUINFO }, -{ getconf, RPMNS_TYPE_GETCONF }, -{ uname, RPMNS_TYPE_UNAME }, -{ soname, RPMNS_TYPE_SONAME }, -{ user,RPMNS_TYPE_USER }, -{ group, RPMNS_TYPE_GROUP }, -{ mounted, RPMNS_TYPE_MOUNTED }, -{ diskspace, RPMNS_TYPE_DISKSPACE }, -{ digest, RPMNS_TYPE_DIGEST }, -{ gnupg, RPMNS_TYPE_GNUPG }, -{ macro, RPMNS_TYPE_MACRO }, -{ envvar, RPMNS_TYPE_ENVVAR }, -{ running, RPMNS_TYPE_RUNNING }, -{ sanitycheck, RPMNS_TYPE_SANITY }, -{ vcheck, RPMNS_TYPE_VCHECK }, -{ signature, RPMNS_TYPE_SIGNATURE }, -{ verify, RPMNS_TYPE_VERIFY }, -{ exists, RPMNS_TYPE_ACCESS }, -{ executable, RPMNS_TYPE_ACCESS }, -{ readable,RPMNS_TYPE_ACCESS }, -{ writable,RPMNS_TYPE_ACCESS }, -{ RWX, RPMNS_TYPE_ACCESS }, -{ RWx, RPMNS_TYPE_ACCESS }, -{ RW_, RPMNS_TYPE_ACCESS }, -{ RwX, RPMNS_TYPE_ACCESS }, -{ Rwx, RPMNS_TYPE_ACCESS }, -{ Rw_, RPMNS_TYPE_ACCESS }, -{ R_X, RPMNS_TYPE_ACCESS }, -{ R_x, RPMNS_TYPE_ACCESS }, -{ R__, RPMNS_TYPE_ACCESS }, -{ rWX, RPMNS_TYPE_ACCESS }, -{ rWx, RPMNS_TYPE_ACCESS }, -{ rW_, RPMNS_TYPE_ACCESS }, -{ rwX, RPMNS_TYPE_ACCESS }, -{ rwx, RPMNS_TYPE_ACCESS }, -{ rw_, RPMNS_TYPE_ACCESS }, -{ r_X, RPMNS_TYPE_ACCESS }, -{ r_x, RPMNS_TYPE_ACCESS }, -{ r__, RPMNS_TYPE_ACCESS }, -{ _WX, RPMNS_TYPE_ACCESS }, -{ _Wx, RPMNS_TYPE_ACCESS }, -{ _W_, RPMNS_TYPE_ACCESS }, -{ _wX, RPMNS_TYPE_ACCESS }, -{ _wx, RPMNS_TYPE_ACCESS }, -{ _w_, RPMNS_TYPE_ACCESS }, -{ __X, RPMNS_TYPE_ACCESS }, -{ __x, RPMNS_TYPE_ACCESS }, -{ ___, RPMNS_TYPE_ACCESS }, -{ NULL, 0 } +_ENTRY(rpmlib, RPMNS_TYPE_RPMLIB), +_ENTRY(config, RPMNS_TYPE_CONFIG), +_ENTRY(cpuinfo, RPMNS_TYPE_CPUINFO), +_ENTRY(getconf, RPMNS_TYPE_GETCONF), +_ENTRY(uname,RPMNS_TYPE_UNAME), +_ENTRY(soname, RPMNS_TYPE_SONAME), +_ENTRY(user, RPMNS_TYPE_USER), +_ENTRY(group,RPMNS_TYPE_GROUP), +_ENTRY(mounted, RPMNS_TYPE_MOUNTED), +_ENTRY(diskspace,RPMNS_TYPE_DISKSPACE), +_ENTRY(digest, RPMNS_TYPE_DIGEST), +_ENTRY(gnupg,RPMNS_TYPE_GNUPG), +_ENTRY(macro,RPMNS_TYPE_MACRO), +_ENTRY(envvar, RPMNS_TYPE_ENVVAR), +_ENTRY(running, RPMNS_TYPE_RUNNING), +