]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-pld-autodep.patch
- 4.4.1?
[packages/rpm.git] / rpm-pld-autodep.patch
1 --- rpm-4.3/build/rpmfc.c.orig  Wed May 19 11:30:29 2004
2 +++ rpm-4.3/build/rpmfc.c       Wed May 19 17:03:01 2004
3 @@ -1,6 +1,7 @@
4  #include "system.h"
5  
6  #include <signal.h>    /* getOutputFrom() */
7 +#include <regex.h>
8  
9  #include <rpmbuild.h>
10  #include <argv.h>
11 @@ -9,6 +10,8 @@
12  #define        _RPMDS_INTERNAL
13  #include <rpmds.h>
14  #include <rpmfi.h>
15 +#include <rpmts.h>
16 +#include <rpmdb.h>
17  
18  #if HAVE_GELF_H
19  #include <gelf.h>
20 @@ -301,14 +304,83 @@
21      return buf;
22  };
23  
24 +static regex_t * rpmfcExpandRegexps(const char * str,int *count){
25 +    int i,j,r;
26 +    const char *s;
27 +    ARGV_t patterns=NULL;
28 +    regex_t *compiled=NULL;
29 +
30 +    s=rpmExpand(str,NULL);
31 +    if (s) {
32 +       poptParseArgvString(s,count,(const char ***)&patterns);
33 +       s = _free(s);
34 +    }
35 +    if (patterns==NULL){
36 +               *count=0;
37 +       return NULL;
38 +    }
39 +    if (*count==0){
40 +       _free(patterns);
41 +       return NULL;
42 +    }
43 +
44 +    compiled=malloc(sizeof(regex_t)*(*count));
45 +    j=0;
46 +    for(i=0;i<*count;i++){
47 +       r=regcomp(&compiled[j],patterns[i],REG_NOSUB);
48 +       if (r==0) j++;
49 +       else {
50 +               rpmMessage(RPMMESS_NORMAL, 
51 +                       _("Compilation of regular expresion '%s'"
52 +                       " (expanded from '%s') failed. Skipping it.\n"),
53 +                       patterns[i],str);
54 +       }
55 +    }
56 +    patterns=_free(patterns);
57 +    if (j==0) {
58 +       compiled=_free(compiled);
59 +       *count=0;
60 +       return NULL;
61 +    }
62 +    *count=j;
63 +    return compiled;
64 +}
65 +
66 +static int rpmfcMatchRegexps(regex_t *regexps, int count, const char *str, char deptype)
67 +{
68 +    int j;
69 +    for(j = 0; j < count; j++) {
70 +       rpmMessage(RPMMESS_DEBUG,
71 +           _("Checking %c: '%s' against _noauto expr. #%i\n"), deptype, str, j);
72 +       if (!regexec(&regexps[j], str, 0, NULL, 0)) {
73 +           rpmMessage(RPMMESS_NORMAL,
74 +               _("Skipping %c: '%s' as it matches _noauto expr. #%i\n"), deptype, str, j);
75 +           return 1;
76 +       }
77 +    }
78 +    return 0;
79 +}
80 +
81 +static regex_t * rpmfcFreeRegexps(regex_t *regexps,int count){
82 +    int i;
83 +       
84 +    if (regexps)
85 +        for(i=0;i<count;i++)
86 +           regfree(&regexps[i]);
87 +    return _free(regexps);
88 +}
89 +
90  /**
91   * Run per-interpreter dependency helper.
92   * @param fc           file classifier
93   * @param deptype      'P' == Provides:, 'R' == Requires:, helper
94   * @param nsdep                class name for interpreter (e.g. "perl")
95 + * @param noauto       _noauto* regexps
96 + * @param noauto_c     # of _noauto* regexps
97   * @return             0 on success
98   */
99 -static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep)
100 +static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep,
101 +    regex_t * noauto, int noauto_c)
102         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
103         /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
104  {
105 @@ -394,6 +466,8 @@
106             }
107  /*@=branchstate@*/
108  
109 +           if(rpmfcMatchRegexps(noauto, noauto_c, N, deptype))
110 +               continue;
111  
112             /* Add tracking dependency for versioned Provides: */
113             if (!fc->tracked && deptype == 'P' && *EVR != '\0') {
114 @@ -637,9 +711,16 @@
115  /**
116   * Extract script dependencies.
117   * @param fc           file classifier
118 + * @param findprov     1 to enable provides
119 + * @param findreq      1 to enable requires
120 + * @param noautoprov   _noautoprov regexps
121 + * @param noautoprov_c # of _noautoprov regexps
122 + * @param noautoreq    _noautoreq regexps
123 + * @param noautoreq_c  # of _noautoreq regexps
124   * @return             0 on success
125   */
126 -static int rpmfcSCRIPT(rpmfc fc)
127 +static int rpmfcSCRIPT(rpmfc fc, int findprov, int findreq,
128 +    regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int noautoreq_c)
129         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
130         /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
131  {
132 @@ -691,7 +772,7 @@
133         *se = '\0';
134         se++;
135  
136 -       if (is_executable) {
137 +       if (is_executable && findreq && !rpmfcMatchRegexps(noautoreq, noautoreq_c, s, 'R')) {
138             /* Add to package requires. */
139             ds = rpmdsSingle(RPMTAG_REQUIRENAME, s, "", RPMSENSE_FIND_REQUIRES);
140             xx = rpmdsMerge(&fc->requires, ds);
141 @@ -718,21 +799,22 @@
142      (void) fclose(fp);
143  
144      if (fc->fcolor->vals[fc->ix] & RPMFC_PERL) {
145 -       if (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)
146 -           xx = rpmfcHelper(fc, 'P', "perl");
147 -       if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE))
148 -           xx = rpmfcHelper(fc, 'R', "perl");
149 +       if (findprov && fc->fcolor->vals[fc->ix] & RPMFC_MODULE)
150 +           xx = rpmfcHelper(fc, 'P', "perl", noautoprov, noautoprov_c);
151 +       if (findreq && (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)))
152 +           xx = rpmfcHelper(fc, 'R', "perl", noautoreq, noautoreq_c);
153      }
154      if (fc->fcolor->vals[fc->ix] & RPMFC_PYTHON) {
155 -       xx = rpmfcHelper(fc, 'P', "python");
156 -#ifdef NOTYET
157 -       if (is_executable)
158 -#endif
159 -           xx = rpmfcHelper(fc, 'R', "python");
160 +       if (findprov)
161 +           xx = rpmfcHelper(fc, 'P', "python", noautoprov, noautoprov_c);
162 +       if (findreq && is_executable)
163 +           xx = rpmfcHelper(fc, 'R', "python", noautoreq, noautoreq_c);
164      }
165      if (fc->fcolor->vals[fc->ix] & RPMFC_PHP) {
166 -               xx = rpmfcHelper(fc, 'P', "php");
167 -           xx = rpmfcHelper(fc, 'R', "php");
168 +            if (findprov)
169 +               xx = rpmfcHelper(fc, 'P', "php", noautoprov, noautoprov_c);
170 +            if (findreq)
171 +                xx = rpmfcHelper(fc, 'R', "php", noautoreq, noautoreq_c);
172         }
173  
174      return 0;
175 @@ -739,9 +823,16 @@
176  /**
177   * Extract Elf dependencies.
178   * @param fc           file classifier
179 + * @param findprov     1 to enable provides
180 + * @param findreq      1 to enable requires
181 + * @param noautoprov   _noautoprov regexps
182 + * @param noautoprov_c # of _noautoprov regexps
183 + * @param noautoreq    _noautoreq regexps
184 + * @param noautoreq_c  # of _noautoreq regexps
185   * @return             0 on success
186   */
187 -static int rpmfcELF(rpmfc fc)
188 +static int rpmfcELF(rpmfc fc, int findprov, int findreq,
189 +    regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int noautoreq_c)
190         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
191         /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
192  {
193 @@ -844,26 +935,31 @@
194                          && !(filter_GLIBC_PRIVATE != 0
195                                 && !strcmp(s, "GLIBC_PRIVATE")))
196                         {
197 +                           int doauto;
198 +
199                             buf[0] = '\0';
200                             t = buf;
201                             t = stpcpy( stpcpy( stpcpy( stpcpy(t, soname), "("), s), ")");
202  
203 +                           doauto = findprov && !rpmfcMatchRegexps(noautoprov, noautoprov_c, buf, 'P');
204  #if !defined(__alpha__)
205                             if (isElf64)
206                                 t = stpcpy(t, "(64bit)");
207  #endif
208                             t++;
209 +                            
210 +                            if (doauto) {
211 +                                /* Add to package provides. */
212 +                                ds = rpmdsSingle(RPMTAG_PROVIDES,
213 +                                            buf, "", RPMSENSE_FIND_PROVIDES);
214 +                                xx = rpmdsMerge(&fc->provides, ds);
215 +
216 +                                /* Add to file dependencies. */
217 +                                xx = rpmfcSaveArg(&fc->ddict,
218 +                                            rpmfcFileDep(t, fc->ix, ds));
219  
220 -                           /* Add to package provides. */
221 -                           ds = rpmdsSingle(RPMTAG_PROVIDES,
222 -                                       buf, "", RPMSENSE_FIND_PROVIDES);
223 -                           xx = rpmdsMerge(&fc->provides, ds);
224 -
225 -                           /* Add to file dependencies. */
226 -                           xx = rpmfcSaveArg(&fc->ddict,
227 -                                       rpmfcFileDep(t, fc->ix, ds));
228 -
229 -                           ds = rpmdsFree(ds);
230 +                                ds = rpmdsFree(ds);
231 +                            }
232                         }
233                         auxoffset += aux->vda_next;
234                     }
235 @@ -904,25 +1000,30 @@
236                          && !(filter_GLIBC_PRIVATE != 0
237                                 && !strcmp(s, "GLIBC_PRIVATE")))
238                         {
239 +                           int doauto;
240 +
241                             buf[0] = '\0';
242                             t = buf;
243                             t = stpcpy( stpcpy( stpcpy( stpcpy(t, soname), "("), s), ")");
244  
245 +                           doauto = findreq && !rpmfcMatchRegexps(noautoreq, noautoreq_c, buf, 'R');
246  #if !defined(__alpha__)
247                             if (isElf64)
248                                 t = stpcpy(t, "(64bit)");
249  #endif
250                             t++;
251  
252 -                           /* Add to package dependencies. */
253 -                           ds = rpmdsSingle(RPMTAG_REQUIRENAME,
254 -                                       buf, "", RPMSENSE_FIND_REQUIRES);
255 -                           xx = rpmdsMerge(&fc->requires, ds);
256 -
257 -                           /* Add to file dependencies. */
258 -                           xx = rpmfcSaveArg(&fc->ddict,
259 -                                       rpmfcFileDep(t, fc->ix, ds));
260 -                           ds = rpmdsFree(ds);
261 +                            if (doauto) {
262 +                                /* Add to package dependencies. */
263 +                                ds = rpmdsSingle(RPMTAG_REQUIRENAME,
264 +                                            buf, "", RPMSENSE_FIND_REQUIRES);
265 +                                xx = rpmdsMerge(&fc->requires, ds);
266 +
267 +                                /* Add to file dependencies. */
268 +                                xx = rpmfcSaveArg(&fc->ddict,
269 +                                            rpmfcFileDep(t, fc->ix, ds));
270 +                                ds = rpmdsFree(ds);
271 +                            }
272                         }
273                         auxoffset += aux->vna_next;
274                     }
275 @@ -947,23 +1048,30 @@
276                         /* Files with executable bit set only. */
277                         if (fc->skipReq || !(st->st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)))
278                             /*@innercontinue@*/ continue;
279 +                        if (!findreq)
280 +                           continue;
281                         /* Add to package requires. */
282                         depsp = &fc->requires;
283                         tagN = RPMTAG_REQUIRENAME;
284                         dsContext = RPMSENSE_FIND_REQUIRES;
285                         s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
286  assert(s != NULL);
287 +                       if(rpmfcMatchRegexps(noautoreq, noautoreq_c, s, 'R'))
288 +                           continue;
289                         /*@switchbreak@*/ break;
290                     case DT_SONAME:
291                         gotSONAME = 1;
292                         /* Add to package provides. */
293                         if (fc->skipProv)
294                             /*@innercontinue@*/ continue;
295 +                        if (!findprov) continue;
296                         depsp = &fc->provides;
297                         tagN = RPMTAG_PROVIDENAME;
298                         dsContext = RPMSENSE_FIND_PROVIDES;
299                         s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
300  assert(s != NULL);
301 +                       if(rpmfcMatchRegexps(noautoprov, noautoprov_c, s, 'P'))
302 +                           continue;
303                         /*@switchbreak@*/ break;
304                     }
305                     if (s == NULL)
306 @@ -997,7 +1105,7 @@
307      /*@=branchstate =uniondef @*/
308  
309      /* For DSO's, provide the basename of the file if DT_SONAME not found. */
310 -    if (!fc->skipProv && isDSO && !gotDEBUG && !gotSONAME) {
311 +    if (findprov && !fc->skipProv && isDSO && !gotDEBUG && !gotSONAME) {
312         depsp = &fc->provides;
313         tagN = RPMTAG_PROVIDENAME;
314         dsContext = RPMSENSE_FIND_PROVIDES;
315 @@ -1015,6 +1123,8 @@
316         t = stpcpy(t, s);
317  /*@=nullpass@*/
318  
319 +      if(!rpmfcMatchRegexps(noautoprov, noautoprov_c, buf, 'P')) {
320 +
321  #if !defined(__alpha__)
322         if (isElf64)
323             t = stpcpy(t, "()(64bit)");
324 @@ -1032,6 +1142,7 @@
325  /*@=boundswrite@*/
326  
327         ds = rpmdsFree(ds);
328 +      }
329      }
330  
331  exit:
332 @@ -1045,7 +1156,8 @@
333  }
334  
335  typedef struct rpmfcApplyTbl_s {
336 -    int (*func) (rpmfc fc);
337 +    int (*func) (rpmfc fc, int findprov, int findreq,
338 +       regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int noautoreq_c);
339      int colormask;
340  } * rpmfcApplyTbl;
341  
342 @@ -1058,6 +1170,109 @@
343      { NULL, 0 }
344  };
345  
346 +static int rpmfcFindRequiredPackages(rpmfc fc) 
347 +{
348 +    rpmts ts=NULL;
349 +    const char * s;
350 +    char * se;
351 +    rpmds ds;
352 +    const char * N;
353 +    const char * EVR;
354 +    int_32 Flags;
355 +    unsigned char deptype;
356 +    int nddict;
357 +    int previx;
358 +    int ix;
359 +    int i;
360 +    int j;
361 +    int xx;
362 +    int r;
363 +    const char * hname;
364 +    rpmdbMatchIterator it;
365 +    Header hdr;
366 +    regex_t *noautoreqdep;
367 +    int noautoreqdep_c;
368 +
369 +    noautoreqdep=rpmfcExpandRegexps("%{__noautoreqdep}", &noautoreqdep_c);
370 +    
371 +    ts = rpmtsCreate(); /* XXX ts created in main() should be used */
372 +    
373 +    rpmMessage(RPMMESS_NORMAL, _("Searching for required packages....\n"));
374 +
375 +    nddict = argvCount(fc->ddict);
376 +    previx = -1;
377 +    for (i = 0; i < nddict; i++) {
378 +        s = fc->ddict[i];
379 +
380 +        /* Parse out (file#,deptype,N,EVR,Flags) */
381 +        ix = strtol(s, &se, 10);
382 +        assert(se != NULL);
383 +        deptype = *se++;
384 +        se++;
385 +        N = se;
386 +        while (*se && *se != ' ')
387 +            se++;
388 +        *se++ = '\0';
389 +        EVR = se;
390 +        while (*se && *se != ' ')
391 +            se++;
392 +        *se++ = '\0';
393 +        Flags = strtol(se, NULL, 16);
394 +
395 +        if (deptype!='R') continue;
396 +
397 +        rpmMessage(RPMMESS_DEBUG, _("#%i requires: %s,%s,%i\n"),ix,N,EVR,Flags);
398 +        if (EVR && EVR[0]) {
399 +            rpmMessage(RPMMESS_DEBUG, _("skipping #%i require\n"));
400 +            continue;
401 +        }
402 +        for(j=0;j<noautoreqdep_c;j++) 
403 +            if (!regexec(&noautoreqdep[j],N,0,NULL,0)) {
404 +                rpmMessage(RPMMESS_NORMAL, 
405 +                        _("skipping %s requirement processing"
406 +                       " (matches noautoreqdep pattern #%i)\n"),N,j);
407 +                break;
408 +            }
409 +        if (j<noautoreqdep_c) continue;
410 +        if (N[0]=='/') {
411 +            rpmMessage(RPMMESS_DEBUG, _("skipping #%i require (is file requirement)\n"));
412 +            continue;
413 +        }
414 +        it=rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, N, 0);
415 +        if (!it) {
416 +            rpmMessage(RPMMESS_DEBUG, _("%s -> not found\n"),N);
417 +            continue;
418 +        }
419 +        rpmMessage(RPMMESS_DEBUG, _("Iterator: %p\n"),it);
420 +        if (rpmdbGetIteratorCount(it)>1) {
421 +            rpmMessage(RPMMESS_DEBUG, _("%s -> multiple (skipping)\n"),N);
422 +            rpmdbFreeIterator(it);
423 +            continue;
424 +        }
425 +        hdr=rpmdbNextIterator(it);
426 +        assert(hdr!=NULL);
427 +        r=rpmHeaderGetEntry(hdr,RPMTAG_NAME,NULL,(void **)&hname, NULL);
428 +        assert(r<2);
429 +        if (!strcmp(hname,N)) {
430 +            rpmMessage(RPMMESS_DEBUG, _("%s -> %s (skipping)\n"),N,hname);
431 +            rpmdbFreeIterator(it);
432 +            continue;
433 +        }
434 +            
435 +        rpmMessage(RPMMESS_DEBUG, "%s -> %s\n",N,hname);
436 +        
437 +               ds = rpmdsSingle(RPMTAG_REQUIRENAME, hname, "", RPMSENSE_FIND_REQUIRES);
438 +               xx = rpmdsMerge(&fc->requires, ds);
439 +               ds = rpmdsFree(ds);
440 +
441 +        rpmdbFreeIterator(it);
442 +    }
443 +
444 +    noautoreqdep=rpmfcFreeRegexps(noautoreqdep,noautoreqdep_c);
445 +    ts = rpmtsFree(ts);
446 +    return 0;
447 +}
448 +
449  int rpmfcApply(rpmfc fc)
450  {
451      rpmfcApplyTbl fcat;
452 @@ -1075,6 +1290,29 @@
453      int ix;
454      int i;
455      int xx;
456 +    int j;
457 +    int findprov;
458 +    int findreq;
459 +    regex_t *noautoprovfiles = NULL;
460 +    int noautoprovfiles_c;
461 +    regex_t *noautoreqfiles = NULL;
462 +    int noautoreqfiles_c;
463 +    regex_t *noautoprov = NULL;
464 +    int noautoprov_c;
465 +    regex_t *noautoreq = NULL;
466 +    int noautoreq_c;
467 +    const char *buildroot;
468 +    int buildroot_l;
469 +
470 +    buildroot = rpmExpand("%{buildroot}",NULL);
471 +    buildroot_l = strlen(buildroot);
472 +    
473 +    noautoprovfiles = rpmfcExpandRegexps("%{__noautoprovfiles}", &noautoprovfiles_c);
474 +    noautoreqfiles = rpmfcExpandRegexps("%{__noautoreqfiles}", &noautoreqfiles_c);
475 +    noautoprov = rpmfcExpandRegexps("%{__noautoprov}", &noautoprov_c);
476 +    noautoreq = rpmfcExpandRegexps("%{__noautoreq}", &noautoreq_c);
477 +    rpmMessage(RPMMESS_DEBUG, _("%i _noautoprov patterns.\n"), noautoprov_c);
478 +    rpmMessage(RPMMESS_DEBUG, _("%i _noautoreq patterns.\n"), noautoreq_c);
479  
480      /* Generate package and per-file dependencies. */
481      for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) {
482 @@ -1082,10 +1320,44 @@
483         for (fcat = rpmfcApplyTable; fcat->func != NULL; fcat++) {
484             if (!(fc->fcolor->vals[fc->ix] & fcat->colormask))
485                 /*@innercontinue@*/ continue;
486 -           xx = (*fcat->func) (fc);
487 +           findprov = 1;
488 +           findreq = 1;
489 +           if (strncmp(fc->fn[fc->ix],buildroot,buildroot_l)==0) {/* sanity check */
490 +               for(j = 0; j < noautoprovfiles_c; j++) {
491 +                   if (!regexec(&noautoprovfiles[j],
492 +                           fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
493 +                       rpmMessage(RPMMESS_NORMAL,
494 +                               _("skipping %s provides detection"
495 +                               " (matches noautoprovfiles pattern #%i)\n"),
496 +                               fc->fn[fc->ix], j);
497 +                       findprov = 0;
498 +                       break;
499 +                   }
500 +               }
501 +               for(j = 0; j < noautoreqfiles_c; j++) {
502 +                   if (!regexec(&noautoreqfiles[j],
503 +                           fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
504 +                       rpmMessage(RPMMESS_NORMAL,
505 +                               _("skipping %s requires detection"
506 +                               " (matches noautoreqfiles pattern #%i)\n"),
507 +                               fc->fn[fc->ix], j);
508 +                       findreq = 0;
509 +                       break;
510 +                   }
511 +               }
512 +           }
513 +           xx = (*fcat->func) (fc, findprov, findreq,
514 +               noautoprov, noautoprov_c, noautoreq, noautoreq_c);
515         }
516      }
517  
518 +    noautoprovfiles = rpmfcFreeRegexps(noautoprovfiles, noautoprovfiles_c);
519 +    noautoreqfiles = rpmfcFreeRegexps(noautoreqfiles, noautoreqfiles_c);
520 +    noautoprov = rpmfcFreeRegexps(noautoprov, noautoprov_c);
521 +    noautoreq = rpmfcFreeRegexps(noautoreq, noautoreq_c);
522 +#ifdef AUTODEP_PKGNAMES /* define to use package names in R */
523 +    rpmfcFindRequiredPackages(fc);
524 +#endif
525  /*@-boundswrite@*/
526      /* Generate per-file indices into package dependencies. */
527      nddict = argvCount(fc->ddict);
528 --- rpm-4.3/po/POTFILES.in.orig 2004-01-04 03:13:02.000000000 +0100
529 +++ rpm-4.3/po/POTFILES.in      2004-02-01 21:05:50.567248776 +0100
530 @@ -22,6 +22,7 @@
531  build/parseSpec.c
532  build/poptBT.c
533  build/reqprov.c
534 +build/rpmfc.c
535  build/spec.c
536  lib/cpio.c
537  lib/depends.c
538 --- rpm-4.3/po/pl.po.orig       2004-02-01 20:53:10.000000000 +0100
539 +++ rpm-4.3/po/pl.po    2004-02-01 21:20:36.532561576 +0100
540 @@ -1295,6 +1295,127 @@
541  msgid "lookup i18N strings in specfile catalog"
542  msgstr "wyszukaj wpisy I18N w katalogu pliku spec"
543  
544 +#: build/rpmfc.c:94
545 +#, c-format
546 +msgid "\texecv(%s) pid %d\n"
547 +msgstr "\texecv(%s) pid %d\n"
548 +
549 +#. XXX this error message is probably not seen.
550 +#: build/rpmfc.c:100
551 +#, c-format
552 +msgid "Couldn't exec %s: %s\n"
553 +msgstr "Nie mo¿na uruchomiæ %s: %s\n"
554 +
555 +#: build/rpmfc.c:105
556 +#, c-format
557 +msgid "Couldn't fork %s: %s\n"
558 +msgstr "Nie mo¿na wykonaæ fork %s: %s\n"
559 +
560 +#: build/rpmfc.c:190
561 +#, c-format
562 +msgid "\twaitpid(%d) rc %d status %x\n"
563 +msgstr "\twaitpid(%d) rc %d status %x\n"
564 +
565 +#: build/rpmfc.c:194
566 +#, c-format
567 +msgid "%s failed\n"
568 +msgstr "%s nie powiod³o siê\n"
569 +
570 +#: build/rpmfc.c:198
571 +#, c-format
572 +msgid "failed to write all data to %s\n"
573 +msgstr "Nie uda³o siê zapisaæ wszystkich danych do %s\n"
574 +
575 +#: build/rpmfc.c:334
576 +#, c-format
577 +msgid "Compilation of regular expresion '%s' (expanded from '%s') failed. Skipping it.\n"
578 +msgstr "Kompilacja wyra¿enia regularnego '%s' (powsta³ego z '%s') nie powiod³a siê; pominiêto.\n"
579 +
580 +#: build/rpmfc.c:395
581 +#, c-format
582 +msgid "%i _noautoprov patterns.\n"
583 +msgstr "%i wzorców _noautoprov.\n"
584 +
585 +#: build/rpmfc.c:405
586 +#, c-format
587 +msgid "%i _noautoreq patterns.\n"
588 +msgstr "%i wzorców _noautoreq.\n"
589 +
590 +#: build/rpmfc.c:459
591 +#, c-format
592 +msgid "Checking %c: '%s' against _noauto expr. #%i\n"
593 +msgstr "Sprawdzanie %c: '%s' z wyra¿eniem _noauto #%i\n"
594 +
595 +#: build/rpmfc.c:462
596 +#, c-format
597 +msgid "Skipping %c: '%s' as it matches _noauto expr. #%i\n"
598 +msgstr "Pominiêto %c: '%s' pasuj±ce do wyra¿enia _noauto #%i\n"
599 +
600 +#. XXX ts created in main() should be used
601 +#: build/rpmfc.c:1173
602 +msgid "Searching for required packages....\n"
603 +msgstr "Poszukiwanie wymaganych pakietów...\n"
604 +
605 +#: build/rpmfc.c:1197
606 +#, c-format
607 +msgid "#%i requires: %s,%s,%i\n"
608 +msgstr "#%i wymaga: %s,%s,%i\n"
609 +
610 +#: build/rpmfc.c:1199
611 +#, c-format
612 +msgid "skipping #%i require\n"
613 +msgstr "pominiêto zale¿no¶æ #%i\n"
614 +
615 +#: build/rpmfc.c:1205
616 +#, c-format
617 +msgid "skipping %s requirement processing (matches noautoreqdep pattern #%i)\n"
618 +msgstr "pominiêto przetwarzanie zale¿no¶ci %s (pasuje do wzorca noautoreqdep #%i)\n"
619 +
620 +#: build/rpmfc.c:1211
621 +#, c-format
622 +msgid "skipping #%i require (is file requirement)\n"
623 +msgstr "pominiêto zale¿no¶æ #%i (zale¿no¶æ od pliku)\n"
624 +
625 +#: build/rpmfc.c:1216
626 +#, c-format
627 +msgid "%s -> not found\n"
628 +msgstr "%s -> nie znaleziono\n"
629 +
630 +#: build/rpmfc.c:1219
631 +#, c-format
632 +msgid "Iterator: %p\n"
633 +msgstr "Iterator: %p\n"
634 +
635 +#: build/rpmfc.c:1221
636 +#, c-format
637 +msgid "%s -> multiple (skipping)\n"
638 +msgstr "%s -> wiele (pominiêto)\n"
639 +
640 +#: build/rpmfc.c:1230
641 +#, c-format
642 +msgid "%s -> %s (skipping)\n"
643 +msgstr "%s -> %s (pominiêto)\n"
644 +
645 +#: build/rpmfc.c:1295
646 +#, c-format
647 +msgid "skipping %s provides detection (matches noautoprovfiles pattern #%i)\n"
648 +msgstr "pominiêto wykrywanie w³asno¶ci %s (pasuje do wzorca noautoprovfiles #%i)\n"
649 +
650 +#: build/rpmfc.c:1306
651 +#, c-format
652 +msgid "skipping %s requires detection (matches noautoreqfiles pattern #%i)\n"
653 +msgstr "pominiêto wykrywanie w³asno¶ci %s (pasuje do wzorca noautoreqfiles #%i)\n"
654 +
655 +#: build/rpmfc.c:1642
656 +#, c-format
657 +msgid "Finding  %s: %s\n"
658 +msgstr "Poszukiwanie %s: %s\n"
659 +
660 +#: build/rpmfc.c:1648 build/rpmfc.c:1657
661 +#, c-format
662 +msgid "Failed to find %s:\n"
663 +msgstr "Nie uda³o siê odnale¼æ %s:\n"
664 +
665  #: build/spec.c:237
666  #, c-format
667  msgid "line %d: Bad number: %s\n"
668 --- rpm/configure.ac.orig       2004-08-22 13:02:30.000000000 +0200
669 +++ rpm/configure.ac    2004-08-22 13:25:37.000000000 +0200
670 @@ -971,6 +971,18 @@
671  AC_SUBST(__CHGRP_RHF)
672  
673  dnl
674 +dnl enable generating autorequires containing packages names 
675 +dnl
676 +AC_ARG_ENABLE([adding-packages-names-in-autogenerated-dependancies],
677 +             [  --enable-adding-packages-names-in-autogenerated-dependancies   Add packages names for autogenerated dependancies to requires],
678 +        
679 +               AC_MSG_RESULT([Using packages names in autogerated requires is enabled])
680 +               AC_DEFINE(AUTODEP_PKGNAMES, 1, "Generating autorequires containing packages names.") 
681 +       
682 +             )
683 +
684 +
685 +dnl
686  dnl figure out what root's primary group is
687  dnl
688  AC_MSG_CHECKING(root's primary group)
This page took 0.071106 seconds and 4 git commands to generate.