[CVS] RPM: 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:49:50 Branch: HEAD Handle: 2011071314494901 Modified files: rpm/lib rpmds.c rpm/rpmdb rpmevr.c Log: fix regression introduced in previous commit Summary: RevisionChanges Path 2.181 +4 -3 rpm/lib/rpmds.c 1.41+4 -3 rpm/rpmdb/rpmevr.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.180 -r2.181 rpmds.c --- rpm/lib/rpmds.c 12 Jul 2011 10:41:18 - 2.180 +++ rpm/lib/rpmds.c 13 Jul 2011 14:49:49 - 2.181 @@ -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.40 -r1.41 rpmevr.c --- rpm/rpmdb/rpmevr.c12 Jul 2011 10:41:19 - 1.40 +++ rpm/rpmdb/rpmevr.c13 Jul 2011 14:49:50 - 1.41 @@ -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/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:05:40 Branch: HEAD Handle: 2011041006053900 Modified files: rpm/lib rpmds.c Log: filename must end with '.so' to be a devel(...) dependency Summary: RevisionChanges Path 2.176 +6 -0 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.175 -r2.176 rpmds.c --- rpm/lib/rpmds.c 10 Apr 2011 05:54:36 - 2.175 +++ rpm/lib/rpmds.c 10 Apr 2011 06:05:39 - 2.176 @@ -3283,6 +3283,12 @@ int lnklen; char path[MAXPATHLEN]; ARGV_t deps = NULL; +size_t nb = strlen(fn); + +/* Filename must end with .so to be devel(...) dependency. */ +s = rindex(fn, '.'); +if (strcmp(s, .so)) + return 0; if ((lnklen = readlink(fn, path, MAXPATHLEN - 1)) == -1) { warn(%s, fn); @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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:10 Branch: HEAD Handle: 2011041006570900 Modified files: rpm/lib rpmds.c Log: filter out some redundant devel(...) dependencies Summary: RevisionChanges Path 2.177 +23 -10 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.176 -r2.177 rpmds.c --- rpm/lib/rpmds.c 10 Apr 2011 06:05:39 - 2.176 +++ rpm/lib/rpmds.c 10 Apr 2011 06:57:09 - 2.177 @@ -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/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:08:15 Branch: HEAD Handle: 2011041105081500 Modified files: rpm/lib rpmds.c Log: fix segfault in case 's == NULL', also use strrchr() rather than rindex() Summary: RevisionChanges Path 2.179 +2 -3 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.178 -r2.179 rpmds.c --- rpm/lib/rpmds.c 10 Apr 2011 22:53:04 - 2.178 +++ rpm/lib/rpmds.c 11 Apr 2011 05:08:15 - 2.179 @@ -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/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:17 Branch: HEAD Handle: 2011012514471400 Modified files: rpm/lib rpmds.c Log: handle missing release distepoch in rpmdsCompare() as well Summary: RevisionChanges Path 2.172 +7 -0 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.171 -r2.172 rpmds.c --- rpm/lib/rpmds.c 3 Jan 2011 21:20:23 - 2.171 +++ rpm/lib/rpmds.c 25 Jan 2011 14:47:14 - 2.172 @@ -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/lib/ rpmds.c rpmte.c rpmte.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: 02-Dec-2010 16:01:00 Branch: HEAD Handle: 2010120215005001 Modified files: rpm/lib rpmds.c rpmte.c rpmte.h Log: - lib: sync with rpm-5.3.6. Summary: RevisionChanges Path 2.170 +2 -0 rpm/lib/rpmds.c 2.109 +4 -2 rpm/lib/rpmte.c 2.76+0 -2 rpm/lib/rpmte.h patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.169 -r2.170 rpmds.c --- rpm/lib/rpmds.c 12 Sep 2010 22:19:56 - 2.169 +++ rpm/lib/rpmds.c 2 Dec 2010 15:00:50 - 2.170 @@ -2991,6 +2991,7 @@ continue; /*...@notreached@*/ /*...@switchbreak@*/ break; case SHT_NOTE: +#if defined(HAVE_GELF_GETNOTE) /* XXX OpenIndiana older elfutils haven't. */ if (!(shdr-sh_flags SHF_ALLOC)) continue; data = NULL; @@ -3034,6 +3035,7 @@ } } } +#endif /* defined(HAVE_GELF_GETNOTE) */ /*...@switchbreak@*/ break; case SHT_GNU_verdef: data = NULL; @@ . patch -p0 '@@ .' Index: rpm/lib/rpmte.c $ cvs diff -u -r2.108 -r2.109 rpmte.c --- rpm/lib/rpmte.c 12 Feb 2010 12:32:08 - 2.108 +++ rpm/lib/rpmte.c 2 Dec 2010 15:00:50 - 2.109 @@ -327,12 +327,14 @@ return (te != NULL ? te-release : NULL); } -#ifdef RPM_VENDOR_MANDRIVA const char * rpmteD(rpmte te) { +#ifdef RPM_VENDOR_MANDRIVA return (te != NULL ? te-distepoch : NULL); -} +#else +return NULL; #endif +} const char * rpmteA(rpmte te) { @@ . patch -p0 '@@ .' Index: rpm/lib/rpmte.h $ cvs diff -u -r2.75 -r2.76 rpmte.h --- rpm/lib/rpmte.h 16 Oct 2010 01:47:40 - 2.75 +++ rpm/lib/rpmte.h 2 Dec 2010 15:00:51 - 2.76 @@ -332,7 +332,6 @@ extern const char * rpmteR(rpmte te) /*...@*/; -#ifdef RPM_VENDOR_MANDRIVA /** \ingroup rpmte * Retrieve distepoch string of transaction element. * @param te transaction element @@ -341,7 +340,6 @@ /*...@observer@*/ /*...@null@*/ extern const char * rpmteD(rpmte te) /*...@*/; -#endif /** \ingroup rpmte * Retrieve arch string of transaction element. @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 23-Aug-2009 00:09:01 Branch: HEAD Handle: 200908090100 Modified files: rpm/lib rpmds.c Log: - don't bother printing NULL dependencies w --rpmdsdebug, linktos are very sparse. Summary: RevisionChanges Path 2.161 +1 -1 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.160 -r2.161 rpmds.c --- rpm/lib/rpmds.c 18 Jun 2009 21:31:41 - 2.160 +++ rpm/lib/rpmds.c 22 Aug 2009 22:09:01 - 2.161 @@ -918,7 +918,7 @@ ds-i = -1; /*...@-modfilesys @*/ -if (_rpmds_debug 0 i != -1) +if (_rpmds_debug 0 i != -1 ds-DNEVR[2] != '\0') fprintf(stderr, *** ds %p\t%s[%d]: %s\n, ds, (ds-Type ? ds-Type : ?Type?), i, (ds-DNEVR ? ds-DNEVR : ?DNEVR?)); /*...@=modfilesys @*/ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 12-May-2009 23:15:32 Branch: HEAD Handle: 2009051221153200 Modified files: rpm/lib rpmds.c Log: s/endianness/endian/ in rpmdsCpuinfo() Summary: RevisionChanges Path 2.156 +5 -5 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.155 -r2.156 rpmds.c --- rpm/lib/rpmds.c 6 May 2009 02:09:57 - 2.155 +++ rpm/lib/rpmds.c 12 May 2009 21:15:32 - 2.156 @@ -1204,7 +1204,7 @@ unsigned char uc[4]; }; static union _dbswap orderedbytes = { .ui = 0x11223344 }; -const char * endian = NULL; +const char * endianness = NULL; snprintf(tmp, 19, %d, cpuinfo_get_frequency(cip)); tmp[19] = '\0'; @@ -1215,12 +1215,12 @@ rpmdsNSAdd(dsp, NS, cpu_threads, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); if(orderedbytes.uc[0] == 0x44) - endian = little; + endianness = little; else if(orderedbytes.uc[0] == 0x11) - endian = big; + endianness = big; else if(orderedbytes.uc[0] == 0x22) - endian = pdp; -rpmdsNSAdd(dsp, NS, endian, endian, RPMSENSE_PROBE|RPMSENSE_EQUAL); + endianness = pdp; +rpmdsNSAdd(dsp, NS, endianness, endianness, RPMSENSE_PROBE|RPMSENSE_EQUAL); for (feature = cpuinfo_feature_common; feature != cpuinfo_feature_architecture_max; feature++) { if(feature == cpuinfo_feature_common_max) @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 06-May-2009 04:09:58 Branch: HEAD Handle: 2009050602095700 Modified files: rpm/lib rpmds.c Log: s/endianness/endian/ Summary: RevisionChanges Path 2.155 +5 -5 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.154 -r2.155 rpmds.c --- rpm/lib/rpmds.c 3 May 2009 17:35:58 - 2.154 +++ rpm/lib/rpmds.c 6 May 2009 02:09:57 - 2.155 @@ -1204,7 +1204,7 @@ unsigned char uc[4]; }; static union _dbswap orderedbytes = { .ui = 0x11223344 }; -const char * endianness = NULL; +const char * endian = NULL; snprintf(tmp, 19, %d, cpuinfo_get_frequency(cip)); tmp[19] = '\0'; @@ -1215,12 +1215,12 @@ rpmdsNSAdd(dsp, NS, cpu_threads, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); if(orderedbytes.uc[0] == 0x44) - endianness = little; + endian = little; else if(orderedbytes.uc[0] == 0x11) - endianness = big; + endian = big; else if(orderedbytes.uc[0] == 0x22) - endianness = pdp; -rpmdsNSAdd(dsp, NS, endianness, endianness, RPMSENSE_PROBE|RPMSENSE_EQUAL); + endian = pdp; +rpmdsNSAdd(dsp, NS, endian, endian, RPMSENSE_PROBE|RPMSENSE_EQUAL); for (feature = cpuinfo_feature_common; feature != cpuinfo_feature_architecture_max; feature++) { if(feature == cpuinfo_feature_common_max) @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 19-Mar-2009 21:35:07 Branch: HEAD Handle: 2009031920350700 Modified files: rpm/lib rpmds.c Log: detect cpuinfo(endianness) at runtime Summary: RevisionChanges Path 2.134 +14 -11 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.133 -r2.134 rpmds.c --- rpm/lib/rpmds.c 19 Mar 2009 17:46:23 - 2.133 +++ rpm/lib/rpmds.c 19 Mar 2009 20:35:07 - 2.134 @@ -5,7 +5,6 @@ #if defined(SUPPORT_LIBCPUINFO) #include cpuinfo.h -#include endian.h #endif #if defined(HAVE_GELF_H) !defined(__FreeBSD__) @@ -1210,6 +1209,12 @@ struct cpuinfo *cip = cpuinfo_new(); cpuinfo_feature_t feature; char tmp[20]; +union _dbswap { + rpmuint32_t ui; + unsigned char uc[4]; +}; +static union _dbswap orderedbytes = { .ui = 0x11223344 }; +const char * endianness = NULL; snprintf(tmp, 19, %d, cpuinfo_get_frequency(cip)); tmp[19] = '\0'; @@ -1218,16 +1223,14 @@ rpmdsNSAdd(dsp, NS, cpu_cores, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); snprintf(tmp, 19, %d, cpuinfo_get_threads(cip)); rpmdsNSAdd(dsp, NS, cpu_threads, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); -#ifdef __BYTE_ORDER -#if __BYTE_ORDER == LITTLE_ENDIAN -#define endian little -#elif __BYTE_ORDER == BIG_ENDIAN -#define endian big -#elif __BYTE_ORDER == PDP_ENDIAN -#define endian pdp -#endif -rpmdsNSAdd(dsp, NS, endianness, endian, RPMSENSE_PROBE|RPMSENSE_EQUAL); -#endif + +if(orderedbytes.uc[0] == 0x44) + endianness = little; +else if(orderedbytes.uc[0] == 0x11) + endianness = big; +else if(orderedbytes.uc[0] == 0x22) + endianness = pdp; +rpmdsNSAdd(dsp, NS, endianness, endianness, RPMSENSE_PROBE|RPMSENSE_EQUAL); for (feature = cpuinfo_feature_common; feature != cpuinfo_feature_architecture_max; feature++) { if(feature == cpuinfo_feature_common_max) @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/lib/ rpmds.c rpmds.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: 17-Mar-2009 14:27:47 Branch: HEAD Handle: 2009031713274600 Modified files: rpm/lib rpmds.c rpmds.h Log: - yarn: convert rpmds refcounts to usage mutexes. Summary: RevisionChanges Path 2.129 +41 -28 rpm/lib/rpmds.c 2.75+1 -2 rpm/lib/rpmds.h patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.128 -r2.129 rpmds.c --- rpm/lib/rpmds.c 13 Mar 2009 18:35:53 - 2.128 +++ rpm/lib/rpmds.c 17 Mar 2009 13:27:46 - 2.129 @@ -125,23 +125,24 @@ rpmds XrpmdsUnlink(rpmds ds, const char * msg, const char * fn, unsigned ln) { if (ds == NULL) return NULL; +yarnPossess(ds-use); /*...@-modfilesys@*/ if (_rpmds_debug msg != NULL) -fprintf(stderr, -- ds %p -- %d %s at %s:%u\n, ds, ds-nrefs, msg, fn, ln); +fprintf(stderr, -- ds %p -- %ld %s at %s:%u\n, ds, yarnPeekLock(ds-use), msg, fn, ln); /*...@=modfilesys@*/ -ds-nrefs--; +yarnTwist(ds-use, BY, -1); return NULL; } rpmds XrpmdsLink(rpmds ds, const char * msg, const char * fn, unsigned ln) { if (ds == NULL) return NULL; -ds-nrefs++; - +yarnPossess(ds-use); /*...@-modfilesys@*/ if (_rpmds_debug msg != NULL) -fprintf(stderr, -- ds %p ++ %d %s at %s:%u\n, ds, ds-nrefs, msg, fn, ln); +fprintf(stderr, -- ds %p ++ %ld %s at %s:%u\n, ds, yarnPeekLock(ds-use)+1, msg, fn, ln); /*...@=modfilesys@*/ +yarnTwist(ds-use, BY, 1); /*...@-refcounttrans@*/ return ds; /*...@=refcounttrans@*/ } @@ -185,36 +186,44 @@ if (ds == NULL) return NULL; -if (ds-nrefs 1) - return rpmdsUnlink(ds, ds-Type); +yarnPossess(ds-use); +/*...@-modfilesys@*/ +if (_rpmds_debug) +fprintf(stderr, -- ds %p -- %ld %s at %s:%u\n, ds, yarnPeekLock(ds-use), ds-Type, __FILE__, __LINE__); +/*...@=modfilesys@*/ +if (yarnPeekLock(ds-use) = 1) { + yarnLock use = ds-use; /*...@-modfilesys@*/ if (_rpmds_debug 0) fprintf(stderr, *** ds %p\t%s[%d]\n, ds, ds-Type, ds-Count); /*...@=modfilesys@*/ -if (ds-Count 0) { - ds-N = _free(ds-N); - ds-EVR = _free(ds-EVR); - ds-Flags = _free(ds-Flags); - ds-h = headerFree(ds-h); -} + if (ds-Count 0) { + ds-N = _free(ds-N); + ds-EVR = _free(ds-EVR); + ds-Flags = _free(ds-Flags); + ds-h = headerFree(ds-h); + } -ds-DNEVR = _free(ds-DNEVR); -ds-ns.str = _free(ds-ns.str); -memset(ds-ns, 0, sizeof(ds-ns)); -ds-A = _free(ds-A); -ds-Color = _free(ds-Color); -ds-Refs = _free(ds-Refs); -ds-Result = _free(ds-Result); -ds-exclude = mireFreeAll(ds-exclude, ds-nexclude); -ds-include = mireFreeAll(ds-include, ds-ninclude); - -(void) rpmdsUnlink(ds, ds-Type); -/*...@-refcounttrans -userelea...@*/ -memset(ds, 0, sizeof(*ds)); /* XXX trash and burn */ -ds = _free(ds); -/*...@=refcounttrans =userelea...@*/ + ds-DNEVR = _free(ds-DNEVR); + ds-ns.str = _free(ds-ns.str); + memset(ds-ns, 0, sizeof(ds-ns)); + ds-A = _free(ds-A); + ds-Color = _free(ds-Color); + ds-Refs = _free(ds-Refs); + ds-Result = _free(ds-Result); + ds-exclude = mireFreeAll(ds-exclude, ds-nexclude); + ds-include = mireFreeAll(ds-include, ds-ninclude); + + /*...@-refcounttrans -userelea...@*/ + memset(ds, 0, sizeof(*ds)); /* XXX trash and burn */ + ds = _free(ds); + /*...@=refcounttrans =userelea...@*/ + yarnTwist(use, BY, -1); + use = yarnFreeLock(use); +} else + yarnTwist(ds-use, BY, -1); return NULL; } @@ -320,6 +329,7 @@ Count = he-c; if (xx N != NULL Count 0) { ds = xcalloc(1, sizeof(*ds)); + ds-use = yarnNewLock(0); ds-Type = Type; ds-h = NULL; ds-i = -1; @@ -587,6 +597,7 @@ R = _free(R); ds = xcalloc(1, sizeof(*ds)); +ds-use = yarnNewLock(0); ds-Type = Type; ds-tagN = tagN; ds-Count = 1; @@ -622,6 +633,7 @@ Type = rpmdsTagName(tagN); ds = xcalloc(1, sizeof(*ds)); +ds-use = yarnNewLock(0); ds-Type = Type; ds-tagN = tagN; ds-A = NULL; @@ -968,6 +980,7 @@ size_t nb; ds-h = (ods-h != NULL ? headerLink(ods-h) : NULL); +ds-use = yarnNewLock(0);
[CVS] RPM: 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: 13-Mar-2009 19:27:30 Branch: HEAD Handle: 2009031318273000 Modified files: rpm/lib rpmds.c Log: add cpuinfo(cpu_cores) cpuinfo(cpu_threads) for libcpuinfo Summary: RevisionChanges Path 2.127 +10 -4 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.126 -r2.127 rpmds.c --- rpm/lib/rpmds.c 12 Mar 2009 22:56:53 - 2.126 +++ rpm/lib/rpmds.c 13 Mar 2009 18:27:30 - 2.127 @@ -1207,11 +1207,17 @@ const char * NS = cpuinfo; struct cpuinfo *cip = cpuinfo_new(); cpuinfo_feature_t feature; +char tmp[20]; -char mhz[20]; -snprintf(mhz, 19, %d, cpuinfo_get_frequency(cip)); -mhz[19] = '\0'; -rpmdsNSAdd(dsp, NS, cpu_MHz, mhz, RPMSENSE_PROBE|RPMSENSE_EQUAL); +snprintf(tmp, 19, %d, cpuinfo_get_frequency(cip)); +tmp[19] = '\0'; +rpmdsNSAdd(dsp, NS, cpu_MHz, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); +snprintf(tmp, 19, %d, cpuinfo_get_cores(cip)); +tmp[19] = '\0'; +rpmdsNSAdd(dsp, NS, cpu_cores, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); +snprintf(tmp, 19, %d, cpuinfo_get_threads(cip)); +tmp[19] = '\0'; +rpmdsNSAdd(dsp, NS, cpu_threads, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); for (feature = cpuinfo_feature_common; feature != cpuinfo_feature_architecture_max; feature++) { if(feature == cpuinfo_feature_common_max) @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 13-Mar-2009 19:35:53 Branch: HEAD Handle: 2009031318355300 Modified files: rpm/lib rpmds.c Log: no need to add terminator several times since we never copy long enough strings to overwrite it Summary: RevisionChanges Path 2.128 +0 -2 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.127 -r2.128 rpmds.c --- rpm/lib/rpmds.c 13 Mar 2009 18:27:30 - 2.127 +++ rpm/lib/rpmds.c 13 Mar 2009 18:35:53 - 2.128 @@ -1213,10 +1213,8 @@ tmp[19] = '\0'; rpmdsNSAdd(dsp, NS, cpu_MHz, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); snprintf(tmp, 19, %d, cpuinfo_get_cores(cip)); -tmp[19] = '\0'; rpmdsNSAdd(dsp, NS, cpu_cores, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); snprintf(tmp, 19, %d, cpuinfo_get_threads(cip)); -tmp[19] = '\0'; rpmdsNSAdd(dsp, NS, cpu_threads, tmp, RPMSENSE_PROBE|RPMSENSE_EQUAL); for (feature = cpuinfo_feature_common; feature != cpuinfo_feature_architecture_max; feature++) { @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 12-Mar-2009 18:39:47 Branch: HEAD Handle: 2009031217394700 Modified files: rpm/lib rpmds.c Log: cpuinfo_feature_t variables are now opaque :) Summary: RevisionChanges Path 2.123 +9 -24 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.122 -r2.123 rpmds.c --- rpm/lib/rpmds.c 12 Mar 2009 13:02:11 - 2.122 +++ rpm/lib/rpmds.c 12 Mar 2009 17:39:47 - 2.123 @@ -1206,31 +1206,16 @@ { const char * NS = cpuinfo; struct cpuinfo *cip = cpuinfo_new(); -int i,j; +cpuinfo_feature_t feature; -static const struct { - int base; - int max; -} features_bits[] = { - { CPUINFO_FEATURE_COMMON + 1, CPUINFO_FEATURE_COMMON_MAX }, - { CPUINFO_FEATURE_X86, CPUINFO_FEATURE_X86_MAX }, - { CPUINFO_FEATURE_IA64, CPUINFO_FEATURE_IA64_MAX }, - { CPUINFO_FEATURE_PPC, CPUINFO_FEATURE_PPC_MAX }, - { CPUINFO_FEATURE_MIPS, CPUINFO_FEATURE_MIPS_MAX }, - { -1, 0 } -}; - -for (i = 0; features_bits[i].base != -1; i++) { - int base = features_bits[i].base; - int count = features_bits[i].max - base; - for (j = 0; j count; j++) { - int feature = base + j; - if (cpuinfo_has_feature(cip, feature)) { - /* XXX: some mnemonics are currently different from /proc/cpuinfo's */ - const char *name = cpuinfo_string_of_feature(feature); - if (name) - rpmdsNSAdd(dsp, NS, name, , RPMSENSE_PROBE); - } +for (feature = cpuinfo_feature_common; feature != cpuinfo_feature_architecture_max; feature++) { + if(feature == cpuinfo_feature_common_max) + feature = cpuinfo_feature_architecture; + if (cpuinfo_has_feature(cip, feature)) { + /* XXX: some mnemonics are currently different from /proc/cpuinfo's */ + const char *name = cpuinfo_string_of_feature(feature); + if (name) + rpmdsNSAdd(dsp, NS, name, , RPMSENSE_PROBE); } } cpuinfo_destroy(cip); @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 12-Mar-2009 22:34:28 Branch: HEAD Handle: 2009031221342800 Modified files: rpm/lib rpmds.c Log: remove comments about different naming, it's been made consistent now :) Summary: RevisionChanges Path 2.124 +0 -1 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.123 -r2.124 rpmds.c --- rpm/lib/rpmds.c 12 Mar 2009 17:39:47 - 2.123 +++ rpm/lib/rpmds.c 12 Mar 2009 21:34:28 - 2.124 @@ -1212,7 +1212,6 @@ if(feature == cpuinfo_feature_common_max) feature = cpuinfo_feature_architecture; if (cpuinfo_has_feature(cip, feature)) { - /* XXX: some mnemonics are currently different from /proc/cpuinfo's */ const char *name = cpuinfo_string_of_feature(feature); if (name) rpmdsNSAdd(dsp, NS, name, , RPMSENSE_PROBE); @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 12-Mar-2009 23:56:53 Branch: HEAD Handle: 2009031222565300 Modified files: rpm/lib rpmds.c Log: practice snprintf nazi Summary: RevisionChanges Path 2.126 +2 -1 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.125 -r2.126 rpmds.c --- rpm/lib/rpmds.c 12 Mar 2009 22:28:12 - 2.125 +++ rpm/lib/rpmds.c 12 Mar 2009 22:56:53 - 2.126 @@ -1209,7 +1209,8 @@ cpuinfo_feature_t feature; char mhz[20]; -sprintf(mhz, %d, cpuinfo_get_frequency(cip)); +snprintf(mhz, 19, %d, cpuinfo_get_frequency(cip)); +mhz[19] = '\0'; rpmdsNSAdd(dsp, NS, cpu_MHz, mhz, RPMSENSE_PROBE|RPMSENSE_EQUAL); for (feature = cpuinfo_feature_common; feature != cpuinfo_feature_architecture_max; feature++) { @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: 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: 24-Dec-2008 12:01:34 Branch: HEAD Handle: 2008122411013300 Modified files: rpm/lib rpmds.c Log: oops, put back line that accidentally got removed in earlier commit.. Summary: RevisionChanges Path 2.117 +1 -0 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.116 -r2.117 rpmds.c --- rpm/lib/rpmds.c 24 Dec 2008 11:00:06 - 2.116 +++ rpm/lib/rpmds.c 24 Dec 2008 11:01:33 - 2.117 @@ -562,6 +562,7 @@ t += sizeof(*EVR); *t = '\0'; EVR[0] = t; +sprintf(t, %d:, E); t += strlen(t); t = stpcpy( stpcpy( stpcpy( t, V), -), R); if (D != NULL) { @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/lib/ rpmds.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Olivier Thauvin Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 15-Mar-2008 00:22:22 Branch: HEAD Handle: 2008031423222100 Modified files: rpm/lib rpmds.c Log: - allow rpmdsNew to handle suggests and enhances dependencies Summary: RevisionChanges Path 2.94+30 -0 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.93 -r2.94 rpmds.c --- rpm/lib/rpmds.c 12 Mar 2008 18:11:08 - 2.93 +++ rpm/lib/rpmds.c 14 Mar 2008 23:22:21 - 2.94 @@ -174,6 +174,14 @@ tagEVR = RPMTAG_TRIGGERVERSION; tagF = RPMTAG_TRIGGERFLAGS; } else +if (ds-tagN == RPMTAG_SUGGESTSNAME) { + tagEVR = RPMTAG_SUGGESTSVERSION; + tagF = RPMTAG_SUGGESTSFLAGS; +} else +if (ds-tagN == RPMTAG_ENHANCESNAME) { + tagEVR = RPMTAG_ENHANCESVERSION; + tagF = RPMTAG_ENHANCESFLAGS; +} else if (ds-tagN == RPMTAG_DIRNAMES) { tagEVR = 0; tagF = 0; @@ -274,6 +282,16 @@ tagEVR = RPMTAG_TRIGGERVERSION; tagF = RPMTAG_TRIGGERFLAGS; } else +if (tagN == RPMTAG_SUGGESTSNAME) { + Type = Suggests; + tagEVR = RPMTAG_SUGGESTSVERSION; + tagF = RPMTAG_SUGGESTSFLAGS; +} else +if (tagN == RPMTAG_ENHANCESNAME) { + Type = Enhances; + tagEVR = RPMTAG_ENHANCESVERSION; + tagF = RPMTAG_ENHANCESFLAGS; +} else if (tagN == RPMTAG_DIRNAMES) { Type = Dirnames; tagEVR = 0; @@ -499,6 +517,12 @@ if (tagN == RPMTAG_TRIGGERNAME) { Type = Triggers; } else +if (tagN == RPMTAG_SUGGESTSNAME) { +Type = Suggests; +} else +if (tagN == RPMTAG_ENHANCESNAME) { +Type = Enhances; +} else if (tagN == RPMTAG_DIRNAMES) { Type = Dirnames; } else @@ -584,6 +608,12 @@ if (tagN == RPMTAG_TRIGGERNAME) { Type = Triggers; } else +if (tagN == RPMTAG_SUGGESTSNAME) { +Type = Suggests; +} else +if (tagN == RPMTAG_ENHANCESNAME) { +Type = Enhances; +} else if (tagN == RPMTAG_DIRNAMES) { Type = Dirnames; } else @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/lib/ rpmds.c
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-Sep-2007 18:05:22 Branch: HEAD Handle: 2007092017052200 Modified files: rpm/lib rpmds.c Log: rpm.org disables rpmlib provide if not compiled with bzip2. Summary: RevisionChanges Path 2.64+2 -0 rpm/lib/rpmds.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.63 -r2.64 rpmds.c --- rpm/lib/rpmds.c 19 Aug 2007 17:43:03 - 2.63 +++ rpm/lib/rpmds.c 20 Sep 2007 16:05:22 - 2.64 @@ -1411,8 +1411,10 @@ { rpmlib(CompressedFileNames), 3.0.4-1, (RPMSENSE_RPMLIB|RPMSENSE_EQUAL), N_(file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.)}, +#if defined(HAVE_BZLIB_H) { rpmlib(PayloadIsBzip2), 3.0.5-1, (RPMSENSE_RPMLIB|RPMSENSE_EQUAL), +#endif N_(package payload can be compressed using bzip2.) }, { rpmlib(PayloadFilesHavePrefix), 4.0-1, (RPMSENSE_RPMLIB|RPMSENSE_EQUAL), @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/lib/ rpmds.c rpmrc.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 02-Jul-2007 10:53:29 Branch: HEAD Handle: 2007070209532900 Modified files: rpm/lib rpmds.c rpmrc.c Log: do not hard-code the config directory /etc/rpm, use the existing SYSCONFIGDIR #define which especially can be configured to a different directory during build-time, too Summary: RevisionChanges Path 2.59+1 -1 rpm/lib/rpmds.c 2.200 +1 -1 rpm/lib/rpmrc.c patch -p0 '@@ .' Index: rpm/lib/rpmds.c $ cvs diff -u -r2.58 -r2.59 rpmds.c --- rpm/lib/rpmds.c 21 Jun 2007 12:00:08 - 2.58 +++ rpm/lib/rpmds.c 2 Jul 2007 08:53:29 - 2.59 @@ -1607,7 +1607,7 @@ return rc; } -#define _ETC_RPM_SYSINFO/etc/rpm/sysinfo +#define _ETC_RPM_SYSINFOSYSCONFIGDIR /sysinfo /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char *_sysinfo_path = NULL; @@ . patch -p0 '@@ .' Index: rpm/lib/rpmrc.c $ cvs diff -u -r2.199 -r2.200 rpmrc.c --- rpm/lib/rpmrc.c 29 Jun 2007 12:28:41 - 2.199 +++ rpm/lib/rpmrc.c 2 Jul 2007 08:53:29 - 2.200 @@ -31,7 +31,7 @@ static const char * configTarget = NULL; /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ -static const char * platform = /etc/rpm/platform; +static const char * platform = SYSCONFIGDIR /platform; /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ void * platpat = NULL; /[EMAIL PROTECTED]@*/ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org