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:
parent
5e007f2258
commit
534d0f77be
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 },
|
||||
|
|
26
lib/query.c
26
lib/query.c
|
@ -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);
|
||||
|
|
|
@ -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). */
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue