]> git.pld-linux.org Git - packages/poldek.git/blob - poldek-distver.patch
- fixed a braino
[packages/poldek.git] / poldek-distver.patch
1 --- poldek-0.18.6.orig/./shell/shell.c  2004-09-07 11:47:47.000000000 +0000
2 +++ poldek-0.18.6/./shell/shell.c       2004-09-07 11:15:33.000000000 +0000
3 @@ -997,7 +1013,7 @@
4          return 0;
5      
6      if (compare_ver == 0)
7 -        *cmprc = pkg_cmp_evr(lshpkg->pkg, shpkg->pkg);
8 +        *cmprc = pkg_cmp_dist_evr(lshpkg->pkg, shpkg->pkg);
9      else 
10          *cmprc = pkg_cmp_ver(lshpkg->pkg, shpkg->pkg);
11      
12 --- poldek-0.18.6.orig/./pkg.c  2004-05-05 16:56:43.000000000 +0000
13 +++ poldek-0.18.6/./pkg.c       2004-09-07 00:08:12.000000000 +0000
14 @@ -49,13 +49,13 @@
15  struct pkg *pkg_new(const char *name, int32_t epoch,
16                      const char *version, const char *release,
17                      const char *arch, const char *os,
18 -                    const char *fn,
19 +                    const char *fn, const char *dist,
20                      uint32_t size, uint32_t fsize,
21                      uint32_t btime)
22  {
23      struct pkg *pkg;
24      int name_len = 0, version_len = 0, release_len = 0,
25 -        arch_len = 0, os_len = 0, fn_len = 0;
26 +        arch_len = 0, os_len = 0, fn_len = 0, dist_len = 0;
27      char *buf;
28      int len;
29  
30 @@ -85,6 +85,11 @@
31          len += os_len + 1;
32      }
33  
34 +       if(dist) {      
35 +           dist_len = strlen(dist);
36 +           len += dist_len + 1;
37 +       }
38 +       
39      if (fn && arch) {
40          char pkg_fn[1024];
41          
42 @@ -141,7 +146,15 @@
43          buf += os_len;
44          *buf++ = '\0';
45      }
46  
47 +       pkg->dist=NULL;
48 +       if(dist) {      
49 +           pkg->dist = buf;
50 +       memcpy(buf, dist, dist_len);
51 +           buf += dist_len;
52 +           *buf++ = '\0';
53 +       }
54 +       
55      pkg->fn = NULL;
56      if (fn) {
57          pkg->fn = buf;
58 @@ -248,6 +261,7 @@
59      struct pkg *pkg;
60      uint32_t   *epoch, *size, *btime;
61      char       *name, *version, *release, *arch = NULL, *os = NULL;
62 +       char            *dist = NULL;
63      int        type;
64      
65      headerNVR(h, (void*)&name, (void*)&version, (void*)&release);
66 @@ -267,6 +281,13 @@
67      if (type != RPM_STRING_TYPE)
68          arch = NULL;
69      
70 +    if (!headerGetEntry(h, RPMTAG_DISTRIBUTION, &type, (void *)&dist, NULL)) {
71 +        dist = NULL;
72 +    }
73 +
74 +    if (type != RPM_STRING_TYPE)
75 +        dist = NULL;
76 +
77      if (!headerGetEntry(h, RPMTAG_OS, &type, (void *)&os, NULL)) {
78          if (verbose > 1)
79              logn(LOGWARN, _("%s: missing OS tag"), fname);
80 @@ -282,7 +304,7 @@
81          btime = NULL;
82      
83      pkg = pkg_new(name, epoch ? *epoch : 0, version, release, arch, os,
84 -                  fname ? n_basenam(fname) : NULL, 
85 +                  fname ? n_basenam(fname) : NULL, dist, 
86                    size ? *size : 0, fsize, btime ? *btime : 0);
87      
88      if (pkg == NULL)
89 @@ -444,6 +475,19 @@
90      return pkg_cmp_ver(p1, p2);
91  }
92  
93 +int pkg_cmp_dist_evr(const struct pkg *p1, const struct pkg *p2)
94 +{
95 +       int rc;
96 +
97 +       if(p1->dist && p2->dist)
98 +       {
99 +               rc = rpmdistcmp(p1->dist, p2->dist);
100 +               if(rc != 0)
101 +                       return rc;      
102 +       }
103 +
104 +       return pkg_cmp_evr(p1, p2);
105 +}
106  
107  int pkg_cmp_evr(const struct pkg *p1, const struct pkg *p2) 
108  {
109 @@ -487,6 +531,15 @@
110      //return rc;
111  }
112  
113 +int pkg_cmp_name_dist_evr_rev(const struct pkg *p1, const struct pkg *p2) 
114 +{
115 +    register int rc;
116 +
117 +    if ((rc = pkg_cmp_name(p1, p2)))
118 +        return rc;
119 +    
120 +    return -pkg_cmp_dist_evr(p1, p2);
121 +}
122  
123  int pkg_cmp_name_evr_rev_srcpri(const struct pkg *p1, const struct pkg *p2) 
124  {
125 @@ -612,6 +665,15 @@
126      return pkg_cmp_name_evr_rev(p1, p2);
127  }
128  
129 +int pkg_cmp_dist_pri(struct pkg *p1, struct pkg *p2)
130 +{
131 +    register int cmprc = 0;
132 +
133 +    if ((cmprc = p1->pri - p2->pri))
134 +        return cmprc;
135 +    
136 +    return pkg_cmp_name_dist_evr_rev(p1, p2);
137 +}
138  
139  int pkg_cmp_btime(struct pkg *p1, struct pkg *p2)
140  {
141 @@ -1406,7 +1406,7 @@
142      tn_array *arr;
143      
144      arr = n_array_new(size, (tn_fn_free)pkg_free,
145 -                      (tn_fn_cmp)pkg_cmp_name_evr_rev);
146 +                      (tn_fn_cmp)pkg_cmp_name_dist_evr_rev);
147      n_array_ctl(arr, TN_ARRAY_AUTOSORTED);
148      return arr;
149  }
150 --- poldek-0.18.6.orig/./usrset.c       2004-09-07 11:47:47.000000000 +0000
151 +++ poldek-0.18.6/./usrset.c    2004-09-02 23:30:43.000000000 +0000
152 @@ -185,7 +185,7 @@
153              release = "";
154                  
155          pdef->pkg = pkg_new(name, epoch, version, release, NULL, NULL, NULL,
156 -                            0, 0, 0);
157 +                            NULL, 0, 0, 0);
158      }
159  
160      if (virtname) 
161 --- poldek-0.18.6.orig/./test_match.c   2004-05-05 16:57:09.000000000 +0000
162 +++ poldek-0.18.6/./test_match.c        2004-09-02 23:32:58.000000000 +0000
163 @@ -49,7 +49,7 @@
164                  struct capreq *cap;
165                  
166                  pkg = pkg_new("poldek", epoch, versions[i], relases[j],
167 -                              NULL, NULL, NULL, 0, 0, 0);
168 +                              NULL, NULL, NULL, NULL, 0, 0, 0);
169                  cap = capreq_new("poldek", epoch, versions[i++], relases[j++],
170                                   REL_EQ, 0);
171                  k = 0;
172 @@ -83,7 +83,7 @@
173      struct capreq *req, *cap;
174      int rc;
175      
176 -    pkg = pkg_new("poldek", epoch, ver, rel,  NULL, NULL, NULL, 0, 0, 0);
177 +    pkg = pkg_new("poldek", epoch, ver, rel,  NULL, NULL, NULL, NULL, 0, 0, 0);
178      cap = capreq_new("poldek", epoch, ver, rel, REL_EQ, 0);
179  
180      req = capreq_new_evr("poldek", n_strdup(evr), relation, 0);
181 --- poldek-0.18.6.orig/./pkgdir.c       2004-05-06 07:57:31.000000000 +0000
182 +++ poldek-0.18.6/./pkgdir.c    2004-09-07 10:45:51.000000000 +0000
183 @@ -69,6 +69,7 @@
184  #define PKGT_HAS_BTIME    (1 << 11)
185  #define PKGT_HAS_GROUPID  (1 << 12)
186  #define PKGT_HAS_FN       (1 << 13)
187 +#define PKGT_HAS_DIST     (1 << 14)
188  
189  struct pkgtags_s {
190      unsigned   flags;
191 @@ -77,6 +78,7 @@
192      char       arch[64];
193      char       os[64];
194      char       fn[1024];
195 +    char       dist[64];
196      uint32_t   size;
197      uint32_t   fsize;
198      uint32_t   btime;
199 @@ -1093,6 +1095,7 @@
200              case 'A':
201              case 'O':
202              case 'n':
203 +            case 'D':
204                  if (!add2pkgtags(&pkgt, *line, val, pkgdir->path, offs)) {
205                      nerr++;
206                      goto l_end;
207 @@ -1320,6 +1323,16 @@
208              }
209              break;
210  
211 +        case 'D':
212 +            if (pkgt->flags & PKGT_HAS_DIST) {
213 +                logn(LOGERR, errmg_double_tag, pathname, offs, tag);
214 +                err++;
215 +            } else {
216 +                memcpy(pkgt->dist, value, sizeof(pkgt->dist) - 1);
217 +                pkgt->dist[ sizeof(pkgt->dist) - 1 ] = '\0';
218 +                pkgt->flags |= PKGT_HAS_DIST;
219 +            }
220 +            break;
221              
222          case 'S':
223              if (pkgt->flags & PKGT_HAS_SIZE) {
224 @@ -1393,7 +1406,7 @@
225  struct pkg *pkg_new_from_tags(struct pkgtags_s *pkgt) 
226  {
227      struct pkg *pkg;
228 -    char *version, *release, *arch = NULL, *os = NULL, *fn = NULL;
229 +    char *version, *release, *arch = NULL, *os = NULL, *fn = NULL, *dist = NULL;
230      int32_t epoch;
231      
232      if (!(pkgt->flags & (PKGT_HAS_NAME | PKGT_HAS_EVR)))
233 @@ -1407,6 +1420,9 @@
234  
235      if (pkgt->flags & PKGT_HAS_FN) 
236          fn = pkgt->fn;
237 +
238 +       if (pkgt->flags & PKGT_HAS_DIST)
239 +               dist = pkgt->dist;
240      
241      if (*pkgt->name == '\0' || *pkgt->evr == '\0' || *pkgt->arch == '\0') 
242          return NULL;
243 @@ -1419,7 +1435,7 @@
244          return NULL;
245      }
246  
247 -    pkg = pkg_new(pkgt->name, epoch, version, release, arch, os, fn, 
248 +    pkg = pkg_new(pkgt->name, epoch, version, release, arch, os, fn, dist,
249                    pkgt->size, pkgt->fsize, pkgt->btime);
250      pkg->groupid = pkgt->groupid;
251      
252 @@ -1488,7 +1504,7 @@
253  
254          if (*p && parse_nevr(p, &name, &epoch, &ver, &rel)) {
255              struct pkg *pkg = pkg_new(name, epoch, ver, rel, NULL, NULL, NULL,
256 -                                      0, 0, 0);
257 +                                      NULL, 0, 0, 0);
258              n_array_push(pkgs, pkg);
259          }
260      }
261 --- poldek-0.18.6.orig/./pkgset-install.c       2004-09-07 11:47:47.000000000 +0000
262 +++ poldek-0.18.6/./pkgset-install.c    2004-09-07 12:05:41.000000000 +0000
263 @@ -1998,7 +1998,7 @@
264          if (is_installed == 0)
265              n_array_push(iinf->uninstalled_pkgs,
266                           pkg_new(pkg->name, pkg->epoch, pkg->ver, pkg->rel,
267 -                                 pkg->arch, pkg->os, NULL,
268 +                                 pkg->arch, pkg->os, NULL, NULL,
269                                   pkg->size, pkg->fsize,
270                                   pkg->btime));
271      }
272 @@ -2189,10 +2189,14 @@
273      struct upgrade_s  *upg = upgptr;
274      struct pkg        *pkg, tmpkg;
275      uint32_t          *epoch;
276 -    int               i, cmprc;
277 +    int               i, cmprc, type, count;
278  
279      
280      recno = recno;
281 +
282 +    if (!(headerGetEntry(h, RPMTAG_DISTRIBUTION, &type, (void *)&tmpkg.dist,
283 +                       &count) && type == RPM_STRING_TYPE && count == 1))
284 +               tmpkg.dist=NULL;
285      
286      if (!rpmhdr_nevr(h, &tmpkg.name, &epoch, &tmpkg.ver, &tmpkg.rel)) {
287          logn(LOGERR, _("db package header corrupted (!?)"));
288 @@ -2208,7 +2212,7 @@
289      }
290      
291      pkg = n_array_nth(upg->avpkgs, i);
292 -    cmprc = pkg_cmp_evr(pkg, &tmpkg);
293 +    cmprc = pkg_cmp_dist_evr(pkg, &tmpkg);
294      if (verbose) {
295          if (cmprc == 0) 
296              msg(3, "%-32s up to date\n", pkg_snprintf_s(&tmpkg));
297 --- poldek-0.18.6.orig/./rpm.c  2004-09-07 11:47:47.000000000 +0000
298 +++ poldek-0.18.6/./rpm.c       2004-09-02 23:53:05.000000000 +0000
299 @@ -497,6 +497,36 @@
300      return n;
301  }
302  
303 +static 
304 +int hdr_pkg_cmp_dist_evr(Header h, const struct pkg *pkg)
305 +{
306 +    int rc;
307 +    struct pkg  tmpkg;
308 +    uint32_t    *epoch;
309 +       int count;
310 +       int type;
311 +
312 +    if (!(headerGetEntry(h, RPMTAG_DISTRIBUTION, &type, (void *)&tmpkg.dist,
313 +                       &count) && type == RPM_STRING_TYPE && count == 1))
314 +               tmpkg.dist=NULL;
315 +        
316 +    headerNVR(h, (void*)&tmpkg.name, (void*)&tmpkg.ver,
317 +              (void*)&tmpkg.rel);
318 +    
319 +    if (tmpkg.name == NULL || tmpkg.ver == NULL || tmpkg.rel == NULL) {
320 +        logn(LOGERR, "headerNVR() failed");
321 +        return 0;
322 +    }
323 +        
324 +    if (headerGetEntry(h, RPMTAG_EPOCH, &rc, (void *)&epoch, NULL))
325 +        tmpkg.epoch = *epoch;
326 +    else
327 +        tmpkg.epoch = 0;
328 +    
329 +    rc = pkg_cmp_dist_evr(&tmpkg, pkg);
330 +    
331 +    return rc;
332 +}
333  
334  static 
335  int hdr_pkg_cmp_evr(Header h, const struct pkg *pkg)
336 @@ -544,7 +574,7 @@
337  
338          } else {
339              if (cmprc)
340 -                *cmprc = -hdr_pkg_cmp_evr(dbrec->h, pkg);
341 +                *cmprc = -hdr_pkg_cmp_dist_evr(dbrec->h, pkg);
342          
343              if (dbrecp) {
344                  dbrecp->recno = dbrec->recno;
345 --- poldek-0.18.6.orig/./pkg.h  2004-03-22 17:31:51.000000000 +0000
346 +++ poldek-0.18.6/./pkg.h       2004-09-06 22:43:19.000000000 +0000
347 @@ -107,6 +107,7 @@
348      char         *arch;
349      char         *os;
350      char         *fn;
351 +    char         *dist;
352      
353      tn_array     *caps;       /* capabilities     */
354      tn_array     *reqs;       /* requirements     */
355 @@ -144,7 +145,7 @@
356  struct pkg *pkg_new(const char *name, int32_t epoch,
357                      const char *version, const char *release,
358                      const char *arch, const char *os,
359 -                    const char *fn, 
360 +                    const char *fn, const char *dist,
361                      uint32_t size, uint32_t fsize,
362                      uint32_t btime);
363  
364 @@ -181,6 +182,7 @@
365  int pkg_cmp_name_evr_rev_srcpri(const struct pkg *p1, const struct pkg *p2);
366  
367  int pkg_cmp_pri(struct pkg *p1, struct pkg *p2);
368 +int pkg_cmp_dist_pri(struct pkg *p1, struct pkg *p2);
369  
370  int pkg_cmp_btime(struct pkg *p1, struct pkg *p2);
371  int pkg_cmp_btime_rev(struct pkg *p1, struct pkg *p2);
372 --- poldek-0.18.6.orig/./pkgset-order.c 2004-09-07 11:47:47.000000000 +0000
373 +++ poldek-0.18.6/./pkgset-order.c      2004-09-06 22:46:32.000000000 +0000
374 @@ -235,7 +235,7 @@
375      tn_array *ordered = NULL;
376      int nloops, verbose_;
377      
378 -    n_array_isort_ex(pkgs, (tn_fn_cmp)pkg_cmp_pri);
379 +    n_array_isort_ex(pkgs, (tn_fn_cmp)pkg_cmp_pri);
380      
381      verbose_ = verbose;
382      verbose = -10;
383 --- poldek-0.18.6.orig/./pkgdir_save.c  2004-05-05 16:56:43.000000000 +0000
384 +++ poldek-0.18.6/./pkgdir_save.c       2004-09-07 10:30:15.000000000 +0000
385 @@ -170,6 +170,9 @@
386  
387      if (pkg->fn)
388          fprintf(stream, "n: %s\n", pkg->fn);
389 +
390 +       if (pkg->dist)
391 +               fprintf(stream, "D: %s\n", pkg->dist);
392      
393      fprintf(stream, "F:\n");
394      store_pkg_fields(stream, pkg->size, pkg->fsize, pkg->btime, pkg->groupid);
395
This page took 0.094387 seconds and 4 git commands to generate.