Remove rpmcache from repository
authorPanu Matilainen <pmatilai@redhat.com>
Fri, 4 Jul 2008 11:33:23 +0000 (14:33 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Fri, 4 Jul 2008 11:33:23 +0000 (14:33 +0300)
- next to nobody even knew about it, much less used it...
- hardly useful now that solvedb is gone

doc/Makefile.am
doc/ja/rpmcache.8 [deleted file]
doc/pl/rpmcache.8 [deleted file]
doc/rpmcache.8 [deleted file]
po/POTFILES.in
po/rpm.pot
tools/rpmcache.c [deleted file]

index e0b72f6..df98e23 100644 (file)
@@ -7,7 +7,7 @@ man_man1_DATA = gendiff.1
 EXTRA_DIST += $(man_man1_DATA)
 
 man_man8dir = $(mandir)/man8
-man_man8_DATA = rpm.8 rpmbuild.8 rpmcache.8 rpmdeps.8 rpmgraph.8 rpm2cpio.8
+man_man8_DATA = rpm.8 rpmbuild.8 rpmdeps.8 rpmgraph.8 rpm2cpio.8
 EXTRA_DIST += $(man_man8_DATA)
 
 man_fr_man8dir = $(mandir)/fr/man8
@@ -15,7 +15,7 @@ man_fr_man8_DATA = fr/rpm.8
 EXTRA_DIST += $(man_fr_man8_DATA)
 
 man_ja_man8dir = $(mandir)/ja/man8
-man_ja_man8_DATA = ja/rpm.8 ja/rpm2cpio.8 ja/rpmbuild.8 ja/rpmcache.8 ja/rpmgraph.8
+man_ja_man8_DATA = ja/rpm.8 ja/rpm2cpio.8 ja/rpmbuild.8 ja/rpmgraph.8
 EXTRA_DIST += $(man_ja_man8_DATA)
 
 man_ko_man8dir = $(mandir)/ko/man8
@@ -25,7 +25,7 @@ EXTRA_DIST += $(man_ko_man8_DATA)
 man_pl_man1dir = $(mandir)/pl/man1
 man_pl_man1_DATA = pl/gendiff.1
 man_pl_man8dir = $(mandir)/pl/man8
-man_pl_man8_DATA = pl/rpm.8 pl/rpm2cpio.8 pl/rpmbuild.8 pl/rpmcache.8 pl/rpmdeps.8 pl/rpmgraph.8
+man_pl_man8_DATA = pl/rpm.8 pl/rpm2cpio.8 pl/rpmbuild.8 pl/rpmdeps.8 pl/rpmgraph.8
 EXTRA_DIST += $(man_pl_man1_DATA) $(man_pl_man8_DATA)
 
 man_ru_man8dir = $(mandir)/ru/man8
diff --git a/doc/ja/rpmcache.8 b/doc/ja/rpmcache.8
deleted file mode 100644 (file)
index 1d590d8..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-.\" This manpage has been automatically generated by docbook2man 
-.\" from a DocBook document.  This tool can be found at:
-.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> 
-.\" Please send any bug reports, improvements, comments, patches, 
-.\" etc. to Steve Cheng <steve@ggi-project.org>.
-.\"
-.\" This program is free software; you can redistribute it and/or modify
-.\" it under the terms of the GNU General Public License as published by
-.\" the Free Software Foundation; either version 2, or (at your option)
-.\" any later version.
-.\"
-.\" This program is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public License
-.\" along with this program; if not, write to the Free Software
-.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 
-.\" USA.
-.\"
-.\" Japanese Version Copyright (C) 2003 System Design and Research
-.\" Institute Co.,Ltd. All rights reserved.
-.\"
-.\" Translated 14 March 2003 by
-.\"   System Design and Research Institute Co.,Ltd. <info@sdri.co.jp>
-.\"
-.\"WORD: RFE           改善要求    (Request For Enhancement)
-.\"
-.TH "RPMCACHE" "8" "05 July 2002" "Red Hat, Inc." "Red Hat Linux"
-.SH 名前
-rpmcache \- RPM パッケージのへッダ情報をキャッシュする
-.SH 書式
-\fBrpmcache\fR [ \fB\fIPACKAGE_NAME\fB\fR\fI ...\fR ]
-.SH 説明
-.B rpmcache
-はファイルツリーを歩きまわり(リモートの\fBFTP\fRかもしれない)、
-.BR glob (7)
-の式を使ってパスをフィルタリングし、rpm パッケージのへッダを読み込む。
-最新の(すなわち同じパッケージ名のものに対し、
-パッケージのエポック・バージョン・リリースを比較し、
-それが同じであればビルド日付を使って比較した)パッケージのへッダーが
-他のものと重複しなければ、rpm データベースにキャッシュされる。
-不明な依存性を解消するパッケージの場所を提案するために、rpm データベースの
-キャッシュを利用することができる。
-.PP
-.B rpmcache
-固有のオプションはなく、
-.B rpm
-関連のツールで共通のオプションだけである。
-現時点で何が実装されているかについては、
-.B rpmcache
-の使用方法のメッセージ(訳注: "rpmcache \-\-help")を参照のこと。
-.PP
-検索対象のファイルツリーの場所は rpm マクロを使って設定される。
-最終的な場所は、独立した 5 つの要素を結合したものである。
-.B rpmcache
-を設定するのに使用されるマクロ名を以下に示す。
-下記の表示順と同じ順番で各要素が結合されて、
-検索されるファイルツリーの場所が生成される。
-.TP
-\fB%_bhpath\fR
-"path"レベル。
-検索されるファイルツリーのパス(または URL)の先頭部分。
-.BR glob (7)
-の式はここでは使えない。
-.TP
-\fB%_bhcoll\fR
-"collection" レベル。
-\fB%_bhpath\fR のサブディレクトリーにマッチする文字列(または
-.BR glob (7)
-式)。
-.TP
-\fB%_bhN\fR
-"name" レベル。
-\fB%_bhcoll\fR のサブディレクトリーにマッチする文字列(または
-.BR glob (7)
-式)。
-Red Hat ビルドシステム内でのいずれかの特定のパッケージ名にマッチするよ
-うな
-.BR glob (7)
-式を構成するために
-.I PACKAGE_NAME
-引数が使用される。
-ほぼ確実に、Red Hat 以外の人間が使用することはないだろう。
-.TP
-\fB%_bhVR\fR
-"version-release" レベル。
-\fB%_bhN\fR のサブディレクトリーにマッチする文字列(または
-.BR glob (7)
-式)。
-.TP
-\fB%_bhA\fR
-"arch" レベル。
-\fB%_bhVR\fR のサブディレクトリーにマッチする文字列(または
-.BR glob (7)
-式)。
-.PP
-キャッシュデータベースの場所もまた、以下のマクロを使用して設定される。
-.TP
-\fB%_cache_dbpath\fR
-キャッシュデータベースの場所。デフォルトは
-.IR /var/spool/up2date/cache 。
-.PP
-キャッシュデータベースのフォーマットは rpm データベースのものと等しく、
-コマンドラインの
-.B rpm
-から利用することができる。
-例えば、パッケージのインストールに必要な依存性を満たすパッケージを
-提案するためにキャッシュデータベースを利用するには、以下の設定が
-.I /etc/rpm/macros
-または
-.I ~/.rpmmacros
-に必要である。
-.TP
-\fB%_solve_dbpath\fR
-依存性を解決する提案のために使用されるデータベースの場所。
-.SS Red Hat beehive ツリーのための(最低限の)設定例
-訳注: beehive は多分、Red Hat 内部の何らかの名前。
-.PP
-.nf
-%_cache_dbpath  /var/spool/up2date/cache
-%_solve_dbpath  %{_cache_dbpath}
-%_bhpath        file://localhost/mnt/redhat/beehive/comps/dist
-%_bhcoll        7.3
-%_bhN           @(basesystem|bash|filesystem|glibc-common|glibc|ldconfig|libtermcap|mktemp|setup|termcap)
-%_bhVR          *
-%_bhA           @(i[3456]86|noarch)
-.fi
-.SS Red Hat の FTP ツリーのための(最小)設定例
-.nf
-%_cache_dbpath  /var/spool/up2date/cache
-%_solve_dbpath  %{_cache_dbpath}
-%_bhpath        ftp://localhost/mnt/dist
-%_bhcoll        @(7.3|7.2|7.1|7.0|6.2|6.1|6.0|5.2|5.1|5.0)
-%_bhN           @(%{_arch})
-%_bhVR          *
-%_bhA           @(i[3456]86|noarch)
-.fi
-.SH バグ
-rpm-devel パッケージに対するバグ報告や改善要求は、bugzilla
-.UR http://bugzilla.redhat.com/
-http://bugzilla.redhat.com/
-.UE
-を使って欲しい。
-.SH 関連項目
-.BR rpm (8),
-.BR glob (7),
-.UR http://www.rpm.org/
-.B http://www.rpm.org/
-.UE
-.SH 著者
-Jeff Johnson <jbj@redhat.com>
diff --git a/doc/pl/rpmcache.8 b/doc/pl/rpmcache.8
deleted file mode 100644 (file)
index ebfb145..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-.\" Jakub Bogusz <qboosh@pld-linux.org>, 2003
-.\" rpm 4.3-20030610
-.TH "RPMCACHE" "8" "5 lipca 2002" "Red Hat, Inc." "Red Hat Linux"
-.SH NAZWA
-rpmcache \- Zapamiętywanie nagłówków pakietów RPM
-.SH SKŁADNIA
-.PP
-
-\fBrpmcache\fR [ \fB\fINAZWA_PAKIETU\fB\fR\fI ...\fR ]
-
-.SH "OPIS"
-.PP
-\fBrpmcache\fR chodzi po drzewie plików (być może także zdalnych
-przy użyciu \fBFTP\fR), filtrując ścieżki przy użyciu wyrażeń
-\fBglob\fR(7), czytając nagłówki pakietów rpm. Ostatnie (porównując
-pola epoch/version/release pakietów w przypadku identycznych nazw
-i używając czasu budowania w przypadkach nierozstrzygniętych)
-nagłówki pakietów, jeśli są unikalne, są zapamiętywane w bazie danych
-rpm-a. Zapamiętane w bazie nagłówki mogą być używane do udostępniania
-sugerowanych ścieżek do pakietów rozwiązujących nieznane zależności.
-.PP
-Nie ma opcji specyficznych dla \fBrpmcache\fR, tylko wspólne opcje
-\fBrpm\fR-a. Aktualnie zaimplementowane opcje można zobaczyć w komunikacie
-o składni komendy \fBrpmcache\fR.
-.PP
-Ścieżka drzewa plików do przeszukiwania jest konfigurowana przy użyciu
-makr rpm-a. Ostateczna ścieżka jest połączeniem 5 oddzielnych elementów.
-Oto nazwy makr używanych do skonfigurowania \fBrpmcache\fR w tej samej
-kolejności, w jakiej są łączone w celu stworzenia ścieżki drzewa plików
-do przeszukania:
-.PP
-.TP
-\fB%_bhpath\fR
-Poziom "path" (ścieżka) zawiera początkową część ścieżki drzewa plików
-(lub URL). Proszę tu nie używać wyrażeń \fBglob\fR(7).
-.TP
-\fB%_bhcoll\fR
-Poziom "collection" (kolekcja) zawiera łańcuch (lub wyrażenie
-\fBglob\fR(7)) określający podkatalogi \fB%_bhpath\fR.
-.TP
-\fB%_bhN\fR
-Poziom "name" (nazwa) zawiera łańcuch (lub wyrażenie \fBglob\fR(7))
-określający podkatalogi \fB%_bhcoll\fR.
-Argumenty \fINAZWA_PAKIETU\fR są używane do stworzenia wyrażenia
-\fBglob\fR(7), które będzie pasowało do określonych nazw pakietu
-w systemie budowania Red hata, i są raczej bezużytecznie poza Red
-Hatem.
-.TP
-\fB%_bhVR\fR
-Poziom "version-release" (wersja-wydanie) zawiera łańcuch (lub wyrażenie
-\fBglob\fR(7)) określający podkatalogi \fB%_bhN\fR.
-.TP
-\fB%_bhA\fR
-Poziom "arch" (architektura) zawiera łańcuch (lub wyrażenie
-\fBglob\fR(7)) określający podkatalogi \fB%_bhVR\fR.
-.PP
-Położenie bazy danych pamiętającej nagłówki jest konfigurowalne poprzez
-makro rpm-a:
-.TP
-\fB%_cache_dbpath\fR
-Położenie bazy danych pamiętającej nagłówki. Domyślna wartość to
-\fI/var/spool/up2date/cache\fR.
-.PP
-Baza danych nagłówków ma identyczny format do bazy danych rpm-a
-i może być używana z linii poleceń \fBrpm\fR-a. Na przykład aby
-użyć bazy danych nagłówków do udostępnienia sugestii dla pakietów
-dostarczających zależności potrzebne do zainstalowania pakietu,
-następujące makro musi być skonfigurowane w
-\fI/etc/rpm/macros\fR lub
-\fI~/.rpmmacros\fR:
-.TP
-\fB%_solve_dbpath\fR
-Położenie bazy danych używanej do udostępniania sugestii do
-rozwiązywania zależności.
-.PP
-.SS "Przykładowa (minimalna) konfiguracja dla drzewa beehive Red Hata:"
-.PP
-.nf
-%_cache_dbpath  /var/spool/up2date/cache
-%_solve_dbpath  %{_cache_dbpath}
-%_bhpath        file://localhost/mnt/redhat/beehive/comps/dist
-%_bhcoll        7.3
-%_bhN           @(basesystem|bash|filesystem|glibc-common|glibc|ldconfig|libtermcap|mktemp|setup|termcap)
-%_bhVR          *
-%_bhA           @(i[3456]86|noarch)
-.fi
-.SS "Przykładowa (minimalna) konfiguracja dla drzewa FTP Red Hata:"
-.PP
-.nf
-%_cache_dbpath  /var/spool/up2date/cache
-%_solve_dbpath  %{_cache_dbpath}
-%_bhpath        ftp://localhost/mnt/dist
-%_bhcoll        @(7.3|7.2|7.1|7.0|6.2|6.1|6.0|5.2|5.1|5.0)
-%_bhN           @(%{_arch})
-%_bhVR          *
-%_bhA           @(i[3456]86|noarch)
-.fi
-.SH "BŁĘDY"
-.PP
-Uhm. Proszę wypełniać raporty o błędach i życzeniach dla pakietu rpm-devel
-przy użyciu bugzilli (w języku angielskim):
-http://bugzilla.redhat.com/ <URL:http://bugzilla.redhat.com/>
-.SH "ZOBACZ TAKŻE"
-
-\fBrpm\fR(8),
-\fBglob\fR(7),
-
-\fB http://www.rpm.org/ <URL:http://www.rpm.org/>
-\fR
-.SH "AUTORZY"
-
-Jeff Johnson <jbj@redhat.com>
diff --git a/doc/rpmcache.8 b/doc/rpmcache.8
deleted file mode 100644 (file)
index eb6e5e2..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-.\" This manpage has been automatically generated by docbook2man 
-.\" from a DocBook document.  This tool can be found at:
-.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> 
-.\" Please send any bug reports, improvements, comments, patches, 
-.\" etc. to Steve Cheng <steve@ggi-project.org>.
-.TH "RPMCACHE" "8" "05 July 2002" "Red Hat, Inc." "Red Hat Linux"
-.SH NAME
-rpmcache \- Cache RPM Package Headers
-.SH SYNOPSIS
-.PP
-
-
-\fBrpmcache\fR [ \fB\fIPACKAGE_NAME\fB\fR\fI ...\fR ]
-
-.SH "DESCRIPTION"
-.PP
-\fBrpmcache\fR walks a file tree, possibly remotely using
-\fBFTP\fR, filtering paths using
-\fBglob\fR(7) expressions, reading
-rpm package headers. The latest (i.e. comparing
-package epoch/version/release for identical package
-names and using the build time as a tie breaker) package
-headers, if they are unique, are cached in an rpm database.
-The rpm database cache can be used to provide suggested
-paths to packages that resolve unknown dependencies.
-.PP
-There are no \fBrpmcache\fR specific options, only common \fBrpm\fR options.
-See the \fBrpmcache\fR usage message for what is currently implemented.
-.PP
-The file tree path to be searched is configured using rpm
-macros. The final path is the concatenation of 5 individual
-elements. Here are the macro names used to configure \fBrpmcache\fR, in
-the same order that they will be concatenated to build the
-file tree path that will be walked:
-.PP
-.TP
-\fB%_bhpath\fR
-The "path" level contains the leading part of the file tree path
-(or URL) for the file tree to be walked.
-No \fBglob\fR(7) expressions, here, please.
-.TP
-\fB%_bhcoll\fR
-The "collection" level contains a string (or
-\fBglob\fR(7) expression) to match sub-directories of
-\fB%_bhpath\fR.
-.TP
-\fB%_bhN\fR
-The "name" level contains a string (or
-\fBglob\fR(7) expression) to match sub-directories of
-\fB%_bhcoll\fR.
-The \fIPACKAGE_NAME\fR
-arguments are used to construct a \fBglob\fR(7)
-expression that will match any of specific package names within
-the Red Hat build system, and are almost certainly not of use to
-anyone outside of Red Hat.
-.TP
-\fB%_bhVR\fR
-The "version-release" level contains a string (or
-\fBglob\fR(7) expression) to match sub-directories of
-\fB%_bhN\fR.
-.TP
-\fB%_bhA\fR
-The "arch" level contains a string (or
-\fBglob\fR(7) expression) to match sub-directories of
-\fB%_bhVR\fR.
-.PP
-The location of the cache database is also configured using
-an rpm macro:
-.TP
-\fB%_cache_dbpath\fR
-The location of the cache database. The default value is
-\fI/var/spool/up2date/cache\fR.
-.PP
-The cache database is identical in format to an rpm database,
-and can be used with \fBrpm\fR from the command line. For example,
-to use the cache database to provide suggestions for packages
-that provide dependencies needed by a package install, the following
-macro should be configured in either
-\fI/etc/rpm/macros\fR or
-\fI~/.rpmmacros\fR:
-.TP
-\fB%_solve_dbpath\fR
-The location of the database that is used to provide
-suggested dependency resolutions.
-.PP
-.SS "Example (minimal) configuration for a Red Hat beehive tree:"
-.PP
-.nf
-%_cache_dbpath  /var/spool/up2date/cache
-%_solve_dbpath  %{_cache_dbpath}
-%_bhpath        file://localhost/mnt/redhat/beehive/comps/dist
-%_bhcoll        7.3
-%_bhN           @(basesystem|bash|filesystem|glibc-common|glibc|ldconfig|libtermcap|mktemp|setup|termcap)
-%_bhVR          *
-%_bhA           @(i[3456]86|noarch)
-.fi
-.SS "Example (minimal) configuration for a Red Hat FTP tree:"
-.PP
-.nf
-%_cache_dbpath  /var/spool/up2date/cache
-%_solve_dbpath  %{_cache_dbpath}
-%_bhpath        ftp://localhost/mnt/dist
-%_bhcoll        @(7.3|7.2|7.1|7.0|6.2|6.1|6.0|5.2|5.1|5.0)
-%_bhN           @(%{_arch})
-%_bhVR          *
-%_bhA           @(i[3456]86|noarch)
-.fi
-.SH "BUGS"
-.PP
-Yup. Please file bug reports and RFE's against the rpm-devel package
-using bugzilla:
-http://bugzilla.redhat.com/ <URL:http://bugzilla.redhat.com/>
-.SH "SEE ALSO"
-
-\fBrpm\fR(8),
-\fBglob\fR(7),
-
-\fB http://www.rpm.org/ <URL:http://www.rpm.org/>
-\fR
-.SH "AUTHORS"
-
-Jeff Johnson <jbj@redhat.com>
index 0776f70..1f9a2ff 100644 (file)
@@ -83,6 +83,5 @@ rpmio/rpmsq.c
 rpmio/rpmsw.c
 rpmio/ugid.c
 rpmio/url.c
-tools/rpmcache.c
 tools/rpmdeps.c
 tools/rpmgraph.c
index 138fe4d..5819fe5 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2008-05-12 18:24+0300\n"
+"POT-Creation-Date: 2008-07-04 14:31+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -75,7 +75,7 @@ msgstr ""
 msgid "error reading header from package\n"
 msgstr ""
 
-#: rpm2cpio.c:84
+#: rpm2cpio.c:88
 #, c-format
 msgid "cannot re-open payload: %s\n"
 msgstr ""
@@ -112,7 +112,7 @@ msgstr ""
 msgid "Install/Upgrade/Erase options:"
 msgstr ""
 
-#: rpmqv.c:118 tools/rpmcache.c:526 tools/rpmdeps.c:32 tools/rpmgraph.c:253
+#: rpmqv.c:118 tools/rpmdeps.c:32 tools/rpmgraph.c:249
 msgid "Common options for all rpm modes and executables:"
 msgstr ""
 
@@ -137,219 +137,219 @@ msgid ""
 "This program may be freely redistributed under the terms of the GNU GPL\n"
 msgstr ""
 
-#: rpmqv.c:280
+#: rpmqv.c:275
 #, c-format
 msgid "Internal error in argument processing (%d) :-(\n"
 msgstr ""
 
-#: rpmqv.c:318 rpmqv.c:324 rpmqv.c:330 rpmqv.c:367
+#: rpmqv.c:313 rpmqv.c:319 rpmqv.c:325 rpmqv.c:362
 msgid "only one major mode may be specified"
 msgstr ""
 
-#: rpmqv.c:346
+#: rpmqv.c:341
 msgid "one type of query/verify may be performed at a time"
 msgstr ""
 
-#: rpmqv.c:350
+#: rpmqv.c:345
 msgid "unexpected query flags"
 msgstr ""
 
-#: rpmqv.c:353
+#: rpmqv.c:348
 msgid "unexpected query format"
 msgstr ""
 
-#: rpmqv.c:356
+#: rpmqv.c:351
 msgid "unexpected query source"
 msgstr ""
 
-#: rpmqv.c:399
+#: rpmqv.c:394
 msgid "only installation, upgrading, rmsource and rmspec may be forced"
 msgstr ""
 
-#: rpmqv.c:401
+#: rpmqv.c:396
 msgid "files may only be relocated during package installation"
 msgstr ""
 
-#: rpmqv.c:404
+#: rpmqv.c:399
 msgid "cannot use --prefix with --relocate or --excludepath"
 msgstr ""
 
-#: rpmqv.c:407
+#: rpmqv.c:402
 msgid ""
 "--relocate and --excludepath may only be used when installing new packages"
 msgstr ""
 
-#: rpmqv.c:410
+#: rpmqv.c:405
 msgid "--prefix may only be used when installing new packages"
 msgstr ""
 
-#: rpmqv.c:413
+#: rpmqv.c:408
 msgid "arguments to --prefix must begin with a /"
 msgstr ""
 
-#: rpmqv.c:416
+#: rpmqv.c:411
 msgid "--hash (-h) may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:420
+#: rpmqv.c:415
 msgid "--percent may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:424
+#: rpmqv.c:419
 msgid "--replacepkgs may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:428
+#: rpmqv.c:423
 msgid "--excludedocs may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:432
+#: rpmqv.c:427
 msgid "--includedocs may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:436
+#: rpmqv.c:431
 msgid "only one of --excludedocs and --includedocs may be specified"
 msgstr ""
 
-#: rpmqv.c:440
+#: rpmqv.c:435
 msgid "--ignorearch may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:444
+#: rpmqv.c:439
 msgid "--ignoreos may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:449
+#: rpmqv.c:444
 msgid "--ignoresize may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:453
+#: rpmqv.c:448
 msgid "--allmatches may only be specified during package erasure"
 msgstr ""
 
-#: rpmqv.c:457
+#: rpmqv.c:452
 msgid "--allfiles may only be specified during package installation"
 msgstr ""
 
-#: rpmqv.c:462
+#: rpmqv.c:457
 msgid "--justdb may only be specified during package installation and erasure"
 msgstr ""
 
-#: rpmqv.c:467
+#: rpmqv.c:462
 msgid ""
 "script disabling options may only be specified during package installation "
 "and erasure"
 msgstr ""
 
-#: rpmqv.c:472
+#: rpmqv.c:467
 msgid ""
 "trigger disabling options may only be specified during package installation "
 "and erasure"
 msgstr ""
 
-#: rpmqv.c:476
+#: rpmqv.c:471
 msgid ""
 "--nodeps may only be specified during package building, rebuilding, "
 "recompilation, installation,erasure, and verification"
 msgstr ""
 
-#: rpmqv.c:481
+#: rpmqv.c:476
 msgid ""
 "--test may only be specified during package installation, erasure, and "
 "building"
 msgstr ""
 
-#: rpmqv.c:486
+#: rpmqv.c:481
 msgid ""
 "--root (-r) may only be specified during installation, erasure, querying, "
 "and database rebuilds"
 msgstr ""
 
-#: rpmqv.c:497
+#: rpmqv.c:492
 msgid "arguments to --root (-r) must begin with a /"
 msgstr ""
 
-#: rpmqv.c:523
+#: rpmqv.c:518
 #, c-format
 msgid "no files to sign\n"
 msgstr ""
 
-#: rpmqv.c:528
+#: rpmqv.c:523
 #, c-format
 msgid "cannot access file %s\n"
 msgstr ""
 
-#: rpmqv.c:548
+#: rpmqv.c:543
 #, c-format
 msgid "pgp not found: "
 msgstr ""
 
-#: rpmqv.c:556
+#: rpmqv.c:551
 msgid "Enter pass phrase: "
 msgstr ""
 
-#: rpmqv.c:558
+#: rpmqv.c:553
 #, c-format
 msgid "Pass phrase check failed\n"
 msgstr ""
 
-#: rpmqv.c:562
+#: rpmqv.c:557
 #, c-format
 msgid "Pass phrase is good.\n"
 msgstr ""
 
-#: rpmqv.c:567
+#: rpmqv.c:562
 #, c-format
 msgid "Invalid %%_signature spec in macro file.\n"
 msgstr ""
 
-#: rpmqv.c:574
+#: rpmqv.c:569
 msgid "--sign may only be used during package building"
 msgstr ""
 
-#: rpmqv.c:584
+#: rpmqv.c:579
 #, c-format
 msgid "creating a pipe for --pipe failed: %m\n"
 msgstr ""
 
-#: rpmqv.c:594
+#: rpmqv.c:589
 #, c-format
 msgid "exec failed\n"
 msgstr ""
 
-#: rpmqv.c:630
+#: rpmqv.c:625
 msgid "no packages files given for rebuild"
 msgstr ""
 
-#: rpmqv.c:696
+#: rpmqv.c:691
 msgid "no spec files given for build"
 msgstr ""
 
-#: rpmqv.c:698
+#: rpmqv.c:693
 msgid "no tar files given for build"
 msgstr ""
 
-#: rpmqv.c:719
+#: rpmqv.c:714
 msgid "no packages given for erase"
 msgstr ""
 
-#: rpmqv.c:753
+#: rpmqv.c:748
 msgid "no packages given for install"
 msgstr ""
 
-#: rpmqv.c:766
+#: rpmqv.c:761
 msgid "no arguments given for query"
 msgstr ""
 
-#: rpmqv.c:781
+#: rpmqv.c:776
 msgid "no arguments given for verify"
 msgstr ""
 
-#: rpmqv.c:796
+#: rpmqv.c:791
 msgid "no arguments given"
 msgstr ""
 
-#: build/build.c:131 build/pack.c:423
+#: build/build.c:131 build/pack.c:426
 msgid "Unable to open temp file.\n"
 msgstr ""
 
@@ -387,44 +387,44 @@ msgstr ""
 msgid "syntax error while parsing ||\n"
 msgstr ""
 
-#: build/expression.c:299
+#: build/expression.c:301
 msgid "parse error in expression\n"
 msgstr ""
 
-#: build/expression.c:331
+#: build/expression.c:333
 msgid "unmatched (\n"
 msgstr ""
 
-#: build/expression.c:363
+#: build/expression.c:365
 msgid "- only on numbers\n"
 msgstr ""
 
-#: build/expression.c:379
+#: build/expression.c:381
 msgid "! only on numbers\n"
 msgstr ""
 
-#: build/expression.c:421 build/expression.c:469 build/expression.c:527
-#: build/expression.c:619
+#: build/expression.c:423 build/expression.c:471 build/expression.c:529
+#: build/expression.c:621
 msgid "types must match\n"
 msgstr ""
 
-#: build/expression.c:434
+#: build/expression.c:436
 msgid "* / not suported for strings\n"
 msgstr ""
 
-#: build/expression.c:485
+#: build/expression.c:487
 msgid "- not suported for strings\n"
 msgstr ""
 
-#: build/expression.c:632
+#: build/expression.c:634
 msgid "&& and || not suported for strings\n"
 msgstr ""
 
-#: build/expression.c:665 build/expression.c:712
+#: build/expression.c:667 build/expression.c:714
 msgid "syntax error in expression\n"
 msgstr ""
 
-#: build/files.c:241
+#: build/files.c:238
 #, c-format
 msgid "TIMECHECK failure: %s\n"
 msgstr ""
@@ -499,94 +499,104 @@ msgstr ""
 msgid "Can't mix special %%doc with other forms: %s\n"
 msgstr ""
 
-#: build/files.c:1001
+#: build/files.c:989
+#, c-format
+msgid "Unknown file digest algorithm %u, falling back to MD5\n"
+msgstr ""
+
+#: build/files.c:1017
 #, c-format
 msgid "File listed twice: %s\n"
 msgstr ""
 
-#: build/files.c:1136
+#: build/files.c:1129
 #, c-format
 msgid "Symlink points to BuildRoot: %s -> %s\n"
 msgstr ""
 
-#: build/files.c:1336
+#: build/files.c:1334
 #, c-format
 msgid "File doesn't match prefix (%s): %s\n"
 msgstr ""
 
-#: build/files.c:1360
+#: build/files.c:1358
 #, c-format
 msgid "File not found: %s\n"
 msgstr ""
 
-#: build/files.c:1559
+#: build/files.c:1429
+#, c-format
+msgid "File %s too large for payload\n"
+msgstr ""
+
+#: build/files.c:1568
 #, c-format
 msgid "%s: can't load unknown tag (%d).\n"
 msgstr ""
 
-#: build/files.c:1566
+#: build/files.c:1575
 #, c-format
 msgid "%s: public key read failed.\n"
 msgstr ""
 
-#: build/files.c:1571 lib/rpmchecksig.c:441
+#: build/files.c:1580 lib/rpmchecksig.c:437
 #, c-format
 msgid "%s: not an armored public key.\n"
 msgstr ""
 
-#: build/files.c:1580
+#: build/files.c:1589
 #, c-format
 msgid "%s: *.te policy read failed.\n"
 msgstr ""
 
-#: build/files.c:1624
+#: build/files.c:1632
 #, c-format
 msgid "File needs leading \"/\": %s\n"
 msgstr ""
 
-#: build/files.c:1646
+#: build/files.c:1654
 #, c-format
 msgid "Glob not permitted: %s\n"
 msgstr ""
 
-#: build/files.c:1658 lib/rpminstall.c:266
+#: build/files.c:1666 lib/rpminstall.c:266
 #, c-format
 msgid "File not found by glob: %s\n"
 msgstr ""
 
-#: build/files.c:1709
+#: build/files.c:1716
 #, c-format
 msgid "Could not open %%files file %s: %m\n"
 msgstr ""
 
-#: build/files.c:1717
+#: build/files.c:1724
 #, c-format
 msgid "line: %s\n"
 msgstr ""
 
-#: build/files.c:2090
+#: build/files.c:2086
 #, c-format
 msgid "Bad file: %s: %s\n"
 msgstr ""
 
-#: build/files.c:2114 build/parsePrep.c:44
+#: build/files.c:2110 build/parsePrep.c:44
 #, c-format
 msgid "Bad owner/group: %s\n"
 msgstr ""
 
-#: build/files.c:2155
+#: build/files.c:2151
 #, c-format
 msgid "Checking for unpackaged file(s): %s\n"
 msgstr ""
 
-#: build/files.c:2170
+#: build/files.c:2166
 #, c-format
 msgid ""
 "Installed (but unpackaged) file(s) found:\n"
 "%s"
 msgstr ""
 
-#: build/files.c:2195
+#: build/files.c:2191
 #, c-format
 msgid "Processing files: %s-%s-%s\n"
 msgstr ""
@@ -645,128 +655,128 @@ msgstr ""
 msgid "%s: line: %s\n"
 msgstr ""
 
-#: build/pack.c:189 build/pack.c:203
+#: build/pack.c:191 build/pack.c:205
 #, c-format
 msgid "Could not open PreIn file: %s\n"
 msgstr ""
 
-#: build/pack.c:196
+#: build/pack.c:198
 #, c-format
 msgid "Could not open PreUn file: %s\n"
 msgstr ""
 
-#: build/pack.c:210
+#: build/pack.c:212
 #, c-format
 msgid "Could not open PostIn file: %s\n"
 msgstr ""
 
-#: build/pack.c:217 build/pack.c:224
+#: build/pack.c:219 build/pack.c:226
 #, c-format
 msgid "Could not open PostUn file: %s\n"
 msgstr ""
 
-#: build/pack.c:232
+#: build/pack.c:234
 #, c-format
 msgid "Could not open VerifyScript file: %s\n"
 msgstr ""
 
-#: build/pack.c:247
+#: build/pack.c:248
 #, c-format
 msgid "Could not open Trigger script file: %s\n"
 msgstr ""
 
-#: build/pack.c:275
+#: build/pack.c:274
 #, c-format
 msgid "readRPM: open %s: %s\n"
 msgstr ""
 
-#: build/pack.c:284
+#: build/pack.c:283
 #, c-format
 msgid "%s: Fseek failed: %s\n"
 msgstr ""
 
-#: build/pack.c:315
+#: build/pack.c:314
 #, c-format
 msgid "readRPM: %s is not an RPM package\n"
 msgstr ""
 
-#: build/pack.c:320
+#: build/pack.c:319
 #, c-format
 msgid "readRPM: reading header from %s\n"
 msgstr ""
 
-#: build/pack.c:386
+#: build/pack.c:390
 #, c-format
 msgid "Unknown payload compression: %s\n"
 msgstr ""
 
-#: build/pack.c:410
+#: build/pack.c:413
 msgid "Unable to create immutable header region.\n"
 msgstr ""
 
-#: build/pack.c:430
+#: build/pack.c:433
 msgid "Unable to write temp header\n"
 msgstr ""
 
-#: build/pack.c:440
+#: build/pack.c:443
 msgid "Bad CSA data\n"
 msgstr ""
 
-#: build/pack.c:459
+#: build/pack.c:478
 #, c-format
 msgid "Generating signature: %d\n"
 msgstr ""
 
-#: build/pack.c:477
+#: build/pack.c:512
 msgid "Unable to reload signature header.\n"
 msgstr ""
 
-#: build/pack.c:485
+#: build/pack.c:520
 #, c-format
 msgid "Could not open %s: %s\n"
 msgstr ""
 
-#: build/pack.c:497
+#: build/pack.c:532
 #, c-format
 msgid "Unable to write package: %s\n"
 msgstr ""
 
-#: build/pack.c:513
+#: build/pack.c:548
 #, c-format
 msgid "Unable to open sigtarget %s: %s\n"
 msgstr ""
 
-#: build/pack.c:524
+#: build/pack.c:559
 #, c-format
 msgid "Unable to read header from %s: %s\n"
 msgstr ""
 
-#: build/pack.c:538
+#: build/pack.c:573
 #, c-format
 msgid "Unable to write header to %s: %s\n"
 msgstr ""
 
-#: build/pack.c:550
+#: build/pack.c:585
 #, c-format
 msgid "Unable to read payload from %s: %s\n"
 msgstr ""
 
-#: build/pack.c:557
+#: build/pack.c:592
 #, c-format
 msgid "Unable to write payload to %s: %s\n"
 msgstr ""
 
-#: build/pack.c:595
+#: build/pack.c:629
 #, c-format
 msgid "Wrote: %s\n"
 msgstr ""
 
-#: build/pack.c:700
+#: build/pack.c:728
 #, c-format
 msgid "Could not generate output filename for package %s: %s\n"
 msgstr ""
 
-#: build/pack.c:716
+#: build/pack.c:744
 #, c-format
 msgid "cannot create %s: %s\n"
 msgstr ""
@@ -776,32 +786,32 @@ msgstr ""
 msgid "line %d: second %s\n"
 msgstr ""
 
-#: build/parseChangelog.c:126
+#: build/parseChangelog.c:123
 #, c-format
 msgid "%%changelog entries must start with *\n"
 msgstr ""
 
-#: build/parseChangelog.c:134
+#: build/parseChangelog.c:131
 #, c-format
 msgid "incomplete %%changelog entry\n"
 msgstr ""
 
-#: build/parseChangelog.c:149
+#: build/parseChangelog.c:146
 #, c-format
 msgid "bad date in %%changelog: %s\n"
 msgstr ""
 
-#: build/parseChangelog.c:154
+#: build/parseChangelog.c:151
 #, c-format
 msgid "%%changelog not in descending chronological order\n"
 msgstr ""
 
-#: build/parseChangelog.c:162 build/parseChangelog.c:173
+#: build/parseChangelog.c:159 build/parseChangelog.c:170
 #, c-format
 msgid "missing name in %%changelog\n"
 msgstr ""
 
-#: build/parseChangelog.c:180
+#: build/parseChangelog.c:177
 #, c-format
 msgid "no description in %%changelog\n"
 msgstr ""
@@ -841,32 +851,32 @@ msgstr ""
 msgid "line %d: Second %%files list\n"
 msgstr ""
 
-#: build/parsePreamble.c:223
+#: build/parsePreamble.c:220
 #, c-format
 msgid "Architecture is excluded: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:228
+#: build/parsePreamble.c:225
 #, c-format
 msgid "Architecture is not included: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:233
+#: build/parsePreamble.c:230
 #, c-format
 msgid "OS is excluded: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:238
+#: build/parsePreamble.c:235
 #, c-format
 msgid "OS is not included: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:265
+#: build/parsePreamble.c:262
 #, c-format
 msgid "%s field must be present in package: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:292
+#: build/parsePreamble.c:289
 #, c-format
 msgid "Duplicate %s entries in package: %s\n"
 msgstr ""
@@ -891,82 +901,82 @@ msgstr ""
 msgid "Unknown icon type: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:441
+#: build/parsePreamble.c:442
 #, c-format
 msgid "line %d: Tag takes single token only: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:471
+#: build/parsePreamble.c:466
 #, c-format
 msgid "line %d: Malformed tag: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:479
+#: build/parsePreamble.c:474
 #, c-format
 msgid "line %d: Empty tag: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:502 build/parsePreamble.c:509
+#: build/parsePreamble.c:497 build/parsePreamble.c:504
 #, c-format
 msgid "line %d: Illegal char '-' in %s: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:562
+#: build/parsePreamble.c:557
 #, c-format
 msgid "BuildRoot can not be \"/\": %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:575
+#: build/parsePreamble.c:572
 #, c-format
 msgid "line %d: Prefixes must not end with \"/\": %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:587
+#: build/parsePreamble.c:585
 #, c-format
 msgid "line %d: Docdir must begin with '/': %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:600
+#: build/parsePreamble.c:598
 #, c-format
-msgid "line %d: Epoch field must be a number: %s\n"
+msgid "line %d: Epoch field must be an unsigned number: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:641 build/parsePreamble.c:652
+#: build/parsePreamble.c:638 build/parsePreamble.c:649
 #, c-format
 msgid "line %d: Bad %s: qualifiers: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:678
+#: build/parsePreamble.c:675
 #, c-format
 msgid "line %d: Bad BuildArchitecture format: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:687
+#: build/parsePreamble.c:684
 #, c-format
 msgid "Internal error: Bogus tag %d\n"
 msgstr ""
 
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:776
 #, c-format
 msgid "Legacy syntax is unsupported: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:838
 #, c-format
 msgid "Bad package specification: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:847
+#: build/parsePreamble.c:844
 #, c-format
 msgid "Package already exists: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:879
+#: build/parsePreamble.c:876
 #, c-format
 msgid "line %d: Unknown tag: %s\n"
 msgstr ""
 
-#: build/parsePreamble.c:904
+#: build/parsePreamble.c:901
 msgid "Spec file can't use BuildRoot\n"
 msgstr ""
 
@@ -977,12 +987,12 @@ msgstr ""
 
 #: build/parsePrep.c:80
 #, c-format
-msgid "No patch number %d\n"
+msgid "No patch number %u\n"
 msgstr ""
 
 #: build/parsePrep.c:148
 #, c-format
-msgid "No source number %d\n"
+msgid "No source number %u\n"
 msgstr ""
 
 #: build/parsePrep.c:169
@@ -1300,7 +1310,7 @@ msgstr ""
 msgid "Couldn't exec %s: %s\n"
 msgstr ""
 
-#: build/rpmfc.c:138 lib/psm.c:826
+#: build/rpmfc.c:138 lib/psm.c:811
 #, c-format
 msgid "Couldn't fork %s: %s\n"
 msgstr ""
@@ -1340,27 +1350,27 @@ msgstr ""
 msgid "Failed to find %s:\n"
 msgstr ""
 
-#: build/spec.c:228
+#: build/spec.c:229
 #, c-format
 msgid "line %d: Bad number: %s\n"
 msgstr ""
 
-#: build/spec.c:234
+#: build/spec.c:235
 #, c-format
-msgid "line %d: Bad no%s number: %d\n"
+msgid "line %d: Bad no%s number: %u\n"
 msgstr ""
 
-#: build/spec.c:294
+#: build/spec.c:295
 #, c-format
 msgid "line %d: Bad %s number: %s\n"
 msgstr ""
 
-#: build/spec.c:612
+#: build/spec.c:613
 #, c-format
 msgid "can't query %s: %s\n"
 msgstr ""
 
-#: build/spec.c:679
+#: build/spec.c:680
 #, c-format
 msgid "query of specfile %s failed, can't parse\n"
 msgstr ""
@@ -1432,60 +1442,56 @@ msgstr ""
 msgid "(db provides)"
 msgstr ""
 
-#: lib/depends.c:778
+#: lib/depends.c:769
 #, c-format
 msgid "ignore package name relation(s) [%d]\t%s -> %s\n"
 msgstr ""
 
-#: lib/depends.c:881
+#: lib/depends.c:872
 #, c-format
 msgid "removing %s \"%s\" from tsort relations.\n"
 msgstr ""
 
-#: lib/depends.c:1358
+#: lib/depends.c:1348
 msgid "LOOP:\n"
 msgstr ""
 
-#: lib/depends.c:1396
+#: lib/depends.c:1386
 #, c-format
 msgid "rpmtsOrder failed, %d elements remain\n"
 msgstr ""
 
-#: lib/formats.c:34 lib/formats.c:59 lib/formats.c:78 lib/formats.c:192
-#: lib/formats.c:222 lib/formats.c:251 lib/formats.c:599
+#: lib/formats.c:96 lib/formats.c:116 lib/formats.c:136 lib/formats.c:230
+#: lib/formats.c:256 lib/formats.c:279 lib/formats.c:568
 msgid "(not a number)"
 msgstr ""
 
-#: lib/formats.c:112
+#: lib/formats.c:165
 #, c-format
 msgid "%c"
 msgstr ""
 
-#: lib/formats.c:128
+#: lib/formats.c:176
 msgid "%a %b %d %Y"
 msgstr ""
 
-#: lib/formats.c:311
+#: lib/formats.c:335
 msgid "(not base64)"
 msgstr ""
 
-#: lib/formats.c:322
+#: lib/formats.c:347
 msgid "(invalid type)"
 msgstr ""
 
-#: lib/formats.c:350 lib/formats.c:490
+#: lib/formats.c:371 lib/formats.c:463
 msgid "(not a blob)"
 msgstr ""
 
-#: lib/formats.c:406
-msgid "(encoding failed)"
-msgstr ""
-
-#: lib/formats.c:423
+#: lib/formats.c:416
 msgid "(invalid xml type)"
 msgstr ""
 
-#: lib/formats.c:513
+#: lib/formats.c:486
 msgid "(not an OpenPGP signature)"
 msgstr ""
 
@@ -1514,42 +1520,42 @@ msgstr ""
 msgid "file %s is on an unknown device\n"
 msgstr ""
 
-#: lib/fsm.c:688
+#: lib/fsm.c:715
 #, c-format
 msgid "user %s does not exist - using root\n"
 msgstr ""
 
-#: lib/fsm.c:696
+#: lib/fsm.c:723
 #, c-format
 msgid "group %s does not exist - using root\n"
 msgstr ""
 
-#: lib/fsm.c:1485
+#: lib/fsm.c:1519
 #, c-format
 msgid "archive file %s was not found in header file list\n"
 msgstr ""
 
-#: lib/fsm.c:1607 lib/fsm.c:1735
+#: lib/fsm.c:1641 lib/fsm.c:1769
 #, c-format
 msgid "%s saved as %s\n"
 msgstr ""
 
-#: lib/fsm.c:1762
+#: lib/fsm.c:1796
 #, c-format
 msgid "%s rmdir of %s failed: Directory not empty\n"
 msgstr ""
 
-#: lib/fsm.c:1768
+#: lib/fsm.c:1802
 #, c-format
 msgid "%s rmdir of %s failed: %s\n"
 msgstr ""
 
-#: lib/fsm.c:1782
+#: lib/fsm.c:1816
 #, c-format
 msgid "%s unlink of %s failed: %s\n"
 msgstr ""
 
-#: lib/fsm.c:1804
+#: lib/fsm.c:1838
 #, c-format
 msgid "%s created as %s\n"
 msgstr ""
@@ -1564,107 +1570,107 @@ msgstr ""
 msgid "cannot write to %%%s %s\n"
 msgstr ""
 
-#: lib/package.c:259
+#: lib/package.c:239
 #, c-format
 msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)\n"
 msgstr ""
 
-#: lib/package.c:270 lib/package.c:325 lib/package.c:394 lib/signature.c:198
+#: lib/package.c:250 lib/package.c:305 lib/package.c:373 lib/signature.c:212
 #, c-format
 msgid "tag[%d]: BAD, tag %d type %d offset %d count %d\n"
 msgstr ""
 
-#: lib/package.c:288 lib/signature.c:212
+#: lib/package.c:268 lib/signature.c:226
 #, c-format
 msgid "region offset: BAD, tag %d type %d offset %d count %d\n"
 msgstr ""
 
-#: lib/package.c:306 lib/signature.c:236
+#: lib/package.c:286 lib/signature.c:250
 #, c-format
 msgid "region trailer: BAD, tag %d type %d offset %d count %d\n"
 msgstr ""
 
-#: lib/package.c:316 lib/signature.c:246
+#: lib/package.c:296 lib/signature.c:260
 #, c-format
 msgid "region size: BAD, ril(%d) > il(%d)\n"
 msgstr ""
 
-#: lib/package.c:343
+#: lib/package.c:323
 msgid "hdr SHA1: BAD, not hex\n"
 msgstr ""
 
-#: lib/package.c:355
+#: lib/package.c:335
 msgid "hdr RSA: BAD, not binary\n"
 msgstr ""
 
-#: lib/package.c:365
+#: lib/package.c:345
 msgid "hdr DSA: BAD, not binary\n"
 msgstr ""
 
-#: lib/package.c:425 lib/package.c:466
+#: lib/package.c:406 lib/package.c:447
 #, c-format
 msgid "skipping header with unverifiable V%u signature\n"
 msgstr ""
 
-#: lib/package.c:544
+#: lib/package.c:521
 #, c-format
 msgid "hdr size(%d): BAD, read returned %d\n"
 msgstr ""
 
-#: lib/package.c:548
+#: lib/package.c:525
 msgid "hdr magic: BAD\n"
 msgstr ""
 
-#: lib/package.c:553
+#: lib/package.c:530
 #, c-format
 msgid "hdr tags: BAD, no. of tags(%d) out of range\n"
 msgstr ""
 
-#: lib/package.c:559
+#: lib/package.c:536
 #, c-format
 msgid "hdr data: BAD, no. of bytes(%d) out of range\n"
 msgstr ""
 
-#: lib/package.c:569
+#: lib/package.c:546
 #, c-format
 msgid "hdr blob(%zd): BAD, read returned %d\n"
 msgstr ""
 
-#: lib/package.c:581
+#: lib/package.c:558
 msgid "hdr load: BAD\n"
 msgstr ""
 
-#: lib/package.c:641 lib/rpmchecksig.c:185 lib/rpmchecksig.c:602
+#: lib/package.c:618 lib/rpmchecksig.c:181 lib/rpmchecksig.c:593
 #, c-format
 msgid "%s: rpmReadSignature failed: %s"
 msgstr ""
 
-#: lib/package.c:648 lib/rpmchecksig.c:192 lib/rpmchecksig.c:610
+#: lib/package.c:625 lib/rpmchecksig.c:188 lib/rpmchecksig.c:601
 #, c-format
 msgid "%s: No signature available\n"
 msgstr ""
 
-#: lib/package.c:713
+#: lib/package.c:690
 #, c-format
 msgid "%s: headerRead failed: %s"
 msgstr ""
 
-#: lib/package.c:748 lib/package.c:774 lib/package.c:805 lib/rpmchecksig.c:699
+#: lib/package.c:722 lib/package.c:746 lib/package.c:775 lib/rpmchecksig.c:686
 #, c-format
 msgid "skipping package %s with unverifiable V%u signature\n"
 msgstr ""
 
-#: lib/package.c:819 lib/rpmchecksig.c:89 lib/rpmchecksig.c:514
+#: lib/package.c:789 lib/rpmchecksig.c:89 lib/rpmchecksig.c:506
 #, c-format
 msgid "%s: Fread failed: %s\n"
 msgstr ""
 
-#: lib/package.c:908
+#: lib/package.c:883
 #, c-format
 msgid "%s is a Delta RPM and cannot be directly installed\n"
 msgstr ""
 
-#: lib/package.c:912
+#: lib/package.c:887
 #, c-format
 msgid "Unsupported payload (%s) in package %s\n"
 msgstr ""
@@ -2171,7 +2177,7 @@ msgstr ""
 msgid "don't verify files in package"
 msgstr ""
 
-#: lib/poptQV.c:308 tools/rpmgraph.c:249
+#: lib/poptQV.c:308 tools/rpmgraph.c:245
 msgid "don't verify package dependencies"
 msgstr ""
 
@@ -2211,150 +2217,150 @@ msgstr ""
 msgid "generate signature"
 msgstr ""
 
-#: lib/psm.c:273
+#: lib/psm.c:265
 msgid "source package expected, binary found\n"
 msgstr ""
 
-#: lib/psm.c:384
+#: lib/psm.c:375
 msgid "source package contains no .spec file\n"
 msgstr ""
 
-#: lib/psm.c:836
+#: lib/psm.c:821
 #, c-format
 msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
 msgstr ""
 
-#: lib/psm.c:843
+#: lib/psm.c:828
 #, c-format
 msgid "%s scriptlet failed, signal %d\n"
 msgstr ""
 
-#: lib/psm.c:848
+#: lib/psm.c:833
 #, c-format
 msgid "%s scriptlet failed, exit status %d\n"
 msgstr ""
 
-#: lib/psm.c:1399
+#: lib/psm.c:1374
 #, c-format
 msgid "%s: %s scriptlet failed (%d), skipping %s\n"
 msgstr ""
 
-#: lib/psm.c:1481
+#: lib/psm.c:1456
 #, c-format
 msgid "unpacking of archive failed%s%s: %s\n"
 msgstr ""
 
-#: lib/psm.c:1482
+#: lib/psm.c:1457
 msgid " on file "
 msgstr ""
 
-#: lib/psm.c:1613
+#: lib/psm.c:1585
 #, c-format
 msgid "%s failed on file %s: %s\n"
 msgstr ""
 
-#: lib/psm.c:1616
+#: lib/psm.c:1588
 #, c-format
 msgid "%s failed: %s\n"
 msgstr ""
 
-#: lib/query.c:117 lib/rpmts.c:626
+#: lib/query.c:118
 #, c-format
 msgid "incorrect format: %s\n"
 msgstr ""
 
-#: lib/query.c:126
+#: lib/query.c:127
 msgid "(contains no files)\n"
 msgstr ""
 
-#: lib/query.c:173
+#: lib/query.c:174
 msgid "normal        "
 msgstr ""
 
-#: lib/query.c:176
+#: lib/query.c:177
 msgid "replaced      "
 msgstr ""
 
-#: lib/query.c:179
+#: lib/query.c:180
 msgid "not installed "
 msgstr ""
 
-#: lib/query.c:182
+#: lib/query.c:183
 msgid "net shared    "
 msgstr ""
 
-#: lib/query.c:185
+#: lib/query.c:186
 msgid "wrong color   "
 msgstr ""
 
-#: lib/query.c:188
+#: lib/query.c:189
 msgid "(no state)    "
 msgstr ""
 
-#: lib/query.c:191
+#: lib/query.c:192
 #, c-format
 msgid "(unknown %3d) "
 msgstr ""
 
-#: lib/query.c:211
+#: lib/query.c:212
 msgid "package has not file owner/group lists\n"
 msgstr ""
 
-#: lib/query.c:241
+#: lib/query.c:242
 msgid "package has neither file owner or id lists\n"
 msgstr ""
 
-#: lib/query.c:368
+#: lib/query.c:357
 #, c-format
 msgid "group %s does not contain any packages\n"
 msgstr ""
 
-#: lib/query.c:377
+#: lib/query.c:366
 #, c-format
 msgid "no package triggers %s\n"
 msgstr ""
 
-#: lib/query.c:390 lib/query.c:411 lib/query.c:431 lib/query.c:465
+#: lib/query.c:379 lib/query.c:400 lib/query.c:421 lib/query.c:458
 #, c-format
 msgid "malformed %s: %s\n"
 msgstr ""
 
-#: lib/query.c:400 lib/query.c:417 lib/query.c:441 lib/query.c:470
+#: lib/query.c:389 lib/query.c:406 lib/query.c:432 lib/query.c:463
 #, c-format
 msgid "no package matches %s: %s\n"
 msgstr ""
 
-#: lib/query.c:480
+#: lib/query.c:473
 #, c-format
 msgid "no package requires %s\n"
 msgstr ""
 
-#: lib/query.c:491
+#: lib/query.c:484
 #, c-format
 msgid "no package provides %s\n"
 msgstr ""
 
-#: lib/query.c:523
+#: lib/query.c:516
 #, c-format
 msgid "file %s: %s\n"
 msgstr ""
 
-#: lib/query.c:526
+#: lib/query.c:519
 #, c-format
 msgid "file %s is not owned by any package\n"
 msgstr ""
 
-#: lib/query.c:551
+#: lib/query.c:544
 #, c-format
 msgid "invalid package number: %s\n"
 msgstr ""
 
-#: lib/query.c:559
+#: lib/query.c:552
 #, c-format
 msgid "record %lu could not be read\n"
 msgstr ""
 
-#: lib/query.c:575 lib/rpminstall.c:654
+#: lib/query.c:568 lib/rpminstall.c:647
 #, c-format
 msgid "package %s is not installed\n"
 msgstr ""
@@ -2367,7 +2373,7 @@ msgstr ""
 msgid "(added provide)"
 msgstr ""
 
-#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:832
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:819
 #, c-format
 msgid "%s: open failed: %s\n"
 msgstr ""
@@ -2382,131 +2388,134 @@ msgstr ""
 msgid "%s: Fflush failed: %s\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:202 lib/rpmchecksig.c:339
+#: lib/rpmchecksig.c:198 lib/rpmchecksig.c:335
 msgid "rpmMkTemp failed\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:319
+#: lib/rpmchecksig.c:315
 #, c-format
 msgid "%s: was already signed by key ID %s, skipping\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:347
+#: lib/rpmchecksig.c:343
 #, c-format
 msgid "%s: writeLead failed: %s\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:353
+#: lib/rpmchecksig.c:349
 #, c-format
 msgid "%s: rpmWriteSignature failed: %s\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:436
+#: lib/rpmchecksig.c:432
 #, c-format
 msgid "%s: import read failed(%d).\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:448
+#: lib/rpmchecksig.c:444
 #, c-format
 msgid "%s: import failed.\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:479
+#: lib/rpmchecksig.c:475
 #, c-format
 msgid "%s: headerRead failed\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:495
+#: lib/rpmchecksig.c:487
 #, c-format
 msgid "%s: Immutable header region could not be read. Corrupted package?\n"
 msgstr ""
 
-#: lib/rpmchecksig.c:782
+#: lib/rpmchecksig.c:769
 msgid "NOT OK"
 msgstr ""
 
-#: lib/rpmchecksig.c:782
+#: lib/rpmchecksig.c:769
 msgid "OK"
 msgstr ""
 
-#: lib/rpmchecksig.c:784
+#: lib/rpmchecksig.c:771
 msgid " (MISSING KEYS:"
 msgstr ""
 
-#: lib/rpmchecksig.c:786
+#: lib/rpmchecksig.c:773
 msgid ") "
 msgstr ""
 
-#: lib/rpmchecksig.c:787
+#: lib/rpmchecksig.c:774
 msgid " (UNTRUSTED KEYS:"
 msgstr ""
 
-#: lib/rpmchecksig.c:789
+#: lib/rpmchecksig.c:776
 msgid ")"
 msgstr ""
 
-#: lib/rpmds.c:496
+#: lib/rpmds.c:490
 msgid "NO "
 msgstr ""
 
-#: lib/rpmds.c:496
+#: lib/rpmds.c:490
 msgid "YES"
 msgstr ""
 
-#: lib/rpmds.c:848
+#: lib/rpmds.c:839
 #, c-format
 msgid ""
 "The \"B\" dependency needs an epoch (assuming same epoch as \"A\")\n"
 "\tA = \"%s\"\tB = \"%s\"\n"
 msgstr ""
 
-#: lib/rpmds.c:1005
+#: lib/rpmds.c:996
 msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
 msgstr ""
 
-#: lib/rpmds.c:1008
+#: lib/rpmds.c:999
 msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
 msgstr ""
 
-#: lib/rpmds.c:1012
+#: lib/rpmds.c:1003
 msgid "package payload can be compressed using bzip2."
 msgstr ""
 
-#: lib/rpmds.c:1016
+#: lib/rpmds.c:1007
 msgid "package payload can be compressed using lzma."
 msgstr ""
 
-#: lib/rpmds.c:1019
+#: lib/rpmds.c:1010
 msgid "package payload file(s) have \"./\" prefix."
 msgstr ""
 
-#: lib/rpmds.c:1022
+#: lib/rpmds.c:1013
 msgid "package name-version-release is not implicitly provided."
 msgstr ""
 
-#: lib/rpmds.c:1025
+#: lib/rpmds.c:1016
 msgid "header tags are always sorted after being loaded."
 msgstr ""
 
-#: lib/rpmds.c:1028
+#: lib/rpmds.c:1019
 msgid "the scriptlet interpreter can use arguments from header."
 msgstr ""
 
-#: lib/rpmds.c:1031
+#: lib/rpmds.c:1022
 msgid "a hardlink file set may be installed without being complete."
 msgstr ""
 
-#: lib/rpmds.c:1034
+#: lib/rpmds.c:1025
 msgid "package scriptlets may access the rpm database while installing."
 msgstr ""
 
-#: lib/rpmds.c:1038
+#: lib/rpmds.c:1029
 msgid "internal support for lua scripts."
 msgstr ""
 
+#: lib/rpmds.c:1033
+msgid "file checksum digest algorithm is per package configurable"
+msgstr ""
+
 #: lib/rpmgi.c:95 lib/rpminstall.c:96 lib/rpminstall.c:353
-#: lib/rpminstall.c:485 lib/rpmts.c:637 tools/rpmgraph.c:119
-#: tools/rpmgraph.c:156
+#: lib/rpminstall.c:482 tools/rpmgraph.c:119 tools/rpmgraph.c:156
 #, c-format
 msgid "open of %s failed: %s\n"
 msgstr ""
@@ -2516,7 +2525,7 @@ msgstr ""
 msgid "unknown tag: \"%s\"\n"
 msgstr ""
 
-#: lib/rpmgi.c:627 lib/rpminstall.c:528 lib/rpminstall.c:688
+#: lib/rpmgi.c:627 lib/rpminstall.c:525 lib/rpminstall.c:681
 #: tools/rpmgraph.c:194
 msgid "Failed dependencies:\n"
 msgstr ""
@@ -2539,47 +2548,47 @@ msgstr ""
 msgid "skipping %s - transfer failed - %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:372 lib/rpminstall.c:749 tools/rpmgraph.c:139
+#: lib/rpminstall.c:372 lib/rpminstall.c:742 tools/rpmgraph.c:139
 #, c-format
 msgid "%s cannot be installed\n"
 msgstr ""
 
-#: lib/rpminstall.c:414
+#: lib/rpminstall.c:411
 #, c-format
 msgid "package %s is not relocatable\n"
 msgstr ""
 
-#: lib/rpminstall.c:461
+#: lib/rpminstall.c:458
 #, c-format
 msgid "error reading from file %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:467
+#: lib/rpminstall.c:464
 #, c-format
 msgid "file %s requires a newer version of RPM\n"
 msgstr ""
 
-#: lib/rpminstall.c:499
+#: lib/rpminstall.c:496
 #, c-format
 msgid "%s: not an rpm package (or package manifest): %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:576
+#: lib/rpminstall.c:569
 #, c-format
 msgid "cannot open file %s: %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:663
+#: lib/rpminstall.c:656
 #, c-format
 msgid "\"%s\" specifies multiple packages\n"
 msgstr ""
 
-#: lib/rpminstall.c:733
+#: lib/rpminstall.c:726
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr ""
 
-#: lib/rpminstall.c:739
+#: lib/rpminstall.c:732
 #, c-format
 msgid "Installing %s\n"
 msgstr ""
@@ -2657,7 +2666,7 @@ msgstr ""
 
 #: lib/rpmps.c:332
 #, c-format
-msgid "installing package %s needs %ld inodes on the %s filesystem"
+msgid "installing package %s needs %llu inodes on the %s filesystem"
 msgstr ""
 
 #: lib/rpmps.c:336
@@ -2714,302 +2723,294 @@ msgstr ""
 msgid "Too many args in default line at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:541
+#: lib/rpmrc.c:542
 #, c-format
 msgid "missing ':' (found 0x%02x) at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:558 lib/rpmrc.c:598
+#: lib/rpmrc.c:559 lib/rpmrc.c:599
 #, c-format
 msgid "missing argument for %s at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:574
+#: lib/rpmrc.c:575
 #, c-format
 msgid "cannot open %s at %s:%d: %m\n"
 msgstr ""
 
-#: lib/rpmrc.c:590
+#: lib/rpmrc.c:591
 #, c-format
 msgid "missing architecture for %s at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:657
+#: lib/rpmrc.c:658
 #, c-format
 msgid "bad option '%s' at %s:%d\n"
 msgstr ""
 
-#: lib/rpmrc.c:1417
+#: lib/rpmrc.c:1418
 #, c-format
 msgid "Unknown system: %s\n"
 msgstr ""
 
-#: lib/rpmrc.c:1418
+#: lib/rpmrc.c:1419
 #, c-format
 msgid "Please contact %s\n"
 msgstr ""
 
-#: lib/rpmrc.c:1635
+#: lib/rpmrc.c:1636
 #, c-format
 msgid "Unable to open %s for reading: %m.\n"
 msgstr ""
 
-#: lib/rpmts.c:99
+#: lib/rpmts.c:104
 #, c-format
 msgid "cannot open Packages database in %s\n"
 msgstr ""
 
-#: lib/rpmts.c:209
+#: lib/rpmts.c:217
 #, c-format
 msgid "extra '(' in package label: %s\n"
 msgstr ""
 
-#: lib/rpmts.c:227
+#: lib/rpmts.c:235
 #, c-format
 msgid "missing '(' in package label: %s\n"
 msgstr ""
 
-#: lib/rpmts.c:235
+#: lib/rpmts.c:243
 #, c-format
 msgid "missing ')' in package label: %s\n"
 msgstr ""
 
-#: lib/rpmts.c:524
+#: lib/rpmts.c:314
 #, c-format
-msgid "cannot open Solve database in %s\n"
-msgstr ""
-
-#: lib/rpmts.c:735
-msgid "    Suggested resolutions:\n"
+msgid "%s: reading of public key failed.\n"
 msgstr ""
 
-#: lib/signature.c:159
+#: lib/signature.c:173
 #, c-format
 msgid "sigh size(%d): BAD, read returned %d\n"
 msgstr ""
 
-#: lib/signature.c:164
+#: lib/signature.c:178
 msgid "sigh magic: BAD\n"
 msgstr ""
 
-#: lib/signature.c:170
+#: lib/signature.c:184
 #, c-format
 msgid "sigh tags: BAD, no. of tags(%d) out of range\n"
 msgstr ""
 
-#: lib/signature.c:176
+#: lib/signature.c:190
 #, c-format
 msgid "sigh data: BAD, no. of  bytes(%d) out of range\n"
 msgstr ""
 
-#: lib/signature.c:191
+#: lib/signature.c:205
 #, c-format
 msgid "sigh blob(%d): BAD, read returned %d\n"
 msgstr ""
 
-#: lib/signature.c:257
+#: lib/signature.c:271
 #, c-format
 msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d\n"
 msgstr ""
 
-#: lib/signature.c:267
+#: lib/signature.c:281
 msgid "sigh load: BAD\n"
 msgstr ""
 
-#: lib/signature.c:280
+#: lib/signature.c:295
 #, c-format
 msgid "sigh pad(%zd): BAD, read %zd bytes\n"
 msgstr ""
 
-#: lib/signature.c:289
+#: lib/signature.c:311
 #, c-format
 msgid "sigh sigSize(%zd): BAD, fstat(2) failed\n"
 msgstr ""
 
-#: lib/signature.c:373 lib/signature.c:510
+#: lib/signature.c:394 lib/signature.c:531
 #, c-format
 msgid "Couldn't create pipe for signing: %m"
 msgstr ""
 
-#: lib/signature.c:412 lib/signature.c:530 lib/signature.c:855
-#: lib/signature.c:888
+#: lib/signature.c:433 lib/signature.c:551 lib/signature.c:889
+#: lib/signature.c:922
 #, c-format
 msgid "Could not exec %s: %s\n"
 msgstr ""
 
-#: lib/signature.c:429
+#: lib/signature.c:450
 msgid "pgp failed\n"
 msgstr ""
 
-#: lib/signature.c:436
+#: lib/signature.c:457
 msgid "pgp failed to write signature\n"
 msgstr ""
 
-#: lib/signature.c:455 lib/signature.c:571
+#: lib/signature.c:476 lib/signature.c:592
 msgid "unable to read the signature\n"
 msgstr ""
 
-#: lib/signature.c:547
+#: lib/signature.c:568
 #, c-format
 msgid "gpg exec failed (%d)\n"
 msgstr ""
 
-#: lib/signature.c:553
+#: lib/signature.c:574
 msgid "gpg failed to write signature\n"
 msgstr ""
 
-#: lib/signature.c:673
+#: lib/signature.c:695
 msgid "Immutable header region could not be read. Corrupted package?\n"
 msgstr ""
 
-#: lib/signature.c:893 lib/signature.c:942
+#: lib/signature.c:927 lib/signature.c:976
 #, c-format
 msgid "Invalid %%_signature spec in macro file\n"
 msgstr ""
 
-#: lib/signature.c:924
+#: lib/signature.c:958
 #, c-format
 msgid "You must set \"%%_gpg_name\" in your macro file\n"
 msgstr ""
 
-#: lib/signature.c:936
+#: lib/signature.c:970
 #, c-format
 msgid "You must set \"%%_pgp_name\" in your macro file\n"
 msgstr ""
 
-#: lib/signature.c:977
+#: lib/signature.c:1009
 msgid "Header+Payload size:"
 msgstr ""
 
-#: lib/signature.c:1014
+#: lib/signature.c:1042
 msgid "MD5 digest:"
 msgstr ""
 
-#: lib/signature.c:1067
+#: lib/signature.c:1085
 msgid "Header SHA1 digest:"
 msgstr ""
 
-#: lib/signature.c:1119
+#: lib/signature.c:1130
 msgid "Unknown"
 msgstr ""
 
-#: lib/signature.c:1125 lib/signature.c:1269
+#: lib/signature.c:1137 lib/signature.c:1271
 msgid "Header "
 msgstr ""
 
-#: lib/signature.c:1232
+#: lib/signature.c:1239
 #, c-format
 msgid "%sV%d %s signature: %s, key ID %s\n"
 msgstr ""
 
-#: lib/signature.c:1236
+#: lib/signature.c:1243
 #, c-format
 msgid "%sV%d %s signature: %s\n"
 msgstr ""
 
-#: lib/signature.c:1332
+#: lib/signature.c:1329
 #, c-format
 msgid "%sV%d DSA signature: %s, key ID %s\n"
 msgstr ""
 
-#: lib/signature.c:1336
+#: lib/signature.c:1333
 #, c-format
 msgid "%sV%d DSA signature: %s\n"
 msgstr ""
 
-#: lib/signature.c:1354
+#: lib/signature.c:1347
 msgid "Verify signature: BAD PARAMETERS\n"
 msgstr ""
 
-#: lib/signature.c:1385
+#: lib/signature.c:1378
 msgid "Broken MD5 digest: UNSUPPORTED\n"
 msgstr ""
 
-#: lib/signature.c:1389
+#: lib/signature.c:1382
 #, c-format
 msgid "Signature: UNKNOWN (%d)\n"
 msgstr ""
 
-#: lib/transaction.c:1191 lib/verify.c:413
+#: lib/transaction.c:1187 lib/verify.c:419
 #, c-format
 msgid "Unable to change root directory: %m\n"
 msgstr ""
 
-#: lib/verify.c:251
+#: lib/verify.c:257
 #, c-format
 msgid "missing   %c %s"
 msgstr ""
 
-#: lib/verify.c:343
+#: lib/verify.c:349
 #, c-format
 msgid "Unsatisfied dependencies for %s:\n"
 msgstr ""
 
-#: lib/headerfmt.c:375
+#: lib/headerfmt.c:348
 msgid "missing { after %"
 msgstr ""
 
-#: lib/headerfmt.c:405
+#: lib/headerfmt.c:371
 msgid "missing } after %{"
 msgstr ""
 
-#: lib/headerfmt.c:417
+#: lib/headerfmt.c:383
 msgid "empty tag format"
 msgstr ""
 
-#: lib/headerfmt.c:427
+#: lib/headerfmt.c:395
 msgid "empty tag name"
 msgstr ""
 
-#: lib/headerfmt.c:436
+#: lib/headerfmt.c:404
 msgid "unknown tag"
 msgstr ""
 
-#: lib/headerfmt.c:459
+#: lib/headerfmt.c:427
 msgid "] expected at end of array"
 msgstr ""
 
-#: lib/headerfmt.c:472
+#: lib/headerfmt.c:440
 msgid "unexpected ]"
 msgstr ""
 
-#: lib/headerfmt.c:483
+#: lib/headerfmt.c:451
 msgid "unexpected }"
 msgstr ""
 
-#: lib/headerfmt.c:537
+#: lib/headerfmt.c:505
 msgid "? expected in expression"
 msgstr ""
 
-#: lib/headerfmt.c:544
+#: lib/headerfmt.c:512
 msgid "{ expected after ? in expression"
 msgstr ""
 
-#: lib/headerfmt.c:556 lib/headerfmt.c:596
+#: lib/headerfmt.c:524 lib/headerfmt.c:564
 msgid "} expected in expression"
 msgstr ""
 
-#: lib/headerfmt.c:564
+#: lib/headerfmt.c:532
 msgid ": expected following ? subexpression"
 msgstr ""
 
-#: lib/headerfmt.c:582
+#: lib/headerfmt.c:550
 msgid "{ expected after : in expression"
 msgstr ""
 
-#: lib/headerfmt.c:604
+#: lib/headerfmt.c:572
 msgid "| expected at end of expression"
 msgstr ""
 
-#: lib/headerfmt.c:695
-msgid "(index out of range)"
-msgstr ""
-
-#: lib/headerfmt.c:904
+#: lib/headerfmt.c:750
 msgid "array iterator used with different sized arrays"
 msgstr ""
 
-#: lib/header_internal.c:162
+#: lib/header_internal.c:163
 #, c-format
 msgid "Data type %d not supported\n"
 msgstr ""
@@ -3046,12 +3047,12 @@ msgstr ""
 msgid "cannot open %s index\n"
 msgstr ""
 
-#: lib/rpmdb.c:880
+#: lib/rpmdb.c:878
 msgid "no dbpath has been set\n"
 msgstr ""
 
-#: lib/rpmdb.c:1111 lib/rpmdb.c:1236 lib/rpmdb.c:1286 lib/rpmdb.c:2199
-#: lib/rpmdb.c:2320 lib/rpmdb.c:3009
+#: lib/rpmdb.c:1106 lib/rpmdb.c:1236 lib/rpmdb.c:1286 lib/rpmdb.c:2145
+#: lib/rpmdb.c:2266 lib/rpmdb.c:2863
 #, c-format
 msgid "error(%d) getting \"%s\" records from %s index\n"
 msgstr ""
@@ -3075,92 +3076,92 @@ msgstr ""
 msgid "%s: regcomp failed: %s\n"
 msgstr ""
 
-#: lib/rpmdb.c:2096
+#: lib/rpmdb.c:2042
 msgid "rpmdbNextIterator: skipping"
 msgstr ""
 
-#: lib/rpmdb.c:2125
+#: lib/rpmdb.c:2071
 #, c-format
 msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
 msgstr ""
 
-#: lib/rpmdb.c:2422
+#: lib/rpmdb.c:2469
 #, c-format
 msgid "%s: cannot read header at 0x%x\n"
 msgstr ""
 
-#: lib/rpmdb.c:2473
+#: lib/rpmdb.c:2515
 #, c-format
 msgid "error(%d) setting header #%d record for %s removal\n"
 msgstr ""
 
-#: lib/rpmdb.c:2608
+#: lib/rpmdb.c:2564
 #, c-format
 msgid "error(%d) setting \"%s\" records from %s index\n"
 msgstr ""
 
-#: lib/rpmdb.c:2627
+#: lib/rpmdb.c:2583
 #, c-format
 msgid "error(%d) storing record \"%s\" into %s\n"
 msgstr ""
 
-#: lib/rpmdb.c:2637
+#: lib/rpmdb.c:2593
 #, c-format
 msgid "error(%d) removing record \"%s\" from %s\n"
 msgstr ""
 
-#: lib/rpmdb.c:2778
+#: lib/rpmdb.c:2721
 #, c-format
 msgid "error(%d) allocating new package instance\n"
 msgstr ""
 
-#: lib/rpmdb.c:2831
+#: lib/rpmdb.c:2769
 msgid "rpmdbAdd: skipping"
 msgstr ""
 
-#: lib/rpmdb.c:3025
+#: lib/rpmdb.c:2879
 #, c-format
 msgid "error(%d) storing record %s into %s\n"
 msgstr ""
 
-#: lib/rpmdb.c:3364
+#: lib/rpmdb.c:3221
 msgid "no dbpath has been set"
 msgstr ""
 
-#: lib/rpmdb.c:3389
+#: lib/rpmdb.c:3246
 #, c-format
 msgid "temporary database %s already exists\n"
 msgstr ""
 
-#: lib/rpmdb.c:3397
+#: lib/rpmdb.c:3254
 #, c-format
 msgid "failed to create directory %s: %s\n"
 msgstr ""
 
-#: lib/rpmdb.c:3444
+#: lib/rpmdb.c:3301
 #, c-format
 msgid "header #%u in the database is bad -- skipping.\n"
 msgstr ""
 
-#: lib/rpmdb.c:3482
+#: lib/rpmdb.c:3339
 #, c-format
 msgid "cannot add record originally at %u\n"
 msgstr ""
 
-#: lib/rpmdb.c:3496
+#: lib/rpmdb.c:3353
 msgid "failed to rebuild database: original database remains in place\n"
 msgstr ""
 
-#: lib/rpmdb.c:3504
+#: lib/rpmdb.c:3361
 msgid "failed to replace old database with new database!\n"
 msgstr ""
 
-#: lib/rpmdb.c:3506
+#: lib/rpmdb.c:3363
 #, c-format
 msgid "replace files in %s with files from %s to recover"
 msgstr ""
 
-#: lib/rpmdb.c:3518
+#: lib/rpmdb.c:3375
 #, c-format
 msgid "failed to remove directory %s: %s\n"
 msgstr ""
@@ -3208,22 +3209,22 @@ msgstr ""
 msgid "%s has too large or too small integer value, skipped\n"
 msgstr ""
 
-#: lib/backend/sqlite.c:589
+#: lib/backend/sqlite.c:607
 #, c-format
 msgid "Unable to get lock on db %s, retrying... (%d)\n"
 msgstr ""
 
-#: lib/backend/sqlite.c:682
+#: lib/backend/sqlite.c:700
 #, c-format
 msgid "Unable to initDB %s (%d)\n"
 msgstr ""
 
-#: lib/backend/sqlite.c:849
+#: lib/backend/sqlite.c:867
 #, c-format
 msgid "Unable to open database: %s\n"
 msgstr ""
 
-#: lib/backend/sqlite.c:1214
+#: lib/backend/sqlite.c:1232
 msgid "Unable to determine DB endianess.\n"
 msgstr ""
 
@@ -3335,55 +3336,55 @@ msgstr ""
 msgid "lua hook failed: %s\n"
 msgstr ""
 
-#: rpmio/rpmio.c:520
+#: rpmio/rpmio.c:511
 msgid "Success"
 msgstr ""
 
-#: rpmio/rpmio.c:543
+#: rpmio/rpmio.c:534
 msgid "Bad server response"
 msgstr ""
 
-#: rpmio/rpmio.c:545
+#: rpmio/rpmio.c:536
 msgid "Server I/O error"
 msgstr ""
 
-#: rpmio/rpmio.c:547
+#: rpmio/rpmio.c:538
 msgid "Server timeout"
 msgstr ""
 
-#: rpmio/rpmio.c:549
+#: rpmio/rpmio.c:540
 msgid "Unable to lookup server host address"
 msgstr ""
 
-#: rpmio/rpmio.c:551
+#: rpmio/rpmio.c:542
 msgid "Unable to lookup server host name"
 msgstr ""
 
-#: rpmio/rpmio.c:553
+#: rpmio/rpmio.c:544
 msgid "Failed to connect to server"
 msgstr ""
 
-#: rpmio/rpmio.c:555
+#: rpmio/rpmio.c:546
 msgid "Failed to establish data connection to server"
 msgstr ""
 
-#: rpmio/rpmio.c:557
+#: rpmio/rpmio.c:548
 msgid "I/O error to local file"
 msgstr ""
 
-#: rpmio/rpmio.c:559
+#: rpmio/rpmio.c:550
 msgid "Error setting remote server to passive mode"
 msgstr ""
 
-#: rpmio/rpmio.c:561
+#: rpmio/rpmio.c:552
 msgid "File not found on server"
 msgstr ""
 
-#: rpmio/rpmio.c:563
+#: rpmio/rpmio.c:554
 msgid "Abort in progress"
 msgstr ""
 
-#: rpmio/rpmio.c:567
+#: rpmio/rpmio.c:558
 msgid "Unknown or unexpected error"
 msgstr ""
 
@@ -3412,29 +3413,11 @@ msgstr ""
 msgid "url port must be a number\n"
 msgstr ""
 
-#: tools/rpmcache.c:516 tools/rpmgraph.c:251
-msgid "don't verify header+payload signature"
-msgstr ""
-
-#: tools/rpmcache.c:519
-msgid "don't update cache database, only print package paths"
-msgstr ""
-
-#: tools/rpmcache.c:522
-msgid "File tree walk options:"
-msgstr ""
-
-#: tools/rpmcache.c:558
-#, c-format
-msgid "%s: %%{_cache_dbpath} macro is mis-configured.\n"
-msgstr ""
-
-#: tools/rpmcache.c:598
-#, c-format
-msgid "%s: cache operation failed: ec %d.\n"
-msgstr ""
-
 #: tools/rpmgraph.c:169
 #, c-format
 msgid "%s: read manifest failed: %s\n"
 msgstr ""
+
+#: tools/rpmgraph.c:247
+msgid "don't verify header+payload signature"
+msgstr ""
diff --git a/tools/rpmcache.c b/tools/rpmcache.c
deleted file mode 100644 (file)
index 47399ae..0000000
+++ /dev/null
@@ -1,608 +0,0 @@
-/**
- * \file tools/rpmcache.c
- */
-
-#include "system.h"
-const char *__progname;
-
-#include <fnmatch.h>
-
-#include <rpm/rpmtypes.h>
-#include <rpm/rpmlib.h>        /* RPM_MACHTABLE, rpmReadPackageFile */
-#include <rpm/rpmcli.h>
-#include <rpm/rpmlog.h>
-
-#include <rpm/rpmps.h>
-#include <rpm/rpmdb.h>
-#include <rpm/rpmds.h>
-#include <rpm/rpmts.h>
-
-#include "rpmio/fts.h"
-#include "lib/misc.h"  /* for rpmMkdirPath */
-
-#include "debug.h"
-
-static int _debug = 0;
-
-/* XXX should be flag in ts */
-static int noCache = 0;
-
-static char ** ftsSet;
-
-const char * bhpath;
-int bhpathlen = 0;
-int bhlvl = -1;
-
-struct ftsglob_s {
-    const char ** patterns;
-    int fnflags;
-};
-
-static struct ftsglob_s * bhglobs;
-static int nbhglobs = 5;
-
-static int indent = 2;
-
-typedef struct Item_s {
-    char * path;
-    rpm_loff_t size;
-    rpm_time_t mtime;
-    rpmds this;
-    Header h;
-} * Item;
-
-static Item * items = NULL;
-static int nitems = 0;
-
-static inline Item freeItem(Item item) {
-    if (item != NULL) {
-       item->path = _free(item->path);
-       item->this = rpmdsFree(item->this);
-       item->h = headerFree(item->h);
-       item = _free(item);
-    }
-    return NULL;
-}
-
-static inline Item newItem(void) {
-    Item item = xcalloc(1, sizeof(*item));
-    return item;
-}
-
-static int cmpItem(const void * a, const void * b) {
-    Item aitem = *(Item *)a;
-    Item bitem = *(Item *)b;
-    int rc = strcmp(rpmdsN(aitem->this), rpmdsN(bitem->this));
-    return rc;
-}
-
-static void freeItems(void) {
-    int i;
-    for (i = 0; i < nitems; i++)
-       items[i] = freeItem(items[i]);
-    items = _free(items);
-    nitems = 0;
-}
-
-static int ftsCachePrint(rpmts ts, FILE * fp)
-{
-    int rc = 0;
-    int i;
-
-    if (fp == NULL) fp = stdout;
-    for (i = 0; i < nitems; i++) {
-       Item ip;
-
-       ip = items[i];
-       if (ip == NULL) {
-           rc = 1;
-           break;
-       }
-
-       fprintf(fp, "%s\n", ip->path);
-    }
-    return rc;
-}
-
-static int ftsCacheUpdate(rpmts ts)
-{
-    rpm_tid_t tid = rpmtsGetTid(ts);
-    rpmdbMatchIterator mi;
-    int rc = 0;
-    int i;
-
-    rc = rpmtsCloseDB(ts);
-    rc = rpmDefineMacro(NULL, "_dbpath %{_cache_dbpath}", RMIL_CMDLINE);
-    rc = rpmtsOpenDB(ts, O_RDWR);
-    if (rc != 0)
-       return rc;
-
-    for (i = 0; i < nitems; i++) {
-       Item ip;
-       struct rpmtd_s md5;
-       const char *path;
-
-       ip = items[i];
-       if (ip == NULL) {
-           rc = 1;
-           break;
-       }
-
-       /* --- Check that identical package is not already cached. */
-       if (!headerGet(ip->h, RPMTAG_SIGMD5, &md5, HEADERGET_MINMEM)) {
-           rc = 1;
-           break;
-       }
-        mi = rpmtsInitIterator(ts, RPMTAG_SIGMD5, md5.data, md5.count);
-       rc = rpmdbGetIteratorCount(mi);
-        mi = rpmdbFreeIterator(mi);
-       rpmtdFreeData(&md5);
-
-       if (rc) {
-           rc = 0;
-           continue;
-       }
-
-       /* --- Add cache tags to new cache header. */
-       if (!(headerPutUint32(ip->h, RPMTAG_CACHECTIME, &tid, 1)))
-           break;
-       if (!(headerPutStringArray(ip->h, RPMTAG_CACHEPKGPATH, &path, 1)))
-           break;
-       if (!(headerPutUint32(ip->h, RPMTAG_CACHEPKGSIZE, &ip->size, 1)))
-           break;
-       if (!(headerPutUint32(ip->h, RPMTAG_CACHEPKGMTIME, &ip->mtime, 1)))
-           break;
-
-       /* --- Add new cache header to database. */
-       rc = rpmdbAdd(rpmtsGetRdb(ts), tid, ip->h, NULL, NULL);
-       if (rc) break;
-
-    }
-    return rc;
-}
-
-/**
- */
-static int archOkay(const char * pkgArch)
-{
-    if (pkgArch == NULL) return 0;
-    return (rpmMachineScore(RPM_MACHTABLE_INSTARCH, pkgArch) ? 1 : 0);
-}
-
-/**
- */
-static int osOkay(const char * pkgOs)
-{
-    if (pkgOs == NULL) return 0;
-    return (rpmMachineScore(RPM_MACHTABLE_INSTOS, pkgOs) ? 1 : 0);
-}
-
-static int ftsStashLatest(FTSENT * fts, rpmts ts)
-{
-    Header h = NULL;
-    rpmds add = NULL;
-    const char *arch, *os;
-    struct rpmtd_s archtd, ostd;
-    struct stat sb, * st;
-    int ec = -1;       /* assume not found */
-    int i = 0;
-
-    rpmlog(RPMLOG_DEBUG, "============== %s\n", fts->fts_accpath);
-
-    /* Read header from file. */
-    {   FD_t fd = Fopen(fts->fts_accpath, "r");
-       rpmRC rpmrc;
-       int xx;
-
-       if (fd == NULL || Ferror(fd)) {
-           if (fd) xx = Fclose(fd);
-           goto exit;
-       }
-
-       rpmrc = rpmReadPackageFile(ts, fd, fts->fts_path, &h);
-       xx = Fclose(fd);
-       if (rpmrc != RPMRC_OK || h == NULL)
-           goto exit;
-    }
-
-    headerGet(h, RPMTAG_ARCH, &archtd, HEADERGET_DEFAULT);
-    headerGet(h, RPMTAG_OS, &ostd, HEADERGET_DEFAULT);
-    arch = rpmtdGetString(&archtd);
-    os = rpmtdGetString(&ostd);
-
-    /* Make sure arch and os match this platform. */
-    if (arch == NULL || os == NULL || !archOkay(arch) || !osOkay(os)) {
-       ec = 0;
-       goto exit;
-    }
-    rpmtdFreeData(&archtd);
-    rpmtdFreeData(&ostd);
-
-    add = rpmdsThis(h, RPMTAG_REQUIRENAME, (RPMSENSE_EQUAL|RPMSENSE_LESS));
-
-    if (items != NULL && nitems > 0) {
-       Item needle = xcalloc(1, sizeof(*needle));
-       Item * found, * fneedle = &needle;
-       
-       needle->this = add;
-
-       found = bsearch(fneedle, items, nitems, sizeof(*found), cmpItem);
-
-       /* Rewind to the first item with same name. */
-       while (found > items && cmpItem(found-1, fneedle) == 0)
-           found--;
-
-       /* Check that all saved items are newer than this item. */
-       if (found != NULL)
-       while (found < (items + nitems) && cmpItem(found, fneedle) == 0) {
-           ec = rpmdsCompare(needle->this, (*found)->this);
-           if (ec == 0) {
-               found++;
-               continue;
-           }
-           i = found - items;
-           break;
-       }
-       free(needle);
-    }
-
-    /*
-     * At this point, ec is
-     * -1      no item with the same name has been seen.
-     * 0       item exists, but already saved item EVR is newer.
-     * 1       item exists, but already saved item EVR is same/older.
-     */
-    if (ec == 0) {
-       goto exit;
-    } else if (ec == 1) {
-       items[i] = freeItem(items[i]);
-    } else {
-       i = nitems++;
-       items = xrealloc(items, nitems * sizeof(*items));
-    }
-
-    items[i] = newItem();
-    items[i]->path = xstrdup(fts->fts_path);
-    st = fts->fts_statp;
-    if (st == NULL && stat(fts->fts_accpath, &sb) == 0)
-       st = &sb;
-
-    if (st != NULL) {
-       items[i]->size = st->st_size;
-       items[i]->mtime = st->st_mtime;
-    }
-    st = NULL;
-    items[i]->this = rpmdsThis(h, RPMTAG_PROVIDENAME, RPMSENSE_EQUAL);
-    items[i]->h = headerLink(h);
-
-    if (nitems > 1)
-       qsort(items, nitems, sizeof(*items), cmpItem);
-
-#if 0
-    fprintf(stderr, "\t%*s [%d] %s\n",
-               indent * (fts->fts_level < 0 ? 0 : fts->fts_level), "",
-               i, fts->fts_name);
-#endif
-
-exit:
-    h = headerFree(h);
-    add = rpmdsFree(add);
-    return ec;
-}
-
-static const char * ftsInfoStrings[] = {
-    "UNKNOWN",
-    "D",
-    "DC",
-    "DEFAULT",
-    "DNR",
-    "DOT",
-    "DP",
-    "ERR",
-    "F",
-    "INIT",
-    "NS",
-    "NSOK",
-    "SL",
-    "SLNONE",
-    "W",
-};
-
-static const char * ftsInfoStr(int fts_info) {
-    if (!(fts_info >= 1 && fts_info <= 14))
-       fts_info = 0;
-    return ftsInfoStrings[ fts_info ];
-}
-
-static int ftsPrint(FTS * ftsp, FTSENT * fts, rpmts ts)
-{
-    struct ftsglob_s * bhg;
-    const char ** patterns;
-    const char * pattern;
-    const char * s;
-    int lvl;
-    int xx;
-
-    switch (fts->fts_info) {
-    case FTS_D:                /* preorder directory */
-       if (fts->fts_pathlen < bhpathlen)
-           break;
-
-       /* Grab the level of the beehive top directory. */
-       if (bhlvl < 0) {
-           if (fts->fts_pathlen == bhpathlen && !strcmp(fts->fts_path, bhpath))
-               bhlvl = fts->fts_level;
-           else
-               break;
-       }
-       lvl = fts->fts_level - bhlvl;
-
-       if (lvl < 0)
-           break;
-
-#if 0
-       if (_debug)
-           fprintf(stderr, "FTS_%s\t%*s %s\n", ftsInfoStr(fts->fts_info),
-               indent * (fts->fts_level < 0 ? 0 : fts->fts_level), "",
-               fts->fts_name);
-#endif
-
-       /* Full path glob expression check. */
-       bhg = bhglobs;
-
-       if ((patterns = bhg->patterns) != NULL)
-       while ((pattern = *patterns++) != NULL) {
-           if (*pattern == '/')
-               xx = fnmatch(pattern, fts->fts_path, bhg->fnflags);
-           else
-               xx = fnmatch(pattern, fts->fts_name, bhg->fnflags);
-           if (xx == 0)
-               break;
-       }
-
-       /* Level specific glob expression check(s). */
-       if (lvl == 0 || lvl >= nbhglobs)
-           break;
-       bhg += lvl;
-
-       if ((patterns = bhg->patterns) != NULL)
-       while ((pattern = *patterns++) != NULL) {
-           if (*pattern == '/')
-               xx = fnmatch(pattern, fts->fts_path, bhg->fnflags);
-           else
-               xx = fnmatch(pattern, fts->fts_name, bhg->fnflags);
-           if (xx == 0)
-               break;
-           else
-               xx = Fts_set(ftsp, fts, FTS_SKIP);
-       }
-
-       break;
-    case FTS_DP:       /* postorder directory */
-#if 0
-       if (_debug)
-           fprintf(stderr, "FTS_%s\t%*s %s\n", ftsInfoStr(fts->fts_info),
-               indent * (fts->fts_level < 0 ? 0 : fts->fts_level), "",
-               fts->fts_name);
-#endif
-       break;
-    case FTS_F:                /* regular file */
-#if 0
-       if (_debug)
-           fprintf(stderr, "FTS_%s\t%*s %s\n", ftsInfoStr(fts->fts_info),
-               indent * (fts->fts_level < 0 ? 0 : fts->fts_level), "",
-               fts->fts_name);
-#endif
-       if (fts->fts_level >= 0) {
-           /* Ignore source packages. */
-           if (!strcmp(fts->fts_parent->fts_name, "SRPMS")) {
-               xx = Fts_set(ftsp, fts->fts_parent, FTS_SKIP);
-               break;
-           }
-       }
-
-       /* Ignore all but *.rpm files. */
-       s = fts->fts_name + fts->fts_namelen + 1 - sizeof(".rpm");
-       if (strcmp(s, ".rpm"))
-           break;
-
-       xx = ftsStashLatest(fts, ts);
-
-       break;
-    case FTS_NS:       /* stat(2) failed */
-    case FTS_DNR:      /* unreadable directory */
-    case FTS_ERR:      /* error; errno is set */
-       if (_debug)
-           fprintf(stderr, "FTS_%s\t%*s %s\n", ftsInfoStr(fts->fts_info),
-               indent * (fts->fts_level < 0 ? 0 : fts->fts_level), "",
-               fts->fts_name);
-       break;
-    case FTS_DC:       /* directory that causes cycles */
-    case FTS_DEFAULT:  /* none of the above */
-    case FTS_DOT:      /* dot or dot-dot */
-    case FTS_INIT:     /* initialized only */
-    case FTS_NSOK:     /* no stat(2) requested */
-    case FTS_SL:       /* symbolic link */
-    case FTS_SLNONE:   /* symbolic link without target */
-    case FTS_W:                /* whiteout object */
-    default:
-       if (_debug)
-           fprintf(stderr, "FTS_%s\t%*s %s\n", ftsInfoStr(fts->fts_info),
-               indent * (fts->fts_level < 0 ? 0 : fts->fts_level), "",
-               fts->fts_name);
-       break;
-    }
-
-    return 0;
-}
-
-/**
- * Initialize fts and glob structures.
- * @param ts           transaction set
- * @param argv         package names to match
- */
-static void initGlobs(rpmts ts, const char ** argv)
-{
-    char *buf = NULL;
-    int i;
-
-    if (argv != NULL && * argv != NULL) {
-       const char * arg;
-       int single = (glob_pattern_p(argv[0], 0) && argv[1] == NULL);
-
-       if (!single) {
-           rstrcat(&buf, "@(");
-       }
-       while ((arg = *argv++) != NULL) {
-           rstrscat(&buf, arg, "|", NULL);
-       }
-       buf[strlen(buf)-1] = single ? '\0' : ')';
-    }
-
-    bhpath = rpmExpand("%{_bhpath}", NULL);
-    bhpathlen = strlen(bhpath);
-
-    ftsSet = xcalloc(2, sizeof(*ftsSet));
-    ftsSet[0] = rpmExpand("%{_bhpath}", NULL);
-
-    nbhglobs = 5;
-    bhglobs = xcalloc(nbhglobs, sizeof(*bhglobs));
-    for (i = 0; i < nbhglobs; i++) {
-       char * pattern;
-       const char * macro;
-
-       switch (i) {
-       case 0:
-           macro = "%{_bhpath}";
-           break;
-       case 1:
-           macro = "%{_bhcoll}";
-           break;
-       case 2:
-           macro = (buf[0] == '\0' ? "%{_bhN}" : buf);
-           break;
-       case 3:
-           macro = "%{_bhVR}";
-           break;
-       case 4:
-           macro = "%{_bhA}";
-           break;
-       default:
-           macro = NULL;
-           break;
-       }
-       bhglobs[i].patterns = xcalloc(2, sizeof(*bhglobs[i].patterns));
-       if (macro == NULL)
-           continue;
-       pattern = rpmExpand(macro, NULL);
-       if (pattern == NULL || *pattern == '\0') {
-           pattern = _free(pattern);
-           continue;
-       }
-       bhglobs[i].patterns[0] = pattern;
-       bhglobs[i].fnflags = (FNM_PATHNAME | FNM_PERIOD | FNM_EXTMATCH);
-       if (bhglobs[i].patterns[0] != NULL)
-           rpmlog(RPMLOG_DEBUG, "\t%d \"%s\"\n",
-               i, bhglobs[i].patterns[0]);
-    }
-    free(buf);
-}
-
-static rpmVSFlags vsflags = 0;
-
-static struct poptOption optionsTable[] = {
- { "nolegacy", '\0', POPT_BIT_SET,      &vsflags, RPMVSF_NEEDPAYLOAD,
-       N_("don't verify header+payload signature"), NULL },
-
- { "nocache", '\0', POPT_ARG_VAL,   &noCache, -1,
-       N_("don't update cache database, only print package paths"), NULL },
-
- { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmcliFtsPoptTable, 0,
-        N_("File tree walk options:"),
-        NULL },
-
- { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmcliAllPoptTable, 0,
-       N_("Common options for all rpm modes and executables:"),
-       NULL },
-
-    POPT_AUTOALIAS
-    POPT_AUTOHELP
-    POPT_TABLEEND
-};
-
-int
-main(int argc, char *argv[])
-{
-    rpmts ts = NULL;
-    poptContext optCon;
-    char * s;
-    FTS * ftsp;
-    FTSENT * fts;
-    int ec = 1;
-    rpmRC rpmrc;
-    int xx;
-
-    optCon = rpmcliInit(argc, argv, optionsTable);
-    if (optCon == NULL)
-        exit(EXIT_FAILURE);
-
-    /* Configure the path to cache database, creating if necessary. */
-    s = rpmExpand("%{?_cache_dbpath}", NULL);
-    if (!(s && *s))
-       rpmrc = RPMRC_FAIL;
-    else
-       rpmrc = rpmMkdirPath(s, "_cache_dbpath");
-    s = _free(s);
-    if (rpmrc != RPMRC_OK) {
-       fprintf(stderr, _("%s: %%{_cache_dbpath} macro is mis-configured.\n"),
-               __progname);
-        exit(EXIT_FAILURE);
-    }
-
-    ts = rpmtsCreate();
-
-    if (rpmcliQueryFlags & VERIFY_DIGEST)
-       vsflags |= _RPMVSF_NODIGESTS;
-    if (rpmcliQueryFlags & VERIFY_SIGNATURE)
-       vsflags |= _RPMVSF_NOSIGNATURES;
-    if (rpmcliQueryFlags & VERIFY_HDRCHK)
-       vsflags |= RPMVSF_NOHDRCHK;
-    (void) rpmtsSetVSFlags(ts, vsflags);
-
-    {   rpm_tid_t tid = (rpm_tid_t) time(NULL);
-       (void) rpmtsSetTid(ts, tid);
-    }
-
-    initGlobs(ts, poptGetArgs(optCon));
-    if (ftsOpts == 0)
-       ftsOpts = (FTS_COMFOLLOW | FTS_LOGICAL | FTS_NOSTAT);
-
-    if (noCache)
-       ftsOpts |= FTS_NOSTAT;
-    else
-       ftsOpts &= ~FTS_NOSTAT;
-
-    /* Walk file tree, filter paths, save matched items. */
-    ftsp = Fts_open(ftsSet, ftsOpts, NULL);
-    while((fts = Fts_read(ftsp)) != NULL) {
-       xx = ftsPrint(ftsp, fts, ts);
-    }
-    xx = Fts_close(ftsp);
-
-    if (noCache)
-       ec = ftsCachePrint(ts, stdout);
-    else
-       ec = ftsCacheUpdate(ts);
-    if (ec) {
-       fprintf(stderr, _("%s: cache operation failed: ec %d.\n"),
-               __progname, ec);
-    }
-
-    freeItems();
-
-    ts = rpmtsFree(ts);
-
-    optCon = rpmcliFini(optCon);
-
-    return ec;
-}