From 8fa9463826e3aef7ed763b2d1d6bb0937e91b8cd Mon Sep 17 00:00:00 2001 From: jbj Date: Fri, 4 Sep 1998 16:17:46 +0000 Subject: [PATCH] Sync with 5.2 branch. CVS patchset: 2275 CVS date: 1998/09/04 16:17:46 --- CHANGES | 1 + build/files.c | 95 ++++++--- build/parsePreamble.c | 84 ++++---- convertdb.c | 2 +- lib/package.c | 2 +- lib/rpmlib.h | 572 +++++++++++++++++++++++++------------------------- po/tr.po | 2 +- 7 files changed, 399 insertions(+), 359 deletions(-) diff --git a/CHANGES b/CHANGES index 98ae08a..6584d8a 100644 --- a/CHANGES +++ b/CHANGES @@ -16,6 +16,7 @@ - create /usr/lib/rpm directory and move rpmrc et al there 2.5.3 -> 2.5.4: + - add %license/%readme virtual file attributes - align "Build Host:" with other fields 2.5.2 -> 2.5.3: diff --git a/build/files.c b/build/files.c index cd239e3..5be8f7d 100644 --- a/build/files.c +++ b/build/files.c @@ -563,10 +563,33 @@ static int parseForRegexLang(char *fileName, char **lang) return 1; } +typedef struct VFA { + char * attribute; + int flag; +} VFA_t; + +VFA_t virtualFileAttributes[] = { + { "%dir", 0 }, /* XXX why not RPMFILE_DIR? */ + { "%doc", RPMFILE_DOC }, + { "%ghost", RPMFILE_GHOST }, + { "%readme", RPMFILE_README }, + { "%license", RPMFILE_LICENSE }, + +#if WHY_NOT + { "%spec", RPMFILE_SPEC }, + { "%config", RPMFILE_CONFIG }, + { "%donotuse", RPMFILE_DONOTUSE }, /* XXX WTFO? */ + { "%missingok", RPMFILE_CONFIG|RPMFILE_MISSINGOK }, + { "%noreplace", RPMFILE_CONFIG|RPMFILE_NOREPLACE }, +#endif + + NULL +}; + static int parseForSimple(Spec spec, Package pkg, char *buf, struct FileList *fl, char **fileName) { - char *s; + char *s, *t; int res, specialDoc = 0; char *name, *version; char specialDocBuf[BUFSIZ]; @@ -574,8 +597,10 @@ static int parseForSimple(Spec spec, Package pkg, char *buf, specialDocBuf[0] = '\0'; *fileName = NULL; res = 0; - s = strtokWithQuotes(buf, " \t\n"); - while (s) { + + t = buf; + while ((s = strtokWithQuotes(t, " \t\n")) != NULL) { + t = NULL; if (!strcmp(s, "%docdir")) { s = strtokWithQuotes(NULL, " \t\n"); if (fl->docDirCount == MAXDOCDIR) { @@ -590,37 +615,46 @@ static int parseForSimple(Spec spec, Package pkg, char *buf, res = 1; } break; - } else if (!strcmp(s, "%doc")) { - fl->currentFlags |= RPMFILE_DOC; - } else if (!strcmp(s, "%ghost")) { - fl->currentFlags |= RPMFILE_GHOST; - } else if (!strcmp(s, "%dir")) { - fl->isDir = 1; - } else { - if (*fileName) { - /* We already got a file -- error */ + } + + /* Set flags for virtual file attributes */ + { VFA_t *vfa; + for (vfa = virtualFileAttributes; vfa->attribute != NULL; vfa++) { + if (strcmp(s, vfa->attribute)) + continue; + if (!strcmp(s, "%dir")) + fl->isDir = 1; /* XXX why not RPMFILE_DIR? */ + else + fl->currentFlags |= vfa->flag; + break; + } + if (vfa) + continue; + } + + if (*fileName) { + /* We already got a file -- error */ + rpmError(RPMERR_BADSPEC, + "Two files on one line: %s", *fileName); + fl->processingFailed = 1; + res = 1; + } + + if (*s != '/') { + if (fl->currentFlags & RPMFILE_DOC) { + specialDoc = 1; + strcat(specialDocBuf, " "); + strcat(specialDocBuf, s); + } else { + /* not in %doc, does not begin with / -- error */ rpmError(RPMERR_BADSPEC, - "Two files on one line: %s", *fileName); + "File must begin with \"/\": %s", s); fl->processingFailed = 1; res = 1; } - if (*s != '/') { - if (fl->currentFlags & RPMFILE_DOC) { - specialDoc = 1; - strcat(specialDocBuf, " "); - strcat(specialDocBuf, s); - } else { - /* not in %doc, does not begin with / -- error */ - rpmError(RPMERR_BADSPEC, - "File must begin with \"/\": %s", s); - fl->processingFailed = 1; - res = 1; - } - } else { - *fileName = s; - } + } else { + *fileName = s; } - s = strtokWithQuotes(NULL, " \t\n"); } if (specialDoc) { @@ -631,6 +665,7 @@ static int parseForSimple(Spec spec, Package pkg, char *buf, fl->processingFailed = 1; res = 1; } else { + /* XXX FIXME: this is easy to do as macro expansion */ headerGetEntry(pkg->header, RPMTAG_NAME, NULL, (void *) &name, NULL); headerGetEntry(pkg->header, RPMTAG_VERSION, NULL, @@ -1252,7 +1287,7 @@ int processSourceFiles(Spec spec) case RPMTAG_PACKAGER: case RPMTAG_DISTRIBUTION: case RPMTAG_VENDOR: - case RPMTAG_COPYRIGHT: + case RPMTAG_LICENSE: case RPMTAG_GROUP: case RPMTAG_OS: case RPMTAG_ARCH: diff --git a/build/parsePreamble.c b/build/parsePreamble.c index a3a7c9f..9b942c9 100644 --- a/build/parsePreamble.c +++ b/build/parsePreamble.c @@ -7,7 +7,7 @@ static int copyTagsDuringParse[] = { RPMTAG_VERSION, RPMTAG_RELEASE, - RPMTAG_COPYRIGHT, + RPMTAG_LICENSE, RPMTAG_PACKAGER, RPMTAG_DISTRIBUTION, RPMTAG_VENDOR, @@ -25,7 +25,7 @@ static int requiredTags[] = { RPMTAG_RELEASE, RPMTAG_SUMMARY, RPMTAG_GROUP, - RPMTAG_COPYRIGHT, + RPMTAG_LICENSE, /* You really ought to have these, but many people don't: */ /* RPMTAG_PACKAGER, */ /* RPMTAG_DISTRIBUTION, */ @@ -367,7 +367,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, char *macro, case RPMTAG_SUMMARY: case RPMTAG_DISTRIBUTION: case RPMTAG_VENDOR: - case RPMTAG_COPYRIGHT: + case RPMTAG_LICENSE: case RPMTAG_PACKAGER: if (! *lang) { headerAddEntry(pkg->header, tag, RPM_STRING_TYPE, field, 1); @@ -517,45 +517,45 @@ static struct PreambleRec { int multiLang; char *token; } preambleList[] = { - {RPMTAG_NAME, 0, 0, "name"}, - {RPMTAG_VERSION, 0, 0, "version"}, - {RPMTAG_RELEASE, 0, 0, "release"}, - {RPMTAG_SERIAL, 0, 0, "serial"}, -/* {RPMTAG_DESCRIPTION, 0, "description"}, */ - {RPMTAG_SUMMARY, 0, 1, "summary"}, - {RPMTAG_COPYRIGHT, 0, 0, "copyright"}, - {RPMTAG_COPYRIGHT, 0, 0, "license"}, - {RPMTAG_DISTRIBUTION, 0, 0, "distribution"}, - {RPMTAG_VENDOR, 0, 0, "vendor"}, - {RPMTAG_GROUP, 0, 1, "group"}, - {RPMTAG_PACKAGER, 0, 0, "packager"}, - {RPMTAG_URL, 0, 0, "url"}, -/* {RPMTAG_ROOT, 0, "root"}, */ - {RPMTAG_SOURCE, 0, 0, "source"}, - {RPMTAG_PATCH, 0, 0, "patch"}, - {RPMTAG_NOSOURCE, 0, 0, "nosource"}, - {RPMTAG_NOPATCH, 0, 0, "nopatch"}, - {RPMTAG_EXCLUDEARCH, 0, 0, "excludearch"}, - {RPMTAG_EXCLUSIVEARCH, 0, 0, "exclusivearch"}, - {RPMTAG_EXCLUDEOS, 0, 0, "excludeos"}, - {RPMTAG_EXCLUSIVEOS, 0, 0, "exclusiveos"}, -/* {RPMTAG_EXCLUDE, 0, "exclude"}, */ -/* {RPMTAG_EXCLUSIVE, 0, "exclusive"}, */ - {RPMTAG_ICON, 0, 0, "icon"}, - {RPMTAG_PROVIDES, 0, 0, "provides"}, - {RPMTAG_REQUIREFLAGS, 0, 0, "requires"}, - {RPMTAG_PREREQ, 0, 0, "prereq"}, - {RPMTAG_CONFLICTFLAGS, 0, 0, "conflicts"}, - {RPMTAG_OBSOLETES, 0, 0, "obsoletes"}, - {RPMTAG_PREFIXES, 0, 0, "prefixes"}, - {RPMTAG_PREFIXES, 0, 0, "prefix"}, - {RPMTAG_BUILDROOT, 0, 0, "buildroot"}, - {RPMTAG_BUILDARCHS, 0, 0, "buildarchitectures"}, - {RPMTAG_BUILDARCHS, 0, 0, "buildarch"}, - {RPMTAG_AUTOREQPROV, 0, 0, "autoreqprov"}, - {RPMTAG_AUTOREQ, 0, 0, "autoreq"}, - {RPMTAG_AUTOPROV, 0, 0, "autoprov"}, - {RPMTAG_DOCDIR, 0, 0, "docdir"}, + {RPMTAG_NAME, 0, 0, "name"}, + {RPMTAG_VERSION, 0, 0, "version"}, + {RPMTAG_RELEASE, 0, 0, "release"}, + {RPMTAG_SERIAL, 0, 0, "serial"}, +/* {RPMTAG_DESCRIPTION, 0, 0, "description"}, */ + {RPMTAG_SUMMARY, 0, 1, "summary"}, + {RPMTAG_LICENSE, 0, 0, "copyright"}, + {RPMTAG_LICENSE, 0, 0, "license"}, + {RPMTAG_DISTRIBUTION, 0, 0, "distribution"}, + {RPMTAG_VENDOR, 0, 0, "vendor"}, + {RPMTAG_GROUP, 0, 1, "group"}, + {RPMTAG_PACKAGER, 0, 0, "packager"}, + {RPMTAG_URL, 0, 0, "url"}, +/* {RPMTAG_ROOT, 0, 0, "root"}, */ + {RPMTAG_SOURCE, 0, 0, "source"}, + {RPMTAG_PATCH, 0, 0, "patch"}, + {RPMTAG_NOSOURCE, 0, 0, "nosource"}, + {RPMTAG_NOPATCH, 0, 0, "nopatch"}, + {RPMTAG_EXCLUDEARCH, 0, 0, "excludearch"}, + {RPMTAG_EXCLUSIVEARCH, 0, 0, "exclusivearch"}, + {RPMTAG_EXCLUDEOS, 0, 0, "excludeos"}, + {RPMTAG_EXCLUSIVEOS, 0, 0, "exclusiveos"}, +/* {RPMTAG_EXCLUDE, 0, 0, "exclude"}, */ +/* {RPMTAG_EXCLUSIVE, 0, 0, "exclusive"}, */ + {RPMTAG_ICON, 0, 0, "icon"}, + {RPMTAG_PROVIDES, 0, 0, "provides"}, + {RPMTAG_REQUIREFLAGS, 0, 0, "requires"}, + {RPMTAG_PREREQ, 0, 0, "prereq"}, + {RPMTAG_CONFLICTFLAGS, 0, 0, "conflicts"}, + {RPMTAG_OBSOLETES, 0, 0, "obsoletes"}, + {RPMTAG_PREFIXES, 0, 0, "prefixes"}, + {RPMTAG_PREFIXES, 0, 0, "prefix"}, + {RPMTAG_BUILDROOT, 0, 0, "buildroot"}, + {RPMTAG_BUILDARCHS, 0, 0, "buildarchitectures"}, + {RPMTAG_BUILDARCHS, 0, 0, "buildarch"}, + {RPMTAG_AUTOREQPROV, 0, 0, "autoreqprov"}, + {RPMTAG_AUTOREQ, 0, 0, "autoreq"}, + {RPMTAG_AUTOPROV, 0, 0, "autoprov"}, + {RPMTAG_DOCDIR, 0, 0, "docdir"}, {0, 0, 0, 0} }; diff --git a/convertdb.c b/convertdb.c index 0c3469f..b2cb063 100644 --- a/convertdb.c +++ b/convertdb.c @@ -87,7 +87,7 @@ int convertDB(void) { package.distribution, 1); headerAddEntry(dbentry, RPMTAG_VENDOR, RPM_STRING_TYPE, package.vendor, 1); headerAddEntry(dbentry, RPMTAG_SIZE, RPM_INT32_TYPE, &package.size, 1); - headerAddEntry(dbentry, RPMTAG_COPYRIGHT, RPM_STRING_TYPE, package.copyright, 1); + headerAddEntry(dbentry, RPMTAG_LICENSE, RPM_STRING_TYPE, package.copyright, 1); headerAddEntry(dbentry, RPMTAG_GROUP, RPM_STRING_TYPE, group, 1); if (preun) { diff --git a/lib/package.c b/lib/package.c index 1b140e7..e6d67ae 100644 --- a/lib/package.c +++ b/lib/package.c @@ -171,7 +171,7 @@ static int readOldHeader(int fd, Header * hdr, int * isSource) { spec.distribution, 1); headerAddEntry(dbentry, RPMTAG_VENDOR, RPM_STRING_TYPE, spec.vendor, 1); headerAddEntry(dbentry, RPMTAG_SIZE, RPM_INT32_TYPE, &oldheader.size, 1); - headerAddEntry(dbentry, RPMTAG_COPYRIGHT, RPM_STRING_TYPE, spec.copyright, 1); + headerAddEntry(dbentry, RPMTAG_LICENSE, RPM_STRING_TYPE, spec.copyright, 1); if (oldheader.group) headerAddEntry(dbentry, RPMTAG_GROUP, RPM_STRING_TYPE, oldheader.group, 1); diff --git a/lib/rpmlib.h b/lib/rpmlib.h index a5db569..7283608 100644 --- a/lib/rpmlib.h +++ b/lib/rpmlib.h @@ -1,5 +1,5 @@ #ifndef H_RPMLIB -#define H_RPMLIB +#define H_RPMLIB /* This is the *only* module users of rpmlib should need to include */ @@ -28,223 +28,227 @@ extern const struct headerSprintfExtension rpmHeaderFormats[]; /* these tags are for both the database and packages */ /* none of these can be 0 !! */ -#define RPMTAG_NAME 1000 -#define RPMTAG_VERSION 1001 -#define RPMTAG_RELEASE 1002 -#define RPMTAG_EPOCH 1003 +#define RPMTAG_NAME 1000 +#define RPMTAG_VERSION 1001 +#define RPMTAG_RELEASE 1002 +#define RPMTAG_EPOCH 1003 #define RPMTAG_SERIAL RPMTAG_EPOCH /* backward comaptibility */ #define RPMTAG_SUMMARY 1004 -#define RPMTAG_DESCRIPTION 1005 -#define RPMTAG_BUILDTIME 1006 -#define RPMTAG_BUILDHOST 1007 -#define RPMTAG_INSTALLTIME 1008 -#define RPMTAG_SIZE 1009 -#define RPMTAG_DISTRIBUTION 1010 -#define RPMTAG_VENDOR 1011 -#define RPMTAG_GIF 1012 -#define RPMTAG_XPM 1013 -#define RPMTAG_COPYRIGHT 1014 -#define RPMTAG_PACKAGER 1015 -#define RPMTAG_GROUP 1016 -#define RPMTAG_CHANGELOG 1017 /* internal */ -#define RPMTAG_SOURCE 1018 -#define RPMTAG_PATCH 1019 -#define RPMTAG_URL 1020 -#define RPMTAG_OS 1021 -#define RPMTAG_ARCH 1022 -#define RPMTAG_PREIN 1023 -#define RPMTAG_POSTIN 1024 -#define RPMTAG_PREUN 1025 -#define RPMTAG_POSTUN 1026 -#define RPMTAG_FILENAMES 1027 -#define RPMTAG_FILESIZES 1028 -#define RPMTAG_FILESTATES 1029 -#define RPMTAG_FILEMODES 1030 -#define RPMTAG_FILEUIDS 1031 /* internal */ -#define RPMTAG_FILEGIDS 1032 /* internal */ -#define RPMTAG_FILERDEVS 1033 -#define RPMTAG_FILEMTIMES 1034 -#define RPMTAG_FILEMD5S 1035 -#define RPMTAG_FILELINKTOS 1036 -#define RPMTAG_FILEFLAGS 1037 -#define RPMTAG_ROOT 1038 -#define RPMTAG_FILEUSERNAME 1039 -#define RPMTAG_FILEGROUPNAME 1040 -#define RPMTAG_EXCLUDE 1041 /* internal - depricated */ -#define RPMTAG_EXCLUSIVE 1042 /* internal - depricated */ -#define RPMTAG_ICON 1043 -#define RPMTAG_SOURCERPM 1044 -#define RPMTAG_FILEVERIFYFLAGS 1045 -#define RPMTAG_ARCHIVESIZE 1046 -#define RPMTAG_PROVIDES 1047 -#define RPMTAG_REQUIREFLAGS 1048 -#define RPMTAG_REQUIRENAME 1049 -#define RPMTAG_REQUIREVERSION 1050 -#define RPMTAG_NOSOURCE 1051 /* internal */ -#define RPMTAG_NOPATCH 1052 /* internal */ -#define RPMTAG_CONFLICTFLAGS 1053 -#define RPMTAG_CONFLICTNAME 1054 -#define RPMTAG_CONFLICTVERSION 1055 -#define RPMTAG_DEFAULTPREFIX 1056 /* internal - deprecated */ -#define RPMTAG_BUILDROOT 1057 -#define RPMTAG_INSTALLPREFIX 1058 /* internal - deprecated */ -#define RPMTAG_EXCLUDEARCH 1059 -#define RPMTAG_EXCLUDEOS 1060 -#define RPMTAG_EXCLUSIVEARCH 1061 -#define RPMTAG_EXCLUSIVEOS 1062 -#define RPMTAG_AUTOREQPROV 1063 /* internal */ -#define RPMTAG_RPMVERSION 1064 -#define RPMTAG_TRIGGERSCRIPTS 1065 -#define RPMTAG_TRIGGERNAME 1066 -#define RPMTAG_TRIGGERVERSION 1067 -#define RPMTAG_TRIGGERFLAGS 1068 -#define RPMTAG_TRIGGERINDEX 1069 -#define RPMTAG_VERIFYSCRIPT 1079 -#define RPMTAG_CHANGELOGTIME 1080 -#define RPMTAG_CHANGELOGNAME 1081 -#define RPMTAG_CHANGELOGTEXT 1082 -#define RPMTAG_BROKENMD5 1083 /* internal */ -#define RPMTAG_PREREQ 1084 /* internal */ -#define RPMTAG_PREINPROG 1085 -#define RPMTAG_POSTINPROG 1086 -#define RPMTAG_PREUNPROG 1087 -#define RPMTAG_POSTUNPROG 1088 -#define RPMTAG_BUILDARCHS 1089 -#define RPMTAG_OBSOLETES 1090 -#define RPMTAG_VERIFYSCRIPTPROG 1091 -#define RPMTAG_TRIGGERSCRIPTPROG 1092 -#define RPMTAG_DOCDIR 1093 /* internal */ -#define RPMTAG_COOKIE 1094 -#define RPMTAG_FILEDEVICES 1095 -#define RPMTAG_FILEINODES 1096 -#define RPMTAG_FILELANGS 1097 -#define RPMTAG_PREFIXES 1098 -#define RPMTAG_INSTPREFIXES 1099 -#define RPMTAG_TRIGGERIN 1100 /* internal */ -#define RPMTAG_TRIGGERUN 1101 /* internal */ -#define RPMTAG_TRIGGERPOSTUN 1102 /* internal */ -#define RPMTAG_AUTOREQ 1103 /* internal */ -#define RPMTAG_AUTOPROV 1104 /* internal */ - -#define RPMTAG_EXTERNAL_TAG 1000000 - -#define RPMFILE_STATE_NORMAL 0 -#define RPMFILE_STATE_REPLACED 1 -#define RPMFILE_STATE_NOTINSTALLED 2 -#define RPMFILE_STATE_NETSHARED 3 +#define RPMTAG_DESCRIPTION 1005 +#define RPMTAG_BUILDTIME 1006 +#define RPMTAG_BUILDHOST 1007 +#define RPMTAG_INSTALLTIME 1008 +#define RPMTAG_SIZE 1009 +#define RPMTAG_DISTRIBUTION 1010 +#define RPMTAG_VENDOR 1011 +#define RPMTAG_GIF 1012 +#define RPMTAG_XPM 1013 +#define RPMTAG_LICENSE 1014 +#define RPMTAG_COPYRIGHT RPMTAG_LICENSE /* backward comaptibility */ +#define RPMTAG_PACKAGER 1015 +#define RPMTAG_GROUP 1016 +#define RPMTAG_CHANGELOG 1017 /* internal */ +#define RPMTAG_SOURCE 1018 +#define RPMTAG_PATCH 1019 +#define RPMTAG_URL 1020 +#define RPMTAG_OS 1021 +#define RPMTAG_ARCH 1022 +#define RPMTAG_PREIN 1023 +#define RPMTAG_POSTIN 1024 +#define RPMTAG_PREUN 1025 +#define RPMTAG_POSTUN 1026 +#define RPMTAG_FILENAMES 1027 +#define RPMTAG_FILESIZES 1028 +#define RPMTAG_FILESTATES 1029 +#define RPMTAG_FILEMODES 1030 +#define RPMTAG_FILEUIDS 1031 /* internal */ +#define RPMTAG_FILEGIDS 1032 /* internal */ +#define RPMTAG_FILERDEVS 1033 +#define RPMTAG_FILEMTIMES 1034 +#define RPMTAG_FILEMD5S 1035 +#define RPMTAG_FILELINKTOS 1036 +#define RPMTAG_FILEFLAGS 1037 +#define RPMTAG_ROOT 1038 +#define RPMTAG_FILEUSERNAME 1039 +#define RPMTAG_FILEGROUPNAME 1040 +#define RPMTAG_EXCLUDE 1041 /* internal - depricated */ +#define RPMTAG_EXCLUSIVE 1042 /* internal - depricated */ +#define RPMTAG_ICON 1043 +#define RPMTAG_SOURCERPM 1044 +#define RPMTAG_FILEVERIFYFLAGS 1045 +#define RPMTAG_ARCHIVESIZE 1046 +#define RPMTAG_PROVIDES 1047 +#define RPMTAG_REQUIREFLAGS 1048 +#define RPMTAG_REQUIRENAME 1049 +#define RPMTAG_REQUIREVERSION 1050 +#define RPMTAG_NOSOURCE 1051 /* internal */ +#define RPMTAG_NOPATCH 1052 /* internal */ +#define RPMTAG_CONFLICTFLAGS 1053 +#define RPMTAG_CONFLICTNAME 1054 +#define RPMTAG_CONFLICTVERSION 1055 +#define RPMTAG_DEFAULTPREFIX 1056 /* internal - deprecated */ +#define RPMTAG_BUILDROOT 1057 +#define RPMTAG_INSTALLPREFIX 1058 /* internal - deprecated */ +#define RPMTAG_EXCLUDEARCH 1059 +#define RPMTAG_EXCLUDEOS 1060 +#define RPMTAG_EXCLUSIVEARCH 1061 +#define RPMTAG_EXCLUSIVEOS 1062 +#define RPMTAG_AUTOREQPROV 1063 /* internal */ +#define RPMTAG_RPMVERSION 1064 +#define RPMTAG_TRIGGERSCRIPTS 1065 +#define RPMTAG_TRIGGERNAME 1066 +#define RPMTAG_TRIGGERVERSION 1067 +#define RPMTAG_TRIGGERFLAGS 1068 +#define RPMTAG_TRIGGERINDEX 1069 +#define RPMTAG_VERIFYSCRIPT 1079 +#define RPMTAG_CHANGELOGTIME 1080 +#define RPMTAG_CHANGELOGNAME 1081 +#define RPMTAG_CHANGELOGTEXT 1082 +#define RPMTAG_BROKENMD5 1083 /* internal */ +#define RPMTAG_PREREQ 1084 /* internal */ +#define RPMTAG_PREINPROG 1085 +#define RPMTAG_POSTINPROG 1086 +#define RPMTAG_PREUNPROG 1087 +#define RPMTAG_POSTUNPROG 1088 +#define RPMTAG_BUILDARCHS 1089 +#define RPMTAG_OBSOLETES 1090 +#define RPMTAG_VERIFYSCRIPTPROG 1091 +#define RPMTAG_TRIGGERSCRIPTPROG 1092 +#define RPMTAG_DOCDIR 1093 /* internal */ +#define RPMTAG_COOKIE 1094 +#define RPMTAG_FILEDEVICES 1095 +#define RPMTAG_FILEINODES 1096 +#define RPMTAG_FILELANGS 1097 +#define RPMTAG_PREFIXES 1098 +#define RPMTAG_INSTPREFIXES 1099 +#define RPMTAG_TRIGGERIN 1100 /* internal */ +#define RPMTAG_TRIGGERUN 1101 /* internal */ +#define RPMTAG_TRIGGERPOSTUN 1102 /* internal */ +#define RPMTAG_AUTOREQ 1103 /* internal */ +#define RPMTAG_AUTOPROV 1104 /* internal */ +#define RPMTAG_CAPABILITY 1105 + +#define RPMTAG_EXTERNAL_TAG 1000000 + +#define RPMFILE_STATE_NORMAL 0 +#define RPMFILE_STATE_REPLACED 1 +#define RPMFILE_STATE_NOTINSTALLED 2 +#define RPMFILE_STATE_NETSHARED 3 /* these can be ORed together */ -#define RPMFILE_CONFIG (1 << 0) -#define RPMFILE_DOC (1 << 1) -#define RPMFILE_DONOTUSE (1 << 2) -#define RPMFILE_MISSINGOK (1 << 3) -#define RPMFILE_NOREPLACE (1 << 4) -#define RPMFILE_SPECFILE (1 << 5) -#define RPMFILE_GHOST (1 << 6) - -#define RPMINSTALL_REPLACEPKG (1 << 0) -#define RPMINSTALL_REPLACEFILES (1 << 1) -#define RPMINSTALL_TEST (1 << 2) -#define RPMINSTALL_UPGRADE (1 << 3) -#define RPMINSTALL_UPGRADETOOLD (1 << 4) -#define RPMINSTALL_NODOCS (1 << 5) -#define RPMINSTALL_NOSCRIPTS (1 << 6) -#define RPMINSTALL_NOARCH (1 << 7) -#define RPMINSTALL_NOOS (1 << 8) -#define RPMINSTALL_ALLFILES (1 << 9) -#define RPMINSTALL_JUSTDB (1 << 10) -#define RPMINSTALL_KEEPOBSOLETE (1 << 11) -#define RPMINSTALL_FORCERELOCATE (1 << 12) -#define RPMINSTALL_NOTRIGGERS (1 << 13) - -#define RPMUNINSTALL_TEST (1 << 0) -#define RPMUNINSTALL_NOSCRIPTS (1 << 1) -#define RPMUNINSTALL_JUSTDB (1 << 2) -#define RPMUNINSTALL_NOTRIGGERS (1 << 3) - -#define RPMVERIFY_NONE 0 -#define RPMVERIFY_MD5 (1 << 0) -#define RPMVERIFY_FILESIZE (1 << 1) -#define RPMVERIFY_LINKTO (1 << 2) -#define RPMVERIFY_USER (1 << 3) -#define RPMVERIFY_GROUP (1 << 4) -#define RPMVERIFY_MTIME (1 << 5) -#define RPMVERIFY_MODE (1 << 6) -#define RPMVERIFY_RDEV (1 << 7) -#define RPMVERIFY_ALL ~(RPMVERIFY_NONE) - -#define RPMSENSE_ANY 0 -#define RPMSENSE_SERIAL (1 << 0) -#define RPMSENSE_LESS (1 << 1) -#define RPMSENSE_GREATER (1 << 2) -#define RPMSENSE_EQUAL (1 << 3) -#define RPMSENSE_PROVIDES (1 << 4) /* only used internally by builds */ -#define RPMSENSE_CONFLICTS (1 << 5) /* only used internally by builds */ -#define RPMSENSE_PREREQ (1 << 6) -#define RPMSENSE_OBSOLETES (1 << 7) /* only used internally by builds */ -#define RPMSENSE_SENSEMASK 15 /* Mask to get senses, ie serial, */ +#define RPMFILE_CONFIG (1 << 0) +#define RPMFILE_DOC (1 << 1) +#define RPMFILE_DONOTUSE (1 << 2) +#define RPMFILE_MISSINGOK (1 << 3) +#define RPMFILE_NOREPLACE (1 << 4) +#define RPMFILE_SPECFILE (1 << 5) +#define RPMFILE_GHOST (1 << 6) +#define RPMFILE_LICENSE (1 << 7) +#define RPMFILE_README (1 << 8) + +#define RPMINSTALL_REPLACEPKG (1 << 0) +#define RPMINSTALL_REPLACEFILES (1 << 1) +#define RPMINSTALL_TEST (1 << 2) +#define RPMINSTALL_UPGRADE (1 << 3) +#define RPMINSTALL_UPGRADETOOLD (1 << 4) +#define RPMINSTALL_NODOCS (1 << 5) +#define RPMINSTALL_NOSCRIPTS (1 << 6) +#define RPMINSTALL_NOARCH (1 << 7) +#define RPMINSTALL_NOOS (1 << 8) +#define RPMINSTALL_ALLFILES (1 << 9) +#define RPMINSTALL_JUSTDB (1 << 10) +#define RPMINSTALL_KEEPOBSOLETE (1 << 11) +#define RPMINSTALL_FORCERELOCATE (1 << 12) +#define RPMINSTALL_NOTRIGGERS (1 << 13) + +#define RPMUNINSTALL_TEST (1 << 0) +#define RPMUNINSTALL_NOSCRIPTS (1 << 1) +#define RPMUNINSTALL_JUSTDB (1 << 2) +#define RPMUNINSTALL_NOTRIGGERS (1 << 3) + +#define RPMVERIFY_NONE 0 +#define RPMVERIFY_MD5 (1 << 0) +#define RPMVERIFY_FILESIZE (1 << 1) +#define RPMVERIFY_LINKTO (1 << 2) +#define RPMVERIFY_USER (1 << 3) +#define RPMVERIFY_GROUP (1 << 4) +#define RPMVERIFY_MTIME (1 << 5) +#define RPMVERIFY_MODE (1 << 6) +#define RPMVERIFY_RDEV (1 << 7) +#define RPMVERIFY_ALL ~(RPMVERIFY_NONE) + +#define RPMSENSE_ANY 0 +#define RPMSENSE_SERIAL (1 << 0) +#define RPMSENSE_LESS (1 << 1) +#define RPMSENSE_GREATER (1 << 2) +#define RPMSENSE_EQUAL (1 << 3) +#define RPMSENSE_PROVIDES (1 << 4) /* only used internally by builds */ +#define RPMSENSE_CONFLICTS (1 << 5) /* only used internally by builds */ +#define RPMSENSE_PREREQ (1 << 6) +#define RPMSENSE_OBSOLETES (1 << 7) /* only used internally by builds */ +#define RPMSENSE_SENSEMASK 15 /* Mask to get senses, ie serial, */ /* less, greater, equal. */ -#define RPMSENSE_TRIGGERIN (1 << 16) -#define RPMSENSE_TRIGGERUN (1 << 17) -#define RPMSENSE_TRIGGERPOSTUN (1 << 18) -#define RPMSENSE_TRIGGER (RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | \ +#define RPMSENSE_TRIGGERIN (1 << 16) +#define RPMSENSE_TRIGGERUN (1 << 17) +#define RPMSENSE_TRIGGERPOSTUN (1 << 18) +#define RPMSENSE_TRIGGER (RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | \ RPMSENSE_TRIGGERPOSTUN) /* Stuff for maintaining "variables" like SOURCEDIR, BUILDDIR, etc */ -#define RPMVAR_SOURCEDIR 0 -#define RPMVAR_BUILDDIR 1 +#define RPMVAR_SOURCEDIR 0 +#define RPMVAR_BUILDDIR 1 /* #define RPMVAR_DOCDIR 2 -- No longer used */ -#define RPMVAR_OPTFLAGS 3 -#define RPMVAR_TOPDIR 4 -#define RPMVAR_SPECDIR 5 -#define RPMVAR_ROOT 6 -#define RPMVAR_RPMDIR 7 -#define RPMVAR_SRPMDIR 8 +#define RPMVAR_OPTFLAGS 3 +#define RPMVAR_TOPDIR 4 +#define RPMVAR_SPECDIR 5 +#define RPMVAR_ROOT 6 +#define RPMVAR_RPMDIR 7 +#define RPMVAR_SRPMDIR 8 /* #define RPMVAR_ARCHSENSITIVE 9 -- No longer used */ -#define RPMVAR_REQUIREDISTRIBUTION 10 +#define RPMVAR_REQUIREDISTRIBUTION 10 /* #define RPMVAR_REQUIREGROUP 11 -- No longer used */ -#define RPMVAR_REQUIREVENDOR 12 -#define RPMVAR_DISTRIBUTION 13 -#define RPMVAR_VENDOR 14 -#define RPMVAR_MESSAGELEVEL 15 -#define RPMVAR_REQUIREICON 16 -#define RPMVAR_TIMECHECK 17 -#define RPMVAR_SIGTYPE 18 -#define RPMVAR_PGP_PATH 19 -#define RPMVAR_PGP_NAME 20 +#define RPMVAR_REQUIREVENDOR 12 +#define RPMVAR_DISTRIBUTION 13 +#define RPMVAR_VENDOR 14 +#define RPMVAR_MESSAGELEVEL 15 +#define RPMVAR_REQUIREICON 16 +#define RPMVAR_TIMECHECK 17 +#define RPMVAR_SIGTYPE 18 +#define RPMVAR_PGP_PATH 19 +#define RPMVAR_PGP_NAME 20 /* #define RPMVAR_PGP_SECRING 21 -- No longer used */ /* #define RPMVAR_PGP_PUBRING 22 -- No longer used */ -#define RPMVAR_EXCLUDEDOCS 23 +#define RPMVAR_EXCLUDEDOCS 23 /* #define RPMVAR_BUILDARCH 24 -- No longer used */ /* #define RPMVAR_BUILDOS 25 -- No longer used */ -#define RPMVAR_BUILDROOT 26 -#define RPMVAR_DBPATH 27 -#define RPMVAR_PACKAGER 28 -#define RPMVAR_FTPPROXY 29 -#define RPMVAR_TMPPATH 30 -/* #define RPMVAR_CPIOBIN 31 -- No longer used */ -#define RPMVAR_FTPPORT 32 -#define RPMVAR_NETSHAREDPATH 33 -#define RPMVAR_DEFAULTDOCDIR 34 -#define RPMVAR_FIXPERMS 35 -#define RPMVAR_GZIPBIN 36 -#define RPMVAR_RPMFILENAME 37 -#define RPMVAR_PROVIDES 38 -#define RPMVAR_BUILDSHELL 39 -#define RPMVAR_INSTCHANGELOG 40 -#define RPMVAR_BZIP2BIN 41 -#define RPMVAR_LANGPATT 42 -#define RPMVAR_INCLUDE 43 -#define RPMVAR_ARCH 44 -#define RPMVAR_OS 45 -#define RPMVAR_BUILDPLATFORM 46 -#define RPMVAR_BUILDARCH 47 -#define RPMVAR_BUILDOS 48 -#define RPMVAR_SETENV 49 - -#define RPMVAR_NUM 50 /* number of RPMVAR entries */ +#define RPMVAR_BUILDROOT 26 +#define RPMVAR_DBPATH 27 +#define RPMVAR_PACKAGER 28 +#define RPMVAR_FTPPROXY 29 +#define RPMVAR_TMPPATH 30 +/* #define RPMVAR_CPIOBIN 31 -- No longer used */ +#define RPMVAR_FTPPORT 32 +#define RPMVAR_NETSHAREDPATH 33 +#define RPMVAR_DEFAULTDOCDIR 34 +#define RPMVAR_FIXPERMS 35 +#define RPMVAR_GZIPBIN 36 +#define RPMVAR_RPMFILENAME 37 +#define RPMVAR_PROVIDES 38 +#define RPMVAR_BUILDSHELL 39 +#define RPMVAR_INSTCHANGELOG 40 +#define RPMVAR_BZIP2BIN 41 +#define RPMVAR_LANGPATT 42 +#define RPMVAR_INCLUDE 43 +#define RPMVAR_ARCH 44 +#define RPMVAR_OS 45 +#define RPMVAR_BUILDPLATFORM 46 +#define RPMVAR_BUILDARCH 47 +#define RPMVAR_BUILDOS 48 +#define RPMVAR_SETENV 49 + +#define RPMVAR_NUM 50 /* number of RPMVAR entries */ char * rpmGetVar(int var); int rpmGetBooleanVar(int var); @@ -252,11 +256,11 @@ void rpmSetVar(int var, char *val); /** rpmrc.c **/ -#define RPM_MACHTABLE_INSTARCH 0 -#define RPM_MACHTABLE_INSTOS 1 -#define RPM_MACHTABLE_BUILDARCH 2 -#define RPM_MACHTABLE_BUILDOS 3 -#define RPM_MACHTABLE_COUNT 4 /* number of arch/os tables */ +#define RPM_MACHTABLE_INSTARCH 0 +#define RPM_MACHTABLE_INSTOS 1 +#define RPM_MACHTABLE_BUILDARCH 2 +#define RPM_MACHTABLE_BUILDOS 3 +#define RPM_MACHTABLE_COUNT 4 /* number of arch/os tables */ /* rpmReadConfigFiles() is for backwards compatibility only! It won't work if building is true! */ @@ -356,14 +360,14 @@ void rpmdepFreeConflicts(struct rpmDependencyConflict * conflicts, int /** messages.c **/ -#define RPMMESS_DEBUG 1 -#define RPMMESS_VERBOSE 2 -#define RPMMESS_NORMAL 3 -#define RPMMESS_WARNING 4 -#define RPMMESS_ERROR 5 -#define RPMMESS_FATALERROR 6 +#define RPMMESS_DEBUG 1 +#define RPMMESS_VERBOSE 2 +#define RPMMESS_NORMAL 3 +#define RPMMESS_WARNING 4 +#define RPMMESS_ERROR 5 +#define RPMMESS_FATALERROR 6 -#define RPMMESS_QUIET (RPMMESS_NORMAL + 1) +#define RPMMESS_QUIET (RPMMESS_NORMAL + 1) void rpmIncreaseVerbosity(void); void rpmSetVerbosity(int level); @@ -374,17 +378,17 @@ void rpmMessage(int level, char * format, ...); /** rpmlead.c **/ -#define RPMLEAD_BINARY 0 -#define RPMLEAD_SOURCE 1 +#define RPMLEAD_BINARY 0 +#define RPMLEAD_SOURCE 1 -#define RPMLEAD_MAGIC0 0xed -#define RPMLEAD_MAGIC1 0xab -#define RPMLEAD_MAGIC2 0xee -#define RPMLEAD_MAGIC3 0xdb +#define RPMLEAD_MAGIC0 0xed +#define RPMLEAD_MAGIC1 0xab +#define RPMLEAD_MAGIC2 0xee +#define RPMLEAD_MAGIC3 0xdb /* The lead needs to be 8 byte aligned */ -#define RPMLEAD_SIZE 96 +#define RPMLEAD_SIZE 96 struct rpmlead { unsigned char magic[4]; @@ -417,63 +421,63 @@ int rpmErrorCode(void); char *rpmErrorString(void); rpmErrorCallBackType rpmErrorSetCallback(rpmErrorCallBackType); -#define RPMERR_GDBMOPEN -2 /* gdbm open failed */ -#define RPMERR_GDBMREAD -3 /* gdbm read failed */ -#define RPMERR_GDBMWRITE -4 /* gdbm write failed */ -#define RPMERR_INTERNAL -5 /* internal RPM error */ -#define RPMERR_DBCORRUPT -6 /* rpm database is corrupt */ -#define RPMERR_OLDDBCORRUPT -7 /* old style rpm database is corrupt */ -#define RPMERR_OLDDBMISSING -8 /* old style rpm database is missing */ -#define RPMERR_NOCREATEDB -9 /* cannot create new database */ -#define RPMERR_DBOPEN -10 /* database open failed */ -#define RPMERR_DBGETINDEX -11 /* database get from index failed */ -#define RPMERR_DBPUTINDEX -12 /* database get from index failed */ -#define RPMERR_NEWPACKAGE -13 /* package is too new to handle */ -#define RPMERR_BADMAGIC -14 /* bad magic for an RPM */ -#define RPMERR_RENAME -15 /* rename(2) failed */ -#define RPMERR_UNLINK -16 /* unlink(2) failed */ -#define RPMERR_RMDIR -17 /* rmdir(2) failed */ -#define RPMERR_PKGINSTALLED -18 /* package already installed */ -#define RPMERR_CHOWN -19 /* chown() call failed */ -#define RPMERR_NOUSER -20 /* user does not exist */ -#define RPMERR_NOGROUP -21 /* group does not exist */ -#define RPMERR_MKDIR -22 /* mkdir() call failed */ -#define RPMERR_FILECONFLICT -23 /* file being installed exists */ -#define RPMERR_RPMRC -24 /* bad line in rpmrc */ -#define RPMERR_NOSPEC -25 /* .spec file is missing */ -#define RPMERR_NOTSRPM -26 /* a source rpm was expected */ -#define RPMERR_FLOCK -27 /* locking the database failed */ -#define RPMERR_OLDPACKAGE -28 /* trying upgrading to old version */ -#define RPMERR_BADARCH -29 /* bad architecture or arch mismatch */ -#define RPMERR_CREATE -30 /* failed to create a file */ -#define RPMERR_NOSPACE -31 /* out of disk space */ -#define RPMERR_NORELOCATE -32 /* tried to do improper relocatation */ -#define RPMERR_BADOS -33 /* bad architecture or arch mismatch */ -#define RPMMESS_BACKUP -34 /* backup made during [un]install */ -#define RPMERR_MTAB -35 /* failed to read mount table */ -#define RPMERR_STAT -36 /* failed to stat something */ -#define RPMERR_BADDEV -37 /* file on device not listed in mtab */ -#define RPMMESS_ALTNAME -38 /* file written as .rpmnew */ -#define RPMMESS_PREREQLOOP -39 /* loop in prerequisites */ -#define RPMERR_BADRELOCATE -40 /* bad relocation was specified */ +#define RPMERR_GDBMOPEN -2 /* gdbm open failed */ +#define RPMERR_GDBMREAD -3 /* gdbm read failed */ +#define RPMERR_GDBMWRITE -4 /* gdbm write failed */ +#define RPMERR_INTERNAL -5 /* internal RPM error */ +#define RPMERR_DBCORRUPT -6 /* rpm database is corrupt */ +#define RPMERR_OLDDBCORRUPT -7 /* old style rpm database is corrupt */ +#define RPMERR_OLDDBMISSING -8 /* old style rpm database is missing */ +#define RPMERR_NOCREATEDB -9 /* cannot create new database */ +#define RPMERR_DBOPEN -10 /* database open failed */ +#define RPMERR_DBGETINDEX -11 /* database get from index failed */ +#define RPMERR_DBPUTINDEX -12 /* database get from index failed */ +#define RPMERR_NEWPACKAGE -13 /* package is too new to handle */ +#define RPMERR_BADMAGIC -14 /* bad magic for an RPM */ +#define RPMERR_RENAME -15 /* rename(2) failed */ +#define RPMERR_UNLINK -16 /* unlink(2) failed */ +#define RPMERR_RMDIR -17 /* rmdir(2) failed */ +#define RPMERR_PKGINSTALLED -18 /* package already installed */ +#define RPMERR_CHOWN -19 /* chown() call failed */ +#define RPMERR_NOUSER -20 /* user does not exist */ +#define RPMERR_NOGROUP -21 /* group does not exist */ +#define RPMERR_MKDIR -22 /* mkdir() call failed */ +#define RPMERR_FILECONFLICT -23 /* file being installed exists */ +#define RPMERR_RPMRC -24 /* bad line in rpmrc */ +#define RPMERR_NOSPEC -25 /* .spec file is missing */ +#define RPMERR_NOTSRPM -26 /* a source rpm was expected */ +#define RPMERR_FLOCK -27 /* locking the database failed */ +#define RPMERR_OLDPACKAGE -28 /* trying upgrading to old version */ +#define RPMERR_BADARCH -29 /* bad architecture or arch mismatch */ +#define RPMERR_CREATE -30 /* failed to create a file */ +#define RPMERR_NOSPACE -31 /* out of disk space */ +#define RPMERR_NORELOCATE -32 /* tried to do improper relocatation */ +#define RPMERR_BADOS -33 /* bad architecture or arch mismatch */ +#define RPMMESS_BACKUP -34 /* backup made during [un]install */ +#define RPMERR_MTAB -35 /* failed to read mount table */ +#define RPMERR_STAT -36 /* failed to stat something */ +#define RPMERR_BADDEV -37 /* file on device not listed in mtab */ +#define RPMMESS_ALTNAME -38 /* file written as .rpmnew */ +#define RPMMESS_PREREQLOOP -39 /* loop in prerequisites */ +#define RPMERR_BADRELOCATE -40 /* bad relocation was specified */ /* spec.c build.c pack.c */ -#define RPMERR_UNMATCHEDIF -107 /* unclosed %ifarch or %ifos */ -#define RPMERR_BADARG -109 -#define RPMERR_SCRIPT -110 /* errors related to script exec */ -#define RPMERR_READERROR -111 -#define RPMERR_UNKNOWNOS -112 -#define RPMERR_UNKNOWNARCH -113 -#define RPMERR_EXEC -114 -#define RPMERR_FORK -115 -#define RPMERR_CPIO -116 -#define RPMERR_GZIP -117 -#define RPMERR_BADSPEC -118 -#define RPMERR_LDD -119 /* couldn't understand ldd output */ -#define RPMERR_BADFILENAME -120 - -#define RPMERR_BADSIGTYPE -200 /* Unknown signature type */ -#define RPMERR_SIGGEN -201 /* Error generating signature */ +#define RPMERR_UNMATCHEDIF -107 /* unclosed %ifarch or %ifos */ +#define RPMERR_BADARG -109 +#define RPMERR_SCRIPT -110 /* errors related to script exec */ +#define RPMERR_READERROR -111 +#define RPMERR_UNKNOWNOS -112 +#define RPMERR_UNKNOWNARCH -113 +#define RPMERR_EXEC -114 +#define RPMERR_FORK -115 +#define RPMERR_CPIO -116 +#define RPMERR_GZIP -117 +#define RPMERR_BADSPEC -118 +#define RPMERR_LDD -119 /* couldn't understand ldd output */ +#define RPMERR_BADFILENAME -120 + +#define RPMERR_BADSIGTYPE -200 /* Unknown signature type */ +#define RPMERR_SIGGEN -201 /* Error generating signature */ /** signature.c **/ @@ -486,12 +490,12 @@ rpmErrorCallBackType rpmErrorSetCallback(rpmErrorCallBackType); /* */ /**************************************************/ -#define RPMSIGTAG_SIZE 1000 +#define RPMSIGTAG_SIZE 1000 /* the md5 sum was broken *twice* on big endian machines */ -#define RPMSIGTAG_LEMD5_1 1001 -#define RPMSIGTAG_PGP 1002 -#define RPMSIGTAG_LEMD5_2 1003 -#define RPMSIGTAG_MD5 1004 +#define RPMSIGTAG_LEMD5_1 1001 +#define RPMSIGTAG_PGP 1002 +#define RPMSIGTAG_LEMD5_2 1003 +#define RPMSIGTAG_MD5 1004 /**************************************************/ /* */ @@ -500,10 +504,10 @@ rpmErrorCallBackType rpmErrorSetCallback(rpmErrorCallBackType); /**************************************************/ /* verifySignature() results */ -#define RPMSIG_OK 0 -#define RPMSIG_UNKNOWN 1 -#define RPMSIG_BAD 2 -#define RPMSIG_NOKEY 3 /* Do not have the key to check this signature */ +#define RPMSIG_OK 0 +#define RPMSIG_UNKNOWN 1 +#define RPMSIG_BAD 2 +#define RPMSIG_NOKEY 3 /* Do not have the key to check this signature */ void rpmFreeSignature(Header h); diff --git a/po/tr.po b/po/tr.po index 5ecaaf5..e1dfe3e 100644 --- a/po/tr.po +++ b/po/tr.po @@ -1016,7 +1016,7 @@ msgstr "%s'%s i #: /home/ewt/redhat/rpm/url.c:143 msgid "error: ftpport must be a number\n" -msgstr "hata: ftpport bir sayý olmalý" +msgstr "hata: ftpport bir sayý olmalý\n" #: /home/ewt/redhat/rpm/url.c:201 msgid "failed to create %s\n" -- 2.7.4