---- rpm-4.3/build/rpmfc.c.orig Wed May 19 11:30:29 2004
-+++ rpm-4.3/build/rpmfc.c Wed May 19 17:03:01 2004
+--- rpm-4.4.8/lib/rpmfc.h.orig 2005-11-18 23:08:14.231293000 +0100
++++ rpm-4.4.8/lib/rpmfc.h 2005-11-18 23:55:16.694214392 +0100
@@ -1,6 +1,7 @@
- #include "system.h"
+ #ifndef _H_RPMFC_
+ #define _H_RPMFC_
- #include <signal.h> /* getOutputFrom() */
+#include <regex.h>
+ #undef FILE_RCSID
+ #include "magic.h"
- #include <rpmbuild.h>
- #include <argv.h>
-@@ -9,6 +10,8 @@
+@@ -44,6 +45,11 @@
+ StringBuf sb_python;/*!< concatenated list of python colored files. */
+ StringBuf sb_php; /*!< concatenated list of php colored files. */
+
++ int findprov, findreq;
++ regex_t *noautoprov;
++ int noautoprov_c;
++ regex_t *noautoreq;
++ int noautoreq_c;
+ };
+
+ /**
+--- rpm-4.5/lib/rpmfc.c~ 2008-06-10 14:06:23.000000000 +0300
++++ rpm-4.5/lib/rpmfc.c 2008-06-10 14:21:53.097663262 +0300
+@@ -15,6 +15,8 @@
#define _RPMDS_INTERNAL
#include <rpmds.h>
#include <rpmfi.h>
+#include <rpmts.h>
+#include <rpmdb.h>
- #if HAVE_GELF_H
- #include <gelf.h>
-@@ -301,14 +304,83 @@
+ #include "debug.h"
+
+@@ -309,14 +311,83 @@
return buf;
};
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
{
-@@ -394,6 +466,8 @@
+@@ -402,6 +473,8 @@
}
/*@=branchstate@*/
/* Add tracking dependency for versioned Provides: */
if (!fc->tracked && deptype == 'P' && *EVR != '\0') {
-@@ -637,9 +711,16 @@
- /**
- * Extract script dependencies.
- * @param fc file classifier
-+ * @param findprov 1 to enable provides
-+ * @param findreq 1 to enable requires
-+ * @param noautoprov _noautoprov regexps
-+ * @param noautoprov_c # of _noautoprov regexps
-+ * @param noautoreq _noautoreq regexps
-+ * @param noautoreq_c # of _noautoreq regexps
- * @return 0 on success
- */
--static int rpmfcSCRIPT(rpmfc fc)
-+static int rpmfcSCRIPT(rpmfc fc, int findprov, int findreq,
-+ regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int noautoreq_c)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
- {
-@@ -691,7 +772,7 @@
+@@ -714,7 +787,7 @@
*se = '\0';
se++;
- if (is_executable) {
-+ if (is_executable && findreq && !rpmfcMatchRegexps(noautoreq, noautoreq_c, s, 'R')) {
++ if (is_executable && fc->findreq && !rpmfcMatchRegexps(fc->noautoreq, fc->noautoreq_c, s, 'R')) {
/* Add to package requires. */
ds = rpmdsSingle(RPMTAG_REQUIRENAME, s, "", RPMSENSE_FIND_REQUIRES);
xx = rpmdsMerge(&fc->requires, ds);
-@@ -718,19 +799,22 @@
- (void) fclose(fp);
+@@ -808,20 +889,26 @@
+ default:
+ break;
+ case RPMTAG_PROVIDENAME:
++ if (fc->findprov && !rpmfcMatchRegexps(fc->noautoprov, fc->noautoprov_c, ds->N[0], 'P')) {
+ /* Add to package provides. */
+ rc = rpmdsMerge(&fc->provides, ds);
- if (fc->fcolor->vals[fc->ix] & RPMFC_PERL) {
-- if (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)
-- xx = rpmfcHelper(fc, 'P', "perl");
-- if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE))
-- xx = rpmfcHelper(fc, 'R', "perl");
-+ if (findprov && fc->fcolor->vals[fc->ix] & RPMFC_MODULE)
-+ xx = rpmfcHelper(fc, 'P', "perl", noautoprov, noautoprov_c);
-+ if (findreq && (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)))
-+ xx = rpmfcHelper(fc, 'R', "perl", noautoreq, noautoreq_c);
- }
- if (fc->fcolor->vals[fc->ix] & RPMFC_PYTHON) {
-- xx = rpmfcHelper(fc, 'P', "python");
-- if (is_executable)
-- xx = rpmfcHelper(fc, 'R', "python");
-+ if (findprov)
-+ xx = rpmfcHelper(fc, 'P', "python", noautoprov, noautoprov_c);
-+ if (findreq && is_executable)
-+ xx = rpmfcHelper(fc, 'R', "python", noautoreq, noautoreq_c);
- }
- if (fc->fcolor->vals[fc->ix] & RPMFC_PHP) {
-- xx = rpmfcHelper(fc, 'P', "php");
-- xx = rpmfcHelper(fc, 'R', "php");
-+ if (findprov)
-+ xx = rpmfcHelper(fc, 'P', "php", noautoprov, noautoprov_c);
-+ if (findreq)
-+ xx = rpmfcHelper(fc, 'R', "php", noautoreq, noautoreq_c);
- }
+ /* Add to file dependencies. */
+ buf[0] = '\0';
+ rc = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, ds));
++ } else
++ rc = 0;
+ break;
+ case RPMTAG_REQUIRENAME:
++ if (fc->findreq && !rpmfcMatchRegexps(fc->noautoreq, fc->noautoreq_c, ds->N[0], 'R')) {
+ /* Add to package requires. */
+ rc = rpmdsMerge(&fc->requires, ds);
- return 0;
-@@ -739,9 +823,16 @@
- /**
- * Extract Elf dependencies.
- * @param fc file classifier
-+ * @param findprov 1 to enable provides
-+ * @param findreq 1 to enable requires
-+ * @param noautoprov _noautoprov regexps
-+ * @param noautoprov_c # of _noautoprov regexps
-+ * @param noautoreq _noautoreq regexps
-+ * @param noautoreq_c # of _noautoreq regexps
- * @return 0 on success
- */
--static int rpmfcELF(rpmfc fc)
-+static int rpmfcELF(rpmfc fc, int findprov, int findreq,
-+ regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int noautoreq_c)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
- {
-@@ -844,26 +935,31 @@
- && !(filter_GLIBC_PRIVATE != 0
- && !strcmp(s, "GLIBC_PRIVATE")))
- {
-+ int doauto;
-+
- buf[0] = '\0';
- t = buf;
- t = stpcpy( stpcpy( stpcpy( stpcpy(t, soname), "("), s), ")");
-
-+ doauto = findprov && !rpmfcMatchRegexps(noautoprov, noautoprov_c, buf, 'P');
- #if !defined(__alpha__)
- if (isElf64)
- t = stpcpy(t, "(64bit)");
- #endif
- t++;
-+
-+ if (doauto) {
-+ /* Add to package provides. */
-+ ds = rpmdsSingle(RPMTAG_PROVIDES,
-+ buf, "", RPMSENSE_FIND_PROVIDES);
-+ xx = rpmdsMerge(&fc->provides, ds);
-+
-+ /* Add to file dependencies. */
-+ xx = rpmfcSaveArg(&fc->ddict,
-+ rpmfcFileDep(t, fc->ix, ds));
-
-- /* Add to package provides. */
-- ds = rpmdsSingle(RPMTAG_PROVIDES,
-- buf, "", RPMSENSE_FIND_PROVIDES);
-- xx = rpmdsMerge(&fc->provides, ds);
--
-- /* Add to file dependencies. */
-- xx = rpmfcSaveArg(&fc->ddict,
-- rpmfcFileDep(t, fc->ix, ds));
--
-- ds = rpmdsFree(ds);
-+ ds = rpmdsFree(ds);
-+ }
- }
- auxoffset += aux->vda_next;
- }
-@@ -904,25 +1000,30 @@
- && !(filter_GLIBC_PRIVATE != 0
- && !strcmp(s, "GLIBC_PRIVATE")))
- {
-+ int doauto;
-+
- buf[0] = '\0';
- t = buf;
- t = stpcpy( stpcpy( stpcpy( stpcpy(t, soname), "("), s), ")");
-
-+ doauto = findreq && !rpmfcMatchRegexps(noautoreq, noautoreq_c, buf, 'R');
- #if !defined(__alpha__)
- if (isElf64)
- t = stpcpy(t, "(64bit)");
- #endif
- t++;
-
-- /* Add to package dependencies. */
-- ds = rpmdsSingle(RPMTAG_REQUIRENAME,
-- buf, "", RPMSENSE_FIND_REQUIRES);
-- xx = rpmdsMerge(&fc->requires, ds);
--
-- /* Add to file dependencies. */
-- xx = rpmfcSaveArg(&fc->ddict,
-- rpmfcFileDep(t, fc->ix, ds));
-- ds = rpmdsFree(ds);
-+ if (doauto) {
-+ /* Add to package dependencies. */
-+ ds = rpmdsSingle(RPMTAG_REQUIRENAME,
-+ buf, "", RPMSENSE_FIND_REQUIRES);
-+ xx = rpmdsMerge(&fc->requires, ds);
-+
-+ /* Add to file dependencies. */
-+ xx = rpmfcSaveArg(&fc->ddict,
-+ rpmfcFileDep(t, fc->ix, ds));
-+ ds = rpmdsFree(ds);
-+ }
- }
- auxoffset += aux->vna_next;
- }
-@@ -947,23 +1048,30 @@
- /* Files with executable bit set only. */
- if (fc->skipReq || !(st->st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)))
- /*@innercontinue@*/ continue;
-+ if (!findreq)
-+ continue;
- /* Add to package requires. */
- depsp = &fc->requires;
- tagN = RPMTAG_REQUIRENAME;
- dsContext = RPMSENSE_FIND_REQUIRES;
- s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
- assert(s != NULL);
-+ if(rpmfcMatchRegexps(noautoreq, noautoreq_c, s, 'R'))
-+ continue;
- /*@switchbreak@*/ break;
- case DT_SONAME:
- gotSONAME = 1;
- /* Add to package provides. */
- if (fc->skipProv)
- /*@innercontinue@*/ continue;
-+ if (!findprov) continue;
- depsp = &fc->provides;
- tagN = RPMTAG_PROVIDENAME;
- dsContext = RPMSENSE_FIND_PROVIDES;
- s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
- assert(s != NULL);
-+ if(rpmfcMatchRegexps(noautoprov, noautoprov_c, s, 'P'))
-+ continue;
- /*@switchbreak@*/ break;
- }
- if (s == NULL)
-@@ -997,7 +1105,7 @@
- /*@=branchstate =uniondef @*/
-
- /* For DSO's, provide the basename of the file if DT_SONAME not found. */
-- if (!fc->skipProv && isDSO && !gotDEBUG && !gotSONAME) {
-+ if (findprov && !fc->skipProv && isDSO && !gotDEBUG && !gotSONAME) {
- depsp = &fc->provides;
- tagN = RPMTAG_PROVIDENAME;
- dsContext = RPMSENSE_FIND_PROVIDES;
-@@ -1015,6 +1123,8 @@
- t = stpcpy(t, s);
- /*@=nullpass@*/
-
-+ if(!rpmfcMatchRegexps(noautoprov, noautoprov_c, buf, 'P')) {
-+
- #if !defined(__alpha__)
- if (isElf64)
- t = stpcpy(t, "()(64bit)");
-@@ -1032,6 +1142,7 @@
- /*@=boundswrite@*/
-
- ds = rpmdsFree(ds);
-+ }
+ /* Add to file dependencies. */
+ buf[0] = '\0';
+ rc = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, ds));
++ } else
++ rc = 0;
+ break;
}
-
- exit:
-@@ -1045,7 +1156,8 @@
- }
-
- typedef struct rpmfcApplyTbl_s {
-- int (*func) (rpmfc fc);
-+ int (*func) (rpmfc fc, int findprov, int findreq,
-+ regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int noautoreq_c);
- int colormask;
- } * rpmfcApplyTbl;
-
-@@ -1058,6 +1170,109 @@
+ return rc;
+@@ -862,6 +949,109 @@
{ NULL, 0 }
};
+ }
+ hdr=rpmdbNextIterator(it);
+ assert(hdr!=NULL);
-+ r=rpmHeaderGetEntry(hdr,RPMTAG_NAME,NULL,(void **)&hname, NULL);
++ r=headerGetEntry(hdr,RPMTAG_NAME,NULL,(void **)&hname, NULL);
+ assert(r<2);
+ if (!strcmp(hname,N)) {
+ rpmMessage(RPMMESS_DEBUG, _("%s -> %s (skipping)\n"),N,hname);
+ rpmdbFreeIterator(it);
+ }
+
-+ noautoreqdep=rpmfcFreeRegexps(noautoreqdep,noautoreqdep_c);
++ noautoreqdep = rpmfcFreeRegexps(noautoreqdep, noautoreqdep_c);
+ ts = rpmtsFree(ts);
+ return 0;
+}
int rpmfcApply(rpmfc fc)
{
rpmfcApplyTbl fcat;
-@@ -1075,6 +1290,29 @@
- int ix;
+@@ -880,6 +1070,26 @@
int i;
int xx;
+ int skipping;
+ int j;
-+ int findprov;
-+ int findreq;
+ regex_t *noautoprovfiles = NULL;
+ int noautoprovfiles_c;
+ regex_t *noautoreqfiles = NULL;
+ int noautoreqfiles_c;
-+ regex_t *noautoprov = NULL;
-+ int noautoprov_c;
-+ regex_t *noautoreq = NULL;
-+ int noautoreq_c;
+ const char *buildroot;
+ int buildroot_l;
+
++ fc->noautoprov = NULL;
++ fc->noautoreq = NULL;
++
+ buildroot = rpmExpand("%{buildroot}",NULL);
+ buildroot_l = strlen(buildroot);
+
+ noautoprovfiles = rpmfcExpandRegexps("%{__noautoprovfiles}", &noautoprovfiles_c);
+ noautoreqfiles = rpmfcExpandRegexps("%{__noautoreqfiles}", &noautoreqfiles_c);
-+ noautoprov = rpmfcExpandRegexps("%{__noautoprov}", &noautoprov_c);
-+ noautoreq = rpmfcExpandRegexps("%{__noautoreq}", &noautoreq_c);
-+ rpmMessage(RPMMESS_DEBUG, _("%i _noautoprov patterns.\n"), noautoprov_c);
-+ rpmMessage(RPMMESS_DEBUG, _("%i _noautoreq patterns.\n"), noautoreq_c);
++ fc->noautoprov = rpmfcExpandRegexps("%{__noautoprov}", &fc->noautoprov_c);
++ fc->noautoreq = rpmfcExpandRegexps("%{__noautoreq}", &fc->noautoreq_c);
++ rpmMessage(RPMMESS_DEBUG, _("%i _noautoprov patterns.\n"), fc->noautoprov_c);
++ rpmMessage(RPMMESS_DEBUG, _("%i _noautoreq patterns.\n"), fc->noautoreq_c);
/* Generate package and per-file dependencies. */
for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) {
-@@ -1082,10 +1320,44 @@
+@@ -900,9 +1110,43 @@
for (fcat = rpmfcApplyTable; fcat->func != NULL; fcat++) {
if (!(fc->fcolor->vals[fc->ix] & fcat->colormask))
/*@innercontinue@*/ continue;
-- xx = (*fcat->func) (fc);
-+ findprov = 1;
-+ findreq = 1;
++ fc->findprov = 1;
++ fc->findreq = 1;
+ if (strncmp(fc->fn[fc->ix],buildroot,buildroot_l)==0) {/* sanity check */
-+ for(j = 0; j < noautoprovfiles_c; j++) {
-+ if (!regexec(&noautoprovfiles[j],
-+ fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
-+ rpmMessage(RPMMESS_NORMAL,
-+ _("skipping %s provides detection"
-+ " (matches noautoprovfiles pattern #%i)\n"),
-+ fc->fn[fc->ix], j);
-+ findprov = 0;
-+ break;
++ for(j = 0; j < noautoprovfiles_c; j++) {
++ if (!regexec(&noautoprovfiles[j],
++ fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
++ rpmMessage(RPMMESS_NORMAL,
++ _("skipping %s provides detection"
++ " (matches noautoprovfiles pattern #%i)\n"),
++ fc->fn[fc->ix], j);
++ fc->findprov = 0;
++ break;
++ }
+ }
-+ }
-+ for(j = 0; j < noautoreqfiles_c; j++) {
-+ if (!regexec(&noautoreqfiles[j],
-+ fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
-+ rpmMessage(RPMMESS_NORMAL,
-+ _("skipping %s requires detection"
-+ " (matches noautoreqfiles pattern #%i)\n"),
-+ fc->fn[fc->ix], j);
-+ findreq = 0;
-+ break;
++ for(j = 0; j < noautoreqfiles_c; j++) {
++ if (!regexec(&noautoreqfiles[j],
++ fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
++ rpmMessage(RPMMESS_NORMAL,
++ _("skipping %s requires detection"
++ " (matches noautoreqfiles pattern #%i)\n"),
++ fc->fn[fc->ix], j);
++ fc->findreq = 0;
++ break;
++ }
+ }
-+ }
+ }
-+ xx = (*fcat->func) (fc, findprov, findreq,
-+ noautoprov, noautoprov_c, noautoreq, noautoreq_c);
++
+ xx = (*fcat->func) (fc);
}
}
-
+ noautoprovfiles = rpmfcFreeRegexps(noautoprovfiles, noautoprovfiles_c);
+ noautoreqfiles = rpmfcFreeRegexps(noautoreqfiles, noautoreqfiles_c);
-+ noautoprov = rpmfcFreeRegexps(noautoprov, noautoprov_c);
-+ noautoreq = rpmfcFreeRegexps(noautoreq, noautoreq_c);
++ fc->noautoprov = rpmfcFreeRegexps(fc->noautoprov, fc->noautoprov_c);
++ fc->noautoreq = rpmfcFreeRegexps(fc->noautoreq, fc->noautoreq_c);
+#ifdef AUTODEP_PKGNAMES /* define to use package names in R */
+ rpmfcFindRequiredPackages(fc);
+#endif
+
/*@-boundswrite@*/
/* Generate per-file indices into package dependencies. */
- nddict = argvCount(fc->ddict);
---- rpm-4.3/po/POTFILES.in.orig 2004-01-04 03:13:02.000000000 +0100
-+++ rpm-4.3/po/POTFILES.in 2004-02-01 21:05:50.567248776 +0100
-@@ -22,6 +22,7 @@
- build/parseSpec.c
- build/poptBT.c
- build/reqprov.c
-+build/rpmfc.c
- build/spec.c
- lib/cpio.c
- lib/depends.c
---- rpm-4.3/po/pl.po.orig 2004-02-01 20:53:10.000000000 +0100
-+++ rpm-4.3/po/pl.po 2004-02-01 21:20:36.532561576 +0100
-@@ -1295,6 +1295,127 @@
- msgid "lookup i18N strings in specfile catalog"
- msgstr "wyszukaj wpisy I18N w katalogu pliku spec"
-
-+#: build/rpmfc.c:94
-+#, c-format
-+msgid "\texecv(%s) pid %d\n"
-+msgstr "\texecv(%s) pid %d\n"
-+
-+#. XXX this error message is probably not seen.
-+#: build/rpmfc.c:100
-+#, c-format
-+msgid "Couldn't exec %s: %s\n"
-+msgstr "Nie mo¿na uruchomiæ %s: %s\n"
-+
-+#: build/rpmfc.c:105
-+#, c-format
-+msgid "Couldn't fork %s: %s\n"
-+msgstr "Nie mo¿na wykonaæ fork %s: %s\n"
-+
-+#: build/rpmfc.c:190
-+#, c-format
-+msgid "\twaitpid(%d) rc %d status %x\n"
-+msgstr "\twaitpid(%d) rc %d status %x\n"
-+
-+#: build/rpmfc.c:194
-+#, c-format
-+msgid "%s failed\n"
-+msgstr "%s nie powiod³o siê\n"
-+
-+#: build/rpmfc.c:198
-+#, c-format
-+msgid "failed to write all data to %s\n"
-+msgstr "Nie uda³o siê zapisaæ wszystkich danych do %s\n"
-+
-+#: build/rpmfc.c:334
-+#, c-format
-+msgid "Compilation of regular expresion '%s' (expanded from '%s') failed. Skipping it.\n"
-+msgstr "Kompilacja wyra¿enia regularnego '%s' (powsta³ego z '%s') nie powiod³a siê; pominiêto.\n"
-+
-+#: build/rpmfc.c:395
-+#, c-format
-+msgid "%i _noautoprov patterns.\n"
-+msgstr "%i wzorców _noautoprov.\n"
-+
-+#: build/rpmfc.c:405
-+#, c-format
-+msgid "%i _noautoreq patterns.\n"
-+msgstr "%i wzorców _noautoreq.\n"
-+
-+#: build/rpmfc.c:459
-+#, c-format
-+msgid "Checking %c: '%s' against _noauto expr. #%i\n"
-+msgstr "Sprawdzanie %c: '%s' z wyra¿eniem _noauto #%i\n"
-+
-+#: build/rpmfc.c:462
-+#, c-format
-+msgid "Skipping %c: '%s' as it matches _noauto expr. #%i\n"
-+msgstr "Pominiêto %c: '%s' pasuj±ce do wyra¿enia _noauto #%i\n"
-+
-+#. XXX ts created in main() should be used
-+#: build/rpmfc.c:1173
-+msgid "Searching for required packages....\n"
-+msgstr "Poszukiwanie wymaganych pakietów...\n"
-+
-+#: build/rpmfc.c:1197
-+#, c-format
-+msgid "#%i requires: %s,%s,%i\n"
-+msgstr "#%i wymaga: %s,%s,%i\n"
-+
-+#: build/rpmfc.c:1199
-+#, c-format
-+msgid "skipping #%i require\n"
-+msgstr "pominiêto zale¿no¶æ #%i\n"
-+
-+#: build/rpmfc.c:1205
-+#, c-format
-+msgid "skipping %s requirement processing (matches noautoreqdep pattern #%i)\n"
-+msgstr "pominiêto przetwarzanie zale¿no¶ci %s (pasuje do wzorca noautoreqdep #%i)\n"
-+
-+#: build/rpmfc.c:1211
-+#, c-format
-+msgid "skipping #%i require (is file requirement)\n"
-+msgstr "pominiêto zale¿no¶æ #%i (zale¿no¶æ od pliku)\n"
-+
-+#: build/rpmfc.c:1216
-+#, c-format
-+msgid "%s -> not found\n"
-+msgstr "%s -> nie znaleziono\n"
-+
-+#: build/rpmfc.c:1219
-+#, c-format
-+msgid "Iterator: %p\n"
-+msgstr "Iterator: %p\n"
-+
-+#: build/rpmfc.c:1221
-+#, c-format
-+msgid "%s -> multiple (skipping)\n"
-+msgstr "%s -> wiele (pominiêto)\n"
-+
-+#: build/rpmfc.c:1230
-+#, c-format
-+msgid "%s -> %s (skipping)\n"
-+msgstr "%s -> %s (pominiêto)\n"
-+
-+#: build/rpmfc.c:1295
-+#, c-format
-+msgid "skipping %s provides detection (matches noautoprovfiles pattern #%i)\n"
-+msgstr "pominiêto wykrywanie w³asno¶ci %s (pasuje do wzorca noautoprovfiles #%i)\n"
-+
-+#: build/rpmfc.c:1306
-+#, c-format
-+msgid "skipping %s requires detection (matches noautoreqfiles pattern #%i)\n"
-+msgstr "pominiêto wykrywanie w³asno¶ci %s (pasuje do wzorca noautoreqfiles #%i)\n"
-+
-+#: build/rpmfc.c:1642
-+#, c-format
-+msgid "Finding %s: %s\n"
-+msgstr "Poszukiwanie %s: %s\n"
-+
-+#: build/rpmfc.c:1648 build/rpmfc.c:1657
-+#, c-format
-+msgid "Failed to find %s:\n"
-+msgstr "Nie uda³o siê odnale¼æ %s:\n"
-+
- #: build/spec.c:237
- #, c-format
- msgid "line %d: Bad number: %s\n"
+#--- rpm-4.4.9/po/pl.po.orig 2007-05-22 08:11:40.947724921 +0200
+#+++ rpm-4.4.9/po/pl.po 2007-05-22 08:24:24.091213990 +0200
+#@@ -2937,6 +2937,86 @@
+# msgid "Failed to find %s:\n"
+# msgstr "Nie uda³o siê odnale¼æ %s:\n"
+#
+#+#: lib/rpmfc.c:334
+#+#, c-format
+#+msgid "Compilation of regular expresion '%s' (expanded from '%s') failed. Skipping it.\n"
+#+msgstr "Kompilacja wyra¿enia regularnego '%s' (powsta³ego z '%s') nie powiod³a siê; pominiêto.\n"
+#+
+#+#: lib/rpmfc.c:395
+#+#, c-format
+#+msgid "%i _noautoprov patterns.\n"
+#+msgstr "%i wzorców _noautoprov.\n"
+#+
+#+#: lib/rpmfc.c:405
+#+#, c-format
+#+msgid "%i _noautoreq patterns.\n"
+#+msgstr "%i wzorców _noautoreq.\n"
+#+
+#+#: lib/rpmfc.c:459
+#+#, c-format
+#+msgid "Checking %c: '%s' against _noauto expr. #%i\n"
+#+msgstr "Sprawdzanie %c: '%s' z wyra¿eniem _noauto #%i\n"
+#+
+#+#: lib/rpmfc.c:462
+#+#, c-format
+#+msgid "Skipping %c: '%s' as it matches _noauto expr. #%i\n"
+#+msgstr "Pominiêto %c: '%s' pasuj±ce do wyra¿enia _noauto #%i\n"
+#+
+#+#. XXX ts created in main() should be used
+#+#: lib/rpmfc.c:1173
+#+msgid "Searching for required packages....\n"
+#+msgstr "Poszukiwanie wymaganych pakietów...\n"
+#+
+#+#: lib/rpmfc.c:1197
+#+#, c-format
+#+msgid "#%i requires: %s,%s,%i\n"
+#+msgstr "#%i wymaga: %s,%s,%i\n"
+#+
+#+#: lib/rpmfc.c:1199
+#+#, c-format
+#+msgid "skipping #%i require\n"
+#+msgstr "pominiêto zale¿no¶æ #%i\n"
+#+
+#+#: lib/rpmfc.c:1205
+#+#, c-format
+#+msgid "skipping %s requirement processing (matches noautoreqdep pattern #%i)\n"
+#+msgstr "pominiêto przetwarzanie zale¿no¶ci %s (pasuje do wzorca noautoreqdep #%i)\n"
+#+
+#+#: lib/rpmfc.c:1211
+#+#, c-format
+#+msgid "skipping #%i require (is file requirement)\n"
+#+msgstr "pominiêto zale¿no¶æ #%i (zale¿no¶æ od pliku)\n"
+#+
+#+#: lib/rpmfc.c:1216
+#+#, c-format
+#+msgid "%s -> not found\n"
+#+msgstr "%s -> nie znaleziono\n"
+#+
+#+#: lib/rpmfc.c:1219
+#+#, c-format
+#+msgid "Iterator: %p\n"
+#+msgstr "Iterator: %p\n"
+#+
+#+#: lib/rpmfc.c:1221
+#+#, c-format
+#+msgid "%s -> multiple (skipping)\n"
+#+msgstr "%s -> wiele (pominiêto)\n"
+#+
+#+#: lib/rpmfc.c:1230
+#+#, c-format
+#+msgid "%s -> %s (skipping)\n"
+#+msgstr "%s -> %s (pominiêto)\n"
+#+
+#+#: lib/rpmfc.c:1295
+#+#, c-format
+#+msgid "skipping %s provides detection (matches noautoprovfiles pattern #%i)\n"
+#+msgstr "pominiêto wykrywanie w³asno¶ci %s (pasuje do wzorca noautoprovfiles #%i)\n"
+#+
+#+#: lib/rpmfc.c:1306
+#+#, c-format
+#+msgid "skipping %s requires detection (matches noautoreqfiles pattern #%i)\n"
+#+msgstr "pominiêto wykrywanie w³asno¶ci %s (pasuje do wzorca noautoreqfiles #%i)\n"
+#+
+# #: lib/rpmfi.c:622
+# #, c-format
--- rpm/configure.ac.orig 2004-08-22 13:02:30.000000000 +0200
+++ rpm/configure.ac 2004-08-22 13:25:37.000000000 +0200
-@@ -971,6 +971,15 @@
+@@ -971,6 +971,18 @@
AC_SUBST(__CHGRP_RHF)
dnl
+dnl enable generating autorequires containing packages names
+dnl
-+AC_ARG_ENABLE([add-packages-names-in-autogenerating-dependancies],
-+ [--enable-adding-packages-names-in-autogenerating-dependancies Add packages names for autogenerated dependancies to requires],
-+ AC_DEFINE(AUTODEP_PKGNAMES,1,[Define as 1 for generating autorequires containing packages names.])
++AC_ARG_ENABLE([adding-packages-names-in-autogenerated-dependancies],
++ [ --enable-adding-packages-names-in-autogenerated-dependancies Add packages names for autogenerated dependancies to requires],
++
++ AC_MSG_RESULT([Using packages names in autogerated requires is enabled])
++ AC_DEFINE(AUTODEP_PKGNAMES, 1, "Generating autorequires containing packages names.")
++
+ )
+
+
dnl figure out what root's primary group is
dnl
AC_MSG_CHECKING(root's primary group)
+--- rpm-4.5/lib/rpmfc.c~ 2008-06-11 01:02:40.000000000 +0300
++++ rpm-4.5/lib/rpmfc.c 2008-06-11 01:04:54.048916180 +0300
+@@ -382,12 +382,9 @@
+ * @param fc file classifier
+ * @param deptype 'P' == Provides:, 'R' == Requires:, helper
+ * @param nsdep class name for interpreter (e.g. "perl")
+- * @param noauto _noauto* regexps
+- * @param noauto_c # of _noauto* regexps
+ * @return 0 on success
+ */
+-static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep,
+- regex_t * noauto, int noauto_c)
++static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep)
+ /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
+ /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
+ {
+@@ -405,6 +402,8 @@
+ int pac;
+ int xx;
+ int i;
++ regex_t * noauto = fc->noauto;
++ int noauto_c = fc->noauto_c;
+
+ switch (deptype) {
+ default:
+--- rpm-4.5/lib/rpmfc.c~ 2008-06-11 01:04:54.000000000 +0300
++++ rpm-4.5/lib/rpmfc.c 2008-06-11 01:10:06.222936657 +0300
+@@ -410,7 +410,7 @@
+ return -1;
+ /*@notreached@*/ break;
+ case 'P':
+- if (fc->skipProv)
++ if (fc->skipProv || !fc->findprov)
+ return 0;
+ xx = snprintf(buf, sizeof(buf), "%%{?__%s_provides}", nsdep);
+ depsp = &fc->provides;
+@@ -418,7 +418,7 @@
+ tagN = RPMTAG_PROVIDENAME;
+ break;
+ case 'R':
+- if (fc->skipReq)
++ if (fc->skipReq || !fc->findreq)
+ return 0;
+ xx = snprintf(buf, sizeof(buf), "%%{?__%s_requires}", nsdep);
+ depsp = &fc->requires;
+--- rpm-4.5/lib/rpmfc.c~ 2008-06-11 01:11:33.000000000 +0300
++++ rpm-4.5/lib/rpmfc.c 2008-06-11 01:16:17.084344647 +0300
+@@ -402,8 +402,8 @@
+ int pac;
+ int xx;
+ int i;
+- regex_t * noauto = fc->noauto;
+- int noauto_c = fc->noauto_c;
++ regex_t * noauto = NULL;
++ int noauto_c = 0;
+
+ switch (deptype) {
+ default:
+@@ -412,6 +412,8 @@
+ case 'P':
+ if (fc->skipProv || !fc->findprov)
+ return 0;
++ noauto = fc->noautoprov;
++ noauto_c = fc->noautoprov_c;
+ xx = snprintf(buf, sizeof(buf), "%%{?__%s_provides}", nsdep);
+ depsp = &fc->provides;
+ dsContext = RPMSENSE_FIND_PROVIDES;
+@@ -420,6 +422,8 @@
+ case 'R':
+ if (fc->skipReq || !fc->findreq)
+ return 0;
++ noauto = fc->noautoreq;
++ noauto_c = fc->noautoreq_c;
+ xx = snprintf(buf, sizeof(buf), "%%{?__%s_requires}", nsdep);
+ depsp = &fc->requires;
+ dsContext = RPMSENSE_FIND_REQUIRES;
+#--- rpm-4.5/lib/rpmfc.c~ 2008-06-11 00:28:21.000000000 +0300
+#+++ rpm-4.5/lib/rpmfc.c 2008-06-11 00:37:51.675282123 +0300
+#@@ -829,7 +829,6 @@
+# }
+# } else
+# if (fc->fcolor->vals[fc->ix] & RPMFC_PYTHON) {
+#- xx = rpmfcHelper(fc, 'P', "python");
+# if (fc->findprov)
+# xx = rpmfcHelper(fc, 'P', "python", fc->noautoprov, fc->noautoprov_c);
+# #ifdef NOTYET
+#--- rpm-4.5/lib/rpmfc.c~ 2008-06-11 00:37:51.000000000 +0300
+#+++ rpm-4.5/lib/rpmfc.c 2008-06-11 00:39:12.427942547 +0300
+#@@ -876,7 +876,8 @@
+# xx = rpmfcHelper(fc, 'R', "java", fc->noautoreq, fc->noautoreq_c);
+# } else
+# if (fc->fcolor->vals[fc->ix] & RPMFC_DESKTOP_FILE) {
+#- xx = rpmfcHelper(fc, 'P', "mimetype");
+#+ if (fc->findprov)
+#+ xx = rpmfcHelper(fc, 'P', "mimetype", fc->noautoprov, fc->noautoprov_c);
+# }
+#
+# return 0;
+--- rpm-4.4.8/lib/rpmfc.c.orig 2007-02-14 07:31:50.000000000 +0100
++++ rpm-4.4.8/lib/rpmfc.c 2007-04-08 16:48:00.273560592 +0200
+@@ -773,7 +773,7 @@
+ } else
+ if (fc->fcolor->vals[fc->ix] & RPMFC_PHP) {
+ xx = rpmfcHelper(fc, 'P', "php");
+- if (is_executable)
++ /* not only executable, files run by httpd usually are not */
+ xx = rpmfcHelper(fc, 'R', "php");
+ }
+
+