From 534d0f77be4de6d7f423c519d7b7ec4f41c8f32a Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Fri, 22 Oct 2010 08:58:06 +0300 Subject: [PATCH] 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. --- doc/ja/rpm.8 | 7 ------- doc/pl/rpm.8 | 6 +----- doc/rpm.8 | 6 +----- doc/ru/rpm.8 | 6 +----- lib/poptQV.c | 5 ----- lib/query.c | 26 -------------------------- lib/rpmcli.h | 1 - 7 files changed, 3 insertions(+), 54 deletions(-) diff --git a/doc/ja/rpm.8 b/doc/ja/rpm.8 index f8fdc8f..5b5f35e 100644 --- a/doc/ja/rpm.8 +++ b/doc/ja/rpm.8 @@ -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 diff --git a/doc/pl/rpm.8 b/doc/pl/rpm.8 index ee51ece..77b1d9b 100644 --- a/doc/pl/rpm.8 +++ b/doc/pl/rpm.8 @@ -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 diff --git a/doc/rpm.8 b/doc/rpm.8 index 7467124..499e892 100644 --- a/doc/rpm.8 +++ b/doc/rpm.8 @@ -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 diff --git a/doc/ru/rpm.8 b/doc/ru/rpm.8 index 20d95f1..8ed5262 100644 --- a/doc/ru/rpm.8 +++ b/doc/ru/rpm.8 @@ -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 diff --git a/lib/poptQV.c b/lib/poptQV.c index dbed453..6a66017 100644 --- a/lib/poptQV.c +++ b/lib/poptQV.c @@ -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 }, diff --git a/lib/query.c b/lib/query.c index d4d712d..07fe20c 100644 --- a/lib/query.c +++ b/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); diff --git a/lib/rpmcli.h b/lib/rpmcli.h index fed7a37..15a4c4c 100644 --- a/lib/rpmcli.h +++ b/lib/rpmcli.h @@ -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). */ }; -- 2.7.4