Eliminate useless --fileid query selector

- Finding out which package provides a file with a given digest
  is just .. useless functionality. Being next to useless is one
  thing, but we pay a high price for this particular uselessness:
  the index needed for this is one of the biggest and most expensive
  indexes we have.
This commit is contained in:
Panu Matilainen 2010-10-22 08:58:06 +03:00
parent 5e007f2258
commit 534d0f77be
7 changed files with 3 additions and 54 deletions

View File

@ -88,7 +88,6 @@ rpm \- RPM パッケージマネージャ
.RB [ \-g , \-\-group " " "\fIGROUP" ]
.RB [ \-p , \-\-package " " "\fIPACKAGE_FILE" ]
.br
.RB [ \-\-fileid " " "\fIMD5" ]
.RB [ \-\-hdrid " " "\fISHA1" ]
.RB [ \-\-pkgid " " "\fIMD5" ]
.RB [ \-\-tid " " "\fITID" ]
@ -606,12 +605,6 @@ strftime(3)の "%a %b %d %Y" 書式を使う。
.I FILE
を所有するパッケージを検索する。
.TP
.BI "\-\-fileid " MD5
与えられたファイル識別子、
すなわち
.I MD5
ダイジェストを持つファイルを含むパッケージを検索する。
.TP
.BR \-g ", " \-\-group " \fIGROUP"
グループが
.I GROUP

View File

@ -46,7 +46,7 @@ rpm \- Menedżer pakietów RPM
[\fB\fINAZWA_PAKIETU\fB\fR] [\fB-a,--all\fR] [\fB-f,--file \fIPLIK\fB\fR]
[\fB-g,--group \fIGRUPA\fB\fR] {\fB-p,--package \fIPLIK_PAKIETU\fB\fR]
[\fB--fileid \fIMD5\fB\fR] [\fB--hdrid \fISHA1\fB\fR] [\fB--pkgid \fIMD5\fB\fR] [\fB--tid \fITID\fB\fR]
[\fB--hdrid \fISHA1\fB\fR] [\fB--pkgid \fIMD5\fB\fR] [\fB--tid \fITID\fB\fR]
[\fB--querybynumber \fINUMER_NAGŁÓWKA\fB\fR] [\fB--triggeredby \fINAZWA_PAKIETU\fB\fR]
[\fB--whatprovides \fIWŁASNOŚĆ\fB\fR] [\fB--whatrequires \fIWŁASNOŚĆ\fB\fR]
@ -452,10 +452,6 @@ Odpytuje wszystkie zainstalowane pakiety.
\fB-f\fR, \fB--file \fIPLIK\fB\fR
Odpytuje pakiet będący właścicielem \fIPLIKU\fR.
.TP
\fB--fileid \fIMD5\fB\fR
Odpytuje pakiet zawierający plik o podanym identyfikatorze, będącym
skrótem \fIMD5\fR zawartości pliku.
.TP
\fB-g\fR, \fB--group \fIGRUPA\fB\fR
Odpytuje pakiety o grupie \fIGRUPA\fR.
.TP

View File

@ -69,7 +69,7 @@ rpm \- RPM Package Manager
[\fB\fIPACKAGE_NAME\fB\fR] [\fB-a,--all\fR] [\fB-f,--file \fIFILE\fB\fR]
[\fB-g,--group \fIGROUP\fB\fR] {\fB-p,--package \fIPACKAGE_FILE\fB\fR]
[\fB--fileid \fIMD5\fB\fR] [\fB--hdrid \fISHA1\fB\fR] [\fB--pkgid \fIMD5\fB\fR] [\fB--tid \fITID\fB\fR]
[\fB--hdrid \fISHA1\fB\fR] [\fB--pkgid \fIMD5\fB\fR] [\fB--tid \fITID\fB\fR]
[\fB--querybynumber \fIHDRNUM\fB\fR] [\fB--triggeredby \fIPACKAGE_NAME\fB\fR]
[\fB--whatprovides \fICAPABILITY\fB\fR] [\fB--whatrequires \fICAPABILITY\fB\fR]
@ -526,10 +526,6 @@ Query all installed packages.
\fB-f, --file \fIFILE\fB\fR
Query package owning \fIFILE\fR.
.TP
\fB--fileid \fIMD5\fB\fR
Query package that contains a given file identifier, i.e. the
\fIMD5\fR digest of the file contents.
.TP
\fB-g, --group \fIGROUP\fB\fR
Query packages with the group of \fIGROUP\fR.
.TP

View File

@ -69,7 +69,7 @@ rpm \- Менеджер пакетов RPM
[\fB\fIPACKAGE_NAME\fB\fR] [\fB-a,--all\fR] [\fB-f,--file \fIFILE\fB\fR]
[\fB-g,--group \fIGROUP\fB\fR] {\fB-p,--package \fIPACKAGE_FILE\fB\fR]
[\fB--fileid \fIMD5\fB\fR] [\fB--hdrid \fISHA1\fB\fR] [\fB--pkgid \fIMD5\fB\fR] [\fB--tid \fITID\fB\fR]
[\fB--hdrid \fISHA1\fB\fR] [\fB--pkgid \fIMD5\fB\fR] [\fB--tid \fITID\fB\fR]
[\fB--querybynumber \fIHDRNUM\fB\fR] [\fB--triggeredby \fIPACKAGE_NAME\fB\fR]
[\fB--whatprovides \fICAPABILITY\fB\fR] [\fB--whatrequires \fICAPABILITY\fB\fR]
@ -487,10 +487,6 @@ rpm \- Менеджер пакетов RPM
\fB-f, --file \fIFILE\fB\fR
Выполняет запрос к пакету, владельцу файла \fIFILE\fR.
.TP
\fB--fileid \fIMD5\fB\fR
Выполняет запрос к пакету, который содержит указанный идентификатор файла,
т.е. \fIMD5\fR дайджест содержимого файла.
.TP
\fB-g, --group \fIGROUP\fB\fR
Выполняет запрос к пакету с группой \fIGROUP\fR.
.TP

View File

@ -20,7 +20,6 @@ struct rpmQVKArguments_s rpmQVKArgs;
#define POPT_DUMP -1005
#define POPT_QUERYBYPKGID -1007
#define POPT_QUERYBYHDRID -1008
#define POPT_QUERYBYFILEID -1009
#define POPT_QUERYBYTID -1010
/* ========== Query/Verify/Signature source args */
@ -53,8 +52,6 @@ static void rpmQVSourceArgCallback( poptContext con,
qva->qva_sourceCount++; break;
case POPT_QUERYBYHDRID: qva->qva_source |= RPMQV_HDRID;
qva->qva_sourceCount++; break;
case POPT_QUERYBYFILEID: qva->qva_source |= RPMQV_FILEID;
qva->qva_sourceCount++; break;
case POPT_QUERYBYTID: qva->qva_source |= RPMQV_TID;
qva->qva_sourceCount++; break;
@ -87,8 +84,6 @@ struct poptOption rpmQVSourcePoptTable[] = {
N_("query/verify package(s) with package identifier"), "MD5" },
{ "hdrid", '\0', 0, 0, POPT_QUERYBYHDRID,
N_("query/verify package(s) with header identifier"), "SHA1" },
{ "fileid", '\0', 0, 0, POPT_QUERYBYFILEID,
N_("query/verify package(s) with file identifier"), "MD5" },
{ "query", 'q', POPT_ARGFLAG_DOC_HIDDEN, NULL, 'q',
N_("rpm query mode"), NULL },

View File

@ -364,32 +364,6 @@ static rpmdbMatchIterator initQueryIterator(QVA_t qva, rpmts ts, const char * ar
}
break;
case RPMQV_FILEID:
{ unsigned char *digest, *t;
size_t diglen;
for (i = 0, s = arg; *s && isxdigit(*s); s++, i++)
{};
/* XXX dunno the algorithm yet, just check we're in the ballpark */
if (i % 32 != 0 || i < 32 || i > 512) {
rpmlog(RPMLOG_ERR, _("malformed %s: %s\n"), "fileid", arg);
goto exit;
}
diglen = i / 2;
digest = t = xcalloc(diglen, sizeof(*digest));
for (i = 0, s = arg; i < diglen; i++, t++, s += 2)
*t = (rnibble(s[0]) << 4) | rnibble(s[1]);
mi = rpmtsInitIterator(ts, RPMTAG_FILEDIGESTS, digest, diglen);
if (mi == NULL) {
rpmlog(RPMLOG_NOTICE, _("no package matches %s: %s\n"),
"fileid", arg);
}
free(digest);
} break;
case RPMQV_TID:
{ char * end = NULL;
rpm_tid_t iid = strtoul(arg, &end, 0);

View File

@ -89,7 +89,6 @@ enum rpmQVSources_e {
RPMQV_SPECFILE = RPMQV_SPECRPMS, /*!< ... backwards compatibility */
RPMQV_PKGID, /*!< ... from package id (header+payload MD5). */
RPMQV_HDRID, /*!< ... from header id (immutable header SHA1). */
RPMQV_FILEID, /*!< ... from file id (file MD5). */
RPMQV_TID, /*!< ... from install transaction id (time stamp). */
RPMQV_SPECSRPM, /*!< ... from spec file source (query only). */
};