summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Čihař <nijel@debian.org>2016-11-10 13:35:17 +0100
committerMichal Čihař <nijel@debian.org>2016-11-10 13:35:17 +0100
commit17dc95a739ef26d87c2f2d6270d67f77a9ed25c3 (patch)
tree8608483bb622cc64e3be1c20a39c833b14ccd3ca
parent2b271a536f75ae82d10fd3b43672b894306a6013 (diff)
New upstream version 4.13.0+dfsg1
-rw-r--r--ChangeLog3464
-rw-r--r--Makefile.am7
-rw-r--r--Makefile.in34
-rw-r--r--build/Makefile.am1
-rw-r--r--build/Makefile.in3
-rw-r--r--build/files.c213
-rw-r--r--build/pack.c250
-rw-r--r--build/parsePreamble.c58
-rw-r--r--build/parsePrep.c31
-rw-r--r--build/parseReqs.c245
-rw-r--r--build/parseScript.c90
-rw-r--r--build/parseSpec.c163
-rw-r--r--build/rpmbuild.h6
-rw-r--r--build/rpmbuild_internal.h19
-rw-r--r--build/rpmfc.c318
-rw-r--r--build/rpmfc.h42
-rw-r--r--build/rpmspec.h8
-rw-r--r--build/spec.c17
-rwxr-xr-xconfig.guess320
-rw-r--r--config.h.in15
-rwxr-xr-xconfig.sub69
-rwxr-xr-xconfigure298
-rw-r--r--configure.ac30
-rwxr-xr-xdepcomp2
-rw-r--r--doc/hacking.doxy.in2507
-rw-r--r--doc/librpm.doxy.in2506
-rw-r--r--doc/rpm.843
-rw-r--r--doc/rpmbuild.828
-rw-r--r--doc/rpmsign.824
-rw-r--r--doc/rpmspec.82
-rw-r--r--fileattrs/Makefile.in2
-rwxr-xr-xinstall-sh366
-rwxr-xr-xinstallplatform60
-rw-r--r--lib/Makefile.am20
-rw-r--r--lib/Makefile.in131
-rw-r--r--lib/backend/db3.c602
-rw-r--r--lib/backend/dbconfig.c269
-rw-r--r--lib/backend/dbi.c143
-rw-r--r--lib/backend/dbi.h120
-rw-r--r--lib/backend/dbiset.c22
-rw-r--r--lib/backend/dbiset.h4
-rw-r--r--lib/backend/ndb/glue.c477
-rw-r--r--lib/backend/ndb/rpmidx.c1228
-rw-r--r--lib/backend/ndb/rpmidx.h18
-rw-r--r--lib/backend/ndb/rpmpkg.c1240
-rw-r--r--lib/backend/ndb/rpmpkg.h20
-rw-r--r--lib/backend/ndb/rpmxdb.c1178
-rw-r--r--lib/backend/ndb/rpmxdb.h27
-rw-r--r--lib/cpio.h5
-rw-r--r--lib/depends.c355
-rw-r--r--lib/formats.c3
-rw-r--r--lib/fprint.c2
-rw-r--r--lib/fsm.c5
-rw-r--r--lib/fsm.h4
-rw-r--r--lib/header.c2
-rw-r--r--lib/header.h2
-rw-r--r--lib/headerutil.c2
-rw-r--r--lib/misc.h2
-rw-r--r--lib/order.c23
-rw-r--r--lib/package.c114
-rw-r--r--lib/poptQV.c16
-rw-r--r--lib/psm.c165
-rw-r--r--lib/query.c28
-rw-r--r--lib/rpmal.c113
-rw-r--r--lib/rpmal.h1
-rw-r--r--lib/rpmarchive.h8
-rw-r--r--lib/rpmcallback.h15
-rw-r--r--lib/rpmchecksig.c146
-rw-r--r--lib/rpmcli.h4
-rw-r--r--lib/rpmdb.c405
-rw-r--r--lib/rpmdb.h15
-rw-r--r--lib/rpmdb_internal.h76
-rw-r--r--lib/rpmds.c336
-rw-r--r--lib/rpmds.h68
-rw-r--r--lib/rpmds_internal.h9
-rw-r--r--lib/rpmfi.c112
-rw-r--r--lib/rpmfi.h10
-rw-r--r--lib/rpmfi_internal.h8
-rw-r--r--lib/rpmfiles.h35
-rw-r--r--lib/rpmgi.c24
-rw-r--r--lib/rpmhash.C2
-rw-r--r--lib/rpminstall.c34
-rw-r--r--lib/rpmlock.c3
-rw-r--r--lib/rpmplugins.h4
-rw-r--r--lib/rpmrc.c74
-rw-r--r--lib/rpmscript.c211
-rw-r--r--lib/rpmscript.h25
-rw-r--r--lib/rpmsignfiles.c164
-rw-r--r--lib/rpmsignfiles.h23
-rw-r--r--lib/rpmtag.h36
-rw-r--r--lib/rpmtd.c5
-rw-r--r--lib/rpmtd.h9
-rw-r--r--lib/rpmte_internal.h2
-rw-r--r--lib/rpmtriggers.c616
-rw-r--r--lib/rpmtriggers.h83
-rw-r--r--lib/rpmts.c89
-rw-r--r--lib/rpmts_internal.h23
-rw-r--r--lib/signature.c247
-rw-r--r--lib/signature.h30
-rw-r--r--lib/tagexts.c127
-rw-r--r--lib/tagtbl.C23
-rw-r--r--lib/transaction.c113
-rw-r--r--lib/verify.c6
-rw-r--r--luaext/lposix.c32
-rw-r--r--m4/ltsugar.m47
-rw-r--r--m4/lt~obsolete.m47
-rw-r--r--macros.debug43
-rw-r--r--macros.in61
-rw-r--r--misc/fts.c20
-rw-r--r--misc/fts.h14
-rwxr-xr-xmissing6
-rw-r--r--plugins/Makefile.am4
-rw-r--r--plugins/Makefile.in28
-rw-r--r--plugins/ima.c44
-rw-r--r--plugins/selinux.c16
-rw-r--r--plugins/systemd_inhibit.c19
-rw-r--r--po/POTFILES.in2
-rw-r--r--po/ar.gmobin7410 -> 7261 bytes
-rw-r--r--po/ar.po1376
-rw-r--r--po/br.gmobin8431 -> 8850 bytes
-rw-r--r--po/br.po1386
-rw-r--r--po/ca.gmobin53060 -> 63172 bytes
-rw-r--r--po/ca.po2089
-rw-r--r--po/cmn.gmobin60016 -> 59118 bytes
-rw-r--r--po/cmn.po1488
-rw-r--r--po/cs.gmobin47220 -> 46896 bytes
-rw-r--r--po/cs.po1414
-rw-r--r--po/da.gmobin29223 -> 29040 bytes
-rw-r--r--po/da.po1409
-rw-r--r--po/de.gmobin59794 -> 68308 bytes
-rw-r--r--po/de.po2083
-rw-r--r--po/el.gmobin2335 -> 2333 bytes
-rw-r--r--po/el.po1340
-rw-r--r--po/eo.gmobin62167 -> 61273 bytes
-rw-r--r--po/eo.po1496
-rw-r--r--po/es.gmobin65437 -> 64483 bytes
-rw-r--r--po/es.po1511
-rw-r--r--po/fi.gmobin42790 -> 42341 bytes
-rw-r--r--po/fi.po1411
-rw-r--r--po/fr.gmobin66400 -> 67150 bytes
-rw-r--r--po/fr.po1544
-rw-r--r--po/is.gmobin6234 -> 6254 bytes
-rw-r--r--po/is.po1381
-rw-r--r--po/it.gmobin67400 -> 66333 bytes
-rw-r--r--po/it.po1505
-rw-r--r--po/ja.gmobin73420 -> 72358 bytes
-rw-r--r--po/ja.po1494
-rw-r--r--po/ko.gmobin40735 -> 40458 bytes
-rw-r--r--po/ko.po1411
-rw-r--r--po/ms.gmobin3516 -> 3514 bytes
-rw-r--r--po/ms.po1360
-rw-r--r--po/nb.gmobin20415 -> 20225 bytes
-rw-r--r--po/nb.po1399
-rw-r--r--po/nl.gmobin4461 -> 4459 bytes
-rw-r--r--po/nl.po1349
-rw-r--r--po/pl.gmobin70554 -> 70382 bytes
-rw-r--r--po/pl.po1631
-rw-r--r--po/pt.gmobin36204 -> 35958 bytes
-rw-r--r--po/pt.po1414
-rw-r--r--po/pt_BR.gmobin55339 -> 54678 bytes
-rw-r--r--po/pt_BR.po1428
-rw-r--r--po/rpm.pot1331
-rw-r--r--po/ru.gmobin54306 -> 54066 bytes
-rw-r--r--po/ru.po1423
-rw-r--r--po/sk.gmobin61159 -> 61124 bytes
-rw-r--r--po/sk.po1520
-rw-r--r--po/sl.gmobin13917 -> 13670 bytes
-rw-r--r--po/sl.po1383
-rw-r--r--po/sr.gmobin62729 -> 62225 bytes
-rw-r--r--po/sr.po1418
-rw-r--r--po/sr@latin.gmobin50166 -> 49767 bytes
-rw-r--r--po/sr@latin.po1417
-rw-r--r--po/sv.gmobin61508 -> 66001 bytes
-rw-r--r--po/sv.po1624
-rw-r--r--po/te.gmobin2566 -> 2564 bytes
-rw-r--r--po/te.po1352
-rw-r--r--po/tr.gmobin37909 -> 37784 bytes
-rw-r--r--po/tr.po1422
-rw-r--r--po/uk.gmobin90106 -> 89674 bytes
-rw-r--r--po/uk.po1515
-rw-r--r--po/vi.gmobin71647 -> 76359 bytes
-rw-r--r--po/vi.po1849
-rw-r--r--po/zh_CN.gmobin55304 -> 56367 bytes
-rw-r--r--po/zh_CN.po1532
-rw-r--r--po/zh_TW.gmobin46430 -> 46034 bytes
-rw-r--r--po/zh_TW.po1466
-rw-r--r--python/header-py.c77
-rw-r--r--python/rpm/__init__.py56
-rw-r--r--python/rpm/transaction.py21
-rw-r--r--python/rpmarchive-py.c21
-rw-r--r--python/rpmds-py.c38
-rw-r--r--python/rpmfi-py.c52
-rw-r--r--python/rpmfiles-py.c94
-rw-r--r--python/rpmmi-py.c47
-rw-r--r--python/rpmmodule.c67
-rw-r--r--python/rpmsmodule.c9
-rw-r--r--python/rpmte-py.c55
-rw-r--r--python/rpmts-py.c109
-rw-r--r--python/spec-py.c36
-rw-r--r--rpm.am2
-rw-r--r--rpm2archive.c5
-rw-r--r--rpmbuild.c146
-rw-r--r--rpmio/Makefile.in2
-rw-r--r--rpmio/base64.c2
-rw-r--r--rpmio/macro.c35
-rw-r--r--rpmio/rpmfileutil.c3
-rw-r--r--rpmio/rpmglob.c64
-rw-r--r--rpmio/rpmio.c2
-rw-r--r--rpmio/rpmkeyring.c42
-rw-r--r--rpmio/rpmkeyring.h15
-rw-r--r--rpmio/rpmlog.c128
-rw-r--r--rpmio/rpmlua.c20
-rw-r--r--rpmio/rpmlua.h2
-rw-r--r--rpmio/rpmmacro.h11
-rw-r--r--rpmio/rpmpgp.c92
-rw-r--r--rpmio/rpmpgp.h26
-rw-r--r--rpmio/rpmsq.c26
-rw-r--r--rpmio/rpmsq.h2
-rw-r--r--rpmpopt.in15
-rw-r--r--rpmrc.in66
-rw-r--r--rpmsign.c126
-rw-r--r--scripts/Makefile.am9
-rw-r--r--scripts/Makefile.in11
-rwxr-xr-xscripts/brp-compress4
-rw-r--r--scripts/brp-python-bytecompile37
-rwxr-xr-xscripts/brp-strip2
-rwxr-xr-xscripts/brp-strip-comment-note2
-rw-r--r--scripts/brp-strip-shared2
-rwxr-xr-xscripts/check-rpaths-worker2
-rw-r--r--scripts/find-debuginfo.sh124
-rwxr-xr-xscripts/find-lang.sh54
-rw-r--r--scripts/find-php-provides20
-rw-r--r--scripts/find-php-requires30
-rwxr-xr-xscripts/find-provides2
-rwxr-xr-xscripts/find-requires2
-rw-r--r--scripts/gendiff11
-rw-r--r--scripts/osgideps.pl388
-rwxr-xr-xscripts/perl.prov6
-rwxr-xr-xscripts/perl.req17
-rwxr-xr-xscripts/perldeps.pl1116
-rw-r--r--scripts/tcl.req101
-rw-r--r--sign/Makefile.in2
-rw-r--r--sign/rpmgensig.c395
-rw-r--r--sign/rpmsign.h5
-rw-r--r--tests/Makefile.am7
-rw-r--r--tests/Makefile.in10
-rw-r--r--tests/data/SPECS/filetriggers.spec95
-rw-r--r--tests/data/SPECS/hello2-suid.spec67
-rw-r--r--tests/data/SPECS/hello2.spec62
-rw-r--r--tests/data/SPECS/prefixtest.spec42
-rw-r--r--tests/data/SPECS/testdoc.spec32
-rw-r--r--tests/package.m44
-rw-r--r--tests/rpmbuild.at261
-rw-r--r--tests/rpmgeneral.at23
-rw-r--r--tests/rpmi.at34
-rw-r--r--tests/rpmpython.at4
-rw-r--r--tests/rpmscript.at170
-rwxr-xr-xtests/rpmtests3605
-rw-r--r--tests/rpmverify.at22
-rw-r--r--tools/debugedit.c4
-rw-r--r--tools/rpmdeps.c36
-rw-r--r--tools/sepdebugcrcfix.c361
262 files changed, 52947 insertions, 29024 deletions
diff --git a/ChangeLog b/ChangeLog
index 9961ec9b..e118124c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,59 @@
-commit 6cd6032599f79a39bb67f5f5e5689ec9e455b2c0
+commit 152beb71c8bfae7bf0fd93be887a58892378140b
Author: Panu Matilainen <pmatilai@redhat.com>
-Date: Wed Nov 2 10:42:35 2016 +0200
+Date: Wed Nov 2 07:44:37 2016 +0200
- Preparing for rpm 4.12.0.2
+ Preparing for rpm 4.13.0 final
-commit a0a24884d9c8c54ae37b8912067179b7e04b4bbf
+commit 54d30ac4a344770571e56c60281a9130b61c1788
+Author: Mark Wielaard <mjw@redhat.com>
+Date: Tue Jun 14 17:07:10 2016 +0200
+
+ Don't use hardcoded paths to tools/scripts in find-debuginfo.sh.
+
+ This prevents installation and testing in any other location than
+ /usr/lib/rpm.
+
+ Signed-off-by: Mark Wielaard <mjw@redhat.com>
+ (cherry picked from commit 41c4dcf507e2208585d6dc0952f59686a3a69d69)
+
+commit 7495d179b63a191eadcdb55b8ec3e404e661f510
+Author: Thierry Vignaud <thierry.vignaud@gmail.com>
+Date: Fri Oct 21 02:18:06 2016 +0200
+
+ Fix testsuite failures in dist tarballs: include missing files
+
+ These should've been in commits 6b3b435fa644522197003460a96cd11253b1494d
+ and 4ec7c396fb9464a3fcff006408871f8175ab169b where the files were added.
+
+ (cherry picked from commit 618860e3cc2b74daec1577a685fa714a83c13f78)
+
+commit 9d40362d2379a51346654b52a0037acad2ed9393
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu Oct 20 15:22:56 2016 +0300
+
+ Preparing for rpm 4.13.0-rc2
+
+commit 825da787458d3a81d15a0356a6b1097d67534566
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu Oct 20 10:11:18 2016 +0300
+
+ Revert "Add macro _vsflags_query_rpmdb"
+
+ This is too flimsy a mechanism for such a critical item as signature
+ checking: with the innocent- and unrelated looking commit
+ e3e5db7f396bcdbaf04f87ba3b5c8101ee8f07f5 in place,
+ 'rpm -q foo.rpm' runs with NO signature checking whereas 'rpm -qp foo.rpm'
+ does signature check. Not sane behavior.
+
+ Also the commit is buggy to begin with, qva->qva_source is not a bitfield
+ so most queries would run with signature checking enabled still.
+ Revisit some day in a different form, maybe.
+
+ This reverts commit b30fca9eedd5c3963699ee5382f0ee1e32fbab7c.
+
+ (cherry picked from commit 1d32a881813335c7737be91077bf59c2bc27048b)
+
+commit 16b06f00aefc8b05b0455802eadfe5d6573ee021
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Oct 19 17:15:42 2016 +0300
@@ -16,7 +65,7 @@ Date: Wed Oct 19 17:15:42 2016 +0300
(cherry picked from commit d8bfe732572e8295015a372348dd13bdecb40f8c)
-commit 489769fea8ddbe187be92bc5b247c211a3bb065d
+commit 55fec51202d14918c977fb951469711bc55f9ff7
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Oct 19 14:48:08 2016 +0300
@@ -36,7 +85,7 @@ Date: Wed Oct 19 14:48:08 2016 +0300
(cherry picked from commit 89dce2b91d7d73a1e225461a7392c3d6d7a30a95)
-commit 648d717f231cccb1ce976d5fa038c9255e7bf6b9
+commit 49f06a1d96200f17f09e22e62b3c71221272b3fe
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Oct 18 14:50:20 2016 +0300
@@ -46,9 +95,8 @@ Date: Tue Oct 18 14:50:20 2016 +0300
we have a reasonable mapping), all names in alphabetical order.
(cherry picked from commit ef656ca6a6edb75dd9e9ee5801c7ac3357de9f4d)
- (cherry picked from commit 49f06a1d96200f17f09e22e62b3c71221272b3fe)
-commit 493c9372b6a00c06014c2d935a3839329cd9c72d
+commit f3168c06943f56422eddeabef906d71dc03a81d3
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Oct 11 09:43:54 2016 +0300
@@ -71,7 +119,71 @@ Date: Tue Oct 11 09:43:54 2016 +0300
(cherry picked from commit 6e7c6d1a18aa14fc7a980c43d980a26d82f785c4)
-commit eec854932d50010e4b3c6fb237f37d8f0a93bd23
+commit becfb764c5c199ce98f2df45287f8696f520f4be
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Oct 10 11:57:14 2016 +0200
+
+ rpm2archive: return 0 on success instead of stop iteration
+
+ Solves: https://github.com/rpm-software-management/rpm/pull/94/files
+ Thanks to Neal Gompa (ニール・ゴンパ)<ngompa13@gmail.com> for spotting this
+ and proposing a solution!
+
+ (cherry picked from commit a6e662f6bda2849274592cb223e6baf2dd385bb1)
+
+commit e756795087208f6c9df51608457dfd4db258c472
+Author: Mark Wielaard <mjw@redhat.com>
+Date: Fri Oct 7 17:00:44 2016 +0200
+
+ find-debuginfo.sh: Don't copy extra sections into .gnu_debugdata.
+
+ When creating the compressed mini-symtab section in find-debuginfo
+ add_minidebug we explicitly remove .gdb_index and .comment. But there
+ can be other non-empty sections in the debuginfo that shouldn't be
+ copied. For example rust binaries might have a .rustc section.
+
+ Explicitly remove any non-allocated PROGBITS or NOTE sections.
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1382394
+
+ Signed-off-by: Mark Wielaard <mjw@redhat.com>
+ (cherry picked from commit bd7611151b59dfe2f0feb41e478799b5bc26a391)
+
+commit 881b71b550bf15c1ed09491b06b3df95c26c30ed
+Author: Mark Wielaard <mjw@redhat.com>
+Date: Fri Oct 7 15:45:47 2016 +0200
+
+ Fix mini-symtab in find-debuginfo.sh for arches with function descriptors.
+
+ add_minidebug uses nm to select the function symbols to include in the
+ mini-symtab table. But on arches that use function descriptors (like ppc64)
+ nm --format-posix doesn't make it clear which symbols are real functions
+ The symbols point to the (stripped away) function descriptor table).
+
+ Use --format=sysv style to match the ELF symbol type directly instead of
+ using the somewhat ambiguous symbol type char used in --format=posix style
+ in binutils nm.
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1052415
+
+ Signed-off-by: Mark Wielaard <mjw@redhat.com>
+ (cherry picked from commit 3f9b7bc64e8c8f2d355ce24cf67c69f507e07d5e)
+
+commit 97253efe21ea65f070b25293ac68c79cbd7ad409
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Mon Oct 3 13:55:39 2016 +0300
+
+ Remove leftover include of <selinux/flask.h>
+
+ Besides unused, this has started spitting warnings in recent selinux versions:
+ In file included from selinux.c:5:0:
+ /usr/include/selinux/flask.h:5:2: warning: #warning "Please remove any #include's of this header in your source code." [-Wcpp]
+ #warning "Please remove any #include's of this header in your source code."
+ ^~~~~~~
+
+ (cherry picked from commit b1e7ce815392d3f35618b6167c11bee77d23c6da)
+
+commit c5bfb3ce1affd4469e37f7242c9e1065dd3fc18b
Author: Florian Festi <ffesti@redhat.com>
Date: Thu Jul 23 11:56:13 2015 +0200
@@ -82,7 +194,33 @@ Date: Thu Jul 23 11:56:13 2015 +0200
(cherry picked from commit 7e26e2bd726f48836be289400c7d82cb8b067dc1)
-commit b1cb0cb18fc9b98b44f5f7381a2ab4558ae7c0cb
+commit 51a11569c79b98df3dcfa550008b9ab31a1b2883
+Author: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
+Date: Mon Sep 19 16:15:39 2016 +0300
+
+ rpmdb.c: (rpmdbCheckTerminate) return non-zero on subsequent runs
+
+ This function is not necessarily called first by rpmdbCheckSignals, as
+ long as it is a part of API. Thus, it is important to return the same
+ value on subsequent runs.
+
+ Signed-off-by: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
+ (cherry picked from commit e5d3b9f682383ee026b5a86a47eb5f288bdf8991)
+
+commit 44352946c3bee1501de52aba011511a378936e79
+Author: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
+Date: Mon Sep 19 16:15:21 2016 +0300
+
+ rpmdb.c: avoid double free in rpmdbClose, rpmdbMatchIterator, ...
+
+ ... and rpmdbIndexIterator.
+ This makes functions assume that the object has been freed if it is not
+ on the list.
+
+ Signed-off-by: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
+ (cherry picked from commit 4c6e51e2c0e3deeb052ae3c47115b6d10cb0d696)
+
+commit 15ce8de817afd241df76ca2031d2d1a4df74db03
Author: Florian Weimer <fweimer@redhat.com>
Date: Mon Sep 5 10:12:29 2016 +0200
@@ -93,7 +231,196 @@ Date: Mon Sep 5 10:12:29 2016 +0200
Fixes: rhbz#1168715, CVE-2014-8118
(cherry picked from commit f255c6bdb27ad1512c043a64195410d46996395a)
-commit 8a755e2b2c3220c2da108ecb67b7a43c8d313855
+commit 30c16cfde9a81923c72a323a550dbe0cc67c411f
+Author: Richard W.M. Jones <rjones@redhat.com>
+Date: Thu Aug 11 11:38:18 2016 +0100
+
+ rpmrc: Convert uname.machine == "riscv" to "riscv32"/"riscv64"/"riscv128".
+
+ On RISC-V, the kernel can return uname.machine == "riscv" (for all bit
+ sizes). I say "can" return, because that is the default, but it is
+ also possible to compile the kernel specially so it returns "riscv64"
+ etc.
+
+ GNU is using "riscv64".
+
+ This commit converts the kernel uname machine type "riscv" to a more
+ suitable value.
+
+ This conversion is supposed to be done by the arch_canon table.
+ However the arch_canon table is not populated until after the
+ defaultMachine function is called for the first time, making it a bit
+ useless. In any case, arch_canon cannot take into account the bit
+ size of the architecture, but the C code here can.
+
+ Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
+ (cherry picked from commit cf5679397f36710a942fcb83a63c690eb25d72af)
+
+commit 908263cdb8acda41c11fcd634c705839bf44d651
+Author: Richard W.M. Jones <rjones@redhat.com>
+Date: Tue Aug 9 18:25:24 2016 +0100
+
+ RISCV 64-bit (riscv64) support.
+
+ Based on Mark Salter's aarch64 support patch (commit 8e1ca16c58).
+
+ Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
+ (cherry picked from commit d9d47e01146a5d4411691a71916b1030ac7da193)
+
+commit 3eb469b5ec314d86dee3b206a027a9e25148573e
+Author: Frederic Bonnard <frediz@linux.vnet.ibm.com>
+Date: Tue Jul 5 10:04:02 2016 +0200
+
+ Fix preun scriptlet failure not aborting rpm erase
+
+ Since commit f4a49c3d446bb180ca6b30a4337065fb6511e641 ( Unceremoniously
+ eliminate rpmpsmNext() ), when a preun scriptlet is failing, rpm continues to
+ be erased. Handling return code of runInstScript.
+
+ (cherry picked from commit 1ac507f15f014e69b926a1c2bf9a46a2a4dcaff3)
+
+commit 7e5582de2a2d61f67fd89b5382e7a2cd2244418c
+Author: Mark Wielaard <mjw@redhat.com>
+Date: Tue Jun 14 17:07:11 2016 +0200
+
+ Add sepdebugcrcfix to fixup old style gnu_debuglink CRC checksum.
+
+ Some old tools might still use the .gnu_debuglink section to find
+ separate debuginfo files instead of build-id style lookups. When
+ dwz has compresses the .debug files the original CRC in the main
+ ELF file will no longer match. Make sure to run sepdebugcrcfix
+ after dwz to recalculate the CRC.
+
+ The original fix was created by Jan Kratochvil based on code
+ from GNU binutils BFD. https://bugzilla.redhat.com/show_bug.cgi?id=971119
+ I added a testcase to make sure the CRCs were all correctly
+ updated after dwz has run to compress a debuginfo package.
+ And a change (plus testcase) to make sure implicit suid binaries
+ didn't accidentially got their suid flag bit.
+
+ Signed-off-by: Mark Wielaard <mjw@redhat.com>
+ (cherry picked from commit 4ec7c396fb9464a3fcff006408871f8175ab169b)
+
+commit d5d5fe169979ed4d6d92bee2cb521ac1a9e822ad
+Author: Mark Wielaard <mjw@redhat.com>
+Date: Tue Jun 14 17:07:09 2016 +0200
+
+ Add dwz debuginfo compression support.
+
+ Support for dwz compression has been in Fedora since a couple of years.
+ https://fedoraproject.org/wiki/Features/DwarfCompressor
+
+ The original find-debuginfo.sh patch was written by Jakub Jelinek.
+ https://bugzilla.redhat.com/show_bug.cgi?id=833311
+ The new testcase using the macros.debug was added by me.
+
+ Signed-off-by: Mark Wielaard <mjw@redhat.com>
+ (cherry picked from commit 6b3b435fa644522197003460a96cd11253b1494d)
+
+commit 75df2ef01cd672c35a5d4051d633dbf5b244f465
+Author: Mark Wielaard <mjw@redhat.com>
+Date: Tue Jun 14 17:07:08 2016 +0200
+
+ Add find-debuginfo.sh -m minisymtab support.
+
+ Support for minisymtab (a minimal function symbol table in a compressed
+ section in the main binary) has been in gdb and elfutils based tools
+ since some years. Fedora has had this as rpm-4.10.0-minidebuginfo.patch
+ since 2012.
+
+ The patch adjusts macros to pass -m to find-debuginfo.sh when
+ _include_minidebuginfo has been set. find-debuginfo.sh now takes -m
+ as argument to generate the .gnu_debugdata ELF section to be added
+ to the main executable.
+
+ To support the testcases a new macros.debug is added that is used to
+ generate debuginfo packages in the rpmbuild.at testsuite.
+
+ The original support was added to Fedora rpm by Alexander Larsson.
+ Lubos Kardos fixed a bug in it when strip -g was used. I added some
+ configuration macros and two testcases to check the basic support works
+ and for the strip -g bug.
+
+ Signed-off-by: Mark Wielaard <mjw@redhat.com>
+ (cherry picked from commit b33a41da3689c4a803986eb95e5875e0dff36259)
+
+commit 8683332c410e55880393631521f3256a339855a3
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu Jun 2 15:54:01 2016 +0200
+
+ Add support for _buildhost macro for setting the build host manually.
+
+ This is useful for reproducible builds. See rhbz#1309367.
+
+ (cherry picked from commit 22588250baa1bfa5c00f57d39329d0c144fc8112)
+
+commit ad623bb4754d8af9a2a38b8a1e1473b8a13ae109
+Author: Thierry Vignaud <thierry.vignaud@gmail.com>
+Date: Wed May 11 22:27:52 2016 +0200
+
+ fix segfault when calling with args==NULL
+
+ the doc explicitely describe "args" as "signing parameters (or NULL for
+ defaults)"
+
+ This no more true since commit 6e9eab345a18d01f0c2c35fa8bb842744093364c
+ As such, with rpm-4.13, some callers will segfault (eg: perl-RPM4's
+ testsuite)
+
+ (cherry picked from commit 1aeddbc2714faa9b26a60a0256d0b9751ab9796b)
+
+commit dacbd11fc804cbbedff245262ba8c68ecf501fd1
+Author: Jonathan Wakely <github@kayari.org>
+Date: Wed May 25 12:31:19 2016 +0100
+
+ Fix off-by-one error
+
+ There's an off-by-one error in base64_decode_value which results in undefined behaviour:
+
+ void* out;
+ size_t len;
+ rpmBase64Decode("\x7b", &out, &len);
+ (cherry picked from commit 0964912b94f9f48a0a812fbfbb2f996dbd93eff0)
+
+commit 5aea1364254779bbe9c4dd36a4e56d2ef38da9e2
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon May 23 10:19:39 2016 +0200
+
+ Fix signing with non-ASCII uid keys (rhbz:1243963)
+
+ Removed setting LC_ALL to "C" because since commit [1] the gpg program
+ gets password by yourself from terminal so there is no sense in
+ setting LC_ALL to "C" if the terminal settings is e. g. UTF-8. That was
+ only confusing gpg program and it was not able to properly get and
+ display non-ASCII characters.
+
+ [1] 0bce5fcf270711a2e077fba0fb7c5979ea007eb5
+
+ (cherry picked from commit 258e3065687c9e6b53b6f2b6c7fa6c5694508791)
+
+commit 8bc33e2697d9dc203106a89a6c684d5e64f3d3af
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu May 19 13:01:58 2016 +0200
+
+ Use armv7hl isa for all armhfp (armv7h*l) arches (#1326871)
+
+ Patch from Dennis Gilmore <dennis@ausil.us>
+
+ (cherry picked from commit 5d5dd569d01300db833e434ff49beb8b22627310)
+
+commit 9ab257e90218e0ac63c121c106b08be33cae05fa
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu May 12 16:28:09 2016 +0200
+
+ Filter unversioned deps if corresponding versioned deps exist (rhbz:678605)
+
+ After automatic dependencies are generated filter out from them
+ unversioned dependencies if versioned dependencies with the same name,
+ type and color already exist.
+
+ (cherry picked from commit 6ac793b215ac8d9db99d9632cbf71b014c7ffee0)
+
+commit a0b955e480e4e832a381104b0969673d9567303b
Author: Florian Festi <ffesti@redhat.com>
Date: Fri Apr 22 07:58:46 2016 +0200
@@ -103,7 +430,7 @@ Date: Fri Apr 22 07:58:46 2016 +0200
(cherry picked from commit b4f0e7ef184f2cdfcee5289108763e46be9438db)
-commit 81a1656b38a837fa0bf78c7669a6133b04658293
+commit 9045b5222c5f8a7f4d98486736af049ebce4e65a
Author: Lubos Kardos <lkardos@redhat.com>
Date: Mon Apr 25 14:38:47 2016 +0200
@@ -114,7 +441,7 @@ Date: Mon Apr 25 14:38:47 2016 +0200
(cherry picked from commit cddf43a56f19711866371f02f378dc4095b0fadd)
-commit 3cffded66206cad881348c98b16f86e22e6e00da
+commit b64f7ceeb8957e180b56f6a583483bd93f26e104
Author: Lubos Kardos <lkardos@redhat.com>
Date: Mon Apr 25 13:31:08 2016 +0200
@@ -124,7 +451,66 @@ Date: Mon Apr 25 13:31:08 2016 +0200
(cherry picked from commit b722cf86200505b3e3fcbb2095c4ff61f1f5a2ab)
-commit 1234747a82b7b479bc60b57fd2525c3ce088be7e
+commit 3aec58aa660c9577a61d6d8c73e01c000150d027
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Apr 15 10:45:47 2016 +0200
+
+ Enable --no-backup-if-mismatch by default in %patch macro (rhbz:884755)
+
+ (cherry picked from commit 69ed95eb422c59f9d99f75ccb78f32311a31702d)
+
+commit c34999a7084d793e636fb7443f9efc4cf2b8f1f2
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Apr 15 10:47:57 2016 +0200
+
+ Add %{_default_patch_flags} to %__patch which is used in %autosetup
+
+ %{_default_patch_flags} is used in %patch spec directive and now it is
+ used also in %__patch macro which is used in %autosetup macro. This make
+ consitent using newer %autosetup macro and older %patch directives.
+
+ (cherry picked from commit 66a6082634687e45b321a5ade9887420d5830162)
+
+commit 5a1da6ff93a69c1c84cc89f6bccee87e979449ef
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Apr 14 16:23:35 2016 +0200
+
+ Add enahance dependency forgotten in the recent commit [1]
+
+ [1] 9c1e995043a999dcac05a74aa8bcf934122d40ba
+
+ (cherry picked from commit e297b51750598d926d053c1d1645aab78a54c46a)
+
+commit 20fa92267e230e3c3fff8c1ca13f787ee844e74c
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Apr 14 13:12:51 2016 +0200
+
+ Make creating index records consistent for rich and rich-weak deps
+
+ If a package contains a rich require dependency then this rich
+ dependency is parsed and also subdependencies are stored into the
+ require index. For example for rich dependency "(A and B)" the whole
+ string "(A and B)" is stored into the index Requirename but
+ subdependcies "A" and "B" are stored into index too. Previously this
+ parsing and storing subdependencies was done only for require rich
+ dependencies. Now it is done also for weak rich dependecies (suggests,
+ supplements and recommends).
+ (rhbz:1325982)
+
+ (cherry picked from commit 9c1e995043a999dcac05a74aa8bcf934122d40ba)
+
+commit fa95c1bd964df8a65a2450dbbb7900ef51388fc1
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Apr 11 14:37:27 2016 +0200
+
+ Fix index generation of rich dependencies with an else part
+
+ As A if B else C is identical to "(A if B) and (C or B)" we
+ need to put both B and !B on the index.
+
+ (cherry picked from commit 469553385ee766792529235a9e3c07efee14ba72)
+
+commit 72f43faf6225a3544b95dc240861bec413942362
Author: Boris Egorov <egorov@linux.com>
Date: Sun Mar 27 23:55:08 2016 +0600
@@ -141,7 +527,294 @@ Date: Sun Mar 27 23:55:08 2016 +0600
Signed-off-by: Boris Egorov <egorov@linux.com>
(cherry picked from commit dddc6e7be597e787917009c3d892ebe29c99eff8)
-commit 05c41d2c84f85967921e2d5cdd51f5732da7d6a2
+commit 56bab47db13369139ac0102cfbe57556661deeba
+Author: Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>
+Date: Sun Mar 13 09:05:00 2016 -0400
+
+ Use fuzz settings for %autopatch/%autosetup
+
+ In the %apply_patches that inspired %autopatch, patch application
+ respects the fuzz settings that are used for %patch. %autopatch
+ and %autosetup weren't using this, which led to an inconsistent
+ patch application behavior.
+
+ (cherry picked from commit 50905f4a599f167622736fab24800fe062551809)
+
+commit dd8388055cabdce02f6b031b60abd4a370e7b71e
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed Mar 16 17:15:14 2016 +0100
+
+ Fix non-working combination of %lang and %doc directive (rhbz:1254483)
+
+ (cherry picked from commit 877d5b130cbfdfd93ad39c1f0f1505790eba264e)
+
+commit e45ff73e8525aa87079be0672d5742c4745cf255
+Author: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
+Date: Fri Mar 4 16:40:30 2016 -0500
+
+ Add posix.redirect2null
+
+ This is useful to silence output in forked programs:
+ https://bugzilla.redhat.com/show_bug.cgi?id=1287918
+
+ Tested with the following scriptlet:
+ %post -p <lua>
+ pid = posix.fork()
+ if pid == 0 then
+ assert(posix.exec("/bin/sed"))
+ elseif pid > 0 then
+ posix.wait(pid)
+ end
+ pid = posix.fork()
+ if pid == 0 then
+ posix.redirect2null(2)
+ assert(posix.exec("/bin/awk"))
+ elseif pid > 0 then
+ posix.wait(pid)
+ end
+
+ As expected, the error message from sed is printed, the error message
+ from awk is not.
+
+ (cherry picked from commit 19fe0d9ae12644b8af9513aa2a8cf7d16f7caa61)
+
+commit ba24161f774aebde3348f5311913fc380b87c453
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Mar 8 14:29:24 2016 +0100
+
+ Fix memory leaks in rpmGetSubkeys() and pgpPrtParamsSubkeys()
+
+ (cherry picked from commit cc611412453b77bfd7aa33d8bbcfb8dea727c49a)
+
+commit ba720ba28ee42a3a6d18fd5d838dfe5fc7370bcf
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Feb 26 11:15:23 2016 +0100
+
+ Use %_build_cpu instead of noarch when evaluating ExcludeArch and ExclusiveArch
+
+ Some noarch packages need build tools not available on all architectures.
+ By using %_build_cpu you can restrict the architectures those noarch
+ packages can be build on.
+
+ (cherry picked from commit d53499d1565dd7ba6d93939e552cc604b26dccd7)
+
+commit 7ab85a1852e2aaf75b1f3f09910d0678a56cd7e6
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu Feb 25 16:51:02 2016 +0100
+
+ Use pkg->dpaths during dependency generation instead of buildRoot + filename
+
+ This passes the filenames with the actual file content to the dependency
+ generators when using RemovePathPostfixes (rhbz#1306559).
+
+ (cherry picked from commit 21661336c3f163f9603e30b1478ce12ed3d8ebae)
+
+commit 9fcf9a1a200821b49e842333094e6ccd7f0b4a0c
+Author: Michal Toman <mtoman@fedoraproject.org>
+Date: Fri Feb 19 12:05:05 2016 +0100
+
+ Add support for MIPS release 6 - Add mips32 mips64 mipsel and mipseb macros
+
+ (cherry picked from commit cd02e0675e7919193b2c2b885dfa099f55c0f281)
+
+commit 9ce6cd8a06cb37c91d23102c1a1bbdb166b79eb3
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Feb 19 09:56:31 2016 +0100
+
+ Also block idle and sleep in the systemd-inhibit plugin
+
+ We really should not suspend or hibernate during rpm operations. Chances are
+ too high to not wake up properly and damage the system (see rhbz#1297984).
+
+ (cherry picked from commit 83219d023b5b21826c7482d4aa3f6372f520825d)
+
+commit 750830468f0f2211feb2eb90ae780cc240666790
+Author: Michal Domonkos <mdomonko@redhat.com>
+Date: Mon Dec 7 17:13:26 2015 +0100
+
+ Add RPMCALLBACK_ELEM_PROGRESS callback type
+
+ Currently, there's no callback type that would be issued per each
+ transaction element. RPMCALLBACK_TRANS_PROGRESS is only issued during
+ the prepare phase but not when packages are actually installed or
+ erased. Likewise, RPMCALLBACK_INST_ST* and RPMCALLBACK_UNINST_ST* won't
+ be issued if an install or erase operation is skipped for some reason (a
+ script or package upgrade failure).
+
+ Having such a callback would allow the Python API consumers to always
+ know upfront which element is about to be processed, before any other
+ callbacks are issued. This is important since not every callback type
+ carries enough data about the subject package; while the INST types
+ provide the user object passed to a former addInstall call, the UNINST
+ types only provide the package name (which may not be unique within the
+ transaction set).
+
+ This commit adds such a callback.
+
+ (cherry picked from commit 448db68ceb5be3c7171b7ec0ea908d905792dc2f)
+
+commit 2d14608d8a1a6bfb72f1cdcaae7bd49907a7847f
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Jan 28 09:06:17 2016 +0100
+
+ Fix memory leak in file triggers
+
+ (cherry picked from commit 6e23e20263ce093289d81c61233833b9013343c9)
+
+commit fd23f0197c571d95e51aed46bf8227e603ebeaab
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Jan 19 14:37:07 2016 +0100
+
+ Fix %autosetup to not cause errors during run of rpmspec tool
+
+ Firstly %autosetup showed an error during its expansion if some patch
+ wasn't available, that is an error was showed during parsing of a spec
+ file. This caused showing an error during execution of rpmspec
+ tool (rhbz:1293687).
+
+ Now %autosetup doesn't cause an error during parsing of a spec file but
+ it causes an error during building of specfile if some patch is not
+ available. Also old macro %patch behaves similarly.
+
+ (cherry picked from commit 231a7213b90a8dfba426737732e2dc6e62acfbad)
+
+commit ceb0ee08f1e83fc2800279d835f7cc554a0250f6
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Jan 15 15:41:52 2016 +0100
+
+ Fix recursive calling of rpmdeps tool (rhbz:1297557)
+
+ (cherry picked from commit 33158b3b009e830036d05c138a6b308c1574effe)
+
+commit 69ca753b171830eb623fd9e4129371a0f9a1d2f3
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Jan 15 14:32:47 2016 +0100
+
+ Add support for %missingok as a standalone file attribute
+
+ (cherry picked from commit 8efe51e8c24b7739f0bf7680e21083c8964633f5)
+
+commit ed8fee028e5307dcec2cdb26d880ae737bfbdf21
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Nov 27 13:40:33 2015 +0100
+
+ Sanity check that there is at least one tag in header region
+
+ (cherry picked from commit 8e847d52c811e9a57239e18672d40f781e0ec48e)
+
+commit 23d8e811e88555ea7b4e6981bf31ea2b3157dbbe
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Nov 26 15:20:05 2015 +0100
+
+ rpmExpandMacros() is modified to be able to return more return codes
+
+ Now rpmExpandMacros() returns integer as a return value. Negative return
+ value implies failure. Return values can be more utilized in the future.
+ E. g. return value could specify how many macros were expanded in given
+ string.
+
+ (cherry picked from commit ddf9ec7befe83ba1a12453a56e4e471aa9bcf4d3)
+
+commit eff3134ef5931b6097eee80269a6aa40994d6502
+Author: Tom Hughes <tom@compton.nu>
+Date: Mon Nov 23 09:38:37 2015 +0000
+
+ Rename expandMacrosU to rpmExpandMacros
+
+ Address review issues from #32 by renaming the function and
+ cleaning up the comment and parameter list.
+
+ (cherry picked from commit aee8446eb498fec7bfd7a2848ab97440b7bb7226)
+
+commit 97d7384c20660b873cbb0d04110311208eb7fb84
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed Nov 25 10:08:29 2015 +0100
+
+ Remove option --priority for file triggers, leave option -P
+
+ The long option --prority never worked because everything after "--" is
+ considered to be a trigger target. For setting priority of a file trigger
+ the short option "-P" can be used.
+
+ (cherry picked from commit 5e4c16f39d650ef3d037d44c136e26f04e4f1856)
+
+commit ac908ed8f5ce3425b20cb06e198c05de58f52550
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Nov 23 15:05:13 2015 +0100
+
+ Add possibility to disable file triggers.
+
+ Now options --notriggers, --notriggerin, --notriggerun, --notriggerpostun
+ disable also file triggers and not only normal trigges. Transaction file
+ triggers can be also disabled with --nopretrans and --nopostrans options.
+
+ Before this patch file triggers weren't disabled when option --test was
+ specified. That caused unwanted multiple execution of file triggers
+ in dnf because dnf executes transaction with flag test before executing
+ transaction for real (rhbz:1282115).
+
+ (cherry picked from commit a0f2d94c3c258ebd95479a6b11c80c1ecd6d2cab)
+
+commit a79b867a1ac38e76a55fafe3f339dd747e2dd9b2
+Author: Tom Hughes <tom@compton.nu>
+Date: Tue Nov 17 17:36:16 2015 +0000
+
+ Remove size limit when expanding macros
+
+ This removes a seemingly undocumented, and not even well defined, limit
+ on the size of a macro expansion when parsing a spec file.
+
+ [lkardos@redhat.com: created new funtion expandMacrosU() (Unlimited)
+ instead of modifying expandMacros() in order not to change API/ABI]
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+ (cherry picked from commit 61838b0fdacb71a881baac164043b8e40ddfbec5)
+
+commit 12836c50ece1636a49cbc9a01141ef31f46fbeed
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed Nov 18 15:44:08 2015 +0100
+
+ Fix next_brace_sub() to return NULL if braces don't match.
+
+ Our implementation of glob() is copied from glibc (2.1 probably) which
+ has buggy implementation of next_brace_sub(). It is fixed in the newer
+ version of glibc. Now next_brace_sub() is modified according to newer
+ (fixed) version of glic. We didn't reveal this bug sooner because brace
+ expansion was disabled in rpm but we enabled brace expansion in
+ commit d14ecfe587efbe80e5534161dbd3a4f7158b4e2b.
+
+ (cherry picked from commit 1af568ac883fe06e932a7fc8f8035eb04e621907)
+
+commit 0b881bd61b3a483982819dce5a65095b6455cc2e
+Author: Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>
+Date: Fri Nov 13 08:52:50 2015 -0500
+
+ Fix fstat64 conditional and definition typo
+
+ So, as it turns out, pretty much all libc implementations
+ except for legacy ones implement it as fstat64(), so we
+ will use fstat64() unless otherwise necessary.
+
+ Also, fix typo in checking for _D_EXACT_NAMLEN definition.
+
+ (cherry picked from commit ff3e57c343bbf99e2b7a92a5897551d60f47572a)
+
+commit c768e76aa1cbc64c8da344a6adfdd0ce5999ec2b
+Author: Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>
+Date: Mon Nov 9 01:42:01 2015 -0500
+
+ Set up portable definitions to support μClibc and MUSL
+
+ The definitions were refactored because musl-libc does
+ not offer a __MUSL__ definition and μClibc tries to
+ identify as glibc, even though it's not quite compatible.
+
+ A nice side effect of this is that the platform support
+ definitions are somewhat simpler now.
+
+ (cherry picked from commit 4f7c802ebe26d095e2b623a9bb4acba3fe3ef758)
+
+commit 78e8af9c18e22e954bb75cc78b762b21e41a3b0d
Author: Lubos Kardos <lkardos@redhat.com>
Date: Fri Nov 6 14:49:59 2015 +0100
@@ -149,7 +822,1880 @@ Date: Fri Nov 6 14:49:59 2015 +0100
(cherry picked from commit 9c36ca411332d2718eca339e867561c39abc256b)
-commit 9b2942bef39af2a013aa457c019f38b6b747361e
+commit e0b5ab34efaad7d1423f62a33e3fc09054c0c83b
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Nov 6 12:45:32 2015 +0100
+
+ Fix SIGSEGV in case of old unsupported gpg keys (rhbz:1277464)
+
+ Regression from: a173d781a631a92524ce5be364c679ba19b3e321
+ Adds also warning that gpg key is not supported.
+
+ (cherry picked from commit 2dd06933726cf5191e05264901789f8e1da6e51d)
+
+commit df07d7e579371d272826399dbc1d8b595fdc2109
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Oct 30 14:42:32 2015 +0100
+
+ Ignore SIGPIPE signals during execucton of scriptlets (rhbz:1264198)
+
+ (cherry picked from commit 90d8cc16486479441477e89c2e09bd4f9f7604bb)
+
+commit 075470fd12410ad7973d94ddc30615eb5b01c014
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Oct 23 14:21:58 2015 +0200
+
+ Make terminating build if version format is wrong configurable
+
+ (cherry picked from commit 5e94633660d0e2b970bf42f1dc24346ed46cae2e)
+
+commit d1d30adf715540928eede0e1b39e029a80793ccc
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Oct 23 12:20:45 2015 +0200
+
+ Warn if epoch is not unsigned integer (rhbz:1251453)
+
+ (cherry picked from commit f5bab7c054de3607d43dcc5ee8a04c2e3cd46926)
+
+commit 76456f67c32e3a4354351505ac73f76fa95c58ee
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Oct 12 12:47:45 2015 +0200
+
+ Permit scriptlet exec context setting to fail in non-enforcing modes
+
+ for new code path, too.
+
+ See also 9c082fb8689efdaa5a595d3043e67ccec4ed930c
+
+ (cherry picked from commit 0d214a17e412bffa00cfede2d884f02ac78b8434)
+
+commit 3aac162051fbaf2a97e20922298a003fee9f7337
+Author: Thierry Vignaud <thierry.vignaud@gmail.com>
+Date: Thu Sep 17 04:36:47 2015 -0400
+
+ fix %autopatch when patch do not exist
+
+ unlike Mageia's %apply_patches which inspired it, %autopatch continues
+ when it fails to apply a patch because it doesn't exists. Eg:
+
+ + /usr/bin/cat /home/tv/rpmbuild/SOURCES/test.patch2
+ + /usr/bin/patch -p1 -s
+ /usr/bin/cat: /home/tv/rpmbuild/SOURCES/test.patch2: No such file or directory
+ + /usr/bin/cat /home/tv/rpmbuild/SOURCES/test.patch
+ + /usr/bin/patch -p1 -s
+
+ Let's catch that error
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+ (cherry picked from commit 73ea59e0d53503bb45d5eac9d9792127a6d04c23)
+
+commit d850ed04909503fff7d5ed2e5f1eb3ea02ee5987
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Sep 21 14:13:22 2015 +0200
+
+ Add support for various types of dependencies to rpmdeps tool
+
+ Options added to rpmdeps tool:
+ --recommends
+ --suggests
+ --supplements
+ --enhances
+ --conflicts
+ --obsoletes
+
+ (cherry picked from commit 7a84b45c62cd25c4c68ad295ac5f360b1daebf6a)
+
+commit d2845ebb6cae6b273b923952f45deebddd6ceb00
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Sep 21 11:02:45 2015 +0200
+
+ Fix reading a memory right after the end of an allocated area.
+
+ The problem evinced itself when somebody tried to use the macro
+ expansion on the string "%!". The problem was revealed by compiling
+ with "--fsanitize=memory" (rhbz:#1260248).
+
+ (cherry picked from commit 54f24ec5486bdacde9419466a2c27defaddf508e)
+
+commit 114c5c0a92a3bbe5665bedcba845aeae19af252d
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Sep 7 11:39:36 2015 +0200
+
+ Fix rpmrichOpStr to use the new syntax
+
+ You need to rebuild all packages using rich deps build with previous versions of rpm as the richdeps are converted to the old syntax.
+
+ (cherry picked from commit d20b7d2b00e349610f3cf08d9ff3723cc7c56e32)
+
+commit 1f1469ef26171b3fffab38fecf0834dce7a9559d
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Aug 29 18:08:29 2016 +0200
+
+ tests: Do not pass real pathnames to fakechroot commands
+
+ for the remaining tests.
+ Also add a Provides: /bin/sh to one of the specs as the test does no longer
+ works without for some unknown reason.
+
+ (cherry picked from commit 394cbfb668655f7aa10ff6b178ec92b44a117ea6)
+
+commit 3a392532b0074bb7744c4d682f52834e942f50a2
+Author: Michal Marek <mmarek@suse.com>
+Date: Fri Aug 12 21:47:16 2016 +0200
+
+ tests: Do not pass real pathnames to fakechroot commands
+
+ Fakechroot returns -ENOENT for such paths:
+
+ $ FAKECHROOT_BASE=$PWD/tests/testing fakechroot ls /not_an.rpm
+ /not_an.rpm
+ $ FAKECHROOT_BASE=$PWD/tests/testing fakechroot ls $PWD/not_an.rpm
+ ls: cannot access /home/mmarek/GIT/rpm/not_an.rpm: No such file or directory
+
+ Signed-off-by: Michal Marek <mmarek@suse.com>
+ (cherry picked from commit 5b8b2bdd328c36d400ea6b73869b447941173a9b)
+
+commit 29f2dae9eb61bbb1aeb0784ce8571952028c9290
+Author: Mark Wielaard <mjw@redhat.com>
+Date: Fri Mar 18 16:16:50 2016 +0100
+
+ Fix rpmi.at testcase by checking actual datadir and docdir used.
+
+ The testcase for rpm -i with/without --excludedocs had hardcoded paths
+ checking if files were installed or not. This meant that depending on
+ the configure --prefix used the test might fail because the datadir
+ and/or docdir were different from expected. Fixed by checking the
+ actual datadir and (default)docdir to test against.
+
+ (cherry picked from commit 18bf1aa6d975abc2f5c63cc599b0fbef1ba691e7)
+
+commit 3c5cff1e435e80626820b096f7b00b4c3bf6e562
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Jan 14 13:35:28 2016 +0100
+
+ Fix not chrooting transaction file triggers
+
+ previously those filetriggers would call tools out of the chroot, which
+ breaks installers such as DrakX or Anaconda.
+
+ See https://bugs.mageia.org/show_bug.cgi?id=17217
+
+ Thanks Thierry Vignaud for finding and helping to solve this.
+
+commit 8503d6516ed2540665441c651b78e173dbdfb55c
+Author: Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>
+Date: Wed Oct 21 13:47:20 2015 -0400
+
+ Add "-O" to %make_build
+
+ In order to preserve our sanity when reading logs of
+ %make_build output, adding "-O" to %make_build keeps the output
+ of each thread contiguous, making the resultant build log
+ readable and useful. See GNU Make manual for details on the switch.
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit ea9c4bf2e3f21ed435cd01055506aa3169acd90f
+Author: Florian Festi <ffesti@redhat.com>
+Date: Wed Sep 2 13:53:33 2015 +0200
+
+ Preparing for rpm 4.13.0-rc1
+
+commit 00bda5ac78d37441f23bebdca2407738ab9eecfb
+Author: Florian Festi <ffesti@redhat.com>
+Date: Wed Sep 2 12:22:45 2015 +0200
+
+ Update translations from Transifex
+
+commit 1501d188fb9ad30de12cff6e4f0358d1e789c800
+Author: Fionnuala Gunter <fin.gunter@hypori.com>
+Date: Sun Aug 16 01:03:54 2015 -0500
+
+ Fix file signatures not installing
+
+ Only the first file signature was getting installed. rpmfiNext returns
+ the next file iterator index and -1 on termination. Now the loop correctly
+ terminates only when rpmfiNext return value is negative.
+
+ (cherry picked from commit 7bcc79b239602d92d093f12adc3cd9a6da192129)
+
+commit 520bce6de4db15e8f662ed60b823999fc40172f0
+Author: Fionnuala Gunter <fin.gunter@hypori.com>
+Date: Thu Aug 27 19:22:51 2015 -0500
+
+ Fix file signatures issue with sig header size changes
+
+ When file signatures are added to a package the signature digests are
+ replaced. Sometimes the resulting signature header has a different size.
+ To solve this, gpg reserved space is omitted. This forces the rpm to be
+ rewritten when file signatures are added.
+
+ Changelog:
+ -no longer effects delsign
+
+ (cherry picked from commit 3e730133409ecae86b7f29dd02e31929ffebfac3)
+
+commit 07b6b2c616797272255ff2b0610ab9c916963a01
+Author: Florian Festi <ffesti@redhat.com>
+Date: Tue Sep 1 10:28:05 2015 +0200
+
+ Fix doc strings and though doxygen warnings
+
+ (cherry picked from commit a2826033bec5af26b9c25614fbb4899f0029445e)
+
+commit 9834f938044cb39111c12051439ea82286ab454f
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Aug 31 16:39:34 2015 +0200
+
+ Choose syntax for rich deps: if, else, and, or
+
+ (cherry picked from commit ba6242359071732837b6a48098f8e045fbca81a2)
+
+commit b4cf0ba5d992a0817c670f17329d05e3a2c81c39
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Aug 31 16:40:20 2015 +0200
+
+ Remove RPMSENSE_RICH and replace its use with rpmdsIsRich()
+
+ (cherry picked from commit 3624918d690ef3d04cc137c5f4d3d923365393c9)
+
+commit 4f778fbc8f51f275ee3f938d59471506dc11e231
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Aug 31 16:38:32 2015 +0200
+
+ Add rpmdsIsRich() function to replace RPMSENSE_RICH
+
+ (cherry picked from commit e6dbdae8dcbc8f239c9c4dad8a1122522dbb40f4)
+
+commit d27f0167aa53951c4164a5d49149ad416c5a1ee4
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Aug 31 16:03:51 2015 +0200
+
+ Get rid of warnigs caused by d18fdd7f8964d01b4dfc39bf84133695cff5a13a
+
+commit 63f8efc267bd42c2bdfa0c9c8dfd8dd168411f3a
+Author: Thierry Vignaud <thierry.vignaud@gmail.com>
+Date: Thu Feb 12 10:59:31 2009 +0000
+
+ really default to default XZ compression level
+
+ which BTW fix the default compression level which is 6 instead of 7
+
+commit d39198e14ab8a46dc525ed9bfa67cc15835aa5ea
+Author: unknown author <cooker@mandrivalinux.org>
+Date: Mon Jan 5 13:29:57 2009 +0000
+
+ Transmeta Crusoe is i686
+
+ Crusoe CPUs say that their CPU family is "5" but they have enough
+ features for i686.
+ (from TurboLinux)
+
+commit 394b90168138bee0191f865ed98e639234e712ca
+Author: Thierry Vignaud <thierry.vignaud@gmail.com>
+Date: Fri Aug 28 08:12:32 2015 -0400
+
+ allow having "identical" trans file triggers
+
+ Else rpm exits on a assert() if two file triggers traps on the same path:
+ D: %triggerin(null-1:11-11.mga6.x86_64): waitpid(19591) rc 19591 status 0
+ rpm: backend/dbiset.c:62: dbiIndexSetUniq: Assertion `set->count > 0' failed.
+
+ What's more it leaves rpmdb in a bad state...
+
+ Last but not least, commit 3ae1c414f69a0eddbfecd4341dd27c7a5e90e12a
+ explicitly enables us to build a package with several "identical" file triggers
+
+commit 1382ef0c6c97ca6b80df6452764688d5151305ab
+Author: Jerome Quelin <jquelin@mageia.org>
+Date: Sat Feb 26 12:04:53 2011 -0400
+
+ add support for _ in perl module version
+
+commit 3ee146e1e27c8a42edd7e15911ccaf3fddfa5066
+Author: Jérôme Quelin <jquelin@mandriva.org>
+Date: Fri Mar 12 17:22:23 2010 +0000
+
+ skip plain, regular comments
+
+ how comes this has not been spotted earlier? (sigh)
+
+commit 548dc9f38f3a0e653f852e0d1c1b5db5734a7571
+Author: Rafael Garcia-Suarez <rgarciasuarez@mandriva.org>
+Date: Thu Mar 16 14:19:14 2006 +0000
+
+ ignore non module perl files for provides if
+
+ Don't search perl files for provides if they don't end with .pm (because
+ if they don't, the perl interpreter won't look them up in @INC)
+
+commit 936956715c7071bb079899cd4a0e15f9e2da4afa
+Author: Per Øyvind Karlsen <proyvind@moondrake.org>
+Date: Wed Aug 12 02:15:45 2015 +0200
+
+ add support for MATE (GNOME 2 fork) desktop help files to find-lang.sh
+
+commit f78e5643c9a77caced64610bed1271293b1aefd2
+Author: Per Øyvind Karlsen <proyvind@moondrake.org>
+Date: Wed Aug 12 02:13:41 2015 +0200
+
+ make find-lang.sh handle man pages already compressed
+
+commit 0c42871ff407a3eeb1e8b8c1de9395f35659c987
+Author: Per Øyvind Karlsen <proyvind@moondrake.org>
+Date: Wed Aug 12 02:08:37 2015 +0200
+
+ add support for finding html files with find-lang.sh --with-html
+
+commit 74913fc97a718c59ca4b2c80ad3d57f2cfffdce2
+Author: Per Øyvind Karlsen <proyvind@moondrake.org>
+Date: Wed Aug 12 01:27:52 2015 +0200
+
+ only set default values for $COMPRESS & $COMPRESS_EXT if environment variables isn't already set, allowing to overriding these
+
+commit 8fc302673925bed24ab2a5962dbe4458947285f6
+Author: Thierry Vignaud <thierry.vignaud@gmail.com>
+Date: Fri Aug 28 05:17:59 2015 -0400
+
+ do not bytecompile python scripts in docdir
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit 62f39308baa2375cda75705c86cba13432817185
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Aug 25 13:47:03 2015 +0200
+
+ Remove RPMRICHOP_THEN, make ELSE work with IF complex op
+
+ Thus we now have "A IF Cond ELSE B".
+
+commit 1e40d9c3df0d0c1d0050ccfd424a3933c02eb1f8
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed Aug 19 11:01:00 2015 +0200
+
+ Include header files for new backend in distribution tarball
+
+commit edd709e45335945c152d1dee4d93d68bc0916895
+Author: Mimi Zohar <zohar@us.ibm.com>
+Date: Tue Jul 21 12:00:46 2015 -0500
+
+ Add support for passing the file signing key password
+
+ The option to provide a password for signing an RPM package was
+ recently removed in favor of using the underlying mechanisms.
+
+ Requiring a user to enter a password for each file being signed,
+ however, is tedious. This patch adds support for prompting the
+ user for the password.
+
+ Dependency on ima-evm-utils version > "0.9"
+
+ Changelog:
+ - update get_fskpass() based on Dmitry's comments
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit 496fa25704ea1056a1e3f75f4da9c39dc6e40aa9
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:45 2015 -0500
+
+ Documentation for file signing
+
+ This patch adds documentation for signing files.
+
+ Changelog:
+ - Removed new file signature macro example - Mimi
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit 8c70222a1fde1268f4c88fc1a54fad51b4658f16
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:44 2015 -0500
+
+ IMA plugin labels ima xattr with file signatures
+
+ This plugin extracts file signatures from rpmfiles and writes them to
+ security.ima xattr. Only non-config file signatures are installed.
+
+ Changelog:
+ - use rpmfi instead of rpmfiles
+ - use rpmfiFN instead of fsmFsPath
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit 6e9eab345a18d01f0c2c35fa8bb842744093364c
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:43 2015 -0500
+
+ Add file signature support to package signing
+
+ This patch modifies rpmSign to include file signatures in the header.
+ Since the header is altered, the package digest and package+archive
+ digest need to be recalculated and updated in the signature header.
+ Defer resigning the header digests to replaceSignature().
+
+ Changelog:
+ - removed extraneous semicolon - Mimi
+ - Update signature header digests only if necessary - Mimi
+ - deallocate sigp before it's overriden - Fin
+ - fix dependency on ima - Fin
+ - replace utd parameter with a local variable - Mimi
+ - fix sigsize - Fin
+ - calculate MD5 digest with SHA1 - Fin
+ - removed unused buffer - Fin
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit dd19c1957291072f91eb97799112d8868871af77
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:42 2015 -0500
+
+ Add file signature support to rpmsign command
+
+ This patch extends the rpmsign tool to sign package files. It defines a new
+ rpmsign option called "signfiles".
+
+ rpm --addsign [--signfiles] PACKAGE
+
+ Signfiles signs all the file digests included in the package and stores
+ the signatures in the package header. The file signing key, used to sign
+ the file digests, can be provided one the command line with --fskpath or
+ in a macro file with %_file_signing_key. After including file signatures,
+ the package is signed normally.
+
+ The package needs to be built with SHA-1 or SHA-2 digests before package
+ files are signed, this prerequisite is noted in rpmsign man page.
+
+ Changelog:
+ - throw argerror when --fskpath is used without --signfiles
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit b07c13e5cae205d416f3c3570e3f8101e7182dab
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:41 2015 -0500
+
+ Sign file digests and store signatures in header
+
+ This patch introduces rpmSignFiles, which extracts file digests from
+ the provided header and signs them using libimaevm and the provided key.
+ The file signatures are stored in the header as hex strings under the
+ tag RPM_FILESIGNATURES.
+
+ Changelog:
+ - fix signatureLength() - Mimi
+ - remove existing file signatures and the file signature length, before
+ adding new file signatures. - Mimi
+ - fix dependency on ima - Fin
+
+ [lkardos@redhat.com: fixed indentation]
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit 12e5e5224246b2cc2140c458a479e648b791c793
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:40 2015 -0500
+
+ Configure option to build with imaevm support
+
+ This patch adds a config option to build with libimaevm which is needed
+ for file signing.
+
+ Changelog:
+ - Add AM_CONDITIONAL WITH_IMAEVM
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit ab5c6243a6a7b5dea9a10409fa7a5433b168a03d
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:39 2015 -0500
+
+ Add support for file signatures to rpmfi and rpmfiles
+
+ This patch adds file signatures and file signature length to rpmfiles.
+ These new members are set in rpmfilesPopulate, and they can be accessed
+ with rpmfiFSignature.
+
+ Changelog:
+ - simplified logic in rpmfilesPopulate
+ - removed empty line
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit 146fcc32c23670c019428b117d3d7cd4d5d89963
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:38 2015 -0500
+
+ Subroutine for dumping immutable region of header
+
+ This patch creates a subroutine for dumping the immutable region of
+ a header. It copies the header sections into a new header that can
+ be altered.
+
+ Changelog:
+ - deallocate old hdrp
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit b7e9a60370d910febbe8c69e2d2cac7512051eb3
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:37 2015 -0500
+
+ Add rpmtags for file signatures and their length
+
+ This patch adds rpmtags for file signatures and their length, so they
+ can be stored in the package header.
+
+ Changelog:
+ - update rpmtag values (rebase error) - Mimi
+ - fix test case 0004 - Florian
+ - update rpmtag values again - Fin
+
+ [lkardos@redhat.com: tag numbers was changed in order not to conflict]
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit ca6389b617e4ac90c92688e105a695aa1ae9ba43
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:36 2015 -0500
+
+ Export generateSignature
+
+ This patch exports generateSignature under the new name rpmGenerateSignature
+ so that includeFileSignatures can call it.
+
+ [lkardos@redhat.com: fixed indentation]
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit e4664bf8bdd93508e073179fc19521433b79692f
+Author: fin@linux.vnet.ibm.com <fin@linux.vnet.ibm.com>
+Date: Tue Jul 21 12:00:35 2015 -0500
+
+ Refactor copyFile to not close files
+
+ This patch refactors copyFile so that it doesn't close sfdp and tfdp,
+ since copyFile didn't open those files. Also, the caller to copyFile
+ closes these files. This patch also adds descriptions of copyFile
+ parameters.
+
+ Changelog:
+ - removed call to manageFile() since copyFile() arguments are open files
+
+ Signed-off-by: Lubos Kardos <lkardos@redhat.com>
+
+commit aec4f88ed585aedae1b35f447ee730a9054d6a4a
+Author: Thierry Vignaud <thierry.vignaud@gmail.com>
+Date: Mon Aug 10 04:38:47 2015 -0400
+
+ Fix last occurence of PyString
+
+ This should have been done in
+ commit 1866fc41c8fdf5a82705cee7f1043d5fb634c3be
+ This fixes:
+
+ $ python3 -c 'import rpm._rpmb'
+ Traceback (most recent call last):
+ File "<string>", line 1, in <module>
+ ImportError: /usr/lib64/python3.4/site-packages/rpm/_rpmb.cpython-34m.so: undefined symbol: PyString_FromString
+
+commit d18fdd7f8964d01b4dfc39bf84133695cff5a13a
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Aug 6 14:28:25 2015 +0200
+
+ Add --filetriggers option to show info about file triggers.
+
+commit c16c70cbd6b31cd93541d5c22d23ba98d212ad3d
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Aug 3 12:10:14 2015 +0200
+
+ If globbing of a filename fails, try use the filename without globbing.
+
+ Commit d14ecfe587efbe80e5534161dbd3a4f7158b4e2b enabled {} expansion
+ but {} expansion caused regresion because rpm tried to expand filenames
+ which weren't expanded previously and expansion failed because these
+ filenames weren't supposed to be expanded. Now if expansion fails then
+ rpm tries to use original filename.
+
+commit 630a0970df46df6cc96a68349cf4e08d8b4ca772
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Aug 3 16:51:11 2015 +0200
+
+ Modify rpmIsGlob() to be more precise.
+
+ Now rpmIsGlob() checks if braces expansion pattern is well formed and
+ not only if it contains opening and closing brace. The checking
+ procedure is same as procedure in glob() so rpmIsGlob() and glob() are
+ now compatible.
+
+commit 655ca18630d4a89e022b51ea495fa63718303413
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Jul 30 16:23:58 2015 +0200
+
+ Don't warn when an escaped macro is in comment.
+
+ - Related to 2a3f49585e5bd82d0bbfe5b9d6cdf24d9501b5cd
+
+commit 8ea5374c2dc1e29dbf5eba2ef0ebc11966dd3214
+Author: Florian Festi <ffesti@redhat.com>
+Date: Tue Jul 28 16:40:22 2015 +0200
+
+ Add doc string for rpmCallbackFunction
+
+commit 46ba709a3b2b7651ccbb9425e73771e1f5be5db8
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Jul 27 18:52:25 2015 +0200
+
+ Fix compressed patches
+
+ Regression caused by d9f673bf2841bb8c854e6676871078ab563a51c9 caused uncompressed patch content to be printed out to std instead of being piped into patch command.
+
+commit d14ecfe587efbe80e5534161dbd3a4f7158b4e2b
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Jul 27 11:22:19 2015 +0200
+
+ Enable {} expansion in rpmGlob() (rhbz:1246743)
+
+commit ad23043ad42fb3ea889dcc41432fc3ebcddbd991
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Jul 24 10:10:23 2015 +0200
+
+ Update Language files
+
+commit 1e3dd48f5a7f5b0a6cd5a998266c14f8fcca181f
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Jul 24 10:08:59 2015 +0200
+
+ Bump library version
+
+commit 9ce23c96772e14cf68b26ce3a228eef7c962efb8
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu Jul 23 14:39:30 2015 +0200
+
+ Add --build-in-place option to rpmbuild man page
+
+commit 1380accf3649cc43ddb4efa1aa629de4f75f4fc8
+Author: Juha Kallioinen <juha.kallioinen@jolla.com>
+Date: Tue May 26 14:10:02 2015 +0200
+
+ rpmbuild: Fix build-in-place to work with target option
+
+ Fixes the case when --target= and --build-in-place are both given to
+ rpmbuild. The build-in-place macro was reset when looping all the
+ given targets and rpmbuild ended up requiring a tarball.
+
+ Signed-off-by: Juha Kallioinen <juha.kallioinen@jolla.com>
+
+commit 0265acbde87036df08da16507a8c4c9a9e6c3c64
+Author: David Greaves <david@dgreaves.com>
+Date: Tue May 26 14:08:16 2015 +0200
+
+ rpmbuild: Support --build-in-place to run build and install from CWD
+
+ Control using _build_in_place macro which can be set by the new arg.
+
+ Sets _builddir macro to cwd and skips handling of -n and untar in the
+ %setup script.
+
+ Signed-off-by: David Greaves <david@dgreaves.com>
+
+commit 35dd0fd04e998e8525767b9c1b88a5faac46c47d
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu Jul 23 12:27:35 2015 +0200
+
+ Add --noprep option to rpmbuild man page
+
+commit 4f69f8b482e1bd61d5a7e1c8214e2ebc6cb66c5d
+Author: David Greaves <david@dgreaves.com>
+Date: Tue May 26 12:31:51 2015 +0200
+
+ rpmbuild: Add "--noprep" to not execute %prep stage
+
+commit ee5deb26c56a40d1dca39ea735230cb0a6beeb19
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu Jul 23 17:20:25 2015 +0200
+
+ Make test case not fail as non root
+
+commit 8100d663c138502cf26e5b751e7082115de6ede6
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Jul 23 12:16:56 2015 +0200
+
+ Add priorities between file triggers and the other scriptlets.
+
+ File triggers defined with priority greater than or equal to 100000
+ will be executed before standard scriptlests. The other file triggers
+ will be executed after standard scriptlets.
+
+commit afdfbb6006fefa8bd1411cffc1a48c539ce65107
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed May 13 10:58:28 2015 +0200
+
+ Execute triggers in order of their priorities
+
+commit e2ac1b3406ae141d55bce7e6836b4917e54eb9f9
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon May 4 16:29:46 2015 +0200
+
+ Include trigger index in db index for triggers
+
+ So db index points not only to pkg header but to specific trigger in
+ pkg header. It is needed for the next commit.
+
+commit aef80dc151cb5c65ef76c124813800f2765e098b
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon May 4 16:29:46 2015 +0200
+
+ Parse file trigger priorities in spec files
+
+commit 861e92fd0a4f02367180ab1786048062aded8861
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue May 12 16:47:23 2015 +0200
+
+ File triggers moved to own file
+
+commit a173d781a631a92524ce5be364c679ba19b3e321
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Jul 21 16:09:37 2015 +0200
+
+ Enable verification of rpm packages signed with gpg subkeys.
+
+ Now rpm loads also gpg subkeys into keyring and not only gpg main keys.
+ So rpm can verify packages signed with gpg subkeys (rhbz:#227632).
+
+commit a742fc8ce934fd9e26264ffa18981796166d59f3
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Jul 21 16:22:51 2015 +0200
+
+ Store gpg subkey IDs in provides of the package containing gpg key.
+
+ Previously provides contained only ID of main gpg key. Now they
+ contains ID of main key and also IDs of subkeys. You can list all
+ keys of some gpg package with:
+
+ rpm --provides -q gpg-pubkey-...
+
+commit 355c9b069f25d3a9c3dc224fb39a90522c04ca28
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Jul 21 16:01:46 2015 +0200
+
+ Add rpmGetSubkeys() and pgpPrtParamsSubkeys() for getting gpg subkeys.
+
+ pgpPrtParamSubkeys() parses gpg packets to get gpg subkeys parameters.
+ rpmGetSubkeys() uses pgpPrtParamSubkeys() and it creates rpmPubkey
+ objects that can be insterted into rpm keyring.
+
+commit e31016d3c65e4b3c8ad0ffdb31e259f0ad7f8802
+Author: Florian Festi <ffesti@redhat.com>
+Date: Wed Jul 22 21:17:11 2015 +0200
+
+ Change po/POTFILES.in for lib/backend/dbconfig.c renamed to dbi.c
+
+commit e8a38dba598c4d089d723c0650bd662fc2fdbafc
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Jul 16 17:42:10 2015 +0200
+
+ Add INDEXSYNC db control op
+
+ We do this for two purposes: to fsync the index database and to
+ update the generation count so that we can detect when the database
+ is out of sync.
+
+commit 278216e6b326ba0e2612b937cf3dc8e6d8d99685
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Jul 16 17:31:23 2015 +0200
+
+ Lock the database when adding/removing headers or verifying dependencies
+
+ This is done both for correctness and speed.
+
+commit 6bc09fff4d5dc568b1b7bb369706eb3c24fa7e57
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Jul 16 17:23:12 2015 +0200
+
+ Add rpmdbCtrl / dbCtrl to manipulate the database
+
+ This will be used to allow coarse grained locking for ndb.
+
+commit b50d2adb3b3a27f1c67a711a80f998c0fbde9cce
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Jul 16 17:20:51 2015 +0200
+
+ Add experimental ndb database support
+
+ Use --enable-ndb for testing. Handle with care.
+
+commit 1defb7ec693a38032818d2beb219fac61c1992d0
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Jul 16 13:37:33 2015 +0200
+
+ Support multiple db backend implementations (again)
+
+commit 33a8b61a01007c634aadec766e1aebe91aa82298
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed Jul 15 13:05:02 2015 +0200
+
+ Fix infinite loop in case of importing invalid certificate.
+
+ Caused by commit eb7b41a68faf0ffea61ea688e3da17ddb8b56599
+
+commit a450ffc4ab7068b400b028d171256df90309ce90
+Author: Michal Toman <mtoman@fedoraproject.org>
+Date: Wed Jul 15 10:05:55 2015 +0200
+
+ Add support for MIPS platform
+
+commit 1cf58b30c88351cd6ff86cb2c15895cb85f54377
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Jul 14 10:06:31 2015 +0200
+
+ Fix regression in "--sign" option of rpmbuild command (rhbz:#1239039)
+
+ Regression from 0bce5fcf270711a2e077fba0fb7c5979ea007eb5
+
+commit eb7b41a68faf0ffea61ea688e3da17ddb8b56599
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Jul 13 17:05:23 2015 +0200
+
+ Properly import all public key certificates into rpmdb.
+
+ When somebody tried to import public key certificates from one file
+ that contained several certificates then only one package gpg-pubkey-*
+ was created in rpmdb. And it contained all certificates but it behaves
+ as if it had contained just one certificate. The fix properly splits
+ certificates into several gpg-pubkey-* packages (rhbz:#1238717).
+
+commit 168a6a2f14b96d575390b769847e064a70c1ddfe
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Jul 13 17:02:26 2015 +0200
+
+ Add pgpPubKeyCertLen() to get the length of the pub key certificate.
+
+commit 5b4805df2085b0e7c4f09caad62638c3238b3bc1
+Author: Florian Festi <ffesti@redhat.com>
+Date: Tue Jun 30 11:39:21 2015 +0200
+
+ Fix stripping of binaries for changed file output.
+
+ file will print a "warning" that it only processed up to 256 notes.
+
+ - Related: 659614aeb6fffe3b249c12b442bd85129100f73b
+ - Related: http://rpm.org/ticket/887
+ - Related: rhbz#1206312
+
+commit a283c737ed18a04cbb10f1a957c563e9fdc28b36
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Jun 25 16:45:57 2015 +0200
+
+ Eliminate leftover, macro HAVE_GETPASSPHRASE is not used any more.
+
+commit 541d6fdc512af5e2d342cebab8a0a8d34458b3a9
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu Jun 25 15:03:58 2015 +0200
+
+ Stress that --setperms and --setugids are mutually exclusive
+
+commit 059f19ea15c593ded291e18670393b9f0e8e432f
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu Jun 25 15:03:32 2015 +0200
+
+ Fix typo in rpm man page
+
+commit c336b1474402a566d5351ff41c45559d02a3389a
+Author: Florian Festi <ffesti@redhat.com>
+Date: Wed Jun 24 15:48:23 2015 +0200
+
+ Add --enhances, --recommends, --suggests and --supplements to the man page
+
+commit d2a6bec00041032f29bc65360adeff04f19f2db5
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Jun 22 11:12:08 2015 +0200
+
+ Don't bytecompile symlinks which point outside buildroot (rhbz:#1026469).
+
+commit 2a3f49585e5bd82d0bbfe5b9d6cdf24d9501b5cd
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Jun 12 17:26:25 2015 +0200
+
+ Warn when macro is expanded in comment.
+
+ This warning is showed only when readLine() is called with
+ STRIP_COMMENTS. Basically it means that this warning is not showed
+ for macros in scriptlets (rhbz:#1224660).
+
+commit beecf9cf26f6095c936368094c06ea3d84bd57f6
+Author: Alec Leamas <leamas.alec@gmail.com>
+Date: Fri Jun 12 15:12:26 2015 +0200
+
+ Add python binding for rpmSpecPkgGetSection with syntactic sugar
+
+ specpkg object now has fileFile, fileList, policyList attributes
+
+commit 05b7ac821487300f7c8924216087d9ee4347fe1d
+Author: Alec Leamas <leamas.alec@gmail.com>
+Date: Fri Jun 12 15:10:43 2015 +0200
+
+ Add rpmSpecPkgGetSection() to get fileFile, fileList and policyList
+
+ of package from a parsed spec file.
+
+commit f515907c71c03019a52f89921c41303fa5926b2a
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Jun 12 13:38:23 2015 +0200
+
+ Don't show error message if log function fails because of broken pipe.
+
+ - regression from commit 11b005c957fb0e52d42078480104d3e27e95e609
+ - rhbz: #1231138
+
+commit 0bce5fcf270711a2e077fba0fb7c5979ea007eb5
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Jun 9 18:06:29 2015 +0200
+
+ Allow gpg to get passphrase by itself.
+
+ Remove rpm asking for passphrase and then passing this passphrase
+ to gpg via file descriptor (--passphrase-fd) but provide gpg with
+ access to unredirected stdin to get passphrase directly from user.
+
+ Remove also macro %__gpg_check_password_cmd because in this new signing
+ scheme has no sense. rpm doesn't handle passphrase in any way,
+ everything is done in gpg including checking of passphrase.
+
+ We did this modification because of changes in gpg behavior. Since
+ gpg-2.1 option "--passphrase-fd" doesn't work by default, only when
+ it is explicitly allowed in gpg.conf. (rhbz:#1228234)
+
+commit 6a8924b4c9df8e3597f7b4aa3de46498d390c5a8
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Jun 9 14:19:59 2015 +0200
+
+ Use named pipe instead of stdin as input for gpg
+
+ This enables running gpg with access to the shell the rpmsign command
+ is running in. This is needed to allow gpg to get passphrase by itself.
+
+commit 140744377b019e0de81d76d0931c32228d2ed57e
+Author: Johannes Dewender <rpm@JonnyJD.net>
+Date: Mon May 18 10:11:13 2015 +0200
+
+ remove luaL_checkint, deprecated in lua 5.3
+
+ luaL_checkint and luaL_optint are deprecated in lua 5.3
+ The variants luaL_checkinteger and luaL_optinteger work
+ the same with an implicit typecast (lua_integer -> int).
+
+commit 93a2f6ae9285298830c0c62dbf2d62c4acd7d1b1
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu May 28 15:54:55 2015 +0200
+
+ Add --whatrecommends, --whatsuggests, --whatsupplements, --whatenhances
+
+ query parameters.
+
+commit 0bfa52dc740dea5e8213aa368d2154c865eeb60f
+Author: Florian Festi <ffesti@redhat.com>
+Date: Wed May 27 11:00:58 2015 +0200
+
+ Add Recommendname, Suggestname, Supplementname, Enhancename indexes to rpmdb
+
+commit b2bde386f609145f14fe9c98bba67b9db6e2b4ff
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue May 26 16:09:54 2015 +0200
+
+ Don't allow infinite recursion loop with "package file" manifests
+
+ - Now maximum rercursion level for "package file" manifests is 1000.
+ After this limit recursion is stopped and error is displayed.
+ (rhbz:#461352)
+
+commit b0359b7cb74ed3006ef1992dbd6a55ea4b98c9ce
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed May 13 13:48:35 2015 +0200
+
+ Fix segfault in prefix search implementation
+
+ - Regression from cc924b59cae3d7c473faeee22d68eb6bc914c0c2
+
+commit 3e1c30bd1230b25c2dfa6b6c55ca083322fe545c
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Apr 27 15:26:03 2015 +0200
+
+ Warn that --setugids can clear SUID and SGID bits.
+
+commit c7fa7b2fd7205b73c833831ab9f8c311f40b2ff1
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Apr 24 15:29:01 2015 +0200
+
+ Update depends of package that is already in set of removed packages.
+
+ If we have installed package foo-1-1 and we are doing update with
+ transaction containing foo-1-2 and foo-1-3 then first foo-1-2 is
+ set to depend on foo-1-1 but when foo-1-2 is replaced with foo-1-3,
+ foo-1-3 has to be set to depend on foo-1-1.
+
+commit 083514dc132bde674f3f4974ceb22751160e544d
+Author: Ville Skyttä <ville.skytta@iki.fi>
+Date: Thu Feb 26 16:26:58 2015 +0200
+
+ Make terminating build on empty %files manifest files configurable
+
+commit 357c68e9d47f5911ee99b71114745df631c70855
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Apr 24 13:55:49 2015 +0200
+
+ Fix ionice and IndexIterator testcases
+
+ ionice may use 'unknown' instead of 'none'. The sort order of the
+ IndexIterator is undefined.
+
+commit e97f580427a1b6cc0f005fbd2f559a60387a3cdf
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Apr 23 17:29:42 2015 +0200
+
+ Remove RPMDBI_PACKAGES from dbiTags
+
+ Should probably have been in commit 690d31b1c67707dcbf15be3a3202759471b3476b.
+
+commit 31c63e63a37f6f5fbc1c7b4542d9f9bf48be46b5
+Author: Michael Schroeder <mls@suse.de>
+Date: Wed Apr 22 11:20:47 2015 +0200
+
+ Rename dbconfig.c to dbi.c
+
+commit 50472217e2689ef29cd2ccf57716b12599546856
+Author: Michael Schroeder <mls@suse.de>
+Date: Wed Apr 22 11:16:24 2015 +0200
+
+ Move db3 configuration parser to db3.c
+
+ Now db3.c is the only file that includes db.h!
+
+commit fcfca36435f2e785189c0165d70391ee13a8967d
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Apr 21 16:34:54 2015 +0200
+
+ Add dbi arguments to pkgdbX/idxdbX functions
+
+ Turns out we need them if we want to support multiple backends,
+ as we can't access the private cursor elements.
+
+ (This reverts commit #70331520a0a9f1cb5ea446f1df28b740431a1fe4)
+
+commit e7dc616332516478f87605ec3e75931082518098
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Apr 21 15:45:32 2015 +0200
+
+ Consistency: change pkgdbX return type to rpmRC
+
+commit fa22ae413b223eb70d50321542bab1e688c5d359
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Apr 21 14:13:41 2015 +0200
+
+ Cosmetics: move idxdbKey function down
+
+ That way it is next to the other index functions.
+
+commit 98737c7d3ff90e485cb6c4a3bca82e2db3b3c58c
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Apr 21 13:58:13 2015 +0200
+
+ Remove dbiType() function
+
+ It's not used outside of db3, and the db3 code has direct access
+ to dbi_type.
+
+commit 3180e7288caeda8a0db3bcd25027cec2483666c5
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Apr 21 13:49:37 2015 +0200
+
+ Remove DBI_PRIMARY support from dbt2set and set2dbt
+
+ The functions only get called for index databases, so...
+
+commit 473e2ed0ab3b2de8997bfa4a1686d32b2cbaf5bd
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Apr 21 13:40:58 2015 +0200
+
+ Move dbiType() dbiFlags() dbiName() from db3 to dbconfig
+
+ They are not backend specific.
+
+commit b6462e325f9686dd8fb3348b77a852e66fff6b30
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Apr 21 12:10:19 2015 +0200
+
+ Drop dbi parameter from pkgdbX functions
+
+ Consistency with the idxdbX functions, the dbc is enough as
+ it contains a dbi pointer.
+
+commit 799e160773a30a8b0b92a9b026fa92c44db1b552
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Apr 20 17:01:40 2015 +0200
+
+ Call dbSetFSync with the db handle, not the dbenv
+
+commit c28d109f7dfcaa1fa96ef4d7959c19d5204ae321
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Apr 20 16:52:52 2015 +0200
+
+ Add a pkgdbKey function returning the last hdrKey
+
+ Use it to get rid of the hdrOffset pointer in pkgdbGet. And we
+ already have a idxdbKey function.
+
+commit 043aadd452f5aae3f0cd4b37fc879335e892a75d
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Apr 20 16:44:00 2015 +0200
+
+ Rename some dbcCursorX function to idxdbX
+
+ They are not generic cursor functions, and the change makes
+ the code consistent with the pkgdbX functions.
+
+commit 598825d824e66a07ead5a6e611e235ecab12292e
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Apr 20 16:34:26 2015 +0200
+
+ Move the "/" fixup into the db backend
+
+ As this is about a limitation of berkeley db and other backends
+ don't need it.
+
+commit cc924b59cae3d7c473faeee22d68eb6bc914c0c2
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Apr 20 16:07:36 2015 +0200
+
+ Move prefix search implementation into db backend code
+
+ This is done so that different backends can implement prefix
+ search in different ways. The commit also renames DBC_RANGE_SEARCH
+ to DBC_PREFIX_SEARCH.
+
+commit 69a4e83e7b4308a21d0b46e3911773971a26845b
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Apr 20 13:59:36 2015 +0200
+
+ Split package id creation from pkgdbPut
+
+ Simpler code is better.
+
+commit ad3b8f97e432de3bc95196d69cc4df99881c91e2
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Apr 20 13:46:17 2015 +0200
+
+ Always call pkgdbGet/Put with a cursor
+
+ Makes the code more consistent and simplifies the backend.
+
+commit 77146f94b598079a24ab779f71e6c2ebf151cd24
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Apr 16 08:22:41 2015 +0200
+
+ Allow multiple triggers fired by the some package of different versions
+
+ - related to:
+ 3ae1c414f69a0eddbfecd4341dd27c7a5e90e12a
+ c91d9f21d900ea3c65b0832c7be091f3246b4504
+
+commit b52a5ca55722b0b5316cf8189b6caa285ba5c469
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Apr 23 17:17:25 2015 +0200
+
+ Fix using wildcards after tag %doc
+
+ - Regression caused by:
+ a817b246330780902eaed12633ce9282ef715fd9
+ f16a522ca4be7090db5a3fc1a507e58a4d4946fd
+
+commit 284a771504ef24446bfacc240d77895f7e74e8b9
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Apr 24 09:55:42 2015 +0200
+
+ Fix doc strings
+
+commit 916d528b0bfcb33747e81a57021e01586aa82139
+Author: Florian Festi <ffesti@redhat.com>
+Date: Thu Apr 23 16:24:55 2015 +0200
+
+ Use user and group of the rpmbuild process or root for sources
+
+ if a file does not have a valid user or group name.
+ No longer issue an error if source files (including the spec file and patches)
+ have an invalid owner or group id set.
+
+commit a817b246330780902eaed12633ce9282ef715fd9
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Apr 20 13:39:00 2015 +0200
+
+ Fix using of relative path with more than one component after tag %doc
+
+ - Regresion from commit f16a522ca4be7090db5a3fc1a507e58a4d4946fd
+
+commit f16a522ca4be7090db5a3fc1a507e58a4d4946fd
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Apr 17 14:22:38 2015 +0200
+
+ Don't include not explicitly listed files from doc dir into package
+
+ - Previously if spec file cointained tag %doc then all files located
+ in doc dir (that path was generated by getSpecialDocDir()) was added
+ into package. Now only files explicitly listed in spec are added
+ (rhbz:#728959).
+
+commit baa324305e63c1a26113776e0770d3dd6a9ea05f
+Author: Ville Skyttä <ville.skytta@iki.fi>
+Date: Fri Apr 17 11:31:26 2015 +0300
+
+ python: flake8 cleanups
+
+ http://rpm.org/ticket/886
+
+commit 679556fa1f2af136b788dc980907556a3f85fc29
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Apr 17 10:23:14 2015 +0200
+
+ Replace using of undocumented bash feature with documented one.
+
+commit 0f784471bb57dd171b5da18b5ed5829c0053fc56
+Author: Florian Festi <ffesti@redhat.com>
+Date: Wed Apr 15 14:49:42 2015 +0200
+
+ Fix typo in rpmspec man page.
+
+ - Resolves: rhbz#1211554
+
+commit 363c015da5cbf315df267dc53580290984039804
+Author: Jan Kratochvil <jan.kratochvil@redhat.com>
+Date: Wed Apr 15 09:51:08 2015 +0200
+
+ Make sure references to go sources in debuginfo packages go to the installed path and not the source file in the build environment.
+
+ - Resolves: rhbz#1184221
+
+commit 1bd14464b9c6206602d1553fd24db7385e64ef55
+Author: Ville Skyttä <ville.skytta@iki.fi>
+Date: Sat Apr 11 10:34:09 2015 +0300
+
+ Indentation fixes
+
+commit 344f938670b8f7400ef177945cef5552783d450f
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Apr 10 17:28:17 2015 +0200
+
+ Fix adding of sources to lua variables during recursive parsing of spec
+
+ - Before this fix sources and patches weren't added to lua variables
+ "sources" and "patches" if they were located in spec file after tag
+ "BuildArch". Now it works.(rhbz:#1084309)
+
+commit 90976cf618cbeef1ab3dd557c0cfcff041330696
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Apr 10 16:21:42 2015 +0200
+
+ Check for multiple specfiles in the source tarball
+
+ - Give a meaningful error message
+ - Fix rhbz#886395
+
+commit 6ca6747b0694895bf1e8840223e6077f9376984e
+Author: David Martínez Moreno <ender@fb.com>
+Date: Sun Mar 22 23:38:53 2015 -0700
+
+ Reset nice and ionice priorities when executing scripts.
+
+ Sometimes you may consider running an entire yum upgrade wrapped on nice and
+ ionice to soften the effect of the upcoming I/O and CPU storm on the system.
+ The side effect of that is that restarted services and anything else executed
+ from the pre- and post- rm and installation scripts will be niced and ioniced as
+ well, defeating the whole idea.
+
+ With this, you are safe to run it, because we will reset nice and ionice values
+ right after fork() to the defaults.
+
+commit ee72c41d8b9994e4b1086c116927e8541a6ba592
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Mar 30 09:31:15 2015 +0200
+
+ Fix off-by-one error (rhbz:#1206750)
+
+ - Caused by commit b598ce37d76bde5b8a6029008531aba6d2fbf594
+
+commit 0f051ab3b5b7a5342029e49b9a72ec7499a3d6ad
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Mar 27 15:45:57 2015 +0100
+
+ Pass _find_debuginfo_opts -g to eu-strip for executables (rhbz:#1186563)
+
+commit 5d4d5e40c5a2634960385731743dc891ce9f1253
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Mar 27 11:10:02 2015 +0100
+
+ Unmask %license directive when parsing files manifest
+
+ See also 2225fd7e9297a62f66d7c9a190cf95d18ccbcd98
+ Resolves rhbz#1200761
+
+commit 11b005c957fb0e52d42078480104d3e27e95e609
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Mar 27 10:12:58 2015 +0100
+
+ Try to print error on stderr if log function failed (rhbz:#1139444)
+
+commit 5dd555adbed5dae6a9255bb17074d2b043d0244e
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Mar 27 09:57:29 2015 +0100
+
+ Add deprecation warning to description of "--addsign"
+
+commit 55735113178642ab4bcbd75c1adf7d7f9fc65894
+Author: Denis Ollier <larchunix@gmail.com>
+Date: Sun May 4 22:34:48 2014 +0200
+
+ Fix --last sorting with non-en locales
+
+ On some locales (e.g: french), sort interprets the space character as a
+ thousands separator. As a result, digit(s) at the beginning of package
+ names (e.g: '0' for 0ad), are merged with package installation
+ timestamp and the output of rpm -qa --last is wrong.
+
+ For instance, the following list:
+
+ 1398777401 0ad-0.0.15-3.fc20.x86_64
+ 1397901236 kernel-3.13.10-200.fc20.x86_64
+ 1399198174 kernel-3.14.2-200.fc20.x86_64
+
+ is sorted like this:
+
+ 1398777401 0ad-0.0.15-3.fc20.x86_64
+ 1399198174 kernel-3.14.2-200.fc20.x86_64
+ 1397901236 kernel-3.13.10-200.fc20.x86_64
+
+ instead of:
+
+ 1399198174 kernel-3.14.2-200.fc20.x86_64
+ 1398777401 0ad-0.0.15-3.fc20.x86_64
+ 1397901236 kernel-3.13.10-200.fc20.x86_64
+
+ This patch ensures that the space character is not interpreted as a
+ thousands separator anymore by setting the environment variable
+ LC_NUMERIC to C locale for numeric sorts.
+
+commit b30fca9eedd5c3963699ee5382f0ee1e32fbab7c
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Mar 20 16:52:12 2015 +0100
+
+ Add macro _vsflags_query_rpmdb
+
+ If it is defined then it is used for queries when "-p" is not set on
+ commandline. If it is not defined then macro _vsflags_query is used.
+ For queries with "-p" on commadline macro _vsflags_query is always used.
+ Macro _vsflags_query_rpmdb is set to 0xf0f00 (no checking) by default.
+ (rhbz:#438625)
+
+commit c91d9f21d900ea3c65b0832c7be091f3246b4504
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Mar 20 13:39:26 2015 +0100
+
+ Fix for previous commit.
+
+ We allow more triggers fired by on package. If triggers have different
+ types, one is triggerin and the second is triggerun.
+
+commit 3ae1c414f69a0eddbfecd4341dd27c7a5e90e12a
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Mar 20 13:16:41 2015 +0100
+
+ Deny build of package with more "normal" triggers fired by the same package.
+
+ "normal" trigger means trigger fired by package not by file (file trigger).
+
+commit 0fddb3cbd80fc763ecacfea5b82631f7693915c2
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Mar 20 12:16:30 2015 +0100
+
+ Add deprecation warning to %makeinstall (rhbz #1148195)
+
+commit 37582c9d040c17bc79c3619de08e095d8667a945
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Fri Mar 20 10:36:22 2015 +0100
+
+ Document rpmbuild --with / --without options (rhbz:#1187631)
+
+commit ef87314342a82d601a23cce600d9b9800caa6c78
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Mar 16 15:03:35 2015 +0100
+
+ Add test for rpm install option "--excludedocs"
+
+commit b598ce37d76bde5b8a6029008531aba6d2fbf594
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Mar 12 15:34:39 2015 +0100
+
+ Skip directory if contains subdirectory that contains only skipped files.
+
+ Previously directory was skipped from installation if it contained only
+ skipped files. But it wasn't skipped if it contained some subdirectory.
+ Now if subdirectory contains also only skipped files then subdirectory
+ and also parent directory are skipped. It is achieved by solving
+ subdirectories at first and then solving parent directories.
+ (rhbz#1192625)
+
+commit d9f673bf2841bb8c854e6676871078ab563a51c9
+Author: Pádraig Brady <P@draigBrady.com>
+Date: Tue Feb 17 16:47:10 2015 +0000
+
+ Diagnose corrupt/empty compressed patches
+
+ Currently the failure status from the decompression processes
+ is ignored, resulting in silent failures to apply corrupt
+ compressed patches, which is easily missed.
+
+ Adjust so that patch(1) (and thus the full command line) will fail.
+
+commit f793add4ae429e11664b403df4c32a73bc31a6e8
+Author: Pádraig Brady <P@draigBrady.com>
+Date: Tue Feb 17 16:30:00 2015 +0000
+
+ Use more accurate bzip2 patch detection
+
+ The existing code only checks for 'BZ' at the start of the file,
+ which has an unfortunate overlap with BugZilla, and thus is
+ quite possible to be at the start of a standard patch.
+
+ Instead check for 'BZh' at the start, which is what file(1) does.
+
+commit 2d418ad3c11bcf0261d0022ac177d13284a8d5fb
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Mar 10 15:53:02 2015 +0100
+
+ Deal with calling fork() without exec() in lua scriptlets.
+
+ Lua scriptlet is executed within rpm itself. So when no exec() is called
+ after fork() in lua scriptlet then the forked process continues to run
+ and duplicate the rest of the operations of the main rpm process. This
+ behaviour is dangerous, it can lead to corrupted rpm database. This
+ commit deals with this situation by terminating such a child process
+ before execution of any duplicate operation.
+
+commit 4d41ad89af715e730dd1a7538efdca58b7a10f21
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Feb 20 16:39:48 2015 +0100
+
+ Add rpm.setInterruptSafety() to Python binding
+
+commit 56f49d7f5af7c1c8a3eb478431356195adbfdd25
+Author: Colin Walters <walters@verbum.org>
+Date: Thu Feb 19 15:50:38 2015 -0500
+
+ Add API to completely disable librpm's use of Unix signal handlers
+
+ On Tue, Feb 17, 2015, at 07:07 AM, Florian Festi wrote:
+ > Sorry, for the last response. DevConf takes its toll...
+ >
+ > On 01/23/2015 04:07 AM, Colin Walters wrote:
+ > > Numerous consumers of librpm use it in a pattern where they're
+ > > constructing fresh chroots. For example, rpm-ostree operates this
+ > > way, and is used to provide atomic upgrades in concert with rpm.
+ > >
+ > > If the process dies due to SIGINT or another signal, the root can
+ > > simply be discarded.
+ > >
+ > > Currently today, rpm-ostree undoes the signal handlers after loading
+ > > librpm so that Control-C does what I want, but there's still a race
+ > > condition where the interrupt can be lost.
+ > >
+ > > Add an API so callers can disable the behavior.
+ >
+ > Is there any chance someone would want to switch them back on?
+
+ I can't think of one offhand...tools that interact with a live root
+ should be happy with what RPM does today, right?
+
+ > My gut
+ > feeling tells me this should rather be rpmsqSetInterruptSafety(int on);
+
+ But here's a patch which does it, in case you prefer it. I did write
+ a better API doc this time.
+
+ From ae6d2de85b7b81cf91318183ba253402ac538785 Mon Sep 17 00:00:00 2001
+ From: Colin Walters <walters@verbum.org>
+ Date: Thu, 22 Jan 2015 17:57:14 -0500
+ Subject: [PATCH] Add API to disable librpm's use of Unix signal handlers
+
+ Numerous consumers of librpm use it in a pattern where they're
+ constructing fresh chroots. For example, rpm-ostree operates this
+ way, and is used to provide atomic upgrades in concert with rpm.
+
+ If the process dies due to SIGINT or another signal, the root can
+ simply be discarded.
+
+ Currently today, rpm-ostree undoes the signal handlers after loading
+ librpm so that Control-C does what I want, but there's still a race
+ condition where the interrupt can be lost.
+
+ Add an API so callers can disable the behavior.
+
+commit b151b5297b574253e122014a40955d53af12749c
+Author: Florian Festi <ffesti@redhat.com>
+Date: Tue Feb 17 15:29:59 2015 +0100
+
+ Fix doxygen warnings
+
+ Make shure parameter descriptions in doc strings match the functions
+
+commit ae251c379c9838b61ede538f7fcb98ef4f1ed79f
+Author: Florian Festi <ffesti@redhat.com>
+Date: Tue Feb 17 15:28:40 2015 +0100
+
+ Update doxygen files
+
+ Removed now obsolete parameter parameterss
+
+commit 77d23fd38e90d62f724f4c97bf6ec446b49ffa3d
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Feb 16 14:52:51 2015 +0100
+
+ Fix problem that rpm get stuck if file trigger script doesn't read stdin.
+
+commit 67afe190ec6a2222d1c10647558026c564a523ee
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Feb 16 14:45:39 2015 +0100
+
+ Fix leaking of file descriptors.
+
+ This was caused by commit 278c55266682f61a23433224e0197997c572706a.
+
+commit fbdf2995c5fb9a826e9280e6014bc25586b811e3
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Feb 16 14:04:46 2015 +0100
+
+ Get rid of warnings about maybe uninitialized variables.
+
+ These warnings were caused by my recent file trigger commits. These
+ warnings are showed only with compiler option "-O2" and I used "-O0"
+ that's why I didn't notice them at first.
+
+commit 659614aeb6fffe3b249c12b442bd85129100f73b
+Author: Pascal Terjan <pterjan@gmail.com>
+Date: Mon Feb 16 13:08:50 2015 +0100
+
+ Fix debuginfo creation for changed file output.
+
+ file will print a "warning" that it only processed up to 256 notes.
+ Fixes: http://rpm.org/ticket/887
+
+commit 148e82833a384b438547c2d3610e3df4a50cf997
+Author: Guillem Jover <guillem@hadrons.org>
+Date: Thu Jan 15 17:01:48 2015 +0100
+
+ Use setexecfilecon() from libselinux instead of ad-hoc code
+
+ This function was factored out from rpm_execcon() upstream to make it
+ easier to use by its users, by making it not call execve() directly. It
+ is now also used by dpkg since 1.17.11.
+
+ Preserve the ad-hoc code for now so that it can be compiled against old
+ libselinux versions.
+
+commit 415aa42566052db9b7677163cea0366e55f72dcf
+Author: Florian Festi <ffesti@redhat.com>
+Date: Wed Jan 7 10:42:46 2015 +0100
+
+ Add support for the RemovePathPostfixes tag in the spec file
+
+ It may contain colon separated lists of path snippets that are removed from the end of the file name when adding the file to the package. This allows creating sub packages containing conflicting files. The path snippets are processed left to right.
+
+commit fab075d1211eb23ad51877408866419ba6b8c399
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Tue Feb 3 16:26:15 2015 +0100
+
+ Add test for file triggers.
+
+commit 30a5603159083f2840bfae801ab27ba5f78c36e7
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Wed Sep 17 12:11:59 2014 +0200
+
+ Add support for %transfiletriggerun.
+
+commit ec78eea7fe6a60bc10038ca3a7a4c5d85e2a9a16
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Wed Sep 17 10:47:32 2014 +0200
+
+ Add support for executing file triggers.
+
+ Supported file triggers:
+ %filetriggerin
+ %filetriggerun
+ %filetriggerpostun
+ %transfiletriggerin
+ %transfiletriggerun
+
+commit b04c4f559b25bf8b6774a445a0e537c8ce1d2c59
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Wed Sep 17 08:34:25 2014 +0200
+
+ Add hash installedPackages to transaction members structure.
+
+ - After transaction this hash contains all packages installed in
+ transaction. This hash can be used as argument of rpmdbFilterIterator()
+ to get all packages installed in transaction from rpmdb.
+
+ - Rename removedHash to packageHash.
+
+commit 2dd2e1f1ffb85d0568d95d7f92c67f747b0bc9de
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Wed Sep 17 08:20:38 2014 +0200
+
+ Add functions to work with database iterator.
+
+ - rpmdbGetIteratorIndex() to return current iterator index.
+ - rpmdbSetIteratorIndex() to set iterator index.
+ - rpmdbGetIteratorOffsetFor() to get package offset for given iterator
+ index.
+
+commit c924815dee048dcffa6200b2e363b35e750fe010
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Wed Sep 17 08:02:21 2014 +0200
+
+ Add rpmdbIndexIteratorPkgOffsets() to return all offsets of current db item.
+
+commit 3308b9fbfd1eabbdc66327d74b572d26b116b112
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Wed Sep 17 07:49:56 2014 +0200
+
+ Now rpmScriptFromTriggertag() can load file trigger scripts.
+
+commit 0558600a9dcb98922f8a0aa2bcf321087a48690b
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Tue Sep 16 17:41:54 2014 +0200
+
+ Add rpmdbFilterIterator() to filter out items from db iterator.
+
+commit 4381da9217284915c7b72d3529971cc860a36c5c
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Tue Sep 16 17:22:12 2014 +0200
+
+ Add rpmdbUniqIterator() to makes records in db iterator unique.
+
+commit 278c55266682f61a23433224e0197997c572706a
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Thu Jan 22 12:23:22 2015 +0100
+
+ Add rpmScriptNextFiletFunc()
+
+ This enables assigning some function to script. Purpose of this
+ function is to provide input data for scripts. Forkable script can read
+ these data from its stdin and lua script can read these data with
+ function rpm.next_file()
+
+commit 846d0e0203c479004a146021d795eefade551982
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Tue Sep 16 16:32:39 2014 +0200
+
+ Add rpmdsFilterTi() to filter rpmds according to trigger index.
+
+commit c53158a6f64d48d06f4294ff5511752321ba24d9
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Tue Sep 16 16:21:59 2014 +0200
+
+ Add rpmfilesFindPrefix() to find files with given prefix.
+
+commit fe93b3dd53466a7ef4036b916fb6f9a9dac1fcc8
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Tue Sep 16 16:09:21 2014 +0200
+
+ Add rpmdbInitPrefixIterator() to iterate over db items with given prefix.
+
+commit d0c2c8257a6c1a8f040e3f81ca33a99f59eea7a2
+Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
+Date: Tue Sep 16 15:26:32 2014 +0200
+
+ Add rpmdb indices for file triggers.
+
+commit 9e8f57bf7abdc26262467d20c5a636547c09a277
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed Jul 2 13:26:49 2014 +0200
+
+ Add parsing file triggers from spec file and saving them into header.
+
+commit 97989236c0f39ccbc7f2c1d52cc30f167fd827fe
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Jan 26 14:22:34 2015 +0100
+
+ Fix Python import directive for more strict Python3 search rules
+
+ Fixes http://rpm.org/ticket/885
+
+commit 6845efae0dcc005f3bbb4cd4179a3ccce9d9638c
+Author: Jean Delvare <jdelvare@suse.de>
+Date: Mon Jan 19 17:21:26 2015 +0100
+
+ Read uncompressed patches from stdin
+
+ Since commit 15e9e1ff64aaf986ab0dd97b9b12c3d4fb22a484 ("Simplify
+ doPatch()" in May 2008), uncompressed patches are read with "cat" then
+ piped to "patch". The idea was to simplify the code, however this
+ change had consequences which I suspect were not considered.
+
+ The first consequence is a performance regression. Forking and passing
+ the data through a pipe is much more expensive than reading from
+ stdin. For packages with a lot of patches, this makes a significant
+ difference.
+
+ A second issue is the integration with other tools. I am working on
+ quilt. Quilt has a "setup" command which reads a rpm spec file and
+ produces a compliant working tree with all patches ready to be
+ applied. This is implemented with rpmbuild as the backend. We
+ intercept the calls to patch to record the name and sequencing of the
+ patch files. If the file is read from stdin, we can obtain its name
+ directly. But if it comes through a pipe, we have to compare the
+ md5sum of the contents with the md5sum of all candidates in
+ $RPM_SOURCE_DIR. Again this is much more expensive.
+
+ For these reasons I would like to ask that commit
+ 15e9e1ff64aaf986ab0dd97b9b12c3d4fb22a484 is partly reverted. In my
+ experience, uncompressed patches account for 99% of patches in rpm
+ packages so I believe it makes sense to optimize for this case.
+
+ Signed-off-by: Jean Delvare <jdelvare@suse.de>
+
+commit 5b459f05c4b64f9004e3bdc84c02d4f32af0371c
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Jan 19 15:40:18 2015 +0100
+
+ Add -r* params to rpmbuild to allow building all stages from source rpms, too.
+
+commit 7071a70326733202c18d905812e9309777dd6119
+Author: Michael Schroeder <mls@suse.de>
+Date: Wed Jan 14 11:26:31 2015 +0100
+
+ updateRichDep: remove bogus "- 1" that broke index entry generation.
+
+ Bug noticed by Lubos Kardos, thanks!
+
+commit ac925b8b0b27c38692a480db28963ef0fbab988d
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Jan 9 12:45:57 2015 +0100
+
+ Do not call rpmEscapeSpaces in the rpminstall noglob case.
+
+ As we don't call rpmGlob, nobody unescapes the spaces again.
+
+commit 4ee10b62eca6b40b560dcc76f5c7a797d64f226a
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Dec 15 11:14:07 2014 +0100
+
+ Add python doc strings for rpm.ds
+
+commit e768b81f095f05ae006a229bc16ef2c0f847bf81
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Dec 15 11:13:07 2014 +0100
+
+ Add python doc strings for main module and top level functions
+
+commit 72975e6ae36edea7fe227e1d5cd4ac92f6e09f4c
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Dec 15 11:12:35 2014 +0100
+
+ Add python doc strings for rpm.files
+
+commit a53b37ccf5a4c25545db643f4f2f890d2a249a7f
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Dec 15 11:11:59 2014 +0100
+
+ Add python doc strings for rpm.te
+
+commit 436c3db77eca03ace3eb3ecd12e3b397bd315f33
+Author: Florian Festi <ffesti@redhat.com>
+Date: Mon Dec 15 11:11:28 2014 +0100
+
+ Add python doc strings for rpm.hdr
+
+commit 4ee07625175971815a9a143399753479b097e904
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Dec 12 20:49:31 2014 +0100
+
+ Add python doc strings for rpm.mi
+
+commit fd5628b1adee17f85fcc877cacd13e1eafbab407
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Dec 12 20:41:59 2014 +0100
+
+ Add python doc strings for rpm.files and rpm.file
+
+commit 2f04d42f95e21fd1ce99352f8d5eec9b329a94e2
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Dec 12 20:38:33 2014 +0100
+
+ Add python doc strings for rpm.fi
+
+commit 88d24893b673d50af1ceb699cd3b0aac9028167e
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Dec 12 20:25:22 2014 +0100
+
+ Add python doc strings for rpm.archive
+
+commit 73b89db960f563b6c9a66b99159ef25fce841ebf
+Author: Florian Festi <ffesti@redhat.com>
+Date: Fri Dec 12 20:22:50 2014 +0100
+
+ Add python doc strings for rpm.ts
+
+commit 2f31395dcd49459c775caaadefa0513181cd12ff
+Author: Lubos Kardos <lkardos@localhost.localdomain>
+Date: Wed Dec 17 12:53:30 2014 +0100
+
+ Fix color skipping of multiple files with the same content.
+
+ - If we process some file and we find another file with the same path
+ and the same content and this other file is skipped for color then
+ the currently being processed file has to be skipped for color too.
+ (RhBug:1170124)
+
+commit 4c621e97776a47c2b4e7f17c1cd2a7961453babf
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Wed Dec 3 14:01:14 2014 +0100
+
+ Ignore "use" or "requires" within multi-line print or assign statement
+
+ - Now script perl.req ignores "use" and "requires" on lines that are
+ part of printing or assigning multi-line string i. e. string that
+ hasn't starting and ending quote on the same line.
+ (RhBug:1024517)
+
+commit 4f05fa0e15bcb66d29f89e28829ea43107f6382b
+Author: Lubos Kardos <lkardos@redhat.com>
+Date: Mon Dec 1 16:04:32 2014 +0100
+
+ Fix parsing multi-line print statement with unquoted tag
+
+ - script perl.req was able to parse only multi-line print statements
+ with quoted tag e.g. 'print <<"tag"' or "print <<'tag'". Now it can
+ also parse "print <<tag".
+
+commit ec6495d79fa9834bca3394f56e9f6eb933030b1d
+Author: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
+Date: Mon Oct 20 11:16:43 2014 +0100
+
+ Do not load the systemd_inhibit plugin if not booted with systemd.
+
+ Signed-off-by: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
+ Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
+
+commit d43bbad1f69376ba938a17c3e98d38245984c704
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu Oct 30 10:11:26 2014 +0200
+
+ Drop unused, bitrotten dependency generator scripts
+
+ - The php and Tcl (RhBug:1158580) have never been used.
+ - perldeps.pl was supposed to be a better perl generator but nobody has
+ bothered using it, maybe it just doesn't work?
+ - osgideps.pl has never been wired up with anything so any user
+ would have manually invoked it. Lets see if anybody hollers, at least
+ Fedora has entirely different, rpmfc-style generators for it
+ (RhBug:1158583)
+
+commit bcb5fb50ddccdbccf6f096d0c574184c7b82c4b8
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Oct 28 10:06:17 2014 +0200
@@ -163,18 +2709,282 @@ Date: Tue Oct 28 10:06:17 2014 +0200
to Florian for pointing out this correct fix instead of reverting
back to former behavior.
- Depends on commit d85dc92e8d7fb50d16f49faa1e88c85fdc526199.
-
- (cherry picked from commit bcb5fb50ddccdbccf6f096d0c574184c7b82c4b8)
-commit 973bdd9e709727c4cb56c4811250f9a23e0a13b6
+commit 051ca9ec7f3c386877f9c0faa77d577f891d3a59
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Oct 28 10:01:53 2014 +0200
Generic support for skipping items inside file info iterator
+
+commit 7bb07c269d39f4ad2a12d2df41597584c852251d
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 11:17:06 2014 +0300
+
+ Use rpmSigInfoParse() for initializing digests for verification
- (cherry picked from commit 051ca9ec7f3c386877f9c0faa77d577f891d3a59)
+ - Replace manual if-we-have-this-tag-then-maybe-we-need-foo dance,
+ iterate through all signature header tags and initialize the digests
+ we'll need.
+
+commit 974c779db1305aec16f145c8fa26433e19273998
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 10:27:33 2014 +0300
+
+ Drop now unused parsePGPSig()
-commit 767140049c1eac57c105fdfc874c2628a9089145
+commit 719f2749049a1a3c35bbae9797760f30643a459f
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 10:27:09 2014 +0300
+
+ Refactor normal signature checking paths to use the new API
+
+ - Simplifies things quite a bit, and better yet this gains us
+ sanity checking of signature header data, and unified with
+ the rpmkeys -K path at that. Dribble signatures go this way
+ too but they have some twists of their own still, including
+ partial but suspect sanity checks.
+
+commit 46546223041e5d11bcfaf94ca0fb84548a569739
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 10:26:37 2014 +0300
+
+ Refactor rpmpkgVerifySigs() (ie rpmkeys -K) to use the new API
+
+ - Simplifies things quite a bit, and better yet this gains us
+ some actual sanity checking of signature header data for the
+ first time (on this particular path)
+
+commit ff8547a0cfacd219a587d30b287d216a13b29a8b
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 10:25:48 2014 +0300
+
+ Start consolidating our tribal knowledge on signature tag data
+
+ - New internal API to "parse" signature tags, performing various
+ sanity checks, classifying the type (digest, actual signature etc)
+ and gathering other relevant info.
+ - Unused as of this commit...
+
+commit cff6a5d9918f41fb920387e5dbbc78a52bfbd2c1
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 10:02:19 2014 +0300
+
+ Remember data (allocation) size of non-extension data from headerGet()
+
+ - Add size member to rpmtd_s and accessor function to get it.
+ For now only works for data marked with RPMTD_IMMUTABLE.
+ - This is redundant for BIN type, but especially for string types this
+ info is impossible to get without walking the entire data.
+
+commit 2a2cecda957d7474487710abe347d27d8cced043
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 09:39:53 2014 +0300
+
+ Remove support for header+payload signatures and digests from normal paths
+
+ - To celebrate tenth anniversary of not verifying RPM v3 header+payload
+ signatures or digests in normal rpmReadPackageFile() paths and nobody
+ noticing (see commit d57bc03f6567acf6d1631541b97ce7cdb1b262bb), rip
+ out the unused code for good.
+ - The "check everything" path invoked by rpm(keys) -K can still
+ be used to verify v3 digest and signatures though, at least
+ for the time being.
+ - In other words, in default setup of last ten years, this commit
+ does absolutely nothing at all, and for package install
+ even configuration has not mattered because RPMVSF_NEEDPAYLOAD is
+ forced on those paths.
+ - This code is also wonderfully broken as it assumes MD5 digest with RSA.
+ Could be easily fixed, but that nobody has noticed only goes to
+ this code truly is useless and dead.
+
+commit 049d52c07298405fa4fa21c55cbef3e30fb41f1a
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 09:39:14 2014 +0300
+
+ Rename variable to clarify meaning
+
+ - havekey is about as obscure as it gets here... yes these things
+ also have a key, but so do DSA/RSA. The point is about legacy
+ signatures needing payload digest.
+
+commit f5025da4e6962865a8bba12526b21957738ce25b
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 09:35:57 2014 +0300
+
+ Eliminate redundant argument to formatResult()
+
+ - Verification result can only be RPMRC_NOKEY or RPMRC_NOTTRUSTED
+ on actual signatures since forever (rpm 4.4.x used to return
+ RPMRC_NOKEY for missing digest), this is no longer needed.
+
+commit 8fb86477c73dd2270b5512ab3a2f36fff1b0bcd5
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 09:12:31 2014 +0300
+
+ Add a separate mutex for serializing logging events
+
+ - Logging output (including callback activities) is conceptually always
+ a "write"-event, but independent of log context manipulation so it
+ needs a mutex of its own to serialize log events. Previously we
+ write-locked only for records that need saving, so messages above
+ warning level could get interleaved.
+
+commit df8718190b112426cdedff84ebf45cfa9e04266b
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 08:58:03 2014 +0300
+
+ Free context lock before logging output (and callback)
+
+ - Grab the bits we need from context to local variables and free
+ the lock before callback and output, either of which could involve
+ writing to files (and in case of callback, who knows what) so
+ it could take long and prevent something silly like rpmIsDebug() from
+ proceeding. Also this way callback can call some rpmlog-related
+ functions without much worries of getting stuck or other trouble.
+
+commit db10a21efbac90f5f5fb680737e33dd03ba96f8c
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 08:39:51 2014 +0300
+
+ Delay lock context acquisition to time of actual logging
+
+ - Checking whether we need to log requires a (read) lock on entry,
+ but most of the time that's all. Hide that locking behind calling
+ rpmlogSetMask() and move ctx acquire into dolog()
+ - Means we're now taking two different logs when actually logging,
+ but since that's the rarer condition it hardly matters.
+
+commit 19ce9ee1041f62bc4a29738f1e7f06d62043737a
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Fri Oct 24 08:34:56 2014 +0300
+
+ rpmlogSetMask() only needs write-lock on non-zero mask
+
+commit 4cab3a16918923aef5bf2e47e058d84d8f8f5fc8
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu Oct 23 15:29:43 2014 +0300
+
+ Handle context aquisition failures throughout rpmlog
+
+ - Locking can fail, and we need to handle it somehow. Return
+ NULL context and handle that in callers, as in "dont crash".
+
+commit 841c5e5fd719ccf7a8909a4b69507505fc199259
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu Oct 23 13:20:09 2014 +0300
+
+ Eliminate stupid asserts from rpmlogRecMessage and -Priority()
+
+commit 7d058429966b43f895b92127033ad4868fde70ce
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu Oct 23 12:44:45 2014 +0300
+
+ Remove incorrect comment
+
+ - A string pointer returned rpmlogMessage() is in fact guaranteed to
+ be valid until rpmlogClose(), because its malloced separately
+ from the owning record. So while the address of the owning record
+ can change via realloc(), the contained message stays put.
+
+commit 81885737d16976bb40fceb40cd57c645dcb0fd80
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Thu Oct 16 11:34:32 2014 +0300
+
+ Unify our internal digest verification functions
+
+ - There's nothing md5/sha1-specific in either of these functions,
+ the only real difference is whether we're dealing with ascii or
+ binary digest.
+ - Always operate in ascii mode: we need to convert the digest to ascii
+ for the return message string anyway, so this only makes things much
+ simpler, and this way we wont crash and burn even if the digest tag
+ were of mismatching type as rpmtdFormat() can convert anything into
+ a string.
+
+commit 61044782656ad4626d279e99cef750ef28e36e18
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 15:25:09 2014 +0300
+
+ Eliminate leftover, commented debugging printf()
+
+commit 99edd77385601aa1f8f805d42ad5986dd4b628db
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 15:14:44 2014 +0300
+
+ Only add per-file dependencies if we collected them
+
+ - Legacy generators dont create a dependency dictionary, in which
+ case there's no point adding per-file depends dictionary indexes
+ (all zeros) either. Should've probably been in
+ commit 05636a7db213e8255d6893c638a80d52390c3527 already.
+
+commit b857171b78f4123a5d9ea15d942fbd2b6a709d99
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 11:45:05 2014 +0300
+
+ Move internal vs external depgen decision to rpmfcApply()
+
+ - Rename the actual worker functions for consistency, rpmfcApply()
+ is now just a simple wrapper around the two
+
+commit 30165a31dd7bae4b2fcb050dd063f2719fa10469
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 11:37:32 2014 +0300
+
+ Dont bother passing pkg to rpmfcGenerateDependsHelper()
+
+ - This is already available through fc
+
+commit 6e76016fbe6e03eb59305e0fa983c3a8c5592701
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 11:06:22 2014 +0300
+
+ We already have the files with buildroot prepended here...
+
+commit d582d6ea6c227cf9682be48684b10b97583cc201
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 11:02:08 2014 +0300
+
+ Pass file classifier, not spec, to external depgen helper
+
+commit a20794e78f3eea01b7889bbec08349f7962a89cf
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 10:54:33 2014 +0300
+
+ Permit NULL spec in rpmCharCheck()
+
+ - It can get called when parsing automatically generated dependencies
+ and those do not correspond to any particular spec lines
+
+commit 64150dbad87439b2f5abd32d02741f9ee398f86e
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 10:31:59 2014 +0300
+
+ Refactor current file index from rpmfc struct
+
+ - There's no good reason for having a "current index" within fc,
+ and the code is easier to read when its clear its just an index
+ of a silly for-loop and not something fancier.
+
+commit 05636a7db213e8255d6893c638a80d52390c3527
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 8 10:09:48 2014 +0300
+
+ Generate file classes and colors regardless of dependencies (RhBug:1150209)
+
+ - File coloring affects ability to install packages on multilib
+ systems when relying on color conflict resolution (eg Fedora, RHEL),
+ and that has zero to do with whether package dependencies are being
+ automatically generated or not. Always generate file classification
+ and the coloring based on that.
+ - Besides fixing coloring where AutoReqProv: 0 is used (ie RhBug:1150209),
+ this also fixes two issues when the legacy external dependency generator
+ is used: file coloring (RhBug:lotsa) and config() dependency generation.
+ So in default configuration, internal vs external depgen now only
+ affects whether dependencies are recorded on file or package level,
+ otherwise the produced packages should be fully equivalent now.
+
+commit 104856ea17161eb3a508913c2b7ed701f2e4f6aa
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Oct 7 15:37:21 2014 +0300
@@ -182,55 +2992,82 @@ Date: Tue Oct 7 15:37:21 2014 +0300
- Fix regression from commit 68bddc353a7ea87ea00ad957858cd509e845e84c,
accessing a 64bit int as if it were a 32bit one doesn't make it one.
-
- (cherry picked from commit 104856ea17161eb3a508913c2b7ed701f2e4f6aa)
-commit 6d125a2694ba8a2e4d97f0d1f6ef6f8f3af68723
-Author: Florian Festi <ffesti@redhat.com>
-Date: Mon Aug 29 18:08:29 2016 +0200
+commit 965ff36369a1f2bd728a61d425ca0f111b50a2c1
+Author: Ville Skyttä <ville.skytta@iki.fi>
+Date: Mon Sep 22 10:57:10 2014 +0300
- tests: Do not pass real pathnames to fakechroot commands
+ gendiff: Fix diff of filenames containing spaces
- for the remaining tests.
- Also add a Provides: /bin/sh to one of the specs as the test does no longer
- works without for some unknown reason.
+ Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
+
+commit ba5f7cb89afc13ee334bc95ed0514fca30355ef6
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 1 15:38:27 2014 +0300
+
+ Move rpmrc path defaults tracking into the context as well
- (backported from commit 394cbfb668655f7aa10ff6b178ec92b44a117ea6)
+ - Doesn't make a whole lot of difference, the default variables
+ themselves are exported and unprotected... but if nothing else,
+ consistencys sake
-commit 5a5510848a2ddc28164e9882a42a96a29706e878
-Author: Michal Marek <mmarek@suse.com>
-Date: Fri Aug 12 21:47:16 2016 +0200
+commit 4ff89adb0dcabd86afc0230c4e8ef98c5f7cdc65
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 1 15:32:41 2014 +0300
- tests: Do not pass real pathnames to fakechroot commands
+ Reset architecture defaults on rpmFreeRpmrc() (RhBug:1115483)
- Fakechroot returns -ENOENT for such paths:
+ - Move the leftover tracking variable into rpmrc context, reset on
+ free to allow personality change after first initialization.
+
+commit 6ce2d43e2533505aa252159bfa8cc799965655bb
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Oct 1 09:59:21 2014 +0300
+
+ Dont wait for transaction lock within scriptlets (RhBug:1135596)
- $ FAKECHROOT_BASE=$PWD/tests/testing fakechroot ls /not_an.rpm
- /not_an.rpm
- $ FAKECHROOT_BASE=$PWD/tests/testing fakechroot ls $PWD/not_an.rpm
- ls: cannot access /home/mmarek/GIT/rpm/not_an.rpm: No such file or directory
+ - Packages doing stupid things like rpm -U/-i/-e from their scriptlets
+ can and will get hung waiting on the transaction lock, which can
+ prompt users to kill the entire transaction, possibly with severe
+ consequences. Starting with rpm >= 4.12 we also take the transaction
+ lock for importing public keys, which seems to have caught one of
+ the bigger fishes in the pond (Google Chrome packages).
+ - Only wait when stdin is a tty, this affects more than scriptlets but
+ most likely we dont want to wait for locks in those situations either.
+
+commit 9b9e0ca4d473cbe0e1116e8c7bd49c63f531fbb4
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Tue Sep 30 12:56:07 2014 +0300
+
+ Dont preserve ownership from tar when root (RhBug:1133946)
- Signed-off-by: Michal Marek <mmarek@suse.com>
- (backported from commit 3a392532b0074bb7744c4d682f52834e942f50a2)
+ - Tar defaulting to preserving owner etc makes sense for its normal
+ uses, but for rpmbuild its not a good idea, ownership needs to be
+ set in spec for consistency and sanity.
-commit 01769c0d88bbb9f2e8d20b2beae5489587496eda
+commit 45183482df7b40ed2708ef219bd64b835c2fbaa8
Author: Panu Matilainen <pmatilai@redhat.com>
-Date: Thu Sep 18 14:07:24 2014 +0300
+Date: Wed Sep 24 11:41:12 2014 +0300
+
+ Add a testcase for RhBug:1101861
- Preparing for rpm 4.12.0.1 (dot paperbag)
+commit 3ccd774255b8215733e0bdfdf5a683da9dd10923
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Sep 24 10:31:51 2014 +0300
+
+ Handle directory replaced with a symlink to one in verify (RhBug:1101861)
- - Bump version
- - Bump library revisions
+ - An unforced installation must not cause verification failures - we
+ permit directories to be replaced by directory symlinks during
+ install so we need to do the same in verify too.
-commit 3954311524a1510b518024c4dd8618678eb4af49
+commit 00b336b45a470eaed7009038a623169aff9d16f0
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Sep 18 12:25:12 2014 +0300
Add a simple test-case for RhBug:1142949
-
- (cherry picked from commit 00b336b45a470eaed7009038a623169aff9d16f0)
-commit c215a3d0c17590dc2dc1c15f382db45dd0b87fba
+commit a655cee655f7a2b8b4c7ae214afceefa986378f5
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Sep 18 11:00:48 2014 +0300
@@ -244,10 +3081,8 @@ Date: Thu Sep 18 11:00:48 2014 +0300
pre-releases :(
- Move rpmcpioFree() to rpmfiFree() to allow Tell() on the archive
after closing it, swap to original order of things on build-side.
-
- (cherry picked from commit a655cee655f7a2b8b4c7ae214afceefa986378f5)
-commit 5e0f3e6298bde0c6e44bd4db956a7287f9ff3f88
+commit 1b3f7547c532b1f5ad68228571f1716d5be5b455
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Sep 17 09:47:54 2014 +0300
@@ -260,25 +3095,89 @@ Date: Wed Sep 17 09:47:54 2014 +0300
- For history reference, the sanity check was originally introduced in
commit b2cf1471bbe2c35e3c36510a9e3f59919d8ed2c8 and
67ccf8d99630f4edad0ea16dddaca0a3355fba00,
- - Backported from commit 1b3f7547c532b1f5ad68228571f1716d5be5b455
-commit c7721ee9fb24ca829a01203e8b260a10a0ae4f5b
-Author: Panu Matilainen <pmatilai@redhat.com>
-Date: Mon Sep 15 10:40:10 2014 +0300
+commit ecfa24d39f493205d7955748d718b5c582d66410
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Sep 16 11:12:10 2014 +0200
+
+ Fix memory leak in rpmhash implementation
+
+ If a key already exists in the hash, the data part is added to
+ the old entry. In that case, the key provided by the called needs
+ to be freed, as the caller expects that the key is added to the
+ hash.
+
+commit 6a095f55f9bb235a888e4e413cf32fe3436db930
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Sep 16 11:11:36 2014 +0200
+
+ Fix memory leak in THEN...ELSE handling
+
+commit df679391d8507bc43390ff79895eab092ac3d5c4
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Sep 15 19:10:32 2014 +0200
+
+ Simplify THEN handling in unsatisfiedDepend()
+
+ The change also makes it more visible that (A THEN B) is the
+ same as ((NOT A) OR B). Except that we don't support NOT.
+
+commit 8674de477d8e7cb51768b5e97e3b5e8d97c2174e
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Sep 15 14:25:13 2014 +0200
+
+ Add support for THEN and ELSE rich ops
+
+ Obviously we will not support both IF and THEN, so this is
+ to test what works and what should be removed.
+
+commit 7eaeec35e635415600f417324bef3d7933a9aa8f
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Sep 15 14:01:00 2014 +0200
- Preparing for rpm 4.12.0
+ Fix last fix ;(
+
+ Sorry...
+
+commit d41b2e3f147488b1b606122ab2010da744a21ce7
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Sep 15 13:56:44 2014 +0200
-commit 115682ba47c9b0f2350fe67cb4860f86b6654774
+ Fix chained ops logic
+
+ The old code lead to an infinite recursion.
+
+commit 8c5166c07b3f171998379ee058c76470a7085161
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Sep 15 13:27:49 2014 +0200
+
+ Fix typo in last commit
+
+ Strange, I was sure I tested it... Sigh.
+
+commit f10707f385c50b59bce29c0ff572517ee6661fb9
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Sep 15 12:07:30 2014 +0200
+
+ Support IF in conflicts dependencies
+
+ It's not much code and it does not slow down depenency checking.
+
+commit 82e1cba1e75760f36158bc9a85d86d93b78e6498
+Author: Michael Schroeder <mls@suse.de>
+Date: Mon Sep 15 11:14:00 2014 +0200
+
+ Rename the dependency hashes from cache to hash
+
+commit 297eb7ae2f792bf55f4a4d0674800b3ccb6b43af
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Sep 15 10:36:09 2014 +0300
Ensure librpm doxygen stuff gets rebuilt when version changes
- configure.ac is where the version is defined, so...
-
- (cherry picked from commit 297eb7ae2f792bf55f4a4d0674800b3ccb6b43af)
-commit e5672bfe1606d1ad3c8db3251bbc914ad9e609d5
+commit 4bc2900baee9ff289dabc47609059accc0f39983
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Fri Sep 12 20:34:04 2014 +0300
@@ -291,10 +3190,161 @@ Date: Fri Sep 12 20:34:04 2014 +0300
- Another sorta related side-effect is that the exact order of rpmspec
output changes as things are now properly sorted, previously it
was a mixed bag.
+
+commit 499c2a87c478c7e6d7896f3e1ea5eda6ad0006c9
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 19:15:25 2014 +0200
+
+ Ensure that rpmlib() parts in rich dependencies have RPMSENSE_RPMLIB set
+
+commit 4caa8347b4dd44aa3893a6bf9850043a41985c4c
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 17:52:52 2014 +0200
+
+ Support rich dependencies in rpmtsOrder
+
+ We use rpmdsParseRichDep to split rich dependencies and then
+ simply recursivly call addRelation for the sub-dependencies.
+
+commit 5aaf888c70851209771ad080db361a80b2f6d01a
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 17:46:23 2014 +0200
+
+ Support rich dependencies in rpmtsCheck
+
+ We use rpmdsParseRichDep() to split the rich dependency and then
+ recursively call unsatisfiedDepend() on the sub-dependencies.
+
+ We also need to deal with "negated" dependencies, a requires
+ with an IF dependency produces conflict like subdependencies.
+ Those subdependencies are prefixed with a '!' character in the
+ requires index database. We currently do not support this for
+ conflict dependencies, this is enforced by the spec file parser.
- (cherry picked from commit 4bc2900baee9ff289dabc47609059accc0f39983)
+ Fortunately we already read all conflicts/requires from the
+ index databases, so we can setup hash tables which results in
+ almost no extra costs.
+
+commit 82299b68b58ae1f06edd2f57eb94bf1355d0f75c
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 17:42:35 2014 +0200
+
+ Add rpmdsParseRichDep() function for rich dependency splitting
+
+ This function splits up a rich dependency into an operation and
+ two sub-dependencies. Chained dependencies like (A & B & C & D)
+ are split into A & (B & C & D).
+
+commit 7f79148e66f8b4f7f09e3fc0a40e548978b54920
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 17:37:19 2014 +0200
+
+ Add rich dependencies to requires/conflicts index database
+
+ We use the parser to break up rich dependencies into parts, adding
+ '!' as prefix for negated dependencies (e.g. the right part of
+ IF dependencies).
+
+commit 2b64fdd9c7c922b0f516e93f35137a6f18805e0d
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 16:58:18 2014 +0200
+
+ Parse rich dependencies in spec files
+
+ We use the callback to normalize the rich dependency (i.e. strip
+ spaces, canonicalize op names).
+
+commit 99d25e4d5df543b5d90181ebc3a7da44a1a1df6b
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 16:50:28 2014 +0200
+
+ Add a parser for rich dependencies
+
+ The data is returned via a callback, this allows us to use it
+ for different purposes.
+
+ Rich dependencies are for the form "(arg)" or "(arg1 op arg2)",
+ the arguments can either be simple dependencies, or again
+ rich dependencies.
+
+ We don't want to enforce a space between the argument and the
+ closing ')', thus we check the number of parens when parsing
+ the argument and stop when we encounter an unbalanced ')'
+ character.
+
+commit 21a17daa1bf944b31178476c378fc689bc98bd0b
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 16:45:27 2014 +0200
+
+ Add RPMSENSE_RICH for rich dependencies
+
+ Rich dependencies will be stored as a string with no EVR and the
+ RICH flag set. This unfortunately means that we have to parse
+ them again when checking dependencies.
+
+ Also add a rpmlib() marker when a rich dependency is used as
+ conflicts or requires dependency.
+
+commit 4e8218f066e7e779986f74465a0708b0d466024a
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 14:50:59 2014 +0200
+
+ Use correct type in rpmSanitizeDSFlags and rpmParseDSFlags
+
+commit e3e5ba7603cd3d550331f60f8d9c9ebc73274e8e
+Author: Michael Schroeder <mls@suse.de>
+Date: Fri Sep 12 14:39:34 2014 +0200
+
+ Refactor dependency comparison parsing into rpmds
+
+ The function will be used by the rich dependency parser
+ as well.
+
+commit 9b44c7581170b0d2617bed6ac5091c71605840fe
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Sep 11 13:53:16 2014 +0200
+
+ Drop fsize parameter from rpmCharCheck()
+
+ Everybody calls it with the length of the string and the
+ strstr it uses ignores the fsize parameter anyway.
+
+commit 622e0661532ac65e4094f4f7046f01fcd35e0a76
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Sep 10 12:23:19 2014 +0300
+
+ Simplify tilde-dependency checking
+
+ - Now that all our dependencies are in per-package rpmds arrays this
+ is far easier (and faster as well)
+
+commit ca370a598e6b3195bce1fc53ee4e23647f8b555a
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Sep 9 17:25:49 2014 +0200
+
+ Add back comment lost with commit #e2ce4c21
+
+commit a5228bed4a220aed23c3fe5ddd9e170a32416cc3
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Sep 9 17:17:08 2014 +0200
+
+ Clean up dependency relation parsing
+
+ Fix indenting and simplify control flow.
+
+commit e2ce4c210306b61f840b72bfbf218153ecc4a8a6
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Sep 9 17:07:15 2014 +0200
+
+ Refactor dependency checking code into checkDep()
+
+commit fea73eee3340e84596b941e7387b8de91fef551d
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Sep 9 16:58:06 2014 +0200
+
+ Use rpmRC return type in checkSep
-commit b0c53a3d05caf971d69a5a36cb11dc0059cb2204
+commit cac311c2ddb43b62ad9dbdb5543d50848eb9fd65
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Sep 9 12:58:08 2014 +0300
@@ -305,16 +3355,43 @@ Date: Tue Sep 9 12:58:08 2014 +0300
(payload, tilde) are added as late as writeRPM(), those have been going
to /dev/null recently.
- The fix actually removing code is probably a good sign...
+
+commit 35a7b29421e03274736e1b7f5c810b0de7c7da9e
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Mon Sep 8 13:46:48 2014 +0300
+
+ Add utf-8 validation to librpmbuild, take 1 (ticket #30, RhBug:948712, ...)
- (cherry picked from commit cac311c2ddb43b62ad9dbdb5543d50848eb9fd65)
+ - This adds brutally simple utf-8 validation to spec parse & package
+ construction: all string-class tags in headers are checked regardless
+ of other tag semantics.
+ - Parse-time validation is optional via RPMSPEC_NOUTF8
+ flag, but package construction time is required as we want to
+ stomp RPMTAG_ENCODING to all packages that pass. What is always
+ optional is whether non-valid utf-8 strings fail the build, defaulting
+ to off (but distros probably want to enable it)
+ - Note we dont give a damn about the spec itself, only what ends up in
+ packages: strings can come from numerous other sources than spec
+ directly, and OTOH who cares if eg spec comments are non-utf?
-commit 6fa0ed94fb973ed7e657ad856b8e245b8fd17004
+commit ace7fe9d583863a0195833bf87a3bc8005d22688
Author: Panu Matilainen <pmatilai@redhat.com>
-Date: Wed Aug 27 08:46:36 2014 +0300
+Date: Tue Sep 2 11:35:19 2014 +0300
- Preparing for rpm 4.12.0-rc1
+ Enable the unused macro warning again, now without performance penalty
+
+ - Track non-global macro definitions in a helper variable, this
+ eliminates the need for costly macro table walking at end of each
+ expansion cycle as we only bother doing it if non-global macros
+ were defined during a given expansion cycle.
-commit f2918add30fa8484dd3d67c1f52c46ca4e21518d
+commit 4c62ae4a5b39293b44cdf81a93df0decbbeabd8f
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Wed Aug 27 11:38:09 2014 +0300
+
+ Bump version to appear newer than 4.12.x branch
+
+commit 0ffc0e29e949c63b897fb87bd705e0fb8d0990f9
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Aug 27 08:33:05 2014 +0300
@@ -326,18 +3403,20 @@ Date: Wed Aug 27 08:33:05 2014 +0300
- The original code seems fishy in other ways (missed errors), this
hopefully fixes both cases by only attempting to close actually
open fdno's and only considering actual closes for error codes.
-
- (cherry picked from commit 0ffc0e29e949c63b897fb87bd705e0fb8d0990f9)
-commit c3770b4cce64dcd42a8adbd559cd8cfd4cbf7289
+commit 0ab486b8e169edbe66870f5ff43f9dd07ffd2655
Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
Date: Tue Aug 26 14:42:20 2014 +0200
Fixed double dealocation of ei pointer (RhBug:1133885)
-
- (cherry picked from commit 0ab486b8e169edbe66870f5ff43f9dd07ffd2655)
-commit 61fdfcff2b34e616fe8313fc6dece599732ccd63
+commit f09865117cb32a1c507ddbca9e80097f829e7dc8
+Author: Panu Matilainen <pmatilai@redhat.com>
+Date: Tue Aug 26 12:34:47 2014 +0300
+
+ Honor --noglob in install modes too
+
+commit 49f2bb7d8fd91f2d8b22bf7128fd3defe4ed5434
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 25 12:28:53 2014 +0300
@@ -346,10 +3425,8 @@ Date: Mon Aug 25 12:28:53 2014 +0300
- Another regression from the recent rpmfc work, in rpmdeps context
there's no spec or packages from it. Allocate a dummy package so
we have some place to store the dependencies. And yes its ugly.
-
- (cherry picked from commit 49f2bb7d8fd91f2d8b22bf7128fd3defe4ed5434)
-commit 058a1ff7d26d0776387beac555e89c042396fdaf
+commit 8b540fbf1bb77320772b87d40518d761f62752b3
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 25 11:03:00 2014 +0300
@@ -360,10 +3437,8 @@ Date: Mon Aug 25 11:03:00 2014 +0300
as the header is populated early, whereas rpmlib() dependencies
get added late in the game. So nothing was pushing the rpmlib
stuff to header. Sigh.
-
- (cherry picked from commit 8b540fbf1bb77320772b87d40518d761f62752b3)
-commit 6fa54a648578e390ef742ba80ec47c10c7409087
+commit 404f053f7829fa859209ded8399243dba851f263
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 25 10:41:27 2014 +0300
@@ -373,10 +3448,8 @@ Date: Mon Aug 25 10:41:27 2014 +0300
are no longer in the header so there's little to print from there.
As it happens things are much saner this way, we no longer need
to create rpmds'es just to print stuff.
-
- (cherry picked from commit 404f053f7829fa859209ded8399243dba851f263)
-commit d872a53b0485a57df2913579c263ed9100d7ca6a
+commit 1f22cc40518b3f671201803c5f937fae6b6afe63
Author: Michael Schroeder <mls@suse.de>
Date: Fri Aug 22 11:50:25 2014 +0200
@@ -384,10 +3457,8 @@ Date: Fri Aug 22 11:50:25 2014 +0200
It always created a triggerindex array and also did not correctly
initialize it with -1.
-
- (cherry picked from commit 1f22cc40518b3f671201803c5f937fae6b6afe63)
-commit 8ea944ca501612c5643c2997f496494c72aca3e7
+commit 6ee2468934b45c1c9d1b84b1ba70fe44373425c9
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Aug 21 16:05:02 2014 +0300
@@ -396,10 +3467,51 @@ Date: Thu Aug 21 16:05:02 2014 +0300
- Didn't realize there's rpmdsTagTi() now, which is fit for this
purpose and doesn't look as much out of line with the others.
No functional changes here though.
+
+commit 49917664901acee10c653669e0c47285cd358ef8
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Aug 21 11:43:54 2014 +0200
+
+ Do self-conflicts/obsoletes filtering in rpmalAllFileSatisfiesDepend
- (cherry picked from commit 6ee2468934b45c1c9d1b84b1ba70fe44373425c9)
+ This is a bit cleaner, and it also fixes a bug when there is a
+ self-conflict in the file list and another packages provides the
+ conflicting file.
+
+commit 23d72042486715173e061c3232727464de541d77
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Aug 21 11:11:53 2014 +0200
-commit f0fdc69810f33687e2cb235b817d00bf609b477f
+ Do not match obsoletes against provides in rpmal
+
+ Always match against the package NEVR. We still check the package
+ name so that we don't end up with too many duplicates.
+
+commit 5e68ca62e05ba3172001f376f632461f91411edd
+Author: Michael Schroeder <mls@suse.de>
+Date: Thu Aug 21 11:00:17 2014 +0200
+
+ Do not bother with separate notifications on multiple provides matches
+
+ In the spirit of commit 272eaae387c72cac14eff8665eaa3126ca2dcc22.
+
+commit 008165b28fe03b9536f86929f3cb6453e8782ebb
+Author: Michael Schroeder <mls@suse.de>
+Date: Wed Aug 20 14:59:44 2014 +0200
+
+ Check for reqfilecache existance before iterating over the filelist
+
+ Improves the symmetry between install and erase element checking ;)
+
+commit ca7923b96012d62d2695138b929b27f3a127e5ee
+Author: Michael Schroeder <mls@suse.de>
+Date: Wed Aug 20 14:52:17 2014 +0200
+
+ Rename confcache to confilecache and reqcache to reqfilecache
+
+ No functional changes.
+
+commit 1566c18b6efbda7b4c367f4c0ee31b4d5be2d2fe
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Aug 20 15:10:36 2014 +0300
@@ -410,18 +3522,52 @@ Date: Wed Aug 20 15:10:36 2014 +0300
- Unlike other dependency types, trigger dependencies involve a fourth
tag which we forgot to delete before adding again, causing duplicate
trigger indexes
+
+commit 675aafdab6210d385dfe608c2e6ab1869f289ca3
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Aug 19 17:50:31 2014 +0200
+
+ Add lost fpLookupEquals() call in depends.c
+
+ Lost in copy and pasting. Does not make much difference,
+ except that the code should be faster with the check.
+
+commit 981308209397513487e3e1b57123cca9c3dd4a97
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Aug 19 17:41:13 2014 +0200
+
+ Simplify rpmcliTransaction code a bit
+
+commit 2a3d492c7f9cdca08b8245cde3d3d96dfc16bd71
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Aug 19 17:33:33 2014 +0200
+
+ Use fingerprinting in checkInstDeps
- (cherry picked from commit 1566c18b6efbda7b4c367f4c0ee31b4d5be2d2fe)
+ We already do fingerprinting in rpmal and rpmdb, but we missing
+ installed file dependencies. Fortunately we can make use of the
+ conflict and require caches to find potential candidates.
+
+commit 27086f8023554c25355f35653ec837d91042936b
+Author: Michael Schroeder <mls@suse.de>
+Date: Tue Aug 19 17:28:12 2014 +0200
-commit 717cdb9396446cde552e617cf866a43b7fa5c351
+ Use fingerprinting in rpmal file matching
+
+ The code in rpmdb already supports fingerprinting, which led to
+ file dependency problems being reported against installed packages,
+ but ignored for against new packages.
+
+ The use of the fingerprinting code does not seem to make the
+ dependency check slower in my tests.
+
+commit aca73ad405c03e2f4879781d2af85b7c3d2d736f
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 18 16:43:01 2014 +0300
Add a simple testcase for rpmspec queries
-
- (cherry picked from commit aca73ad405c03e2f4879781d2af85b7c3d2d736f)
-commit 15db12b8342b5df6f69c57f1d6b9b73523623a3e
+commit 0bda2faa4de368a87f85084856a5fed701774acb
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 18 16:31:14 2014 +0300
@@ -435,10 +3581,8 @@ Date: Mon Aug 18 16:31:14 2014 +0300
have been discovered at the end of package build.
- Fixes another regression (rpmspec dependency queries went dead)
introduced in commit a357c99c58a5e1367160dfa692f26d14bd3a3df1
-
- (cherry picked from commit 0bda2faa4de368a87f85084856a5fed701774acb)
-commit 78cad3867da59aa1d8409544388baccf42649289
+commit cea90b92bbd7ac9bf82a6d8216325bf2a1d9f6d1
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 18 16:01:46 2014 +0300
@@ -446,18 +3590,14 @@ Date: Mon Aug 18 16:01:46 2014 +0300
- Two typos in previous commit, I fail to see how I managed to test
this as "working"
-
- (cherry picked from commit cea90b92bbd7ac9bf82a6d8216325bf2a1d9f6d1)
-commit 6638e1f5d4fe0508949b4418fa5a26bbcb3a86ab
+commit 2d2b90b5babe17ea90556901d9d65b2166374df4
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 18 15:24:02 2014 +0300
Add a simple testcase for buildrequires functionality
-
- (cherry picked from commit 2d2b90b5babe17ea90556901d9d65b2166374df4)
-commit 27f6668097aa687be3e68b1001a5263f72fb40d8
+commit 1b41c91431d37295701281ff208f99a51f660c89
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 18 15:04:23 2014 +0300
@@ -467,16 +3607,8 @@ Date: Mon Aug 18 15:04:23 2014 +0300
commit a357c99c58a5e1367160dfa692f26d14bd3a3df1 changed this to
occur too late for this purpose. Move to initSourceHeader() seems
to fix, also goes to show we dont have a test-case for buildrequires...
-
- (cherry picked from commit 1b41c91431d37295701281ff208f99a51f660c89)
-
-commit 5d3236db25a1958b64af452dd7f7112adc51dbb4
-Author: Panu Matilainen <pmatilai@redhat.com>
-Date: Mon Aug 18 10:16:41 2014 +0300
- Preparing for rpm 4.12.0-beta1
-
-commit 0fe96e75d1570dd91ced92af38ef159158e71cd6
+commit 9b2810544cbd30f692456344ed8d8a0d7a96fc18
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Fri Aug 15 15:10:16 2014 +0300
@@ -493,10 +3625,8 @@ Date: Fri Aug 15 15:10:16 2014 +0300
cannot satisfy its own /sbin/ldconfig provide, crazy as it is.
- Also fixes a memleak on self-provided dependencies introduced
in commit 6b6f8e6ecba05c69e4ecfc0ef6981a920b4b0eb6
-
- (cherry picked from commit 9b2810544cbd30f692456344ed8d8a0d7a96fc18)
-commit ad12c08f0dcc3ace7a57eaf908dacca8db72b827
+commit 563e57d5c6497d215c1b89557dc2e723c53ef772
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Fri Aug 15 12:10:39 2014 +0300
@@ -509,10 +3639,8 @@ Date: Fri Aug 15 12:10:39 2014 +0300
simple non-prefixed basenames.
- Fixes a regression introduced during payload refactoring, possibly
commit 3c28dcdb6546a2be543ef3beeb893d071fc73205
-
- (cherry picked from commit 563e57d5c6497d215c1b89557dc2e723c53ef772)
-commit c401cb02107e2ad536503f7619d5ba24afccc064
+commit 72d40ba49a4c889906be6322444746dffa66e00e
Author: Michael Schroeder <mls@suse.de>
Date: Wed Aug 13 12:34:37 2014 +0200
@@ -522,18 +3650,16 @@ Date: Wed Aug 13 12:34:37 2014 +0200
the information from the database.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
- (cherry picked from commit 72d40ba49a4c889906be6322444746dffa66e00e)
-commit 8e442bb1c3a45fb43a87eaf0b4ad873574cab196
+commit 3830e018c034f4da8296b17ce87b529f544c3745
Author: Michael Schroeder <mls@suse.de>
Date: Wed Aug 13 09:02:42 2014 +0300
Use a more reasonable initial size for requires cache
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
- (cherry picked from commit 3830e018c034f4da8296b17ce87b529f544c3745)
-commit 33f0f2eb49289fcc6df0bdb2aa87d97e81fd845e
+commit 0f5cc1bf4ad7f67da9e1e4186015a8a4af3e50f5
Author: Michael Schroeder <mls@suse.de>
Date: Wed Aug 6 13:27:56 2014 +0200
@@ -545,9 +3671,8 @@ Date: Wed Aug 6 13:27:56 2014 +0200
set.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
- (cherry picked from commit 0f5cc1bf4ad7f67da9e1e4186015a8a4af3e50f5)
-commit 7563f07ec0ea55032f684f9e3bcec6ddb76e5edd
+commit 5328f3f21494b6005d89cede75ec89fd17a7ca1a
Author: Michael Schroeder <mls@suse.de>
Date: Wed Aug 6 13:21:08 2014 +0200
@@ -557,27 +3682,22 @@ Date: Wed Aug 6 13:21:08 2014 +0200
installed packages.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
- (cherry picked from commit 5328f3f21494b6005d89cede75ec89fd17a7ca1a)
-commit e155fc6a906b9de6de37632feab9582326157e95
+commit 5dfb6e662451ab69e7c3a98191ae773db97be39b
Author: Lubos Kardos <lkardos@lkardos.brq.redhat.com>
Date: Mon Jul 28 09:26:05 2014 +0200
parseSimplePart() returned bad return code in case of failure (RhBug:1123722)
-
- (cherry picked from commit 5dfb6e662451ab69e7c3a98191ae773db97be39b)
-commit 4e55f32530475f2ddc111af7152bec6efe5ba065
+commit 6b6f8e6ecba05c69e4ecfc0ef6981a920b4b0eb6
Author: Florian Festi <ffesti@redhat.com>
Date: Tue Jul 22 13:09:33 2014 +0200
Modify rpmalSatisfiesDepend() to get the requesting TE as a param to be able to prefere self provides.
This way the ordering code can ignore self provides and avoid unnessecary dependency loops as in rhbz#1111349
-
- (cherry picked from commit 6b6f8e6ecba05c69e4ecfc0ef6981a920b4b0eb6)
-commit 61559415c5d83ce19b63e32e2c09c47c26204003
+commit e49c51e451584d3229f629ed2923ccb34a94987b
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Jul 10 13:52:19 2014 +0300
@@ -587,112 +3707,86 @@ Date: Thu Jul 10 13:52:19 2014 +0300
so in reality this is entirely free of any rpmbuild-specifics.
Meaning we could trivially lift it to librpmio for macros...
- No functional changes here
-
- (cherry picked from commit e49c51e451584d3229f629ed2923ccb34a94987b)
-commit 23bd5ceb911d0e0c6eb1dea573921e5ea8f07d90
+commit e6ea36806ba21cb1b4f72b28946528091b3fe635
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Jul 9 16:05:33 2014 +0300
Add testcase for basic trigger behavior
-
- (cherry picked from commit e6ea36806ba21cb1b4f72b28946528091b3fe635)
-commit 974576f2c3410ee0b62019b7453ed976fd9fd894
+commit 90b821df89698ec8affb00eb6f61eb7c84a186f7
Author: Florian Festi <ffesti@redhat.com>
Date: Wed Jun 11 13:13:11 2014 +0200
Make package dependencies an array
-
- (cherry picked from commit 90b821df89698ec8affb00eb6f61eb7c84a186f7)
-commit 005aec373a24f7049d6c89552f31d05e298b66b4
+commit 98a73b7ce0ec97789d60897292b12c97b6f562d2
Author: Florian Festi <ffesti@redhat.com>
Date: Fri Jun 27 12:50:31 2014 +0200
Add weak deps to the dependency generators
-
- (cherry picked from commit 98a73b7ce0ec97789d60897292b12c97b6f562d2)
-commit fcfd72e9c06857865b5b168b2e13488dde24c5ab
+commit 11a8af9c07640b9c917486e432ae2834c7af0906
Author: Florian Festi <ffesti@redhat.com>
Date: Fri Jun 27 12:49:14 2014 +0200
Make calling the dependency generators more generic
-
- (cherry picked from commit 11a8af9c07640b9c917486e432ae2834c7af0906)
-commit 4dda618eef9ae1a2be6873c14f980fbe36324273
+commit a357c99c58a5e1367160dfa692f26d14bd3a3df1
Author: Florian Festi <ffesti@redhat.com>
Date: Mon Jun 16 15:01:22 2014 +0200
Do not write the dependencies to the header instantly.
Add the dependencies generated from the files to the package and write them to the header at the end.
-
- (cherry picked from commit a357c99c58a5e1367160dfa692f26d14bd3a3df1)
-commit 52d9ea4da17280069b7eabcba9891e7f92241e36
+commit 400834a731802310b4ed03518ec30e8e2e8102dc
Author: Florian Festi <ffesti@redhat.com>
Date: Tue Jun 10 10:31:55 2014 +0200
Redo addReqProv to no longer deal with all tags explictly
-
- (cherry picked from commit 400834a731802310b4ed03518ec30e8e2e8102dc)
-commit f237cf7cff0df7ee34e038bcf6135f44c57c2705
+commit c08796791e444b59940b1a891b6a35e09b722b09
Author: Florian Festi <ffesti@redhat.com>
Date: Tue Jun 10 10:29:38 2014 +0200
Add packageDependencies() to allow accesing the rpmds by name tag
-
- (cherry picked from commit c08796791e444b59940b1a891b6a35e09b722b09)
-commit 89e10df5eceb805949fe805433f284c431a521b1
+commit 1ba4a76a54ec762b767dc100b3f1df18adccf5cc
Author: Florian Festi <ffesti@redhat.com>
Date: Fri Jun 6 12:23:22 2014 +0200
Add rpmdsDToTagN() to convert single char endocding used by the dependency generators to tags
-
- (cherry picked from commit 1ba4a76a54ec762b767dc100b3f1df18adccf5cc)
-commit 080485572a90ecb7caf05c75444dddea887fd9a1
+commit 2e9864752daa9811ccce82bbb312b1cfcc481d9a
Author: Florian Festi <ffesti@redhat.com>
Date: Tue Jul 8 14:08:16 2014 +0200
Add rpmdsD for getting the one char abbreviation for dependency types
-
- (cherry picked from commit 2e9864752daa9811ccce82bbb312b1cfcc481d9a)
-commit 4c08e71070eebfc5454630d48654e23c032bcaf9
+commit 39382b5675fb804e023dfb9fd56ca7676f134d72
Author: Florian Festi <ffesti@redhat.com>
Date: Fri Jun 6 12:21:00 2014 +0200
Add tagNToChar() to convert tag values to single char encoding.
Used by rpmdsDNEVR fixing the problem of multiple tags starting with the same character. The characters match the ones used in the dependecy dependency generators during build.
-
- (cherry picked from commit 39382b5675fb804e023dfb9fd56ca7676f134d72)
-commit 02f4d899e16d433f0f3ef13f1cae70dc00b597df
+commit 9209165c676c3b0590306163db3683a0211db042
Author: Florian Festi <ffesti@redhat.com>
Date: Fri Jun 6 12:05:51 2014 +0200
Add rpmSanitizeDSFlags() function
to centralize this code and remove it from the build code
-
- (cherry picked from commit 9209165c676c3b0590306163db3683a0211db042)
-commit 2965638684eec1b18f5d765b0bcaf93a57f30ec9
+commit 899d602616209aad9030e475525a06204d3306bd
Author: Lubos Kardos <lkardos@redhat.com>
Date: Mon Jul 7 16:31:15 2014 +0200
addReqProv() and handleOneTrigger() now use rpmds with trigger indices.
-
- (cherry picked from commit 899d602616209aad9030e475525a06204d3306bd)
-commit be722985b552655d998fd56352ca769bf789090f
+commit 06122bc1a4da955cec8f13a8eecf506305e41c7f
Author: Lubos Kardos <lkardos@redhat.com>
Date: Mon Jul 7 16:18:12 2014 +0200
@@ -703,10 +3797,8 @@ Date: Mon Jul 7 16:18:12 2014 +0200
they are set and rpmdsPutToHeader()/rpmdsNewPool() puts/gets
trigger indices into/from header if resulting rpmds is trigger
rpmds.
-
- (cherry picked from commit 06122bc1a4da955cec8f13a8eecf506305e41c7f)
-commit 55b1e596b4c1fc7b0e494644d2658d0e6a1ef136
+commit cbbfe6388a438ab8283c95e6da2df45927e36557
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Jul 3 17:51:31 2014 +0300
@@ -723,18 +3815,14 @@ Date: Thu Jul 3 17:51:31 2014 +0300
actually HWCAP_ARM_VFPv3. Which is of course exactly what we want here,
but the commit looks fishy because of this.
- This is all just sooooo wonderfully arbitrary...
-
- (cherry picked from commit cbbfe6388a438ab8283c95e6da2df45927e36557)
-commit 9bcdc7a4a325ee1eb1b8442eae27a80260ae4708
+commit 43c4478d6c9c75a2518b2e25b3f2a80415d5e008
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Jul 3 13:34:20 2014 +0300
Add testcase for db iterator wildcard matching
-
- (cherry picked from commit 43c4478d6c9c75a2518b2e25b3f2a80415d5e008)
-commit 2439ce0ff78baec5cdcb838ec39181dcafbae7d5
+commit 708fb8c35eff3acacf2b7d197f9ef59fb9551e15
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Jul 3 13:31:34 2014 +0300
@@ -742,26 +3830,20 @@ Date: Thu Jul 3 13:31:34 2014 +0300
- Should've been in / Fixes a regression introduced in (pick your favorite)
commit bc871e8fead5fd16f2c51a4a453bddf9994b80ba
-
- (cherry picked from commit 708fb8c35eff3acacf2b7d197f9ef59fb9551e15)
-commit f24634043b03acf7ee3008a9ac36763eea5b1230
+commit d4ab1d82d7888f41b866751d0ef340a82be7cff2
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Jul 1 12:04:40 2014 +0300
Macro-expand %{load:...} argument to make the thing more useful...
-
- (cherry picked from commit d4ab1d82d7888f41b866751d0ef340a82be7cff2)
-commit b3a645136f05a3c628e41456e9ce9c33f770363f
+commit 7f88d79dbef90cacc3ec84bc705ddf61c7c2a39b
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Jun 30 15:18:07 2014 +0300
Add test for multiple hardlink groups, ie previous commit
-
- (cherry picked from commit 7f88d79dbef90cacc3ec84bc705ddf61c7c2a39b)
-commit c64a4b54dd16537ad0c609037e96d295a60d9ace
+commit b7b8b3343f8668f77baf8f2cddbdd99d9d62c1f4
Author: Florian Festi <ffesti@redhat.com>
Date: Mon Jun 30 13:30:38 2014 +0200
@@ -771,8 +3853,6 @@ Date: Mon Jun 30 13:30:38 2014 +0200
archive we need to return to the first entry to make sure we do not leave out
other groups of hardlinked files that start between the group we are currently
processing
-
- (cherry picked from commit b7b8b3343f8668f77baf8f2cddbdd99d9d62c1f4)
commit 22739161483679c882f112272bf673e8d875bb47
Author: Panu Matilainen <pmatilai@redhat.com>
diff --git a/Makefile.am b/Makefile.am
index 4b5d1d86..863138c8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -167,6 +167,10 @@ rpmlibexec_PROGRAMS += elfdeps
elfdeps_SOURCES = tools/elfdeps.c
elfdeps_LDADD = rpmio/librpmio.la
elfdeps_LDADD += @WITH_LIBELF_LIB@ @WITH_POPT_LIB@
+
+rpmlibexec_PROGRAMS += sepdebugcrcfix
+sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c
+sepdebugcrcfix_LDADD = @WITH_LIBELF_LIB@
endif
endif
@@ -195,6 +199,9 @@ macros: $(top_srcdir)/macros.in
CLEANFILES += macros
EXTRA_DIST += macros.in
+# Used for the testsuite to test creating debuginfo packages
+EXTRA_DIST += macros.debug
+
noinst_DATA += platform
platform: $(top_srcdir)/platform.in
@$(SED) \
diff --git a/Makefile.in b/Makefile.in
index cc644cf0..bd762f57 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -106,7 +106,8 @@ bin_PROGRAMS = rpm2cpio$(EXEEXT) rpmbuild$(EXEEXT) rpmdb$(EXEEXT) \
@WITH_ARCHIVE_TRUE@am__append_6 = rpm2archive
rpmlibexec_PROGRAMS = $(am__EXEEXT_2) rpmdeps$(EXEEXT)
@LIBDWARF_TRUE@@LIBELF_TRUE@am__append_7 = scripts/find-debuginfo.sh
-@LIBDWARF_TRUE@@LIBELF_TRUE@am__append_8 = debugedit elfdeps
+@LIBDWARF_TRUE@@LIBELF_TRUE@am__append_8 = debugedit elfdeps \
+@LIBDWARF_TRUE@@LIBELF_TRUE@ sepdebugcrcfix
@DOXYGEN_TRUE@@HACKINGDOCS_TRUE@am__append_9 = doc/hacking/html/index.html
@DOXYGEN_TRUE@am__append_10 = doc/librpm/html/index.html
@WITH_INTERNAL_DB_TRUE@am__append_11 = db.h
@@ -146,7 +147,8 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(rpmbindir)" \
"$(DESTDIR)$(rpmconfigdir)" "$(DESTDIR)$(rpmvardir)" \
"$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"
@LIBDWARF_TRUE@@LIBELF_TRUE@am__EXEEXT_2 = debugedit$(EXEEXT) \
-@LIBDWARF_TRUE@@LIBELF_TRUE@ elfdeps$(EXEEXT)
+@LIBDWARF_TRUE@@LIBELF_TRUE@ elfdeps$(EXEEXT) \
+@LIBDWARF_TRUE@@LIBELF_TRUE@ sepdebugcrcfix$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS) $(rpmbin_PROGRAMS) $(rpmlibexec_PROGRAMS)
am__debugedit_SOURCES_DIST = tools/debugedit.c tools/hashtab.c \
tools/hashtab.h
@@ -196,6 +198,11 @@ am_rpmspec_OBJECTS = rpmspec-rpmspec.$(OBJEXT)
rpmspec_OBJECTS = $(am_rpmspec_OBJECTS)
rpmspec_DEPENDENCIES = libcliutils.la build/librpmbuild.la \
lib/librpm.la rpmio/librpmio.la
+am__sepdebugcrcfix_SOURCES_DIST = tools/sepdebugcrcfix.c
+@LIBDWARF_TRUE@@LIBELF_TRUE@am_sepdebugcrcfix_OBJECTS = \
+@LIBDWARF_TRUE@@LIBELF_TRUE@ tools/sepdebugcrcfix.$(OBJEXT)
+sepdebugcrcfix_OBJECTS = $(am_sepdebugcrcfix_OBJECTS)
+sepdebugcrcfix_DEPENDENCIES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -262,12 +269,14 @@ SOURCES = $(libcliutils_la_SOURCES) $(debugedit_SOURCES) \
$(elfdeps_SOURCES) $(rpm_SOURCES) $(rpm2archive_SOURCES) \
$(rpm2cpio_SOURCES) $(rpmbuild_SOURCES) $(rpmdb_SOURCES) \
$(rpmdeps_SOURCES) $(rpmgraph_SOURCES) $(rpmkeys_SOURCES) \
- $(rpmsign_SOURCES) $(rpmspec_SOURCES)
+ $(rpmsign_SOURCES) $(rpmspec_SOURCES) \
+ $(sepdebugcrcfix_SOURCES)
DIST_SOURCES = $(libcliutils_la_SOURCES) $(am__debugedit_SOURCES_DIST) \
$(am__elfdeps_SOURCES_DIST) $(rpm_SOURCES) \
$(rpm2archive_SOURCES) $(rpm2cpio_SOURCES) $(rpmbuild_SOURCES) \
$(rpmdb_SOURCES) $(rpmdeps_SOURCES) $(rpmgraph_SOURCES) \
- $(rpmkeys_SOURCES) $(rpmsign_SOURCES) $(rpmspec_SOURCES)
+ $(rpmkeys_SOURCES) $(rpmsign_SOURCES) $(rpmspec_SOURCES) \
+ $(am__sepdebugcrcfix_SOURCES_DIST)
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
@@ -603,7 +612,7 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
CLEANFILES = rpmrc.tmp rpmrc macros platform.tmp platform rpm.pc.tmp \
rpm.pc rpmpopt-@VERSION@.tmp rpmpopt-@VERSION@ \
include/rpm/argv.h include/rpm/rpmio.h include/rpm/rpmurl.h \
@@ -623,10 +632,12 @@ CLEANFILES = rpmrc.tmp rpmrc macros platform.tmp platform rpm.pc.tmp \
include/rpm/rpmarchive.h include/rpm/rpmsign.h \
include/rpm/rpmbuild.h include/rpm/rpmfc.h \
include/rpm/rpmspec.h
+
+# Used for the testsuite to test creating debuginfo packages
EXTRA_DIST = CHANGES ChangeLog CREDITS GROUPS INSTALL autogen.sh \
db3/configure installplatform platform.in rpmrc.in macros.in \
- platform.in rpm.pc.in rpmpopt.in doc/hacking.doxy.in \
- doc/hacking/Doxyheader doc/librpm.doxy.in \
+ macros.debug platform.in rpm.pc.in rpmpopt.in \
+ doc/hacking.doxy.in doc/hacking/Doxyheader doc/librpm.doxy.in \
doc/librpm/Doxyheader doc/librpm/html
BUILT_SOURCES = $(am__append_11) include/rpm/argv.h \
include/rpm/rpmio.h include/rpm/rpmurl.h \
@@ -718,6 +729,8 @@ rpm2archive_LDADD = lib/librpm.la rpmio/librpmio.la @WITH_NSS_LIB@ \
@LIBDWARF_TRUE@@LIBELF_TRUE@elfdeps_LDADD = rpmio/librpmio.la \
@LIBDWARF_TRUE@@LIBELF_TRUE@ @WITH_LIBELF_LIB@ @WITH_POPT_LIB@ \
@LIBDWARF_TRUE@@LIBELF_TRUE@ $(am__empty)
+@LIBDWARF_TRUE@@LIBELF_TRUE@sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c
+@LIBDWARF_TRUE@@LIBELF_TRUE@sepdebugcrcfix_LDADD = @WITH_LIBELF_LIB@
rpmdeps_SOURCES = tools/rpmdeps.c
rpmdeps_LDADD = lib/librpm.la rpmio/librpmio.la build/librpmbuild.la @WITH_POPT_LIB@
rpmgraph_SOURCES = tools/rpmgraph.c
@@ -1010,6 +1023,12 @@ rpmsign$(EXEEXT): $(rpmsign_OBJECTS) $(rpmsign_DEPENDENCIES) $(EXTRA_rpmsign_DEP
rpmspec$(EXEEXT): $(rpmspec_OBJECTS) $(rpmspec_DEPENDENCIES) $(EXTRA_rpmspec_DEPENDENCIES)
@rm -f rpmspec$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(rpmspec_OBJECTS) $(rpmspec_LDADD) $(LIBS)
+tools/sepdebugcrcfix.$(OBJEXT): tools/$(am__dirstamp) \
+ tools/$(DEPDIR)/$(am__dirstamp)
+
+sepdebugcrcfix$(EXEEXT): $(sepdebugcrcfix_OBJECTS) $(sepdebugcrcfix_DEPENDENCIES) $(EXTRA_sepdebugcrcfix_DEPENDENCIES)
+ @rm -f sepdebugcrcfix$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sepdebugcrcfix_OBJECTS) $(sepdebugcrcfix_LDADD) $(LIBS)
install-dist_binSCRIPTS: $(dist_bin_SCRIPTS)
@$(NORMAL_INSTALL)
@list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
@@ -1102,6 +1121,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/hashtab.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/rpmdeps.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/rpmgraph.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/sepdebugcrcfix.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
diff --git a/build/Makefile.am b/build/Makefile.am
index 03d16c63..dbda716a 100644
--- a/build/Makefile.am
+++ b/build/Makefile.am
@@ -23,5 +23,6 @@ librpmbuild_la_LIBADD = \
$(top_builddir)/lib/librpm.la \
$(top_builddir)/rpmio/librpmio.la \
$(top_builddir)/misc/libmisc.la \
+ @LTLIBICONV@ \
@WITH_POPT_LIB@ \
@WITH_MAGIC_LIB@
diff --git a/build/Makefile.in b/build/Makefile.in
index b6c9768c..905844ab 100644
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -457,7 +457,7 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \
-I$(top_builddir)/include/ @WITH_NSS_INCLUDE@ \
@WITH_MAGIC_INCLUDE@ @WITH_POPT_INCLUDE@ -I$(top_srcdir)/misc
@@ -476,6 +476,7 @@ librpmbuild_la_LIBADD = \
$(top_builddir)/lib/librpm.la \
$(top_builddir)/rpmio/librpmio.la \
$(top_builddir)/misc/libmisc.la \
+ @LTLIBICONV@ \
@WITH_POPT_LIB@ \
@WITH_MAGIC_LIB@
diff --git a/build/files.c b/build/files.c
index df0b6111..65d8e474 100644
--- a/build/files.c
+++ b/build/files.c
@@ -103,14 +103,6 @@ typedef struct AttrRec_s {
/* list of files */
static StringBuf check_fileList = NULL;
-typedef struct specialDir_s {
- char * dirname;
- ARGV_t files;
- struct AttrRec_s ar;
- struct AttrRec_s def_ar;
- rpmFlags sdtype;
-} * specialDir;
-
typedef struct FileEntry_s {
rpmfileAttrs attrFlags;
specfFlags specdFlags;
@@ -127,6 +119,23 @@ typedef struct FileEntry_s {
int isDir;
} * FileEntry;
+typedef struct specialDir_s {
+ char * dirname;
+ ARGV_t files;
+ struct AttrRec_s ar;
+ struct AttrRec_s def_ar;
+ rpmFlags sdtype;
+
+ int entriesCount;
+ int entriesAlloced;
+
+ struct {
+ struct FileEntry_s defEntry;
+ struct FileEntry_s curEntry;
+ } *entries;
+
+} * specialDir;
+
typedef struct FileRecords_s {
FileListRec recs;
int alloced;
@@ -169,6 +178,22 @@ static void dupAttrRec(const AttrRec oar, AttrRec nar)
*nar = *oar; /* struct assignment */
}
+static void copyFileEntry(FileEntry src, FileEntry dest)
+{
+ /* Copying struct makes just shallow copy */
+ *dest = *src;
+
+ /* Do also deep copying */
+ if (src->langs != NULL) {
+ dest->langs = argvNew();
+ argvAppend(&dest->langs, src->langs);
+ }
+
+ if (src->caps != NULL) {
+ dest->caps = xstrdup(src->caps);
+ }
+}
+
static void FileEntryFree(FileEntry entry)
{
argvFree(entry->langs);
@@ -429,6 +454,7 @@ exit:
/**
* Parse %attr and %defattr from file manifest.
+ * @param pool string pool
* @param buf current spec file line
* @param def parse for %defattr or %attr?
* @param entry file entry data (current / default)
@@ -782,6 +808,7 @@ static VFA_t const virtualAttrs[] = {
{ "%readme", RPMFILE_README },
{ "%license", RPMFILE_LICENSE },
{ "%pubkey", RPMFILE_PUBKEY },
+ { "%missingok", RPMFILE_MISSINGOK },
{ NULL, 0 }
};
@@ -862,7 +889,7 @@ static int isHardLink(FileListRec flp, FileListRec tlp)
/**
* Verify that file attributes scope over hardlinks correctly.
* If partial hardlink sets are possible, then add tracking dependency.
- * @param fl package file records
+ * @param files package file records
* @return 1 if partial hardlink sets can exist, 0 otherwise.
*/
static int checkHardLinks(FileRecords files)
@@ -901,9 +928,8 @@ static int seenHardLink(FileRecords files, FileListRec flp, rpm_ino_t *fileid)
* @todo Should directories have %doc/%config attributes? (#14531)
* @todo Remove RPMTAG_OLDFILENAMES, add dirname/basename instead.
* @param fl package file tree walk data
- * @retval *fip file info for package
- * @param h
- * @param isSrc
+ * @param pkg (sub) package
+ * @param isSrc pass 1 for source packages 0 otherwise
*/
static void genCpioListAndHeader(FileList fl, Package pkg, int isSrc)
{
@@ -931,6 +957,30 @@ static void genCpioListAndHeader(FileList fl, Package pkg, int isSrc)
digestalgo = defaultalgo;
}
+ /* Adjust paths if needed */
+ for (i = 0, flp = fl->files.recs; i < fl->files.used; i++, flp++) {
+ int changed = 0;
+ char * cpiopath = flp->cpioPath;
+
+ if (!isSrc && pkg->removePostfixes)
+ for (ARGV_const_t postfix_p = pkg->removePostfixes; *postfix_p; postfix_p++) {
+ int len = strlen(*postfix_p);
+ int plen = strlen(cpiopath);
+ if (len <= plen && !strncmp(cpiopath+plen-len, *postfix_p, len)) {
+ cpiopath[plen-len] = '\0';
+ changed = 1;
+ if (plen-len > 0 && cpiopath[plen-len-1] == '/') {
+ cpiopath[plen-len-1] = '\0';
+ }
+ }
+ }
+ if (changed) {
+ char * tmp = xstrdup(cpiopath);
+ _free(flp->cpioPath);
+ flp->cpioPath = tmp;
+ }
+ }
+
/* Sort the big list */
qsort(fl->files.recs, fl->files.used,
sizeof(*(fl->files.recs)), compareFileListRecs);
@@ -1560,16 +1610,13 @@ static rpmRC processBinaryFile(Package pkg, FileList fl, const char * fileName)
}
argvFree(argv);
} else {
- int lvl = RPMLOG_WARNING;
const char *msg = (fl->cur.isDir) ?
- _("Directory not found by glob: %s\n") :
- _("File not found by glob: %s\n");
- if (!(fl->cur.attrFlags & RPMFILE_EXCLUDE)) {
- lvl = RPMLOG_ERR;
- rc = RPMRC_FAIL;
- }
- rpmlog(lvl, msg, diskPath);
- goto exit;
+ _("Directory not found by glob: %s. "
+ "Trying without globbing.\n") :
+ _("File not found by glob: %s. "
+ "Trying without globbing.\n");
+ rpmlog(RPMLOG_DEBUG, msg, diskPath);
+ rc = addFile(fl, diskPath, NULL);
}
} else {
rc = addFile(fl, diskPath, NULL);
@@ -1590,6 +1637,7 @@ static rpmRC readFilesManifest(rpmSpec spec, Package pkg, const char *path)
FILE *fd = NULL;
rpmRC rc = RPMRC_FAIL;
unsigned int nlines = 0;
+ char *expanded;
if (*path == '/') {
fn = rpmGetPath(path, NULL);
@@ -1604,19 +1652,29 @@ static rpmRC readFilesManifest(rpmSpec spec, Package pkg, const char *path)
goto exit;
}
+ /* XXX unmask %license while parsing files manifest*/
+ addMacro(spec->macros, "license", NULL, "%%license", RMIL_SPEC);
+
while (fgets(buf, sizeof(buf), fd)) {
if (handleComments(buf))
continue;
- if (expandMacros(spec, spec->macros, buf, sizeof(buf))) {
+ if(rpmExpandMacros(spec->macros, buf, &expanded, 0) < 0) {
rpmlog(RPMLOG_ERR, _("line: %s\n"), buf);
goto exit;
}
- argvAdd(&(pkg->fileList), buf);
+ argvAdd(&(pkg->fileList), expanded);
+ free(expanded);
nlines++;
}
- if (nlines == 0)
- rpmlog(RPMLOG_WARNING, _("Empty %%files file %s\n"), fn);
+ if (nlines == 0) {
+ int terminate =
+ rpmExpandNumeric("%{?_empty_manifest_terminate_build}");
+ rpmlog(terminate ? RPMLOG_ERR : RPMLOG_WARNING,
+ _("Empty %%files file %s\n"), fn);
+ if (terminate)
+ goto exit;
+ }
if (ferror(fd))
rpmlog(RPMLOG_ERR, _("Error reading %%files file %s: %m\n"), fn);
@@ -1624,6 +1682,7 @@ static rpmRC readFilesManifest(rpmSpec spec, Package pkg, const char *path)
rc = RPMRC_OK;
exit:
+ delMacro(NULL, "license");
if (fd) fclose(fd);
free(fn);
return rc;
@@ -1656,22 +1715,47 @@ static char * getSpecialDocDir(Header h, rpmFlags sdtype)
return res;
}
-static specialDir specialDirNew(Header h, rpmFlags sdtype,
- AttrRec ar, AttrRec def_ar)
+static specialDir specialDirNew(Header h, rpmFlags sdtype)
{
specialDir sd = xcalloc(1, sizeof(*sd));
- dupAttrRec(ar, &(sd->ar));
- dupAttrRec(def_ar, &(sd->def_ar));
+
+ sd->entriesCount = 0;
+ sd->entriesAlloced = 10;
+ sd->entries = xcalloc(sd->entriesAlloced, sizeof(sd->entries[0]));
+
sd->dirname = getSpecialDocDir(h, sdtype);
sd->sdtype = sdtype;
return sd;
}
+static void addSpecialFile(specialDir sd, const char *path, FileEntry cur,
+ FileEntry def)
+{
+ argvAdd(&sd->files, path);
+
+ if (sd->entriesCount >= sd->entriesAlloced) {
+ sd->entriesAlloced <<= 1;
+ sd->entries = xrealloc(sd->entries, sd->entriesAlloced *
+ sizeof(sd->entries[0]));
+ }
+
+ copyFileEntry(cur, &sd->entries[sd->entriesCount].curEntry);
+ copyFileEntry(def, &sd->entries[sd->entriesCount].defEntry);
+ sd->entriesCount++;
+}
+
static specialDir specialDirFree(specialDir sd)
{
+ int i = 0;
+
if (sd) {
argvFree(sd->files);
free(sd->dirname);
+ for (i = 0; i < sd->entriesCount; i++) {
+ FileEntryFree(&sd->entries[i].curEntry);
+ FileEntryFree(&sd->entries[i].defEntry);
+ }
+ free(sd->entries);
free(sd);
}
return NULL;
@@ -1684,6 +1768,8 @@ static void processSpecialDir(rpmSpec spec, Package pkg, FileList fl,
const char *sdname = (sd->sdtype == RPMFILE_DOC) ? "%doc" : "%license";
char *mkdocdir = rpmExpand("%{__mkdir_p} $", sdenv, NULL);
StringBuf docScript = newStringBuf();
+ char *basepath, **files;
+ int fi;
appendStringBuf(docScript, sdenv);
appendStringBuf(docScript, "=$RPM_BUILD_ROOT");
@@ -1710,14 +1796,44 @@ static void processSpecialDir(rpmSpec spec, Package pkg, FileList fl,
fl->processingFailed = 1;
}
- /* Reset for %doc */
- FileEntryFree(&fl->cur);
-
- fl->cur.attrFlags |= sd->sdtype;
- fl->cur.verifyFlags = fl->def.verifyFlags;
- dupAttrRec(&(sd->ar), &(fl->cur.ar));
- dupAttrRec(&(sd->def_ar), &(fl->def.ar));
+ basepath = rpmGenPath(spec->rootDir, "%{_builddir}", spec->buildSubdir);
+ files = sd->files;
+ fi = 0;
+ while (*files != NULL) {
+ char *origfile = rpmGenPath(basepath, *files, NULL);
+ char *eorigfile = rpmEscapeSpaces(origfile);
+ ARGV_t globFiles;
+ int globFilesCount, i;
+ char *newfile;
+
+ FileEntryFree(&fl->cur);
+ FileEntryFree(&fl->def);
+ copyFileEntry(&sd->entries[fi].curEntry, &fl->cur);
+ copyFileEntry(&sd->entries[fi].defEntry, &fl->def);
+ fi++;
+
+ if (rpmGlob(eorigfile, &globFilesCount, &globFiles) == 0) {
+ for (i = 0; i < globFilesCount; i++) {
+ rasprintf(&newfile, "%s/%s", sd->dirname, basename(globFiles[i]));
+ processBinaryFile(pkg, fl, newfile);
+ free(newfile);
+ }
+ argvFree(globFiles);
+ } else {
+ rpmlog(RPMLOG_ERR, _("File not found by glob: %s\n"), eorigfile);
+ fl->processingFailed = 1;
+ }
+ free(eorigfile);
+ free(origfile);
+ files++;
+ }
+ free(basepath);
+ FileEntryFree(&fl->cur);
+ FileEntryFree(&fl->def);
+ copyFileEntry(&sd->entries[0].defEntry, &fl->def);
+ copyFileEntry(&sd->entries[0].defEntry, &fl->cur);
+ fl->cur.isDir = 1;
(void) processBinaryFile(pkg, fl, sd->dirname);
freeStringBuf(docScript);
@@ -1811,10 +1927,9 @@ static rpmRC processPackageFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags,
/* save attributes on first special doc/license for later use */
if (*sdp == NULL) {
- *sdp = specialDirNew(pkg->header, oattrs,
- &fl.cur.ar, &fl.def.ar);
+ *sdp = specialDirNew(pkg->header, oattrs);
}
- argvAdd(&(*sdp)->files, *fn);
+ addSpecialFile(*sdp, *fn, &fl.cur, &fl.def);
continue;
}
@@ -1962,23 +2077,32 @@ rpmRC processSourceFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags)
flp->fl_mode &= S_IFMT;
flp->fl_mode |= fl.def.ar.ar_fmode;
}
+
if (fl.def.ar.ar_user) {
flp->uname = fl.def.ar.ar_user;
} else {
flp->uname = rpmstrPoolId(fl.pool, rpmugUname(flp->fl_uid), 1);
}
+ if (! flp->uname) {
+ flp->uname = rpmstrPoolId(fl.pool, rpmugUname(getuid()), 1);
+ }
+ if (! flp->uname) {
+ flp->uname = rpmstrPoolId(fl.pool, "root", 1);
+ }
+
if (fl.def.ar.ar_group) {
flp->gname = fl.def.ar.ar_group;
} else {
flp->gname = rpmstrPoolId(fl.pool, rpmugGname(flp->fl_gid), 1);
}
- flp->langs = xstrdup("");
-
- if (! (flp->uname && flp->gname)) {
- rpmlog(RPMLOG_ERR, _("Bad owner/group: %s\n"), diskPath);
- fl.processingFailed = 1;
+ if (! flp->gname) {
+ flp->gname = rpmstrPoolId(fl.pool, rpmugGname(getgid()), 1);
+ }
+ if (! flp->gname) {
+ flp->gname = rpmstrPoolId(fl.pool, "root", 1);
}
+ flp->langs = xstrdup("");
fl.files.used++;
}
argvFree(files);
@@ -1995,6 +2119,7 @@ rpmRC processSourceFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags)
/**
* Check packaged file list against what's in the build root.
+ * @param buildRoot path of build root
* @param fileList packaged file list
* @return -1 if skipped, 0 on OK, 1 on error
*/
diff --git a/build/pack.c b/build/pack.c
index 6cf42ecd..96724143 100644
--- a/build/pack.c
+++ b/build/pack.c
@@ -132,11 +132,13 @@ static rpmRC addFileToTag(rpmSpec spec, const char * file,
}
while (fgets(buf, sizeof(buf), f)) {
- if (expandMacros(spec, spec->macros, buf, sizeof(buf))) {
+ char *expanded;
+ if(rpmExpandMacros(spec->macros, buf, &expanded, 0) < 0) {
rpmlog(RPMLOG_ERR, _("%s: line: %s\n"), fn, buf);
goto exit;
}
- appendStringBuf(sb, buf);
+ appendStringBuf(sb, expanded);
+ free(expanded);
}
headerPutString(h, tag, getStringBuf(sb));
rc = RPMRC_OK;
@@ -163,16 +165,25 @@ static const char * buildHost(void)
static char hostname[1024];
static int oneshot = 0;
struct hostent *hbn;
+ char *bhMacro;
if (! oneshot) {
- (void) gethostname(hostname, sizeof(hostname));
- hbn = gethostbyname(hostname);
- if (hbn)
- strcpy(hostname, hbn->h_name);
- else
- rpmlog(RPMLOG_WARNING,
- _("Could not canonicalize hostname: %s\n"), hostname);
- oneshot = 1;
+ bhMacro = rpmExpand("%{?_buildhost}", NULL);
+ if (strcmp(bhMacro, "") != 0 && strlen(bhMacro) < 1024) {
+ strcpy(hostname, bhMacro);
+ } else {
+ if (strcmp(bhMacro, "") != 0)
+ rpmlog(RPMLOG_WARNING, _("The _buildhost macro is too long\n"));
+ (void) gethostname(hostname, sizeof(hostname));
+ hbn = gethostbyname(hostname);
+ if (hbn)
+ strcpy(hostname, hbn->h_name);
+ else
+ rpmlog(RPMLOG_WARNING,
+ _("Could not canonicalize hostname: %s\n"), hostname);
+ }
+ free(bhMacro);
+ oneshot = 1;
}
return(hostname);
}
@@ -183,6 +194,25 @@ static rpmRC processScriptFiles(rpmSpec spec, Package pkg)
int addflags = 0;
rpmRC rc = RPMRC_FAIL;
Header h = pkg->header;
+ struct TriggerFileEntry *tfa[] = {pkg->triggerFiles,
+ pkg->fileTriggerFiles,
+ pkg->transFileTriggerFiles};
+
+ rpmTagVal progTags[] = {RPMTAG_TRIGGERSCRIPTPROG,
+ RPMTAG_FILETRIGGERSCRIPTPROG,
+ RPMTAG_TRANSFILETRIGGERSCRIPTPROG};
+
+ rpmTagVal flagTags[] = {RPMTAG_TRIGGERSCRIPTFLAGS,
+ RPMTAG_FILETRIGGERSCRIPTFLAGS,
+ RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS};
+
+ rpmTagVal scriptTags[] = {RPMTAG_TRIGGERSCRIPTS,
+ RPMTAG_FILETRIGGERSCRIPTS,
+ RPMTAG_TRANSFILETRIGGERSCRIPTS};
+ rpmTagVal priorityTags[] = {0,
+ RPMTAG_FILETRIGGERPRIORITIES,
+ RPMTAG_TRANSFILETRIGGERPRIORITIES};
+ int i;
if (addFileToTag(spec, pkg->preInFile, h, RPMTAG_PREIN, 1) ||
addFileToTag(spec, pkg->preUnFile, h, RPMTAG_PREUN, 1) ||
@@ -195,30 +225,39 @@ static rpmRC processScriptFiles(rpmSpec spec, Package pkg)
goto exit;
}
- /* if any trigger has flags, we need to add flags entry for all of them */
- for (p = pkg->triggerFiles; p != NULL; p = p->next) {
- if (p->flags) {
- addflags = 1;
- break;
- }
- }
- for (p = pkg->triggerFiles; p != NULL; p = p->next) {
- headerPutString(h, RPMTAG_TRIGGERSCRIPTPROG, p->prog);
- if (addflags) {
- headerPutUint32(h, RPMTAG_TRIGGERSCRIPTFLAGS, &p->flags, 1);
+ for (i = 0; i < sizeof(tfa)/sizeof(tfa[0]); i++) {
+ addflags = 0;
+ /* if any trigger has flags, we need to add flags entry for all of them */
+ for (p = tfa[i]; p != NULL; p = p->next) {
+ if (p->flags) {
+ addflags = 1;
+ break;
+ }
}
- if (p->script) {
- headerPutString(h, RPMTAG_TRIGGERSCRIPTS, p->script);
- } else if (p->fileName) {
- if (addFileToTag(spec, p->fileName, h, RPMTAG_TRIGGERSCRIPTS, 0)) {
- goto exit;
+ for (p = tfa[i]; p != NULL; p = p->next) {
+ headerPutString(h, progTags[i], p->prog);
+
+ if (priorityTags[i]) {
+ headerPutUint32(h, priorityTags[i], &p->priority, 1);
+ }
+
+ if (addflags) {
+ headerPutUint32(h, flagTags[i], &p->flags, 1);
+ }
+
+ if (p->script) {
+ headerPutString(h, scriptTags[i], p->script);
+ } else if (p->fileName) {
+ if (addFileToTag(spec, p->fileName, h, scriptTags[i], 0)) {
+ goto exit;
+ }
+ } else {
+ /* This is dumb. When the header supports NULL string */
+ /* this will go away. */
+ headerPutString(h, scriptTags[i], "");
}
- } else {
- /* This is dumb. When the header supports NULL string */
- /* this will go away. */
- headerPutString(h, RPMTAG_TRIGGERSCRIPTS, "");
}
}
rc = RPMRC_OK;
@@ -227,41 +266,30 @@ exit:
return rc;
}
-static int depContainsTilde(Header h, rpmTagVal tagEVR)
+static int haveTildeDep(Package pkg)
{
- struct rpmtd_s evrs;
- const char *evr = NULL;
-
- if (headerGet(h, tagEVR, &evrs, HEADERGET_MINMEM)) {
- while ((evr = rpmtdNextString(&evrs)) != NULL)
- if (strchr(evr, '~'))
- break;
- rpmtdFreeData(&evrs);
+ for (int i = 0; i < PACKAGE_NUM_DEPS; i++) {
+ rpmds ds = rpmdsInit(pkg->dependencies[i]);
+ while (rpmdsNext(ds) >= 0) {
+ if (strchr(rpmdsEVR(ds), '~'))
+ return 1;
+ }
}
- return evr != NULL;
+ return 0;
}
-static rpmTagVal depevrtags[] = {
- RPMTAG_PROVIDEVERSION,
- RPMTAG_REQUIREVERSION,
- RPMTAG_OBSOLETEVERSION,
- RPMTAG_CONFLICTVERSION,
- RPMTAG_ORDERVERSION,
- RPMTAG_TRIGGERVERSION,
- RPMTAG_SUGGESTVERSION,
- RPMTAG_ENHANCEVERSION,
- RPMTAG_RECOMMENDVERSION,
- RPMTAG_SUPPLEMENTVERSION,
- 0
-};
-
-static int haveTildeDep(Header h)
+static int haveRichDep(Package pkg)
{
- int i;
-
- for (i = 0; depevrtags[i] != 0; i++)
- if (depContainsTilde(h, depevrtags[i]))
- return 1;
+ for (int i = 0; i < PACKAGE_NUM_DEPS; i++) {
+ rpmds ds = rpmdsInit(pkg->dependencies[i]);
+ rpmTagVal tagN = rpmdsTagN(ds);
+ if (tagN != RPMTAG_REQUIRENAME && tagN != RPMTAG_CONFLICTNAME)
+ continue;
+ while (rpmdsNext(ds) >= 0) {
+ if (rpmdsIsRich(ds))
+ return 1;
+ }
+ }
return 0;
}
@@ -279,92 +307,6 @@ static rpm_loff_t estimateCpioSize(Package pkg)
return size;
}
-static rpmRC generateSignature(char *SHA1, uint8_t *MD5, rpm_loff_t size,
- rpm_loff_t payloadSize, FD_t fd)
-{
- Header sig = NULL;
- struct rpmtd_s td;
- rpmRC rc = RPMRC_OK;
- char *reservedSpace;
- int spaceSize = 0;
-
- /* Prepare signature */
- sig = rpmNewSignature();
-
- rpmtdReset(&td);
- td.tag = RPMSIGTAG_SHA1;
- td.count = 1;
- td.type = RPM_STRING_TYPE;
- td.data = SHA1;
- headerPut(sig, &td, HEADERPUT_DEFAULT);
-
- rpmtdReset(&td);
- td.tag = RPMSIGTAG_MD5;
- td.count = 16;
- td.type = RPM_BIN_TYPE;
- td.data = MD5;
- headerPut(sig, &td, HEADERPUT_DEFAULT);
-
- rpmtdReset(&td);
- td.count = 1;
- if (payloadSize < UINT32_MAX) {
- rpm_off_t p = payloadSize;
- rpm_off_t s = size;
- td.type = RPM_INT32_TYPE;
-
- td.tag = RPMSIGTAG_PAYLOADSIZE;
- td.data = &p;
- headerPut(sig, &td, HEADERPUT_DEFAULT);
-
- td.tag = RPMSIGTAG_SIZE;
- td.data = &s;
- headerPut(sig, &td, HEADERPUT_DEFAULT);
- } else {
- rpm_loff_t p = payloadSize;
- rpm_loff_t s = size;
- td.type = RPM_INT64_TYPE;
-
- td.tag = RPMSIGTAG_LONGARCHIVESIZE;
- td.data = &p;
- headerPut(sig, &td, HEADERPUT_DEFAULT);
-
- td.tag = RPMSIGTAG_LONGSIZE;
- td.data = &s;
- headerPut(sig, &td, HEADERPUT_DEFAULT);
- }
-
- spaceSize = rpmExpandNumeric("%{__gpg_reserved_space}");
- if(spaceSize > 0) {
- reservedSpace = xcalloc(spaceSize, sizeof(char));
- rpmtdReset(&td);
- td.tag = RPMSIGTAG_RESERVEDSPACE;
- td.count = spaceSize;
- td.type = RPM_BIN_TYPE;
- td.data = reservedSpace;
- headerPut(sig, &td, HEADERPUT_DEFAULT);
- free(reservedSpace);
- }
-
- /* Reallocate the signature into one contiguous region. */
- sig = headerReload(sig, RPMTAG_HEADERSIGNATURES);
- if (sig == NULL) { /* XXX can't happen */
- rpmlog(RPMLOG_ERR, _("Unable to reload signature header.\n"));
- rc = RPMRC_FAIL;
- goto exit;
- }
-
- /* Write the signature section into the package. */
- if (rpmWriteSignature(fd, sig)) {
- rc = RPMRC_FAIL;
- goto exit;
- }
-
-exit:
- rpmFreeSignature(sig);
- return rc;
-}
-
-
static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
const char *fileName, char **cookie)
{
@@ -436,9 +378,13 @@ static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
}
/* check if the package has a dependency with a '~' */
- if (haveTildeDep(pkg->header))
+ if (haveTildeDep(pkg))
(void) rpmlibNeedsFeature(pkg, "TildeInVersions", "4.10.0-1");
+ /* check if the package has a rich dependency */
+ if (haveRichDep(pkg))
+ (void) rpmlibNeedsFeature(pkg, "RichDependencies", "4.12.0-1");
+
/* All dependencies added finally, write them into the header */
for (int i = 0; i < PACKAGE_NUM_DEPS; i++) {
/* Nuke any previously added dependencies from the header */
@@ -456,6 +402,12 @@ static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
headerPutString(pkg->header, RPMTAG_COOKIE, *cookie);
}
+ /* Check for UTF-8 encoding of string tags, add encoding tag if all good */
+ if (checkForEncoding(pkg->header, 1)) {
+ rc = RPMRC_FAIL;
+ goto exit;
+ }
+
/* Reallocate the header into one contiguous region. */
pkg->header = headerReload(pkg->header, RPMTAG_HEADERIMMUTABLE);
if (pkg->header == NULL) {
@@ -493,7 +445,7 @@ static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
sigStart = Ftell(fd);
/* Generate and write a placeholder signature header */
- rc = generateSignature(zerosS, zeros, 0, estimatedCpioSize, fd);
+ rc = rpmGenerateSignature(zerosS, zeros, 0, estimatedCpioSize, fd);
if (rc != RPMRC_OK) {
rc = RPMRC_FAIL;
goto exit;
@@ -549,7 +501,7 @@ static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
}
/* Generate the signature. Now with right values */
- rc = generateSignature(SHA1, MD5, sigTargetSize, pkg->cpioArchiveSize, fd);
+ rc = rpmGenerateSignature(SHA1, MD5, sigTargetSize, pkg->cpioArchiveSize, fd);
if (rc != RPMRC_OK) {
rc = RPMRC_FAIL;
goto exit;
diff --git a/build/parsePreamble.c b/build/parsePreamble.c
index 4c2c6e4b..933f7340 100644
--- a/build/parsePreamble.c
+++ b/build/parsePreamble.c
@@ -308,7 +308,7 @@ static int addSource(rpmSpec spec, Package pkg, const char *field, rpmTagVal tag
addMacro(spec->macros, buf, NULL, p->fullSource, RMIL_SPEC);
free(buf);
#ifdef WITH_LUA
- if (!spec->recursing) {
+ {
rpmlua lua = NULL; /* global state */
const char * what = (flag & RPMBUILD_ISPATCH) ? "patches" : "sources";
rpmluaPushTable(lua, what);
@@ -428,6 +428,11 @@ static rpmRC checkForValidArchitectures(rpmSpec spec)
char *arch = rpmExpand("%{_target_cpu}", NULL);
char *os = rpmExpand("%{_target_os}", NULL);
rpmRC rc = RPMRC_FAIL; /* assume failure */
+
+ if (!strcmp(arch, "noarch")) {
+ free(arch);
+ arch = rpmExpand("%{_build_cpu}", NULL);
+ }
if (isMemberInEntry(spec->buildRestrictions,
arch, RPMTAG_EXCLUDEARCH) == 1) {
@@ -600,34 +605,37 @@ if (multiToken) { \
/**
* Check for inappropriate characters. All alphanums are considered sane.
- * @param spec spec
+ * @param spec spec (or NULL)
* @param field string to check
- * @param fsize size of string to check
* @param whitelist string of permitted characters
* @return RPMRC_OK if OK
*/
-rpmRC rpmCharCheck(rpmSpec spec, const char *field, size_t fsize, const char *whitelist)
+rpmRC rpmCharCheck(rpmSpec spec, const char *field, const char *whitelist)
{
- const char *ch, *stop = &field[fsize];
+ const char *ch;
+ char *err = NULL;
+ rpmRC rc = RPMRC_OK;
- for (ch=field; *ch && ch < stop; ch++) {
+ for (ch=field; *ch; ch++) {
if (risalnum(*ch) || strchr(whitelist, *ch)) continue;
- if (isprint(*ch)) {
- rpmlog(RPMLOG_ERR, _("line %d: Illegal char '%c' in: %s\n"),
- spec->lineNum, *ch, spec->line);
+ rasprintf(&err, _("Illegal char '%c' (0x%x)"),
+ isprint(*ch) ? *ch : '?', *ch);
+ }
+ if (err == NULL && strstr(field, "..") != NULL) {
+ rasprintf(&err, _("Illegal sequence \"..\""));
+ }
+
+ if (err) {
+ if (spec) {
+ rpmlog(RPMLOG_ERR, _("line %d: %s in: %s\n"),
+ spec->lineNum, err, spec->line);
} else {
- rpmlog(RPMLOG_ERR, _("line %d: Illegal char in: %s\n"),
- spec->lineNum, spec->line);
+ rpmlog(RPMLOG_ERR, _("%s in: %s\n"), err, field);
}
- return RPMRC_FAIL;
+ free(err);
+ rc = RPMRC_FAIL;
}
- if (strstr(field, "..") != NULL) {
- rpmlog(RPMLOG_ERR, _("line %d: Illegal sequence \"..\" in: %s\n"),
- spec->lineNum, spec->line);
- return RPMRC_FAIL;
- }
-
- return RPMRC_OK;
+ return rc;
}
static int haveLangTag(Header h, rpmTagVal tag, const char *lang)
@@ -731,7 +739,7 @@ static rpmRC handlePreambleTag(rpmSpec spec, Package pkg, rpmTagVal tag,
switch (tag) {
case RPMTAG_NAME:
SINGLE_TOKEN_ONLY;
- if (rpmCharCheck(spec, field, strlen(field), WHITELIST_NAME))
+ if (rpmCharCheck(spec, field, WHITELIST_NAME))
goto exit;
headerPutString(pkg->header, tag, field);
/* Main pkg name is unknown at the start, populate as soon as we can */
@@ -741,7 +749,7 @@ static rpmRC handlePreambleTag(rpmSpec spec, Package pkg, rpmTagVal tag,
case RPMTAG_VERSION:
case RPMTAG_RELEASE:
SINGLE_TOKEN_ONLY;
- if (rpmCharCheck(spec, field, strlen(field), "._+%{}~"))
+ if (rpmCharCheck(spec, field, "._+%{}~"))
goto exit;
headerPutString(pkg->header, tag, field);
break;
@@ -893,6 +901,9 @@ static rpmRC handlePreambleTag(rpmSpec spec, Package pkg, rpmTagVal tag,
spec->BANames = _free(spec->BANames);
break;
}
+ case RPMTAG_REMOVEPATHPOSTFIXES:
+ argvSplit(&pkg->removePostfixes, field, ":");
+ break;
default:
rpmlog(RPMLOG_ERR, _("Internal error: Bogus tag %d\n"), tag);
goto exit;
@@ -933,7 +944,7 @@ static struct PreambleRec_s const preambleList[] = {
{RPMTAG_GROUP, 1, 0, LEN_AND_STR("group")},
{RPMTAG_PACKAGER, 0, 0, LEN_AND_STR("packager")},
{RPMTAG_URL, 0, 0, LEN_AND_STR("url")},
- {RPMTAG_VCS, 0, 0, LEN_AND_STR("vcs")},
+ {RPMTAG_VCS, 0, 0, LEN_AND_STR("vcs")},
{RPMTAG_SOURCE, 0, 0, LEN_AND_STR("source")},
{RPMTAG_PATCH, 0, 0, LEN_AND_STR("patch")},
{RPMTAG_NOSOURCE, 0, 0, LEN_AND_STR("nosource")},
@@ -967,6 +978,7 @@ static struct PreambleRec_s const preambleList[] = {
{RPMTAG_DISTTAG, 0, 0, LEN_AND_STR("disttag")},
{RPMTAG_BUGURL, 0, 0, LEN_AND_STR("bugurl")},
{RPMTAG_ORDERFLAGS, 2, 0, LEN_AND_STR("orderwithrequires")},
+ {RPMTAG_REMOVEPATHPOSTFIXES,0, 0, LEN_AND_STR("removepathpostfixes")},
{0, 0, 0, 0}
};
@@ -1048,7 +1060,7 @@ int parsePreamble(rpmSpec spec, int initialPackage)
goto exit;
}
- if (rpmCharCheck(spec, name, strlen(name), WHITELIST_NAME))
+ if (rpmCharCheck(spec, name, WHITELIST_NAME))
goto exit;
if (!lookupPackage(spec, name, flag, NULL)) {
diff --git a/build/parsePrep.c b/build/parsePrep.c
index fd4d30cd..b94aad24 100644
--- a/build/parsePrep.c
+++ b/build/parsePrep.c
@@ -29,10 +29,6 @@ static rpmRC checkOwners(const char * urlfn)
urlfn, strerror(errno));
return RPMRC_FAIL;
}
- if (!rpmugUname(sb.st_uid) || !rpmugGname(sb.st_gid)) {
- rpmlog(RPMLOG_ERR, _("Bad owner/group: %s\n"), urlfn);
- return RPMRC_FAIL;
- }
return RPMRC_OK;
}
@@ -62,6 +58,7 @@ static char *doPatch(rpmSpec spec, uint32_t c, int strip, const char *db,
char *arg_patch_flags = rpmExpand("%{?_default_patch_flags}", NULL);
struct Source *sp;
char *patchcmd;
+ rpmCompressedMagic compressed = COMPRESSED_NOT;
for (sp = spec->sources; sp != NULL; sp = sp->next) {
if ((sp->flags & RPMBUILD_ISPATCH) && (sp->num == c)) {
@@ -80,7 +77,7 @@ static char *doPatch(rpmSpec spec, uint32_t c, int strip, const char *db,
fn = rpmGetPath("%{_sourcedir}/", sp->source, NULL);
/* On non-build parse's, file cannot be stat'd or read. */
- if ((spec->flags & RPMSPEC_FORCE) || checkOwners(fn)) goto exit;
+ if ((spec->flags & RPMSPEC_FORCE) || rpmFileIsCompressed(fn, &compressed) || checkOwners(fn)) goto exit;
if (db) {
rasprintf(&arg_backup,
@@ -102,7 +99,13 @@ static char *doPatch(rpmSpec spec, uint32_t c, int strip, const char *db,
reverse ? " -R" : "",
removeEmpties ? " -E" : "");
- patchcmd = rpmExpand("%{uncompress: ", fn, "} | %{__patch} ", args, NULL);
+ /* Avoid the extra cost of fork and pipe for uncompressed patches */
+ if (compressed != COMPRESSED_NOT) {
+ patchcmd = rpmExpand("{ %{uncompress: ", fn, "} || echo patch_fail ; } | "
+ "%{__patch} ", args, NULL);
+ } else {
+ patchcmd = rpmExpand("%{__patch} ", args, " < ", fn, NULL);
+ }
free(arg_fuzz);
free(arg_dir);
@@ -138,7 +141,7 @@ static char *doUntar(rpmSpec spec, uint32_t c, int quietly)
char *fn = NULL;
char *buf = NULL;
char *tar = NULL;
- const char *taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf");
+ const char *taropts = ((rpmIsVerbose() && !quietly) ? "-xvvof" : "-xof");
struct Source *sp;
rpmCompressedMagic compressed = COMPRESSED_NOT;
@@ -245,6 +248,7 @@ static int doSetupMacro(rpmSpec spec, const char *line)
uint32_t num;
int leaveDirs = 0, skipDefaultAction = 0;
int createDir = 0, quietly = 0;
+ int buildInPlace = 0;
const char * dirName = NULL;
struct poptOption optionsTable[] = {
{ NULL, 'a', POPT_ARG_STRING, NULL, 'a', NULL, NULL},
@@ -298,7 +302,16 @@ static int doSetupMacro(rpmSpec spec, const char *line)
headerGetString(spec->packages->header, RPMTAG_NAME),
headerGetString(spec->packages->header, RPMTAG_VERSION));
}
+ /* Mer addition - support --build-in-place */
+ if (rpmExpandNumeric("%{_build_in_place}")) {
+ buildInPlace = 1;
+ spec->buildSubdir = NULL;
+ }
addMacro(spec->macros, "buildsubdir", NULL, spec->buildSubdir, RMIL_SPEC);
+ if (buildInPlace) {
+ rc = RPMRC_OK;
+ goto exit;
+ }
/* cd to the build dir */
{ char * buildDir = rpmGenPath(spec->rootDir, "%{_builddir}", "");
@@ -372,8 +385,8 @@ exit:
/**
* Parse %patch line.
* This supports too many crazy syntaxes:
- * - %patchN is equal to %patch -P<N>
- * - -P<N> -P<N+1>... can be used to apply several patch on a single line
+ * - %patchN is equal to %patch -P\<N\>
+ * - -P\<N\> -P\<N+1\>... can be used to apply several patch on a single line
* - Any trailing arguments are treated as patch numbers
* - Any combination of the above, except unless at least one -P is specified,
* %patch is treated as %patch -P0 so that "%patch 1" is actually
diff --git a/build/parseReqs.c b/build/parseReqs.c
index 3cf1ce07..a443505e 100644
--- a/build/parseReqs.c
+++ b/build/parseReqs.c
@@ -12,36 +12,112 @@
#include "build/rpmbuild_misc.h"
#include "debug.h"
-/**
- */
-static struct ReqComp {
-const char * token;
- rpmsenseFlags sense;
-} const ReqComparisons[] = {
- { "<=", RPMSENSE_LESS | RPMSENSE_EQUAL},
- { "=<", RPMSENSE_LESS | RPMSENSE_EQUAL},
- { "<", RPMSENSE_LESS},
-
- { "==", RPMSENSE_EQUAL},
- { "=", RPMSENSE_EQUAL},
-
- { ">=", RPMSENSE_GREATER | RPMSENSE_EQUAL},
- { "=>", RPMSENSE_GREATER | RPMSENSE_EQUAL},
- { ">", RPMSENSE_GREATER},
-
- { NULL, 0 },
-};
#define SKIPWHITE(_x) {while(*(_x) && (risspace(*_x) || *(_x) == ',')) (_x)++;}
#define SKIPNONWHITE(_x){while(*(_x) &&!(risspace(*_x) || *(_x) == ',')) (_x)++;}
-static int checkSep(const char *s, char c, char **emsg)
+static rpmRC checkSep(const char *s, char c, char **emsg)
{
const char *sep = strchr(s, c);
if (sep && strchr(sep + 1, c)) {
rasprintf(emsg, "Invalid version (double separator '%c'): %s", c, s);
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static rpmRC checkEpoch(const char *s, char **emsg)
+{
+ const char *si, *sep = strchr(s, ':');
+
+ if (!sep)
+ return RPMRC_OK;
+
+ for (si = s; si != sep; si++) {
+ if (!risdigit(*si)) {
+ rasprintf(emsg, "Invalid version (epoch must be unsigned integer): %s", s);
+ return RPMRC_FAIL;
+ }
}
- return 0;
+ return RPMRC_OK;
+}
+
+static rpmRC checkDep(rpmSpec spec, char *N, char *EVR, char **emsg)
+{
+ /*
+ * Tokens must begin with alphanumeric, _, or /, but we don't know
+ * the spec's encoding so we only check what we can: plain ascii.
+ */
+ if (isascii(N[0]) && !(risalnum(N[0]) || N[0] == '_' || N[0] == '/')) {
+ rasprintf(emsg, _("Dependency tokens must begin with alpha-numeric, '_' or '/'"));
+ return RPMRC_FAIL;
+ }
+ if (EVR) {
+ if (N[0] == '/') {
+ rasprintf(emsg, _("Versioned file name not permitted"));
+ return RPMRC_FAIL;
+ }
+ if (rpmCharCheck(spec, EVR, ".-_+:%{}~"))
+ return RPMRC_FAIL;
+ if (checkSep(EVR, '-', emsg) != RPMRC_OK ||
+ checkSep(EVR, ':', emsg) != RPMRC_OK ||
+ checkEpoch(EVR, emsg) != RPMRC_OK) {
+
+ if (rpmExpandNumeric("%{?_wrong_version_format_terminate_build}"))
+ return RPMRC_FAIL;
+ }
+ }
+ return RPMRC_OK;
+}
+
+struct parseRCPOTRichData {
+ rpmSpec spec;
+ StringBuf sb;
+};
+
+/* Callback for the rich dependency parser. We use this to do check for invalid
+ * characters and to build a normailzed version of the dependency */
+static rpmRC parseRCPOTRichCB(void *cbdata, rpmrichParseType type,
+ const char *n, int nl, const char *e, int el, rpmsenseFlags sense,
+ rpmrichOp op, char **emsg) {
+ struct parseRCPOTRichData *data = cbdata;
+ StringBuf sb = data->sb;
+ rpmRC rc = RPMRC_OK;
+
+ if (type == RPMRICH_PARSE_ENTER) {
+ appendStringBuf(sb, "(");
+ } else if (type == RPMRICH_PARSE_LEAVE) {
+ appendStringBuf(sb, ")");
+ } else if (type == RPMRICH_PARSE_SIMPLE) {
+ char *N = xmalloc(nl + 1);
+ char *EVR = NULL;
+ rstrlcpy(N, n, nl + 1);
+ appendStringBuf(sb, N);
+ if (el) {
+ char rel[6], *rp = rel;
+ EVR = xmalloc(el + 1);
+ rstrlcpy(EVR, e, el + 1);
+ *rp++ = ' ';
+ if (sense & RPMSENSE_LESS)
+ *rp++ = '<';
+ if (sense & RPMSENSE_GREATER)
+ *rp++ = '>';
+ if (sense & RPMSENSE_EQUAL)
+ *rp++ = '=';
+ *rp++ = ' ';
+ *rp = 0;
+ appendStringBuf(sb, rel);
+ appendStringBuf(sb, EVR);
+ }
+ rc = checkDep(data->spec, N, EVR, emsg);
+ _free(N);
+ _free(EVR);
+ } else if (type == RPMRICH_PARSE_OP) {
+ appendStringBuf(sb, " ");
+ appendStringBuf(sb, rpmrichOpStr(op));
+ appendStringBuf(sb, " ");
+ }
+ return rc;
}
rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTagVal tagN,
@@ -113,6 +189,30 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTagVal tagN,
case RPMTAG_BUILDCONFLICTS:
nametag = RPMTAG_CONFLICTNAME;
break;
+ case RPMTAG_FILETRIGGERIN:
+ nametag = RPMTAG_FILETRIGGERNAME;
+ tagflags |= RPMSENSE_TRIGGERIN;
+ break;
+ case RPMTAG_FILETRIGGERUN:
+ nametag = RPMTAG_FILETRIGGERNAME;
+ tagflags |= RPMSENSE_TRIGGERUN;
+ break;
+ case RPMTAG_FILETRIGGERPOSTUN:
+ nametag = RPMTAG_FILETRIGGERNAME;
+ tagflags |= RPMSENSE_TRIGGERPOSTUN;
+ break;
+ case RPMTAG_TRANSFILETRIGGERIN:
+ nametag = RPMTAG_TRANSFILETRIGGERNAME;
+ tagflags |= RPMSENSE_TRIGGERIN;
+ break;
+ case RPMTAG_TRANSFILETRIGGERUN:
+ nametag = RPMTAG_TRANSFILETRIGGERNAME;
+ tagflags |= RPMSENSE_TRIGGERUN;
+ break;
+ case RPMTAG_TRANSFILETRIGGERPOSTUN:
+ nametag = RPMTAG_TRANSFILETRIGGERNAME;
+ tagflags |= RPMSENSE_TRIGGERPOSTUN;
+ break;
}
for (r = field; *r != '\0'; r = re) {
@@ -122,13 +222,28 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTagVal tagN,
Flags = (tagflags & ~RPMSENSE_SENSEMASK);
- /*
- * Tokens must begin with alphanumeric, _, or /, but we don't know
- * the spec's encoding so we only check what we can: plain ascii.
- */
- if (isascii(r[0]) && !(risalnum(r[0]) || r[0] == '_' || r[0] == '/')) {
- rasprintf(&emsg, _("Dependency tokens must begin with alpha-numeric, '_' or '/'"));
- goto exit;
+ if (r[0] == '(') {
+ struct parseRCPOTRichData data;
+ if (nametag != RPMTAG_REQUIRENAME && nametag != RPMTAG_CONFLICTNAME &&
+ nametag != RPMTAG_RECOMMENDNAME && nametag != RPMTAG_SUPPLEMENTNAME &&
+ nametag != RPMTAG_SUGGESTNAME && nametag != RPMTAG_ENHANCENAME) {
+ rasprintf(&emsg, _("No rich dependencies allowed for this type"));
+ goto exit;
+ }
+ data.spec = spec;
+ data.sb = newStringBuf();
+ if (rpmrichParse(&r, &emsg, parseRCPOTRichCB, &data) != RPMRC_OK) {
+ freeStringBuf(data.sb);
+ goto exit;
+ }
+ if (addReqProv(pkg, nametag, getStringBuf(data.sb), NULL, Flags, index)) {
+ rasprintf(&emsg, _("invalid dependency"));
+ freeStringBuf(data.sb);
+ goto exit;
+ }
+ freeStringBuf(data.sb);
+ re = r;
+ continue;
}
re = r;
@@ -137,6 +252,7 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTagVal tagN,
rstrlcpy(N, r, (re-r) + 1);
/* Parse EVR */
+ EVR = NULL;
v = re;
SKIPWHITE(v);
ve = v;
@@ -146,43 +262,54 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTagVal tagN,
/* Check for possible logical operator */
if (ve > v) {
- const struct ReqComp *rc;
- for (rc = ReqComparisons; rc->token != NULL; rc++) {
- if ((ve-v) != strlen(rc->token) || !rstreqn(v, rc->token, (ve-v)))
- continue;
+ rpmsenseFlags sense = rpmParseDSFlags(v, ve - v);
+ if (sense) {
+ Flags |= sense;
- if (r[0] == '/') {
- rasprintf(&emsg, _("Versioned file name not permitted"));
- goto exit;
+ /* now parse EVR */
+ v = ve;
+ SKIPWHITE(v);
+ ve = v;
+ SKIPNONWHITE(ve);
+ if (*v == '\0' || ve == v) {
+ rasprintf(&emsg, _("Version required"));
+ goto exit;
+ }
+ EVR = xmalloc((ve-v) + 1);
+ rstrlcpy(EVR, v, (ve-v) + 1);
+ re = ve; /* ==> next token after EVR string starts here */
}
+ }
- Flags |= rc->sense;
+ /* check that dependency is well-formed */
+ if (checkDep(spec, N, EVR, &emsg))
+ goto exit;
- /* now parse EVR */
- v = ve;
- SKIPWHITE(v);
- ve = v;
- SKIPNONWHITE(ve);
- break;
- }
+ if (nametag == RPMTAG_FILETRIGGERNAME ||
+ nametag == RPMTAG_TRANSFILETRIGGERNAME) {
+ if (N[0] != '/') {
+ rasprintf(&emsg, _("Only absolute paths are allowed in "
+ "file triggers"));
+ }
}
- if (Flags & RPMSENSE_SENSEMASK) {
- if (*v == '\0' || ve == v) {
- rasprintf(&emsg, _("Version required"));
- goto exit;
- }
- EVR = xmalloc((ve-v) + 1);
- rstrlcpy(EVR, v, (ve-v) + 1);
- if (rpmCharCheck(spec, EVR, ve-v, ".-_+:%{}~")) goto exit;
- /* While ':' and '-' are valid, only one of each is valid. */
- if (checkSep(EVR, '-', &emsg) || checkSep(EVR, ':', &emsg))
+ /* Deny more "normal" triggers fired by the same pakage. File triggers are ok */
+ if (nametag == RPMTAG_TRIGGERNAME) {
+ rpmds *pdsp = packageDependencies(pkg, nametag);
+ rpmds newds = rpmdsSingle(nametag, N, EVR, Flags);
+ rpmdsInit(*pdsp);
+ while (rpmdsNext(*pdsp) >= 0) {
+ if (rpmdsCompare(*pdsp, newds) && (rpmdsFlags(*pdsp) & tagflags )) {
+ rasprintf(&emsg, _("Trigger fired by the same package "
+ "is already defined in spec file"));
+ break;
+ }
+ }
+ rpmdsFree(newds);
+ if (emsg)
goto exit;
-
- re = ve; /* ==> next token after EVR string starts here */
- } else
- EVR = NULL;
+ }
if (addReqProv(pkg, nametag, N, EVR, Flags, index)) {
rasprintf(&emsg, _("invalid dependency"));
@@ -207,8 +334,8 @@ exit:
}
free(emsg);
}
- free(N);
- free(EVR);
+ _free(N);
+ _free(EVR);
return rc;
}
diff --git a/build/parseScript.c b/build/parseScript.c
index 3937d7d5..64fd8969 100644
--- a/build/parseScript.c
+++ b/build/parseScript.c
@@ -19,12 +19,24 @@
/**
*/
static int addTriggerIndex(Package pkg, const char *file,
- const char *script, const char *prog, rpmscriptFlags flags)
+ const char *script, const char *prog, rpmscriptFlags flags,
+ rpmTagVal tag, uint32_t priority)
{
struct TriggerFileEntry *tfe;
- struct TriggerFileEntry *list = pkg->triggerFiles;
+ struct TriggerFileEntry *list;
struct TriggerFileEntry *last = NULL;
int index = 0;
+ struct TriggerFileEntry **tfp;
+
+ if (tag == RPMTAG_FILETRIGGERSCRIPTS) {
+ tfp = &pkg->fileTriggerFiles;
+ } else if (tag == RPMTAG_TRANSFILETRIGGERSCRIPTS) {
+ tfp = &pkg->transFileTriggerFiles;
+ } else {
+ tfp = &pkg->triggerFiles;
+ }
+
+ list = *tfp;
while (list) {
last = list;
@@ -41,12 +53,13 @@ static int addTriggerIndex(Package pkg, const char *file,
tfe->prog = xstrdup(prog);
tfe->flags = flags;
tfe->index = index;
+ tfe->priority = priority;
tfe->next = NULL;
if (last)
last->next = tfe;
else
- pkg->triggerFiles = tfe;
+ *tfp = tfe;
return index;
}
@@ -90,6 +103,7 @@ int parseScript(rpmSpec spec, int parsePart)
const char *name = NULL;
const char *prog = "/bin/sh";
const char *file = NULL;
+ int priority = 1000000;
struct poptOption optionsTable[] = {
{ NULL, 'p', POPT_ARG_STRING, &prog, 'p', NULL, NULL},
{ NULL, 'n', POPT_ARG_STRING, &name, 'n', NULL, NULL},
@@ -98,6 +112,7 @@ int parseScript(rpmSpec spec, int parsePart)
NULL, NULL},
{ NULL, 'q', POPT_BIT_SET, &scriptFlags, RPMSCRIPT_FLAG_QFORMAT,
NULL, NULL},
+ { NULL, 'P', POPT_ARG_INT, &priority, 'P', NULL, NULL},
{ 0, 0, 0, 0, 0, NULL, NULL}
};
@@ -183,9 +198,58 @@ int parseScript(rpmSpec spec, int parsePart)
flagtag = RPMTAG_TRIGGERSCRIPTFLAGS;
partname = "%triggerpostun";
break;
+ case PART_FILETRIGGERIN:
+ tag = RPMTAG_FILETRIGGERSCRIPTS;
+ tagflags = 0;
+ reqtag = RPMTAG_FILETRIGGERIN;
+ progtag = RPMTAG_FILETRIGGERSCRIPTPROG;
+ flagtag = RPMTAG_FILETRIGGERSCRIPTFLAGS;
+ partname = "%filetriggerin";
+ break;
+ case PART_FILETRIGGERUN:
+ tag = RPMTAG_FILETRIGGERSCRIPTS;
+ tagflags = 0;
+ reqtag = RPMTAG_FILETRIGGERUN;
+ progtag = RPMTAG_FILETRIGGERSCRIPTPROG;
+ flagtag = RPMTAG_FILETRIGGERSCRIPTFLAGS;
+ partname = "%filetriggerun";
+ break;
+ case PART_FILETRIGGERPOSTUN:
+ tag = RPMTAG_FILETRIGGERSCRIPTS;
+ tagflags = 0;
+ reqtag = RPMTAG_FILETRIGGERPOSTUN;
+ progtag = RPMTAG_FILETRIGGERSCRIPTPROG;
+ flagtag = RPMTAG_FILETRIGGERSCRIPTFLAGS;
+ partname = "%filetriggerpostun";
+ break;
+ case PART_TRANSFILETRIGGERIN:
+ tag = RPMTAG_TRANSFILETRIGGERSCRIPTS;
+ tagflags = 0;
+ reqtag = RPMTAG_TRANSFILETRIGGERIN;
+ progtag = RPMTAG_TRANSFILETRIGGERSCRIPTPROG;
+ flagtag = RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS;
+ partname = "%transfiletriggerin";
+ break;
+ case PART_TRANSFILETRIGGERUN:
+ tag = RPMTAG_TRANSFILETRIGGERSCRIPTS;
+ tagflags = 0;
+ reqtag = RPMTAG_TRANSFILETRIGGERUN;
+ progtag = RPMTAG_TRANSFILETRIGGERSCRIPTPROG;
+ flagtag = RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS;
+ partname = "%transfiletriggerun";
+ break;
+ case PART_TRANSFILETRIGGERPOSTUN:
+ tag = RPMTAG_TRANSFILETRIGGERSCRIPTS;
+ tagflags = 0;
+ reqtag = RPMTAG_TRANSFILETRIGGERPOSTUN;
+ progtag = RPMTAG_TRANSFILETRIGGERSCRIPTPROG;
+ flagtag = RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS;
+ partname = "%transfiletriggerpostun";
+ break;
}
- if (tag == RPMTAG_TRIGGERSCRIPTS) {
+ if (tag == RPMTAG_TRIGGERSCRIPTS || tag == RPMTAG_FILETRIGGERSCRIPTS ||
+ tag == RPMTAG_TRANSFILETRIGGERSCRIPTS) {
/* break line into two */
char *s = strstr(spec->line, "--");
if (!s) {
@@ -225,9 +289,19 @@ int parseScript(rpmSpec spec, int parsePart)
case 'n':
flag = PART_NAME;
break;
+ case 'P':
+ if (tag != RPMTAG_TRIGGERSCRIPTS &&
+ tag != RPMTAG_FILETRIGGERSCRIPTS &&
+ tag != RPMTAG_TRANSFILETRIGGERSCRIPTS) {
+
+ rpmlog(RPMLOG_ERR,
+ _("line %d: Priorities are allowed only for file "
+ "triggers : %s\n"), spec->lineNum, prog);
+ goto exit;
+ }
}
}
-
+
if (arg < -1) {
rpmlog(RPMLOG_ERR, _("line %d: Bad option %s: %s\n"),
spec->lineNum,
@@ -311,7 +385,8 @@ int parseScript(rpmSpec spec, int parsePart)
/* Trigger script insertion is always delayed in order to */
/* get the index right. */
- if (tag == RPMTAG_TRIGGERSCRIPTS) {
+ if (tag == RPMTAG_TRIGGERSCRIPTS || tag == RPMTAG_FILETRIGGERSCRIPTS ||
+ tag == RPMTAG_TRANSFILETRIGGERSCRIPTS) {
if (progArgc > 1) {
rpmlog(RPMLOG_ERR,
_("line %d: interpreter arguments not allowed in triggers: %s\n"),
@@ -319,7 +394,8 @@ int parseScript(rpmSpec spec, int parsePart)
goto exit;
}
/* Add file/index/prog triple to the trigger file list */
- index = addTriggerIndex(pkg, file, p, progArgv[0], scriptFlags);
+ index = addTriggerIndex(pkg, file, p, progArgv[0], scriptFlags, tag,
+ priority);
/* Generate the trigger tags */
if (parseRCPOT(spec, pkg, reqargs, reqtag, index, tagflags))
diff --git a/build/parseSpec.c b/build/parseSpec.c
index ea761c98..9fff0e2c 100644
--- a/build/parseSpec.c
+++ b/build/parseSpec.c
@@ -6,6 +6,9 @@
#include "system.h"
#include <errno.h>
+#ifdef HAVE_ICONV
+#include <iconv.h>
+#endif
#include <rpm/rpmtypes.h>
#include <rpm/rpmlib.h> /* RPM_MACHTABLE & related */
@@ -60,6 +63,15 @@ static const struct PartRec {
{ PART_TRIGGERIN, LEN_AND_STR("%trigger")},
{ PART_VERIFYSCRIPT, LEN_AND_STR("%verifyscript")},
{ PART_POLICIES, LEN_AND_STR("%sepolicy")},
+ { PART_FILETRIGGERIN, LEN_AND_STR("%filetriggerin")},
+ { PART_FILETRIGGERIN, LEN_AND_STR("%filetrigger")},
+ { PART_FILETRIGGERUN, LEN_AND_STR("%filetriggerun")},
+ { PART_FILETRIGGERPOSTUN, LEN_AND_STR("%filetriggerpostun")},
+ { PART_TRANSFILETRIGGERIN, LEN_AND_STR("%transfiletriggerin")},
+ { PART_TRANSFILETRIGGERIN, LEN_AND_STR("%transfiletrigger")},
+ { PART_TRANSFILETRIGGERUN, LEN_AND_STR("%transfiletriggerun")},
+ { PART_TRANSFILETRIGGERUN, LEN_AND_STR("%transfiletriggerun")},
+ { PART_TRANSFILETRIGGERPOSTUN, LEN_AND_STR("%transfiletriggerpostun")},
{0, 0, 0}
};
@@ -154,8 +166,57 @@ static int restoreFirstChar(rpmSpec spec)
return 0;
}
+static int expandMacrosInSpecBuf(rpmSpec spec, int strip)
+{
+ char *lbuf = NULL;
+ int isComment = 0;
+
+ /* Don't expand macros (eg. %define) in false branch of %if clause */
+ if (!spec->readStack->reading)
+ return 0;
+
+ lbuf = spec->lbuf;
+ SKIPSPACE(lbuf);
+ if (lbuf[0] == '#')
+ isComment = 1;
+
+
+ if(rpmExpandMacros(spec->macros, spec->lbuf, &lbuf, 0) < 0) {
+ rpmlog(RPMLOG_ERR, _("line %d: %s\n"),
+ spec->lineNum, spec->lbuf);
+ return 1;
+ }
+
+ free(spec->lbuf);
+ spec->lbuf = lbuf;
+ spec->lbufSize = strlen(spec->lbuf) + 1;
+
+ if (strip & STRIP_COMMENTS && isComment) {
+ char *bufA = lbuf;
+ char *bufB = spec->lbuf;
+
+ while (*bufA != '\0' && *bufB != '\0') {
+ if (*bufA == '%' && *(bufA + 1) == '%')
+ bufA++;
+
+ if (*bufA != *bufB)
+ break;
+
+ bufA++;
+ bufB++;
+ }
+
+ if (*bufA != '\0' || *bufB != '\0')
+ rpmlog(RPMLOG_WARNING,
+ _("Macro expanded in comment on line %d: %s\n"),
+ spec->lineNum, lbuf);
+ }
+
+ return 0;
+}
+
/* Return zero on success, 1 if we need to read more and -1 on errors. */
-static int copyNextLineFromOFI(rpmSpec spec, OFI_t *ofi)
+static int copyNextLineFromOFI(rpmSpec spec, OFI_t *ofi, int strip)
{
/* Expand next line from file into line buffer */
if (!(spec->nextline && *spec->nextline)) {
@@ -206,13 +267,9 @@ static int copyNextLineFromOFI(rpmSpec spec, OFI_t *ofi)
}
spec->lbufOff = 0;
- /* Don't expand macros (eg. %define) in false branch of %if clause */
- if (spec->readStack->reading &&
- expandMacros(spec, spec->macros, spec->lbuf, spec->lbufSize)) {
- rpmlog(RPMLOG_ERR, _("line %d: %s\n"),
- spec->lineNum, spec->lbuf);
- return -1;
- }
+ if (expandMacrosInSpecBuf(spec, strip))
+ return -1;
+
spec->nextline = spec->lbuf;
}
return 0;
@@ -322,7 +379,7 @@ int readLine(rpmSpec spec, int strip)
ofi = spec->fileStack;
/* Copy next file line into the spec line buffer */
- rc = copyNextLineFromOFI(spec, ofi);
+ rc = copyNextLineFromOFI(spec, ofi, strip);
if (rc > 0) {
if (startLine == 0)
startLine = spec->lineNum;
@@ -562,6 +619,76 @@ static void addTargets(Package Pkgs)
free(optflags);
}
+rpmRC checkForEncoding(Header h, int addtag)
+{
+ rpmRC rc = RPMRC_OK;
+#if HAVE_ICONV
+ const char *encoding = "utf-8";
+ rpmTagVal tag;
+ iconv_t ic = (iconv_t) -1;
+ char *dest = NULL;
+ size_t destlen = 0;
+ int strict = rpmExpandNumeric("%{_invalid_encoding_terminates_build}");
+ HeaderIterator hi = headerInitIterator(h);
+
+ ic = iconv_open(encoding, encoding);
+ if (ic == (iconv_t) -1) {
+ rpmlog(RPMLOG_WARNING,
+ _("encoding %s not supported by system\n"), encoding);
+ goto exit;
+ }
+
+ while ((tag = headerNextTag(hi)) != RPMTAG_NOT_FOUND) {
+ struct rpmtd_s td;
+ const char *src = NULL;
+
+ if (rpmTagGetClass(tag) != RPM_STRING_CLASS)
+ continue;
+
+ headerGet(h, tag, &td, (HEADERGET_RAW|HEADERGET_MINMEM));
+ while ((src = rpmtdNextString(&td)) != NULL) {
+ size_t srclen = strlen(src);
+ size_t outlen, inlen = srclen;
+ char *out, *in = (char *) src;
+
+ if (destlen < srclen) {
+ destlen = srclen * 2;
+ dest = xrealloc(dest, destlen);
+ }
+ out = dest;
+ outlen = destlen;
+
+ /* reset conversion state */
+ iconv(ic, NULL, &inlen, &out, &outlen);
+
+ if (iconv(ic, &in, &inlen, &out, &outlen) == (size_t) -1) {
+ rpmlog(strict ? RPMLOG_ERR : RPMLOG_WARNING,
+ _("Package %s: invalid %s encoding in %s: %s - %s\n"),
+ headerGetString(h, RPMTAG_NAME),
+ encoding, rpmTagGetName(tag), src, strerror(errno));
+ rc = RPMRC_FAIL;
+ }
+
+ }
+ rpmtdFreeData(&td);
+ }
+
+ /* Stomp "known good utf" mark in header if requested */
+ if (rc == RPMRC_OK && addtag)
+ headerPutString(h, RPMTAG_ENCODING, encoding);
+ if (!strict)
+ rc = RPMRC_OK;
+
+exit:
+ if (ic != (iconv_t) -1)
+ iconv_close(ic);
+ headerFreeIterator(hi);
+ free(dest);
+#endif /* HAVE_ICONV */
+
+ return rc;
+}
+
static rpmSpec parseSpec(const char *specFile, rpmSpecFlags flags,
const char *buildRoot, int recursing)
{
@@ -627,6 +754,12 @@ static rpmSpec parseSpec(const char *specFile, rpmSpecFlags flags,
case PART_TRIGGERIN:
case PART_TRIGGERUN:
case PART_TRIGGERPOSTUN:
+ case PART_FILETRIGGERIN:
+ case PART_FILETRIGGERUN:
+ case PART_FILETRIGGERPOSTUN:
+ case PART_TRANSFILETRIGGERIN:
+ case PART_TRANSFILETRIGGERUN:
+ case PART_TRANSFILETRIGGERPOSTUN:
parsePart = parseScript(spec, parsePart);
break;
@@ -718,6 +851,18 @@ static rpmSpec parseSpec(const char *specFile, rpmSpecFlags flags,
/* Add arch, os and platform, self-provides etc for each package */
addTargets(spec->packages);
+ /* Check for encoding in each package unless disabled */
+ if (!(spec->flags & RPMSPEC_NOUTF8)) {
+ int badenc = 0;
+ for (Package pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
+ if (checkForEncoding(pkg->header, 0) != RPMRC_OK) {
+ badenc = 1;
+ }
+ }
+ if (badenc)
+ goto errxit;
+ }
+
closeSpec(spec);
exit:
/* Assemble source header from parsed components */
diff --git a/build/rpmbuild.h b/build/rpmbuild.h
index 51a735d3..4777f587 100644
--- a/build/rpmbuild.h
+++ b/build/rpmbuild.h
@@ -15,7 +15,8 @@ extern "C" {
#endif
/** \ingroup rpmbuild
- * Bit(s) to control rpmSpecBuild() operation.
+ * Bit(s) to control rpmSpecBuild() operation. Also used as argument to
+ * rpmSpecGetSection and rpmSpecPkgGetSection.
*/
enum rpmBuildFlags_e {
RPMBUILD_NONE = 0,
@@ -31,6 +32,9 @@ enum rpmBuildFlags_e {
RPMBUILD_RMBUILD = (1 << 9), /*!< Remove build sub-tree. */
RPMBUILD_STRINGBUF = (1 << 10), /*!< Internal use only */
RPMBUILD_RMSPEC = (1 << 11), /*!< Remove spec file. */
+ RPMBUILD_FILE_FILE = (1 << 16), /*!< rpmSpecPkgGetSection: %files -f */
+ RPMBUILD_FILE_LIST = (1 << 17), /*!< rpmSpecPkgGetSection: %files */
+ RPMBUILD_POLICY = (1 << 18), /*!< rpmSpecPkgGetSection: %policy */
RPMBUILD_NOBUILD = (1 << 31) /*!< Don't execute or package. */
};
diff --git a/build/rpmbuild_internal.h b/build/rpmbuild_internal.h
index 9d2a2809..7dd577f2 100644
--- a/build/rpmbuild_internal.h
+++ b/build/rpmbuild_internal.h
@@ -13,6 +13,7 @@ struct TriggerFileEntry {
char * prog;
uint32_t flags;
struct TriggerFileEntry * next;
+ uint32_t priority;
};
typedef struct ReadLevelEntry {
@@ -83,7 +84,7 @@ struct rpmSpec_s {
Package packages; /*!< Package list. */
};
-#define PACKAGE_NUM_DEPS 10
+#define PACKAGE_NUM_DEPS 12
/** \ingroup rpmbuild
* The structure used to store values for a package.
@@ -112,9 +113,12 @@ struct Package_s {
char * verifyFile; /*!< %verifyscript scriptlet. */
struct TriggerFileEntry * triggerFiles;
+ struct TriggerFileEntry * fileTriggerFiles;
+ struct TriggerFileEntry * transFileTriggerFiles;
ARGV_t fileFile;
ARGV_t fileList; /* If NULL, package will not be written */
+ ARGV_t removePostfixes;
ARGV_t policyList;
Package next;
@@ -153,7 +157,13 @@ typedef enum rpmParseState_e {
PART_TRIGGERPOSTUN = 30+PART_BASE, /*!< */
PART_TRIGGERPREIN = 31+PART_BASE, /*!< */
PART_POLICIES = 32+PART_BASE, /*!< */
- PART_LAST = 33+PART_BASE /*!< */
+ PART_FILETRIGGERIN = 33+PART_BASE, /*!< */
+ PART_FILETRIGGERUN = 34+PART_BASE, /*!< */
+ PART_FILETRIGGERPOSTUN = 35+PART_BASE, /*!< */
+ PART_TRANSFILETRIGGERIN = 36+PART_BASE, /*!< */
+ PART_TRANSFILETRIGGERUN = 37+PART_BASE, /*!< */
+ PART_TRANSFILETRIGGERPOSTUN = 38+PART_BASE, /*!< */
+ PART_LAST = 39+PART_BASE /*!< */
} rpmParseState;
@@ -267,12 +277,11 @@ int parseScript(rpmSpec spec, int parsePart);
* Check for inappropriate characters. All alphanums are considered sane.
* @param spec spec
* @param field string to check
- * @param fsize size of string to check
* @param whitelist string of permitted characters
* @return RPMRC_OK if OK
*/
RPM_GNUC_INTERNAL
-rpmRC rpmCharCheck(rpmSpec spec, const char *field, size_t fsize, const char *whitelist);
+rpmRC rpmCharCheck(rpmSpec spec, const char *field, const char *whitelist);
/** \ingroup rpmbuild
* Parse dependency relations from spec file and/or autogenerated output buffer.
@@ -442,6 +451,8 @@ int addReqProv(Package pkg, rpmTagVal tagN,
RPM_GNUC_INTERNAL
int rpmlibNeedsFeature(Package pkg, const char * feature, const char * featureEVR);
+RPM_GNUC_INTERNAL
+rpmRC checkForEncoding(Header h, int addtag);
#ifdef __cplusplus
}
#endif
diff --git a/build/rpmfc.c b/build/rpmfc.c
index 99a7e9fc..73915015 100644
--- a/build/rpmfc.c
+++ b/build/rpmfc.c
@@ -33,6 +33,17 @@ typedef struct rpmfcAttr_s {
struct matchRule excl;
} * rpmfcAttr;
+typedef struct {
+ int fileIx;
+ rpmds dep;
+} rpmfcFileDep;
+
+typedef struct {
+ rpmfcFileDep *data;
+ int size;
+ int alloced;
+} rpmfcFileDeps;
+
/**
*/
struct rpmfc_s {
@@ -40,7 +51,6 @@ struct rpmfc_s {
int nfiles; /*!< no. of files */
int fknown; /*!< no. of classified files */
int fwhite; /*!< no. of "white" files */
- int ix; /*!< current file index */
int skipProv; /*!< Don't auto-generate Provides:? */
int skipReq; /*!< Don't auto-generate Requires:? */
char *buildRoot; /*!< (Build) root dir */
@@ -56,7 +66,7 @@ struct rpmfc_s {
ARGI_t fddictn; /*!< (no. files) file depends dictionary no. entries */
ARGI_t ddictx; /*!< (no. dependencies) file->dependency mapping */
rpmstrPool cdict; /*!< file class dictionary */
- rpmstrPool ddict; /*!< file depends dictionary */
+ rpmfcFileDeps fileDeps; /*!< file dependency mapping */
rpmstrPool pool; /*!< general purpose string storage */
};
@@ -398,15 +408,15 @@ static void argvAddUniq(ARGV_t * argvp, const char * key)
#define hasAttr(_a, _n) (argvSearch((_a), (_n), NULL) != NULL)
-static void rpmfcAddFileDep(rpmstrPool ddict, int ix, rpmds ds, char deptype)
+static void rpmfcAddFileDep(rpmfcFileDeps *fileDeps, rpmds ds, int ix)
{
- if (ds) {
- char *key = NULL;
- rasprintf(&key, "%08d%c %s %s 0x%08x", ix, deptype,
- rpmdsN(ds), rpmdsEVR(ds), rpmdsFlags(ds));
- rpmstrPoolId(ddict, key, 1);
- free(key);
+ if (fileDeps->size == fileDeps->alloced) {
+ fileDeps->alloced <<= 2;
+ fileDeps->data = xrealloc(fileDeps->data,
+ fileDeps->alloced * sizeof(fileDeps->data[0]));
}
+ fileDeps->data[fileDeps->size].fileIx = ix;
+ fileDeps->data[fileDeps->size++].dep = ds;
}
static ARGV_t runCmd(const char *nsdep, const char *depname,
@@ -480,18 +490,19 @@ static const char *parseDep(char **depav, int depac,
/**
* Run per-interpreter dependency helper.
* @param fc file classifier
+ * @param ix file index
* @param nsdep class name for interpreter (e.g. "perl")
* @param depname "provides" or "requires"
- * @param depsp fc->provides or fc->requires
* @param dsContext RPMSENSE_FIND_PROVIDES or RPMSENSE_FIND_REQUIRES
* @param tagN RPMTAG_PROVIDENAME or RPMTAG_REQUIRENAME
* @return 0 on success
*/
-static int rpmfcHelper(rpmfc fc, const char *nsdep, const char *depname,
+static int rpmfcHelper(rpmfc fc, int ix,
+ const char *nsdep, const char *depname,
rpmsenseFlags dsContext, rpmTagVal tagN)
{
ARGV_t pav = NULL;
- const char * fn = fc->fn[fc->ix];
+ const char * fn = fc->fn[ix];
char *namespace = NULL;
int pac;
int rc = 0;
@@ -530,11 +541,9 @@ static int rpmfcHelper(rpmfc fc, const char *nsdep, const char *depname,
/* Add to package and file dependencies unless filtered */
if (regMatch(exclude, rpmdsDNEVR(ds)+2) == 0) {
- (void) rpmdsMerge(packageDependencies(fc->pkg, tagN), ds);
- rpmfcAddFileDep(fc->ddict, fc->ix, ds,
- tagN == RPMTAG_PROVIDENAME ? 'P' : 'R');
+ //rpmdsMerge(packageDependencies(fc->pkg, tagN), ds);
+ rpmfcAddFileDep(&fc->fileDeps, ds, ix);
}
- rpmdsFree(ds);
} else {
rpmlog(RPMLOG_ERR, _("invalid dependency (%s): %s\n"),
err, pav[i]);
@@ -625,7 +634,7 @@ static int matches(const struct matchRule *rule,
}
}
-static void rpmfcAttributes(rpmfc fc, const char *ftype, const char *fullpath)
+static void rpmfcAttributes(rpmfc fc, int ix, const char *ftype, const char *fullpath)
{
const char *path = fullpath + fc->brlen;
int is_executable = 0;
@@ -642,7 +651,7 @@ static void rpmfcAttributes(rpmfc fc, const char *ftype, const char *fullpath)
/* Add attributes on libmagic type & path pattern matches */
if (matches(&(*attr)->incl, ftype, path, is_executable))
- argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
+ argvAddTokens(&fc->fattrs[ix], (*attr)->name);
}
}
@@ -744,7 +753,11 @@ rpmfc rpmfcFree(rpmfc fc)
argiFree(fc->fddictn);
argiFree(fc->ddictx);
- rpmstrPoolFree(fc->ddict);
+ for (int i = 0; i < fc->fileDeps.size; i++) {
+ rpmdsFree(fc->fileDeps.data[i].dep);
+ }
+ free(fc->fileDeps.data);
+
rpmstrPoolFree(fc->cdict);
rpmstrPoolFree(fc->pool);
@@ -763,6 +776,9 @@ rpmfc rpmfcCreate(const char *buildRoot, rpmFlags flags)
}
fc->pool = rpmstrPoolCreate();
fc->pkg = xcalloc(1, sizeof(*fc->pkg));
+ fc->fileDeps.alloced = 10;
+ fc->fileDeps.data = xmalloc(fc->fileDeps.alloced *
+ sizeof(fc->fileDeps.data[0]));
return fc;
}
@@ -789,87 +805,165 @@ rpmds rpmfcRequires(rpmfc fc)
return rpmfcDependencies(fc, RPMTAG_REQUIRENAME);
}
-rpmRC rpmfcApply(rpmfc fc)
+rpmds rpmfcRecommends(rpmfc fc)
+{
+ return rpmfcDependencies(fc, RPMTAG_RECOMMENDNAME);
+}
+
+rpmds rpmfcSuggests(rpmfc fc)
+{
+ return rpmfcDependencies(fc, RPMTAG_SUGGESTNAME);
+}
+
+rpmds rpmfcSupplements(rpmfc fc)
+{
+ return rpmfcDependencies(fc, RPMTAG_SUPPLEMENTNAME);
+}
+
+rpmds rpmfcEnhances(rpmfc fc)
+{
+ return rpmfcDependencies(fc, RPMTAG_ENHANCENAME);
+}
+
+rpmds rpmfcConflicts(rpmfc fc)
+{
+ return rpmfcDependencies(fc, RPMTAG_CONFLICTNAME);
+}
+
+rpmds rpmfcObsoletes(rpmfc fc)
+{
+ return rpmfcDependencies(fc, RPMTAG_OBSOLETENAME);
+}
+
+
+/* Versioned deps are less than unversioned deps */
+static int cmpVerDeps(const void *a, const void *b)
+{
+ rpmfcFileDep *fDepA = (rpmfcFileDep *) a;
+ rpmfcFileDep *fDepB = (rpmfcFileDep *) b;
+
+ int aIsVersioned = rpmdsFlags(fDepA->dep) & RPMSENSE_SENSEMASK ? 1 : 0;
+ int bIsVersioned = rpmdsFlags(fDepB->dep) & RPMSENSE_SENSEMASK ? 1 : 0;
+
+ return bIsVersioned - aIsVersioned;
+}
+
+/* Sort by index */
+static int cmpIndexDeps(const void *a, const void *b)
+{
+ rpmfcFileDep *fDepA = (rpmfcFileDep *) a;
+ rpmfcFileDep *fDepB = (rpmfcFileDep *) b;
+
+ return fDepA->fileIx - fDepB->fileIx;
+}
+
+/*
+ * Remove unversioned deps if corresponding versioned deps exist but only
+ * if the versioned dependency has the same type and the same color as the versioned.
+ */
+static void rpmfcNormalizeFDeps(rpmfc fc)
+{
+ rpmstrPool versionedDeps = rpmstrPoolCreate();
+ rpmfcFileDep *normalizedFDeps = xmalloc(fc->fileDeps.size *
+ sizeof(normalizedFDeps[0]));
+ int ix = 0;
+ char *depStr;
+
+ /* Sort. Versioned dependencies first */
+ qsort(fc->fileDeps.data, fc->fileDeps.size, sizeof(fc->fileDeps.data[0]),
+ cmpVerDeps);
+
+ for (int i = 0; i < fc->fileDeps.size; i++) {
+ switch (rpmdsTagN(fc->fileDeps.data[i].dep)) {
+ case RPMTAG_REQUIRENAME:
+ case RPMTAG_RECOMMENDNAME:
+ case RPMTAG_SUGGESTNAME:
+ rasprintf(&depStr, "%08x_%c_%s",
+ fc->fcolor[fc->fileDeps.data[i].fileIx],
+ rpmdsD(fc->fileDeps.data[i].dep),
+ rpmdsN(fc->fileDeps.data[i].dep));
+
+ if (rpmdsFlags(fc->fileDeps.data[i].dep) & RPMSENSE_SENSEMASK) {
+ /* preserve versioned require dependency */
+ normalizedFDeps[ix++] = fc->fileDeps.data[i];
+ rpmstrPoolId(versionedDeps, depStr, 1);
+ } else if (!rpmstrPoolId(versionedDeps, depStr, 0)) {
+ /* preserve unversioned require dep only if versioned dep doesn't exist */
+ normalizedFDeps[ix++] =fc-> fileDeps.data[i];
+ } else {
+ rpmdsFree(fc->fileDeps.data[i].dep);
+ }
+ free(depStr);
+ break;
+ default:
+ /* Preserve all non-require dependencies */
+ normalizedFDeps[ix++] = fc->fileDeps.data[i];
+ break;
+ }
+ }
+ rpmstrPoolFree(versionedDeps);
+
+ free(fc->fileDeps.data);
+ fc->fileDeps.data = normalizedFDeps;
+ fc->fileDeps.size = ix;
+}
+
+static rpmRC rpmfcApplyInternal(rpmfc fc)
{
- const char * s;
- char * se;
rpmds ds, * dsp;
- rpmTagVal tagN;
- const char * N;
- const char * EVR;
- rpmsenseFlags Flags;
- unsigned char deptype;
- int nddict;
int previx;
unsigned int val;
int dix;
int ix;
/* Generate package and per-file dependencies. */
- for (fc->ix = 0; fc->ix < fc->nfiles && fc->fn[fc->ix] != NULL; fc->ix++) {
- for (ARGV_t fattr = fc->fattrs[fc->ix]; fattr && *fattr; fattr++) {
+ for (ix = 0; ix < fc->nfiles && fc->fn[ix] != NULL; ix++) {
+ for (ARGV_t fattr = fc->fattrs[ix]; fattr && *fattr; fattr++) {
if (!fc->skipProv) {
- rpmfcHelper(fc, *fattr, "provides",
+ rpmfcHelper(fc, ix, *fattr, "provides",
RPMSENSE_FIND_PROVIDES, RPMTAG_PROVIDENAME);
}
if (!fc->skipReq) {
- rpmfcHelper(fc, *fattr, "requires",
+ rpmfcHelper(fc, ix, *fattr, "requires",
RPMSENSE_FIND_REQUIRES, RPMTAG_REQUIRENAME);
- rpmfcHelper(fc, *fattr, "recommends",
+ rpmfcHelper(fc, ix, *fattr, "recommends",
RPMSENSE_FIND_REQUIRES, RPMTAG_RECOMMENDNAME);
- rpmfcHelper(fc, *fattr, "suggests",
+ rpmfcHelper(fc, ix, *fattr, "suggests",
RPMSENSE_FIND_REQUIRES, RPMTAG_SUGGESTNAME);
- rpmfcHelper(fc, *fattr, "supplements",
+ rpmfcHelper(fc, ix, *fattr, "supplements",
RPMSENSE_FIND_REQUIRES, RPMTAG_SUPPLEMENTNAME);
- rpmfcHelper(fc, *fattr, "enhances",
+ rpmfcHelper(fc, ix, *fattr, "enhances",
RPMSENSE_FIND_REQUIRES, RPMTAG_ENHANCENAME);
- rpmfcHelper(fc, *fattr, "conflicts",
+ rpmfcHelper(fc, ix, *fattr, "conflicts",
RPMSENSE_FIND_REQUIRES, RPMTAG_CONFLICTNAME);
- rpmfcHelper(fc, *fattr, "obsoletes",
+ rpmfcHelper(fc, ix, *fattr, "obsoletes",
RPMSENSE_FIND_REQUIRES, RPMTAG_OBSOLETENAME);
}
}
}
/* No more additions after this, freeze pool to minimize memory use */
- rpmstrPoolFreeze(fc->ddict, 0);
+
+ rpmfcNormalizeFDeps(fc);
+ for (int i = 0; i < fc->fileDeps.size; i++) {
+ ds = fc->fileDeps.data[i].dep;
+ rpmdsMerge(packageDependencies(fc->pkg, rpmdsTagN(ds)), ds);
+ }
+
+ /* Sort by index */
+ qsort(fc->fileDeps.data, fc->fileDeps.size,
+ sizeof(fc->fileDeps.data[0]), cmpIndexDeps);
/* Generate per-file indices into package dependencies. */
- nddict = rpmstrPoolNumStr(fc->ddict);
previx = -1;
- for (rpmsid id = 1; id <= nddict; id++) {
- s = rpmstrPoolStr(fc->ddict, id);
-
- /* Parse out (file#,deptype,N,EVR,Flags) */
- ix = strtol(s, &se, 10);
- if ( se == NULL ) {
- rpmlog(RPMLOG_ERR, _("Conversion of %s to long integer failed.\n"), s);
- return RPMRC_FAIL;
- }
-
- deptype = *se++;
- se++;
- N = se;
- while (*se && *se != ' ')
- se++;
- *se++ = '\0';
- EVR = se;
- while (*se && *se != ' ')
- se++;
- *se++ = '\0';
- Flags = strtol(se, NULL, 16);
-
- dix = -1;
-
- tagN = rpmdsDToTagN(deptype);
- dsp = packageDependencies(fc->pkg, tagN);
- ds = rpmdsSinglePool(fc->pool, tagN, N, EVR, Flags);
+ for (int i = 0; i < fc->fileDeps.size; i++) {
+ ds = fc->fileDeps.data[i].dep;
+ ix = fc->fileDeps.data[i].fileIx;
+ dsp = packageDependencies(fc->pkg, rpmdsTagN(ds));
dix = rpmdsFind(*dsp, ds);
- rpmdsFree(ds);
-
if (dix < 0)
continue;
- val = (deptype << 24) | (dix & 0x00ffffff);
+ val = (rpmdsD(ds) << 24) | (dix & 0x00ffffff);
argiAdd(&fc->ddictx, -1, val);
if (previx != ix) {
@@ -878,8 +972,8 @@ rpmRC rpmfcApply(rpmfc fc)
}
if (fc->fddictn && fc->fddictn->vals)
fc->fddictn->vals[ix]++;
- }
+ }
return RPMRC_OK;
}
@@ -937,7 +1031,6 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
/* Build (sorted) file class dictionary. */
fc->cdict = rpmstrPoolCreate();
- fc->ddict = rpmstrPoolCreate();
ms = magic_open(msflags);
if (ms == NULL) {
@@ -951,13 +1044,13 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
goto exit;
}
- for (fc->ix = 0; fc->ix < fc->nfiles; fc->ix++) {
+ for (int ix = 0; ix < fc->nfiles; ix++) {
rpmsid ftypeId;
const char * ftype;
- const char * s = argv[fc->ix];
+ const char * s = argv[ix];
size_t slen = strlen(s);
int fcolor = RPMFC_BLACK;
- rpm_mode_t mode = (fmode ? fmode[fc->ix] : 0);
+ rpm_mode_t mode = (fmode ? fmode[ix] : 0);
int is_executable = (mode & (S_IXUSR|S_IXGRP|S_IXOTH));
switch (mode & S_IFMT) {
@@ -1003,15 +1096,15 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
rpmlog(RPMLOG_DEBUG, "%s: %s\n", s, ftype);
/* Save the path. */
- fc->fn[fc->ix] = xstrdup(s);
+ fc->fn[ix] = xstrdup(s);
/* Add (filtered) file coloring */
fcolor |= rpmfcColor(ftype);
/* Add attributes based on file type and/or path */
- rpmfcAttributes(fc, ftype, s);
+ rpmfcAttributes(fc, ix, ftype, s);
- fc->fcolor[fc->ix] = fcolor;
+ fc->fcolor[ix] = fcolor;
/* Add to file class dictionary and index array */
if (fcolor != RPMFC_WHITE && (fcolor & RPMFC_INCLUDE)) {
@@ -1022,7 +1115,7 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
fc->fwhite++;
}
/* Pool id's start from 1, for headers we want it from 0 */
- fc->fcdictx[fc->ix] = ftypeId - 1;
+ fc->fcdictx[ix] = ftypeId - 1;
}
rc = RPMRC_OK;
@@ -1151,17 +1244,14 @@ static void printDeps(rpmfc fc)
}
}
-static rpmRC rpmfcGenerateDependsHelper(const rpmSpec spec, Package pkg, rpmfi fi)
+static rpmRC rpmfcApplyExternal(rpmfc fc)
{
StringBuf sb_stdin = newStringBuf();
rpmRC rc = RPMRC_OK;
/* Create file manifest buffer to deliver to dependency finder. */
- fi = rpmfiInit(fi, 0);
- while (rpmfiNext(fi) >= 0) {
- appendStringBuf(sb_stdin, spec->buildRoot);
- appendLineStringBuf(sb_stdin, rpmfiFN(fi));
- }
+ for (int i = 0; i < fc->nfiles; i++)
+ appendLineStringBuf(sb_stdin, fc->fn[i]);
for (DepMsg_t dm = DepMsgs; dm->msg != NULL; dm++) {
rpmTagVal tag = (dm->ftag > 0) ? dm->ftag : dm->ntag;
@@ -1172,7 +1262,7 @@ static rpmRC rpmfcGenerateDependsHelper(const rpmSpec spec, Package pkg, rpmfi f
switch(tag) {
case RPMTAG_PROVIDEFLAGS:
- if (!pkg->autoProv)
+ if (fc->skipProv)
continue;
tagflags = RPMSENSE_FIND_PROVIDES;
break;
@@ -1183,7 +1273,7 @@ static rpmRC rpmfcGenerateDependsHelper(const rpmSpec spec, Package pkg, rpmfi f
case RPMTAG_ENHANCENAME:
case RPMTAG_CONFLICTNAME:
case RPMTAG_OBSOLETENAME:
- if (!pkg->autoReq)
+ if (fc->skipReq)
continue;
tagflags = RPMSENSE_FIND_REQUIRES;
break;
@@ -1197,7 +1287,7 @@ static rpmRC rpmfcGenerateDependsHelper(const rpmSpec spec, Package pkg, rpmfi f
free(s);
if (rpmfcExec(dm->argv, sb_stdin, &sb_stdout,
- failnonzero, spec->buildRoot) == -1)
+ failnonzero, fc->buildRoot) == -1)
continue;
if (sb_stdout == NULL) {
@@ -1207,7 +1297,7 @@ static rpmRC rpmfcGenerateDependsHelper(const rpmSpec spec, Package pkg, rpmfi f
}
/* Parse dependencies into header */
- rc = parseRCPOT(spec, pkg, getStringBuf(sb_stdout), tag, 0, tagflags);
+ rc = parseRCPOT(NULL, fc->pkg, getStringBuf(sb_stdout), tag, 0, tagflags);
freeStringBuf(sb_stdout);
if (rc) {
@@ -1221,11 +1311,24 @@ static rpmRC rpmfcGenerateDependsHelper(const rpmSpec spec, Package pkg, rpmfi f
return rc;
}
+rpmRC rpmfcApply(rpmfc fc)
+{
+ rpmRC rc;
+ /* If new-fangled dependency generation is disabled ... */
+ if (!rpmExpandNumeric("%{?_use_internal_dependency_generator}")) {
+ /* ... then generate dependencies using %{__find_requires} et al. */
+ rc = rpmfcApplyExternal(fc);
+ } else {
+ /* ... otherwise generate per-file dependencies */
+ rc = rpmfcApplyInternal(fc);
+ }
+ return rc;
+}
+
rpmRC rpmfcGenerateDepends(const rpmSpec spec, Package pkg)
{
rpmfi fi = rpmfilesIter(pkg->cpioList, RPMFI_ITER_FWD);
rpmfc fc = NULL;
- ARGV_t av = NULL;
rpm_mode_t * fmode = NULL;
int ac = rpmfiFC(fi);
int genConfigDeps = 0;
@@ -1237,30 +1340,15 @@ rpmRC rpmfcGenerateDepends(const rpmSpec spec, Package pkg)
if (ac <= 0)
goto exit;
- /* Skip packages that have dependency generation disabled. */
- if (! (pkg->autoReq || pkg->autoProv))
- goto exit;
-
- /* If new-fangled dependency generation is disabled ... */
- if (!rpmExpandNumeric("%{?_use_internal_dependency_generator}")) {
- /* ... then generate dependencies using %{__find_requires} et al. */
- rc = rpmfcGenerateDependsHelper(spec, pkg, fi);
- goto exit;
- }
-
/* Extract absolute file paths in argv format. */
- av = xcalloc(ac+1, sizeof(*av));
fmode = xcalloc(ac+1, sizeof(*fmode));
fi = rpmfiInit(fi, 0);
while ((idx = rpmfiNext(fi)) >= 0) {
/* Does package have any %config files? */
genConfigDeps |= (rpmfiFFlags(fi) & RPMFILE_CONFIG);
-
- av[idx] = rstrscat(NULL, spec->buildRoot, rpmfiFN(fi), NULL);
fmode[idx] = rpmfiFMode(fi);
}
- av[ac] = NULL;
fc = rpmfcCreate(spec->buildRoot, 0);
free(fc->pkg);
@@ -1273,7 +1361,6 @@ rpmRC rpmfcGenerateDepends(const rpmSpec spec, Package pkg)
rpmds ds = rpmdsSingleNS(fc->pool, RPMTAG_PROVIDENAME, "config",
rpmdsN(pkg->ds), rpmdsEVR(pkg->ds),
(RPMSENSE_EQUAL|RPMSENSE_CONFIG));
- //printf("%s\n", rpmdsDNEVR(ds));
rpmdsMerge(packageDependencies(pkg, RPMTAG_PROVIDENAME), ds);
rpmdsFree(ds);
}
@@ -1286,13 +1373,13 @@ rpmRC rpmfcGenerateDepends(const rpmSpec spec, Package pkg)
}
/* Build file class dictionary. */
- rc = rpmfcClassify(fc, av, fmode);
+ rc = rpmfcClassify(fc, pkg->dpaths, fmode);
if ( rc != RPMRC_OK )
goto exit;
/* Build file/package dependency dictionary. */
rc = rpmfcApply(fc);
- if ( rc != RPMRC_OK )
+ if (rc != RPMRC_OK)
goto exit;
/* Add per-file colors(#files) */
@@ -1313,15 +1400,15 @@ rpmRC rpmfcGenerateDepends(const rpmSpec spec, Package pkg)
/* Add dependency dictionary(#dependencies) */
if (rpmtdFromArgi(&td, RPMTAG_DEPENDSDICT, fc->ddictx)) {
headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
- }
- /* Add per-file dependency (start,number) pairs (#files) */
- if (rpmtdFromArgi(&td, RPMTAG_FILEDEPENDSX, fc->fddictx)) {
- headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
- }
+ /* Add per-file dependency (start,number) pairs (#files) */
+ if (rpmtdFromArgi(&td, RPMTAG_FILEDEPENDSX, fc->fddictx)) {
+ headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
+ }
- if (rpmtdFromArgi(&td, RPMTAG_FILEDEPENDSN, fc->fddictn)) {
- headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
+ if (rpmtdFromArgi(&td, RPMTAG_FILEDEPENDSN, fc->fddictn)) {
+ headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
+ }
}
@@ -1341,7 +1428,6 @@ exit:
fc->pkg = NULL;
free(fmode);
rpmfcFree(fc);
- argvFree(av);
rpmfiFree(fi);
return rc;
diff --git a/build/rpmfc.h b/build/rpmfc.h
index bd1c660b..dae8ea5b 100644
--- a/build/rpmfc.h
+++ b/build/rpmfc.h
@@ -107,6 +107,48 @@ rpmds rpmfcProvides(rpmfc fc);
rpmds rpmfcRequires(rpmfc fc);
/** \ingroup rpmfc
+ * Retrieve file classification recommends
+ * @param fc file classifier
+ * @return rpmds dependency set of fc recommends
+ */
+rpmds rpmfcRecommends(rpmfc fc);
+
+/** \ingroup rpmfc
+ * Retrieve file classification suggests
+ * @param fc file classifier
+ * @return rpmds dependency set of fc suggests
+ */
+rpmds rpmfcSuggests(rpmfc fc);
+
+/** \ingroup rpmfc
+ * Retrieve file classification supplements
+ * @param fc file classifier
+ * @return rpmds dependency set of fc supplements
+ */
+rpmds rpmfcSupplements(rpmfc fc);
+
+/** \ingroup rpmfc
+ * Retrieve file classification enhances
+ * @param fc file classifier
+ * @return rpmds dependency set of fc enhances
+ */
+rpmds rpmfcEnhances(rpmfc fc);
+
+/** \ingroup rpmfc
+ * Retrieve file classification conflicts
+ * @param fc file classifier
+ * @return rpmds dependency set of fc conflicts
+ */
+rpmds rpmfcConflicts(rpmfc fc);
+
+/** \ingroup rpmfc
+ * Retrieve file classification obsoletes
+ * @param fc file classifier
+ * @return rpmds dependency set of fc obsoletes
+ */
+rpmds rpmfcObsoletes(rpmfc fc);
+
+/** \ingroup rpmfc
* Retrieve file classification dependencies
* @param fc file classifier
* @param tagN name tag of the wanted dependency
diff --git a/build/rpmspec.h b/build/rpmspec.h
index 195fc720..164c9b6a 100644
--- a/build/rpmspec.h
+++ b/build/rpmspec.h
@@ -36,6 +36,7 @@ enum rpmSpecFlags_e {
RPMSPEC_ANYARCH = (1 << 0),
RPMSPEC_FORCE = (1 << 1),
RPMSPEC_NOLANG = (1 << 2),
+ RPMSPEC_NOUTF8 = (1 << 3),
};
typedef rpmFlags rpmSpecFlags;
@@ -55,6 +56,13 @@ rpmSpecPkgIter rpmSpecPkgIterFree(rpmSpecPkgIter iter);
/* Getters for spec package attributes */
Header rpmSpecPkgHeader(rpmSpecPkg pkg);
+/*
+ * Retrieve package specific parsed spec script section (RPMBUILD_FILE_LIST,
+ * RPMBUILD_FILE_FILE, RPMBUILD_POLICY) as a malloc'ed string.
+ */
+char * rpmSpecPkgGetSection(rpmSpecPkg pkg, int section);
+
+
/* Iterator for spec sources */
rpmSpecSrcIter rpmSpecSrcIterInit(rpmSpec spec);
rpmSpecSrc rpmSpecSrcIterNext(rpmSpecSrcIter iter);
diff --git a/build/spec.c b/build/spec.c
index c3dbac95..7cb264ab 100644
--- a/build/spec.c
+++ b/build/spec.c
@@ -145,11 +145,14 @@ static Package freePackage(Package pkg)
pkg->fileList = argvFree(pkg->fileList);
pkg->fileFile = argvFree(pkg->fileFile);
pkg->policyList = argvFree(pkg->policyList);
+ pkg->removePostfixes = argvFree(pkg->removePostfixes);
pkg->cpioList = rpmfilesFree(pkg->cpioList);
pkg->dpaths = argvFree(pkg->dpaths);
pkg->icon = freeSources(pkg->icon);
pkg->triggerFiles = freeTriggerFiles(pkg->triggerFiles);
+ pkg->fileTriggerFiles = freeTriggerFiles(pkg->fileTriggerFiles);
+ pkg->transFileTriggerFiles = freeTriggerFiles(pkg->transFileTriggerFiles);
pkg->pool = rpmstrPoolFree(pkg->pool);
free(pkg);
@@ -236,6 +239,8 @@ rpmSpec newSpec(void)
{
/* make sure patches and sources tables always exist */
rpmlua lua = NULL; /* global state */
+ rpmluaDelVar(lua, "patches");
+ rpmluaDelVar(lua, "sources");
rpmluaPushTable(lua, "patches");
rpmluaPushTable(lua, "sources");
rpmluaPop(lua);
@@ -371,6 +376,18 @@ Header rpmSpecPkgHeader(rpmSpecPkg pkg)
return (pkg != NULL) ? pkg->header : NULL;
}
+char* rpmSpecPkgGetSection(rpmSpecPkg pkg, int section)
+{
+ if (pkg) {
+ switch (section) {
+ case RPMBUILD_FILE_FILE: return argvJoin(pkg->fileFile, "");
+ case RPMBUILD_FILE_LIST: return argvJoin(pkg->fileList, "");
+ case RPMBUILD_POLICY: return argvJoin(pkg->policyList, "");
+ }
+ }
+ return NULL;
+}
+
rpmSpecSrcIter rpmSpecSrcIterInit(rpmSpec spec)
{
SPEC_LISTITER_INIT(rpmSpecSrcIter, sources);
diff --git a/config.guess b/config.guess
index 1804e9fc..dbfb9786 100755
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012, 2013 Free Software Foundation, Inc.
+# Copyright 1992-2015 Free Software Foundation, Inc.
-timestamp='2012-12-29'
+timestamp='2015-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -26,12 +24,12 @@ timestamp='2012-12-29'
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
-# Originally written by Per Bothner.
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
#
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+# Please send patches to <config-patches@gnu.org>.
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -52,9 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-2012, 2013 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -136,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ ;;
+esac
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -562,8 +579,9 @@ EOF
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
+ if [ -x /usr/bin/lslpp ] ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
@@ -809,7 +827,7 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
- i*:MSYS*:*)
+ *:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
@@ -857,21 +875,21 @@ EOF
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -884,59 +902,54 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:Linux:*:*)
- LIBC=gnu
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
@@ -955,54 +968,63 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- or32:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ openrisc*:Linux:*:*)
+ echo or1k-unknown-linux-${LIBC}
+ exit ;;
+ or32:Linux:*:* | or1k*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-gnu
+ echo sparc-unknown-linux-${LIBC}
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
+ echo hppa64-unknown-linux-${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
+ echo powerpc64-unknown-linux-${LIBC}
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1235,19 +1257,31 @@ EOF
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- i386)
- eval $set_cc_for_build
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- UNAME_PROCESSOR="x86_64"
- fi
- fi ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
+ fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1338,154 +1372,6 @@ EOF
exit ;;
esac
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
cat >&2 <<EOF
$0: unable to guess system type
diff --git a/config.h.in b/config.h.in
index 7c4747cf..1ae3d6fc 100644
--- a/config.h.in
+++ b/config.h.in
@@ -6,6 +6,9 @@
/* Build with dmalloc support? */
#undef DMALLOC
+/* Enable new rpm database format? */
+#undef ENABLE_NDB
+
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
@@ -71,9 +74,6 @@
/* Define to 1 if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H
-/* Define to 1 if you have the `getpassphrase' function. */
-#undef HAVE_GETPASSPHRASE
-
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
@@ -161,6 +161,9 @@
/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV
+/* Define to 1 if SELinux setexecfilecon is present */
+#undef HAVE_SETEXECFILECON
+
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
@@ -223,6 +226,9 @@
/* Define to 1 if you have the `__secure_getenv' function. */
#undef HAVE___SECURE_GETENV
+/* Define as const if the declaration of iconv() needs const. */
+#undef ICONV_CONST
+
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
@@ -316,6 +322,9 @@
/* Build with capability support? */
#undef WITH_CAP
+/* Build with imaevm support? */
+#undef WITH_IMAEVM
+
/* Build with lua support? */
#undef WITH_LUA
diff --git a/config.sub b/config.sub
index 52f04bcd..6467c95a 100755
--- a/config.sub
+++ b/config.sub
@@ -1,10 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012, 2013 Free Software Foundation, Inc.
+# Copyright 1992-2015 Free Software Foundation, Inc.
-timestamp='2012-12-29'
+timestamp='2015-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -27,7 +25,7 @@ timestamp='2012-12-29'
# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+# Please send patches to <config-patches@gnu.org>.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
@@ -70,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-2012, 2013 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -256,19 +252,20 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc \
+ | arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
| be32 | be64 \
| bfin \
- | c4x | clipper \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
- | fido | fr30 | frv \
+ | fido | fr30 | frv | ft32 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -286,23 +283,26 @@ case $basic_machine in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
- | nios | nios2 \
+ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | open8 \
- | or32 \
+ | open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
+ | riscv32 | riscv64 \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -313,6 +313,7 @@ case $basic_machine in
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | visium \
| we32k \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
@@ -327,7 +328,10 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ leon|leon[3-9])
+ basic_machine=sparc-$basic_machine
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -369,13 +373,13 @@ case $basic_machine in
| aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
- | clipper-* | craynv-* | cydra-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -384,6 +388,7 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
@@ -403,18 +408,22 @@ case $basic_machine in
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
+ | or1k*-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -432,6 +441,7 @@ case $basic_machine in
| ubicom32-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
+ | visium-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
@@ -769,6 +779,9 @@ case $basic_machine in
basic_machine=m68k-isi
os=-sysv
;;
+ leon-*|leon[3-9]-*)
+ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+ ;;
m68knommu)
basic_machine=m68k-unknown
os=-linux
@@ -796,7 +809,7 @@ case $basic_machine in
os=-mingw64
;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
@@ -824,6 +837,10 @@ case $basic_machine in
basic_machine=powerpc-unknown
os=-morphos
;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=-moxiebox
+ ;;
msdos)
basic_machine=i386-pc
os=-msdos
@@ -832,7 +849,7 @@ case $basic_machine in
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-msys
;;
mvs)
@@ -1354,7 +1371,7 @@ case $os in
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1369,14 +1386,14 @@ case $os in
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1500,9 +1517,6 @@ case $os in
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
@@ -1551,6 +1565,9 @@ case $basic_machine in
c4x-* | tic4x-*)
os=-coff
;;
+ c8051-*)
+ os=-elf
+ ;;
hexagon-*)
os=-elf
;;
diff --git a/configure b/configure
index 0f8d3694..73137d1a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for rpm 4.12.0.2.
+# Generated by GNU Autoconf 2.69 for rpm 4.13.0.
#
# Report bugs to <rpm-maint@lists.rpm.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='rpm'
PACKAGE_TARNAME='rpm'
-PACKAGE_VERSION='4.12.0.2'
-PACKAGE_STRING='rpm 4.12.0.2'
+PACKAGE_VERSION='4.13.0'
+PACKAGE_STRING='rpm 4.13.0'
PACKAGE_BUGREPORT='rpm-maint@lists.rpm.org'
PACKAGE_URL=''
@@ -667,6 +667,8 @@ WITH_ACL_LIB
CAP_FALSE
CAP_TRUE
WITH_CAP_LIB
+WITH_IMAEVM_FALSE
+WITH_IMAEVM_TRUE
SELINUX_FALSE
SELINUX_TRUE
WITH_SEMANAGE_LIB
@@ -702,6 +704,8 @@ MSGFMT_015
GMSGFMT
MSGFMT
USE_NLS
+NDB_FALSE
+NDB_TRUE
WITH_DB_LIB
WITH_ARCHIVE_FALSE
WITH_ARCHIVE_TRUE
@@ -921,6 +925,7 @@ with_beecrypt
with_internal_beecrypt
with_archive
with_external_db
+enable_ndb
enable_nls
enable_rpath
with_libiconv_prefix
@@ -928,6 +933,7 @@ with_libintl_prefix
enable_python
with_hackingdocs
with_selinux
+with_imaevm
with_cap
with_acl
with_lua
@@ -1500,7 +1506,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures rpm 4.12.0.2 to adapt to many kinds of systems.
+\`configure' configures rpm 4.13.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1570,7 +1576,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of rpm 4.12.0.2:";;
+ short | recursive ) echo "Configuration of rpm 4.13.0:";;
esac
cat <<\_ACEOF
@@ -1590,6 +1596,7 @@ Optional Features:
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-largefile omit support for large files
+ --enable-ndb enable the new rpm database format
--disable-nls do not use Native Language Support
--disable-rpath do not hardcode runtime library paths
--enable-python build rpm python bindings
@@ -1617,6 +1624,7 @@ Optional Packages:
--without-libintl-prefix don't search for libintl in includedir and libdir
--with-hackingdocs build rpm hacking docs
--with-selinux build with selinux support
+ --with-imaevm build with imaevm support
--with-cap build with capability support
--with-acl build with acl support
--with-lua build with lua support
@@ -1721,7 +1729,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-rpm configure 4.12.0.2
+rpm configure 4.13.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2322,7 +2330,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by rpm $as_me 4.12.0.2, which was
+It was created by rpm $as_me 4.13.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3192,7 +3200,7 @@ fi
# Define the identity of the package.
PACKAGE='rpm'
- VERSION='4.12.0.2'
+ VERSION='4.13.0'
cat >>confdefs.h <<_ACEOF
@@ -20862,6 +20870,35 @@ esac
+#=================
+# Process --enable-ndb
+# Check whether --enable-ndb was given.
+if test "${enable_ndb+set}" = set; then :
+ enableval=$enable_ndb; case "$enable_ndb" in
+yes|no) ;;
+*) as_fn_error $? "invalid argument to --enable-ndb" "$LINENO" 5
+ ;;
+esac
+else
+ enable_ndb=no
+fi
+
+if test "$enable_ndb" = yes; then :
+
+
+$as_echo "#define ENABLE_NDB 1" >>confdefs.h
+
+
+fi
+ if test "$enable_ndb" = yes; then
+ NDB_TRUE=
+ NDB_FALSE='#'
+else
+ NDB_TRUE='#'
+ NDB_FALSE=
+fi
+
+
mkdir_p="$MKDIR_P"
@@ -22584,6 +22621,161 @@ $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if ${am_cv_proto_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ am_cv_proto_iconv_arg1=""
+else
+ am_cv_proto_iconv_arg1="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+fi
+
+ am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:-
+ }$am_cv_proto_iconv" >&5
+$as_echo "${ac_t:-
+ }$am_cv_proto_iconv" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define ICONV_CONST $am_cv_proto_iconv_arg1
+_ACEOF
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if ${ac_cv_header_stdc+:} false; then :
@@ -24037,6 +24229,49 @@ else
as_fn_error $? "--with-selinux given, but selinux_reset_config not found in libselinux" "$LINENO" 5
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setexecfilecon in -lselinux" >&5
+$as_echo_n "checking for setexecfilecon in -lselinux... " >&6; }
+if ${ac_cv_lib_selinux_setexecfilecon+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lselinux $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setexecfilecon ();
+int
+main ()
+{
+return setexecfilecon ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_selinux_setexecfilecon=yes
+else
+ ac_cv_lib_selinux_setexecfilecon=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_setexecfilecon" >&5
+$as_echo "$ac_cv_lib_selinux_setexecfilecon" >&6; }
+if test "x$ac_cv_lib_selinux_setexecfilecon" = xyes; then :
+
+
+$as_echo "#define HAVE_SETEXECFILECON 1" >>confdefs.h
+
+fi
+
LIBS="$save_LIBS"
else
@@ -24226,6 +24461,29 @@ else
fi
+# libimaevm
+with_iamevm=no
+
+# Check whether --with-imaevm was given.
+if test "${with_imaevm+set}" = set; then :
+ withval=$with_imaevm;
+fi
+
+if test "$with_imaevm" = yes ; then
+
+$as_echo "#define WITH_IMAEVM 1" >>confdefs.h
+
+ LIBS="$LIBS -limaevm"
+fi
+ if test "$with_imaevm" = yes; then
+ WITH_IMAEVM_TRUE=
+ WITH_IMAEVM_FALSE='#'
+else
+ WITH_IMAEVM_TRUE='#'
+ WITH_IMAEVM_FALSE=
+fi
+
+
# libcap
WITH_CAP_LIB=
@@ -24680,18 +24938,6 @@ $as_echo "#define DMALLOC 1" >>confdefs.h
LIBS="$LIBS -ldmalloc"
fi
-for ac_func in getpassphrase
-do :
- ac_fn_c_check_func "$LINENO" "getpassphrase" "ac_cv_func_getpassphrase"
-if test "x$ac_cv_func_getpassphrase" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_GETPASSPHRASE 1
-_ACEOF
-
-fi
-done
-
-
#
# get rid of the 4-th tuple, if config.guess returned "linux-gnu" for host_os
#
@@ -25001,6 +25247,10 @@ if test -z "${WITH_ARCHIVE_TRUE}" && test -z "${WITH_ARCHIVE_FALSE}"; then
as_fn_error $? "conditional \"WITH_ARCHIVE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${NDB_TRUE}" && test -z "${NDB_FALSE}"; then
+ as_fn_error $? "conditional \"NDB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ENABLE_PYTHON_TRUE}" && test -z "${ENABLE_PYTHON_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_PYTHON\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -25009,6 +25259,10 @@ if test -z "${SELINUX_TRUE}" && test -z "${SELINUX_FALSE}"; then
as_fn_error $? "conditional \"SELINUX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${WITH_IMAEVM_TRUE}" && test -z "${WITH_IMAEVM_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_IMAEVM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${CAP_TRUE}" && test -z "${CAP_FALSE}"; then
as_fn_error $? "conditional \"CAP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -25438,7 +25692,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by rpm $as_me 4.12.0.2, which was
+This file was extended by rpm $as_me 4.13.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -25504,7 +25758,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-rpm config.status 4.12.0.2
+rpm config.status 4.13.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 0d1bf810..5f96ef9f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
AC_PREREQ(2.61)
-AC_INIT(rpm, 4.12.0.2, rpm-maint@lists.rpm.org)
+AC_INIT(rpm, 4.13.0, rpm-maint@lists.rpm.org)
AC_CONFIG_SRCDIR([rpmqv.c])
AC_CONFIG_HEADERS([config.h])
@@ -396,8 +396,23 @@ esac
AC_SUBST([WITH_DB_LIB])
+#=================
+# Process --enable-ndb
+AC_ARG_ENABLE([ndb], [AS_HELP_STRING([--enable-ndb],[enable the new rpm database format])],
+[case "$enable_ndb" in
+yes|no) ;;
+*) AC_MSG_ERROR([invalid argument to --enable-ndb])
+ ;;
+esac],
+[enable_ndb=no])
+AS_IF([test "$enable_ndb" = yes],[
+ AC_DEFINE(ENABLE_NDB, 1, [Enable new rpm database format?])
+])
+AM_CONDITIONAL([NDB], [test "$enable_ndb" = yes])
+
AM_GNU_GETTEXT_VERSION([0.16.1])
AM_GNU_GETTEXT([external])
+AM_ICONV
dnl Checks for header files we can live without.
AC_HEADER_STDC
@@ -630,6 +645,8 @@ AS_IF([test "$with_selinux" = yes],[
AC_MSG_ERROR([--with-selinux given, but selinux_getpolicytype not found in libselinux])])
AC_CHECK_LIB([selinux],[selinux_reset_config],[],[
AC_MSG_ERROR([--with-selinux given, but selinux_reset_config not found in libselinux])])
+ AC_CHECK_LIB([selinux],[setexecfilecon],[
+ AC_DEFINE([HAVE_SETEXECFILECON],[1],[Define to 1 if SELinux setexecfilecon is present])])
LIBS="$save_LIBS"
],[
AC_MSG_ERROR([--with-selinux given, but selinux/selinux.h not found])
@@ -657,6 +674,15 @@ AC_SUBST(WITH_SELINUX_LIB)
AC_SUBST(WITH_SEMANAGE_LIB)
AM_CONDITIONAL(SELINUX,[test "$with_selinux" = yes])
+# libimaevm
+with_iamevm=no
+AC_ARG_WITH(imaevm, [AS_HELP_STRING([--with-imaevm],[build with imaevm support])])
+if test "$with_imaevm" = yes ; then
+ AC_DEFINE(WITH_IMAEVM, 1, [Build with imaevm support?])
+ LIBS="$LIBS -limaevm"
+fi
+AM_CONDITIONAL(WITH_IMAEVM,[test "$with_imaevm" = yes])
+
# libcap
WITH_CAP_LIB=
AC_ARG_WITH(cap, [AS_HELP_STRING([--with-cap],[build with capability support])],
@@ -754,8 +780,6 @@ if test "$with_dmalloc" = yes ; then
LIBS="$LIBS -ldmalloc"
fi
-AC_CHECK_FUNCS(getpassphrase)
-
#
# get rid of the 4-th tuple, if config.guess returned "linux-gnu" for host_os
#
diff --git a/depcomp b/depcomp
index 4ebd5b3a..fc98710e 100755
--- a/depcomp
+++ b/depcomp
@@ -3,7 +3,7 @@
scriptversion=2013-05-30.07; # UTC
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# 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
diff --git a/doc/hacking.doxy.in b/doc/hacking.doxy.in
index 257aae6a..da2dd18e 100644
--- a/doc/hacking.doxy.in
+++ b/doc/hacking.doxy.in
@@ -1,463 +1,759 @@
-# Doxyfile 1.5.2
+# Doxyfile 1.8.8
# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
+# doxygen (www.doxygen.org) for a project.
#
-# All text after a hash (#) is considered a comment and will be ignored
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
-# This tag specifies the encoding used for all characters in the config file that
-# follow. The default is UTF-8 which is also the encoding used for all text before
-# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
-# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
-# possible encodings.
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
PROJECT_NAME = @PACKAGE@
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
PROJECT_NUMBER = @VERSION@
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
+# the documentation. The maximum height of the logo should not exceed 55 pixels
+# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
+# to the output directory.
+
+PROJECT_LOGO =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
OUTPUT_DIRECTORY = doc/hacking
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
CREATE_SUBDIRS = NO
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
-# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
OUTPUT_LANGUAGE = English
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
+# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
BRIEF_MEMBER_DESC = YES
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
+# The default value is: YES.
REPEAT_BRIEF = YES
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
-ABBREVIATE_BRIEF =
+ABBREVIATE_BRIEF =
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
# description.
+# The default value is: NO.
ALWAYS_DETAILED_SEC = NO
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
+# The default value is: NO.
INLINE_INHERITED_MEMB = NO
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
+# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
FULL_PATH_NAMES = YES
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
STRIP_FROM_PATH = @top_srcdir@/
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
-STRIP_FROM_INC_PATH =
+STRIP_FROM_INC_PATH =
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
SHORT_NAMES = NO
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
JAVADOC_AUTOBRIEF = YES
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
MULTILINE_CPP_IS_BRIEF = NO
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
INHERIT_DOCS = YES
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
+# new page for each member. If set to NO, the documentation of a member will be
+# part of the file/class/namespace that contains it.
+# The default value is: NO.
SEPARATE_MEMBER_PAGES = NO
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
TAB_SIZE = 8
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
-ALIASES =
+TCL_SUBST =
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
OPTIMIZE_OUTPUT_FOR_C = YES
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
OPTIMIZE_OUTPUT_JAVA = NO
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
-# include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
BUILTIN_STL_SUPPORT = NO
# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
+# The default value is: NO.
CPP_CLI_SUPPORT = NO
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
+# The default value is: NO.
DISTRIBUTE_GROUP_DOC = NO
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
SUBGROUPING = YES
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
EXTRACT_ALL = YES
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
EXTRACT_PRIVATE = NO
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
EXTRACT_STATIC = YES
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
EXTRACT_LOCAL_CLASSES = YES
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
+# This flag is only useful for Objective-C code. When set to YES local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO only methods in the interface are
+# included.
+# The default value is: NO.
EXTRACT_LOCAL_METHODS = NO
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
HIDE_UNDOC_MEMBERS = NO
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO these classes will be included in the various overviews. This option has
+# no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
HIDE_UNDOC_CLASSES = NO
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO these declarations will be
+# included in the documentation.
+# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
HIDE_IN_BODY_DOCS = NO
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
INTERNAL_DOCS = YES
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
CASE_SENSE_NAMES = YES
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES the
+# scope will be hidden.
+# The default value is: NO.
HIDE_SCOPE_NAMES = NO
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
SHOW_INCLUDE_FILES = YES
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
INLINE_INFO = YES
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order.
+# The default value is: YES.
SORT_MEMBER_DOCS = YES
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
SORT_BRIEF_DOCS = NO
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
SORT_BY_SCOPE_NAME = NO
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
+# todo list. This list is created by putting \todo commands in the
+# documentation.
+# The default value is: YES.
GENERATE_TODOLIST = YES
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
+# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
+# test list. This list is created by putting \test commands in the
+# documentation.
+# The default value is: YES.
GENERATE_TESTLIST = YES
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
+# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
GENERATE_BUGLIST = YES
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
+# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
GENERATE_DEPRECATEDLIST= YES
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
-ENABLED_SECTIONS =
+ENABLED_SECTIONS =
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
MAX_INITIALIZER_LINES = 30
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES the list
+# will mention the files that were used to generate the documentation.
+# The default value is: YES.
SHOW_USED_FILES = YES
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES = YES
-SHOW_DIRECTORIES = NO
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
+SHOW_NAMESPACES = YES
-FILE_VERSION_FILTER =
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
+# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
QUIET = NO
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
WARNINGS = YES
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
+# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
WARN_IF_UNDOCUMENTED = YES
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
WARN_IF_DOC_ERROR = YES
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO doxygen will only warn about wrong or incomplete parameter
+# documentation, but not about the absence of documentation.
+# The default value is: NO.
WARN_NO_PARAMDOC = NO
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
WARN_FORMAT = "$file:$line: $text"
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
-WARN_LOGFILE =
+WARN_LOGFILE =
#---------------------------------------------------------------------------
-# configuration options related to the input files
+# Configuration options related to the input files
#---------------------------------------------------------------------------
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces.
+# Note: If this tag is empty the current directory is searched.
INPUT = @top_srcdir@/doc/hacking/Doxyheader \
- @top_srcdir@/build.c \
- @top_srcdir@/build.h \
@top_srcdir@/config.h \
@top_srcdir@/debug.h \
@top_srcdir@/macros \
@@ -465,6 +761,12 @@ INPUT = @top_srcdir@/doc/hacking/Doxyheader \
@top_srcdir@/rpmpopt-@VERSION@ \
@top_srcdir@/rpmrc \
@top_srcdir@/rpm2cpio.c \
+ @top_srcdir@/rpm2archive.c \
+ @top_srcdir@/rpmbuild.c \
+ @top_srcdir@/rpmdb.c \
+ @top_srcdir@/rpmkeys.c \
+ @top_srcdir@/rpmsign.c \
+ @top_srcdir@/rpmspec.c \
@top_srcdir@/system.h \
@top_srcdir@/build/ \
@top_srcdir@/doc/manual/builddependencies \
@@ -483,800 +785,1583 @@ INPUT = @top_srcdir@/doc/hacking/Doxyheader \
@top_srcdir@/doc/manual/tsort \
@top_srcdir@/lib/ \
@top_srcdir@/lua/ \
- @top_srcdir@/rpmdb/ \
@top_srcdir@/rpmio/ \
@top_srcdir@/python/ \
@top_srcdir@/tools/
-# This tag can be used to specify the character encoding of the source files that
-# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
-# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
-# See http://www.gnu.org/software/libiconv for the list of possible encodings.
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank the
+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+# *.qsf, *.as and *.js.
FILE_PATTERNS = *.c \
*.h
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
RECURSIVE = NO
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
-EXCLUDE = @top_srcdir@/db @top_srcdir@/db.h
+EXCLUDE = @top_srcdir@/db \
+ @top_srcdir@/db.h
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.
+# The default value is: NO.
EXCLUDE_SYMLINKS = NO
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
-EXCLUDE_PATTERNS =
+EXCLUDE_PATTERNS =
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the output.
-# The symbol name can be a fully qualified name, a word, or if the wildcard * is used,
-# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
-EXCLUDE_SYMBOLS =
+EXCLUDE_SYMBOLS =
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
EXAMPLE_PATH = @top_srcdir@/doc/manual
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
-EXAMPLE_PATTERNS =
+EXAMPLE_PATTERNS =
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
EXAMPLE_RECURSIVE = NO
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
-IMAGE_PATH =
+IMAGE_PATH =
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
-INPUT_FILTER =
+INPUT_FILTER =
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
-FILTER_PATTERNS =
+FILTER_PATTERNS =
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER ) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
FILTER_SOURCE_FILES = NO
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
#---------------------------------------------------------------------------
-# configuration options related to source browsing
+# Configuration options related to source browsing
#---------------------------------------------------------------------------
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
SOURCE_BROWSER = YES
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
INLINE_SOURCES = NO
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
STRIP_CODE_COMMENTS = YES
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
REFERENCED_BY_RELATION = YES
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
REFERENCES_RELATION = YES
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code. Otherwise they will link to the documentstion.
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
REFERENCES_LINK_SOURCE = YES
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
USE_HTAGS = NO
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
+# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
ALPHABETICAL_INDEX = NO
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 5
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-IGNORE_PREFIX =
+IGNORE_PREFIX =
#---------------------------------------------------------------------------
-# configuration options related to the HTML output
+# Configuration options related to the HTML output
#---------------------------------------------------------------------------
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
+# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
+# The default value is: NO.
GENERATE_HTML = YES
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_OUTPUT = html
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FILE_EXTENSION = .html
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefor more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra stylesheet files is of importance (e.g. the last
+# stylesheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the stylesheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_HEADER =
+GENERATE_HTMLHELP = NO
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-HTML_FOOTER =
+CHM_FILE =
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler ( hhc.exe). If non-empty
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-HTML_STYLESHEET =
+HHC_LOCATION =
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
+# The GENERATE_CHI flag controls if a separate .chi index file is generated (
+# YES) or that it should be included in the master .chm file ( NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-HTML_ALIGN_MEMBERS = YES
+GENERATE_CHI = NO
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-GENERATE_HTMLHELP = NO
+CHM_INDEX_ENCODING =
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
+# The BINARY_TOC flag controls whether a binary table of contents is generated (
+# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-CHM_FILE =
+BINARY_TOC = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-HHC_LOCATION =
+TOC_EXPAND = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-GENERATE_CHI = NO
+DISABLE_INDEX = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-BINARY_TOC = NO
+GENERATE_TREEVIEW = NO
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-TOC_EXPAND = NO
+ENUM_VALUES_PER_LINE = 4
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-DISABLE_INDEX = NO
+TREEVIEW_WIDTH = 250
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-ENUM_VALUES_PER_LINE = 4
+EXT_LINKS_IN_WINDOW = NO
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-GENERATE_TREEVIEW = NO
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using prerendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
+SEARCHENGINE = NO
-TREEVIEW_WIDTH = 250
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
+# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
+# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
+# The default value is: YES.
GENERATE_LATEX = NO
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_OUTPUT = latex
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
MAKEINDEX_CMD_NAME = makeindex
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
+# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
COMPACT_LATEX = NO
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
PAPER_TYPE = letter
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. To get the times font for
+# instance you can specify
+# EXTRA_PACKAGES=times
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
+# for the replacement values of the other commands the user is refered to
+# HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
-EXTRA_PACKAGES =
+LATEX_FOOTER =
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
-LATEX_HEADER =
+LATEX_EXTRA_FILES =
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
PDF_HYPERLINKS = NO
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES to get a
# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
USE_PDFLATEX = NO
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BATCHMODE = NO
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HIDE_INDICES = NO
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE = plain
+
#---------------------------------------------------------------------------
-# configuration options related to the RTF output
+# Configuration options related to the RTF output
#---------------------------------------------------------------------------
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
+# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
GENERATE_RTF = NO
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_OUTPUT = rtf
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
+# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
COMPACT_RTF = NO
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_HYPERLINKS = NO
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
-RTF_STYLESHEET_FILE =
+RTF_STYLESHEET_FILE =
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
-RTF_EXTENSIONS_FILE =
+RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
-# configuration options related to the man page output
+# Configuration options related to the man page output
#---------------------------------------------------------------------------
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
+# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
GENERATE_MAN = NO
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_OUTPUT = man
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_EXTENSION = .3
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_LINKS = NO
#---------------------------------------------------------------------------
-# configuration options related to the XML output
+# Configuration options related to the XML output
#---------------------------------------------------------------------------
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
+# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
GENERATE_XML = NO
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
XML_OUTPUT = xml
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
+# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
-XML_SCHEMA =
+XML_PROGRAMLISTING = YES
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
-XML_DTD =
+# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
+GENERATE_DOCBOOK = NO
-XML_PROGRAMLISTING = YES
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
+# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
+# Definitions (see http://autogen.sf.net) file that captures the structure of
+# the code including all documentation. Note that this feature is still
+# experimental and incomplete at the moment.
+# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
+# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
+# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
GENERATE_PERLMOD = NO
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
+# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_LATEX = NO
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_PRETTY = YES
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-PERLMOD_MAKEVAR_PREFIX =
+PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
+# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
+# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
ENABLE_PREPROCESSING = YES
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
+# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
+# in the source code. If set to NO only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
MACRO_EXPANSION = YES
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
EXPAND_ONLY_PREDEF = NO
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
+# If the SEARCH_INCLUDES tag is set to YES the includes files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
SEARCH_INCLUDES = YES
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
-INCLUDE_PATH =
+INCLUDE_PATH =
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-INCLUDE_FILE_PATTERNS =
+INCLUDE_FILE_PATTERNS =
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-PREDEFINED =
+PREDEFINED =
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-EXPAND_AS_DEFINED =
+EXPAND_AS_DEFINED =
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
-# Configuration::additions related to external references
+# Configuration options related to external references
#---------------------------------------------------------------------------
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
GENERATE_TAGFILE = Doxytags
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
+# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
+# class index. If set to NO only the inherited external classes will be listed.
+# The default value is: NO.
ALLEXTERNALS = NO
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
+# the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
EXTERNAL_GROUPS = YES
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
+# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
+# Configuration options related to the dot tool
#---------------------------------------------------------------------------
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
+# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
# powerful graphs.
+# The default value is: YES.
CLASS_DIAGRAMS = YES
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to
-# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to
-# specify the directory where the mscgen tool resides. If left empty the tool is assumed to
-# be found in the default search path.
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
-MSCGEN_PATH =
+DIA_PATH =
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
+# If set to YES, the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
HIDE_UNDOC_RELATIONS = YES
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
HAVE_DOT = @HAVE_DOT@
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
CLASS_GRAPH = YES
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
COLLABORATION_GRAPH = YES
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
GROUP_GRAPHS = YES
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
UML_LOOK = NO
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
TEMPLATE_RELATIONS = YES
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
INCLUDE_GRAPH = YES
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
INCLUDED_BY_GRAPH = YES
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
# functions only using the \callgraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
CALL_GRAPH = NO
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a caller dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
# functions only using the \callergraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
CALLER_GRAPH = NO
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
GRAPHICAL_HIERARCHY = YES
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
DIRECTORY_GRAPH = YES
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot.
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif and svg.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_IMAGE_FORMAT = png
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
-DOT_PATH =
+MSCFILE_DIRS =
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
-DOTFILE_DIRS =
+DIAFILE_DIRS =
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen will always
-# show the root nodes and its direct children regardless of this setting.
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+PLANTUML_JAR_PATH =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_GRAPH_MAX_NODES = 50
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_TRANSPARENT = NO
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_MULTI_TARGETS = NO
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
GENERATE_LEGEND = YES
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
+# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
diff --git a/doc/librpm.doxy.in b/doc/librpm.doxy.in
index 440e8265..aded73ac 100644
--- a/doc/librpm.doxy.in
+++ b/doc/librpm.doxy.in
@@ -1,1255 +1,2333 @@
-# Doxyfile 1.5.2
+# Doxyfile 1.8.8
# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
+# doxygen (www.doxygen.org) for a project.
#
-# All text after a hash (#) is considered a comment and will be ignored
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
-# This tag specifies the encoding used for all characters in the config file that
-# follow. The default is UTF-8 which is also the encoding used for all text before
-# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
-# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
-# possible encodings.
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
PROJECT_NAME = @PACKAGE@
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
PROJECT_NUMBER = @VERSION@
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
+# the documentation. The maximum height of the logo should not exceed 55 pixels
+# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
+# to the output directory.
+
+PROJECT_LOGO =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
OUTPUT_DIRECTORY = doc/librpm
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
CREATE_SUBDIRS = NO
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
-# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
OUTPUT_LANGUAGE = English
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
+# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
BRIEF_MEMBER_DESC = YES
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
+# The default value is: YES.
REPEAT_BRIEF = YES
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
-ABBREVIATE_BRIEF =
+ABBREVIATE_BRIEF =
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
# description.
+# The default value is: NO.
ALWAYS_DETAILED_SEC = NO
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
+# The default value is: NO.
INLINE_INHERITED_MEMB = NO
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
+# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
-# FULL_PATH_NAMES = YES
-FULL_PATH_NAMES = NO
+FULL_PATH_NAMES = NO
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
-# STRIP_FROM_PATH = @top_srcdir@/
STRIP_FROM_PATH =
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
-STRIP_FROM_INC_PATH =
+STRIP_FROM_INC_PATH =
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
SHORT_NAMES = NO
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
JAVADOC_AUTOBRIEF = YES
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
MULTILINE_CPP_IS_BRIEF = NO
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
INHERIT_DOCS = YES
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
+# new page for each member. If set to NO, the documentation of a member will be
+# part of the file/class/namespace that contains it.
+# The default value is: NO.
SEPARATE_MEMBER_PAGES = NO
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
TAB_SIZE = 8
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
-ALIASES =
+TCL_SUBST =
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
OPTIMIZE_OUTPUT_FOR_C = YES
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
OPTIMIZE_OUTPUT_JAVA = NO
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
-# include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
BUILTIN_STL_SUPPORT = NO
# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
+# The default value is: NO.
CPP_CLI_SUPPORT = NO
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
+# The default value is: NO.
DISTRIBUTE_GROUP_DOC = NO
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
SUBGROUPING = YES
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
EXTRACT_ALL = YES
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
EXTRACT_PRIVATE = NO
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
EXTRACT_STATIC = YES
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
EXTRACT_LOCAL_CLASSES = YES
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
+# This flag is only useful for Objective-C code. When set to YES local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO only methods in the interface are
+# included.
+# The default value is: NO.
EXTRACT_LOCAL_METHODS = NO
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
HIDE_UNDOC_MEMBERS = NO
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO these classes will be included in the various overviews. This option has
+# no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
HIDE_UNDOC_CLASSES = NO
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO these declarations will be
+# included in the documentation.
+# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
HIDE_IN_BODY_DOCS = NO
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
INTERNAL_DOCS = YES
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
CASE_SENSE_NAMES = YES
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES the
+# scope will be hidden.
+# The default value is: NO.
HIDE_SCOPE_NAMES = NO
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
SHOW_INCLUDE_FILES = YES
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
INLINE_INFO = YES
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order.
+# The default value is: YES.
SORT_MEMBER_DOCS = YES
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
SORT_BRIEF_DOCS = NO
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
SORT_BY_SCOPE_NAME = NO
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
+# todo list. This list is created by putting \todo commands in the
+# documentation.
+# The default value is: YES.
GENERATE_TODOLIST = YES
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
+# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
+# test list. This list is created by putting \test commands in the
+# documentation.
+# The default value is: YES.
GENERATE_TESTLIST = YES
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
+# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
GENERATE_BUGLIST = YES
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
+# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
GENERATE_DEPRECATEDLIST= YES
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
-ENABLED_SECTIONS =
+ENABLED_SECTIONS =
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
MAX_INITIALIZER_LINES = 30
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES the list
+# will mention the files that were used to generate the documentation.
+# The default value is: YES.
SHOW_USED_FILES = YES
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES = YES
-SHOW_DIRECTORIES = NO
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
+SHOW_NAMESPACES = YES
-FILE_VERSION_FILTER =
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
+# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
QUIET = NO
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
WARNINGS = YES
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
+# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
WARN_IF_UNDOCUMENTED = YES
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
WARN_IF_DOC_ERROR = YES
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO doxygen will only warn about wrong or incomplete parameter
+# documentation, but not about the absence of documentation.
+# The default value is: NO.
WARN_NO_PARAMDOC = NO
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
WARN_FORMAT = "$file:$line: $text"
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
-WARN_LOGFILE =
+WARN_LOGFILE =
#---------------------------------------------------------------------------
-# configuration options related to the input files
+# Configuration options related to the input files
#---------------------------------------------------------------------------
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces.
+# Note: If this tag is empty the current directory is searched.
-INPUT = \
- @top_srcdir@/doc/librpm/Doxyheader \
- @pkginclude_HEADERS@
+INPUT = @top_srcdir@/doc/librpm/Doxyheader \
+ @pkginclude_HEADERS@
-# This tag can be used to specify the character encoding of the source files that
-# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
-# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
-# See http://www.gnu.org/software/libiconv for the list of possible encodings.
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank the
+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+# *.qsf, *.as and *.js.
FILE_PATTERNS = *.c \
*.h
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
RECURSIVE = NO
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
-EXCLUDE =
+EXCLUDE =
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.
+# The default value is: NO.
EXCLUDE_SYMLINKS = NO
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
-EXCLUDE_PATTERNS =
+EXCLUDE_PATTERNS =
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the output.
-# The symbol name can be a fully qualified name, a word, or if the wildcard * is used,
-# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
-EXCLUDE_SYMBOLS =
+EXCLUDE_SYMBOLS =
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
EXAMPLE_PATH = @top_srcdir@/doc/manual
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
-EXAMPLE_PATTERNS =
+EXAMPLE_PATTERNS =
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
EXAMPLE_RECURSIVE = NO
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
-IMAGE_PATH =
+IMAGE_PATH =
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
-INPUT_FILTER =
+INPUT_FILTER =
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
-FILTER_PATTERNS =
+FILTER_PATTERNS =
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER ) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
FILTER_SOURCE_FILES = NO
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
#---------------------------------------------------------------------------
-# configuration options related to source browsing
+# Configuration options related to source browsing
#---------------------------------------------------------------------------
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
SOURCE_BROWSER = YES
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
INLINE_SOURCES = NO
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
STRIP_CODE_COMMENTS = YES
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
REFERENCED_BY_RELATION = YES
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
REFERENCES_RELATION = YES
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code. Otherwise they will link to the documentstion.
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
REFERENCES_LINK_SOURCE = YES
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
USE_HTAGS = NO
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
+# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
ALPHABETICAL_INDEX = NO
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 5
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-IGNORE_PREFIX =
+IGNORE_PREFIX =
#---------------------------------------------------------------------------
-# configuration options related to the HTML output
+# Configuration options related to the HTML output
#---------------------------------------------------------------------------
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
+# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
+# The default value is: NO.
GENERATE_HTML = YES
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_OUTPUT = html
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FILE_EXTENSION = .html
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefor more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra stylesheet files is of importance (e.g. the last
+# stylesheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the stylesheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_HEADER =
+GENERATE_HTMLHELP = NO
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-HTML_FOOTER =
+CHM_FILE =
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler ( hhc.exe). If non-empty
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-HTML_STYLESHEET =
+HHC_LOCATION =
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
+# The GENERATE_CHI flag controls if a separate .chi index file is generated (
+# YES) or that it should be included in the master .chm file ( NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-HTML_ALIGN_MEMBERS = YES
+GENERATE_CHI = NO
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-GENERATE_HTMLHELP = NO
+CHM_INDEX_ENCODING =
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
+# The BINARY_TOC flag controls whether a binary table of contents is generated (
+# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-CHM_FILE =
+BINARY_TOC = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-HHC_LOCATION =
+TOC_EXPAND = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-GENERATE_CHI = NO
+DISABLE_INDEX = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-BINARY_TOC = NO
+GENERATE_TREEVIEW = NO
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-TOC_EXPAND = NO
+ENUM_VALUES_PER_LINE = 4
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-DISABLE_INDEX = NO
+TREEVIEW_WIDTH = 250
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-ENUM_VALUES_PER_LINE = 4
+EXT_LINKS_IN_WINDOW = NO
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-GENERATE_TREEVIEW = NO
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using prerendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
+SEARCHENGINE = NO
-TREEVIEW_WIDTH = 250
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
+# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
+# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
+# The default value is: YES.
GENERATE_LATEX = NO
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_OUTPUT = latex
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
MAKEINDEX_CMD_NAME = makeindex
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
+# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
COMPACT_LATEX = NO
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
PAPER_TYPE = letter
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. To get the times font for
+# instance you can specify
+# EXTRA_PACKAGES=times
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
+# for the replacement values of the other commands the user is refered to
+# HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
-EXTRA_PACKAGES =
+LATEX_FOOTER =
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
-LATEX_HEADER =
+LATEX_EXTRA_FILES =
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
PDF_HYPERLINKS = NO
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES to get a
# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
USE_PDFLATEX = NO
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BATCHMODE = NO
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HIDE_INDICES = NO
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE = plain
+
#---------------------------------------------------------------------------
-# configuration options related to the RTF output
+# Configuration options related to the RTF output
#---------------------------------------------------------------------------
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
+# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
GENERATE_RTF = NO
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_OUTPUT = rtf
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
+# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
COMPACT_RTF = NO
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_HYPERLINKS = NO
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
-RTF_STYLESHEET_FILE =
+RTF_STYLESHEET_FILE =
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
-RTF_EXTENSIONS_FILE =
+RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
-# configuration options related to the man page output
+# Configuration options related to the man page output
#---------------------------------------------------------------------------
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
+# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
GENERATE_MAN = NO
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_OUTPUT = man
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_EXTENSION = .3
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_LINKS = NO
#---------------------------------------------------------------------------
-# configuration options related to the XML output
+# Configuration options related to the XML output
#---------------------------------------------------------------------------
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
+# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
GENERATE_XML = NO
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
XML_OUTPUT = xml
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
+# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
-XML_SCHEMA =
+XML_PROGRAMLISTING = YES
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
-XML_DTD =
+# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
+GENERATE_DOCBOOK = NO
-XML_PROGRAMLISTING = YES
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
+# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
+# Definitions (see http://autogen.sf.net) file that captures the structure of
+# the code including all documentation. Note that this feature is still
+# experimental and incomplete at the moment.
+# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
+# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
+# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
GENERATE_PERLMOD = NO
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
+# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_LATEX = NO
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_PRETTY = YES
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-PERLMOD_MAKEVAR_PREFIX =
+PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
+# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
+# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
ENABLE_PREPROCESSING = YES
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
+# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
+# in the source code. If set to NO only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
MACRO_EXPANSION = YES
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
EXPAND_ONLY_PREDEF = NO
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
+# If the SEARCH_INCLUDES tag is set to YES the includes files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
SEARCH_INCLUDES = YES
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
-INCLUDE_PATH =
+INCLUDE_PATH =
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-INCLUDE_FILE_PATTERNS =
+INCLUDE_FILE_PATTERNS =
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-PREDEFINED =
+PREDEFINED =
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-EXPAND_AS_DEFINED =
+EXPAND_AS_DEFINED =
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
-# Configuration::additions related to external references
+# Configuration options related to external references
#---------------------------------------------------------------------------
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
GENERATE_TAGFILE = Doxytags
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
+# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
+# class index. If set to NO only the inherited external classes will be listed.
+# The default value is: NO.
ALLEXTERNALS = NO
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
+# the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
EXTERNAL_GROUPS = YES
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
+# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
+# Configuration options related to the dot tool
#---------------------------------------------------------------------------
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
+# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
# powerful graphs.
+# The default value is: YES.
CLASS_DIAGRAMS = YES
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to
-# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to
-# specify the directory where the mscgen tool resides. If left empty the tool is assumed to
-# be found in the default search path.
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
-MSCGEN_PATH =
+DIA_PATH =
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
+# If set to YES, the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
HIDE_UNDOC_RELATIONS = YES
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
HAVE_DOT = @HAVE_DOT@
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
CLASS_GRAPH = YES
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
COLLABORATION_GRAPH = YES
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
GROUP_GRAPHS = YES
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
UML_LOOK = NO
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
TEMPLATE_RELATIONS = YES
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
INCLUDE_GRAPH = YES
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
INCLUDED_BY_GRAPH = YES
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
# functions only using the \callgraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
CALL_GRAPH = NO
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a caller dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
# functions only using the \callergraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
CALLER_GRAPH = NO
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
GRAPHICAL_HIERARCHY = YES
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
DIRECTORY_GRAPH = YES
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot.
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif and svg.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_IMAGE_FORMAT = png
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
-DOT_PATH =
+MSCFILE_DIRS =
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
-DOTFILE_DIRS =
+DIAFILE_DIRS =
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen will always
-# show the root nodes and its direct children regardless of this setting.
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+PLANTUML_JAR_PATH =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_GRAPH_MAX_NODES = 50
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_TRANSPARENT = NO
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_MULTI_TARGETS = NO
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
GENERATE_LEGEND = YES
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
+# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
diff --git a/doc/rpm.8 b/doc/rpm.8
index e5830095..887ff222 100644
--- a/doc/rpm.8
+++ b/doc/rpm.8
@@ -58,16 +58,20 @@ rpm \- RPM Package Manager
[\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]
+ [\fB--whatrecommends \fICAPABILITY\fB\fR] [\fB--whatsuggests \fICAPABILITY\fB\fR]
+ [\fB--whatsupplements \fICAPABILITY\fB\fR] [\fB--whatenhances \fICAPABILITY\fB\fR]
.SS "query-options"
.PP
[\fB--changelog\fR] [\fB-c,--configfiles\fR] [\fB--conflicts\fR]
- [\fB-d,--docfiles\fR] [\fB--dump\fR] [\fB--filesbypkg\fR] [\fB-i,--info\fR]
- [\fB--last\fR] [\fB-l,--list\fR] [\fB--obsoletes\fR] [\fB--provides\fR]
- [\fB--qf,--queryformat \fIQUERYFMT\fB\fR] [\fB-R,--requires\fR]
- [\fB--scripts\fR] [\fB-s,--state\fR] [\fB--triggers,--triggerscripts\fR]
+ [\fB-d,--docfiles\fR] [\fB--dump\fR] [\fB--enhances\fR] [\fB--filesbypkg\fR]
+ [\fB-i,--info\fR] [\fB--last\fR] [\fB-l,--list\fR] [\fB--obsoletes\fR]
+ [\fB--provides\fR] [\fB--qf,--queryformat \fIQUERYFMT\fB\fR]
+ [\fB--recommends\fR] [\fB-R,--requires\fR] [\fB--suggests\fR]
+ [\fB--supplements\fR] [\fB--scripts\fR] [\fB-s,--state\fR]
+ [\fB--triggers,--triggerscripts\fR]
.SS "verify-options"
.PP
@@ -588,6 +592,18 @@ Query all packages that provide the \fICAPABILITY\fR capability.
.TP
\fB--whatrequires \fICAPABILITY\fB\fR
Query all packages that require \fICAPABILITY\fR for proper functioning.
+.TP
+\fB--whatrecommends \fICAPABILITY\fB\fR
+Query all packages that recommend \fICAPABILITY\fR.
+.TP
+\fB--whatsuggests \fICAPABILITY\fB\fR
+Query all packages that suggest \fICAPABILITY\fR.
+.TP
+\fB--whatsupplements \fICAPABILITY\fB\fR
+Query all packages that supplement \fICAPABILITY\fR.
+.TP
+\fB--whatenhances \fICAPABILITY\fB\fR
+Query all packages that enhance \fICAPABILITY\fR.
.SS "PACKAGE QUERY OPTIONS:"
.PP
.TP
@@ -614,6 +630,9 @@ path size mtime digest mode owner group isconfig isdoc rdev symlink
.fi
.RE
.TP
+\fB--enhances\fR
+List capabilities enhanced by package(s)
+.TP
\fB--filesbypkg\fR
List all the files in each selected package.
.TP
@@ -637,9 +656,18 @@ List packages this package obsoletes.
\fB--provides\fR
List capabilities this package provides.
.TP
+\fB--recommends\fR
+List capabilities recommended by package(s)
+.TP
\fB-R, --requires\fR
List capabilities on which this package depends.
.TP
+\fB--suggests\fR
+List capabilities suggested by package(s)
+.TP
+\fB--supplements\fR
+List capabilities supplemented by package(s)
+.TP
\fB--scripts\fR
List the package specific scriptlet(s) that are used as part
of the installation and uninstallation processes.
@@ -757,7 +785,12 @@ configuration file(s).
sets permissions of files in the given package.
.TP
\fBrpm\fR \fB--setugids\fR \fIPACKAGE_NAME\fR
-sets user/group ownership of files in the given package.
+sets user/group ownership of files in the given package. This command can
+change permissions of files in that package. It is caused by calling command
+\fBchmod\fR that can clear SUID and SGID bits in some situations. So it is
+safer to call also \fB--setperms\fR after calling \fB--setugids\fR.
+.TP
+Options \fB--setperms\fR and \fB--setugids\fR are mutually exclusive.
.SS "FTP/HTTP OPTIONS"
.PP
diff --git a/doc/rpmbuild.8 b/doc/rpmbuild.8
index fca42501..f639008b 100644
--- a/doc/rpmbuild.8
+++ b/doc/rpmbuild.8
@@ -14,6 +14,8 @@ rpmbuild \- Build RPM Package(s)
\fBrpmbuild\fR {\fB-ba|-bb|-bp|-bc|-bi|-bl|-bs\fR} [\fBrpmbuild-options\fR] \fB\fISPECFILE\fB\fR\fI ...\fR
+\fBrpmbuild\fR {\fB-ra|-rb|-rp|-rc|-ri|-rl|-rs\fR} [\fBrpmbuild-options\fR] \fB\fISOURCEPACKAGE\fB\fR\fI ...\fR
+
\fBrpmbuild\fR {\fB-ta|-tb|-tp|-tc|-ti|-tl|-ts\fR} [\fBrpmbuild-options\fR] \fB\fITARBALL\fB\fR\fI ...\fR
@@ -32,9 +34,10 @@ rpmbuild \- Build RPM Package(s)
[\fB--buildroot \fIDIRECTORY\fB\fR] [\fB--clean\fR] [\fB--nobuild\fR]
- [\fB--rmsource\fR] [\fB--rmspec\fR] [\fB--short-circuit\fR]
- [\fB--noclean\fR] [\fB--nocheck\fR]
+ [\fB--rmsource\fR] [\fB--rmspec\fR] [\fB--short-circuit\fR] [\fB--build-in-place\fR]
+ [\fB--noprep\fR] [\fB--noclean\fR] [\fB--nocheck\fR]
[\fB--target \fIPLATFORM\fB\fR]
+ [\fB--with \fIOPTION\fB\fR] [\fB--without \fIOPTION\fB\fR]
.SH "DESCRIPTION"
.PP
@@ -109,12 +112,13 @@ Defines \fIMACRO\fR with value \fIEXPR\fR.
The general form of an rpm build command is
.PP
-\fBrpmbuild\fR \fB-b\fISTAGE\fB|-t\fISTAGE\fB\fR [ \fB rpmbuild-options
+\fBrpmbuild\fR \fB-b\fISTAGE\fB|-r\fISTAGE\fB|-t\fISTAGE\fB\fR [ \fB rpmbuild-options
\fR ] \fB\fIFILE\fB\fR\fI ...\fR
.PP
The argument used is \fB-b\fR if a spec file is being
-used to build the package and \fB-t\fR if \fBrpmbuild\fR
+used to build the package, \fB-r\fR if a source package is to be rebuild
+and \fB-t\fR if \fBrpmbuild\fR
should look inside of a (possibly compressed) tar file for
the spec file to use. After the first argument, the next
character (\fISTAGE\fR) specifies the stages
@@ -161,6 +165,9 @@ Remove the build tree after the packages are made.
\fB--nobuild\fR
Do not execute any build stages. Useful for testing out spec files.
.TP
+\fB--noprep\fR
+Do not execute %prep build stage even if present in spec.
+.TP
\fB--noclean\fR
Do not execute %clean build stage even if present in spec.
.TP
@@ -185,6 +192,11 @@ and \fB-bb\fR. Useful for local testing only. Packages built this
way will be marked with an unsatisfiable dependency to prevent
their accidental use.
.TP
+\fB--build-in-place\fR
+Build from locally checked out sources. Sets _builddir to current working
+directory. Skips handling of -n and untar in the %setup and the deletion of
+the buildSubdir.
+.TP
\fB--target \fIPLATFORM\fB\fR
When building the package, interpret \fIPLATFORM\fR
as \fBarch-vendor-os\fR and set the macros
@@ -192,6 +204,12 @@ as \fBarch-vendor-os\fR and set the macros
\fB%_target_cpu\fR, and
\fB%_target_os\fR
accordingly.
+.TP
+\fB--with \fIOPTION\fB\fR
+Enable configure \fIOPTION\fR for build.
+.TP
+\fB--without \fIOPTION\fB\fR
+Disable configure \fIOPTION\fR for build.
.SS "REBUILD AND RECOMPILE OPTIONS"
.PP
There are two other ways to invoke building with rpm:
@@ -206,6 +224,8 @@ package, and does a prep, compile and install. In addition,
has completed, the build directory is removed (as in
\fB--clean\fR) and the the sources and spec file for
the package are removed.
+
+These options are noaways superseded by the \fB-r*\fR options which allow more more fine control over what stages of the build to run.
.SS "SHOWRC"
.PP
The command
diff --git a/doc/rpmsign.8 b/doc/rpmsign.8
index 53f2d70b..80ffb6a3 100644
--- a/doc/rpmsign.8
+++ b/doc/rpmsign.8
@@ -2,11 +2,17 @@
.SH NAME
rpmsign \- RPM Package Signing
.SH SYNOPSIS
+.SS "SIGNING PACKAGES:"
+.PP
-\fBrpm\fR \fB--addsign|--resign\fR \fB\fIPACKAGE_FILE\fB\fR\fI ...\fR
+\fBrpm\fR \fB--addsign|--resign\fR [\fBrpmsign-options\fR] \fB\fIPACKAGE_FILE\fB\fR\fI ...\fR
\fBrpm\fR \fB--delsign\fR \fB\fIPACKAGE_FILE\fB\fR\fI ...\fR
+.SS "rpmsign-options"
+.PP
+[\fb--fskpath \fIKEY\fb\fR] [\fB--signfiles\fR]
+
.SH DESCRIPTION
.PP
Both of the \fB--addsign\fR and \fB--resign\fR
@@ -20,6 +26,19 @@ there is no difference in behavior currently.
.PP
Delete all signatures from each package \fIPACKAGE_FILE\fR given.
+.SS "SIGN OPTIONS"
+.PP
+.TP
+\fB--fskpath \fIKEY\fB\fR
+Used with \fB--signfiles\fR, use file signing key \fIKey\fR.
+.TP
+\fB--signfiles\fR
+Sign package files. The macro \fB%_binary_filedigest_algorithm\fR must
+be set to a supported algorithm before building the package. The
+supported algorithms are SHA1, SHA256, SHA384, and SHA512, which are
+represented as 2, 8, 9, and 10 respectively. The file signing key (RSA
+private key) must be set before signing the package, it can be configured on the command line with \fB--fskpath\fR or the macro %_file_signing_key.
+
.SS "USING GPG TO SIGN PACKAGES"
.PP
In order to sign packages using GPG, \fBrpm\fR
@@ -52,7 +71,7 @@ using the executable \fI/usr/bin/gpg\fR you would include
in a macro configuration file. Use \fI/etc/rpm/macros\fR
for per-system configuration and \fI~/.rpmmacros\fR
for per-user configuration. Typically it's sufficient to set just %_gpg_name.
-
+.PP
.SH "SEE ALSO"
.nf
\fBpopt\fR(3),
@@ -78,4 +97,5 @@ Marc Ewing <marc@redhat.com>
Jeff Johnson <jbj@redhat.com>
Erik Troan <ewt@redhat.com>
Panu Matilainen <pmatilai@redhat.com>
+Fionnuala Gunter <fin@linux.vnet.ibm.com>
.fi
diff --git a/doc/rpmspec.8 b/doc/rpmspec.8
index a3912375..8a617865 100644
--- a/doc/rpmspec.8
+++ b/doc/rpmspec.8
@@ -11,7 +11,7 @@ rpmspec \- RPM Spec Tool
.PP
[\fB\--rpms\fB\fR]
- [\fB\--srpms\fB\fR]
+ [\fB\--srpm\fB\fR]
.SS "query-options"
.PP
diff --git a/fileattrs/Makefile.in b/fileattrs/Makefile.in
index 049f8d26..894f4951 100644
--- a/fileattrs/Makefile.in
+++ b/fileattrs/Makefile.in
@@ -400,7 +400,7 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
fattrsdir = $(rpmconfigdir)/fileattrs
fattrs_DATA = \
appdata.attr desktop.attr elf.attr font.attr libtool.attr perl.attr \
diff --git a/install-sh b/install-sh
index 377bb868..0b0fdcbb 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2011-11-20.07; # UTC
+scriptversion=2013-12-25.23; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
# This script is compatible with the BSD install script, but was written
# from scratch.
+tab=' '
nl='
'
-IFS=" "" $nl"
+IFS=" $tab$nl"
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
-# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
posix_mkdir=
# Desired mode of installed file.
@@ -97,7 +82,7 @@ dir_arg=
dst_arg=
copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,46 +122,57 @@ while test $# -ne 0; do
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift;;
+ shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift;;
+ shift;;
-s) stripcmd=$stripprog;;
- -t) dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
+ -t)
+ is_target_a_directory=always
+ dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
- -T) no_target_directory=true;;
+ -T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
- break;;
+ --) shift
+ break;;
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
*) break;;
esac
shift
done
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+ if test -n "$dst_arg"; then
+ echo "$0: target directory not allowed when installing a directory." >&2
+ exit 1
+ fi
+fi
+
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
@@ -208,6 +204,15 @@ if test $# -eq 0; then
fi
if test -z "$dir_arg"; then
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
+ if test ! -d "$dst_arg"; then
+ echo "$0: $dst_arg: Is not a directory." >&2
+ exit 1
+ fi
+ fi
+fi
+
+if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
@@ -223,16 +228,16 @@ if test -z "$dir_arg"; then
*[0-7])
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw='% 200'
+ u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw=,u+rw
+ u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
@@ -269,41 +274,15 @@ do
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
- if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
+ if test "$is_target_a_directory" = never; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
+ dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
@@ -314,74 +293,74 @@ do
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
$posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
@@ -391,53 +370,51 @@ do
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
esac
- eval "$initialize_posix_glob"
-
oIFS=$IFS
IFS=/
- $posix_glob set -f
+ set -f
set fnord $dstdir
shift
- $posix_glob set +f
+ set +f
IFS=$oIFS
prefixes=
for d
do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
done
if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
fi
fi
@@ -472,15 +449,12 @@ do
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
+ set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
@@ -493,24 +467,24 @@ do
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
diff --git a/installplatform b/installplatform
index 98b87f37..12339fcf 100755
--- a/installplatform
+++ b/installplatform
@@ -96,6 +96,12 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
CANONARCH=${ARCH}
CANONCOLOR=0
;;
+ armv7h*)
+ ISANAME=armv7hl
+ ISABITS=32
+ CANONARCH=arm
+ CANONCOLOR=0
+ ;;
arm*)
ISANAME=`echo ${ARCH} | sed "s/^\([^-]*\)-.*/\1/"`
ISABITS=32
@@ -114,12 +120,66 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
CANONARCH=aarch64
CANONCOLOR=3
;;
+ mips)
+ ISANAME=mips
+ ISABITS=32
+ CANONARCH=mips
+ CANONCOLOR=0
+ ;;
+ mipsel)
+ ISANAME=mips
+ ISABITS=32
+ CANONARCH=mipsel
+ CANONCOLOR=0
+ ;;
+ mips64)
+ ISANAME=mips
+ ISABITS=64
+ CANONARCH=mips64
+ CANONCOLOR=3
+ ;;
+ mips64el)
+ ISANAME=mips
+ ISABITS=64
+ CANONARCH=mips64el
+ CANONCOLOR=3
+ ;;
+ mipsr6)
+ ISANAME=mipsr6
+ ISABITS=32
+ CANONARCH=mipsr6
+ CANONCOLOR=0
+ ;;
+ mipsr6el)
+ ISANAME=mipsr6
+ ISABITS=32
+ CANONARCH=mipsr6el
+ CANONCOLOR=0
+ ;;
+ mips64r6)
+ ISANAME=mipsr6
+ ISABITS=64
+ CANONARCH=mips64r6
+ CANONCOLOR=3
+ ;;
+ mips64r6el)
+ ISANAME=mipsr6
+ ISABITS=64
+ CANONARCH=mips64r6el
+ CANONCOLOR=3
+ ;;
m68k)
ISANAME=m68k
ISABITS=32
CANONARCH=m68k
CANONCOLOR=0
;;
+ riscv64)
+ ISANAME=riscv
+ ISABITS=64
+ CANONARCH=riscv64
+ CANONCOLOR=3
+ ;;
noarch)
CANONARCH=noarch
CANONCOLOR=0
diff --git a/lib/Makefile.am b/lib/Makefile.am
index a65eb80f..6b9df12a 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -21,7 +21,7 @@ EXTRA_PROGRAMS =
usrlib_LTLIBRARIES = librpm.la
librpm_la_SOURCES = \
- backend/dbconfig.c backend/db3.c backend/dbi.h \
+ backend/db3.c backend/dbi.c backend/dbi.h \
backend/dbiset.c backend/dbiset.h \
headerutil.c header.c headerfmt.c header_internal.h \
rpmdb.c rpmdb_internal.h \
@@ -38,7 +38,8 @@ librpm_la_SOURCES = \
verify.c rpmlock.c rpmlock.h misc.h relocation.c \
rpmscript.h rpmscript.c legacy.c \
rpmchroot.c rpmchroot.h \
- rpmplugins.c rpmplugins.h rpmplugin.h rpmug.c rpmug.h
+ rpmplugins.c rpmplugins.h rpmplugin.h rpmug.c rpmug.h \
+ rpmtriggers.h rpmtriggers.c
librpm_la_LDFLAGS = -version-info $(rpm_version_info)
@@ -49,6 +50,10 @@ librpm_la_LIBADD = \
@WITH_ACL_LIB@ \
@LIBINTL@
+if WITH_IMAEVM
+librpm_la_SOURCES += rpmsignfiles.c rpmsignfiles.h
+endif
+
if WITH_LUA
AM_CPPFLAGS += @LUA_CFLAGS@
librpm_la_LIBADD += @LUA_LIBS@
@@ -61,6 +66,17 @@ else
librpm_la_LIBADD += @WITH_DB_LIB@
endif
+if NDB
+librpm_la_SOURCES += \
+ backend/ndb/glue.c \
+ backend/ndb/rpmpkg.c \
+ backend/ndb/rpmpkg.h \
+ backend/ndb/rpmidx.c \
+ backend/ndb/rpmidx.h \
+ backend/ndb/rpmxdb.c \
+ backend/ndb/rpmxdb.h
+endif
+
tagtbl.C: Makefile.am $(srcdir)/rpmtag.h gentagtbl.sh
@AWK=${AWK} ${SHELL} $(srcdir)/gentagtbl.sh \
$(srcdir)/rpmtag.h > $@.new && \
diff --git a/lib/Makefile.in b/lib/Makefile.in
index f4d6a436..504ddaeb 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -93,12 +93,22 @@ build_triplet = @build@
host_triplet = @host@
check_PROGRAMS =
EXTRA_PROGRAMS =
-@WITH_LUA_TRUE@am__append_1 = @LUA_CFLAGS@
-@WITH_LUA_TRUE@am__append_2 = @LUA_LIBS@
-@WITH_LUA_TRUE@am__append_3 = rpmliblua.c rpmliblua.h
-@WITH_INTERNAL_DB_TRUE@am__append_4 = $(libdb_la)
-@WITH_INTERNAL_DB_FALSE@am__append_5 = @WITH_DB_LIB@
-@WITH_INTERNAL_DB_TRUE@am__append_6 = $(libdb_la)
+@WITH_IMAEVM_TRUE@am__append_1 = rpmsignfiles.c rpmsignfiles.h
+@WITH_LUA_TRUE@am__append_2 = @LUA_CFLAGS@
+@WITH_LUA_TRUE@am__append_3 = @LUA_LIBS@
+@WITH_LUA_TRUE@am__append_4 = rpmliblua.c rpmliblua.h
+@WITH_INTERNAL_DB_TRUE@am__append_5 = $(libdb_la)
+@WITH_INTERNAL_DB_FALSE@am__append_6 = @WITH_DB_LIB@
+@NDB_TRUE@am__append_7 = \
+@NDB_TRUE@ backend/ndb/glue.c \
+@NDB_TRUE@ backend/ndb/rpmpkg.c \
+@NDB_TRUE@ backend/ndb/rpmpkg.h \
+@NDB_TRUE@ backend/ndb/rpmidx.c \
+@NDB_TRUE@ backend/ndb/rpmidx.h \
+@NDB_TRUE@ backend/ndb/rpmxdb.c \
+@NDB_TRUE@ backend/ndb/rpmxdb.h
+
+@WITH_INTERNAL_DB_TRUE@am__append_8 = $(libdb_la)
@WITH_INTERNAL_DB_TRUE@rpmlibexec_PROGRAMS = rpmdb_dump$(EXEEXT) \
@WITH_INTERNAL_DB_TRUE@ rpmdb_load$(EXEEXT) \
@WITH_INTERNAL_DB_TRUE@ rpmdb_recover$(EXEEXT) \
@@ -154,34 +164,39 @@ am__installdirs = "$(DESTDIR)$(usrlibdir)" \
LTLIBRARIES = $(usrlib_LTLIBRARIES)
am__DEPENDENCIES_1 =
librpm_la_DEPENDENCIES = $(top_builddir)/rpmio/librpmio.la \
- $(am__DEPENDENCIES_1) $(am__append_4) $(am__DEPENDENCIES_1)
-am__librpm_la_SOURCES_DIST = backend/dbconfig.c backend/db3.c \
- backend/dbi.h backend/dbiset.c backend/dbiset.h headerutil.c \
- header.c headerfmt.c header_internal.h rpmdb.c \
- rpmdb_internal.h fprint.c fprint.h tagname.c rpmtd.c cpio.c \
- cpio.h depends.c order.c formats.c tagexts.c fsm.c fsm.h \
- manifest.c manifest.h package.c poptALL.c poptI.c poptQV.c \
- psm.c query.c rpmal.c rpmal.h rpmchecksig.c rpmds.c \
- rpmds_internal.h rpmfi.c rpmfi_internal.h rpmgi.h rpmgi.c \
- rpminstall.c rpmts_internal.h rpmlead.c rpmlead.h rpmps.c \
- rpmprob.c rpmrc.c rpmte.c rpmte_internal.h rpmts.c rpmfs.h \
- rpmfs.c rpmvercmp.c signature.c signature.h transaction.c \
- verify.c rpmlock.c rpmlock.h misc.h relocation.c rpmscript.h \
- rpmscript.c legacy.c rpmchroot.c rpmchroot.h rpmplugins.c \
- rpmplugins.h rpmplugin.h rpmug.c rpmug.h rpmliblua.c \
- rpmliblua.h
+ $(am__DEPENDENCIES_1) $(am__append_5) $(am__DEPENDENCIES_1)
+am__librpm_la_SOURCES_DIST = backend/db3.c backend/dbi.c backend/dbi.h \
+ backend/dbiset.c backend/dbiset.h headerutil.c header.c \
+ headerfmt.c header_internal.h rpmdb.c rpmdb_internal.h \
+ fprint.c fprint.h tagname.c rpmtd.c cpio.c cpio.h depends.c \
+ order.c formats.c tagexts.c fsm.c fsm.h manifest.c manifest.h \
+ package.c poptALL.c poptI.c poptQV.c psm.c query.c rpmal.c \
+ rpmal.h rpmchecksig.c rpmds.c rpmds_internal.h rpmfi.c \
+ rpmfi_internal.h rpmgi.h rpmgi.c rpminstall.c rpmts_internal.h \
+ rpmlead.c rpmlead.h rpmps.c rpmprob.c rpmrc.c rpmte.c \
+ rpmte_internal.h rpmts.c rpmfs.h rpmfs.c rpmvercmp.c \
+ signature.c signature.h transaction.c verify.c rpmlock.c \
+ rpmlock.h misc.h relocation.c rpmscript.h rpmscript.c legacy.c \
+ rpmchroot.c rpmchroot.h rpmplugins.c rpmplugins.h rpmplugin.h \
+ rpmug.c rpmug.h rpmtriggers.h rpmtriggers.c rpmsignfiles.c \
+ rpmsignfiles.h rpmliblua.c rpmliblua.h backend/ndb/glue.c \
+ backend/ndb/rpmpkg.c backend/ndb/rpmpkg.h backend/ndb/rpmidx.c \
+ backend/ndb/rpmidx.h backend/ndb/rpmxdb.c backend/ndb/rpmxdb.h
am__dirstamp = $(am__leading_dot)dirstamp
-@WITH_LUA_TRUE@am__objects_1 = rpmliblua.lo
-am_librpm_la_OBJECTS = backend/dbconfig.lo backend/db3.lo \
- backend/dbiset.lo headerutil.lo header.lo headerfmt.lo \
- rpmdb.lo fprint.lo tagname.lo rpmtd.lo cpio.lo depends.lo \
- order.lo formats.lo tagexts.lo fsm.lo manifest.lo package.lo \
- poptALL.lo poptI.lo poptQV.lo psm.lo query.lo rpmal.lo \
- rpmchecksig.lo rpmds.lo rpmfi.lo rpmgi.lo rpminstall.lo \
- rpmlead.lo rpmps.lo rpmprob.lo rpmrc.lo rpmte.lo rpmts.lo \
- rpmfs.lo rpmvercmp.lo signature.lo transaction.lo verify.lo \
- rpmlock.lo relocation.lo rpmscript.lo legacy.lo rpmchroot.lo \
- rpmplugins.lo rpmug.lo $(am__objects_1)
+@WITH_IMAEVM_TRUE@am__objects_1 = rpmsignfiles.lo
+@WITH_LUA_TRUE@am__objects_2 = rpmliblua.lo
+@NDB_TRUE@am__objects_3 = backend/ndb/glue.lo backend/ndb/rpmpkg.lo \
+@NDB_TRUE@ backend/ndb/rpmidx.lo backend/ndb/rpmxdb.lo
+am_librpm_la_OBJECTS = backend/db3.lo backend/dbi.lo backend/dbiset.lo \
+ headerutil.lo header.lo headerfmt.lo rpmdb.lo fprint.lo \
+ tagname.lo rpmtd.lo cpio.lo depends.lo order.lo formats.lo \
+ tagexts.lo fsm.lo manifest.lo package.lo poptALL.lo poptI.lo \
+ poptQV.lo psm.lo query.lo rpmal.lo rpmchecksig.lo rpmds.lo \
+ rpmfi.lo rpmgi.lo rpminstall.lo rpmlead.lo rpmps.lo rpmprob.lo \
+ rpmrc.lo rpmte.lo rpmts.lo rpmfs.lo rpmvercmp.lo signature.lo \
+ transaction.lo verify.lo rpmlock.lo relocation.lo rpmscript.lo \
+ legacy.lo rpmchroot.lo rpmplugins.lo rpmug.lo rpmtriggers.lo \
+ $(am__objects_1) $(am__objects_2) $(am__objects_3)
librpm_la_OBJECTS = $(am_librpm_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -543,7 +558,7 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \
-I$(top_builddir)/include/ @WITH_NSS_INCLUDE@ \
@WITH_POPT_INCLUDE@ -I$(top_srcdir)/misc \
@@ -551,12 +566,12 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \
-DSYSCONFDIR="\"$(sysconfdir)\"" \
-DLOCALSTATEDIR="\"$(localstatedir)\"" \
-DLIBRPMALIAS_FILENAME="\"rpmpopt-${VERSION}\"" \
- -DLIBRPMALIAS_EXECPATH="\"$(bindir)\"" $(am__append_1)
+ -DLIBRPMALIAS_EXECPATH="\"$(bindir)\"" $(am__append_2)
usrlibdir = $(libdir)
-CLEANFILES = $(am__append_6) $(BUILT_SOURCES)
+CLEANFILES = $(am__append_8) $(BUILT_SOURCES)
EXTRA_DIST = gentagtbl.sh tagtbl.C rpmhash.C rpmhash.H
usrlib_LTLIBRARIES = librpm.la
-librpm_la_SOURCES = backend/dbconfig.c backend/db3.c backend/dbi.h \
+librpm_la_SOURCES = backend/db3.c backend/dbi.c backend/dbi.h \
backend/dbiset.c backend/dbiset.h headerutil.c header.c \
headerfmt.c header_internal.h rpmdb.c rpmdb_internal.h \
fprint.c fprint.h tagname.c rpmtd.c cpio.c cpio.h depends.c \
@@ -569,11 +584,12 @@ librpm_la_SOURCES = backend/dbconfig.c backend/db3.c backend/dbi.h \
signature.c signature.h transaction.c verify.c rpmlock.c \
rpmlock.h misc.h relocation.c rpmscript.h rpmscript.c legacy.c \
rpmchroot.c rpmchroot.h rpmplugins.c rpmplugins.h rpmplugin.h \
- rpmug.c rpmug.h $(am__append_3)
+ rpmug.c rpmug.h rpmtriggers.h rpmtriggers.c $(am__append_1) \
+ $(am__append_4) $(am__append_7)
librpm_la_LDFLAGS = -version-info $(rpm_version_info)
librpm_la_LIBADD = $(top_builddir)/rpmio/librpmio.la @WITH_POPT_LIB@ \
- @WITH_CAP_LIB@ @WITH_ACL_LIB@ @LIBINTL@ $(am__append_2) \
- $(am__append_4) $(am__append_5)
+ @WITH_CAP_LIB@ @WITH_ACL_LIB@ @LIBINTL@ $(am__append_3) \
+ $(am__append_5) $(am__append_6)
BUILT_SOURCES = tagtbl.C
# XXX watchout, $(top_builddir)/db3/libdb.la created by this Makefile may surprise
@@ -701,12 +717,26 @@ backend/$(am__dirstamp):
backend/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) backend/$(DEPDIR)
@: > backend/$(DEPDIR)/$(am__dirstamp)
-backend/dbconfig.lo: backend/$(am__dirstamp) \
- backend/$(DEPDIR)/$(am__dirstamp)
backend/db3.lo: backend/$(am__dirstamp) \
backend/$(DEPDIR)/$(am__dirstamp)
+backend/dbi.lo: backend/$(am__dirstamp) \
+ backend/$(DEPDIR)/$(am__dirstamp)
backend/dbiset.lo: backend/$(am__dirstamp) \
backend/$(DEPDIR)/$(am__dirstamp)
+backend/ndb/$(am__dirstamp):
+ @$(MKDIR_P) backend/ndb
+ @: > backend/ndb/$(am__dirstamp)
+backend/ndb/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) backend/ndb/$(DEPDIR)
+ @: > backend/ndb/$(DEPDIR)/$(am__dirstamp)
+backend/ndb/glue.lo: backend/ndb/$(am__dirstamp) \
+ backend/ndb/$(DEPDIR)/$(am__dirstamp)
+backend/ndb/rpmpkg.lo: backend/ndb/$(am__dirstamp) \
+ backend/ndb/$(DEPDIR)/$(am__dirstamp)
+backend/ndb/rpmidx.lo: backend/ndb/$(am__dirstamp) \
+ backend/ndb/$(DEPDIR)/$(am__dirstamp)
+backend/ndb/rpmxdb.lo: backend/ndb/$(am__dirstamp) \
+ backend/ndb/$(DEPDIR)/$(am__dirstamp)
librpm.la: $(librpm_la_OBJECTS) $(librpm_la_DEPENDENCIES) $(EXTRA_librpm_la_DEPENDENCIES)
$(AM_V_CCLD)$(librpm_la_LINK) -rpath $(usrlibdir) $(librpm_la_OBJECTS) $(librpm_la_LIBADD) $(LIBS)
@@ -797,6 +827,8 @@ mostlyclean-compile:
-rm -f *.$(OBJEXT)
-rm -f backend/*.$(OBJEXT)
-rm -f backend/*.lo
+ -rm -f backend/ndb/*.$(OBJEXT)
+ -rm -f backend/ndb/*.lo
distclean-compile:
-rm -f *.tab.c
@@ -836,8 +868,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmps.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmrc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmscript.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmsignfiles.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmtd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmte.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmtriggers.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmts.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmug.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmvercmp.Plo@am__quote@
@@ -847,8 +881,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transaction.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verify.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@backend/$(DEPDIR)/db3.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@backend/$(DEPDIR)/dbconfig.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@backend/$(DEPDIR)/dbi.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@backend/$(DEPDIR)/dbiset.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@backend/ndb/$(DEPDIR)/glue.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@backend/ndb/$(DEPDIR)/rpmidx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@backend/ndb/$(DEPDIR)/rpmpkg.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@backend/ndb/$(DEPDIR)/rpmxdb.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -880,6 +918,7 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-rm -rf backend/.libs backend/_libs
+ -rm -rf backend/ndb/.libs backend/ndb/_libs
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -1002,6 +1041,8 @@ distclean-generic:
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-rm -f backend/$(DEPDIR)/$(am__dirstamp)
-rm -f backend/$(am__dirstamp)
+ -rm -f backend/ndb/$(DEPDIR)/$(am__dirstamp)
+ -rm -f backend/ndb/$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -1014,7 +1055,7 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR) backend/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) backend/$(DEPDIR) backend/ndb/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -1060,7 +1101,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR) backend/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) backend/$(DEPDIR) backend/ndb/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
diff --git a/lib/backend/db3.c b/lib/backend/db3.c
index 01fce277..7f302a71 100644
--- a/lib/backend/db3.c
+++ b/lib/backend/db3.c
@@ -8,6 +8,7 @@ static int _debug = 1; /* XXX if < 0 debugging, > 0 unusual error returns */
#include <errno.h>
#include <sys/wait.h>
+#include <popt.h>
#include <db.h>
#include <rpm/rpmtypes.h>
@@ -29,6 +30,65 @@ struct dbiCursor_s {
DBC *cursor;
};
+static struct dbiConfig_s staticdbicfg;
+static struct dbConfig_s staticcfg;
+
+/** \ingroup dbi
+ */
+static const struct poptOption rdbOptions[] = {
+ /* Environment options */
+
+ { "cdb", 0,POPT_BIT_SET, &staticcfg.db_eflags, DB_INIT_CDB,
+ NULL, NULL },
+ { "lock", 0,POPT_BIT_SET, &staticcfg.db_eflags, DB_INIT_LOCK,
+ NULL, NULL },
+ { "log", 0,POPT_BIT_SET, &staticcfg.db_eflags, DB_INIT_LOG,
+ NULL, NULL },
+ { "txn", 0,POPT_BIT_SET, &staticcfg.db_eflags, DB_INIT_TXN,
+ NULL, NULL },
+ { "recover", 0,POPT_BIT_SET, &staticcfg.db_eflags, DB_RECOVER,
+ NULL, NULL },
+ { "recover_fatal", 0,POPT_BIT_SET, &staticcfg.db_eflags, DB_RECOVER_FATAL,
+ NULL, NULL },
+ { "lockdown", 0,POPT_BIT_SET, &staticcfg.db_eflags, DB_LOCKDOWN,
+ NULL, NULL },
+ { "private", 0,POPT_BIT_SET, &staticcfg.db_eflags, DB_PRIVATE,
+ NULL, NULL },
+
+ { "deadlock", 0,POPT_BIT_SET, &staticcfg.db_verbose, DB_VERB_DEADLOCK,
+ NULL, NULL },
+ { "recovery", 0,POPT_BIT_SET, &staticcfg.db_verbose, DB_VERB_RECOVERY,
+ NULL, NULL },
+ { "waitsfor", 0,POPT_BIT_SET, &staticcfg.db_verbose, DB_VERB_WAITSFOR,
+ NULL, NULL },
+ { "verbose", 0,POPT_ARG_VAL, &staticcfg.db_verbose, -1,
+ NULL, NULL },
+
+ { "cachesize", 0,POPT_ARG_INT, &staticcfg.db_cachesize, 0,
+ NULL, NULL },
+ { "mmapsize", 0,POPT_ARG_INT, &staticcfg.db_mmapsize, 0,
+ NULL, NULL },
+ { "mp_mmapsize", 0,POPT_ARG_INT, &staticcfg.db_mmapsize, 0,
+ NULL, NULL },
+ { "mp_size", 0,POPT_ARG_INT, &staticcfg.db_cachesize, 0,
+ NULL, NULL },
+
+ { "nofsync", 0,POPT_ARG_NONE, &staticcfg.db_no_fsync, 0,
+ NULL, NULL },
+
+ /* Per-dbi options */
+ { "nommap", 0,POPT_BIT_SET, &staticdbicfg.dbi_oflags, DB_NOMMAP,
+ NULL, NULL },
+
+ { "nodbsync", 0,POPT_ARG_NONE, &staticdbicfg.dbi_no_dbsync, 0,
+ NULL, NULL },
+ { "lockdbfd", 0,POPT_ARG_NONE, &staticdbicfg.dbi_lockdbfd, 0,
+ NULL, NULL },
+
+ POPT_TABLEEND
+};
+
+
static int dbapi_err(rpmdb rdb, const char * msg, int error, int printit)
{
if (printit && error) {
@@ -159,6 +219,182 @@ static int isalive(DB_ENV *dbenv, pid_t pid, db_threadid_t tid, uint32_t flags)
return alive;
}
+
+static void dbConfigure(rpmDbiTagVal rpmtag, struct dbConfig_s *cfg, struct dbiConfig_s *dbicfg)
+{
+ char *dbOpts;
+
+ dbOpts = rpmExpand("%{_dbi_config_", rpmTagGetName(rpmtag), "}", NULL);
+
+ if (!(dbOpts && *dbOpts && *dbOpts != '%')) {
+ dbOpts = _free(dbOpts);
+ dbOpts = rpmExpand("%{_dbi_config}", NULL);
+ if (!(dbOpts && *dbOpts && *dbOpts != '%')) {
+ dbOpts = _free(dbOpts);
+ }
+ }
+
+ /* Parse the options for the database element(s). */
+ if (dbOpts && *dbOpts && *dbOpts != '%') {
+ char *o, *oe;
+ char *p, *pe;
+
+ memset(&staticdbicfg, 0, sizeof(staticdbicfg));
+/*=========*/
+ for (o = dbOpts; o && *o; o = oe) {
+ const struct poptOption *opt;
+ const char * tok;
+ unsigned int argInfo;
+
+ /* Skip leading white space. */
+ while (*o && risspace(*o))
+ o++;
+
+ /* Find and terminate next key=value pair. Save next start point. */
+ for (oe = o; oe && *oe; oe++) {
+ if (risspace(*oe))
+ break;
+ if (oe[0] == ':' && !(oe[1] == '/' && oe[2] == '/'))
+ break;
+ }
+ if (oe && *oe)
+ *oe++ = '\0';
+ if (*o == '\0')
+ continue;
+
+ /* Separate key from value, save value start (if any). */
+ for (pe = o; pe && *pe && *pe != '='; pe++)
+ {};
+ p = (pe ? *pe++ = '\0', pe : NULL);
+
+ /* Skip over negation at start of token. */
+ for (tok = o; *tok == '!'; tok++)
+ {};
+
+ /* Find key in option table. */
+ for (opt = rdbOptions; opt->longName != NULL; opt++) {
+ if (!rstreq(tok, opt->longName))
+ continue;
+ break;
+ }
+ if (opt->longName == NULL) {
+ rpmlog(RPMLOG_ERR,
+ _("unrecognized db option: \"%s\" ignored.\n"), o);
+ continue;
+ }
+
+ /* Toggle the flags for negated tokens, if necessary. */
+ argInfo = opt->argInfo;
+ if (argInfo == POPT_BIT_SET && *o == '!' && ((tok - o) % 2))
+ argInfo = POPT_BIT_CLR;
+
+ /* Save value in template as appropriate. */
+ switch (argInfo & POPT_ARG_MASK) {
+
+ case POPT_ARG_NONE:
+ (void) poptSaveInt((int *)opt->arg, argInfo, 1L);
+ break;
+ case POPT_ARG_VAL:
+ (void) poptSaveInt((int *)opt->arg, argInfo, (long)opt->val);
+ break;
+ case POPT_ARG_STRING:
+ { char ** t = opt->arg;
+ if (t) {
+/* FIX: opt->arg annotation in popt.h */
+ *t = _free(*t);
+ *t = xstrdup( (p ? p : "") );
+ }
+ } break;
+
+ case POPT_ARG_INT:
+ case POPT_ARG_LONG:
+ { long aLong = strtol(p, &pe, 0);
+ if (pe) {
+ if (!rstrncasecmp(pe, "Mb", 2))
+ aLong *= 1024 * 1024;
+ else if (!rstrncasecmp(pe, "Kb", 2))
+ aLong *= 1024;
+ else if (*pe != '\0') {
+ rpmlog(RPMLOG_ERR,
+ _("%s has invalid numeric value, skipped\n"),
+ opt->longName);
+ continue;
+ }
+ }
+
+ if ((argInfo & POPT_ARG_MASK) == POPT_ARG_LONG) {
+ if (aLong == LONG_MIN || aLong == LONG_MAX) {
+ rpmlog(RPMLOG_ERR,
+ _("%s has too large or too small long value, skipped\n"),
+ opt->longName);
+ continue;
+ }
+ (void) poptSaveLong((long *)opt->arg, argInfo, aLong);
+ break;
+ } else {
+ if (aLong > INT_MAX || aLong < INT_MIN) {
+ rpmlog(RPMLOG_ERR,
+ _("%s has too large or too small integer value, skipped\n"),
+ opt->longName);
+ continue;
+ }
+ (void) poptSaveInt((int *)opt->arg, argInfo, aLong);
+ }
+ } break;
+ default:
+ break;
+ }
+ }
+/*=========*/
+ }
+
+ dbOpts = _free(dbOpts);
+ if (cfg) {
+ *cfg = staticcfg; /* structure assignment */
+ /* Throw in some defaults if configuration didn't set any */
+ if (!cfg->db_mmapsize)
+ cfg->db_mmapsize = 16 * 1024 * 1024;
+ if (!cfg->db_cachesize)
+ cfg->db_cachesize = 8 * 1024 * 1024;
+ }
+ if (dbicfg) {
+ *dbicfg = staticdbicfg;
+ }
+}
+
+static char * prDbiOpenFlags(int dbflags, int print_dbenv_flags)
+{
+ ARGV_t flags = NULL;
+ const struct poptOption *opt;
+ char *buf;
+
+ for (opt = rdbOptions; opt->longName != NULL; opt++) {
+ if (opt->argInfo != POPT_BIT_SET)
+ continue;
+ if (print_dbenv_flags) {
+ if (!(opt->arg == &staticcfg.db_eflags))
+ continue;
+ } else {
+ if (!(opt->arg == &staticdbicfg.dbi_oflags))
+ continue;
+ }
+ if ((dbflags & opt->val) != opt->val)
+ continue;
+ argvAdd(&flags, opt->longName);
+ dbflags &= ~opt->val;
+ }
+ if (dbflags) {
+ char *df = NULL;
+ rasprintf(&df, "0x%x", (unsigned)dbflags);
+ argvAdd(&flags, df);
+ free(df);
+ }
+ buf = argvJoin(flags, ":");
+ argvFree(flags);
+
+ return buf ? buf : xstrdup("(none)");
+}
+
static int db_init(rpmdb rdb, const char * dbhome)
{
DB_ENV *dbenv = NULL;
@@ -288,7 +524,7 @@ errxit:
return rc;
}
-void dbSetFSync(void *dbenv, int enable)
+static void db3_dbSetFSync(rpmdb rdb, int enable)
{
#ifdef HAVE_FDATASYNC
db_env_set_func_fsync(enable ? fdatasync : fsync_disable);
@@ -297,19 +533,24 @@ void dbSetFSync(void *dbenv, int enable)
#endif
}
+static int db3_Ctrl(rpmdb rdb, dbCtrlOp ctrl)
+{
+ return 0;
+}
+
static int dbiSync(dbiIndex dbi, unsigned int flags)
{
DB * db = dbi->dbi_db;
int rc = 0;
- if (db != NULL && !dbi->dbi_no_dbsync) {
+ if (db != NULL && !dbi->cfg.dbi_no_dbsync) {
rc = db->sync(db, flags);
rc = cvtdberr(dbi, "db->sync", rc, _debug);
}
return rc;
}
-dbiCursor dbiCursorInit(dbiIndex dbi, unsigned int flags)
+static dbiCursor db3_dbiCursorInit(dbiIndex dbi, unsigned int flags)
{
dbiCursor dbc = NULL;
@@ -322,7 +563,7 @@ dbiCursor dbiCursorInit(dbiIndex dbi, unsigned int flags)
/* DB_WRITECURSOR requires CDB and writable db */
if ((flags & DBC_WRITE) &&
- (eflags & DB_INIT_CDB) && !(dbi->dbi_oflags & DB_RDONLY))
+ (eflags & DB_INIT_CDB) && !(dbi->dbi_flags & DBI_RDONLY))
{
cflags = DB_WRITECURSOR;
} else
@@ -357,7 +598,7 @@ dbiCursor dbiCursorInit(dbiIndex dbi, unsigned int flags)
return dbc;
}
-dbiCursor dbiCursorFree(dbiCursor dbc)
+static dbiCursor db3_dbiCursorFree(dbiIndex dbi, dbiCursor dbc)
{
if (dbc) {
/* Automatically sync on write-cursor close */
@@ -447,17 +688,6 @@ static int dbiCursorDel(dbiCursor dbc, DBT * key, DBT * data, unsigned int flags
return rc;
}
-const void * dbiCursorKey(dbiCursor dbc, unsigned int *keylen)
-{
- const void *key = NULL;
- if (dbc) {
- key = dbc->key;
- if (key && keylen)
- *keylen = dbc->keylen;
- }
- return key;
-}
-
static int dbiByteSwapped(dbiIndex dbi)
{
DB * db = dbi->dbi_db;
@@ -475,32 +705,7 @@ static int dbiByteSwapped(dbiIndex dbi)
return rc;
}
-dbiIndexType dbiType(dbiIndex dbi)
-{
- return dbi->dbi_type;
-}
-
-int dbiFlags(dbiIndex dbi)
-{
- DB *db = dbi->dbi_db;
- int flags = DBI_NONE;
- uint32_t oflags = 0;
-
- if (db && db->get_open_flags(db, &oflags) == 0) {
- if (oflags & DB_CREATE)
- flags |= DBI_CREATED;
- if (oflags & DB_RDONLY)
- flags |= DBI_RDONLY;
- }
- return flags;
-}
-
-const char * dbiName(dbiIndex dbi)
-{
- return dbi->dbi_file;
-}
-
-int dbiVerify(dbiIndex dbi, unsigned int flags)
+static int db3_dbiVerify(dbiIndex dbi, unsigned int flags)
{
int rc = 0;
@@ -518,7 +723,7 @@ int dbiVerify(dbiIndex dbi, unsigned int flags)
return rc;
}
-int dbiClose(dbiIndex dbi, unsigned int flags)
+static int db3_dbiClose(dbiIndex dbi, unsigned int flags)
{
rpmdb rdb = dbi->dbi_rpmdb;
const char * dbhome = rpmdbHome(rdb);
@@ -602,7 +807,7 @@ static int dbiFlock(dbiIndex dbi, int mode)
return rc;
}
-int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
+static int db3_dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
{
const char *dbhome = rpmdbHome(rdb);
dbiIndex dbi = NULL;
@@ -618,18 +823,20 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
if (dbip)
*dbip = NULL;
- /*
- * Parse db configuration parameters.
- */
if ((dbi = dbiNew(rdb, rpmtag)) == NULL)
return 1;
- oflags = dbi->dbi_oflags;
+ /*
+ * Parse db configuration parameters.
+ */
+ dbConfigure(rpmtag, rdb->db_dbenv == NULL ? &rdb->cfg : NULL, &dbi->cfg);
/*
* Map open mode flags onto configured database/environment flags.
*/
- if ((rdb->db_mode & O_ACCMODE) == O_RDONLY) oflags |= DB_RDONLY;
+ oflags = dbi->cfg.dbi_oflags;
+ if ((rdb->db_mode & O_ACCMODE) == O_RDONLY)
+ oflags |= DB_RDONLY;
rc = db_init(rdb, dbhome);
@@ -657,7 +864,7 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
if (rc == ENOENT) {
oflags |= DB_CREATE;
oflags &= ~DB_RDONLY;
- dbtype = (dbiType(dbi) == DBI_PRIMARY) ? DB_HASH : DB_BTREE;
+ dbtype = (rpmtag == RPMDBI_PACKAGES) ? DB_HASH : DB_BTREE;
retry_open--;
} else {
retry_open = 0;
@@ -685,9 +892,14 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
}
dbi->dbi_db = db;
- dbi->dbi_oflags = oflags;
- if (!verifyonly && rc == 0 && dbi->dbi_lockdbfd && _lockdbfd++ == 0) {
+ dbi->dbi_flags = 0;
+ if (oflags & DB_CREATE)
+ dbi->dbi_flags |= DBI_CREATED;
+ if (oflags & DB_RDONLY)
+ dbi->dbi_flags |= DBI_RDONLY;
+
+ if (!verifyonly && rc == 0 && dbi->cfg.dbi_lockdbfd && _lockdbfd++ == 0) {
rc = dbiFlock(dbi, rdb->db_mode);
}
@@ -726,7 +938,6 @@ static int dbt2set(dbiIndex dbi, DBT * data, dbiIndexSet * setp)
const char * sdbir;
dbiIndexSet set;
unsigned int i;
- dbiIndexType itype = dbiType(dbi);
if (dbi == NULL || data == NULL || setp == NULL)
return -1;
@@ -736,40 +947,22 @@ static int dbt2set(dbiIndex dbi, DBT * data, dbiIndexSet * setp)
return 0;
}
- set = dbiIndexSetNew(data->size / itype);
- set->count = data->size / itype;
-
- switch (itype) {
- default:
- case DBI_SECONDARY:
- for (i = 0; i < set->count; i++) {
- union _dbswap hdrNum, tagNum;
-
- memcpy(&hdrNum.ui, sdbir, sizeof(hdrNum.ui));
- sdbir += sizeof(hdrNum.ui);
- memcpy(&tagNum.ui, sdbir, sizeof(tagNum.ui));
- sdbir += sizeof(tagNum.ui);
- if (_dbbyteswapped) {
- _DBSWAP(hdrNum);
- _DBSWAP(tagNum);
- }
- set->recs[i].hdrNum = hdrNum.ui;
- set->recs[i].tagNum = tagNum.ui;
- }
- break;
- case DBI_PRIMARY:
- for (i = 0; i < set->count; i++) {
- union _dbswap hdrNum;
-
- memcpy(&hdrNum.ui, sdbir, sizeof(hdrNum.ui));
- sdbir += sizeof(hdrNum.ui);
- if (_dbbyteswapped) {
- _DBSWAP(hdrNum);
- }
- set->recs[i].hdrNum = hdrNum.ui;
- set->recs[i].tagNum = 0;
+ set = dbiIndexSetNew(data->size / (2 * sizeof(int32_t)));
+ set->count = data->size / (2 * sizeof(int32_t));
+
+ for (i = 0; i < set->count; i++) {
+ union _dbswap hdrNum, tagNum;
+
+ memcpy(&hdrNum.ui, sdbir, sizeof(hdrNum.ui));
+ sdbir += sizeof(hdrNum.ui);
+ memcpy(&tagNum.ui, sdbir, sizeof(tagNum.ui));
+ sdbir += sizeof(tagNum.ui);
+ if (_dbbyteswapped) {
+ _DBSWAP(hdrNum);
+ _DBSWAP(tagNum);
}
- break;
+ set->recs[i].hdrNum = hdrNum.ui;
+ set->recs[i].tagNum = tagNum.ui;
}
*setp = set;
return 0;
@@ -787,62 +980,41 @@ static int set2dbt(dbiIndex dbi, DBT * data, dbiIndexSet set)
int _dbbyteswapped = dbiByteSwapped(dbi);
char * tdbir;
unsigned int i;
- dbiIndexType itype = dbiType(dbi);
if (dbi == NULL || data == NULL || set == NULL)
return -1;
- data->size = set->count * itype;
+ data->size = set->count * (2 * sizeof(int32_t));
if (data->size == 0) {
data->data = NULL;
return 0;
}
tdbir = data->data = xmalloc(data->size);
- switch (itype) {
- default:
- case DBI_SECONDARY:
- for (i = 0; i < set->count; i++) {
- union _dbswap hdrNum, tagNum;
-
- memset(&hdrNum, 0, sizeof(hdrNum));
- memset(&tagNum, 0, sizeof(tagNum));
- hdrNum.ui = set->recs[i].hdrNum;
- tagNum.ui = set->recs[i].tagNum;
- if (_dbbyteswapped) {
- _DBSWAP(hdrNum);
- _DBSWAP(tagNum);
- }
- memcpy(tdbir, &hdrNum.ui, sizeof(hdrNum.ui));
- tdbir += sizeof(hdrNum.ui);
- memcpy(tdbir, &tagNum.ui, sizeof(tagNum.ui));
- tdbir += sizeof(tagNum.ui);
- }
- break;
- case DBI_PRIMARY:
- for (i = 0; i < set->count; i++) {
- union _dbswap hdrNum;
-
- memset(&hdrNum, 0, sizeof(hdrNum));
- hdrNum.ui = set->recs[i].hdrNum;
- if (_dbbyteswapped) {
- _DBSWAP(hdrNum);
- }
- memcpy(tdbir, &hdrNum.ui, sizeof(hdrNum.ui));
- tdbir += sizeof(hdrNum.ui);
+ for (i = 0; i < set->count; i++) {
+ union _dbswap hdrNum, tagNum;
+
+ memset(&hdrNum, 0, sizeof(hdrNum));
+ memset(&tagNum, 0, sizeof(tagNum));
+ hdrNum.ui = set->recs[i].hdrNum;
+ tagNum.ui = set->recs[i].tagNum;
+ if (_dbbyteswapped) {
+ _DBSWAP(hdrNum);
+ _DBSWAP(tagNum);
}
- break;
+ memcpy(tdbir, &hdrNum.ui, sizeof(hdrNum.ui));
+ tdbir += sizeof(hdrNum.ui);
+ memcpy(tdbir, &tagNum.ui, sizeof(tagNum.ui));
+ tdbir += sizeof(tagNum.ui);
}
-
return 0;
}
-rpmRC dbcCursorGet(dbiCursor dbc, const char *keyp, size_t keylen,
- dbiIndexSet *set)
+static rpmRC db3_idxdbGet(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen,
+ dbiIndexSet *set, int searchType)
{
rpmRC rc = RPMRC_FAIL; /* assume failure */
- if (dbc != NULL && set != NULL) {
- dbiIndex dbi = dbc->dbi;
+ if (dbi != NULL && dbc != NULL && set != NULL) {
int cflags = DB_NEXT;
int dbrc;
DBT data, key;
@@ -850,15 +1022,23 @@ rpmRC dbcCursorGet(dbiCursor dbc, const char *keyp, size_t keylen,
memset(&key, 0, sizeof(key));
if (keyp) {
+ if (keylen == 0) { /* XXX "/" fixup */
+ keyp = "";
+ keylen = 1;
+ }
key.data = (void *) keyp; /* discards const */
key.size = keylen;
- cflags = DB_SET;
+ cflags = searchType == DBC_PREFIX_SEARCH ? DB_SET_RANGE : DB_SET;
}
- dbrc = dbiCursorGet(dbc, &key, &data, cflags);
-
- if (dbrc == 0) {
+ for (;;) {
dbiIndexSet newset = NULL;
+ dbrc = dbiCursorGet(dbc, &key, &data, cflags);
+ if (dbrc != 0)
+ break;
+ if (searchType == DBC_PREFIX_SEARCH &&
+ (key.size < keylen || memcmp(key.data, keyp, keylen) != 0))
+ break;
dbt2set(dbi, &data, &newset);
if (*set == NULL) {
*set = newset;
@@ -866,6 +1046,22 @@ rpmRC dbcCursorGet(dbiCursor dbc, const char *keyp, size_t keylen,
dbiIndexSetAppendSet(*set, newset, 0);
dbiIndexSetFree(newset);
}
+ if (searchType != DBC_PREFIX_SEARCH)
+ break;
+ key.data = NULL;
+ key.size = 0;
+ cflags = DB_NEXT;
+ }
+
+ /* fixup result status for prefix search */
+ if (searchType == DBC_PREFIX_SEARCH) {
+ if (dbrc == DB_NOTFOUND && *set != NULL && (*set)->count > 0)
+ dbrc = 0;
+ else if (dbrc == 0 && (*set == NULL || (*set)->count == 0))
+ dbrc = DB_NOTFOUND;
+ }
+
+ if (dbrc == 0) {
rc = RPMRC_OK;
} else if (dbrc == DB_NOTFOUND) {
rc = RPMRC_NOTFOUND;
@@ -921,11 +1117,17 @@ static rpmRC updateIndex(dbiCursor dbc, const char *keyp, unsigned int keylen,
return rc;
}
-rpmRC dbcCursorPut(dbiCursor dbc, const char *keyp, size_t keylen,
- dbiIndexItem rec)
+static rpmRC db3_idxdbPut(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen,
+ dbiIndexItem rec)
{
dbiIndexSet set = NULL;
- rpmRC rc = dbcCursorGet(dbc, keyp, keylen, &set);
+ rpmRC rc;
+
+ if (keyp && keylen == 0) { /* XXX "/" fixup */
+ keyp = "";
+ keylen++;
+ }
+ rc = idxdbGet(dbi, dbc, keyp, keylen, &set, DBC_NORMAL_SEARCH);
/* Not found means a new key and is not an error. */
if (rc && rc != RPMRC_NOTFOUND)
@@ -941,11 +1143,17 @@ rpmRC dbcCursorPut(dbiCursor dbc, const char *keyp, size_t keylen,
return rc;
}
-rpmRC dbcCursorDel(dbiCursor dbc, const char *keyp, size_t keylen,
- dbiIndexItem rec)
+static rpmRC db3_idxdbDel(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen,
+ dbiIndexItem rec)
{
dbiIndexSet set = NULL;
- rpmRC rc = dbcCursorGet(dbc, keyp, keylen, &set);
+ rpmRC rc;
+
+ if (keyp && keylen == 0) { /* XXX "/" fixup */
+ keyp = "";
+ keylen++;
+ }
+ rc = idxdbGet(dbi, dbc, keyp, keylen, &set, DBC_NORMAL_SEARCH);
if (rc)
return rc;
@@ -965,26 +1173,32 @@ rpmRC dbcCursorDel(dbiCursor dbc, const char *keyp, size_t keylen,
return rc;
}
+static const void * db3_idxdbKey(dbiIndex dbi, dbiCursor dbc, unsigned int *keylen)
+{
+ const void *key = NULL;
+ if (dbc) {
+ key = dbc->key;
+ if (key && keylen)
+ *keylen = dbc->keylen;
+ }
+ return key;
+}
+
+
/* Update primary Packages index. NULL hdr means remove */
-static int updatePackages(dbiIndex dbi, dbiCursor cursor,
- unsigned int hdrNum, DBT *hdr,
- unsigned int *hdrOffset)
+static rpmRC updatePackages(dbiCursor dbc, unsigned int hdrNum, DBT *hdr)
{
union _dbswap mi_offset;
int rc = 0;
- dbiCursor dbc = cursor;;
DBT key;
- if (dbi == NULL || hdrNum == 0)
- return 1;
+ if (dbc == NULL || hdrNum == 0)
+ return RPMRC_FAIL;
memset(&key, 0, sizeof(key));
- if (dbc == NULL)
- dbc = dbiCursorInit(dbi, DBC_WRITE);
-
mi_offset.ui = hdrNum;
- if (dbiByteSwapped(dbi) == 1)
+ if (dbiByteSwapped(dbc->dbi) == 1)
_DBSWAP(mi_offset);
key.data = (void *) &mi_offset;
key.size = sizeof(mi_offset.ui);
@@ -994,9 +1208,6 @@ static int updatePackages(dbiIndex dbi, dbiCursor cursor,
if (rc) {
rpmlog(RPMLOG_ERR,
_("error(%d) adding header #%d record\n"), rc, hdrNum);
- } else {
- if (hdrOffset)
- *hdrOffset = hdrNum;
}
} else {
DBT data;
@@ -1010,11 +1221,7 @@ static int updatePackages(dbiIndex dbi, dbiCursor cursor,
rc = dbiCursorDel(dbc, &key, &data, 0);
}
- /* only free the cursor if we created it here */
- if (dbc != cursor)
- dbiCursorFree(dbc);
-
- return rc;
+ return rc == 0 ? RPMRC_OK : RPMRC_FAIL;
}
/* Get current header instance number or try to allocate a new one */
@@ -1022,7 +1229,7 @@ static unsigned int pkgInstance(dbiIndex dbi, int alloc)
{
unsigned int hdrNum = 0;
- if (dbi != NULL && dbiType(dbi) == DBI_PRIMARY) {
+ if (dbi != NULL && dbi->dbi_type == DBI_PRIMARY) {
dbiCursor dbc;
DBT key, data;
unsigned int firstkey = 0;
@@ -1067,47 +1274,43 @@ static unsigned int pkgInstance(dbiIndex dbi, int alloc)
_("error(%d) allocating new package instance\n"), ret);
}
}
- dbiCursorFree(dbc);
+ dbiCursorFree(dbi, dbc);
}
return hdrNum;
}
-int pkgdbPut(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
- unsigned char *hdrBlob, unsigned int hdrLen,
- unsigned int *hdrOffset)
+static rpmRC db3_pkgdbPut(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
+ unsigned char *hdrBlob, unsigned int hdrLen)
{
DBT hdr;
memset(&hdr, 0, sizeof(hdr));
hdr.data = hdrBlob;
hdr.size = hdrLen;
- if (hdrNum == 0)
- hdrNum = pkgInstance(dbi, 1);
- return updatePackages(dbi, dbc, hdrNum, &hdr, hdrOffset);
+ return updatePackages(dbc, hdrNum, &hdr);
}
-int pkgdbDel(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum)
+static rpmRC db3_pkgdbDel(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum)
{
- return updatePackages(dbi, dbc, hdrNum, NULL, NULL);
+ return updatePackages(dbc, hdrNum, NULL);
}
-int pkgdbGet(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
- unsigned char **hdrBlob, unsigned int *hdrLen,
- unsigned int *hdrOffset)
+static rpmRC db3_pkgdbGet(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
+ unsigned char **hdrBlob, unsigned int *hdrLen)
{
DBT key, data;
union _dbswap mi_offset;
- int rc = 0;
+ int rc;
- if (dbi == NULL || dbc == NULL)
- return 1;
+ if (dbc == NULL)
+ return RPMRC_FAIL;
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
if (hdrNum) {
mi_offset.ui = hdrNum;
- if (dbiByteSwapped(dbi) == 1)
+ if (dbiByteSwapped(dbc->dbi) == 1)
_DBSWAP(mi_offset);
key.data = (void *) &mi_offset;
key.size = sizeof(mi_offset.ui);
@@ -1122,14 +1325,57 @@ int pkgdbGet(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
*hdrBlob = data.data;
if (hdrLen)
*hdrLen = data.size;
- if (hdrOffset) {
- memcpy(&mi_offset, key.data, sizeof(mi_offset.ui));
- if (dbiByteSwapped(dbi) == 1)
- _DBSWAP(mi_offset);
- *hdrOffset = mi_offset.ui;
- }
- }
+ return RPMRC_OK;
+ } else if (rc == DB_NOTFOUND)
+ return RPMRC_NOTFOUND;
+ else
+ return RPMRC_FAIL;
+}
- return rc;
+static unsigned int db3_pkgdbKey(dbiIndex dbi, dbiCursor dbc)
+{
+ union _dbswap mi_offset;
+
+ if (dbc == NULL || dbc->key == NULL)
+ return 0;
+ memcpy(&mi_offset, dbc->key, sizeof(mi_offset.ui));
+ if (dbiByteSwapped(dbc->dbi) == 1)
+ _DBSWAP(mi_offset);
+ return mi_offset.ui;
+}
+
+static rpmRC db3_pkgdbNew(dbiIndex dbi, dbiCursor dbc, unsigned int *hdrNum)
+{
+ unsigned int num;
+ if (dbc == NULL)
+ return RPMRC_FAIL;
+ num = pkgInstance(dbc->dbi, 1);
+ if (!num)
+ return RPMRC_FAIL;
+ *hdrNum = num;
+ return RPMRC_OK;
}
+struct rpmdbOps_s db3_dbops = {
+ .open = db3_dbiOpen,
+ .close = db3_dbiClose,
+ .verify = db3_dbiVerify,
+
+ .setFSync = db3_dbSetFSync,
+ .ctrl = db3_Ctrl,
+
+ .cursorInit = db3_dbiCursorInit,
+ .cursorFree = db3_dbiCursorFree,
+
+ .pkgdbGet = db3_pkgdbGet,
+ .pkgdbPut = db3_pkgdbPut,
+ .pkgdbDel = db3_pkgdbDel,
+ .pkgdbNew = db3_pkgdbNew,
+ .pkgdbKey = db3_pkgdbKey,
+
+ .idxdbGet = db3_idxdbGet,
+ .idxdbPut = db3_idxdbPut,
+ .idxdbDel = db3_idxdbDel,
+ .idxdbKey = db3_idxdbKey
+};
+
diff --git a/lib/backend/dbconfig.c b/lib/backend/dbconfig.c
deleted file mode 100644
index 04a4ab3d..00000000
--- a/lib/backend/dbconfig.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/** \ingroup rpmdb
- * \file lib/dbconfig.c
- */
-
-#include "system.h"
-
-#include <popt.h>
-#include <db.h>
-
-#include <rpm/rpmtypes.h>
-#include <rpm/rpmmacro.h>
-#include <rpm/rpmstring.h>
-#include <rpm/rpmlog.h>
-#include <rpm/argv.h>
-#include "lib/rpmdb_internal.h"
-#include "debug.h"
-
-static struct dbiIndex_s staticdbi;
-static struct dbConfig_s staticcfg;
-static int db_eflags;
-
-/** \ingroup dbi
- */
-static const struct poptOption rdbOptions[] = {
- /* Environment options */
-
- { "cdb", 0,POPT_BIT_SET, &db_eflags, DB_INIT_CDB,
- NULL, NULL },
- { "lock", 0,POPT_BIT_SET, &db_eflags, DB_INIT_LOCK,
- NULL, NULL },
- { "log", 0,POPT_BIT_SET, &db_eflags, DB_INIT_LOG,
- NULL, NULL },
- { "txn", 0,POPT_BIT_SET, &db_eflags, DB_INIT_TXN,
- NULL, NULL },
- { "recover", 0,POPT_BIT_SET, &db_eflags, DB_RECOVER,
- NULL, NULL },
- { "recover_fatal", 0,POPT_BIT_SET, &db_eflags, DB_RECOVER_FATAL,
- NULL, NULL },
- { "lockdown", 0,POPT_BIT_SET, &db_eflags, DB_LOCKDOWN,
- NULL, NULL },
- { "private", 0,POPT_BIT_SET, &db_eflags, DB_PRIVATE,
- NULL, NULL },
-
- { "deadlock", 0,POPT_BIT_SET, &staticcfg.db_verbose, DB_VERB_DEADLOCK,
- NULL, NULL },
- { "recovery", 0,POPT_BIT_SET, &staticcfg.db_verbose, DB_VERB_RECOVERY,
- NULL, NULL },
- { "waitsfor", 0,POPT_BIT_SET, &staticcfg.db_verbose, DB_VERB_WAITSFOR,
- NULL, NULL },
- { "verbose", 0,POPT_ARG_VAL, &staticcfg.db_verbose, -1,
- NULL, NULL },
-
- { "cachesize", 0,POPT_ARG_INT, &staticcfg.db_cachesize, 0,
- NULL, NULL },
- { "mmapsize", 0,POPT_ARG_INT, &staticcfg.db_mmapsize, 0,
- NULL, NULL },
- { "mp_mmapsize", 0,POPT_ARG_INT, &staticcfg.db_mmapsize, 0,
- NULL, NULL },
- { "mp_size", 0,POPT_ARG_INT, &staticcfg.db_cachesize, 0,
- NULL, NULL },
-
- { "nofsync", 0,POPT_ARG_NONE, &staticcfg.db_no_fsync, 0,
- NULL, NULL },
-
- /* Per-dbi options */
- { "nommap", 0,POPT_BIT_SET, &staticdbi.dbi_oflags, DB_NOMMAP,
- NULL, NULL },
-
- { "nodbsync", 0,POPT_ARG_NONE, &staticdbi.dbi_no_dbsync, 0,
- NULL, NULL },
- { "lockdbfd", 0,POPT_ARG_NONE, &staticdbi.dbi_lockdbfd, 0,
- NULL, NULL },
-
- POPT_TABLEEND
-};
-
-dbiIndex dbiFree(dbiIndex dbi)
-{
- if (dbi) {
- free(dbi);
- }
- return NULL;
-}
-
-dbiIndex dbiNew(rpmdb rdb, rpmDbiTagVal rpmtag)
-{
- dbiIndex dbi = xcalloc(1, sizeof(*dbi));
- char *dbOpts;
-
- dbOpts = rpmExpand("%{_dbi_config_", rpmTagGetName(rpmtag), "}", NULL);
-
- if (!(dbOpts && *dbOpts && *dbOpts != '%')) {
- dbOpts = _free(dbOpts);
- dbOpts = rpmExpand("%{_dbi_config}", NULL);
- if (!(dbOpts && *dbOpts && *dbOpts != '%')) {
- dbOpts = _free(dbOpts);
- }
- }
-
- /* Parse the options for the database element(s). */
- if (dbOpts && *dbOpts && *dbOpts != '%') {
- char *o, *oe;
- char *p, *pe;
-
- memset(&staticdbi, 0, sizeof(staticdbi));
-/*=========*/
- for (o = dbOpts; o && *o; o = oe) {
- const struct poptOption *opt;
- const char * tok;
- unsigned int argInfo;
-
- /* Skip leading white space. */
- while (*o && risspace(*o))
- o++;
-
- /* Find and terminate next key=value pair. Save next start point. */
- for (oe = o; oe && *oe; oe++) {
- if (risspace(*oe))
- break;
- if (oe[0] == ':' && !(oe[1] == '/' && oe[2] == '/'))
- break;
- }
- if (oe && *oe)
- *oe++ = '\0';
- if (*o == '\0')
- continue;
-
- /* Separate key from value, save value start (if any). */
- for (pe = o; pe && *pe && *pe != '='; pe++)
- {};
- p = (pe ? *pe++ = '\0', pe : NULL);
-
- /* Skip over negation at start of token. */
- for (tok = o; *tok == '!'; tok++)
- {};
-
- /* Find key in option table. */
- for (opt = rdbOptions; opt->longName != NULL; opt++) {
- if (!rstreq(tok, opt->longName))
- continue;
- break;
- }
- if (opt->longName == NULL) {
- rpmlog(RPMLOG_ERR,
- _("unrecognized db option: \"%s\" ignored.\n"), o);
- continue;
- }
-
- /* Toggle the flags for negated tokens, if necessary. */
- argInfo = opt->argInfo;
- if (argInfo == POPT_BIT_SET && *o == '!' && ((tok - o) % 2))
- argInfo = POPT_BIT_CLR;
-
- /* Save value in template as appropriate. */
- switch (argInfo & POPT_ARG_MASK) {
-
- case POPT_ARG_NONE:
- (void) poptSaveInt((int *)opt->arg, argInfo, 1L);
- break;
- case POPT_ARG_VAL:
- (void) poptSaveInt((int *)opt->arg, argInfo, (long)opt->val);
- break;
- case POPT_ARG_STRING:
- { char ** t = opt->arg;
- if (t) {
-/* FIX: opt->arg annotation in popt.h */
- *t = _free(*t);
- *t = xstrdup( (p ? p : "") );
- }
- } break;
-
- case POPT_ARG_INT:
- case POPT_ARG_LONG:
- { long aLong = strtol(p, &pe, 0);
- if (pe) {
- if (!rstrncasecmp(pe, "Mb", 2))
- aLong *= 1024 * 1024;
- else if (!rstrncasecmp(pe, "Kb", 2))
- aLong *= 1024;
- else if (*pe != '\0') {
- rpmlog(RPMLOG_ERR,
- _("%s has invalid numeric value, skipped\n"),
- opt->longName);
- continue;
- }
- }
-
- if ((argInfo & POPT_ARG_MASK) == POPT_ARG_LONG) {
- if (aLong == LONG_MIN || aLong == LONG_MAX) {
- rpmlog(RPMLOG_ERR,
- _("%s has too large or too small long value, skipped\n"),
- opt->longName);
- continue;
- }
- (void) poptSaveLong((long *)opt->arg, argInfo, aLong);
- break;
- } else {
- if (aLong > INT_MAX || aLong < INT_MIN) {
- rpmlog(RPMLOG_ERR,
- _("%s has too large or too small integer value, skipped\n"),
- opt->longName);
- continue;
- }
- (void) poptSaveInt((int *)opt->arg, argInfo, aLong);
- }
- } break;
- default:
- break;
- }
- }
-/*=========*/
- }
-
- dbOpts = _free(dbOpts);
-
- *dbi = staticdbi; /* structure assignment */
- memset(&staticdbi, 0, sizeof(staticdbi));
-
- /* FIX: figger lib/dbi refcounts */
- dbi->dbi_rpmdb = rdb;
- dbi->dbi_file = rpmTagGetName(rpmtag);
- dbi->dbi_type = (rpmtag == RPMDBI_PACKAGES) ? DBI_PRIMARY : DBI_SECONDARY;
- dbi->dbi_byteswapped = -1; /* -1 unknown, 0 native order, 1 alien order */
-
- /* XXX FIXME: Get environment configuration out of here! */
- if (rdb->db_dbenv == NULL) {
- struct dbConfig_s * cfg = &rdb->cfg;
- *cfg = staticcfg; /* structure assignment */
- /* Throw in some defaults if configuration didn't set any */
- if (!cfg->db_mmapsize) cfg->db_mmapsize = 16 * 1024 * 1024;
- if (!cfg->db_cachesize) cfg->db_cachesize = 8 * 1024 * 1024;
- }
-
- /* FIX: *(rdbOptions->arg) reachable */
- return dbi;
-}
-
-char * prDbiOpenFlags(int dbflags, int print_dbenv_flags)
-{
- ARGV_t flags = NULL;
- const struct poptOption *opt;
- char *buf;
-
- for (opt = rdbOptions; opt->longName != NULL; opt++) {
- if (opt->argInfo != POPT_BIT_SET)
- continue;
- if (print_dbenv_flags) {
- if (!(opt->arg == &db_eflags))
- continue;
- } else {
- if (!(opt->arg == &staticdbi.dbi_oflags))
- continue;
- }
- if ((dbflags & opt->val) != opt->val)
- continue;
- argvAdd(&flags, opt->longName);
- dbflags &= ~opt->val;
- }
- if (dbflags) {
- char *df = NULL;
- rasprintf(&df, "0x%x", (unsigned)dbflags);
- argvAdd(&flags, df);
- free(df);
- }
- buf = argvJoin(flags, ":");
- argvFree(flags);
-
- return buf ? buf : xstrdup("(none)");
-}
diff --git a/lib/backend/dbi.c b/lib/backend/dbi.c
new file mode 100644
index 00000000..cbcac34d
--- /dev/null
+++ b/lib/backend/dbi.c
@@ -0,0 +1,143 @@
+/** \ingroup rpmdb
+ * \file lib/dbi.c
+ */
+
+#include "system.h"
+
+#include <stdlib.h>
+#include <rpm/rpmtypes.h>
+#include <rpm/rpmstring.h>
+#include "lib/rpmdb_internal.h"
+#include "debug.h"
+
+
+dbiIndex dbiFree(dbiIndex dbi)
+{
+ if (dbi) {
+ free(dbi);
+ }
+ return NULL;
+}
+
+dbiIndex dbiNew(rpmdb rdb, rpmDbiTagVal rpmtag)
+{
+ dbiIndex dbi = xcalloc(1, sizeof(*dbi));
+ /* FIX: figger lib/dbi refcounts */
+ dbi->dbi_rpmdb = rdb;
+ dbi->dbi_file = rpmTagGetName(rpmtag);
+ dbi->dbi_type = (rpmtag == RPMDBI_PACKAGES) ? DBI_PRIMARY : DBI_SECONDARY;
+ dbi->dbi_byteswapped = -1; /* -1 unknown, 0 native order, 1 alien order */
+ return dbi;
+}
+
+static void
+dbDetectBackend(rpmdb rdb)
+{
+#ifdef ENABLE_NDB
+ const char *dbhome = rpmdbHome(rdb);
+ char *path = rstrscat(NULL, dbhome, "/Packages", NULL);
+ rdb->db_ops = &ndb_dbops;
+ if (access(path, F_OK) == 0)
+ rdb->db_ops = &db3_dbops;
+ free(path);
+#else
+ rdb->db_ops = &db3_dbops;
+#endif
+}
+
+const char * dbiName(dbiIndex dbi)
+{
+ return dbi->dbi_file;
+}
+
+int dbiFlags(dbiIndex dbi)
+{
+ return dbi->dbi_flags;
+}
+
+void dbSetFSync(rpmdb rdb, int enable)
+{
+ if (!rdb->db_ops)
+ dbDetectBackend(rdb);
+ rdb->db_ops->setFSync(rdb, enable);
+}
+
+int dbCtrl(rpmdb rdb, dbCtrlOp ctrl)
+{
+ if (!rdb->db_ops)
+ dbDetectBackend(rdb);
+ return rdb->db_ops->ctrl(rdb, ctrl);
+}
+
+int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
+{
+ if (!rdb->db_ops)
+ dbDetectBackend(rdb);
+ return rdb->db_ops->open(rdb, rpmtag, dbip, flags);
+}
+
+int dbiClose(dbiIndex dbi, unsigned int flags)
+{
+ return dbi ? dbi->dbi_rpmdb->db_ops->close(dbi, flags) : 0;
+}
+
+int dbiVerify(dbiIndex dbi, unsigned int flags)
+{
+ return dbi->dbi_rpmdb->db_ops->verify(dbi, flags);
+}
+
+dbiCursor dbiCursorInit(dbiIndex dbi, unsigned int flags)
+{
+ return dbi->dbi_rpmdb->db_ops->cursorInit(dbi, flags);
+}
+
+dbiCursor dbiCursorFree(dbiIndex dbi, dbiCursor dbc)
+{
+ return dbi->dbi_rpmdb->db_ops->cursorFree(dbi, dbc);
+}
+
+rpmRC pkgdbPut(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum, unsigned char *hdrBlob, unsigned int hdrLen)
+{
+ return dbi->dbi_rpmdb->db_ops->pkgdbPut(dbi, dbc, hdrNum, hdrBlob, hdrLen);
+}
+
+rpmRC pkgdbDel(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum)
+{
+ return dbi->dbi_rpmdb->db_ops->pkgdbDel(dbi, dbc, hdrNum);
+}
+
+rpmRC pkgdbGet(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum, unsigned char **hdrBlob, unsigned int *hdrLen)
+{
+ return dbi->dbi_rpmdb->db_ops->pkgdbGet(dbi, dbc, hdrNum, hdrBlob, hdrLen);
+}
+
+rpmRC pkgdbNew(dbiIndex dbi, dbiCursor dbc, unsigned int *hdrNum)
+{
+ return dbi->dbi_rpmdb->db_ops->pkgdbNew(dbi, dbc, hdrNum);
+}
+
+unsigned int pkgdbKey(dbiIndex dbi, dbiCursor dbc)
+{
+ return dbi->dbi_rpmdb->db_ops->pkgdbKey(dbi, dbc);
+}
+
+rpmRC idxdbGet(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexSet *set, int curFlags)
+{
+ return dbi->dbi_rpmdb->db_ops->idxdbGet(dbi, dbc, keyp, keylen, set, curFlags);
+}
+
+rpmRC idxdbPut(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexItem rec)
+{
+ return dbi->dbi_rpmdb->db_ops->idxdbPut(dbi, dbc, keyp, keylen, rec);
+}
+
+rpmRC idxdbDel(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexItem rec)
+{
+ return dbi->dbi_rpmdb->db_ops->idxdbDel(dbi, dbc, keyp, keylen, rec);
+}
+
+const void * idxdbKey(dbiIndex dbi, dbiCursor dbc, unsigned int *keylen)
+{
+ return dbi->dbi_rpmdb->db_ops->idxdbKey(dbi, dbc, keylen);
+}
+
diff --git a/lib/backend/dbi.h b/lib/backend/dbi.h
index 2f1342d1..a575d3cb 100644
--- a/lib/backend/dbi.h
+++ b/lib/backend/dbi.h
@@ -12,6 +12,14 @@ enum rpmdbFlags {
RPMDB_FLAG_VERIFYONLY = (1 << 2),
};
+typedef enum dbCtrlOp_e {
+ DB_CTRL_LOCK_RO = 1,
+ DB_CTRL_UNLOCK_RO = 2,
+ DB_CTRL_LOCK_RW = 3,
+ DB_CTRL_UNLOCK_RW = 4,
+ DB_CTRL_INDEXSYNC = 5
+} dbCtrlOp;
+
typedef struct dbiIndex_s * dbiIndex;
typedef struct dbiCursor_s * dbiCursor;
@@ -20,8 +28,17 @@ struct dbConfig_s {
int db_cachesize; /*!< (128Kb) */
int db_verbose;
int db_no_fsync; /*!< no-op fsync for db */
+ int db_eflags; /*!< obsolete */
+};
+
+struct dbiConfig_s {
+ int dbi_oflags; /*!< open flags */
+ int dbi_no_dbsync; /*!< don't call dbiSync */
+ int dbi_lockdbfd; /*!< do fcntl lock on db fd */
};
+struct rpmdbOps_s;
+
/** \ingroup rpmdb
* Describes the collection of index databases used by rpm.
*/
@@ -42,6 +59,8 @@ struct rpmdb_s {
dbiIndex * db_indexes; /*!< Tag indices. */
int db_buildindex; /*!< Index rebuild indicator */
+ struct rpmdbOps_s * db_ops; /*!< backend ops */
+
/* dbenv and related parameters */
void * db_dbenv; /*!< Backend private handle */
struct dbConfig_s cfg;
@@ -71,19 +90,22 @@ enum dbcFlags_e {
DBC_WRITE = (1 << 0),
};
+enum dbcSearchType_e {
+ DBC_NORMAL_SEARCH = 0,
+ DBC_PREFIX_SEARCH = (1 << 0),
+};
+
/** \ingroup dbi
* Describes an index database (implemented on Berkeley db functionality).
*/
struct dbiIndex_s {
+ rpmdb dbi_rpmdb; /*!< the parent rpm database */
+ dbiIndexType dbi_type; /*! Type of dbi (primary / index) */
const char * dbi_file; /*!< file component of path */
-
- int dbi_oflags; /*!< db->open flags */
- int dbi_no_dbsync; /*!< don't call dbiSync */
- int dbi_lockdbfd; /*!< do fcntl lock on db fd */
+ int dbi_flags;
int dbi_byteswapped;
- rpmdb dbi_rpmdb; /*!< the parent rpm database */
- dbiIndexType dbi_type; /*! Type of dbi (primary / index) */
+ struct dbiConfig_s cfg;
void * dbi_db; /*!< Backend private handle */
};
@@ -95,7 +117,10 @@ extern "C" {
RPM_GNUC_INTERNAL
/* Globally enable/disable fsync in the backend */
-void dbSetFSync(void *dbenv, int enable);
+void dbSetFSync(rpmdb rdb, int enable);
+
+RPM_GNUC_INTERNAL
+int dbCtrl(rpmdb rdb, dbCtrlOp ctrl);
/** \ingroup dbi
* Return new configured index database handle instance.
@@ -115,15 +140,6 @@ RPM_GNUC_INTERNAL
dbiIndex dbiFree( dbiIndex dbi);
/** \ingroup dbi
- * Format dbi open flags for debugging print.
- * @param dbflags db open flags
- * @param print_dbenv_flags format db env flags instead?
- * @return formatted flags (malloced)
- */
-RPM_GNUC_INTERNAL
-char * prDbiOpenFlags(int dbflags, int print_dbenv_flags);
-
-/** \ingroup dbi
* Actually open the database of the index.
* @param db rpm database
* @param rpmtag database index tag
@@ -153,14 +169,6 @@ RPM_GNUC_INTERNAL
int dbiVerify(dbiIndex dbi, unsigned int flags);
/** \ingroup dbi
- * Type of dbi (primary data / index)
- * @param dbi index database handle
- * @return type of dbi
- */
-RPM_GNUC_INTERNAL
-dbiIndexType dbiType(dbiIndex dbi);
-
-/** \ingroup dbi
* Retrieve index control flags (new/existing, read-only etc)
* @param dbi index database handle
* @return dbi control flags
@@ -191,31 +199,63 @@ dbiCursor dbiCursorInit(dbiIndex dbi, unsigned int flags);
* @return NULL always
*/
RPM_GNUC_INTERNAL
-dbiCursor dbiCursorFree(dbiCursor dbc);
+dbiCursor dbiCursorFree(dbiIndex dbi, dbiCursor dbc);
-RPM_GNUC_INTERNAL
-const void * dbiCursorKey(dbiCursor dbc, unsigned int *keylen);
RPM_GNUC_INTERNAL
-int pkgdbPut(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
- unsigned char *hdrBlob, unsigned int hdrLen,
- unsigned int *hdrOffset);
+rpmRC pkgdbPut(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
+ unsigned char *hdrBlob, unsigned int hdrLen);
RPM_GNUC_INTERNAL
-int pkgdbDel(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum);
+rpmRC pkgdbDel(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum);
RPM_GNUC_INTERNAL
-int pkgdbGet(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
- unsigned char **hdrBlob, unsigned int *hdrLen,
- unsigned int *hdrOffset);
+rpmRC pkgdbGet(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum,
+ unsigned char **hdrBlob, unsigned int *hdrLen);
+RPM_GNUC_INTERNAL
+rpmRC pkgdbNew(dbiIndex dbi, dbiCursor dbc, unsigned int *hdrNum);
+RPM_GNUC_INTERNAL
+unsigned int pkgdbKey(dbiIndex dbi, dbiCursor dbc);
RPM_GNUC_INTERNAL
-rpmRC dbcCursorGet(dbiCursor dbc, const char *keyp, size_t keylen,
- dbiIndexSet *set);
+rpmRC idxdbGet(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen,
+ dbiIndexSet *set, int curFlags);
+RPM_GNUC_INTERNAL
+rpmRC idxdbPut(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen,
+ dbiIndexItem rec);
RPM_GNUC_INTERNAL
-rpmRC dbcCursorPut(dbiCursor dbc, const char *keyp, size_t keylen,
- dbiIndexItem rec);
+rpmRC idxdbDel(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen,
+ dbiIndexItem rec);
RPM_GNUC_INTERNAL
-rpmRC dbcCursorDel(dbiCursor dbc, const char *keyp, size_t keylen,
- dbiIndexItem rec);
+const void * idxdbKey(dbiIndex dbi, dbiCursor dbc, unsigned int *keylen);
+
+struct rpmdbOps_s {
+ int (*open)(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags);
+ int (*close)(dbiIndex dbi, unsigned int flags);
+ int (*verify)(dbiIndex dbi, unsigned int flags);
+ void (*setFSync)(rpmdb rdb, int enable);
+ int (*ctrl)(rpmdb rdb, dbCtrlOp ctrl);
+
+ dbiCursor (*cursorInit)(dbiIndex dbi, unsigned int flags);
+ dbiCursor (*cursorFree)(dbiIndex dbi, dbiCursor dbc);
+
+ rpmRC (*pkgdbGet)(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum, unsigned char **hdrBlob, unsigned int *hdrLen);
+ rpmRC (*pkgdbPut)(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum, unsigned char *hdrBlob, unsigned int hdrLen);
+ rpmRC (*pkgdbDel)(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum);
+ rpmRC (*pkgdbNew)(dbiIndex dbi, dbiCursor dbc, unsigned int *hdrNum);
+ unsigned int (*pkgdbKey)(dbiIndex dbi, dbiCursor dbc);
+
+ rpmRC (*idxdbGet)(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexSet *set, int curFlags);
+ rpmRC (*idxdbPut)(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexItem rec);
+ rpmRC (*idxdbDel)(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexItem rec);
+ const void * (*idxdbKey)(dbiIndex dbi, dbiCursor dbc, unsigned int *keylen);
+};
+
+RPM_GNUC_INTERNAL
+extern struct rpmdbOps_s db3_dbops;
+
+#ifdef ENABLE_NDB
+RPM_GNUC_INTERNAL
+extern struct rpmdbOps_s ndb_dbops;
+#endif
#ifdef __cplusplus
}
diff --git a/lib/backend/dbiset.c b/lib/backend/dbiset.c
index d3af3121..ad0114e6 100644
--- a/lib/backend/dbiset.c
+++ b/lib/backend/dbiset.c
@@ -53,6 +53,28 @@ void dbiIndexSetSort(dbiIndexSet set)
}
}
+void dbiIndexSetUniq(dbiIndexSet set, int sorted)
+{
+ unsigned int from;
+ unsigned int to = 0;
+ unsigned int num = set->count;
+
+ assert(set->count > 0);
+
+ if (!sorted)
+ dbiIndexSetSort(set);
+
+ for (from = 0; from < num; from++) {
+ if (from > 0 && set->recs[from - 1].hdrNum == set->recs[from].hdrNum) {
+ set->count--;
+ continue;
+ }
+ if (from != to)
+ set->recs[to] = set->recs[from]; /* structure assignment */
+ to++;
+ }
+}
+
int dbiIndexSetAppendSet(dbiIndexSet dest, dbiIndexSet src, int sortset)
{
if (dest == NULL || src == NULL || src->count == 0)
diff --git a/lib/backend/dbiset.h b/lib/backend/dbiset.h
index 9e8a4bb1..7b106ba1 100644
--- a/lib/backend/dbiset.h
+++ b/lib/backend/dbiset.h
@@ -32,6 +32,10 @@ void dbiIndexSetGrow(dbiIndexSet set, unsigned int nrecs);
RPM_GNUC_INTERNAL
void dbiIndexSetSort(dbiIndexSet set);
+/* Uniq an index set */
+RPM_GNUC_INTERNAL
+void dbiIndexSetUniq(dbiIndexSet set, int sorted);
+
/* Append an index set to another */
RPM_GNUC_INTERNAL
int dbiIndexSetAppendSet(dbiIndexSet set, dbiIndexSet oset, int sortset);
diff --git a/lib/backend/ndb/glue.c b/lib/backend/ndb/glue.c
new file mode 100644
index 00000000..3ed8bd3b
--- /dev/null
+++ b/lib/backend/ndb/glue.c
@@ -0,0 +1,477 @@
+#include "system.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "lib/rpmdb_internal.h"
+#include <rpm/rpmstring.h>
+#include <rpm/rpmlog.h>
+
+#include "lib/backend/ndb/rpmpkg.h"
+#include "lib/backend/ndb/rpmxdb.h"
+#include "lib/backend/ndb/rpmidx.h"
+
+#include "debug.h"
+
+struct dbiCursor_s {
+ dbiIndex dbi;
+ const void *key;
+ unsigned int keylen;
+ unsigned int hdrNum;
+ int flags;
+
+ unsigned int *list;
+ unsigned int nlist;
+ unsigned int ilist;
+ unsigned char *listdata;
+};
+
+struct ndbEnv_s {
+ rpmpkgdb pkgdb;
+ rpmxdb xdb;
+ int refs;
+
+ unsigned int hdrNum;
+ void *data;
+ unsigned int datalen;
+};
+
+static void closeEnv(rpmdb rdb)
+{
+ struct ndbEnv_s *ndbenv = rdb->db_dbenv;
+ if (--ndbenv->refs == 0) {
+ if (ndbenv->xdb) {
+ rpmxdbClose(ndbenv->xdb);
+ rpmlog(RPMLOG_DEBUG, "closed db index %s/Index.db\n", rpmdbHome(rdb));
+ }
+ if (ndbenv->pkgdb) {
+ rpmpkgClose(ndbenv->pkgdb);
+ rpmlog(RPMLOG_DEBUG, "closed db index %s/Packages.db\n", rpmdbHome(rdb));
+ }
+ if (ndbenv->data)
+ free(ndbenv->data);
+ free(ndbenv);
+ rdb->db_dbenv = 0;
+ }
+}
+
+static struct ndbEnv_s *openEnv(rpmdb rdb)
+{
+ struct ndbEnv_s *ndbenv = rdb->db_dbenv;
+ if (!ndbenv)
+ rdb->db_dbenv = ndbenv = xcalloc(1, sizeof(struct ndbEnv_s));
+ ndbenv->refs++;
+ return ndbenv;
+}
+
+static int ndb_Close(dbiIndex dbi, unsigned int flags)
+{
+ rpmdb rdb = dbi->dbi_rpmdb;
+ if (dbi->dbi_type != DBI_PRIMARY && dbi->dbi_db) {
+ rpmidxClose(dbi->dbi_db);
+ rpmlog(RPMLOG_DEBUG, "closed db index %s\n", dbi->dbi_file);
+ }
+ if (rdb->db_dbenv)
+ closeEnv(rdb);
+ dbi->dbi_db = 0;
+ return 0;
+}
+
+static int ndb_Open(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
+{
+ const char *dbhome = rpmdbHome(rdb);
+ struct ndbEnv_s *ndbenv;
+ dbiIndex dbi;
+ int rc, oflags;
+
+ if (dbip)
+ *dbip = NULL;
+
+ if ((dbi = dbiNew(rdb, rpmtag)) == NULL)
+ return 1;
+
+ ndbenv = openEnv(rdb);
+
+ oflags = O_RDWR;
+ if ((rdb->db_mode & O_ACCMODE) == O_RDONLY)
+ oflags = O_RDONLY;
+
+ if (dbi->dbi_type == DBI_PRIMARY) {
+ rpmpkgdb pkgdb = 0;
+ char *path = rstrscat(NULL, dbhome, "/Packages.db", NULL);
+ rpmlog(RPMLOG_DEBUG, "opening db index %s mode=0x%x\n", path, rdb->db_mode);
+ rc = rpmpkgOpen(&pkgdb, path, oflags, 0666);
+ if (rc && errno == ENOENT) {
+ oflags = O_RDWR|O_CREAT;
+ rc = rpmpkgOpen(&pkgdb, path, oflags, 0666);
+ }
+ if (rc) {
+ perror("rpmpkgOpen");
+ free(path);
+ ndb_Close(dbi, 0);
+ return 1;
+ }
+ free(path);
+ dbi->dbi_db = ndbenv->pkgdb = pkgdb;
+ } else {
+ rpmidxdb idxdb = 0;
+ if (!ndbenv->pkgdb) {
+ ndb_Close(dbi, 0);
+ return 1; /* please open primary first */
+ }
+ if (!ndbenv->xdb) {
+ char *path = rstrscat(NULL, dbhome, "/Index.db", NULL);
+ rpmlog(RPMLOG_DEBUG, "opening db index %s mode=0x%x\n", path, rdb->db_mode);
+ rc = rpmxdbOpen(&ndbenv->xdb, rdb->db_pkgs->dbi_db, path, oflags, 0666);
+ if (rc && errno == ENOENT) {
+ oflags = O_RDWR|O_CREAT;
+ rc = rpmxdbOpen(&ndbenv->xdb, rdb->db_pkgs->dbi_db, path, oflags, 0666);
+ }
+ if (rc) {
+ perror("rpmxdbOpen");
+ free(path);
+ ndb_Close(dbi, 0);
+ return 1;
+ }
+ free(path);
+ }
+ rpmlog(RPMLOG_DEBUG, "opening db index %s tag=%d\n", dbiName(dbi), rpmtag);
+ if (rpmidxOpenXdb(&idxdb, rdb->db_pkgs->dbi_db, ndbenv->xdb, rpmtag)) {
+ perror("rpmidxOpenXdb");
+ ndb_Close(dbi, 0);
+ return 1;
+ }
+ dbi->dbi_db = idxdb;
+ }
+
+ dbi->dbi_flags = 0;
+ if (oflags & O_CREAT)
+ dbi->dbi_flags |= DBI_CREATED;
+ if ((oflags & (O_RDWR | O_RDONLY)) == O_RDONLY)
+ dbi->dbi_flags |= DBI_RDONLY;
+
+ if (dbip != NULL)
+ *dbip = dbi;
+ else
+ ndb_Close(dbi, 0);
+ return 0;
+}
+
+static int ndb_Verify(dbiIndex dbi, unsigned int flags)
+{
+ return 1;
+}
+
+static void ndb_SetFSync(rpmdb rdb, int enable)
+{
+}
+
+static int indexSync(rpmpkgdb pkgdb, rpmxdb xdb)
+{
+ unsigned int generation;
+ int rc;
+ if (!pkgdb || !xdb)
+ return 1;
+ if (rpmpkgLock(pkgdb, 1))
+ return 1;
+ if (rpmpkgGeneration(pkgdb, &generation)) {
+ rpmpkgUnlock(pkgdb, 1);
+ return 1;
+ }
+ rc = rpmxdbSetUserGeneration(xdb, generation);
+ rpmpkgUnlock(pkgdb, 1);
+ return rc;
+}
+
+static int ndb_Ctrl(rpmdb rdb, dbCtrlOp ctrl)
+{
+ struct ndbEnv_s *ndbenv = rdb->db_dbenv;
+
+ switch (ctrl) {
+ case DB_CTRL_LOCK_RO:
+ if (!rdb->db_pkgs)
+ return 1;
+ return rpmpkgLock(rdb->db_pkgs->dbi_db, 0);
+ case DB_CTRL_LOCK_RW:
+ if (!rdb->db_pkgs)
+ return 1;
+ return rpmpkgLock(rdb->db_pkgs->dbi_db, 1);
+ case DB_CTRL_UNLOCK_RO:
+ if (!rdb->db_pkgs)
+ return 1;
+ return rpmpkgUnlock(rdb->db_pkgs->dbi_db, 0);
+ case DB_CTRL_UNLOCK_RW:
+ if (!rdb->db_pkgs)
+ return 1;
+ return rpmpkgUnlock(rdb->db_pkgs->dbi_db, 1);
+ case DB_CTRL_INDEXSYNC:
+ if (!ndbenv)
+ return 1;
+ return indexSync(ndbenv->pkgdb, ndbenv->xdb);
+ default:
+ break;
+ }
+ return 0;
+}
+
+static dbiCursor ndb_CursorInit(dbiIndex dbi, unsigned int flags)
+{
+ dbiCursor dbc = xcalloc(1, sizeof(*dbc));
+ dbc->dbi = dbi;
+ dbc->flags = flags;
+ return dbc;
+}
+
+static dbiCursor ndb_CursorFree(dbiIndex dbi, dbiCursor dbc)
+{
+ if (dbc) {
+ if (dbc->list)
+ free(dbc->list);
+ if (dbc->listdata)
+ free(dbc->listdata);
+ free(dbc);
+ }
+ return NULL;
+}
+
+
+static void setdata(dbiCursor dbc, unsigned int hdrNum, unsigned char *hdrBlob, unsigned int hdrLen)
+{
+ struct ndbEnv_s *ndbenv = dbc->dbi->dbi_rpmdb->db_dbenv;
+ if (ndbenv->data)
+ free(ndbenv->data);
+ ndbenv->hdrNum = hdrNum;
+ ndbenv->data = hdrBlob;
+ ndbenv->datalen = hdrLen;
+}
+
+static rpmRC ndb_pkgdbNew(dbiIndex dbi, dbiCursor dbc, unsigned int *hdrNum)
+{
+ int rc = rpmpkgNextPkgIdx(dbc->dbi->dbi_db, hdrNum);
+ if (!rc)
+ setdata(dbc, *hdrNum, 0, 0);
+ return rc;
+}
+
+static rpmRC ndb_pkgdbPut(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum, unsigned char *hdrBlob, unsigned int hdrLen)
+{
+ int rc = rpmpkgPut(dbc->dbi->dbi_db, hdrNum, hdrBlob, hdrLen);
+ if (!rc) {
+ dbc->hdrNum = hdrNum;
+ setdata(dbc, hdrNum, 0, 0);
+ }
+ return rc;
+}
+
+static rpmRC ndb_pkgdbDel(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum)
+{
+ dbc->hdrNum = 0;
+ setdata(dbc, 0, 0, 0);
+ return rpmpkgDel(dbc->dbi->dbi_db, hdrNum);
+}
+
+/* iterate over all packages */
+static rpmRC ndb_pkgdbIter(dbiIndex dbi, dbiCursor dbc, unsigned char **hdrBlob, unsigned int *hdrLen)
+{
+ int rc;
+ unsigned int hdrNum;
+
+ if (!dbc->list) {
+ rc = rpmpkgList(dbc->dbi->dbi_db, &dbc->list, &dbc->nlist);
+ if (rc)
+ return rc;
+ dbc->ilist = 0;
+ }
+ for (;;) {
+ if (dbc->ilist >= dbc->nlist) {
+ rc = RPMRC_NOTFOUND;
+ break;
+ }
+ *hdrBlob = 0;
+ hdrNum = dbc->list[dbc->ilist];
+ rc = rpmpkgGet(dbc->dbi->dbi_db, hdrNum, hdrBlob, hdrLen);
+ if (rc && rc != RPMRC_NOTFOUND)
+ break;
+ dbc->ilist++;
+ if (!rc) {
+ dbc->hdrNum = hdrNum;
+ setdata(dbc, hdrNum, *hdrBlob, *hdrLen);
+ break;
+ }
+ }
+ return rc;
+}
+
+static rpmRC ndb_pkgdbGet(dbiIndex dbi, dbiCursor dbc, unsigned int hdrNum, unsigned char **hdrBlob, unsigned int *hdrLen)
+{
+ int rc;
+ struct ndbEnv_s *ndbenv = dbc->dbi->dbi_rpmdb->db_dbenv;
+
+ if (!hdrNum)
+ return ndb_pkgdbIter(dbi, dbc, hdrBlob, hdrLen);
+ if (hdrNum == ndbenv->hdrNum && ndbenv->data) {
+ *hdrBlob = ndbenv->data;
+ *hdrLen = ndbenv->datalen;
+ return RPMRC_OK;
+ }
+ rc = rpmpkgGet(dbc->dbi->dbi_db, hdrNum, hdrBlob, hdrLen);
+ if (!rc) {
+ dbc->hdrNum = hdrNum;
+ setdata(dbc, hdrNum, *hdrBlob, *hdrLen);
+ }
+ return rc;
+}
+
+static unsigned int ndb_pkgdbKey(dbiIndex dbi, dbiCursor dbc)
+{
+ return dbc->hdrNum;
+}
+
+
+static void addtoset(dbiIndexSet *set, unsigned int *pkglist, unsigned int pkglistn)
+{
+ unsigned int i, j;
+ dbiIndexSet newset = dbiIndexSetNew(pkglistn / 2);
+ for (i = j = 0; i < pkglistn; i += 2) {
+ newset->recs[j].hdrNum = pkglist[i];
+ newset->recs[j].tagNum = pkglist[i + 1];
+ j++;
+ }
+ newset->count = j;
+ if (pkglist)
+ free(pkglist);
+ if (*set) {
+ dbiIndexSetAppendSet(*set, newset, 0);
+ dbiIndexSetFree(newset);
+ } else
+ *set = newset;
+}
+
+/* Iterate over all index entries */
+static rpmRC ndb_idxdbIter(dbiIndex dbi, dbiCursor dbc, dbiIndexSet *set)
+{
+ int rc;
+ if (!dbc->list) {
+ /* setup iteration list on first call */
+ rc = rpmidxList(dbc->dbi->dbi_db, &dbc->list, &dbc->nlist, &dbc->listdata);
+ if (rc)
+ return rc;
+ dbc->ilist = 0;
+ }
+ for (;;) {
+ unsigned char *k;
+ unsigned int kl;
+ unsigned int *pkglist, pkglistn;
+ if (dbc->ilist >= dbc->nlist) {
+ rc = RPMRC_NOTFOUND;
+ break;
+ }
+ k = dbc->listdata + dbc->list[dbc->ilist];
+ kl = dbc->list[dbc->ilist + 1];
+#if 0
+ if (searchType == DBC_KEY_SEARCH) {
+ dbc->ilist += 2;
+ dbc->key = k;
+ dbc->keylen = kl;
+ rc = RPMRC_OK;
+ break;
+ }
+#endif
+ pkglist = 0;
+ pkglistn = 0;
+ rc = rpmidxGet(dbc->dbi->dbi_db, k, kl, &pkglist, &pkglistn);
+ if (rc && rc != RPMRC_NOTFOUND)
+ break;
+ dbc->ilist += 2;
+ if (!rc && pkglistn) {
+ addtoset(set, pkglist, pkglistn);
+ dbc->key = k;
+ dbc->keylen = kl;
+ break;
+ }
+ if (pkglist)
+ free(pkglist);
+ }
+ return rc;
+}
+
+static rpmRC ndb_idxdbGet(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexSet *set, int searchType)
+{
+ int rc;
+ unsigned int *pkglist = 0, pkglistn = 0;
+
+ if (!keyp)
+ return ndb_idxdbIter(dbi, dbc, set);
+
+ if (searchType == DBC_PREFIX_SEARCH) {
+ unsigned int *list = 0, nlist = 0, i = 0;
+ unsigned char *listdata = 0;
+ int rrc = RPMRC_NOTFOUND;
+ rc = rpmidxList(dbc->dbi->dbi_db, &list, &nlist, &listdata);
+ if (rc)
+ return rc;
+ for (i = 0; i < nlist && !rc; i += 2) {
+ unsigned char *k = listdata + list[i];
+ unsigned int kl = list[i + 1];
+ if (kl < keylen || memcmp(k, keyp, keylen) != 0)
+ continue;
+ rc = ndb_idxdbGet(dbi, dbc, (char *)k, kl, set, DBC_NORMAL_SEARCH);
+ if (rc == RPMRC_NOTFOUND)
+ rc = 0;
+ else
+ rrc = rc;
+ }
+ if (list)
+ free(list);
+ if (listdata)
+ free(listdata);
+ return rc ? rc : rrc;
+ }
+
+ rc = rpmidxGet(dbc->dbi->dbi_db, (const unsigned char *)keyp, keylen, &pkglist, &pkglistn);
+ if (!rc)
+ addtoset(set, pkglist, pkglistn);
+ return rc;
+}
+
+static rpmRC ndb_idxdbPut(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexItem rec)
+{
+ return rpmidxPut(dbc->dbi->dbi_db, (const unsigned char *)keyp, keylen, rec->hdrNum, rec->tagNum);
+}
+
+static rpmRC ndb_idxdbDel(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen, dbiIndexItem rec)
+{
+ return rpmidxDel(dbc->dbi->dbi_db, (const unsigned char *)keyp, keylen, rec->hdrNum, rec->tagNum);
+}
+
+static const void * ndb_idxdbKey(dbiIndex dbi, dbiCursor dbc, unsigned int *keylen)
+{
+ if (dbc->key && keylen)
+ *keylen = dbc->keylen;
+ return dbc->key;
+}
+
+
+
+struct rpmdbOps_s ndb_dbops = {
+ .open = ndb_Open,
+ .close = ndb_Close,
+ .verify = ndb_Verify,
+ .setFSync = ndb_SetFSync,
+ .ctrl = ndb_Ctrl,
+
+ .cursorInit = ndb_CursorInit,
+ .cursorFree = ndb_CursorFree,
+
+ .pkgdbNew = ndb_pkgdbNew,
+ .pkgdbPut = ndb_pkgdbPut,
+ .pkgdbDel = ndb_pkgdbDel,
+ .pkgdbGet = ndb_pkgdbGet,
+ .pkgdbKey = ndb_pkgdbKey,
+
+ .idxdbGet = ndb_idxdbGet,
+ .idxdbPut = ndb_idxdbPut,
+ .idxdbDel = ndb_idxdbDel,
+ .idxdbKey = ndb_idxdbKey
+};
+
diff --git a/lib/backend/ndb/rpmidx.c b/lib/backend/ndb/rpmidx.c
new file mode 100644
index 00000000..3a613efc
--- /dev/null
+++ b/lib/backend/ndb/rpmidx.c
@@ -0,0 +1,1228 @@
+#define _GNU_SOURCE
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/mman.h>
+
+#include <endian.h>
+
+#include "rpmidx.h"
+#include "rpmxdb.h"
+
+#define RPMRC_OK 0
+#define RPMRC_NOTFOUND 1
+#define RPMRC_FAIL 2
+
+/* Index database
+ *
+ *
+ * Layout:
+ * Header
+ * Slots
+ * Keys
+ *
+ * Each slot contains 12 bytes, they are split into a 8 byte
+ * and a 4 byte part:
+ * 4 bytes key offset + extra tag bits
+ * 4 bytes data
+ * 4 bytes data overflow
+ * The slot space first contains all 8 byte parts followed by all of
+ * the 4 byte overflow parts. This is done because most of the time we
+ * do not need the latter.
+ *
+ * If a new (key, pkgidx, datidx) tupel is added, the key is hashed with
+ * the popular murmur hash. The lower bits of the hash determine the start
+ * slot, parts of the higher bits are used as extra key equality check.
+ * The (pkgidx, datidx) pair is encoded in a (data, dataovl) pair, so that
+ * most of the time dataovl is zero.
+ *
+ * The code then checks the current entry at the start slot. If the key
+ * does not match, it advances to the next slot. If it matches, it also
+ * checks the data part for a match but it remembers the key offset.
+ * If the code found a (key, data, dataovl) match, nothing needs to be done.
+ *
+ * Otherwise, the code arrived at an empty slot. It then adds the key
+ * to the key space if it did not find a matching key, and then puts
+ * the encoded (key, data, dataovl) pair into the slot.
+ *
+ * Deleting a (key, data) pair is done by replacing the slot with a
+ * (-1, -1, 0) dummy entry.
+ *
+ */
+
+
+typedef struct rpmidxdb_s {
+ rpmpkgdb pkgdb; /* master database */
+
+ char *filename;
+ int fd; /* our file descriptor */
+ int flags;
+ int mode;
+
+ int rdonly;
+
+ /* xdb support */
+ rpmxdb xdb;
+ unsigned int xdbtag;
+ unsigned int xdbid;
+
+ unsigned char *head_mapped;
+ unsigned char *slot_mapped;
+ unsigned char *key_mapped;
+ unsigned int key_size;
+ unsigned int file_size;
+
+ unsigned int generation;
+ unsigned int nslots;
+ unsigned int usedslots;
+ unsigned int dummyslots;
+
+ unsigned int keyend;
+ unsigned int keyexcess;
+
+ unsigned int hmask;
+ unsigned int xmask;
+
+ unsigned int pagesize;
+} * rpmidxdb;
+
+static inline unsigned int le2h(unsigned char *p)
+{
+ return p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24;
+}
+
+static inline void h2le(unsigned int x, unsigned char *p)
+{
+ p[0] = x;
+ p[1] = x >> 8;
+ p[2] = x >> 16;
+ p[3] = x >> 24;
+}
+
+/* aligned versions */
+static inline unsigned int le2ha(unsigned char *p)
+{
+ unsigned int x = *(unsigned int *)p;
+ return le32toh(x);
+}
+
+static inline void h2lea(unsigned int x, unsigned char *p)
+{
+ *(unsigned int *)p = htole32(x);
+}
+
+/*** Header management ***/
+
+#define IDXDB_MAGIC ('R' | 'p' << 8 | 'm' << 16 | 'I' << 24)
+#define IDXDB_VERSION 0
+
+#define IDXDB_OFFSET_MAGIC 0
+#define IDXDB_OFFSET_VERSION 4
+#define IDXDB_OFFSET_GENERATION 8
+#define IDXDB_OFFSET_NSLOTS 12
+#define IDXDB_OFFSET_USEDSLOTS 16
+#define IDXDB_OFFSET_DUMMYSLOTS 20
+#define IDXDB_OFFSET_XMASK 24
+#define IDXDB_OFFSET_KEYEND 28
+#define IDXDB_OFFSET_KEYEXCESS 32
+#define IDXDB_OFFSET_OBSOLETE 36
+
+#define IDXDB_SLOT_OFFSET 64
+#define IDXDB_KEY_CHUNKSIZE 4096
+
+/* XDB subids */
+
+#define IDXDB_XDB_SUBTAG 0
+#define IDXDB_XDB_SUBTAG_REBUILD 1
+
+static void set_mapped(rpmidxdb idxdb, unsigned char *addr, unsigned int size)
+{
+ if (addr) {
+ idxdb->head_mapped = addr;
+ idxdb->slot_mapped = addr + IDXDB_SLOT_OFFSET;
+ idxdb->key_mapped = addr + IDXDB_SLOT_OFFSET + idxdb->nslots * 12;
+ idxdb->key_size = size - (IDXDB_SLOT_OFFSET + idxdb->nslots * 12);
+ idxdb->file_size = size;
+ } else {
+ idxdb->head_mapped = idxdb->slot_mapped = idxdb->key_mapped = 0;
+ idxdb->file_size = idxdb->key_size = 0;
+ }
+}
+
+/* XDB callbacks */
+static void mapcb(rpmxdb xdb, void *data, void *newaddr, size_t newsize) {
+ set_mapped((rpmidxdb)data, newaddr, (unsigned int)newsize);
+}
+
+static int rpmidxReadHeader(rpmidxdb idxdb);
+
+static int rpmidxMap(rpmidxdb idxdb)
+{
+ struct stat stb;
+ if (idxdb->xdb) {
+ if (rpmxdbMapBlob(idxdb->xdb, idxdb->xdbid, idxdb->rdonly ? O_RDONLY : O_RDWR, mapcb, idxdb))
+ return RPMRC_FAIL;
+ if (idxdb->file_size < 4096) {
+ rpmxdbUnmapBlob(idxdb->xdb, idxdb->xdbid);
+ return RPMRC_FAIL;
+ }
+ } else {
+ size_t size;
+ void *mapped;
+ if (fstat(idxdb->fd, &stb))
+ return RPMRC_FAIL;
+ size = stb.st_size;
+ if (size < 4096)
+ return RPMRC_FAIL;
+ /* round up for mmap */
+ size = (size + idxdb->pagesize - 1) & ~(idxdb->pagesize - 1);
+ mapped = mmap(0, size, idxdb->rdonly ? PROT_READ : PROT_READ | PROT_WRITE, MAP_SHARED, idxdb->fd, 0);
+ if (mapped == MAP_FAILED)
+ return RPMRC_FAIL;
+ set_mapped(idxdb, mapped, (unsigned int)stb.st_size);
+ }
+ return RPMRC_OK;
+}
+
+static void rpmidxUnmap(rpmidxdb idxdb)
+{
+ if (!idxdb->head_mapped)
+ return;
+ if (idxdb->xdb) {
+ rpmxdbUnmapBlob(idxdb->xdb, idxdb->xdbid);
+ } else {
+ size_t size = idxdb->file_size;
+ /* round up for munmap */
+ size = (size + idxdb->pagesize - 1) & ~(idxdb->pagesize - 1);
+ munmap(idxdb->head_mapped, size);
+ set_mapped(idxdb, 0, 0);
+ }
+}
+
+static int rpmidxReadHeader(rpmidxdb idxdb);
+
+/* re-open file to get the new version */
+static int rpmidxHandleObsolete(rpmidxdb idxdb)
+{
+ int nfd;
+ struct stat stb1, stb2;
+
+ if (fstat(idxdb->fd, &stb1))
+ return RPMRC_FAIL;
+ nfd = open(idxdb->filename, idxdb->rdonly ? O_RDONLY : O_RDWR, 0);
+ if (nfd == -1)
+ return RPMRC_FAIL;
+ if (fstat(nfd, &stb2)) {
+ close(nfd);
+ return RPMRC_FAIL;
+ }
+ if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino)
+ return RPMRC_FAIL; /* openend the same obsolete file */
+ rpmidxUnmap(idxdb);
+ close(idxdb->fd);
+ idxdb->fd = nfd;
+ return rpmidxReadHeader(idxdb); /* re-try with new file */
+}
+
+static int rpmidxReadHeader(rpmidxdb idxdb)
+{
+ if (idxdb->head_mapped) {
+ if (le2ha(idxdb->head_mapped + IDXDB_OFFSET_GENERATION) == idxdb->generation)
+ return RPMRC_OK;
+ rpmidxUnmap(idxdb);
+ }
+ idxdb->nslots = 0;
+ if (rpmidxMap(idxdb))
+ return RPMRC_FAIL;
+
+ if (le2ha(idxdb->head_mapped + IDXDB_OFFSET_MAGIC) != IDXDB_MAGIC) {
+ rpmidxUnmap(idxdb);
+ return RPMRC_FAIL;
+ }
+ if (!idxdb->xdb && le2ha(idxdb->head_mapped + IDXDB_OFFSET_OBSOLETE))
+ return rpmidxHandleObsolete(idxdb);
+ idxdb->generation = le2ha(idxdb->head_mapped + IDXDB_OFFSET_GENERATION);
+ idxdb->nslots = le2ha(idxdb->head_mapped + IDXDB_OFFSET_NSLOTS);
+ idxdb->usedslots = le2ha(idxdb->head_mapped + IDXDB_OFFSET_USEDSLOTS);
+ idxdb->dummyslots = le2ha(idxdb->head_mapped + IDXDB_OFFSET_DUMMYSLOTS);
+ idxdb->xmask = le2ha(idxdb->head_mapped + IDXDB_OFFSET_XMASK);
+ idxdb->keyend = le2ha(idxdb->head_mapped + IDXDB_OFFSET_KEYEND);
+ idxdb->keyexcess = le2ha(idxdb->head_mapped + IDXDB_OFFSET_KEYEXCESS);
+
+ idxdb->hmask = idxdb->nslots - 1;
+
+ /* now that we know nslots we can split between slots and keys */
+ if (idxdb->file_size <= IDXDB_SLOT_OFFSET + idxdb->nslots * 12) {
+ rpmidxUnmap(idxdb); /* too small, somthing is wrong */
+ return RPMRC_FAIL;
+ }
+ idxdb->key_mapped = idxdb->slot_mapped + idxdb->nslots * 12;
+ idxdb->key_size = idxdb->file_size - (IDXDB_SLOT_OFFSET + idxdb->nslots * 12);
+ return RPMRC_OK;
+}
+
+static int rpmidxWriteHeader(rpmidxdb idxdb)
+{
+ if (!idxdb->head_mapped)
+ return RPMRC_FAIL;
+ h2lea(IDXDB_MAGIC, idxdb->head_mapped + IDXDB_OFFSET_MAGIC);
+ h2lea(IDXDB_VERSION, idxdb->head_mapped + IDXDB_OFFSET_VERSION);
+ h2lea(idxdb->generation, idxdb->head_mapped + IDXDB_OFFSET_GENERATION);
+ h2lea(idxdb->nslots, idxdb->head_mapped + IDXDB_OFFSET_NSLOTS);
+ h2lea(idxdb->usedslots, idxdb->head_mapped + IDXDB_OFFSET_USEDSLOTS);
+ h2lea(idxdb->dummyslots, idxdb->head_mapped + IDXDB_OFFSET_DUMMYSLOTS);
+ h2lea(idxdb->xmask, idxdb->head_mapped + IDXDB_OFFSET_XMASK);
+ h2lea(idxdb->keyend, idxdb->head_mapped + IDXDB_OFFSET_KEYEND);
+ h2lea(idxdb->keyexcess, idxdb->head_mapped + IDXDB_OFFSET_KEYEXCESS);
+ return RPMRC_OK;
+}
+
+static inline void updateUsedslots(rpmidxdb idxdb)
+{
+ h2lea(idxdb->usedslots, idxdb->head_mapped + IDXDB_OFFSET_USEDSLOTS);
+}
+
+static inline void updateDummyslots(rpmidxdb idxdb)
+{
+ h2lea(idxdb->dummyslots, idxdb->head_mapped + IDXDB_OFFSET_DUMMYSLOTS);
+}
+
+static inline void updateKeyend(rpmidxdb idxdb)
+{
+ h2lea(idxdb->keyend, idxdb->head_mapped + IDXDB_OFFSET_KEYEND);
+}
+
+static inline void updateKeyexcess(rpmidxdb idxdb)
+{
+ h2lea(idxdb->keyexcess, idxdb->head_mapped + IDXDB_OFFSET_KEYEXCESS);
+}
+
+static inline void bumpGeneration(rpmidxdb idxdb)
+{
+ idxdb->generation++;
+ h2lea(idxdb->generation, idxdb->head_mapped + IDXDB_OFFSET_GENERATION);
+}
+
+static int createempty(rpmidxdb idxdb, off_t off, size_t size)
+{
+ char buf[4096];
+ memset(buf, 0, sizeof(buf));
+ while (size >= 4096) {
+ if (pwrite(idxdb->fd, buf, 4096, off) != 4096)
+ return RPMRC_FAIL;
+ off += 4096;
+ size -= 4096;
+ }
+ if (size > 0 && pwrite(idxdb->fd, buf, size , off) != size)
+ return RPMRC_FAIL;
+ return RPMRC_OK;
+}
+
+/*** Key management ***/
+
+#define MURMUR_M 0x5bd1e995
+
+static unsigned int murmurhash(const unsigned char *s, unsigned int l)
+{
+ unsigned int h = l * MURMUR_M;
+
+ while (l >= 4) {
+ h += s[0] | s[1] << 8 | s[2] << 16 | s[3] << 24;
+ h *= MURMUR_M;
+ h ^= h >> 16;
+ s += 4;
+ l -= 4;
+ }
+ switch (l) {
+ case 3:
+ h += s[2] << 16;
+ case 2:
+ h += s[1] << 8;
+ case 1:
+ h += s[0];
+ h *= MURMUR_M;
+ h ^= h >> 16;
+ default:
+ break;
+ }
+ h *= MURMUR_M;
+ h ^= h >> 10;
+ h *= MURMUR_M;
+ h ^= h >> 17;
+ return h;
+}
+
+static inline unsigned int decodekeyl(unsigned char *p, unsigned int *hl)
+{
+ if (*p != 255) {
+ *hl = 1;
+ return *p;
+ } else if (p[1] != 255 || p[2] != 255) {
+ *hl = 3;
+ return p[1] | p[2] << 8;
+ } else {
+ *hl = 7;
+ return p[3] | p[4] << 8 | p[5] << 16 | p[6] << 24;
+ }
+}
+
+static inline void encodekeyl(unsigned char *p, unsigned int keyl)
+{
+ if (keyl && keyl < 255) {
+ p[0] = keyl;
+ } else if (keyl < 65535) {
+ p[0] = 255;
+ p[1] = keyl;
+ p[2] = keyl >> 8;
+ } else {
+ p[0] = 255;
+ p[1] = 255;
+ p[2] = 255;
+ p[3] = keyl;
+ p[4] = keyl >> 8;
+ p[5] = keyl >> 16;
+ p[6] = keyl >> 24;
+ }
+}
+
+static inline unsigned int keylsize(unsigned int keyl)
+{
+ return keyl && keyl < 255 ? 1 : keyl < 65535 ? 3 : 7;
+}
+
+static inline int equalkey(rpmidxdb idxdb, unsigned int off, const unsigned char *key, unsigned int keyl)
+{
+ unsigned char *p;
+ if (off + keyl + 1 > idxdb->keyend)
+ return 0;
+ p = idxdb->key_mapped + off;
+ if (keyl && keyl < 255) {
+ if (*p != keyl)
+ return 0;
+ p += 1;
+ } else if (keyl < 65535) {
+ if (p[0] != 255 || (p[1] | p[2] << 8) != keyl)
+ return 0;
+ p += 3;
+ } else {
+ if (p[0] != 255 || p[1] != 255 || p[2] != 255 || (p[3] | p[4] << 8 | p[5] << 16 | p[6] << 24) != keyl)
+ return 0;
+ p += 7;
+ }
+ if (keyl && memcmp(key, p, keyl))
+ return 0;
+ return 1;
+}
+
+static int addkeypage(rpmidxdb idxdb) {
+ unsigned int addsize = idxdb->pagesize > IDXDB_KEY_CHUNKSIZE ? idxdb->pagesize : IDXDB_KEY_CHUNKSIZE;
+
+ if (idxdb->xdb) {
+ if (rpmxdbResizeBlob(idxdb->xdb, idxdb->xdbid, idxdb->file_size + addsize))
+ return RPMRC_FAIL;
+ } else {
+ /* don't use ftruncate because we want to create a "backed" page */
+ void *newaddr;
+ size_t oldsize, newsize;
+ if (createempty(idxdb, idxdb->file_size, addsize))
+ return RPMRC_FAIL;
+ oldsize = idxdb->file_size;
+ newsize = idxdb->file_size + addsize;
+ /* round up for mremap */
+ oldsize = (oldsize + idxdb->pagesize - 1) & ~(idxdb->pagesize - 1);
+ newsize = (newsize + idxdb->pagesize - 1) & ~(idxdb->pagesize - 1);
+ newaddr = mremap(idxdb->head_mapped, oldsize, newsize, MREMAP_MAYMOVE);
+ if (newaddr == MAP_FAILED)
+ return RPMRC_FAIL;
+ set_mapped(idxdb, newaddr, idxdb->file_size + addsize);
+ }
+ return RPMRC_OK;
+}
+
+static int addnewkey(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int *keyoffp)
+{
+ int hl = keylsize(keyl);
+ while (idxdb->key_size - idxdb->keyend < hl + keyl) {
+ if (addkeypage(idxdb))
+ return RPMRC_FAIL;
+ }
+ encodekeyl(idxdb->key_mapped + idxdb->keyend, keyl);
+ if (keyl)
+ memcpy(idxdb->key_mapped + idxdb->keyend + hl, key, keyl);
+ *keyoffp = idxdb->keyend;
+ idxdb->keyend += hl + keyl;
+ updateKeyend(idxdb);
+ return RPMRC_OK;
+}
+
+
+/*** Data encoding/decoding ***/
+
+/* Encode a (pkgidx, datidx) tuple into a (data, ovldata) tuple in a way
+ * that most of the time ovldata will be zero. */
+static inline unsigned int encodedata(rpmidxdb idxdb, unsigned int pkgidx, unsigned int datidx, unsigned int *ovldatap)
+{
+ if (pkgidx < 0x100000 && datidx < 0x400) {
+ *ovldatap = 0;
+ return pkgidx | datidx << 20;
+ } else if (pkgidx < 0x1000000 && datidx < 0x40) {
+ *ovldatap = 0;
+ return pkgidx | datidx << 24 | 0x40000000;
+ } else {
+ *ovldatap = pkgidx;
+ return datidx | 0x80000000;
+ }
+}
+
+/* Decode (data, ovldata) back into (pkgidx, datidx) */
+static inline unsigned int decodedata(rpmidxdb idxdb, unsigned int data, unsigned int ovldata, unsigned int *datidxp)
+{
+ if (data & 0x80000000) {
+ *datidxp = data ^ 0x80000000;
+ return ovldata;
+ } else if (data & 0x40000000) {
+ *datidxp = (data ^ 0x40000000) >> 24;
+ return data & 0xffffff;
+ } else {
+ *datidxp = data >> 20;
+ return data & 0xfffff;
+ }
+}
+
+
+/*** Rebuild helpers ***/
+
+/* copy a single data entry into the new database */
+static inline void copyentry(rpmidxdb idxdb, unsigned int keyh, unsigned int newkeyoff, unsigned int data, unsigned int ovldata)
+{
+ unsigned int h, hh = 7;
+ unsigned char *ent;
+ unsigned int hmask = idxdb->hmask;
+ unsigned int x;
+
+ /* find an empty slot */
+ for (h = keyh & hmask;; h = (h + hh++) & hmask) {
+ ent = idxdb->slot_mapped + 8 * h;
+ x = le2ha(ent);
+ if (x == 0)
+ break;
+ }
+ /* write data */
+ h2lea(newkeyoff, ent);
+ h2lea(data, ent + 4);
+ if (ovldata)
+ h2lea(ovldata, idxdb->slot_mapped + idxdb->nslots * 8 + 4 * h);
+ idxdb->usedslots++;
+}
+
+/* copy all entries belonging to a single key from the old database into the new database */
+static inline void copykeyentries(const unsigned char *key, unsigned int keyl, rpmidxdb idxdb, unsigned int oldkeyoff, rpmidxdb nidxdb, unsigned int newkeyoff, unsigned char *done)
+{
+ unsigned int h, hh;
+ unsigned int keyh = murmurhash(key, keyl);
+ unsigned int hmask = idxdb->hmask;
+
+ oldkeyoff |= keyh & idxdb->xmask;
+ newkeyoff |= keyh & nidxdb->xmask;
+ for (h = keyh & hmask, hh = 7; ; h = (h + hh++) & hmask) {
+ unsigned char *ent = idxdb->slot_mapped + 8 * h;
+ unsigned int data, ovldata;
+ unsigned int x = le2ha(ent);
+ if (x == 0)
+ break;
+ if (x != oldkeyoff)
+ continue;
+ data = le2ha(ent + 4);
+ ovldata = (data & 0x80000000) ? le2ha(idxdb->slot_mapped + idxdb->nslots * 8 + 4 * h) : 0;
+ copyentry(nidxdb, keyh, newkeyoff, data, ovldata);
+ done[h >> 3] |= 1 << (h & 7);
+ }
+}
+
+static int rpmidxRebuildInternal(rpmidxdb idxdb)
+{
+ struct rpmidxdb_s nidxdb_s, *nidxdb;
+ unsigned int i, nslots;
+ unsigned int keyend, keyoff, xmask;
+ unsigned char *done;
+ unsigned char *ent;
+ unsigned int file_size, key_size, xfile_size;
+
+ nidxdb = &nidxdb_s;
+ memset(nidxdb, 0, sizeof(*nidxdb));
+ nidxdb->pagesize = sysconf(_SC_PAGE_SIZE);
+
+ /* calculate nslots the hard way, don't trust usedslots */
+ nslots = 0;
+ for (i = 0, ent = idxdb->slot_mapped; i < idxdb->nslots; i++, ent += 8) {
+ unsigned int x = le2ha(ent);
+ if (x != 0 && x != -1)
+ nslots++;
+ }
+ if (nslots < 256)
+ nslots = 256;
+ while (nslots & (nslots - 1))
+ nslots = nslots & (nslots - 1);
+ nslots *= 4;
+
+ nidxdb->nslots = nslots;
+ nidxdb->hmask = nslots - 1;
+
+ /* calculate the new key space size */
+ key_size = idxdb->keyend;
+ if (key_size < IDXDB_KEY_CHUNKSIZE)
+ key_size = IDXDB_KEY_CHUNKSIZE;
+ file_size = IDXDB_SLOT_OFFSET + nslots * 12 + key_size;
+
+ /* round file size to multiple of the page size */
+ if (file_size & (nidxdb->pagesize - 1)) {
+ unsigned int add = nidxdb->pagesize - (file_size & (nidxdb->pagesize - 1));
+ file_size += add;
+ key_size += add;
+ }
+
+ /* calculate xmask, leave at least 8192 bytes headroom for key space */
+ for (xmask = 0x00010000; xmask && xmask < key_size + 8192; xmask <<= 1)
+ ;
+ xmask = xmask ? ~(xmask - 1) : 0;
+ nidxdb->xmask = xmask;
+
+ /* create new database */
+ if (idxdb->xdb) {
+ nidxdb->xdb = idxdb->xdb;
+ nidxdb->xdbtag = idxdb->xdbtag;
+ if (rpmxdbLookupBlob(nidxdb->xdb, &nidxdb->xdbid, idxdb->xdbtag, IDXDB_XDB_SUBTAG_REBUILD, O_CREAT|O_TRUNC)) {
+ return RPMRC_FAIL;
+ }
+ if (rpmxdbResizeBlob(nidxdb->xdb, nidxdb->xdbid, file_size)) {
+ return RPMRC_FAIL;
+ }
+ if (rpmidxMap(nidxdb)) {
+ return RPMRC_FAIL;
+ }
+ } else {
+ void *mapped;
+ nidxdb->filename = malloc(strlen(idxdb->filename) + 8);
+ if (!nidxdb->filename)
+ return RPMRC_FAIL;
+ sprintf(nidxdb->filename, "%s-XXXXXX", idxdb->filename);
+ nidxdb->fd = mkstemp(nidxdb->filename);
+ if (nidxdb->fd == -1) {
+ free(nidxdb->filename);
+ return RPMRC_FAIL;
+ }
+ if (createempty(nidxdb, 0, file_size)) {
+ close(nidxdb->fd);
+ unlink(nidxdb->filename);
+ free(nidxdb->filename);
+ return RPMRC_FAIL;
+ }
+ mapped = mmap(0, file_size, idxdb->rdonly ? PROT_READ : PROT_READ | PROT_WRITE, MAP_SHARED, nidxdb->fd, 0);
+ if (mapped == MAP_FAILED) {
+ close(nidxdb->fd);
+ unlink(nidxdb->filename);
+ free(nidxdb->filename);
+ return RPMRC_FAIL;
+ }
+ set_mapped(nidxdb, mapped, file_size);
+ }
+
+ /* copy all entries */
+ done = calloc(idxdb->nslots / 8 + 1, 1);
+ if (!done) {
+ rpmidxUnmap(nidxdb);
+ if (!idxdb->xdb) {
+ close(nidxdb->fd);
+ unlink(nidxdb->filename);
+ free(nidxdb->filename);
+ }
+ return RPMRC_FAIL;
+ }
+ keyend = 1;
+ for (i = 0, ent = idxdb->slot_mapped; i < idxdb->nslots; i++, ent += 8) {
+ unsigned int x = le2ha(ent);
+ unsigned char *key;
+ unsigned int keyl, hl;
+
+ if (x == 0 || x == -1)
+ continue;
+ if (done[i >> 3] & (1 << (i & 7))) {
+ continue; /* we already did that one */
+ }
+ x &= ~idxdb->xmask;
+ key = idxdb->key_mapped + x;
+ keyl = decodekeyl(key, &hl);
+ keyoff = keyend;
+ keyend += hl + keyl;
+ memcpy(nidxdb->key_mapped + keyoff, key, hl + keyl);
+ copykeyentries(key + hl, keyl, idxdb, x, nidxdb, keyoff, done);
+ }
+ free(done);
+ nidxdb->keyend = keyend;
+ nidxdb->generation = idxdb->generation + 1;
+ rpmidxWriteHeader(nidxdb);
+ rpmidxUnmap(nidxdb);
+
+ /* shrink if we have allocated excessive key space */
+ xfile_size = file_size - key_size + keyend + IDXDB_KEY_CHUNKSIZE;
+ xfile_size = (xfile_size + nidxdb->pagesize - 1) & ~(nidxdb->pagesize - 1);
+ if (xfile_size < file_size) {
+ if (nidxdb->xdb) {
+ rpmxdbResizeBlob(nidxdb->xdb, nidxdb->xdbid, xfile_size);
+ } else {
+ ftruncate(nidxdb->fd, xfile_size);
+ }
+ }
+
+ /* now switch over to new database */
+ if (idxdb->xdb) {
+ rpmidxUnmap(idxdb);
+ if (rpmxdbRenameBlob(nidxdb->xdb, &nidxdb->xdbid, idxdb->xdbtag, IDXDB_XDB_SUBTAG))
+ return RPMRC_FAIL;
+ idxdb->xdbid = nidxdb->xdbid;
+ } else {
+ if (rename(nidxdb->filename, idxdb->filename)) {
+ close(nidxdb->fd);
+ unlink(nidxdb->filename);
+ free(nidxdb->filename);
+ return RPMRC_FAIL;
+ }
+ if (idxdb->head_mapped) {
+ h2lea(1, idxdb->head_mapped + IDXDB_OFFSET_OBSOLETE);
+ bumpGeneration(idxdb);
+ rpmidxUnmap(idxdb);
+ }
+ free(nidxdb->filename);
+ close(idxdb->fd);
+ idxdb->fd = nidxdb->fd;
+ }
+ if (rpmidxReadHeader(idxdb))
+ return RPMRC_FAIL;
+ return RPMRC_OK;
+}
+
+/* check if we need to rebuild the index. We need to do this if
+ * - there are too many used slot, so hashing is inefficient
+ * - there is too much key excess (i.e. holes in the keys)
+ * - our keys grew so much that they need more bits
+ */
+static int rpmidxCheck(rpmidxdb idxdb)
+{
+ if (idxdb->usedslots * 2 > idxdb->nslots ||
+ (idxdb->keyexcess > 4096 && idxdb->keyexcess * 4 > idxdb->keyend) ||
+ idxdb->keyend >= ~idxdb->xmask) {
+ if (rpmidxRebuildInternal(idxdb))
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static int rpmidxPutInternal(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int pkgidx, unsigned int datidx)
+{
+ unsigned int keyh = murmurhash(key, keyl);
+ unsigned int keyoff = 0;
+ unsigned int freeh = -1;
+ unsigned int x, h, hh = 7;
+ unsigned int hmask;
+ unsigned int xmask;
+ unsigned char *ent;
+ unsigned int data, ovldata;
+
+ if (datidx >= 0x80000000)
+ return RPMRC_FAIL;
+ if (rpmidxCheck(idxdb))
+ return RPMRC_FAIL;
+ data = encodedata(idxdb, pkgidx, datidx, &ovldata);
+ hmask = idxdb->hmask;
+ xmask = idxdb->xmask;
+ for (h = keyh & hmask; ; h = (h + hh++) & hmask) {
+ ent = idxdb->slot_mapped + 8 * h;
+ x = le2ha(ent);
+ if (x == 0) /* reached an empty slot */
+ break;
+ if (x == -1) {
+ freeh = h; /* found a dummy slot, remember the position */
+ continue;
+ }
+ if (!keyoff) {
+ if (((x ^ keyh) & xmask) != 0)
+ continue;
+ if (!equalkey(idxdb, x & ~xmask, key, keyl))
+ continue;
+ keyoff = x;
+ }
+ if (keyoff != x)
+ continue;
+ /* string matches, check data/ovldata */
+ if (le2ha(ent + 4) == data) {
+ if (!ovldata || le2ha(idxdb->slot_mapped + idxdb->nslots * 8 + 4 * h) == ovldata)
+ return RPMRC_OK; /* already in database */
+ }
+ /* continue searching */
+ }
+ if (!keyoff) {
+ /* we did not find this key. add it */
+ if (addnewkey(idxdb, key, keyl, &keyoff))
+ return RPMRC_FAIL;
+ keyoff |= keyh & xmask; /* tag it with the extra bits */
+ /* re-calculate ent, addnewkey may have changed the mapping! */
+ ent = idxdb->slot_mapped + 8 * h;
+ }
+ if (freeh == -1) {
+ /* did not find a dummy slot, so use the current empty slot */
+ idxdb->usedslots++;
+ updateUsedslots(idxdb);
+ } else {
+ /* re-use dummy slot */
+ h = freeh;
+ ent = idxdb->slot_mapped + 8 * h;
+ if (idxdb->dummyslots) {
+ idxdb->dummyslots--;
+ updateDummyslots(idxdb);
+ }
+ }
+ h2lea(keyoff, ent);
+ h2lea(data, ent + 4);
+ if (ovldata)
+ h2lea(ovldata, idxdb->slot_mapped + idxdb->nslots * 8 + 4 * h);
+ bumpGeneration(idxdb);
+ return RPMRC_OK;
+}
+
+static int rpmidxDelInternal(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int pkgidx, unsigned int datidx)
+{
+ unsigned int keyoff = 0;
+ unsigned int keyh = murmurhash(key, keyl);
+ unsigned int hmask;
+ unsigned int xmask;
+ unsigned int x, h, hh = 7;
+ int otherusers = 0;
+ unsigned int data, ovldata;
+
+ if (datidx >= 0x80000000)
+ return RPMRC_FAIL;
+ if (rpmidxCheck(idxdb))
+ return RPMRC_FAIL;
+ data = encodedata(idxdb, pkgidx, datidx, &ovldata);
+ hmask = idxdb->hmask;
+ xmask = idxdb->xmask;
+ for (h = keyh & hmask; ; h = (h + hh++) & hmask) {
+ unsigned char *ent = idxdb->slot_mapped + 8 * h;
+ x = le2ha(ent);
+ if (x == 0)
+ break;
+ if (x == -1)
+ continue;
+ if (!keyoff) {
+ if (((x ^ keyh) & xmask) != 0)
+ continue;
+ if (!equalkey(idxdb, x & ~xmask, key, keyl))
+ continue;
+ keyoff = x;
+ }
+ if (keyoff != x)
+ continue;
+ /* key matches, check data/ovldata */
+ if (le2ha(ent + 4) != data) {
+ otherusers = 1;
+ continue;
+ }
+ if (ovldata && le2ha(idxdb->slot_mapped + idxdb->nslots * 8 + 4 * h) != ovldata) {
+ otherusers = 1;
+ continue;
+ }
+ /* found a match. convert entry to a dummy slot */
+ h2lea(-1, ent);
+ h2lea(-1, ent + 4);
+ if (ovldata)
+ h2lea(0, idxdb->slot_mapped + idxdb->nslots * 8 + 4 * h);
+ idxdb->dummyslots++;
+ updateDummyslots(idxdb);
+ /* continue searching (so that we find other users of the key...) */
+ }
+ if (keyoff && !otherusers) {
+ /* key is no longer in use. free it */
+ int hl = keylsize(keyl);
+ memset(idxdb->key_mapped + (keyoff & ~xmask), 0, hl + keyl);
+ idxdb->keyexcess += hl + keyl;
+ updateKeyexcess(idxdb);
+ }
+ if (keyoff)
+ bumpGeneration(idxdb);
+ return RPMRC_OK;
+}
+
+static int rpmidxGetInternal(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int **pkgidxlistp, unsigned int *pkgidxnump)
+{
+ unsigned int keyoff = 0;
+ unsigned int keyh = murmurhash(key, keyl);
+ unsigned int hmask = idxdb->hmask;
+ unsigned int xmask = idxdb->xmask;
+ unsigned int x, h, hh = 7;
+ unsigned int data, ovldata, datidx;
+ unsigned int nhits = 0;
+ unsigned int *hits = 0;
+ for (h = keyh & hmask; ; h = (h + hh++) & hmask) {
+ unsigned char *ent = idxdb->slot_mapped + 8 * h;
+ x = le2ha(ent);
+ if (x == 0)
+ break;
+ if (x == -1)
+ continue;
+ if (!keyoff) {
+ if (((x ^ keyh) & xmask) != 0)
+ continue;
+ if (!equalkey(idxdb, x & ~xmask, key, keyl))
+ continue;
+ keyoff = x;
+ }
+ if (keyoff != x)
+ continue;
+ if ((nhits & 15) == 0) {
+ if (!hits) {
+ hits = malloc(16 * sizeof(unsigned int));
+ } else {
+ hits = realloc(hits, (nhits + 16) * sizeof(unsigned int));
+ }
+ if (!hits)
+ return RPMRC_FAIL;
+ }
+ data = le2ha(ent + 4);
+ ovldata = (data & 0x80000000) ? le2ha(idxdb->slot_mapped + idxdb->nslots * 8 + 4 * h) : 0;
+ hits[nhits++] = decodedata(idxdb, data, ovldata, &datidx);
+ hits[nhits++] = datidx;
+ }
+ *pkgidxlistp = hits;
+ *pkgidxnump = nhits;
+ return nhits ? RPMRC_OK : RPMRC_NOTFOUND;
+}
+
+static int rpmidxListSort_cmp(const void *a, const void *b)
+{
+ return ((unsigned int *)a)[1] - ((unsigned int *)b)[1];
+}
+
+/* sort in hash offset order, so that we get sequential acceess */
+static void rpmidxListSort(rpmidxdb idxdb, unsigned int *keylist, unsigned int nkeylist, unsigned char *data)
+{
+ unsigned int i, *arr;
+ if (nkeylist < 2 * 2)
+ return;
+ arr = malloc(nkeylist * sizeof(unsigned int));
+ if (!arr)
+ return;
+ for (i = 0; i < nkeylist; i += 2) {
+ arr[i] = i;
+ arr[i + 1] = murmurhash(data + keylist[i], keylist[i + 1]) & idxdb->hmask;
+ }
+ qsort(arr, nkeylist / 2, 2 * sizeof(unsigned int), rpmidxListSort_cmp);
+ for (i = 0; i < nkeylist; i += 2) {
+ unsigned int ai = arr[i];
+ arr[i] = keylist[ai];
+ arr[i + 1] = keylist[ai + 1];
+ }
+ memcpy(keylist, arr, nkeylist * sizeof(unsigned int));
+ free(arr);
+}
+
+static int rpmidxListInternal(rpmidxdb idxdb, unsigned int **keylistp, unsigned int *nkeylistp, unsigned char **datap)
+{
+ unsigned int *keylist = 0;
+ unsigned int nkeylist = 0;
+ unsigned char *data, *terminate, *key, *keyendp;
+
+ data = malloc(idxdb->keyend + 1); /* +1 so we can terminate the last key */
+ if (!data)
+ return RPMRC_FAIL;
+ memcpy(data, idxdb->key_mapped, idxdb->keyend);
+ keylist = malloc(16 * sizeof(*keylist));
+ if (!keylist) {
+ free(data);
+ return RPMRC_FAIL;
+ }
+ terminate = 0;
+ for (key = data + 1, keyendp = data + idxdb->keyend; key < keyendp; ) {
+ unsigned int hl, keyl;
+ if (!*key) {
+ key++;
+ continue;
+ }
+ if ((nkeylist & 15) == 0) {
+ unsigned int *kl = realloc(keylist, (nkeylist + 16) * sizeof(*keylist));
+ if (!kl) {
+ free(keylist);
+ free(data);
+ return RPMRC_FAIL;
+ }
+ keylist = kl;
+ }
+ keyl = decodekeyl(key, &hl);
+ keylist[nkeylist++] = key + hl - data;
+ keylist[nkeylist++] = keyl;
+ key += hl + keyl;
+ if (terminate)
+ *terminate = 0;
+ terminate = key;
+ }
+ if (terminate)
+ *terminate = 0;
+ rpmidxListSort(idxdb, keylist, nkeylist, data);
+ *keylistp = keylist;
+ *nkeylistp = nkeylist;
+ *datap = data;
+ return RPMRC_OK;
+}
+
+
+static int rpmidxInitInternal(rpmidxdb idxdb)
+{
+ if (idxdb->xdb) {
+ unsigned int id;
+ int rc = rpmxdbLookupBlob(idxdb->xdb, &id, idxdb->xdbtag, IDXDB_XDB_SUBTAG, 0);
+ if (rc == RPMRC_OK && id) {
+ idxdb->xdbid = id;
+ return RPMRC_OK; /* somebody else was faster */
+ }
+ if (rc && rc != RPMRC_NOTFOUND)
+ return rc;
+ } else {
+ struct stat stb;
+ if (stat(idxdb->filename, &stb))
+ return RPMRC_FAIL;
+ if (stb.st_size) /* somebody else was faster */
+ return rpmidxHandleObsolete(idxdb);
+ }
+ return rpmidxRebuildInternal(idxdb);
+}
+
+static int rpmidxLock(rpmidxdb idxdb, int excl)
+{
+ if (excl && idxdb->rdonly)
+ return RPMRC_FAIL;
+ if (idxdb->xdb)
+ return rpmxdbLock(idxdb->xdb, excl);
+ else
+ return rpmpkgLock(idxdb->pkgdb, excl);
+}
+
+static int rpmidxUnlock(rpmidxdb idxdb, int excl)
+{
+ if (idxdb->xdb)
+ return rpmxdbUnlock(idxdb->xdb, excl);
+ else
+ return rpmpkgUnlock(idxdb->pkgdb, excl);
+}
+
+static int rpmidxLockReadHeader(rpmidxdb idxdb, int excl)
+{
+ if (rpmidxLock(idxdb, excl))
+ return RPMRC_FAIL;
+ if (rpmidxReadHeader(idxdb)) {
+ rpmidxUnlock(idxdb, excl);
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static int rpmidxInit(rpmidxdb idxdb)
+{
+ int rc;
+ if (rpmidxLock(idxdb, 1))
+ return RPMRC_FAIL;
+ rc = rpmidxInitInternal(idxdb);
+ rpmidxUnlock(idxdb, 1);
+ return rc;
+}
+
+int rpmidxOpen(rpmidxdb *idxdbp, rpmpkgdb pkgdb, const char *filename, int flags, int mode)
+{
+ struct stat stb;
+ rpmidxdb idxdb;
+
+ *idxdbp = 0;
+ idxdb = calloc(1, sizeof(*idxdb));
+ if (!idxdb)
+ return RPMRC_FAIL;
+ idxdb->filename = strdup(filename);
+ if (!idxdb->filename) {
+ free(idxdb);
+ return RPMRC_FAIL;
+ }
+ if ((flags & (O_RDONLY|O_RDWR)) == O_RDONLY)
+ idxdb->rdonly = 1;
+ if ((idxdb->fd = open(filename, flags, mode)) == -1) {
+ return RPMRC_FAIL;
+ }
+ if (fstat(idxdb->fd, &stb)) {
+ close(idxdb->fd);
+ free(idxdb->filename);
+ free(idxdb);
+ return RPMRC_FAIL;
+ }
+ idxdb->pkgdb = pkgdb;
+ idxdb->flags = flags;
+ idxdb->mode = mode;
+ idxdb->pagesize = sysconf(_SC_PAGE_SIZE);
+ if (stb.st_size == 0) {
+ if (rpmidxInit(idxdb)) {
+ close(idxdb->fd);
+ free(idxdb->filename);
+ free(idxdb);
+ return RPMRC_FAIL;
+ }
+ }
+ *idxdbp = idxdb;
+ return RPMRC_OK;
+}
+
+int rpmidxOpenXdb(rpmidxdb *idxdbp, rpmpkgdb pkgdb, rpmxdb xdb, unsigned int xdbtag)
+{
+ rpmidxdb idxdb;
+ unsigned int id;
+ *idxdbp = 0;
+ int rc;
+
+ if (rpmxdbLock(xdb, 0))
+ return RPMRC_FAIL;
+ rc = rpmxdbLookupBlob(xdb, &id, xdbtag, IDXDB_XDB_SUBTAG, 0);
+ if (rc == RPMRC_NOTFOUND)
+ id = 0;
+ else if (rc) {
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_FAIL;
+ }
+ idxdb = calloc(1, sizeof(*idxdb));
+ if (!idxdb) {
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_FAIL;
+ }
+ idxdb->fd = -1;
+ idxdb->xdb = xdb;
+ idxdb->xdbtag = xdbtag;
+ idxdb->xdbid = id;
+ idxdb->pkgdb = pkgdb;
+ idxdb->pagesize = sysconf(_SC_PAGE_SIZE);
+ if (rpmxdbIsRdonly(xdb))
+ idxdb->rdonly = 1;
+ if (!id) {
+ if (rpmidxInit(idxdb)) {
+ free(idxdb);
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_FAIL;
+ }
+ }
+ *idxdbp = idxdb;
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_OK;
+}
+
+int rpmidxDelXdb(rpmpkgdb pkgdb, rpmxdb xdb, unsigned int xdbtag)
+{
+ unsigned int id;
+ int rc;
+ if (rpmxdbLock(xdb, 1))
+ return RPMRC_FAIL;
+ rc = rpmxdbLookupBlob(xdb, &id, xdbtag, IDXDB_XDB_SUBTAG, 0);
+ if (rc == RPMRC_NOTFOUND)
+ id = 0;
+ else if (rc) {
+ rpmxdbUnlock(xdb, 1);
+ return rc;
+ }
+ if (id && rpmxdbDelBlob(xdb, id)) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_OK;
+}
+
+void rpmidxClose(rpmidxdb idxdb)
+{
+ rpmidxUnmap(idxdb);
+ if (idxdb->fd >= 0) {
+ close(idxdb->fd);
+ idxdb->fd = -1;
+ }
+ if (idxdb->filename)
+ free(idxdb->filename);
+ free(idxdb);
+}
+
+int rpmidxPut(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int pkgidx, unsigned int datidx)
+{
+ int rc;
+ if (!pkgidx || datidx >= 0x80000000) {
+ return RPMRC_FAIL;
+ }
+ if (rpmidxLockReadHeader(idxdb, 1))
+ return RPMRC_FAIL;
+ rc = rpmidxPutInternal(idxdb, key, keyl, pkgidx, datidx);
+ rpmidxUnlock(idxdb, 1);
+ return rc;
+}
+
+int rpmidxDel(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int pkgidx, unsigned int datidx)
+{
+ int rc;
+ if (!pkgidx || datidx >= 0x80000000) {
+ return RPMRC_FAIL;
+ }
+ if (rpmidxLockReadHeader(idxdb, 1))
+ return RPMRC_FAIL;
+ rc = rpmidxDelInternal(idxdb, key, keyl, pkgidx, datidx);
+ rpmidxUnlock(idxdb, 1);
+ return rc;
+}
+
+int rpmidxGet(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int **pkgidxlistp, unsigned int *pkgidxnump)
+{
+ int rc;
+ *pkgidxlistp = 0;
+ *pkgidxnump = 0;
+ if (rpmidxLockReadHeader(idxdb, 0))
+ return RPMRC_FAIL;
+ rc = rpmidxGetInternal(idxdb, key, keyl, pkgidxlistp, pkgidxnump);
+ rpmidxUnlock(idxdb, 0);
+ return rc;
+}
+
+int rpmidxList(rpmidxdb idxdb, unsigned int **keylistp, unsigned int *nkeylistp, unsigned char **datap)
+{
+ int rc;
+ *keylistp = 0;
+ *nkeylistp = 0;
+ if (rpmidxLockReadHeader(idxdb, 0))
+ return RPMRC_FAIL;
+ rc = rpmidxListInternal(idxdb, keylistp, nkeylistp, datap);
+ rpmidxUnlock(idxdb, 0);
+ return rc;
+}
+
+int rpmidxStats(rpmidxdb idxdb)
+{
+ if (rpmidxLockReadHeader(idxdb, 0))
+ return RPMRC_FAIL;
+ printf("--- IndexDB Stats\n");
+ if (idxdb->xdb) {
+ printf("Xdb tag: %d, id: %d\n", idxdb->xdbtag, idxdb->xdbid);
+ } else {
+ printf("Filename: %s\n", idxdb->filename);
+ }
+ printf("Generation: %u\n", idxdb->generation);
+ printf("Slots: %u\n", idxdb->nslots);
+ printf("Used slots: %u\n", idxdb->usedslots);
+ printf("Dummy slots: %u\n", idxdb->dummyslots);
+ printf("Key data size: %u, left %u\n", idxdb->keyend, idxdb->key_size - idxdb->keyend);
+ printf("Key excess: %u\n", idxdb->keyexcess);
+ printf("XMask: 0x%08x\n", idxdb->xmask);
+ rpmidxUnlock(idxdb, 0);
+ return RPMRC_OK;
+}
diff --git a/lib/backend/ndb/rpmidx.h b/lib/backend/ndb/rpmidx.h
new file mode 100644
index 00000000..e89bd82f
--- /dev/null
+++ b/lib/backend/ndb/rpmidx.h
@@ -0,0 +1,18 @@
+#include "rpmpkg.h"
+#include "rpmxdb.h"
+
+struct rpmidxdb_s;
+typedef struct rpmidxdb_s *rpmidxdb;
+
+int rpmidxOpen(rpmidxdb *idxdbp, rpmpkgdb pkgdb, const char *filename, int flags, int mode);
+int rpmidxOpenXdb(rpmidxdb *idxdbp, rpmpkgdb pkgdb, rpmxdb xdb, unsigned int xdbtag);
+int rpmidxDelXdb(rpmpkgdb pkgdb, rpmxdb xdb, unsigned int xdbtag);
+void rpmidxClose(rpmidxdb idxdbp);
+
+int rpmidxGet(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int **pkgidxlist, unsigned int *pkgidxnum);
+int rpmidxPut(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int pkgidx, unsigned int datidx);
+int rpmidxDel(rpmidxdb idxdb, const unsigned char *key, unsigned int keyl, unsigned int pkgidx, unsigned int datidx);
+int rpmidxList(rpmidxdb idxdb, unsigned int **keylistp, unsigned int *nkeylistp, unsigned char **datap);
+
+int rpmidxStats(rpmidxdb idxdb);
+
diff --git a/lib/backend/ndb/rpmpkg.c b/lib/backend/ndb/rpmpkg.c
new file mode 100644
index 00000000..cdf2b799
--- /dev/null
+++ b/lib/backend/ndb/rpmpkg.c
@@ -0,0 +1,1240 @@
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "rpmpkg.h"
+
+#define RPMRC_FAIL 2
+#define RPMRC_NOTFOUND 1
+#define RPMRC_OK 0
+
+#ifdef RPMPKG_LZO
+static int rpmpkgLZOCompress(unsigned char **blobp, unsigned int *bloblp);
+static int rpmpkgLZODecompress(unsigned char **blobp, unsigned int *bloblp);
+#endif
+
+
+typedef struct pkgslot_s {
+ unsigned int pkgidx;
+ unsigned int blkoff;
+ unsigned int blkcnt;
+ unsigned int slotno;
+} pkgslot;
+
+typedef struct rpmpkgdb_s {
+ int fd; /* our file descriptor */
+ int flags;
+ int mode;
+
+ int rdonly;
+
+ unsigned int locked_shared;
+ unsigned int locked_excl;
+
+ int header_ok; /* header data (e.g. generation) is valid */
+ unsigned int generation;
+ unsigned int slotnpages;
+ unsigned int nextpkgidx;
+
+ struct pkgslot_s *slots;
+ unsigned int aslots; /* allocated slots */
+ unsigned int nslots; /* used slots */
+
+ unsigned int *slothash;
+ unsigned int nslothash;
+
+ unsigned int freeslot; /* first free slot */
+ int slotorder;
+
+ char *filename;
+ unsigned int fileblks; /* file size in blks */
+ int dofsync;
+} * rpmpkgdb;
+
+#define SLOTORDER_UNORDERED 0
+#define SLOTORDER_BLKOFF 1
+
+
+static inline unsigned int le2h(unsigned char *p)
+{
+ return p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24;
+}
+
+static inline void h2le(unsigned int x, unsigned char *p)
+{
+ p[0] = x;
+ p[1] = x >> 8;
+ p[2] = x >> 16;
+ p[3] = x >> 24;
+}
+
+/* adler 32 algorithm taken from RFC 1950 */
+#define ADLER32_INIT 1
+static unsigned int update_adler32(unsigned int adler, unsigned char *buf, unsigned int len)
+{
+ unsigned int s1 = adler & 0xffff;
+ unsigned int s2 = (adler >> 16) & 0xffff;
+ int n;
+
+ for (; len >= 5552; len -= 5552) {
+ for (n = 0; n < 5552; n++) {
+ s1 += *buf++;
+ s2 += s1;
+ }
+ s1 %= 65521;
+ s2 %= 65521;
+ }
+ for (n = 0; n < len; n++) {
+ s1 += *buf++;
+ s2 += s1;
+ }
+ return ((s2 % 65521) << 16) + (s1 % 65521);
+}
+
+/*** Header management ***/
+
+#define PKGDB_MAGIC ('R' | 'p' << 8 | 'm' << 16 | 'P' << 24)
+#define PKGDB_VERSION 0
+
+/* must be a multiple of SLOT_SIZE! */
+#define PKGDB_HEADER_SIZE 32
+
+#define PKGDB_OFFSET_MAGIC 0
+#define PKGDB_OFFSET_VERSION 4
+#define PKGDB_OFFSET_GENERATION 8
+#define PKGDB_OFFSET_SLOTNPAGES 12
+#define PKGDB_OFFSET_NEXTPKGIDX 16
+
+static int rpmpkgReadHeader(rpmpkgdb pkgdb)
+{
+ unsigned int generation, slotnpages, nextpkgidx;
+ unsigned char header[PKGDB_HEADER_SIZE];
+
+ /* if we always head the write lock then our data matches */
+ if (pkgdb->header_ok)
+ return RPMRC_OK;
+ if (pread(pkgdb->fd, header, PKGDB_HEADER_SIZE, 0) != PKGDB_HEADER_SIZE) {
+ return RPMRC_FAIL;
+ }
+ if (le2h(header + PKGDB_OFFSET_MAGIC) != PKGDB_MAGIC) {
+ return RPMRC_FAIL;
+ }
+ generation = le2h(header + PKGDB_OFFSET_GENERATION);
+ slotnpages = le2h(header + PKGDB_OFFSET_SLOTNPAGES);
+ nextpkgidx = le2h(header + PKGDB_OFFSET_NEXTPKGIDX);
+ /* free slots if our internal data no longer matches */
+ if (pkgdb->slots && (pkgdb->generation != generation || pkgdb->slotnpages != slotnpages)) {
+ free(pkgdb->slots);
+ pkgdb->slots = 0;
+ if (pkgdb->slothash) {
+ free(pkgdb->slothash);
+ pkgdb->slothash = 0;
+ }
+ }
+ pkgdb->generation = generation;
+ pkgdb->slotnpages = slotnpages;
+ pkgdb->nextpkgidx = nextpkgidx;
+ pkgdb->header_ok = 1;
+ return RPMRC_OK;
+}
+
+static int rpmpkgWriteHeader(rpmpkgdb pkgdb)
+{
+ unsigned char header[PKGDB_HEADER_SIZE];
+ memset(header, 0, sizeof(header));
+ h2le(PKGDB_MAGIC, header + PKGDB_OFFSET_MAGIC);
+ h2le(PKGDB_VERSION, header + PKGDB_OFFSET_VERSION);
+ h2le(pkgdb->generation, header + PKGDB_OFFSET_GENERATION);
+ h2le(pkgdb->slotnpages, header + PKGDB_OFFSET_SLOTNPAGES);
+ h2le(pkgdb->nextpkgidx, header + PKGDB_OFFSET_NEXTPKGIDX);
+ if (pwrite(pkgdb->fd, header, sizeof(header), 0) != sizeof(header)) {
+ return RPMRC_FAIL;
+ }
+ if (pkgdb->dofsync && fdatasync(pkgdb->fd))
+ return RPMRC_FAIL; /* write error */
+ return RPMRC_OK;
+}
+
+/*** Slot management ***/
+
+#define SLOT_MAGIC ('S' | 'l' << 8 | 'o' << 16 | 't' << 24)
+
+#define SLOT_SIZE 16
+#define BLK_SIZE 16
+#define PAGE_SIZE 4096
+
+/* the first slots (i.e. 32 bytes) are used for the header */
+#define SLOT_START (PKGDB_HEADER_SIZE / SLOT_SIZE)
+
+static inline unsigned int hashpkgidx(unsigned int h)
+{
+ h *= 0x5bd1e995;
+ h ^= h >> 16;
+ return h;
+}
+
+static int rpmpkgHashSlots(rpmpkgdb pkgdb)
+{
+ unsigned int nslots, num;
+ unsigned int *hash;
+ unsigned int h, hh, hmask;
+ int i;
+ pkgslot *slot;
+
+ pkgdb->nslothash = 0;
+ num = pkgdb->nslots;
+ while (num & (num - 1))
+ num = num & (num - 1);
+ num *= 4;
+ hash = pkgdb->slothash;
+ if (!hash || pkgdb->nslothash != num) {
+ free(pkgdb->slothash);
+ hash = pkgdb->slothash = calloc(num, sizeof(unsigned int));
+ if (!hash)
+ return RPMRC_FAIL;
+ pkgdb->nslothash = num;
+ } else {
+ memset(hash, 0, num * sizeof(unsigned int));
+ }
+ hmask = num - 1;
+ nslots = pkgdb->nslots;
+ for (i = 0, slot = pkgdb->slots; i < nslots; i++, slot++) {
+ for (h = hashpkgidx(slot->pkgidx) & hmask, hh = 7; hash[h] != 0; h = (h + hh++) & hmask)
+ ;
+ hash[h] = i + 1;
+ }
+ pkgdb->slothash = hash;
+ pkgdb->nslothash = num;
+ return RPMRC_OK;
+}
+
+static int rpmpkgReadSlots(rpmpkgdb pkgdb)
+{
+ unsigned int slotnpages = pkgdb->slotnpages;
+ struct stat stb;
+ unsigned char pagebuf[PAGE_SIZE];
+ unsigned int page;
+ unsigned int i, minblkoff, fileblks, slotno, freeslot, o;
+ pkgslot *slot;
+
+ /* free old slot data */
+ if (pkgdb->slots) {
+ free(pkgdb->slots);
+ pkgdb->slots = 0;
+ }
+ if (pkgdb->slothash) {
+ free(pkgdb->slothash);
+ pkgdb->slothash = 0;
+ }
+ pkgdb->nslots = 0;
+ pkgdb->freeslot = 0;
+
+ /* calculate current database size in blks */
+ if (fstat(pkgdb->fd, &stb))
+ return RPMRC_FAIL;
+ if (stb.st_size % BLK_SIZE)
+ return RPMRC_FAIL; /* hmm */
+ fileblks = stb.st_size / BLK_SIZE;
+
+ /* read (and somewhat verify) all slots */
+ pkgdb->aslots = slotnpages * (PAGE_SIZE / SLOT_SIZE);
+ pkgdb->slots = calloc(pkgdb->aslots, sizeof(*pkgdb->slots));
+ if (!pkgdb->slots) {
+ return RPMRC_FAIL;
+ }
+ i = 0;
+ slot = pkgdb->slots;
+ minblkoff = slotnpages * (PAGE_SIZE / BLK_SIZE);
+ slotno = SLOT_START;
+ freeslot = 0;
+ for (page = 0; page < slotnpages; page++) {
+ if (pread(pkgdb->fd, pagebuf, PAGE_SIZE, page * PAGE_SIZE) != PAGE_SIZE)
+ return RPMRC_FAIL;
+ for (o = page ? 0 : SLOT_START * SLOT_SIZE; o < PAGE_SIZE; o += SLOT_SIZE, slotno++) {
+ unsigned char *pp = pagebuf + o;
+ unsigned int blkoff, blkcnt, pkgidx;
+ if (le2h(pp) != SLOT_MAGIC) {
+ return RPMRC_FAIL;
+ }
+ blkoff = le2h(pp + 8);
+ if (!blkoff) {
+ if (!freeslot)
+ freeslot = slotno;
+ continue;
+ }
+ pkgidx = le2h(pp + 4);
+ blkcnt = le2h(pp + 12);
+ slot->pkgidx = pkgidx;
+ slot->blkoff = blkoff;
+ slot->blkcnt = blkcnt;
+ slot->slotno = slotno;
+ if (slot->blkoff + slot->blkcnt > fileblks)
+ return RPMRC_FAIL; /* truncated database */
+ if (!slot->pkgidx || !slot->blkcnt || slot->blkoff < minblkoff)
+ return RPMRC_FAIL; /* bad entry */
+ i++;
+ slot++;
+ }
+ }
+ pkgdb->nslots = i;
+ pkgdb->slotorder = SLOTORDER_UNORDERED; /* XXX: always order? */
+ pkgdb->fileblks = fileblks;
+ pkgdb->freeslot = freeslot;
+ if (rpmpkgHashSlots(pkgdb)) {
+ free(pkgdb->slots);
+ pkgdb->slots = 0;
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static int orderslots_blkoff_cmp(const void *a, const void *b)
+{
+ unsigned int blkoffa = ((const pkgslot *)a)->blkoff;
+ unsigned int blkoffb = ((const pkgslot *)b)->blkoff;
+ return blkoffa > blkoffb ? 1 : blkoffa < blkoffb ? -1 : 0;
+}
+
+static void rpmpkgOrderSlots(rpmpkgdb pkgdb, int slotorder)
+{
+ if (pkgdb->slotorder == slotorder)
+ return;
+ if (slotorder == SLOTORDER_BLKOFF) {
+ if (pkgdb->nslots > 1)
+ qsort(pkgdb->slots, pkgdb->nslots, sizeof(*pkgdb->slots), orderslots_blkoff_cmp);
+ }
+ pkgdb->slotorder = slotorder;
+ rpmpkgHashSlots(pkgdb);
+}
+
+static inline pkgslot *rpmpkgFindSlot(rpmpkgdb pkgdb, unsigned int pkgidx)
+{
+ unsigned int i, h, hh, hmask = pkgdb->nslothash - 1;
+ unsigned int *hash = pkgdb->slothash;
+
+ for (h = hashpkgidx(pkgidx) & hmask, hh = 7; (i = hash[h]) != 0; h = (h + hh++) & hmask)
+ if (pkgdb->slots[i - 1].pkgidx == pkgidx)
+ return pkgdb->slots + (i - 1);
+ return 0;
+}
+
+static int rpmpkgFindEmptyOffset(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned int blkcnt, unsigned *blkoffp, pkgslot **oldslotp, int dontprepend)
+{
+ unsigned int i, nslots = pkgdb->nslots;
+ unsigned int bestblkoff = 0;
+ unsigned int freecnt, bestfreecnt = 0;
+ unsigned int lastblkend = pkgdb->slotnpages * (PAGE_SIZE / BLK_SIZE);
+ pkgslot *slot, *oldslot = 0;
+
+ if (pkgdb->slotorder != SLOTORDER_BLKOFF)
+ rpmpkgOrderSlots(pkgdb, SLOTORDER_BLKOFF);
+
+ if (dontprepend && nslots) {
+ lastblkend = pkgdb->slots[0].blkoff;
+ }
+ /* best fit strategy */
+ for (i = 0, slot = pkgdb->slots; i < nslots; i++, slot++) {
+ if (slot->blkoff < lastblkend) {
+ return RPMRC_FAIL; /* eek, slots overlap! */
+ }
+ if (slot->pkgidx == pkgidx) {
+ if (oldslot) {
+ return RPMRC_FAIL; /* eek, two slots with our pkgid ! */
+ }
+ oldslot = slot;
+ }
+ freecnt = slot->blkoff - lastblkend;
+ if (freecnt >= blkcnt) {
+ if (!bestblkoff || bestfreecnt > freecnt) {
+ bestblkoff = lastblkend;
+ bestfreecnt = freecnt;
+ }
+ }
+ lastblkend = slot->blkoff + slot->blkcnt;
+ }
+ if (!bestblkoff) {
+ bestblkoff = lastblkend; /* append to end */
+ }
+ *oldslotp = oldslot;
+ *blkoffp = bestblkoff;
+ return RPMRC_OK;
+}
+
+static int rpmpkgWriteslot(rpmpkgdb pkgdb, unsigned int slotno, unsigned int pkgidx, unsigned int blkoff, unsigned int blkcnt)
+{
+ unsigned char buf[SLOT_SIZE];
+ /* sanity */
+ if (slotno < SLOT_START)
+ return RPMRC_FAIL;
+ if (blkoff && slotno == pkgdb->freeslot)
+ pkgdb->freeslot = 0;
+ h2le(SLOT_MAGIC, buf);
+ h2le(pkgidx, buf + 4);
+ h2le(blkoff, buf + 8);
+ h2le(blkcnt, buf + 12);
+ if (pwrite(pkgdb->fd, buf, sizeof(buf), slotno * SLOT_SIZE) != sizeof(buf)) {
+ return RPMRC_FAIL;
+ }
+ pkgdb->generation++;
+ if (rpmpkgWriteHeader(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static int rpmpkgWriteEmptySlotpage(rpmpkgdb pkgdb, int pageno)
+{
+ unsigned char page[PAGE_SIZE];
+ int i, off = pageno ? 0 : SLOT_START * SLOT_SIZE;
+ memset(page, 0, sizeof(page));
+ for (i = 0; i < PAGE_SIZE / SLOT_SIZE; i++)
+ h2le(SLOT_MAGIC, page + i * SLOT_SIZE);
+ if (pwrite(pkgdb->fd, page, PAGE_SIZE - off, pageno * PAGE_SIZE + off) != PAGE_SIZE - off) {
+ return RPMRC_FAIL;
+ }
+ if (pkgdb->dofsync && fdatasync(pkgdb->fd)) {
+ return RPMRC_FAIL; /* write error */
+ }
+ return RPMRC_OK;
+}
+
+/*** Blk primitives ***/
+
+static int rpmpkgZeroBlks(rpmpkgdb pkgdb, unsigned int blkoff, unsigned int blkcnt)
+{
+ unsigned char buf[65536];
+ unsigned int towrite;
+ off_t fileoff;
+
+ memset(buf, 0, sizeof(buf));
+ fileoff = (off_t)blkoff * BLK_SIZE;
+ for (towrite = blkcnt * BLK_SIZE; towrite; ) {
+ unsigned int chunk = towrite > 65536 ? 65536 : towrite;
+ if (pwrite(pkgdb->fd, buf, chunk, fileoff) != chunk) {
+ return RPMRC_FAIL; /* write error */
+ }
+ fileoff += chunk;
+ towrite -= chunk;
+ }
+ if (blkoff + blkcnt > pkgdb->fileblks)
+ pkgdb->fileblks = blkoff + blkcnt;
+ return RPMRC_OK;
+}
+
+static int rpmpkgValidateZero(rpmpkgdb pkgdb, unsigned int blkoff, unsigned int blkcnt)
+{
+ unsigned long long buf[(65536 / sizeof(unsigned long long)) + 1];
+ off_t fileoff;
+ off_t tocheck;
+ int i;
+
+ if (blkoff > pkgdb->fileblks)
+ return RPMRC_FAIL; /* huh? */
+ fileoff = (off_t)blkoff * BLK_SIZE;
+ tocheck = blkoff + blkcnt > pkgdb->fileblks ? pkgdb->fileblks - blkoff : blkcnt;
+ tocheck *= BLK_SIZE;
+ while (tocheck >= 65536) {
+ if (pread(pkgdb->fd, (void *)buf, 65536, fileoff) != 65536)
+ return RPMRC_FAIL; /* read error */
+ for (i = 0; i < 65536 / sizeof(unsigned long long); i++)
+ if (buf[i])
+ return RPMRC_FAIL; /* not empty */
+ fileoff += 65536;
+ tocheck -= 65536;
+ }
+ if (tocheck) {
+ int cnt = (int)tocheck / sizeof(unsigned long long);
+ buf[cnt++] = 0;
+ if (pread(pkgdb->fd, (void *)buf, tocheck, fileoff) != tocheck)
+ return RPMRC_FAIL; /* read error */
+ for (i = 0; i < cnt; i++)
+ if (buf[i])
+ return RPMRC_FAIL; /* not empty */
+ }
+ return RPMRC_OK;
+}
+
+
+
+/*** Blob primitives ***/
+
+/* head: magic + pkgidx + timestamp + bloblen */
+/* tail: adler32 + bloblen + magic */
+
+#define BLOBHEAD_MAGIC ('B' | 'l' << 8 | 'b' << 16 | 'S' << 24)
+#define BLOBTAIL_MAGIC ('B' | 'l' << 8 | 'b' << 16 | 'E' << 24)
+
+#define BLOBHEAD_SIZE (4 + 4 + 4 + 4)
+#define BLOBTAIL_SIZE (4 + 4 + 4)
+
+static int rpmpkgReadBlob(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned int blkoff, unsigned int blkcnt, unsigned char *blob, unsigned int *bloblp, unsigned int *tstampp)
+{
+ unsigned char buf[BLOBHEAD_SIZE > BLOBTAIL_SIZE ? BLOBHEAD_SIZE : BLOBTAIL_SIZE];
+ unsigned int bloblen, toread, tstamp;
+ off_t fileoff;
+ unsigned int adl;
+ int verifyadler = bloblp ? 0 : 1;
+
+ /* sanity */
+ if (blkcnt < (BLOBHEAD_SIZE + BLOBTAIL_SIZE + BLK_SIZE - 1) / BLK_SIZE)
+ return RPMRC_FAIL; /* blkcnt too small */
+ /* read header */
+ fileoff = (off_t)blkoff * BLK_SIZE;
+ if (pread(pkgdb->fd, buf, BLOBHEAD_SIZE, fileoff) != BLOBHEAD_SIZE)
+ return RPMRC_FAIL; /* read error */
+ if (le2h(buf) != BLOBHEAD_MAGIC)
+ return RPMRC_FAIL; /* bad blob */
+ if (le2h(buf + 4) != pkgidx)
+ return RPMRC_FAIL; /* bad blob */
+ tstamp = le2h(buf + 8);
+ bloblen = le2h(buf + 12);
+ if (blkcnt != (BLOBHEAD_SIZE + bloblen + BLOBTAIL_SIZE + BLK_SIZE - 1) / BLK_SIZE)
+ return RPMRC_FAIL; /* bad blob */
+ adl = ADLER32_INIT;
+ if (verifyadler)
+ adl = update_adler32(adl, buf, BLOBHEAD_SIZE);
+ /* read in 64K chunks */
+ fileoff += BLOBHEAD_SIZE;
+ toread = blkcnt * BLK_SIZE - BLOBHEAD_SIZE;
+ if (!bloblp)
+ toread -= BLOBTAIL_SIZE;
+ while (toread) {
+ unsigned int chunk = toread > 65536 ? 65536 : toread;
+ if (pread(pkgdb->fd, blob, chunk, fileoff) != chunk) {
+ return RPMRC_FAIL; /* read error */
+ }
+ if (verifyadler) {
+ if (!bloblp)
+ adl = update_adler32(adl, blob, chunk);
+ else if (toread > BLOBTAIL_SIZE)
+ adl = update_adler32(adl, blob, toread - BLOBTAIL_SIZE > chunk ? chunk : toread - BLOBTAIL_SIZE);
+ }
+ if (bloblp)
+ blob += chunk;
+ toread -= chunk;
+ fileoff += chunk;
+ }
+ /* read trailer */
+ if (bloblp) {
+ memcpy(buf, blob - BLOBTAIL_SIZE, BLOBTAIL_SIZE);
+ } else if (pread(pkgdb->fd, buf, BLOBTAIL_SIZE, fileoff) != BLOBTAIL_SIZE) {
+ return RPMRC_FAIL; /* read error */
+ }
+ if (verifyadler && le2h(buf) != adl) {
+ return RPMRC_FAIL; /* bad blob, adler32 mismatch */
+ }
+ if (le2h(buf + 4) != bloblen) {
+ return RPMRC_FAIL; /* bad blob, bloblen mismatch */
+ }
+ if (le2h(buf + 8) != BLOBTAIL_MAGIC) {
+ return RPMRC_FAIL; /* bad blob */
+ }
+ if (bloblp)
+ *bloblp = bloblen;
+ if (tstampp)
+ *tstampp = tstamp;
+ return RPMRC_OK;
+}
+
+static int rpmpkgVerifyblob(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned int blkoff, unsigned int blkcnt)
+{
+ unsigned char buf[65536];
+ return rpmpkgReadBlob(pkgdb, pkgidx, blkoff, blkcnt, buf, 0, 0);
+}
+
+static int rpmpkgWriteBlob(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned int blkoff, unsigned int blkcnt, unsigned char *blob, unsigned int blobl, unsigned int now)
+{
+ unsigned char buf[(BLOBHEAD_SIZE > BLOBTAIL_SIZE ? BLOBHEAD_SIZE : BLOBTAIL_SIZE) + BLK_SIZE];
+ unsigned int towrite, pad;
+ unsigned int adl;
+ off_t fileoff;
+
+ /* sanity */
+ if (blkcnt < (BLOBHEAD_SIZE + BLOBTAIL_SIZE + BLK_SIZE - 1) / BLK_SIZE)
+ return RPMRC_FAIL; /* blkcnt too small */
+ if (blkcnt != (BLOBHEAD_SIZE + blobl + BLOBTAIL_SIZE + BLK_SIZE - 1) / BLK_SIZE)
+ return RPMRC_FAIL; /* blkcnt mismatch */
+ fileoff = (off_t)blkoff * BLK_SIZE;
+ h2le(BLOBHEAD_MAGIC, buf);
+ h2le(pkgidx, buf + 4);
+ h2le(now, buf + 8);
+ h2le(blobl, buf + 12);
+ if (pwrite(pkgdb->fd, buf, BLOBHEAD_SIZE, fileoff) != BLOBHEAD_SIZE) {
+ return RPMRC_FAIL; /* write error */
+ }
+ adl = ADLER32_INIT;
+ adl = update_adler32(adl, buf, BLOBHEAD_SIZE);
+ /* write in 64K chunks */
+ fileoff += BLOBHEAD_SIZE;
+ for (towrite = blobl; towrite;) {
+ unsigned int chunk = towrite > 65536 ? 65536 : towrite;
+ if (pwrite(pkgdb->fd, blob, chunk, fileoff) != chunk) {
+ return RPMRC_FAIL; /* write error */
+ }
+ adl = update_adler32(adl, blob, chunk);
+ blob += chunk;
+ towrite -= chunk;
+ fileoff += chunk;
+ }
+ /* pad if needed */
+ pad = blkcnt * BLK_SIZE - (BLOBHEAD_SIZE + blobl + BLOBTAIL_SIZE);
+ if (pad) {
+ memset(buf + (sizeof(buf) - BLOBTAIL_SIZE) - pad, 0, pad);
+ adl = update_adler32(adl, buf + (sizeof(buf) - BLOBTAIL_SIZE) - pad, pad);
+ }
+ h2le(adl, buf + (sizeof(buf) - BLOBTAIL_SIZE));
+ h2le(blobl, buf + (sizeof(buf) - BLOBTAIL_SIZE) + 4);
+ h2le(BLOBTAIL_MAGIC, buf + (sizeof(buf) - BLOBTAIL_SIZE) + 8);
+ if (pwrite(pkgdb->fd, buf + (sizeof(buf) - BLOBTAIL_SIZE) - pad, pad + BLOBTAIL_SIZE, fileoff) != pad + BLOBTAIL_SIZE) {
+ return RPMRC_FAIL; /* write error */
+ }
+ /* update file length */
+ if (blkoff + blkcnt > pkgdb->fileblks)
+ pkgdb->fileblks = blkoff + blkcnt;
+ if (pkgdb->dofsync && fdatasync(pkgdb->fd)) {
+ return RPMRC_FAIL; /* write error */
+ }
+ return RPMRC_OK;
+}
+
+static int rpmpkgDelBlob(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned int blkoff, unsigned int blkcnt)
+{
+ if (rpmpkgVerifyblob(pkgdb, pkgidx, blkoff, blkcnt))
+ return RPMRC_FAIL;
+ if (rpmpkgZeroBlks(pkgdb, blkoff, blkcnt))
+ return RPMRC_FAIL;
+ if (pkgdb->dofsync && fdatasync(pkgdb->fd))
+ return RPMRC_FAIL; /* write error */
+ return RPMRC_OK;
+}
+
+
+static int rpmpkgMoveBlob(rpmpkgdb pkgdb, pkgslot *slot, unsigned int newblkoff)
+{
+ unsigned int pkgidx = slot->pkgidx;
+ unsigned int blkoff = slot->blkoff;
+ unsigned int blkcnt = slot->blkcnt;
+ unsigned char *blob;
+ unsigned int tstamp, blobl;
+
+ blob = malloc((size_t)blkcnt * BLK_SIZE);
+ if (rpmpkgReadBlob(pkgdb, pkgidx, blkoff, blkcnt, blob, &blobl, &tstamp)) {
+ free(blob);
+ return RPMRC_FAIL;
+ }
+ if (rpmpkgWriteBlob(pkgdb, pkgidx, newblkoff, blkcnt, blob, blobl, tstamp)) {
+ free(blob);
+ return RPMRC_FAIL;
+ }
+ free(blob);
+ if (rpmpkgWriteslot(pkgdb, slot->slotno, pkgidx, newblkoff, blkcnt)) {
+ return RPMRC_FAIL;
+ }
+ if (rpmpkgDelBlob(pkgdb, pkgidx, blkoff, blkcnt)) {
+ return RPMRC_FAIL;
+ }
+ slot->blkoff = newblkoff;
+ pkgdb->slotorder = SLOTORDER_UNORDERED;
+ return RPMRC_OK;
+}
+
+static int rpmpkgAddSlotPage(rpmpkgdb pkgdb)
+{
+ unsigned int cutoff;
+ if (pkgdb->slotorder != SLOTORDER_BLKOFF)
+ rpmpkgOrderSlots(pkgdb, SLOTORDER_BLKOFF);
+ cutoff = (pkgdb->slotnpages + 1) * (PAGE_SIZE / BLK_SIZE);
+
+ /* now move every blob before cutoff */
+ while (pkgdb->nslots && pkgdb->slots[0].blkoff < cutoff) {
+ unsigned int newblkoff;
+ pkgslot *slot = pkgdb->slots, *oldslot;
+
+ oldslot = 0;
+ if (rpmpkgFindEmptyOffset(pkgdb, slot->pkgidx, slot->blkcnt, &newblkoff, &oldslot, 1)) {
+ return RPMRC_FAIL;
+ }
+ if (!oldslot || oldslot != slot) {
+ return RPMRC_FAIL;
+ }
+ if (rpmpkgMoveBlob(pkgdb, slot, newblkoff)) {
+ return RPMRC_FAIL;
+ }
+ rpmpkgOrderSlots(pkgdb, SLOTORDER_BLKOFF);
+ }
+
+ /* make sure our new page is empty */
+ if (rpmpkgValidateZero(pkgdb, pkgdb->slotnpages * (PAGE_SIZE / BLK_SIZE), PAGE_SIZE / BLK_SIZE)) {
+ return RPMRC_FAIL;
+ }
+ if (rpmpkgWriteEmptySlotpage(pkgdb, pkgdb->slotnpages)) {
+ return RPMRC_FAIL;
+ }
+
+ /* announce free page */
+ pkgdb->freeslot = pkgdb->slotnpages * (PAGE_SIZE / SLOT_SIZE);
+ pkgdb->slotnpages++;
+ pkgdb->generation++;
+ if (rpmpkgWriteHeader(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static inline int is_correct_db(rpmpkgdb pkgdb)
+{
+ struct stat stb1, stb2;
+ if (stat(pkgdb->filename, &stb1))
+ return 0;
+ if (fstat(pkgdb->fd, &stb2))
+ return 0;
+ return stb1.st_dev == stb2.st_dev && stb1.st_ino == stb1.st_ino;
+}
+
+static inline int reopen_db(rpmpkgdb pkgdb)
+{
+ close(pkgdb->fd);
+ if ((pkgdb->fd = open(pkgdb->filename, pkgdb->flags, pkgdb->mode)) == -1) {
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static int rpmpkgGetLock(rpmpkgdb pkgdb, int type)
+{
+ if (!pkgdb->fd)
+ return RPMRC_FAIL;
+ for (;;) {
+ if (flock(pkgdb->fd, type)) {
+ return RPMRC_FAIL;
+ }
+ if (!is_correct_db(pkgdb)) {
+ if (reopen_db(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ continue;
+ }
+ break;
+ }
+ return RPMRC_OK;
+}
+
+int rpmpkgLock(rpmpkgdb pkgdb, int excl)
+{
+ unsigned int *lockcntp = excl ? &pkgdb->locked_excl : &pkgdb->locked_shared;
+ if (excl && pkgdb->rdonly)
+ return RPMRC_FAIL;
+ if (*lockcntp > 0 || (!excl && pkgdb->locked_excl)) {
+ (*lockcntp)++;
+ return RPMRC_OK;
+ }
+ pkgdb->header_ok = 0;
+ if (rpmpkgGetLock(pkgdb, excl ? LOCK_EX : LOCK_SH)) {
+ return RPMRC_FAIL;
+ }
+ (*lockcntp)++;
+ return RPMRC_OK;
+}
+
+int rpmpkgUnlock(rpmpkgdb pkgdb, int excl)
+{
+ unsigned int *lockcntp = excl ? &pkgdb->locked_excl : &pkgdb->locked_shared;
+ if (*lockcntp == 0) {
+ return RPMRC_FAIL;
+ }
+ if (*lockcntp > 1 || (!excl && pkgdb->locked_excl)) {
+ (*lockcntp)--;
+ return RPMRC_OK;
+ }
+ if (excl && pkgdb->locked_shared) {
+ /* excl -> shared switch */
+ if (rpmpkgGetLock(pkgdb, LOCK_SH)) {
+ return RPMRC_FAIL;
+ }
+ (*lockcntp)--;
+ return RPMRC_OK;
+ }
+ flock(pkgdb->fd, LOCK_UN);
+ (*lockcntp)--;
+ pkgdb->header_ok = 0;
+ return RPMRC_OK;
+}
+
+static int rpmpkgLockReadHeader(rpmpkgdb pkgdb, int excl)
+{
+ if (rpmpkgLock(pkgdb, excl))
+ return RPMRC_FAIL;
+ if (rpmpkgReadHeader(pkgdb)) {
+ rpmpkgUnlock(pkgdb, excl);
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static int rpmpkgInitInternal(rpmpkgdb pkgdb)
+{
+ struct stat stb;
+ if (fstat(pkgdb->fd, &stb)) {
+ return RPMRC_FAIL;
+ }
+ if (stb.st_size == 0) {
+ if (rpmpkgWriteEmptySlotpage(pkgdb, 0)) {
+ return RPMRC_FAIL;
+ }
+ pkgdb->slotnpages = 1;
+ if (!pkgdb->nextpkgidx)
+ pkgdb->nextpkgidx = 1;
+ pkgdb->generation++;
+ if (rpmpkgWriteHeader(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ }
+ return RPMRC_OK;
+}
+
+static int rpmpkgInit(rpmpkgdb pkgdb)
+{
+ int rc;
+
+ if (rpmpkgLock(pkgdb, 1))
+ return RPMRC_FAIL;
+ rc = rpmpkgInitInternal(pkgdb);
+ rpmpkgUnlock(pkgdb, 1);
+ return rc;
+}
+
+int rpmpkgOpen(rpmpkgdb *pkgdbp, const char *filename, int flags, int mode)
+{
+ struct stat stb;
+ rpmpkgdb pkgdb;
+
+ *pkgdbp = 0;
+ pkgdb = calloc(1, sizeof(*pkgdb));
+ pkgdb->filename = strdup(filename);
+ if (!pkgdb->filename) {
+ free(pkgdb);
+ return RPMRC_FAIL;
+ }
+ if ((flags & (O_RDONLY|O_RDWR)) == O_RDONLY)
+ pkgdb->rdonly = 1;
+ if ((pkgdb->fd = open(filename, flags, mode)) == -1) {
+ return RPMRC_FAIL;
+ }
+ if (fstat(pkgdb->fd, &stb)) {
+ close(pkgdb->fd);
+ free(pkgdb);
+ return RPMRC_FAIL;
+ }
+ if (stb.st_size == 0) {
+ if (rpmpkgInit(pkgdb)) {
+ close(pkgdb->fd);
+ free(pkgdb);
+ return RPMRC_FAIL;
+ }
+ }
+ pkgdb->flags = flags;
+ pkgdb->mode = mode;
+ pkgdb->dofsync = 1;
+ *pkgdbp = pkgdb;
+ return RPMRC_OK;
+}
+
+void rpmpkgClose(rpmpkgdb pkgdb)
+{
+ if (pkgdb->fd >= 0) {
+ close(pkgdb->fd);
+ pkgdb->fd = -1;
+ }
+ if (pkgdb->slots)
+ free(pkgdb->slots);
+ pkgdb->slots = 0;
+ if (pkgdb->slothash)
+ free(pkgdb->slothash);
+ pkgdb->slothash = 0;
+ free(pkgdb->filename);
+ free(pkgdb);
+}
+
+void rpmpkgSetFsync(rpmpkgdb pkgdb, int dofsync)
+{
+ pkgdb->dofsync = dofsync;
+}
+
+
+static int rpmpkgGetInternal(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned char **blobp, unsigned int *bloblp)
+{
+ pkgslot *slot;
+ unsigned char *blob;
+
+ if (!pkgdb->slots && rpmpkgReadSlots(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ slot = rpmpkgFindSlot(pkgdb, pkgidx);
+ if (!slot) {
+ return RPMRC_NOTFOUND;
+ }
+ blob = malloc((size_t)slot->blkcnt * BLK_SIZE);
+ if (rpmpkgReadBlob(pkgdb, pkgidx, slot->blkoff, slot->blkcnt, blob, bloblp, (unsigned int *)0)) {
+ free(blob);
+ return RPMRC_FAIL;
+ }
+ *blobp = blob;
+ return RPMRC_OK;
+}
+
+static int rpmpkgPutInternal(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned char *blob, unsigned int blobl)
+{
+ unsigned int blkcnt, blkoff, slotno;
+ pkgslot *oldslot;
+
+ /* we always read all slots when writing, just in case */
+ if (rpmpkgReadSlots(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ blkcnt = (BLOBHEAD_SIZE + blobl + BLOBTAIL_SIZE + BLK_SIZE - 1) / BLK_SIZE;
+ /* find a nice place for the blob */
+ if (rpmpkgFindEmptyOffset(pkgdb, pkgidx, blkcnt, &blkoff, &oldslot, 0)) {
+ return RPMRC_FAIL;
+ }
+ /* create new slot page if we don't have a free slot and can't reuse an old one */
+ if (!oldslot && !pkgdb->freeslot) {
+ if (rpmpkgAddSlotPage(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ /* redo rpmpkgFindEmptyOffset to get another free area */
+ if (rpmpkgFindEmptyOffset(pkgdb, pkgidx, blkcnt, &blkoff, &oldslot, 0)) {
+ return RPMRC_FAIL;
+ }
+ }
+ /* make sure that we don't overwrite data */
+ if (rpmpkgValidateZero(pkgdb, blkoff, blkcnt)) {
+ return RPMRC_FAIL;
+ }
+ /* write new blob */
+ if (rpmpkgWriteBlob(pkgdb, pkgidx, blkoff, blkcnt, blob, blobl, (unsigned int)time(0))) {
+ return RPMRC_FAIL;
+ }
+ /* write slot */
+ slotno = oldslot ? oldslot->slotno : pkgdb->freeslot;
+ if (!slotno) {
+ return RPMRC_FAIL;
+ }
+ if (rpmpkgWriteslot(pkgdb, slotno, pkgidx, blkoff, blkcnt)) {
+ free(pkgdb->slots);
+ pkgdb->slots = 0;
+ return RPMRC_FAIL;
+ }
+ /* erase old blob */
+ if (oldslot && oldslot->blkoff) {
+ if (rpmpkgDelBlob(pkgdb, pkgidx, oldslot->blkoff, oldslot->blkcnt)) {
+ free(pkgdb->slots);
+ pkgdb->slots = 0;
+ return RPMRC_FAIL;
+ }
+ }
+ if (oldslot) {
+ /* just update the slot, no need to free the slot data */
+ oldslot->blkoff = blkoff;
+ oldslot->blkcnt = blkcnt;
+ } else {
+ free(pkgdb->slots);
+ pkgdb->slots = 0;
+ }
+ return RPMRC_OK;
+}
+
+static int rpmpkgDelInternal(rpmpkgdb pkgdb, unsigned int pkgidx)
+{
+ pkgslot *slot;
+ unsigned int blkoff, blkcnt;
+
+ /* we always read all slots when writing, just in case */
+ if (rpmpkgReadSlots(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ rpmpkgOrderSlots(pkgdb, SLOTORDER_BLKOFF);
+ slot = rpmpkgFindSlot(pkgdb, pkgidx);
+ if (!slot) {
+ return RPMRC_OK;
+ }
+ if (rpmpkgWriteslot(pkgdb, slot->slotno, 0, 0, 0)) {
+ return RPMRC_FAIL;
+ }
+ if (rpmpkgDelBlob(pkgdb, pkgidx, slot->blkoff, slot->blkcnt)) {
+ return RPMRC_FAIL;
+ }
+ if (pkgdb->nslots > 1 && slot->blkoff < pkgdb->fileblks / 2) {
+ /* we freed a blob in the first half of our data. do some extra work */
+ int i;
+ if (slot == pkgdb->slots) {
+ blkoff = pkgdb->slotnpages * (PAGE_SIZE / BLK_SIZE);
+ } else {
+ blkoff = slot[-1].blkoff + slot[-1].blkcnt;
+ }
+ if (slot < pkgdb->slots + pkgdb->nslots - 1) {
+ blkcnt = slot[1].blkoff - blkoff;
+ } else {
+ blkcnt = slot->blkoff + slot->blkcnt - blkoff;
+ }
+ slot->blkoff = 0;
+ slot->blkcnt = 0;
+ slot = pkgdb->slots + pkgdb->nslots - 2;
+ if (slot->blkoff < slot[1].blkoff)
+ slot++; /* bigger slot first */
+ for (i = 0; i < 2; i++, slot++) {
+ if (slot == pkgdb->slots + pkgdb->nslots)
+ slot -= 2;
+ if (!slot->blkoff || slot->blkoff < blkoff)
+ continue;
+ if (slot->blkoff < pkgdb->fileblks / 2)
+ continue;
+ if (slot->blkcnt > blkcnt)
+ continue;
+ rpmpkgMoveBlob(pkgdb, slot, blkoff);
+ blkoff += slot->blkcnt;
+ blkcnt -= slot->blkcnt;
+ }
+ rpmpkgOrderSlots(pkgdb, SLOTORDER_BLKOFF);
+ } else {
+ slot->blkoff = 0;
+ slot->blkcnt = 0;
+ }
+ /* check if we can truncate the file */
+ slot = pkgdb->slots + pkgdb->nslots - 1;
+ if (!slot->blkoff && pkgdb->nslots > 1) {
+ slot--;
+ }
+ if (slot->blkoff)
+ blkoff = slot->blkoff + slot->blkcnt;
+ else
+ blkoff = pkgdb->slotnpages * (PAGE_SIZE / BLK_SIZE);
+ if (blkoff < pkgdb->fileblks / 4 * 3) {
+ /* truncate the file */
+ if (!rpmpkgValidateZero(pkgdb, blkoff, pkgdb->fileblks - blkoff)) {
+ if (!ftruncate(pkgdb->fd, blkoff * BLK_SIZE)) {
+ pkgdb->fileblks = blkoff;
+ }
+ }
+ }
+ free(pkgdb->slots);
+ pkgdb->slots = 0;
+ return RPMRC_OK;
+}
+
+static int rpmpkgListInternal(rpmpkgdb pkgdb, unsigned int **pkgidxlistp, unsigned int *npkgidxlistp)
+{
+ unsigned int i, nslots, *pkgidxlist;
+ pkgslot *slot;
+
+ if (!pkgdb->slots && rpmpkgReadSlots(pkgdb)) {
+ return RPMRC_FAIL;
+ }
+ if (!pkgidxlistp) {
+ *npkgidxlistp = pkgdb->nslots;
+ return RPMRC_OK;
+ }
+ rpmpkgOrderSlots(pkgdb, SLOTORDER_BLKOFF);
+ nslots = pkgdb->nslots;
+ pkgidxlist = calloc(nslots + 1, sizeof(unsigned int));
+ for (i = 0, slot = pkgdb->slots; i < nslots; i++, slot++) {
+ pkgidxlist[i] = slot->pkgidx;
+ }
+ *pkgidxlistp = pkgidxlist;
+ *npkgidxlistp = nslots;
+ return RPMRC_OK;
+}
+
+int rpmpkgGet(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned char **blobp, unsigned int *bloblp)
+{
+ int rc;
+
+ *blobp = 0;
+ *bloblp = 0;
+ if (!pkgidx)
+ return RPMRC_FAIL;
+ if (rpmpkgLockReadHeader(pkgdb, 0))
+ return RPMRC_FAIL;
+ rc = rpmpkgGetInternal(pkgdb, pkgidx, blobp, bloblp);
+ rpmpkgUnlock(pkgdb, 0);
+#ifdef RPMPKG_LZO
+ if (!rc)
+ rc = rpmpkgLZODecompress(blobp, bloblp);
+#endif
+ return rc;
+}
+
+int rpmpkgPut(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned char *blob, unsigned int blobl)
+{
+ int rc;
+
+ if (!pkgidx) {
+ return RPMRC_FAIL;
+ }
+ if (rpmpkgLockReadHeader(pkgdb, 1))
+ return RPMRC_FAIL;
+#ifdef RPMPKG_LZO
+ if (rpmpkgLZOCompress(&blob, &blobl)) {
+ rpmpkgUnlock(pkgdb, 1);
+ return RPMRC_FAIL;
+ }
+#endif
+ rc = rpmpkgPutInternal(pkgdb, pkgidx, blob, blobl);
+#ifdef RPMPKG_LZO
+ free(blob);
+#endif
+ rpmpkgUnlock(pkgdb, 1);
+ return rc;
+}
+
+int rpmpkgDel(rpmpkgdb pkgdb, unsigned int pkgidx)
+{
+ int rc;
+
+ if (!pkgidx) {
+ return RPMRC_FAIL;
+ }
+ if (rpmpkgLockReadHeader(pkgdb, 1))
+ return RPMRC_FAIL;
+ rc = rpmpkgDelInternal(pkgdb, pkgidx);
+ rpmpkgUnlock(pkgdb, 1);
+ return rc;
+}
+
+int rpmpkgList(rpmpkgdb pkgdb, unsigned int **pkgidxlistp, unsigned int *npkgidxlistp)
+{
+ int rc;
+ if (pkgidxlistp)
+ *pkgidxlistp = 0;
+ *npkgidxlistp = 0;
+ if (rpmpkgLockReadHeader(pkgdb, 0))
+ return RPMRC_FAIL;
+ rc = rpmpkgListInternal(pkgdb, pkgidxlistp, npkgidxlistp);
+ rpmpkgUnlock(pkgdb, 0);
+ return rc;
+}
+
+int rpmpkgNextPkgIdx(rpmpkgdb pkgdb, unsigned int *pkgidxp)
+{
+ if (rpmpkgLockReadHeader(pkgdb, 1))
+ return RPMRC_FAIL;
+ *pkgidxp = pkgdb->nextpkgidx++;
+ if (rpmpkgWriteHeader(pkgdb)) {
+ rpmpkgUnlock(pkgdb, 1);
+ return RPMRC_FAIL;
+ }
+ /* no fdatasync needed. also no need to increase the generation count,
+ * as the header is always read in */
+ rpmpkgUnlock(pkgdb, 1);
+ return RPMRC_OK;
+}
+
+int rpmpkgGeneration(rpmpkgdb pkgdb, unsigned int *generationp)
+{
+ if (rpmpkgLockReadHeader(pkgdb, 0))
+ return RPMRC_FAIL;
+ *generationp = pkgdb->generation;
+ rpmpkgUnlock(pkgdb, 0);
+ return RPMRC_OK;
+}
+
+int rpmpkgStats(rpmpkgdb pkgdb)
+{
+ unsigned int usedblks = 0;
+ int i;
+
+ if (rpmpkgLockReadHeader(pkgdb, 0))
+ return RPMRC_FAIL;
+ if (rpmpkgReadSlots(pkgdb)) {
+ rpmpkgUnlock(pkgdb, 0);
+ return RPMRC_FAIL;
+ }
+ for (i = 0; i < pkgdb->nslots; i++)
+ usedblks += pkgdb->slots[i].blkcnt;
+ printf("--- Package DB Stats\n");
+ printf("Filename: %s\n", pkgdb->filename);
+ printf("Generation: %d\n", pkgdb->generation);
+ printf("Slot pages: %d\n", pkgdb->slotnpages);
+ printf("Used slots: %d\n", pkgdb->nslots);
+ printf("Free slots: %d\n", pkgdb->slotnpages * (PAGE_SIZE / SLOT_SIZE) - pkgdb->nslots);
+ printf("Blob area size: %d\n", (pkgdb->fileblks - pkgdb->slotnpages * (PAGE_SIZE / BLK_SIZE)) * BLK_SIZE);
+ printf("Blob area used: %d\n", usedblks * BLK_SIZE);
+ rpmpkgUnlock(pkgdb, 0);
+ return RPMRC_OK;
+}
+
+#ifdef RPMPKG_LZO
+
+#include "lzo/lzoconf.h"
+#include "lzo/lzo1x.h"
+
+#define BLOBLZO_MAGIC ('L' | 'Z' << 8 | 'O' << 16 | 'B' << 24)
+
+static int rpmpkgLZOCompress(unsigned char **blobp, unsigned int *bloblp)
+{
+ unsigned char *blob = *blobp;
+ unsigned int blobl = *bloblp;
+ unsigned char *lzoblob, *workmem;
+ unsigned int lzoblobl;
+ lzo_uint blobl2;
+
+ if (lzo_init() != LZO_E_OK) {
+ return RPMRC_FAIL;
+ }
+ workmem = malloc(LZO1X_1_MEM_COMPRESS);
+ if (!workmem) {
+ return RPMRC_FAIL;
+ }
+ lzoblobl = 4 + 4 + blobl + blobl / 16 + 64 + 3;
+ lzoblob = malloc(lzoblobl);
+ if (!lzoblob) {
+ free(workmem);
+ return RPMRC_FAIL;
+ }
+ h2le(BLOBLZO_MAGIC, lzoblob);
+ h2le(blobl, lzoblob + 4);
+ if (lzo1x_1_compress(blob, blobl, lzoblob + 8, &blobl2, workmem) != LZO_E_OK) {
+ free(workmem);
+ free(lzoblob);
+ return RPMRC_FAIL;
+ }
+ free(workmem);
+ *blobp = lzoblob;
+ *bloblp = 8 + blobl2;
+ return RPMRC_OK;
+}
+
+static int rpmpkgLZODecompress(unsigned char **blobp, unsigned int *bloblp)
+{
+ unsigned char *lzoblob = *blobp;
+ unsigned int lzoblobl = *bloblp;
+ unsigned char *blob;
+ unsigned int blobl;
+ lzo_uint blobl2;
+
+ if (!lzoblob || lzoblobl < 8)
+ return RPMRC_FAIL;
+ if (le2h(lzoblob) != BLOBLZO_MAGIC)
+ return RPMRC_FAIL;
+ if (lzo_init() != LZO_E_OK)
+ return RPMRC_FAIL;
+ blobl = le2h(lzoblob + 4);
+ blob = malloc(blobl ? blobl : 1);
+ if (!blob)
+ return RPMRC_FAIL;
+ if (lzo1x_decompress(lzoblob + 8, lzoblobl - 8, blob, &blobl2, 0) != LZO_E_OK || blobl2 != blobl) {
+ free(blob);
+ return RPMRC_FAIL;
+ }
+ free(lzoblob);
+ *blobp = blob;
+ *bloblp = blobl;
+ return RPMRC_OK;
+}
+
+#endif
diff --git a/lib/backend/ndb/rpmpkg.h b/lib/backend/ndb/rpmpkg.h
new file mode 100644
index 00000000..7e5d0c67
--- /dev/null
+++ b/lib/backend/ndb/rpmpkg.h
@@ -0,0 +1,20 @@
+struct rpmpkgdb_s;
+typedef struct rpmpkgdb_s *rpmpkgdb;
+
+int rpmpkgOpen(rpmpkgdb *pkgdbp, const char *filename, int flags, int mode);
+void rpmpkgClose(rpmpkgdb pkgdbp);
+void rpmpkgSetFsync(rpmpkgdb pkgdbp, int dofsync);
+
+int rpmpkgLock(rpmpkgdb pkgdb, int excl);
+int rpmpkgUnlock(rpmpkgdb pkgdb, int excl);
+
+int rpmpkgGet(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned char **blobp, unsigned int *bloblp);
+int rpmpkgPut(rpmpkgdb pkgdb, unsigned int pkgidx, unsigned char *blob, unsigned int blobl);
+int rpmpkgDel(rpmpkgdb pkgdb, unsigned int pkgidx);
+int rpmpkgList(rpmpkgdb pkgdb, unsigned int **pkgidxlistp, unsigned int *npkgidxlistp);
+
+int rpmpkgNextPkgIdx(rpmpkgdb pkgdb, unsigned int *pkgidxp);
+int rpmpkgGeneration(rpmpkgdb pkgdb, unsigned int *generationp);
+
+int rpmpkgStats(rpmpkgdb pkgdb);
+
diff --git a/lib/backend/ndb/rpmxdb.c b/lib/backend/ndb/rpmxdb.c
new file mode 100644
index 00000000..9dae5b88
--- /dev/null
+++ b/lib/backend/ndb/rpmxdb.c
@@ -0,0 +1,1178 @@
+#define _GNU_SOURCE
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/mman.h>
+#include <endian.h>
+
+#include "rpmxdb.h"
+
+#define RPMRC_OK 0
+#define RPMRC_NOTFOUND 1
+#define RPMRC_FAIL 2
+
+typedef struct rpmxdb_s {
+ rpmpkgdb pkgdb; /* master database */
+ char *filename;
+ int fd;
+ int flags;
+ int mode;
+ int rdonly;
+ unsigned int pagesize;
+ unsigned int generation;
+ unsigned int slotnpages;
+ unsigned int usergeneration;
+
+ unsigned char *mapped;
+ unsigned int mappedlen;
+
+ struct xdb_slot {
+ unsigned int slotno;
+ unsigned int blobtag;
+ unsigned int subtag;
+ unsigned char *mapped;
+ int mapflags;
+ unsigned int startpage;
+ unsigned int pagecnt;
+ void (*mapcallback)(rpmxdb xdb, void *data, void *newaddr, size_t newsize);
+ void *mapcallbackdata;
+ unsigned int next;
+ unsigned int prev;
+ } *slots;
+ unsigned int nslots;
+ unsigned int firstfree;
+ unsigned int usedblobpages;
+ unsigned int systempagesize;
+ int dofsync;
+} *rpmxdb;
+
+
+static inline void h2le(unsigned int x, unsigned char *p)
+{
+ p[0] = x;
+ p[1] = x >> 8;
+ p[2] = x >> 16;
+ p[3] = x >> 24;
+}
+
+/* aligned versions */
+static inline unsigned int le2ha(unsigned char *p)
+{
+ unsigned int x = *(unsigned int *)p;
+ return le32toh(x);
+}
+
+static inline void h2lea(unsigned int x, unsigned char *p)
+{
+ *(unsigned int *)p = htole32(x);
+}
+
+
+#define XDB_MAGIC ('R' | 'p' << 8 | 'm' << 16 | 'X' << 24)
+#define XDB_VERSION 0
+
+#define XDB_OFFSET_MAGIC 0
+#define XDB_OFFSET_VERSION 4
+#define XDB_OFFSET_GENERATION 8
+#define XDB_OFFSET_SLOTNPAGES 12
+#define XDB_OFFSET_PAGESIZE 16
+#define XDB_OFFSET_USERGENERATION 20
+
+/* must be multiple of SLOT_SIZE */
+#define XDB_HEADER_SIZE 32
+
+#define SLOT_MAGIC ('S' | 'l' << 8 | 'o' << 16)
+
+#define SLOT_SIZE 16
+#define SLOT_START (XDB_HEADER_SIZE / SLOT_SIZE)
+
+static void rpmxdbUnmap(rpmxdb xdb)
+{
+ munmap(xdb->mapped, xdb->mappedlen);
+ xdb->mapped = 0;
+ xdb->mappedlen = 0;
+}
+
+/* slot mapping functions */
+static int mapslot(rpmxdb xdb, struct xdb_slot *slot)
+{
+ void *mapped;
+ size_t off, size, shift;
+
+ if (slot->mapped)
+ return RPMRC_FAIL;
+ size = slot->pagecnt * xdb->pagesize;
+ off = slot->startpage * xdb->pagesize;
+ shift = 0;
+ if (xdb->pagesize != xdb->systempagesize) {
+ shift = off & (xdb->systempagesize - 1);
+ off -= shift;
+ size += shift;
+ size = (size + xdb->systempagesize - 1) & (xdb->systempagesize - 1);
+ }
+ mapped = mmap(0, size, slot->mapflags, MAP_SHARED, xdb->fd, off);
+ if (mapped == MAP_FAILED)
+ return RPMRC_FAIL;
+ slot->mapped = (unsigned char *)mapped + shift;
+ return RPMRC_OK;
+}
+
+static void unmapslot(rpmxdb xdb, struct xdb_slot *slot)
+{
+ size_t size;
+ unsigned char *mapped = slot->mapped;
+ if (!mapped)
+ return;
+ size = slot->pagecnt * xdb->pagesize;
+ if (xdb->pagesize != xdb->systempagesize) {
+ size_t off = slot->startpage * xdb->pagesize;
+ size_t shift = off & (xdb->systempagesize - 1);
+ mapped -= shift;
+ size += shift;
+ size = (size + xdb->systempagesize - 1) & (xdb->systempagesize - 1);
+ }
+ munmap(mapped, size);
+ slot->mapped = 0;
+}
+
+static int remapslot(rpmxdb xdb, struct xdb_slot *slot, unsigned int newpagecnt)
+{
+ void *mapped;
+ size_t off, oldsize, newsize, shift;
+ oldsize = slot->pagecnt * xdb->pagesize;
+ newsize = newpagecnt * xdb->pagesize;
+ off = slot->startpage * xdb->pagesize;
+ shift = 0;
+ if (xdb->pagesize != xdb->systempagesize) {
+ off = slot->startpage * xdb->pagesize;
+ shift = off & (xdb->systempagesize - 1);
+ off -= shift;
+ oldsize += shift;
+ oldsize = (oldsize + xdb->systempagesize - 1) & (xdb->systempagesize - 1);
+ newsize += shift;
+ newsize = (newsize + xdb->systempagesize - 1) & (xdb->systempagesize - 1);
+ }
+ if (slot->mapped)
+ mapped = mremap(slot->mapped - shift, oldsize, newsize, MREMAP_MAYMOVE);
+ else
+ mapped = mmap(0, newsize, slot->mapflags, MAP_SHARED, xdb->fd, off);
+ if (mapped == MAP_FAILED)
+ return RPMRC_FAIL;
+ slot->mapped = (unsigned char *)mapped + shift;
+ slot->pagecnt = newpagecnt;
+ return RPMRC_OK;
+}
+
+
+static int usedslots_cmp(const void *a, const void *b)
+{
+ struct xdb_slot *sa = *(struct xdb_slot **)a;
+ struct xdb_slot *sb = *(struct xdb_slot **)b;
+ if (sa->startpage == sb->startpage) {
+ return sa->pagecnt > sb->pagecnt ? 1 : sa->pagecnt < sb->pagecnt ? -1 : 0;
+ }
+ return sa->startpage > sb->startpage ? 1 : -1;
+}
+
+static int rpmxdbReadHeader(rpmxdb xdb)
+{
+ struct xdb_slot *slot;
+ unsigned int header[XDB_HEADER_SIZE / sizeof(unsigned int)];
+ unsigned int slotnpages, pagesize, generation, usergeneration;
+ unsigned int page, *lastfreep;
+ unsigned char *pageptr;
+ struct xdb_slot *slots, **usedslots, *lastslot;
+ unsigned int nslots;
+ unsigned int usedblobpages;
+ int i, nused, slotno;
+ struct stat stb;
+ size_t mapsize;
+
+ if (xdb->mapped) {
+ if (le2ha(xdb->mapped + XDB_OFFSET_GENERATION) == xdb->generation) {
+ return RPMRC_OK;
+ }
+ rpmxdbUnmap(xdb);
+ }
+ if (fstat(xdb->fd, &stb)) {
+ return RPMRC_FAIL;
+ }
+ if (pread(xdb->fd, header, sizeof(header), 0) != sizeof(header)) {
+ return RPMRC_FAIL;
+ }
+ if (le2ha((unsigned char *)header + XDB_OFFSET_MAGIC) != XDB_MAGIC)
+ return RPMRC_FAIL;
+ generation = le2ha((unsigned char *)header + XDB_OFFSET_GENERATION);
+ slotnpages = le2ha((unsigned char *)header + XDB_OFFSET_SLOTNPAGES);
+ pagesize = le2ha((unsigned char *)header + XDB_OFFSET_PAGESIZE);
+ usergeneration = le2ha((unsigned char *)header + XDB_OFFSET_USERGENERATION);
+ if (!slotnpages || !pagesize || stb.st_size % pagesize != 0)
+ return RPMRC_FAIL;
+ xdb->pagesize = pagesize;
+
+ /* round up */
+ mapsize = slotnpages * pagesize;
+ mapsize = (mapsize + xdb->systempagesize - 1) & ~(xdb->systempagesize - 1);
+ xdb->mapped = mmap(0, mapsize, xdb->rdonly ? PROT_READ : PROT_READ | PROT_WRITE, MAP_SHARED, xdb->fd, 0);
+ if ((void *)xdb->mapped == MAP_FAILED) {
+ xdb->mapped = 0;
+ return RPMRC_FAIL;
+ }
+ xdb->mappedlen = mapsize;
+
+ /* read in all slots */
+ xdb->firstfree = 0;
+ nslots = slotnpages * (pagesize / SLOT_SIZE) - SLOT_START + 1;
+ slots = calloc(nslots + 1, sizeof(struct xdb_slot));
+ if (!slots) {
+ rpmxdbUnmap(xdb);
+ return RPMRC_FAIL;
+ }
+ usedslots = calloc(nslots + 1, sizeof(int));
+ if (!usedslots) {
+ rpmxdbUnmap(xdb);
+ free(slots);
+ return RPMRC_FAIL;
+ }
+ nused = 0;
+ slotno = 1;
+ slot = slots + 1;
+ usedblobpages = 0;
+ lastfreep = &xdb->firstfree;
+ for (page = 0, pageptr = xdb->mapped; page < slotnpages; page++, pageptr += pagesize) {
+ unsigned int o;
+ for (o = page ? 0 : SLOT_START * SLOT_SIZE; o < pagesize; o += SLOT_SIZE, slotno++, slot++) {
+ unsigned char *pp = pageptr + o;
+ slot->slotno = slotno;
+ slot->subtag = le2ha(pp);
+ if ((slot->subtag & 0x00ffffff) != SLOT_MAGIC) {
+ free(slots);
+ free(usedslots);
+ rpmxdbUnmap(xdb);
+ return RPMRC_FAIL;
+ }
+ slot->subtag = (slot->subtag >> 24) & 255;
+ slot->blobtag = le2ha(pp + 4);
+ slot->startpage = le2ha(pp + 8);
+ slot->pagecnt = le2ha(pp + 12);
+ if (slot->pagecnt == 0 && slot->startpage) /* empty but used slot? */
+ slot->startpage = slotnpages;
+ if (!slot->startpage) {
+ *lastfreep = slotno;
+ lastfreep = &slot->next;
+ } else {
+ usedslots[nused++] = slot;
+ usedblobpages += slot->pagecnt;
+ }
+ }
+ }
+ if (nused > 1) {
+ qsort(usedslots, nused, sizeof(*usedslots), usedslots_cmp);
+ }
+ /* now chain em */
+ slots[0].pagecnt = slotnpages;
+ lastslot = slots;
+ for (i = 0; i < nused; i++, lastslot = slot) {
+ slot = usedslots[i];
+ if (lastslot->startpage + lastslot->pagecnt > slot->startpage) {
+ free(slots);
+ free(usedslots);
+ rpmxdbUnmap(xdb);
+ return RPMRC_FAIL;
+ }
+ lastslot->next = slot->slotno;
+ slot->prev = lastslot->slotno;
+ }
+ lastslot->next = nslots;
+ slots[nslots].slotno = nslots;
+ slots[nslots].prev = lastslot->slotno;
+ slots[nslots].startpage = stb.st_size / pagesize;
+ free(usedslots);
+ /* now sync with the old slot data */
+ if (xdb->slots) {
+ for (i = 1, slot = xdb->slots + i; i < xdb->nslots; i++, slot++) {
+ if (slot->startpage && (slot->mapped || slot->mapcallback)) {
+ struct xdb_slot *nslot;
+ if (i >= nslots || !slots[i].startpage || slots[i].blobtag != slot->blobtag || slots[i].subtag != slot->subtag) {
+ /* slot is gone */
+ if (slot->mapped) {
+ unmapslot(xdb, slot);
+ slot->mapcallback(xdb, slot->mapcallbackdata, 0, 0);
+ }
+ continue;
+ }
+ nslot = slots + i;
+ if (slot->mapcallback) {
+ nslot->mapflags = slot->mapflags;
+ nslot->mapcallback = slot->mapcallback;
+ nslot->mapcallbackdata = slot->mapcallbackdata;
+ }
+ if (slot->startpage != nslot->startpage || slot->pagecnt != nslot->pagecnt) {
+ /* slot moved or was resized */
+ if (slot->mapped)
+ unmapslot(xdb, slot);
+ if (nslot->mapcallback) {
+ if (nslot->pagecnt) {
+ mapslot(xdb, nslot);
+ nslot->mapcallback(xdb, nslot->mapcallbackdata, nslot->mapped, nslot->mapped ? nslot->pagecnt * xdb->pagesize : 0);
+ } else {
+ nslot->mapcallback(xdb, nslot->mapcallbackdata, 0, 0);
+ }
+ }
+ }
+ }
+ }
+ free(xdb->slots);
+ }
+ xdb->slots = slots;
+ xdb->nslots = nslots;
+ xdb->generation = generation;
+ xdb->slotnpages = slotnpages;
+ xdb->usergeneration = usergeneration;
+ xdb->usedblobpages = usedblobpages;
+ return RPMRC_OK;
+}
+
+static int rpmxdbWriteHeader(rpmxdb xdb)
+{
+ if (!xdb->mapped)
+ return RPMRC_FAIL;
+ h2lea(XDB_MAGIC, xdb->mapped + XDB_OFFSET_MAGIC);
+ h2lea(XDB_VERSION, xdb->mapped + XDB_OFFSET_VERSION);
+ h2lea(xdb->generation, xdb->mapped + XDB_OFFSET_GENERATION);
+ h2lea(xdb->slotnpages, xdb->mapped + XDB_OFFSET_SLOTNPAGES);
+ h2lea(xdb->pagesize, xdb->mapped + XDB_OFFSET_PAGESIZE);
+ return RPMRC_OK;
+}
+
+static void rpmxdbUpdateSlot(rpmxdb xdb, struct xdb_slot *slot)
+{
+ unsigned char *pp = xdb->mapped + (SLOT_START - 1 + slot->slotno) * SLOT_SIZE;
+ h2lea(SLOT_MAGIC | (slot->subtag << 24), pp);
+ h2lea(slot->blobtag, pp + 4);
+ if (slot->pagecnt || !slot->startpage)
+ h2lea(slot->startpage, pp + 8);
+ else
+ h2lea(1, pp + 8); /* "empty but used" blobs always start at 1 */
+ h2lea(slot->pagecnt, pp + 12);
+ xdb->generation++;
+ h2lea(xdb->generation, xdb->mapped + XDB_OFFSET_GENERATION);
+}
+
+static int rpmxdbWriteEmptyPages(rpmxdb xdb, unsigned int pageno, unsigned int count)
+{
+ unsigned char *page;
+ if (!count)
+ return RPMRC_OK;
+ page = malloc(xdb->pagesize);
+ if (!page)
+ return RPMRC_FAIL;
+ memset(page, 0, xdb->pagesize);
+ for (; count; count--, pageno++) {
+ if (pwrite(xdb->fd, page, xdb->pagesize, pageno * xdb->pagesize) != xdb->pagesize) {
+ free(page);
+ return RPMRC_FAIL;
+ }
+ }
+ free(page);
+ return RPMRC_OK;
+}
+
+static int rpmxdbWriteEmptySlotpage(rpmxdb xdb, int pageno)
+{
+ unsigned char *page;
+ int i, spp;
+ page = malloc(xdb->pagesize);
+ if (!page)
+ return RPMRC_FAIL;
+ memset(page, 0, xdb->pagesize);
+ spp = xdb->pagesize / SLOT_SIZE; /* slots per page */
+ for (i = pageno ? 0 : SLOT_START; i < spp; i++)
+ h2le(SLOT_MAGIC, page + i * SLOT_SIZE);
+ if (!pageno) {
+ /* only used when called from InitInternal */
+ if (xdb->mapped) {
+ free(page);
+ return RPMRC_FAIL;
+ }
+ xdb->mapped = page;
+ rpmxdbWriteHeader(xdb);
+ xdb->mapped = 0;
+ }
+ if (pwrite(xdb->fd, page, xdb->pagesize, pageno * xdb->pagesize) != xdb->pagesize) {
+ free(page);
+ return RPMRC_FAIL;
+ }
+ free(page);
+ return RPMRC_OK;
+}
+
+static int rpmxdbInitInternal(rpmxdb xdb)
+{
+ struct stat stb;
+ if (fstat(xdb->fd, &stb)) {
+ return RPMRC_FAIL;
+ }
+ if (stb.st_size == 0) {
+ xdb->slotnpages = 1;
+ xdb->generation++;
+ xdb->pagesize = sysconf(_SC_PAGE_SIZE);
+ if (rpmxdbWriteEmptySlotpage(xdb, 0)) {
+ return RPMRC_FAIL;
+ }
+ }
+ return RPMRC_OK;
+}
+
+/* we use the master pdb for locking */
+static int rpmxdbLockOnly(rpmxdb xdb, int excl)
+{
+ if (excl && xdb->rdonly)
+ return RPMRC_FAIL;
+ return rpmpkgLock(xdb->pkgdb, excl);
+}
+
+/* this is the same as rpmxdbLockReadHeader. It does the
+ * ReadHeader to sync the mappings if xdb moved some blobs.
+ */
+int rpmxdbLock(rpmxdb xdb, int excl)
+{
+ if (rpmxdbLockOnly(xdb, excl))
+ return RPMRC_FAIL;
+ if (rpmxdbReadHeader(xdb)) {
+ rpmxdbUnlock(xdb, excl);
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+int rpmxdbUnlock(rpmxdb xdb, int excl)
+{
+ return rpmpkgUnlock(xdb->pkgdb, excl);
+}
+
+static int rpmxdbLockReadHeader(rpmxdb xdb, int excl)
+{
+ if (rpmxdbLockOnly(xdb, excl))
+ return RPMRC_FAIL;
+ if (rpmxdbReadHeader(xdb)) {
+ rpmxdbUnlock(xdb, excl);
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+static int rpmxdbInit(rpmxdb xdb)
+{
+ int rc;
+
+ if (rpmxdbLockOnly(xdb, 1))
+ return RPMRC_FAIL;
+ rc = rpmxdbInitInternal(xdb);
+ rpmxdbUnlock(xdb, 1);
+ return rc;
+}
+
+int rpmxdbOpen(rpmxdb *xdbp, rpmpkgdb pkgdb, const char *filename, int flags, int mode)
+{
+ struct stat stb;
+ rpmxdb xdb;
+
+ *xdbp = 0;
+ xdb = calloc(1, sizeof(*xdb));
+ xdb->pkgdb = pkgdb;
+ xdb->filename = strdup(filename);
+ xdb->systempagesize = sysconf(_SC_PAGE_SIZE);
+ if (!xdb->filename) {
+ free(xdb);
+ return RPMRC_FAIL;
+ }
+ if ((flags & (O_RDONLY|O_RDWR)) == O_RDONLY)
+ xdb->rdonly = 1;
+ if ((xdb->fd = open(filename, flags, mode)) == -1) {
+ free(xdb->filename);
+ free(xdb);
+ return RPMRC_FAIL;
+ }
+ if (fstat(xdb->fd, &stb)) {
+ close(xdb->fd);
+ free(xdb->filename);
+ free(xdb);
+ return RPMRC_FAIL;
+ }
+ if (stb.st_size == 0) {
+ if (rpmxdbInit(xdb)) {
+ close(xdb->fd);
+ free(xdb->filename);
+ free(xdb);
+ return RPMRC_FAIL;
+ }
+ }
+ xdb->flags = flags;
+ xdb->mode = mode;
+ xdb->dofsync = 1;
+ *xdbp = xdb;
+ return RPMRC_OK;
+}
+
+void rpmxdbClose(rpmxdb xdb)
+{
+ struct xdb_slot *slot;
+ int i;
+
+ for (i = 1, slot = xdb->slots + 1; i < xdb->nslots; i++, slot++) {
+ if (slot->mapped) {
+ unmapslot(xdb, slot);
+ slot->mapcallback(xdb, slot->mapcallbackdata, 0, 0);
+ }
+ }
+ if (xdb->slots)
+ free(xdb->slots);
+ if (xdb->fd >= 0)
+ close(xdb->fd);
+ if (xdb->filename)
+ free(xdb->filename);
+ free(xdb);
+}
+
+/* moves the blob to a given new location (possibly resizeing) */
+static int moveblobto(rpmxdb xdb, struct xdb_slot *oldslot, struct xdb_slot *afterslot, unsigned int newpagecnt)
+{
+ struct xdb_slot *nextslot;
+ unsigned int newstartpage, oldpagecnt;
+ unsigned int tocopy;
+ int didmap;
+
+ newstartpage = afterslot->startpage + afterslot->pagecnt;
+ nextslot = xdb->slots + afterslot->next;
+
+ /* make sure there's enough room */
+ if (newpagecnt > nextslot->startpage - newstartpage)
+ return RPMRC_FAIL;
+
+#if 0
+ printf("moveblobto %d %d %d %d, afterslot %d\n", oldslot->startpage, oldslot->pagecnt, newstartpage, newpagecnt, afterslot->slotno);
+#endif
+ /* map old content */
+ didmap = 0;
+ oldpagecnt = oldslot->pagecnt;
+ if (!oldslot->mapped && oldpagecnt) {
+ if (mapslot(xdb, oldslot))
+ return RPMRC_FAIL;
+ didmap = 1;
+ }
+
+ /* copy content */
+ tocopy = newpagecnt > oldpagecnt ? oldpagecnt : newpagecnt;
+ if (tocopy && pwrite(xdb->fd, oldslot->mapped, tocopy * xdb->pagesize, newstartpage * xdb->pagesize) != tocopy * xdb->pagesize) {
+ if (didmap)
+ unmapslot(xdb, oldslot);
+ return RPMRC_FAIL;
+ }
+ /* zero out new pages */
+ if (newpagecnt > oldpagecnt) {
+ if (rpmxdbWriteEmptyPages(xdb, newstartpage + oldpagecnt, newpagecnt - oldpagecnt)) {
+ if (didmap)
+ unmapslot(xdb, oldslot);
+ return RPMRC_FAIL;
+ }
+ }
+
+ if (oldslot->mapped)
+ unmapslot(xdb, oldslot);
+
+ /* set new offset and position */
+ oldslot->startpage = newstartpage;
+ oldslot->pagecnt = newpagecnt;
+ rpmxdbUpdateSlot(xdb, oldslot);
+ xdb->usedblobpages -= oldpagecnt;
+ xdb->usedblobpages += newpagecnt;
+
+ if (afterslot != oldslot && nextslot != oldslot) {
+ /* remove from old chain */
+ xdb->slots[oldslot->prev].next = oldslot->next;
+ xdb->slots[oldslot->next].prev = oldslot->prev;
+
+ /* chain into new position, between lastslot and nextslot */
+ oldslot->prev = afterslot->slotno;
+ afterslot->next = oldslot->slotno;
+
+ oldslot->next = nextslot->slotno;
+ nextslot->prev = oldslot->slotno;
+ }
+
+ /* map again (if needed) */
+ if (oldslot->mapcallback) {
+ if (newpagecnt) {
+ if (mapslot(xdb, oldslot))
+ oldslot->mapped = 0; /* XXX: HELP, what can we do here? */
+ }
+ oldslot->mapcallback(xdb, oldslot->mapcallbackdata, oldslot->mapped, oldslot->mapped ? oldslot->pagecnt * xdb->pagesize : 0);
+ }
+ return RPMRC_OK;
+}
+
+/* moves the blob to a new location (possibly resizeing) */
+static int moveblob(rpmxdb xdb, struct xdb_slot *oldslot, unsigned int newpagecnt)
+{
+ struct xdb_slot *slot, *lastslot;
+ unsigned int nslots;
+ unsigned int freecnt;
+ int i;
+
+ nslots = xdb->nslots;
+ freecnt = 0;
+ lastslot = xdb->slots;
+ for (i = xdb->slots[0].next; ; lastslot = slot, i = slot->next) {
+ slot = xdb->slots + i;
+ freecnt = slot->startpage - (lastslot->startpage + lastslot->pagecnt);
+ if (freecnt >= newpagecnt)
+ break;
+ if (i == nslots)
+ break;
+ }
+ if (i == nslots && newpagecnt > freecnt) {
+ /* need to grow the file */
+ if (rpmxdbWriteEmptyPages(xdb, slot->startpage, newpagecnt - freecnt)) {
+ return RPMRC_FAIL;
+ }
+ slot->startpage += newpagecnt - freecnt;
+ }
+ return moveblobto(xdb, oldslot, lastslot, newpagecnt);
+}
+
+/* move the two blobs at the end of our file to the free area after the provided slot */
+static int moveblobstofront(rpmxdb xdb, struct xdb_slot *afterslot)
+{
+ struct xdb_slot *slot1, *slot2;
+ unsigned int freestart = afterslot->startpage + afterslot->pagecnt;
+ unsigned int freecount = xdb->slots[afterslot->next].startpage - freestart;
+
+ slot1 = xdb->slots + xdb->slots[xdb->nslots].prev;
+ if (slot1 == xdb->slots)
+ slot1 = slot2 = 0;
+ else {
+ slot2 = xdb->slots + slot1->prev;
+ if (slot2 == xdb->slots)
+ slot2 = 0;
+ }
+ if (slot1->pagecnt < slot2->pagecnt) {
+ struct xdb_slot *tmp = slot1;
+ slot1 = slot2;
+ slot2 = tmp;
+ }
+ if (slot1 && slot1->pagecnt && slot1->pagecnt <= freecount && slot1->startpage > freestart) {
+ if (moveblobto(xdb, slot1, afterslot, slot1->pagecnt))
+ return RPMRC_FAIL;
+ freestart += slot1->pagecnt;
+ freecount -= slot1->pagecnt;
+ afterslot = slot1;
+ }
+ if (slot2 && slot2->pagecnt && slot2->pagecnt <= freecount && slot2->startpage > freestart) {
+ if (moveblobto(xdb, slot2, afterslot, slot2->pagecnt))
+ return RPMRC_FAIL;
+ }
+ return RPMRC_OK;
+}
+
+/* add a single page containing empty slots */
+static int addslotpage(rpmxdb xdb)
+{
+ unsigned char *newaddr;
+ struct xdb_slot *slot;
+ int i, spp, nslots;
+ size_t newmappedlen;
+
+ if (xdb->firstfree)
+ return RPMRC_FAIL;
+
+ /* move first blob if needed */
+ nslots = xdb->nslots;
+ for (i = xdb->slots[0].next; i != nslots; i = slot->next) {
+ slot = xdb->slots + i;
+ if (slot->pagecnt)
+ break;
+ }
+ if (i != nslots && slot->pagecnt && slot->startpage == xdb->slotnpages) {
+ /* the blob at this slot is in the way. move it. */
+ if (moveblob(xdb, slot, slot->pagecnt))
+ return RPMRC_FAIL;
+ }
+
+ spp = xdb->pagesize / SLOT_SIZE; /* slots per page */
+ slot = realloc(xdb->slots, (nslots + 1 + spp) * sizeof(*slot));
+ if (!slot)
+ return RPMRC_FAIL;
+ xdb->slots = slot;
+
+ if (rpmxdbWriteEmptySlotpage(xdb, xdb->slotnpages)) {
+ return RPMRC_FAIL;
+ }
+ /* remap slots */
+ newmappedlen = xdb->slotnpages * xdb->pagesize + xdb->pagesize;
+ newmappedlen = (newmappedlen + xdb->systempagesize - 1) & ~(xdb->systempagesize - 1);
+ newaddr = mremap(xdb->mapped, xdb->mappedlen, newmappedlen, MREMAP_MAYMOVE);
+ if (newaddr == MAP_FAILED)
+ return RPMRC_FAIL;
+ xdb->mapped = newaddr;
+ xdb->mappedlen = newmappedlen;
+
+ /* update the header */
+ xdb->slotnpages++;
+ xdb->generation++;
+ rpmxdbWriteHeader(xdb);
+
+ /* fixup empty but used slots */
+ for (i = xdb->slots[0].next; i != nslots; i = slot->next) {
+ slot = xdb->slots + i;
+ if (slot->startpage >= xdb->slotnpages)
+ break;
+ slot->startpage = xdb->slotnpages;
+ if (slot->pagecnt)
+ abort();
+ }
+
+ /* move tail element to the new end */
+ slot = xdb->slots + nslots + spp;
+ *slot = xdb->slots[nslots];
+ slot->slotno = nslots + spp;
+ xdb->slots[slot->prev].next = slot->slotno;
+ xdb->nslots += spp;
+
+ /* add new free slots to the firstfree chain */
+ memset(xdb->slots + nslots, 0, sizeof(*slot) * spp);
+ for (i = 0; i < spp - 1; i++) {
+ xdb->slots[nslots + i].slotno = nslots + i;
+ xdb->slots[nslots + i].next = i + 1;
+ }
+ xdb->slots[nslots + i].slotno = nslots + i;
+ xdb->firstfree = nslots;
+ return RPMRC_OK;
+}
+
+static int createblob(rpmxdb xdb, unsigned int *idp, unsigned int blobtag, unsigned int subtag)
+{
+ struct xdb_slot *slot;
+ unsigned int id;
+
+ if (subtag > 255)
+ return RPMRC_FAIL;
+ if (!xdb->firstfree) {
+ if (addslotpage(xdb))
+ return RPMRC_FAIL;
+ }
+ id = xdb->firstfree;
+ slot = xdb->slots + xdb->firstfree;
+ xdb->firstfree = slot->next;
+
+ slot->mapped = 0;
+ slot->blobtag = blobtag;
+ slot->subtag = subtag;
+ slot->startpage = xdb->slotnpages;
+ slot->pagecnt = 0;
+ rpmxdbUpdateSlot(xdb, slot);
+ /* enqueue */
+ slot->prev = 0;
+ slot->next = xdb->slots[0].next;
+ xdb->slots[slot->next].prev = id;
+ xdb->slots[0].next = id;
+#if 0
+ printf("createblob #%d %d/%d\n", id, blobtag, subtag);
+#endif
+ if (slot->slotno != id)
+ abort();
+ if (slot->mapped)
+ abort();
+ *idp = id;
+ return RPMRC_OK;
+}
+
+int rpmxdbLookupBlob(rpmxdb xdb, unsigned int *idp, unsigned int blobtag, unsigned int subtag, int flags)
+{
+ struct xdb_slot *slot;
+ unsigned int i, nslots;
+ if (rpmxdbLockReadHeader(xdb, flags ? 1 : 0))
+ return RPMRC_FAIL;
+ nslots = xdb->nslots;
+ slot = 0;
+ for (i = xdb->slots[0].next; i != nslots; i = slot->next) {
+ slot = xdb->slots + i;
+ if (slot->blobtag == blobtag && slot->subtag == subtag)
+ break;
+ }
+ if (i == nslots)
+ i = 0;
+ if (i && (flags & O_TRUNC) != 0) {
+ if (rpmxdbResizeBlob(xdb, i, 0)) {
+ rpmxdbUnlock(xdb, flags ? 1 : 0);
+ return RPMRC_FAIL;
+ }
+ }
+ if (!i && (flags & O_CREAT) != 0) {
+ if (createblob(xdb, &i, blobtag, subtag)) {
+ rpmxdbUnlock(xdb, flags ? 1 : 0);
+ return RPMRC_FAIL;
+ }
+ }
+ *idp = i;
+ rpmxdbUnlock(xdb, flags ? 1 : 0);
+ return i ? RPMRC_OK : RPMRC_NOTFOUND;
+}
+
+int rpmxdbDelBlob(rpmxdb xdb, unsigned int id)
+{
+ struct xdb_slot *slot;
+ if (!id)
+ return RPMRC_FAIL;
+ if (rpmxdbLockReadHeader(xdb, 1))
+ return RPMRC_FAIL;
+ if (id >= xdb->nslots) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ slot = xdb->slots + id;
+ if (!slot->startpage) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_OK;
+ }
+ if (slot->mapped) {
+ unmapslot(xdb, slot);
+ slot->mapcallback(xdb, slot->mapcallbackdata, 0, 0);
+ }
+ /* remove from old chain */
+ xdb->slots[slot->prev].next = slot->next;
+ xdb->slots[slot->next].prev = slot->prev;
+ xdb->usedblobpages -= slot->pagecnt;
+
+ if (xdb->usedblobpages * 2 < xdb->slots[xdb->nslots].startpage && (slot->startpage + slot->pagecnt) * 2 < xdb->slots[xdb->nslots].startpage) {
+ /* freed in first half of pages, move last two blobs if we can */
+ moveblobstofront(xdb, xdb->slots + slot->prev);
+ }
+
+ /* zero slot */
+ memset(slot, 0, sizeof(*slot));
+ slot->slotno = id;
+ rpmxdbUpdateSlot(xdb, slot);
+
+ /* enqueue into free chain */
+ slot->next = xdb->firstfree;
+ xdb->firstfree = slot->slotno;
+
+ /* check if we should truncate the file */
+ slot = xdb->slots + xdb->slots[xdb->nslots].prev;
+ if (slot->startpage + slot->pagecnt < xdb->slots[xdb->nslots].startpage / 4 * 3) {
+ unsigned int newend = slot->startpage + slot->pagecnt;
+ if (!ftruncate(xdb->fd, newend * xdb->pagesize))
+ xdb->slots[xdb->nslots].startpage = newend;
+ }
+
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_OK;
+}
+
+int rpmxdbResizeBlob(rpmxdb xdb, unsigned int id, size_t newsize)
+{
+ struct xdb_slot *slot;
+ unsigned int oldpagecnt, newpagecnt;
+ if (!id)
+ return RPMRC_FAIL;
+ if (rpmxdbLockReadHeader(xdb, 1))
+ return RPMRC_FAIL;
+ if (id >= xdb->nslots) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ slot = xdb->slots + id;
+ if (!slot->startpage) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ oldpagecnt = slot->pagecnt;
+ newpagecnt = (newsize + xdb->pagesize - 1) / xdb->pagesize;
+ if (oldpagecnt && newpagecnt && newpagecnt <= oldpagecnt) {
+ /* reducing size. zero to end of page */
+ unsigned int pg = newsize & (xdb->pagesize - 1);
+ if (pg) {
+ if (slot->mapped) {
+ memset(slot->mapped + pg, 0, xdb->pagesize - pg);
+ } else {
+ char *empty = calloc(1, xdb->pagesize - pg);
+ if (!empty) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ if (pwrite(xdb->fd, empty, xdb->pagesize - pg, (slot->startpage + newpagecnt - 1) * xdb->pagesize + pg ) != xdb->pagesize - pg) {
+ free(empty);
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ free(empty);
+ }
+ }
+ }
+ if (newpagecnt == oldpagecnt) {
+ /* no size change */
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_OK;
+ }
+ if (!newpagecnt) {
+ /* special case: zero size blob, no longer mapped */
+ if (slot->mapped)
+ unmapslot(xdb, slot);
+ slot->pagecnt = 0;
+ slot->startpage = xdb->slotnpages;
+ /* remove from old chain */
+ xdb->slots[slot->prev].next = slot->next;
+ xdb->slots[slot->next].prev = slot->prev;
+ /* enqueue into head */
+ slot->prev = 0;
+ slot->next = xdb->slots[0].next;
+ xdb->slots[slot->next].prev = slot->slotno;
+ xdb->slots[0].next = slot->slotno;
+ rpmxdbUpdateSlot(xdb, slot);
+ xdb->usedblobpages -= oldpagecnt;
+ if (slot->mapcallback)
+ slot->mapcallback(xdb, slot->mapcallbackdata, 0, 0);
+ } else if (newpagecnt <= xdb->slots[slot->next].startpage - slot->startpage) {
+ /* can do it inplace */
+ if (newpagecnt > oldpagecnt) {
+ /* zero new pages */
+ if (rpmxdbWriteEmptyPages(xdb, slot->startpage + oldpagecnt, newpagecnt - oldpagecnt)) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ }
+ if (slot->mapcallback) {
+ if (remapslot(xdb, slot, newpagecnt)) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ } else {
+ if (slot->mapped)
+ unmapslot(xdb, slot);
+ slot->pagecnt = newpagecnt;
+ }
+ rpmxdbUpdateSlot(xdb, slot);
+ xdb->usedblobpages -= oldpagecnt;
+ xdb->usedblobpages += newpagecnt;
+ if (slot->mapcallback)
+ slot->mapcallback(xdb, slot->mapcallbackdata, slot->mapped, slot->pagecnt * xdb->pagesize);
+ } else {
+ /* need to relocate to a new page area */
+ if (moveblob(xdb, slot, newpagecnt)) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ }
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_OK;
+}
+
+int rpmxdbMapBlob(rpmxdb xdb, unsigned int id, int flags, void (*mapcallback)(rpmxdb xdb, void *data, void *newaddr, size_t newsize), void *mapcallbackdata)
+{
+ struct xdb_slot *slot;
+ if (!id || !mapcallback)
+ return RPMRC_FAIL;
+ if ((flags & (O_RDONLY|O_RDWR)) == O_RDWR && xdb->rdonly)
+ return RPMRC_FAIL;
+ if (rpmxdbLockReadHeader(xdb, 0))
+ return RPMRC_FAIL;
+ if (id >= xdb->nslots) {
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_FAIL;
+ }
+ slot = xdb->slots + id;
+ if (!slot->startpage || slot->mapped) {
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_FAIL;
+ }
+ slot->mapflags = (flags & (O_RDONLY|O_RDWR)) == O_RDWR ? PROT_READ | PROT_WRITE : PROT_READ;
+ if (slot->pagecnt) {
+ if (mapslot(xdb, slot)) {
+ slot->mapflags = 0;
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_FAIL;
+ }
+ }
+ slot->mapcallback = mapcallback;
+ slot->mapcallbackdata = mapcallbackdata;
+ mapcallback(xdb, mapcallbackdata, slot->mapped, slot->mapped ? slot->pagecnt * xdb->pagesize : 0);
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_OK;
+}
+
+int rpmxdbUnmapBlob(rpmxdb xdb, unsigned int id)
+{
+ struct xdb_slot *slot;
+ if (!id)
+ return RPMRC_OK;
+ if (rpmxdbLockReadHeader(xdb, 0))
+ return RPMRC_FAIL;
+ if (id >= xdb->nslots) {
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_FAIL;
+ }
+ slot = xdb->slots + id;
+ if (slot->mapped) {
+ unmapslot(xdb, slot);
+ slot->mapcallback(xdb, slot->mapcallbackdata, 0, 0);
+ }
+ slot->mapcallback = 0;
+ slot->mapcallbackdata = 0;
+ slot->mapflags = 0;
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_OK;
+}
+
+int rpmxdbRenameBlob(rpmxdb xdb, unsigned int *idp, unsigned int blobtag, unsigned int subtag)
+{
+ struct xdb_slot *slot;
+ unsigned int otherid;
+ unsigned int id = *idp;
+ int rc;
+
+ if (!id || subtag > 255)
+ return RPMRC_FAIL;
+ if (rpmxdbLockReadHeader(xdb, 1))
+ return RPMRC_FAIL;
+ if (id >= xdb->nslots) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ slot = xdb->slots + id;
+#if 0
+ printf("rpmxdbRenameBlob #%d %d/%d -> %d/%d\n", id, slot->blobtag, slot->subtag, blobtag, subtag);
+#endif
+ if (!slot->startpage) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ if (slot->blobtag == blobtag && slot->subtag == subtag) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_OK;
+ }
+ rc = rpmxdbLookupBlob(xdb, &otherid, blobtag, subtag, 0);
+ if (rc == RPMRC_NOTFOUND)
+ otherid = 0;
+ else if (rc) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ if (otherid) {
+#if 0
+ printf("(replacing #%d)\n", otherid);
+#endif
+ if (rpmxdbDelBlob(xdb, otherid)) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ /* get otherid back from free chain */
+ if (xdb->firstfree != otherid)
+ return RPMRC_FAIL;
+ xdb->firstfree = xdb->slots[otherid].next;
+
+ slot->blobtag = blobtag;
+ slot->subtag = subtag;
+ xdb->slots[otherid] = *slot;
+ /* fixup ids */
+ xdb->slots[otherid].slotno = otherid;
+ xdb->slots[slot->prev].next = otherid;
+ xdb->slots[slot->next].prev = otherid;
+ /* write */
+ rpmxdbUpdateSlot(xdb, xdb->slots + otherid);
+ memset(slot, 0, sizeof(*slot));
+ slot->slotno = id;
+ rpmxdbUpdateSlot(xdb, slot);
+ slot->next = xdb->firstfree;
+ xdb->firstfree = slot->slotno;
+ *idp = otherid;
+ } else {
+ slot = xdb->slots + id;
+ slot->blobtag = blobtag;
+ slot->subtag = subtag;
+ rpmxdbUpdateSlot(xdb, slot);
+ }
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_OK;
+}
+
+void rpmxdbSetFsync(rpmxdb xdb, int dofsync)
+{
+ xdb->dofsync = dofsync;
+}
+
+int rpmxdbIsRdonly(rpmxdb xdb)
+{
+ return xdb->rdonly;
+}
+
+int rpmxdbSetUserGeneration(rpmxdb xdb, unsigned int usergeneration)
+{
+ if (rpmxdbLockReadHeader(xdb, 1))
+ return RPMRC_FAIL;
+ /* sync before the update */
+ if (xdb->dofsync && fdatasync(xdb->fd)) {
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_FAIL;
+ }
+ xdb->usergeneration = usergeneration;
+ xdb->generation++;
+ rpmxdbWriteHeader(xdb);
+ rpmxdbUnlock(xdb, 1);
+ return RPMRC_OK;
+}
+
+int rpmxdbGetUserGeneration(rpmxdb xdb, unsigned int *usergenerationp)
+{
+ if (rpmxdbLockReadHeader(xdb, 0))
+ return RPMRC_FAIL;
+ *usergenerationp = xdb->usergeneration;
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_OK;
+}
+
+int rpmxdbStats(rpmxdb xdb)
+{
+ struct xdb_slot *slot;
+ unsigned int i, nslots;
+
+ if (rpmxdbLockReadHeader(xdb, 0))
+ return RPMRC_FAIL;
+ nslots = xdb->nslots;
+ printf("--- XDB Stats\n");
+ printf("Filename: %s\n", xdb->filename);
+ printf("Generation: %d\n", xdb->generation);
+ printf("Slot pages: %d\n", xdb->slotnpages);
+ printf("Blob pages: %d\n", xdb->usedblobpages);
+ printf("Free pages: %d\n", xdb->slots[nslots].startpage - xdb->usedblobpages - xdb->slotnpages);
+ printf("Pagesize: %d / %d\n", xdb->pagesize, xdb->systempagesize);
+ for (i = 1, slot = xdb->slots + i; i < nslots; i++, slot++) {
+ if (!slot->startpage)
+ continue;
+ printf("%2d: tag %d/%d, startpage %d, pagecnt %d%s\n", i, slot->blobtag, slot->subtag, slot->startpage, slot->pagecnt, slot->mapcallbackdata ? ", mapped" : "");
+ }
+#if 0
+ printf("Again in offset order:\n");
+ for (i = xdb->slots[0].next; i != nslots; i = slot->next) {
+ slot = xdb->slots + i;
+ printf("%2d: tag %d/%d, startpage %d, pagecnt %d%s\n", i, slot->blobtag, slot->subtag, slot->startpage, slot->pagecnt, slot->mapcallbackdata ? ", mapped" : "");
+ }
+#endif
+#if 0
+ printf("Free chain:\n");
+ for (i = xdb->firstfree; i; i = slot->next) {
+ slot = xdb->slots + i;
+ printf("%2d [%2d]: tag %d/%d, startpage %d, pagecnt %d%s\n", i, slot->slotno, slot->blobtag, slot->subtag, slot->startpage, slot->pagecnt, slot->mapcallbackdata ? ", mapped" : "");
+ }
+#endif
+ rpmxdbUnlock(xdb, 0);
+ return RPMRC_OK;
+}
+
diff --git a/lib/backend/ndb/rpmxdb.h b/lib/backend/ndb/rpmxdb.h
new file mode 100644
index 00000000..4358536e
--- /dev/null
+++ b/lib/backend/ndb/rpmxdb.h
@@ -0,0 +1,27 @@
+#include "rpmpkg.h"
+
+struct rpmxdb_s;
+typedef struct rpmxdb_s *rpmxdb;
+
+int rpmxdbOpen(rpmxdb *xdbp, rpmpkgdb pkgdb, const char *filename, int flags, int mode);
+void rpmxdbClose(rpmxdb xdb);
+void rpmxdbSetFsync(rpmxdb xdb, int dofsync);
+int rpmxdbIsRdonly(rpmxdb xdb);
+
+int rpmxdbLock(rpmxdb xdb, int excl);
+int rpmxdbUnlock(rpmxdb xdb, int excl);
+
+int rpmxdbLookupBlob(rpmxdb xdb, unsigned int *idp, unsigned int blobtag, unsigned int subtag, int flags);
+int rpmxdbDelBlob(rpmxdb xdb, unsigned int id) ;
+
+int rpmxdbMapBlob(rpmxdb xdb, unsigned int id, int flags, void (*mapcallback)(rpmxdb xdb, void *data, void *newaddr, size_t newsize), void *mapcallbackdata);
+int rpmxdbUnmapBlob(rpmxdb xdb, unsigned int id);
+
+int rpmxdbResizeBlob(rpmxdb xdb, unsigned int id, size_t newsize);
+int rpmxdbRenameBlob(rpmxdb xdb, unsigned int *idp, unsigned int blobtag, unsigned int subtag);
+
+int rpmxdbSetUserGeneration(rpmxdb xdb, unsigned int usergeneration);
+int rpmxdbGetUserGeneration(rpmxdb xdb, unsigned int *usergenerationp);
+
+int rpmxdbStats(rpmxdb xdb);
+
diff --git a/lib/cpio.h b/lib/cpio.h
index 8bd44119..b33b5fc1 100644
--- a/lib/cpio.h
+++ b/lib/cpio.h
@@ -34,8 +34,9 @@ rpmcpio_t rpmcpioFree(rpmcpio_t cpio);
/**
* Write cpio header.
- * @retval fsm file path and stat info
- * @param st
+ * @param cpio cpio archive
+ * @param path file name
+ * @param st stat struct with meta data
* @return 0 on success
*/
RPM_GNUC_INTERNAL
diff --git a/lib/depends.c b/lib/depends.c
index b54f8c10..fc413a90 100644
--- a/lib/depends.c
+++ b/lib/depends.c
@@ -40,7 +40,7 @@ const int rpmFLAGS = RPMSENSE_EQUAL;
#undef HTKEYTYPE
#undef HTDATATYPE
-#define HASHTYPE removedHash
+#define HASHTYPE packageHash
#define HTKEYTYPE unsigned int
#define HTDATATYPE struct rpmte_s *
#include "rpmhash.C"
@@ -48,17 +48,19 @@ const int rpmFLAGS = RPMSENSE_EQUAL;
#undef HTKEYTYPE
#undef HTDATATYPE
-#define HASHTYPE conflictsCache
+#define HASHTYPE filedepHash
#define HTKEYTYPE const char *
+#define HTDATATYPE const char *
#include "rpmhash.H"
#include "rpmhash.C"
#undef HASHTYPE
#undef HTKEYTYPE
+#undef HTDATATYPE
-#define HASHTYPE requiresCache
+#define HASHTYPE depexistsHash
#define HTKEYTYPE const char *
-#include "rpmhash.H"
-#include "rpmhash.C"
+#include "lib/rpmhash.H"
+#include "lib/rpmhash.C"
#undef HASHTYPE
#undef HTKEYTYPE
@@ -109,22 +111,23 @@ static rpmRC headerCheckPayloadFormat(Header h) {
static int removePackage(rpmts ts, Header h, rpmte depends)
{
tsMembers tsmem = rpmtsMembers(ts);
- rpmte p;
+ rpmte p, *pp;
unsigned int dboffset = headerGetInstance(h);
/* Can't remove what's not installed */
if (dboffset == 0) return 1;
/* Filter out duplicate erasures. */
- if (removedHashHasEntry(tsmem->removedPackages, dboffset)) {
- return 0;
+ if (packageHashGetEntry(tsmem->removedPackages, dboffset, &pp, NULL, NULL)) {
+ rpmteSetDependsOn(pp[0], depends);
+ return 0;
}
p = rpmteNew(ts, h, TR_REMOVED, NULL, NULL);
if (p == NULL)
return 1;
- removedHashAddEntry(tsmem->removedPackages, dboffset, p);
+ packageHashAddEntry(tsmem->removedPackages, dboffset, p);
if (tsmem->orderCount >= tsmem->orderAlloced) {
tsmem->orderAlloced += (tsmem->orderCount - tsmem->orderAlloced) + tsmem->delta;
@@ -592,6 +595,7 @@ static int rpmdbProvides(rpmts ts, depCache dcache, rpmds dep)
/**
* Check dep for an unsatisfied dependency.
* @param ts transaction set
+ * @param dcache dependency cache
* @param dep dependency
* @return 0 if satisfied, 1 if not satisfied
*/
@@ -626,31 +630,54 @@ retry:
if (!adding && isInstallPreReq(dsflags) && !isErasePreReq(dsflags))
goto exit;
+ /* Handle rich dependencies */
+ if (rpmdsIsRich(dep)) {
+ rpmds ds1, ds2;
+ rpmrichOp op;
+ char *emsg = 0;
+ if (rpmdsParseRichDep(dep, &ds1, &ds2, &op, &emsg) != RPMRC_OK) {
+ rc = rpmdsTagN(dep) == RPMTAG_CONFLICTNAME ? 0 : 1;
+ if (rpmdsInstance(dep) != 0)
+ rc = !rc; /* ignore errors for installed packages */
+ rpmdsNotify(dep, emsg ? emsg : "(parse error)", rc);
+ _free(emsg);
+ goto exit;
+ }
+ if (op == RPMRICHOP_IF) {
+ if (rpmdsIsRich(ds2)) {
+ /* check if this is a IF...ELSE combination */
+ rpmds ds21 = NULL, ds22 = NULL;
+ rpmrichOp op2;
+ if (rpmdsParseRichDep(ds2, &ds21, &ds22, &op2, NULL) == RPMRC_OK && op2 == RPMRICHOP_ELSE) {
+ rc = unsatisfiedDepend(ts, dcache, ds21);
+ if (rc) {
+ rpmdsFree(ds1);
+ ds1 = ds22;
+ ds22 = NULL;
+ }
+ rc = 1;
+ }
+ rpmdsFree(ds21);
+ rpmdsFree(ds22);
+ }
+ if (!rc)
+ rc = !unsatisfiedDepend(ts, dcache, ds2);
+ }
+ if (op != RPMRICHOP_IF || rc)
+ rc = unsatisfiedDepend(ts, dcache, ds1);
+ if ((rc && op == RPMRICHOP_OR) || (!rc && op == RPMRICHOP_AND))
+ rc = unsatisfiedDepend(ts, dcache, ds2);
+ ds1 = rpmdsFree(ds1);
+ ds2 = rpmdsFree(ds2);
+ rpmdsNotify(dep, "(rich)", rc);
+ goto exit;
+ }
+
/* Pretrans dependencies can't be satisfied by added packages. */
if (!(dsflags & RPMSENSE_PRETRANS)) {
rpmte *matches = rpmalAllSatisfiesDepend(tsmem->addedPackages, dep);
- int match = 0;
-
- /*
- * Handle definitive matches within the added package set.
- * Self-obsoletes and -conflicts fall through here as we need to
- * check for possible other matches in the rpmdb.
- */
- for (rpmte *m = matches; m && *m; m++) {
- rpmTagVal dtag = rpmdsTagN(dep);
- /* Requires match, look no further */
- if (dtag == RPMTAG_REQUIRENAME) {
- match = 1;
- break;
- }
-
- /* Conflicts/obsoletes match on another package, look no further */
- if (rpmteDS(*m, dtag) != dep) {
- match = 1;
- break;
- }
- }
- free(matches);
+ int match = matches && *matches;
+ _free(matches);
if (match)
goto exit;
}
@@ -739,6 +766,116 @@ static void checkInstDeps(rpmts ts, depCache dcache, rpmte te,
rpmdbFreeIterator(mi);
}
+static void checkNotInstDeps(rpmts ts, depCache dcache, rpmte te,
+ rpmTag depTag, const char *dep)
+{
+ char *ndep = rmalloc(strlen(dep) + 2);
+ ndep[0] = '!';
+ strcpy(ndep + 1, dep);
+ checkInstDeps(ts, dcache, te, depTag, ndep);
+ free(ndep);
+}
+
+static void checkInstFileDeps(rpmts ts, depCache dcache, rpmte te,
+ rpmTag depTag, rpmfi fi, int is_not,
+ filedepHash cache, fingerPrintCache *fpcp)
+{
+ fingerPrintCache fpc = *fpcp;
+ fingerPrint * fp = NULL;
+ const char *basename = rpmfiBN(fi);
+ const char *dirname;
+ const char **dirnames = 0;
+ int ndirnames = 0;
+ int i;
+
+ filedepHashGetEntry(cache, basename, &dirnames, &ndirnames, NULL);
+ if (!ndirnames)
+ return;
+ if (!fpc)
+ *fpcp = fpc = fpCacheCreate(1001, NULL);
+ dirname = rpmfiDN(fi);
+ fpLookup(fpc, dirname, basename, &fp);
+ for (i = 0; i < ndirnames; i++) {
+ char *fpdep = 0;
+ const char *dep;
+ if (!strcmp(dirnames[i], dirname)) {
+ dep = rpmfiFN(fi);
+ } else if (fpLookupEquals(fpc, fp, dirnames[i], basename)) {
+ fpdep = rmalloc(strlen(dirnames[i]) + strlen(basename) + 1);
+ strcpy(fpdep, dirnames[i]);
+ strcat(fpdep, basename);
+ dep = fpdep;
+ } else {
+ continue;
+ }
+ if (!is_not)
+ checkInstDeps(ts, dcache, te, depTag, dep);
+ else
+ checkNotInstDeps(ts, dcache, te, depTag, dep);
+ _free(fpdep);
+ }
+ _free(fp);
+}
+
+static void addFileDepToHash(filedepHash hash, char *key, size_t keylen)
+{
+ int i;
+ char *basename, *dirname;
+ if (!keylen || key[0] != '/')
+ return;
+ for (i = keylen - 1; key[i] != '/'; i--)
+ ;
+ dirname = rmalloc(i + 2);
+ memcpy(dirname, key, i + 1);
+ dirname[i + 1] = 0;
+ basename = rmalloc(keylen - i);
+ memcpy(basename, key + i + 1, keylen - i - 1);
+ basename[keylen - i - 1] = 0;
+ filedepHashAddEntry(hash, basename, dirname);
+}
+
+static void addDepToHash(depexistsHash hash, char *key, size_t keylen)
+{
+ char *keystr;
+ if (!keylen)
+ return;
+ keystr = rmalloc(keylen + 1);
+ strncpy(keystr, key, keylen);
+ keystr[keylen] = 0;
+ depexistsHashAddEntry(hash, keystr);
+}
+
+static void addIndexToDepHashes(rpmts ts, rpmDbiTag tag,
+ depexistsHash dephash, filedepHash filehash,
+ depexistsHash depnothash, filedepHash filenothash)
+{
+ char *key;
+ size_t keylen;
+ rpmdbIndexIterator ii = rpmdbIndexIteratorInit(rpmtsGetRdb(ts), tag);
+
+ if (!ii)
+ return;
+ while ((rpmdbIndexIteratorNext(ii, (const void**)&key, &keylen)) == 0) {
+ if (!key || !keylen)
+ continue;
+ if (*key == '!' && keylen > 1) {
+ key++;
+ keylen--;
+ if (*key == '/' && filenothash)
+ addFileDepToHash(filenothash, key, keylen);
+ if (depnothash)
+ addDepToHash(depnothash, key, keylen);
+ } else {
+ if (*key == '/' && filehash)
+ addFileDepToHash(filehash, key, keylen);
+ if (dephash)
+ addDepToHash(dephash, key, keylen);
+ }
+ }
+ rpmdbIndexIteratorFree(ii);
+}
+
+
int rpmtsCheck(rpmts ts)
{
rpm_color_t tscolor = rpmtsColor(ts);
@@ -746,77 +883,67 @@ int rpmtsCheck(rpmts ts)
int closeatexit = 0;
int rc = 0;
depCache dcache = NULL;
- conflictsCache confcache = NULL;
- requiresCache reqcache = NULL;
+ filedepHash confilehash = NULL; /* file conflicts of installed packages */
+ filedepHash connotfilehash = NULL; /* file conflicts of installed packages */
+ depexistsHash connothash = NULL;
+ filedepHash reqfilehash = NULL; /* file requires of installed packages */
+ filedepHash reqnotfilehash = NULL; /* file requires of installed packages */
+ depexistsHash reqnothash = NULL;
+ fingerPrintCache fpc = NULL;
+ rpmdb rdb = NULL;
(void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_CHECK), 0);
/* Do lazy, readonly, open of rpm database. */
- if (rpmtsGetRdb(ts) == NULL && rpmtsGetDBMode(ts) != -1) {
+ rdb = rpmtsGetRdb(ts);
+ if (rdb == NULL && rpmtsGetDBMode(ts) != -1) {
if ((rc = rpmtsOpenDB(ts, rpmtsGetDBMode(ts))) != 0)
goto exit;
+ rdb = rpmtsGetRdb(ts);
closeatexit = 1;
}
+ if (rdb)
+ rpmdbCtrl(rdb, RPMDB_CTRL_LOCK_RO);
+
/* XXX FIXME: figure some kind of heuristic for the cache size */
dcache = depCacheCreate(5001, rstrhash, strcmp,
(depCacheFreeKey)rfree, NULL);
- /* build cache of all file conflicts dependencies */
- confcache = conflictsCacheCreate(257, rstrhash, strcmp,
- (depCacheFreeKey)rfree);
- if (confcache) {
- rpmdbIndexIterator ii = rpmdbIndexIteratorInit(rpmtsGetRdb(ts), RPMTAG_CONFLICTNAME);
- if (ii) {
- char *key;
- size_t keylen;
- while ((rpmdbIndexIteratorNext(ii, (const void**)&key, &keylen)) == 0) {
- char *k;
- if (!key || keylen == 0 || key[0] != '/')
- continue;
- while (keylen > 1 && (k = memchr(key + 1, '/', keylen - 1))) {
- keylen -= k - key;
- key += k - key;
- }
- if (keylen <= 1)
- continue;
- k = rmalloc(keylen);
- memcpy(k, key + 1, keylen - 1);
- k[keylen - 1] = 0;
- conflictsCacheAddEntry(confcache, k);
- }
- rpmdbIndexIteratorFree(ii);
- }
- }
-
- /* build cache of all file requires dependencies */
- reqcache = requiresCacheCreate(8191, rstrhash, strcmp,
- (depCacheFreeKey)rfree);
- if (reqcache) {
- rpmdbIndexIterator ii = rpmdbIndexIteratorInit(rpmtsGetRdb(ts), RPMTAG_REQUIRENAME);
- if (ii) {
- char *key;
- size_t keylen;
- while ((rpmdbIndexIteratorNext(ii, (const void**)&key, &keylen)) == 0) {
- char *k;
- if (!key || keylen == 0 || key[0] != '/')
- continue;
- while (keylen > 1 && (k = memchr(key + 1, '/', keylen - 1))) {
- keylen -= k - key;
- key += k - key;
- }
- if (keylen <= 1)
- continue;
- k = rmalloc(keylen);
- memcpy(k, key + 1, keylen - 1);
- k[keylen - 1] = 0;
- requiresCacheAddEntry(reqcache, k);
- }
- rpmdbIndexIteratorFree(ii);
- }
- }
+ /* build hashes of all confilict sdependencies */
+ confilehash = filedepHashCreate(257, rstrhash, strcmp,
+ (filedepHashFreeKey)rfree,
+ (filedepHashFreeData)rfree);
+ connothash = depexistsHashCreate(257, rstrhash, strcmp,
+ (filedepHashFreeKey)rfree);
+ connotfilehash = filedepHashCreate(257, rstrhash, strcmp,
+ (filedepHashFreeKey)rfree,
+ (filedepHashFreeData)rfree);
+ addIndexToDepHashes(ts, RPMTAG_CONFLICTNAME, NULL, confilehash, connothash, connotfilehash);
+ if (!filedepHashNumKeys(confilehash))
+ confilehash = filedepHashFree(confilehash);
+ if (!depexistsHashNumKeys(connothash))
+ connothash= depexistsHashFree(connothash);
+ if (!filedepHashNumKeys(connotfilehash))
+ connotfilehash = filedepHashFree(connotfilehash);
+
+ /* build hashes of all requires dependencies */
+ reqfilehash = filedepHashCreate(8191, rstrhash, strcmp,
+ (filedepHashFreeKey)rfree,
+ (filedepHashFreeData)rfree);
+ reqnothash = depexistsHashCreate(257, rstrhash, strcmp,
+ (filedepHashFreeKey)rfree);
+ reqnotfilehash = filedepHashCreate(257, rstrhash, strcmp,
+ (filedepHashFreeKey)rfree,
+ (filedepHashFreeData)rfree);
+ addIndexToDepHashes(ts, RPMTAG_REQUIRENAME, NULL, reqfilehash, reqnothash, reqnotfilehash);
+ if (!filedepHashNumKeys(reqfilehash))
+ reqfilehash = filedepHashFree(reqfilehash);
+ if (!depexistsHashNumKeys(reqnothash))
+ reqnothash= depexistsHashFree(reqnothash);
+ if (!filedepHashNumKeys(reqnotfilehash))
+ reqnotfilehash = filedepHashFree(reqnotfilehash);
-
/*
* Look at all of the added packages and make sure their dependencies
* are satisfied.
@@ -837,7 +964,10 @@ int rpmtsCheck(rpmts ts)
/* Check provides against conflicts in installed packages. */
while (rpmdsNext(provides) >= 0) {
- checkInstDeps(ts, dcache, p, RPMTAG_CONFLICTNAME, rpmdsN(provides));
+ const char *dep = rpmdsN(provides);
+ checkInstDeps(ts, dcache, p, RPMTAG_CONFLICTNAME, dep);
+ if (reqnothash && depexistsHashHasEntry(reqnothash, dep))
+ checkNotInstDeps(ts, dcache, p, RPMTAG_REQUIRENAME, dep);
}
/* Skip obsoletion checks for source packages (ie build) */
@@ -848,13 +978,14 @@ int rpmtsCheck(rpmts ts)
checkInstDeps(ts, dcache, p, RPMTAG_OBSOLETENAME, rpmteN(p));
/* Check filenames against installed conflicts */
- if (conflictsCacheNumKeys(confcache)) {
+ if (confilehash || reqnotfilehash) {
rpmfiles files = rpmteFiles(p);
rpmfi fi = rpmfilesIter(files, RPMFI_ITER_FWD);
while (rpmfiNext(fi) >= 0) {
- if (!conflictsCacheHasEntry(confcache, rpmfiBN(fi)))
- continue;
- checkInstDeps(ts, dcache, p, RPMTAG_CONFLICTNAME, rpmfiFN(fi));
+ if (confilehash)
+ checkInstFileDeps(ts, dcache, p, RPMTAG_CONFLICTNAME, fi, 0, confilehash, &fpc);
+ if (reqnotfilehash)
+ checkInstFileDeps(ts, dcache, p, RPMTAG_REQUIRENAME, fi, 1, reqnotfilehash, &fpc);
}
rpmfiFree(fi);
rpmfilesFree(files);
@@ -868,33 +999,47 @@ int rpmtsCheck(rpmts ts)
pi = rpmtsiInit(ts);
while ((p = rpmtsiNext(pi, TR_REMOVED)) != NULL) {
rpmds provides = rpmdsInit(rpmteDS(p, RPMTAG_PROVIDENAME));
- rpmfiles files = rpmteFiles(p);
- rpmfi fi = rpmfilesIter(files, RPMFI_ITER_FWD);;
rpmlog(RPMLOG_DEBUG, "========== --- %s %s/%s 0x%x\n",
rpmteNEVR(p), rpmteA(p), rpmteO(p), rpmteColor(p));
/* Check provides and filenames against installed dependencies. */
while (rpmdsNext(provides) >= 0) {
- checkInstDeps(ts, dcache, p, RPMTAG_REQUIRENAME, rpmdsN(provides));
+ const char *dep = rpmdsN(provides);
+ checkInstDeps(ts, dcache, p, RPMTAG_REQUIRENAME, dep);
+ if (connothash && depexistsHashHasEntry(connothash, dep))
+ checkNotInstDeps(ts, dcache, p, RPMTAG_CONFLICTNAME, dep);
}
- while (rpmfiNext(fi) >= 0) {
- if (RPMFILE_IS_INSTALLED(rpmfiFState(fi))) {
- if (!requiresCacheHasEntry(reqcache, rpmfiBN(fi)))
- continue;
- checkInstDeps(ts, dcache, p, RPMTAG_REQUIRENAME, rpmfiFN(fi));
+ if (reqfilehash || connotfilehash) {
+ rpmfiles files = rpmteFiles(p);
+ rpmfi fi = rpmfilesIter(files, RPMFI_ITER_FWD);;
+ while (rpmfiNext(fi) >= 0) {
+ if (RPMFILE_IS_INSTALLED(rpmfiFState(fi))) {
+ if (reqfilehash)
+ checkInstFileDeps(ts, dcache, p, RPMTAG_REQUIRENAME, fi, 0, reqfilehash, &fpc);
+ if (connotfilehash)
+ checkInstFileDeps(ts, dcache, p, RPMTAG_CONFLICTNAME, fi, 1, connotfilehash, &fpc);
+ }
}
+ rpmfiFree(fi);
+ rpmfilesFree(files);
}
- rpmfiFree(fi);
- rpmfilesFree(files);
}
rpmtsiFree(pi);
+ if (rdb)
+ rpmdbCtrl(rdb, RPMDB_CTRL_UNLOCK_RO);
+
exit:
depCacheFree(dcache);
- conflictsCacheFree(confcache);
- requiresCacheFree(reqcache);
+ filedepHashFree(confilehash);
+ filedepHashFree(connotfilehash);
+ depexistsHashFree(connothash);
+ filedepHashFree(reqfilehash);
+ filedepHashFree(reqnotfilehash);
+ depexistsHashFree(reqnothash);
+ fpCacheFree(fpc);
(void) rpmswExit(rpmtsOp(ts, RPMTS_OP_CHECK), 0);
diff --git a/lib/formats.c b/lib/formats.c
index 070731a1..bad0b2de 100644
--- a/lib/formats.c
+++ b/lib/formats.c
@@ -93,7 +93,8 @@ static char * hexFormat(rpmtd td)
}
/**
- * @param td tag data container
+ * @param td tag data container
+ * @param strftimeFormat format string
* @return formatted string
*/
static char * realDateFormat(rpmtd td, const char * strftimeFormat)
diff --git a/lib/fprint.c b/lib/fprint.c
index 9274dcfd..65eaeec6 100644
--- a/lib/fprint.c
+++ b/lib/fprint.c
@@ -251,7 +251,7 @@ int fpLookup(fingerPrintCache cache,
/**
* Return hash value for a finger print.
* Hash based on dev and inode only!
- * @param key pointer to finger print entry
+ * @param fp pointer to finger print entry
* @return hash value
*/
static unsigned int fpHashFunction(const fingerPrint * fp)
diff --git a/lib/fsm.c b/lib/fsm.c
index d18e4d8b..4de30e48 100644
--- a/lib/fsm.c
+++ b/lib/fsm.c
@@ -67,7 +67,7 @@ typedef struct dnli_s {
/** \ingroup payload
* Destroy directory name iterator.
- * @param a directory name iterator
+ * @param dnli directory name iterator
* @retval NULL always
*/
static DNLI_t dnlFreeIterator(DNLI_t dnli)
@@ -376,7 +376,8 @@ static int fsmMknod(const char *path, mode_t mode, dev_t dev)
/**
* Create (if necessary) directories not explicitly included in package.
- * @param dnli file state machine data
+ * @param files file data
+ * @param fs file states
* @param plugins rpm plugins handle
* @return 0 on success
*/
diff --git a/lib/fsm.h b/lib/fsm.h
index 301ed8b8..7a75caf5 100644
--- a/lib/fsm.h
+++ b/lib/fsm.h
@@ -17,9 +17,9 @@ typedef struct rpmpsm_s * rpmpsm;
/**
* Execute a file actions for package
* @param ts transaction set
- * @param fi transaction element file info
+ * @param te transaction set element
+ * @param files transaction element file info
* @param psm owner psm (or NULL)
- * @retval archiveSize pointer to archive size
* @retval failedFile pointer to first file name that failed (malloced)
* @return 0 on success
*/
diff --git a/lib/header.c b/lib/header.c
index 3f9d0e70..a613ce24 100644
--- a/lib/header.c
+++ b/lib/header.c
@@ -1070,7 +1070,6 @@ int headerIsEntry(Header h, rpmTagVal tag)
* @todo Permit retrieval of regions other than HEADER_IMUTABLE.
* @param entry header entry
* @param td tag data container
- * @param minMem string pointers refer to header memory?
* @param flags flags to control memory allocation
* @return 1 on success, otherwise error.
*/
@@ -1187,6 +1186,7 @@ static int copyTdEntry(const indexEntry entry, rpmtd td, headerGetFlags flags)
}
td->type = entry->info.type;
td->count = count;
+ td->size = entry->length;
if (td->data && entry->data != td->data) {
td->flags |= RPMTD_ALLOCED;
diff --git a/lib/header.h b/lib/header.h
index ddaba4f6..a6bd625c 100644
--- a/lib/header.h
+++ b/lib/header.h
@@ -245,9 +245,9 @@ int headerPut(Header h, rpmtd td, headerPutFlags flags);
* @return 1 on success, 0 on failure
*
*/
+int headerPutBin(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
int headerPutString(Header h, rpmTagVal tag, const char *val);
int headerPutStringArray(Header h, rpmTagVal tag, const char **val, rpm_count_t size);
-int headerPutBin(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
int headerPutChar(Header h, rpmTagVal tag, const char *val, rpm_count_t size);
int headerPutUint8(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
int headerPutUint16(Header h, rpmTagVal tag, const uint16_t *val, rpm_count_t size);
diff --git a/lib/headerutil.c b/lib/headerutil.c
index a9f1221e..92c29a8b 100644
--- a/lib/headerutil.c
+++ b/lib/headerutil.c
@@ -1,5 +1,5 @@
/** \ingroup rpmdb
- * \file lib/hdrNVR.c
+ * \file lib/headerutil.c
*/
#include "system.h"
diff --git a/lib/misc.h b/lib/misc.h
index c1b77c4d..c519afb8 100644
--- a/lib/misc.h
+++ b/lib/misc.h
@@ -43,7 +43,7 @@ int headerFindSpec(Header h);
/**
* Relocate files in header.
* @todo multilib file dispositions need to be checked.
- * @param relocations relocations
+ * @param relocs relocations
* @param numRelocations number of relocations
* @param fs file state set
* @param h package header to relocate
diff --git a/lib/order.c b/lib/order.c
index f09b192b..854f37e9 100644
--- a/lib/order.c
+++ b/lib/order.c
@@ -134,6 +134,7 @@ static inline int addSingleRelation(rpmte p,
/**
* Record next "q <- p" relation (i.e. "p" requires "q").
* @param ts transaction set
+ * @param al packages list
* @param p predecessor (i.e. package that "Requires: q")
* @param requires relation
* @return 0 always
@@ -152,6 +153,28 @@ static inline int addRelation(rpmts ts,
if (dsflags & (RPMSENSE_RPMLIB|RPMSENSE_CONFIG|RPMSENSE_PRETRANS|RPMSENSE_POSTTRANS))
return 0;
+ if (rpmdsIsRich(requires)) {
+ rpmds ds1, ds2;
+ rpmrichOp op;
+ if (rpmdsParseRichDep(requires, &ds1, &ds2, &op, NULL) == RPMRC_OK) {
+ if (op != RPMRICHOP_ELSE)
+ addRelation(ts, al, p, ds1);
+ if (op == RPMRICHOP_IF) {
+ rpmds ds21, ds22;
+ rpmrichOp op2;
+ if (rpmdsParseRichDep(requires, &ds21, &ds22, &op2, NULL) == RPMRC_OK && op2 == RPMRICHOP_ELSE) {
+ addRelation(ts, al, p, ds22);
+ }
+ ds21 = rpmdsFree(ds21);
+ ds22 = rpmdsFree(ds22);
+ }
+ if (op == RPMRICHOP_AND || op == RPMRICHOP_OR)
+ addRelation(ts, al, p, ds2);
+ ds1 = rpmdsFree(ds1);
+ ds2 = rpmdsFree(ds2);
+ }
+ return 0;
+ }
q = rpmalSatisfiesDepend(al, p, requires);
/* Avoid deps outside this transaction and self dependencies */
diff --git a/lib/package.c b/lib/package.c
index 1ca4630d..83f96d92 100644
--- a/lib/package.c
+++ b/lib/package.c
@@ -147,16 +147,6 @@ exit:
return seen;
}
-int parsePGPSig(rpmtd sigtd, const char *type,
- pgpDigParams *sig, char **msg)
-{
- int rc = pgpPrtParams(sigtd->data, sigtd->count, PGPTAG_SIGNATURE, sig);
-
- if (rc != 0 && type != NULL)
- rasprintf(msg, _("%s has unverifiable signature"), type);
- return rc;
-}
-
/*
* Argument monster to verify header-only signature/digest if there is
* one, otherwisereturn RPMRC_NOTFOUND to signal for plain sanity check.
@@ -171,7 +161,7 @@ static rpmRC headerSigVerify(rpmKeyring keyring, rpmVSFlags vsflags,
pgpDigParams sig = NULL;
struct rpmtd_s sigtd;
struct entryInfo_s info, einfo;
- unsigned int hashalgo = 0;
+ struct sigtInfo_s sinfo;
rpmtdReset(&sigtd);
memset(&info, 0, sizeof(info));
@@ -246,22 +236,11 @@ static rpmRC headerSigVerify(rpmKeyring keyring, rpmVSFlags vsflags,
sigtd.data = memcpy(xmalloc(siglen), dataStart + info.offset, siglen);
sigtd.flags = RPMTD_ALLOCED;
- switch (info.tag) {
- case RPMTAG_RSAHEADER:
- case RPMTAG_DSAHEADER:
- if (parsePGPSig(&sigtd, "header", &sig, buf))
- goto exit;
- hashalgo = pgpDigParamsAlgo(sig, PGPVAL_HASHALGO);
- break;
- case RPMTAG_SHA1HEADER:
- hashalgo = PGPHASHALGO_SHA1;
- break;
- default:
- break;
- }
+ if (rpmSigInfoParse(&sigtd, "header", &sinfo, &sig, buf))
+ goto exit;
- if (hashalgo) {
- DIGEST_CTX ctx = rpmDigestInit(hashalgo, RPMDIGEST_NONE);
+ if (sinfo.hashalgo) {
+ DIGEST_CTX ctx = rpmDigestInit(sinfo.hashalgo, RPMDIGEST_NONE);
int32_t ildl[2] = { htonl(ril), htonl(rdl) };
rpmDigestUpdate(ctx, rpm_header_magic, sizeof(rpm_header_magic));
@@ -292,6 +271,12 @@ rpmRC headerVerifyRegion(rpmTagVal regionTag,
int32_t ril = 0;
int32_t rdl = 0;
+ /* Check that we have at least on tag */
+ if (il < 1) {
+ rasprintf(buf, _("region: no tags"));
+ goto exit;
+ }
+
memset(entry, 0, sizeof(*entry));
/* Check (and convert) the 1st tag element. */
@@ -533,16 +518,14 @@ static rpmRC rpmpkgRead(rpmKeyring keyring, rpmVSFlags vsflags,
Header * hdrp, unsigned int *keyidp, char **msg)
{
pgpDigParams sig = NULL;
- char buf[8*BUFSIZ];
- ssize_t count;
Header sigh = NULL;
rpmTagVal sigtag;
struct rpmtd_s sigtd;
+ struct sigtInfo_s sinfo;
Header h = NULL;
rpmRC rc = RPMRC_FAIL; /* assume failure */
int leadtype = -1;
headerGetFlags hgeflags = HEADERGET_DEFAULT;
- DIGEST_CTX ctx = NULL;
if (hdrp) *hdrp = NULL;
@@ -567,27 +550,17 @@ static rpmRC rpmpkgRead(rpmKeyring keyring, rpmVSFlags vsflags,
(sigtag == 0 && !(vsflags & (_mask)) && headerIsEntry(sigh, (_tag)))
/*
- * Figger the most effective available signature.
- * Prefer signatures over digests, then header-only over header+payload.
+ * Figger the most effective means of verification available, prefer
+ * signatures over digests. Legacy header+payload entries are not used.
* DSA will be preferred over RSA if both exist because tested first.
- * Note that NEEDPAYLOAD prevents header+payload signatures and digests.
*/
sigtag = 0;
if (_chk(RPMVSF_NODSAHEADER, RPMSIGTAG_DSA)) {
sigtag = RPMSIGTAG_DSA;
} else if (_chk(RPMVSF_NORSAHEADER, RPMSIGTAG_RSA)) {
sigtag = RPMSIGTAG_RSA;
- } else if (_chk(RPMVSF_NODSA|RPMVSF_NEEDPAYLOAD, RPMSIGTAG_GPG)) {
- sigtag = RPMSIGTAG_GPG;
- fdInitDigest(fd, PGPHASHALGO_SHA1, 0);
- } else if (_chk(RPMVSF_NORSA|RPMVSF_NEEDPAYLOAD, RPMSIGTAG_PGP)) {
- sigtag = RPMSIGTAG_PGP;
- fdInitDigest(fd, PGPHASHALGO_MD5, 0);
} else if (_chk(RPMVSF_NOSHA1HEADER, RPMSIGTAG_SHA1)) {
sigtag = RPMSIGTAG_SHA1;
- } else if (_chk(RPMVSF_NOMD5|RPMVSF_NEEDPAYLOAD, RPMSIGTAG_MD5)) {
- sigtag = RPMSIGTAG_MD5;
- fdInitDigest(fd, PGPHASHALGO_MD5, 0);
}
/* Read the metadata, computing digest(s) on the fly. */
@@ -614,55 +587,23 @@ static rpmRC rpmpkgRead(rpmKeyring keyring, rpmVSFlags vsflags,
goto exit;
}
- switch (sigtag) {
- case RPMSIGTAG_RSA:
- case RPMSIGTAG_DSA:
- if (parsePGPSig(&sigtd, "package", &sig, msg)) {
- rc = RPMRC_FAIL;
- goto exit;
- }
- /* fallthrough */
- case RPMSIGTAG_SHA1:
- { struct rpmtd_s utd;
- unsigned int hashalgo = (sigtag == RPMSIGTAG_SHA1) ?
- PGPHASHALGO_SHA1 :
- pgpDigParamsAlgo(sig, PGPVAL_HASHALGO);
-
- if (!headerGet(h, RPMTAG_HEADERIMMUTABLE, &utd, hgeflags))
- break;
- ctx = rpmDigestInit(hashalgo, RPMDIGEST_NONE);
- (void) rpmDigestUpdate(ctx, rpm_header_magic, sizeof(rpm_header_magic));
- (void) rpmDigestUpdate(ctx, utd.data, utd.count);
- rpmtdFreeData(&utd);
- } break;
- case RPMSIGTAG_GPG:
- case RPMSIGTAG_PGP5: /* XXX legacy */
- case RPMSIGTAG_PGP:
- if (parsePGPSig(&sigtd, "package", &sig, msg)) {
- rc = RPMRC_FAIL;
- goto exit;
- }
- /* fallthrough */
- case RPMSIGTAG_MD5:
- /* Legacy signatures need the compressed payload in the digest too. */
- while ((count = Fread(buf, sizeof(buf[0]), sizeof(buf), fd)) > 0) {}
- if (count < 0) {
- rasprintf(msg, _("Fread failed: %s"), Fstrerror(fd));
- rc = RPMRC_FAIL;
- goto exit;
+ if (rpmSigInfoParse(&sigtd, "package", &sinfo, &sig, msg) == RPMRC_OK) {
+ struct rpmtd_s utd;
+ DIGEST_CTX ctx = rpmDigestInit(sinfo.hashalgo, RPMDIGEST_NONE);
+
+ if (headerGet(h, RPMTAG_HEADERIMMUTABLE, &utd, hgeflags)) {
+ rpmDigestUpdate(ctx, rpm_header_magic, sizeof(rpm_header_magic));
+ rpmDigestUpdate(ctx, utd.data, utd.count);
+ rpmtdFreeData(&utd);
}
+ /** @todo Implement disable/enable/warn/error/anal policy. */
+ rc = rpmVerifySignature(keyring, &sigtd, sig, ctx, msg);
- ctx = rpmDigestBundleDupCtx(fdGetBundle(fd),(sigtag == RPMSIGTAG_MD5) ?
- PGPHASHALGO_MD5 :
- pgpDigParamsAlgo(sig, PGPVAL_HASHALGO));
- break;
- default:
- break;
+ rpmDigestFinal(ctx, NULL, NULL, 0);
+ } else {
+ rc = RPMRC_FAIL;
}
- /** @todo Implement disable/enable/warn/error/anal policy. */
- rc = rpmVerifySignature(keyring, &sigtd, sig, ctx, msg);
-
exit:
if (rc != RPMRC_FAIL && h != NULL && hdrp != NULL) {
/* Retrofit RPMTAG_SOURCEPACKAGE to srpms for compatibility */
@@ -700,7 +641,6 @@ exit:
*keyidp = getKeyid(sig);
}
rpmtdFreeData(&sigtd);
- rpmDigestFinal(ctx, NULL, NULL, 0);
h = headerFree(h);
pgpDigParamsFree(sig);
sigh = rpmFreeSignature(sigh);
diff --git a/lib/poptQV.c b/lib/poptQV.c
index 3db17b0a..80edce7c 100644
--- a/lib/poptQV.c
+++ b/lib/poptQV.c
@@ -21,6 +21,10 @@ struct rpmQVKArguments_s rpmQVKArgs;
#define POPT_QUERYBYPKGID -1007
#define POPT_QUERYBYHDRID -1008
#define POPT_QUERYBYTID -1010
+#define POPT_WHATRECOMMENDS -1011
+#define POPT_WHATSUGGESTS -1012
+#define POPT_WHATSUPPLEMENTS -1013
+#define POPT_WHATENHANCES -1014
/* ========== Query/Verify/Signature source args */
static void rpmQVSourceArgCallback( poptContext con,
@@ -45,6 +49,10 @@ static void rpmQVSourceArgCallback( poptContext con,
case 'p': qva->qva_source |= RPMQV_RPM; break;
case POPT_WHATPROVIDES: qva->qva_source |= RPMQV_WHATPROVIDES; break;
case POPT_WHATREQUIRES: qva->qva_source |= RPMQV_WHATREQUIRES; break;
+ case POPT_WHATRECOMMENDS: qva->qva_source |= RPMQV_WHATRECOMMENDS; break;
+ case POPT_WHATSUGGESTS: qva->qva_source |= RPMQV_WHATSUGGESTS; break;
+ case POPT_WHATSUPPLEMENTS: qva->qva_source |= RPMQV_WHATSUPPLEMENTS; break;
+ case POPT_WHATENHANCES: qva->qva_source |= RPMQV_WHATENHANCES; break;
case POPT_TRIGGEREDBY: qva->qva_source |= RPMQV_TRIGGEREDBY; break;
case POPT_QUERYBYPKGID: qva->qva_source |= RPMQV_PKGID; break;
case POPT_QUERYBYHDRID: qva->qva_source |= RPMQV_HDRID; break;
@@ -93,6 +101,14 @@ struct poptOption rpmQVSourcePoptTable[] = {
N_("query/verify the package(s) which require a dependency"), "CAPABILITY" },
{ "whatprovides", '\0', 0, 0, POPT_WHATPROVIDES,
N_("query/verify the package(s) which provide a dependency"), "CAPABILITY" },
+ { "whatrecommends", '\0', 0, 0, POPT_WHATRECOMMENDS,
+ N_("query/verify the package(s) which recommends a dependency"), "CAPABILITY" },
+ { "whatsuggests", '\0', 0, 0, POPT_WHATSUGGESTS,
+ N_("query/verify the package(s) which suggests a dependency"), "CAPABILITY" },
+ { "whatsupplements", '\0', 0, 0, POPT_WHATSUPPLEMENTS,
+ N_("query/verify the package(s) which supplements a dependency"), "CAPABILITY" },
+ { "whatenhances", '\0', 0, 0, POPT_WHATENHANCES,
+ N_("query/verify the package(s) which enhances a dependency"), "CAPABILITY" },
{ "noglob", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &giFlags, RPMGI_NOGLOB,
N_("do not glob arguments"), NULL},
diff --git a/lib/psm.c b/lib/psm.c
index 67c01775..341441b4 100644
--- a/lib/psm.c
+++ b/lib/psm.c
@@ -23,8 +23,10 @@
#include "lib/rpmte_internal.h" /* XXX internal apis */
#include "lib/rpmdb_internal.h" /* rpmdbAdd/Remove */
#include "lib/rpmts_internal.h" /* rpmtsPlugins() etc */
+#include "lib/rpmds_internal.h" /* rpmdsFilterTi() */
#include "lib/rpmscript.h"
#include "lib/misc.h"
+#include "lib/rpmtriggers.h"
#include "lib/rpmplugins.h"
@@ -238,83 +240,6 @@ exit:
return rpmrc;
}
-static rpmTagVal triggertag(rpmsenseFlags sense)
-{
- rpmTagVal tag = RPMTAG_NOT_FOUND;
- switch (sense) {
- case RPMSENSE_TRIGGERIN:
- tag = RPMTAG_TRIGGERIN;
- break;
- case RPMSENSE_TRIGGERUN:
- tag = RPMTAG_TRIGGERUN;
- break;
- case RPMSENSE_TRIGGERPOSTUN:
- tag = RPMTAG_TRIGGERPOSTUN;
- break;
- case RPMSENSE_TRIGGERPREIN:
- tag = RPMTAG_TRIGGERPREIN;
- break;
- default:
- break;
- }
- return tag;
-}
-
-/**
- * Run a scriptlet with args.
- *
- * Run a script with an interpreter. If the interpreter is not specified,
- * /bin/sh will be used. If the interpreter is /bin/sh, then the args from
- * the header will be ignored, passing instead arg1 and arg2.
- *
- * @param ts transaction set
- * @param te transaction element
- * @param prefixes install prefixes
- * @param script scriptlet from header
- * @param arg1 no. instances of package installed after scriptlet exec
- * (-1 is no arg)
- * @param arg2 ditto, but for the target package
- * @return 0 on success
- */
-static rpmRC runScript(rpmts ts, rpmte te, ARGV_const_t prefixes,
- rpmScript script, int arg1, int arg2)
-{
- rpmRC stoprc, rc = RPMRC_OK;
- rpmTagVal stag = rpmScriptTag(script);
- FD_t sfd = NULL;
- int warn_only = (stag != RPMTAG_PREIN &&
- stag != RPMTAG_PREUN &&
- stag != RPMTAG_PRETRANS &&
- stag != RPMTAG_VERIFYSCRIPT);
-
- sfd = rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_START, stag, 0);
- if (sfd == NULL)
- sfd = rpmtsScriptFd(ts);
-
- rpmswEnter(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
- rc = rpmScriptRun(script, arg1, arg2, sfd,
- prefixes, warn_only, rpmtsPlugins(ts));
- rpmswExit(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
-
- /* Map warn-only errors to "notfound" for script stop callback */
- stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc;
- rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_STOP, stag, stoprc);
-
- /*
- * Notify callback for all errors. "total" abused for warning/error,
- * rc only reflects whether the condition prevented install/erase
- * (which is only happens with %prein and %preun scriptlets) or not.
- */
- if (rc != RPMRC_OK) {
- if (warn_only) {
- rc = RPMRC_OK;
- }
- rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_ERROR, stag, rc);
- }
-
- return rc;
-}
-
static rpmRC runInstScript(rpmpsm psm, rpmTagVal scriptTag)
{
rpmRC rc = RPMRC_OK;
@@ -385,7 +310,7 @@ static rpmRC handleOneTrigger(rpmts ts, rpmte te, rpmsenseFlags sense,
rc = RPMRC_FAIL;
} else {
rpmScript script = rpmScriptFromTriggerTag(trigH,
- triggertag(sense), tix);
+ triggertag(sense), RPMSCRIPT_NORMALTRIGGER, tix);
arg1 += countCorrection;
rc = runScript(ts, te, pfx.data, script, arg1, arg2);
@@ -626,8 +551,11 @@ static rpmRC dbAdd(rpmts ts, rpmte te)
rc = (rpmdbAdd(rpmtsGetRdb(ts), h) == 0) ? RPMRC_OK : RPMRC_FAIL;
(void) rpmswExit(rpmtsOp(ts, RPMTS_OP_DBADD), 0);
- if (rc == RPMRC_OK)
+ if (rc == RPMRC_OK) {
rpmteSetDBInstance(te, headerGetInstance(h));
+ packageHashAddEntry(ts->members->installedPackages,
+ headerGetInstance(h), te);
+ }
headerFree(h);
return rc;
}
@@ -723,6 +651,7 @@ static rpmRC rpmPackageInstall(rpmts ts, rpmpsm psm)
if (rpmtsFilterFlags(psm->ts) & RPMPROB_FILTER_REPLACEPKG)
markReplacedInstance(ts, psm->te);
+
if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOTRIGGERPREIN)) {
/* Run triggers in other package(s) this package sets off. */
rc = runTriggers(psm, RPMSENSE_TRIGGERPREIN);
@@ -753,10 +682,24 @@ static rpmRC rpmPackageInstall(rpmts ts, rpmpsm psm)
rc = dbAdd(ts, psm->te);
if (rc) break;
+ if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOTRIGGERIN)) {
+ /* Run upper file triggers i. e. with higher priorities */
+ /* Run file triggers in other package(s) this package sets off. */
+ rc = runFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERIN,
+ RPMSCRIPT_FILETRIGGER, 1);
+ if (rc) break;
+
+ /* Run file triggers in this package other package(s) set off. */
+ rc = runImmedFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERIN,
+ RPMSCRIPT_FILETRIGGER, 1);
+ if (rc) break;
+ }
+
if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPOST)) {
rc = runInstScript(psm, RPMTAG_POSTIN);
if (rc) break;
}
+
if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOTRIGGERIN)) {
/* Run triggers in other package(s) this package sets off. */
rc = runTriggers(psm, RPMSENSE_TRIGGERIN);
@@ -765,10 +708,22 @@ static rpmRC rpmPackageInstall(rpmts ts, rpmpsm psm)
/* Run triggers in this package other package(s) set off. */
rc = runImmedTriggers(psm, RPMSENSE_TRIGGERIN);
if (rc) break;
+
+ /* Run lower file triggers i. e. with lower priorities */
+ /* Run file triggers in other package(s) this package sets off. */
+ rc = runFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERIN,
+ RPMSCRIPT_FILETRIGGER, 2);
+ if (rc) break;
+
+ /* Run file triggers in this package other package(s) set off. */
+ rc = runImmedFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERIN,
+ RPMSCRIPT_FILETRIGGER, 2);
+ if (rc) break;
}
rc = markReplacedFiles(psm);
}
+
rpmswExit(rpmtsOp(psm->ts, RPMTS_OP_INSTALL), 0);
return rc;
@@ -781,7 +736,18 @@ static rpmRC rpmPackageErase(rpmts ts, rpmpsm psm)
rpmswEnter(rpmtsOp(psm->ts, RPMTS_OP_ERASE), 0);
while (once--) {
+
if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOTRIGGERUN)) {
+ /* Run file triggers in this package other package(s) set off. */
+ rc = runImmedFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERUN,
+ RPMSCRIPT_FILETRIGGER, 1);
+ if (rc) break;
+
+ /* Run file triggers in other package(s) this package sets off. */
+ rc = runFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERUN,
+ RPMSCRIPT_FILETRIGGER, 1);
+ if (rc) break;
+
/* Run triggers in this package other package(s) set off. */
rc = runImmedTriggers(psm, RPMSENSE_TRIGGERUN);
if (rc) break;
@@ -791,12 +757,32 @@ static rpmRC rpmPackageErase(rpmts ts, rpmpsm psm)
if (rc) break;
}
- if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPREUN))
+ if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPREUN)) {
rc = runInstScript(psm, RPMTAG_PREUN);
+ if (rc) break;
+ }
+
+ if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOTRIGGERUN)) {
+ /* Run file triggers in this package other package(s) set off. */
+ rc = runImmedFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERUN,
+ RPMSCRIPT_FILETRIGGER, 2);
+ if (rc) break;
+
+ /* Run file triggers in other package(s) this package sets off. */
+ rc = runFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERUN,
+ RPMSCRIPT_FILETRIGGER, 2);
+ if (rc) break;
+ }
rc = rpmpsmRemove(psm);
if (rc) break;
+ /* Run file triggers in other package(s) this package sets off. */
+ if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOTRIGGERPOSTUN)) {
+ rc = runFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERPOSTUN,
+ RPMSCRIPT_FILETRIGGER, 1);
+ }
+
if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPOSTUN)) {
rc = runInstScript(psm, RPMTAG_POSTUN);
if (rc) break;
@@ -806,10 +792,21 @@ static rpmRC rpmPackageErase(rpmts ts, rpmpsm psm)
/* Run triggers in other package(s) this package sets off. */
rc = runTriggers(psm, RPMSENSE_TRIGGERPOSTUN);
if (rc) break;
+
+ /* Run file triggers in other package(s) this package sets off. */
+ rc = runFileTriggers(psm->ts, psm->te, RPMSENSE_TRIGGERPOSTUN,
+ RPMSCRIPT_FILETRIGGER, 2);
+ }
+ if (rc) break;
+
+ if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERPOSTUN))) {
+ /* Prepare post transaction uninstall triggers */
+ rpmtriggersPrepPostUnTransFileTrigs(psm->ts, psm->te);
}
rc = dbRemove(ts, psm->te);
}
+
rpmswExit(rpmtsOp(psm->ts, RPMTS_OP_ERASE), 0);
return rc;
@@ -854,6 +851,14 @@ rpmRC rpmpsmRun(rpmts ts, rpmte te, pkgGoal goal)
case PKG_VERIFY:
rc = runInstScript(psm, goal);
break;
+ case PKG_TRANSFILETRIGGERIN:
+ rc = runImmedFileTriggers(ts, te, RPMSENSE_TRIGGERIN,
+ RPMSCRIPT_TRANSFILETRIGGER, 0);
+ break;
+ case PKG_TRANSFILETRIGGERUN:
+ rc = runImmedFileTriggers(ts, te, RPMSENSE_TRIGGERUN,
+ RPMSCRIPT_TRANSFILETRIGGER, 0);
+ break;
default:
break;
}
diff --git a/lib/query.c b/lib/query.c
index 896ebe37..b15b99b3 100644
--- a/lib/query.c
+++ b/lib/query.c
@@ -384,6 +384,34 @@ static rpmdbMatchIterator initQueryIterator(QVA_t qva, rpmts ts, const char * ar
}
break;
+ case RPMQV_WHATRECOMMENDS:
+ mi = rpmtsInitIterator(ts, RPMDBI_RECOMMENDNAME, arg, 0);
+ if (mi == NULL) {
+ rpmlog(RPMLOG_NOTICE, _("no package recommends %s\n"), arg);
+ }
+ break;
+
+ case RPMQV_WHATSUGGESTS:
+ mi = rpmtsInitIterator(ts, RPMDBI_SUGGESTNAME, arg, 0);
+ if (mi == NULL) {
+ rpmlog(RPMLOG_NOTICE, _("no package suggests %s\n"), arg);
+ }
+ break;
+
+ case RPMQV_WHATSUPPLEMENTS:
+ mi = rpmtsInitIterator(ts, RPMDBI_SUPPLEMENTNAME, arg, 0);
+ if (mi == NULL) {
+ rpmlog(RPMLOG_NOTICE, _("no package supplements %s\n"), arg);
+ }
+ break;
+
+ case RPMQV_WHATENHANCES:
+ mi = rpmtsInitIterator(ts, RPMDBI_ENHANCENAME, arg, 0);
+ if (mi == NULL) {
+ rpmlog(RPMLOG_NOTICE, _("no package enhances %s\n"), arg);
+ }
+ break;
+
case RPMQV_WHATPROVIDES:
if (arg[0] != '/' && arg[0] != '.') {
mi = rpmtsInitIterator(ts, RPMDBI_PROVIDENAME, arg, 0);
diff --git a/lib/rpmal.c b/lib/rpmal.c
index c66055f5..8f61c8e6 100644
--- a/lib/rpmal.c
+++ b/lib/rpmal.c
@@ -38,11 +38,6 @@ typedef struct availableIndexEntry_s {
unsigned int entryIx; /*!< Dependency index. */
} * availableIndexEntry;
-struct fileNameEntry_s {
- rpmsid dirName;
- rpmsid baseName;
-};
-
#undef HASHTYPE
#undef HTKEYTYPE
#undef HTDATATYPE
@@ -52,12 +47,18 @@ struct fileNameEntry_s {
#include "lib/rpmhash.H"
#include "lib/rpmhash.C"
+typedef struct availableIndexFileEntry_s {
+ rpmsid dirName;
+ rpmalNum pkgNum; /*!< Containing package index. */
+ unsigned int entryIx; /*!< Dependency index. */
+} * availableIndexFileEntry;
+
#undef HASHTYPE
#undef HTKEYTYPE
#undef HTDATATYPE
#define HASHTYPE rpmalFileHash
-#define HTKEYTYPE struct fileNameEntry_s
-#define HTDATATYPE struct availableIndexEntry_s
+#define HTKEYTYPE rpmsid
+#define HTDATATYPE struct availableIndexFileEntry_s
#include "lib/rpmhash.H"
#include "lib/rpmhash.C"
@@ -76,6 +77,7 @@ struct rpmal_s {
rpmtransFlags tsflags; /*!< Transaction control flags. */
rpm_color_t tscolor; /*!< Transaction color. */
rpm_color_t prefcolor; /*!< Transaction preferred color. */
+ fingerPrintCache fpc;
};
/**
@@ -87,6 +89,7 @@ static void rpmalFreeIndex(rpmal al)
al->providesHash = rpmalDepHashFree(al->providesHash);
al->obsoletesHash = rpmalDepHashFree(al->obsoletesHash);
al->fileHash = rpmalFileHashFree(al->fileHash);
+ al->fpc = fpCacheFree(al->fpc);
}
rpmal rpmalCreate(rpmstrPool pool, int delta, rpmtransFlags tsflags,
@@ -146,19 +149,6 @@ static int sidCmp(rpmsid a, rpmsid b)
return (a != b);
}
-static unsigned int fileHash(struct fileNameEntry_s file)
-{
- return file.dirName ^ file.baseName;
-}
-
-static int fileCompare(struct fileNameEntry_s one, struct fileNameEntry_s two)
-{
- int rc = (one.dirName != two.dirName);;
- if (!rc)
- rc = (one.baseName != two.baseName);
- return rc;
-}
-
void rpmalDel(rpmal al, rpmte p)
{
availablePackage alp;
@@ -183,8 +173,7 @@ void rpmalDel(rpmal al, rpmte p)
static void rpmalAddFiles(rpmal al, rpmalNum pkgNum, rpmfiles fi)
{
- struct fileNameEntry_s fileName;
- struct availableIndexEntry_s fileEntry;
+ struct availableIndexFileEntry_s fileEntry;
int fc = rpmfilesFC(fi);
rpm_color_t ficolor;
int skipdoc = (al->tsflags & RPMTRANS_FLAG_NODOCS);
@@ -204,12 +193,10 @@ static void rpmalAddFiles(rpmal al, rpmalNum pkgNum, rpmfiles fi)
if (skipconf && (rpmfilesFFlags(fi, i) & RPMFILE_CONFIG))
continue;
- fileName.dirName = rpmfilesDNId(fi, rpmfilesDI(fi, i));
- fileName.baseName = rpmfilesBNId(fi, i);
-
+ fileEntry.dirName = rpmfilesDNId(fi, rpmfilesDI(fi, i));
fileEntry.entryIx = i;
- rpmalFileHashAddEntry(al->fileHash, fileName, fileEntry);
+ rpmalFileHashAddEntry(al->fileHash, rpmfilesBNId(fi, i), fileEntry);
}
}
@@ -315,7 +302,7 @@ static void rpmalMakeFileIndex(rpmal al)
fileCnt += rpmfilesFC(alp->fi);
}
al->fileHash = rpmalFileHashCreate(fileCnt/4+128,
- fileHash, fileCompare, NULL, NULL);
+ sidHash, sidCmp, NULL, NULL);
for (i = 0; i < al->size; i++) {
alp = al->list + i;
rpmalAddFiles(al, i, alp->fi);
@@ -403,7 +390,7 @@ rpmte * rpmalAllObsoletes(rpmal al, rpmds ds)
return ret;
}
-static rpmte * rpmalAllFileSatisfiesDepend(const rpmal al, const char *fileName)
+static rpmte * rpmalAllFileSatisfiesDepend(const rpmal al, const char *fileName, const rpmds filterds)
{
const char *slash;
rpmte * ret = NULL;
@@ -413,31 +400,45 @@ static rpmte * rpmalAllFileSatisfiesDepend(const rpmal al, const char *fileName)
/* Split path into dirname and basename components for lookup */
if ((slash = strrchr(fileName, '/')) != NULL) {
- availableIndexEntry result;
+ availableIndexFileEntry result;
int resultCnt = 0;
size_t bnStart = (slash - fileName) + 1;
- struct fileNameEntry_s fne;
-
- fne.baseName = rpmstrPoolId(al->pool, fileName + bnStart, 0);
- fne.dirName = rpmstrPoolIdn(al->pool, fileName, bnStart, 0);
+ rpmsid baseName;
if (al->fileHash == NULL)
rpmalMakeFileIndex(al);
- rpmalFileHashGetEntry(al->fileHash, fne, &result, &resultCnt, NULL);
+ baseName = rpmstrPoolId(al->pool, fileName + bnStart, 0);
+ if (!baseName)
+ return NULL; /* no match possible */
+
+ rpmalFileHashGetEntry(al->fileHash, baseName, &result, &resultCnt, NULL);
if (resultCnt > 0) {
int i, found;
ret = xmalloc((resultCnt+1) * sizeof(*ret));
+ fingerPrint * fp = NULL;
+ rpmsid dirName = rpmstrPoolIdn(al->pool, fileName, bnStart, 1);
+
+ if (!al->fpc)
+ al->fpc = fpCacheCreate(1001, NULL);
+ fpLookup(al->fpc, rpmstrPoolStr(al->pool, dirName), fileName + bnStart, &fp);
for (found = i = 0; i < resultCnt; i++) {
availablePackage alp = al->list + result[i].pkgNum;
- if (alp->p == NULL) // deleted
+ if (alp->p == NULL) /* deleted */
+ continue;
+ /* ignore self-conflicts/obsoletes */
+ if (filterds && rpmteDS(alp->p, rpmdsTagN(filterds)) == filterds)
+ continue;
+ if (result[i].dirName != dirName &&
+ !fpLookupEquals(al->fpc, fp, rpmstrPoolStr(al->pool, result[i].dirName), fileName + bnStart))
continue;
ret[found] = alp->p;
found++;
}
+ _free(fp);
ret[found] = NULL;
}
}
@@ -454,6 +455,8 @@ rpmte * rpmalAllSatisfiesDepend(const rpmal al, const rpmds ds)
availableIndexEntry result;
int resultCnt;
int obsolete;
+ rpmTagVal dtag;
+ rpmds filterds = NULL;
availablePackage alp;
int rc;
@@ -461,11 +464,14 @@ rpmte * rpmalAllSatisfiesDepend(const rpmal al, const rpmds ds)
if (al == NULL || ds == NULL || (nameId = rpmdsNId(ds)) == 0)
return ret;
- obsolete = (rpmdsTagN(ds) == RPMTAG_OBSOLETENAME);
+ dtag = rpmdsTagN(ds);
+ obsolete = (dtag == RPMTAG_OBSOLETENAME);
+ if (dtag == RPMTAG_OBSOLETENAME || dtag == RPMTAG_CONFLICTNAME)
+ filterds = ds;
name = rpmstrPoolStr(al->pool, nameId);
if (!obsolete && *name == '/') {
/* First, look for files "contained" in package ... */
- ret = rpmalAllFileSatisfiesDepend(al, name);
+ ret = rpmalAllFileSatisfiesDepend(al, name, filterds);
if (ret != NULL && *ret != NULL) {
rpmdsNotify(ds, "(added files)", 0);
return ret;
@@ -486,27 +492,34 @@ rpmte * rpmalAllSatisfiesDepend(const rpmal al, const rpmds ds)
for (found=i=0; i<resultCnt; i++) {
alp = al->list + result[i].pkgNum;
- if (alp->p == NULL) // deleted
+ if (alp->p == NULL) /* deleted */
continue;
- ix = result[i].entryIx;
-
- /* Obsoletes are on package name, filter out other provide matches */
- if (obsolete && !rstreq(rpmdsNIndex(alp->provides, ix), rpmteN(alp->p)))
+ /* ignore self-conflicts/obsoletes */
+ if (filterds && rpmteDS(alp->p, rpmdsTagN(filterds)) == filterds)
continue;
+ ix = result[i].entryIx;
- rc = rpmdsCompareIndex(alp->provides, ix, ds, rpmdsIx(ds));
-
- if (rc) {
- rpmdsNotify(ds, "(added provide)", 0);
- ret[found] = alp->p;
- found++;
+ if (obsolete) {
+ /* Obsoletes are on package NEVR only */
+ rpmds thisds;
+ if (!rstreq(rpmdsNIndex(alp->provides, ix), rpmteN(alp->p)))
+ continue;
+ thisds = rpmteDS(alp->p, RPMTAG_NAME);
+ rc = rpmdsCompareIndex(thisds, rpmdsIx(thisds), ds, rpmdsIx(ds));
+ } else {
+ rc = rpmdsCompareIndex(alp->provides, ix, ds, rpmdsIx(ds));
}
+
+ if (rc)
+ ret[found++] = alp->p;
}
- if (found)
+ if (found) {
+ rpmdsNotify(ds, "(added provide)", 0);
ret[found] = NULL;
- else
+ } else {
ret = _free(ret);
+ }
return ret;
}
diff --git a/lib/rpmal.h b/lib/rpmal.h
index 772fb66c..3c6a833d 100644
--- a/lib/rpmal.h
+++ b/lib/rpmal.h
@@ -73,6 +73,7 @@ rpmte * rpmalAllSatisfiesDepend(const rpmal al, const rpmds ds);
/**
* Lookup best provider for a dependency in the available list
* @param al available list
+ * @param te transaction element
* @param ds dependency set
* @return best provider for the dependency, NULL if none
*/
diff --git a/lib/rpmarchive.h b/lib/rpmarchive.h
index 85079ca1..0627cb45 100644
--- a/lib/rpmarchive.h
+++ b/lib/rpmarchive.h
@@ -66,7 +66,7 @@ char * rpmfileStrerror(int rc);
* rpmfiArchiveClose() to get the trailer written.
* rpmfiSetFX() is not supported for this type of iterator.
* @param fd file
- * @param fi file info
+ * @param files file info
* @return new rpmfi
*/
rpmfi rpmfiNewArchiveWriter(FD_t fd, rpmfiles files);
@@ -78,7 +78,7 @@ rpmfi rpmfiNewArchiveWriter(FD_t fd, rpmfiles files);
* rpmfiArchiveReadToFile() when they are visited with rpmfiNext().
* rpmfiSetFX() is not supported for this type of iterator.
* @param fd file
- * @param fi file info
+ * @param files file info
* @param itype how to handle hard links. See rpmFileIter.
* @return new rpmfi
*/
@@ -102,7 +102,7 @@ rpm_loff_t rpmfiArchiveTell(rpmfi fi);
* Write content into current file in archive
* @param fi file info
* @param buf pointer to content
- * @prama size number of bytes to write
+ * @param size number of bytes to write
* @return bytes actually written
*/
size_t rpmfiArchiveWrite(rpmfi fi, const void * buf, size_t size);
@@ -119,7 +119,7 @@ int rpmfiArchiveWriteFile(rpmfi fi, FD_t fd);
* Read content from current file in archive
* @param fi file info
* @param buf pointer to buffer
- * @prama size number of bytes to read
+ * @param size number of bytes to read
* @return bytes actually read
*/
size_t rpmfiArchiveRead(rpmfi fi, void * buf, size_t size);
diff --git a/lib/rpmcallback.h b/lib/rpmcallback.h
index b3b05c6c..2527f0a8 100644
--- a/lib/rpmcallback.h
+++ b/lib/rpmcallback.h
@@ -31,9 +31,22 @@ typedef enum rpmCallbackType_e {
RPMCALLBACK_SCRIPT_START = (1 << 16),
RPMCALLBACK_SCRIPT_STOP = (1 << 17),
RPMCALLBACK_INST_STOP = (1 << 18),
+ RPMCALLBACK_ELEM_PROGRESS = (1 << 19),
} rpmCallbackType;
-/**
+/** \ingroup rpmts
+ * Function pointer type for rpmtsSetNotifyCallback() triggered by
+ * rpmtsNotify()
+ *
+ * @param h related header or NULL
+ * @param what kind of notification (See RPMCALLBACK_ constants above)
+ * @param amount number of bytes/packages already processed or
+ * tag of the scriptlet involved
+ * or 0 or some other number
+ * @param total total number of bytes/packages to be processed or
+ * return code of the scriptlet or 0
+ * @param key result of rpmteKey() of related rpmte or 0
+ * @param data user data as passed to rpmtsSetNotifyCallback()
*/
typedef void * (*rpmCallbackFunction)
(const void * h,
diff --git a/lib/rpmchecksig.c b/lib/rpmchecksig.c
index 88079a0f..f17a18a0 100644
--- a/lib/rpmchecksig.c
+++ b/lib/rpmchecksig.c
@@ -35,14 +35,31 @@ static int doImport(rpmts ts, const char *fn, char *buf, ssize_t blen)
do {
uint8_t *pkt = NULL;
+ uint8_t *pkti = NULL;
size_t pktlen = 0;
+ size_t certlen;
/* Read pgp packet. */
if (pgpParsePkts(start, &pkt, &pktlen) == PGPARMOR_PUBKEY) {
- /* Import pubkey packet(s). */
- if (rpmtsImportPubkey(ts, pkt, pktlen) != RPMRC_OK) {
- rpmlog(RPMLOG_ERR, _("%s: key %d import failed.\n"), fn, keyno);
- res++;
+ pkti = pkt;
+
+ /* Iterate over certificates in pkt */
+ while (pktlen > 0) {
+ if(pgpPubKeyCertLen(pkti, pktlen, &certlen)) {
+ rpmlog(RPMLOG_ERR, _("%s: key %d import failed.\n"), fn,
+ keyno);
+ res++;
+ break;
+ }
+
+ /* Import pubkey certificate. */
+ if (rpmtsImportPubkey(ts, pkti, certlen) != RPMRC_OK) {
+ rpmlog(RPMLOG_ERR, _("%s: key %d import failed.\n"), fn,
+ keyno);
+ res++;
+ }
+ pkti += certlen;
+ pktlen -= certlen;
}
} else {
rpmlog(RPMLOG_ERR, _("%s: key %d not an armored public key.\n"),
@@ -149,32 +166,6 @@ exit:
return rc;
}
-/*
- * Figure best available signature.
- * XXX TODO: Similar detection in rpmReadPackageFile(), unify these.
- */
-static rpmTagVal bestSig(Header sigh, int nosignatures, int nodigests)
-{
- rpmTagVal sigtag = 0;
- if (sigtag == 0 && !nosignatures) {
- if (headerIsEntry(sigh, RPMSIGTAG_DSA))
- sigtag = RPMSIGTAG_DSA;
- else if (headerIsEntry(sigh, RPMSIGTAG_RSA))
- sigtag = RPMSIGTAG_RSA;
- else if (headerIsEntry(sigh, RPMSIGTAG_GPG))
- sigtag = RPMSIGTAG_GPG;
- else if (headerIsEntry(sigh, RPMSIGTAG_PGP))
- sigtag = RPMSIGTAG_PGP;
- }
- if (sigtag == 0 && !nodigests) {
- if (headerIsEntry(sigh, RPMSIGTAG_MD5))
- sigtag = RPMSIGTAG_MD5;
- else if (headerIsEntry(sigh, RPMSIGTAG_SHA1))
- sigtag = RPMSIGTAG_SHA1; /* XXX never happens */
- }
- return sigtag;
-}
-
static const char *sigtagname(rpmTagVal sigtag, int upper)
{
const char *n = NULL;
@@ -219,7 +210,7 @@ static const char *sigtagname(rpmTagVal sigtag, int upper)
* and stash the key id as <SIGTYPE>#<keyid>. Pfft.
*/
static void formatResult(rpmTagVal sigtag, rpmRC sigres, const char *result,
- int havekey, char **keyprob, char **buf)
+ char **keyprob, char **buf)
{
char *msg = NULL;
if (rpmIsVerbose()) {
@@ -228,7 +219,7 @@ static void formatResult(rpmTagVal sigtag, rpmRC sigres, const char *result,
/* Check for missing / untrusted keys in result. */
const char *signame = sigtagname(sigtag, (sigres != RPMRC_OK));
- if (havekey && (sigres == RPMRC_NOKEY || sigres == RPMRC_NOTTRUSTED)) {
+ if (sigres == RPMRC_NOKEY || sigres == RPMRC_NOTTRUSTED) {
const char *tempKey = strstr(result, "ey ID");
if (tempKey) {
char keyid[sizeof(pgpKeyID_t) + 1];
@@ -250,7 +241,6 @@ static int rpmpkgVerifySigs(rpmKeyring keyring, rpmQueryFlags flags,
char *missingKeys = NULL;
char *untrustedKeys = NULL;
struct rpmtd_s sigtd;
- rpmTagVal sigtag;
pgpDigParams sig = NULL;
Header sigh = NULL;
HeaderIterator hi = NULL;
@@ -260,6 +250,7 @@ static int rpmpkgVerifySigs(rpmKeyring keyring, rpmQueryFlags flags,
int failed = 0;
int nodigests = !(flags & VERIFY_DIGEST);
int nosignatures = !(flags & VERIFY_SIGNATURE);
+ struct sigtInfo_s sinfo;
rpmDigestBundle plbundle = rpmDigestBundleNew();
rpmDigestBundle hdrbundle = rpmDigestBundleNew();
@@ -273,36 +264,21 @@ static int rpmpkgVerifySigs(rpmKeyring keyring, rpmQueryFlags flags,
goto exit;
}
- /* Grab a hint of what needs doing to avoid duplication. */
- sigtag = bestSig(sigh, nosignatures, nodigests);
+ /* Initialize all digests we'll be needing */
+ hi = headerInitIterator(sigh);
+ for (; headerNext(hi, &sigtd) != 0; rpmtdFreeData(&sigtd)) {
+ rc = rpmSigInfoParse(&sigtd, "package", &sinfo, NULL, NULL);
- /* XXX RSA needs the hash_algo, so decode early. */
- if (sigtag == RPMSIGTAG_RSA || sigtag == RPMSIGTAG_PGP ||
- sigtag == RPMSIGTAG_DSA || sigtag == RPMSIGTAG_GPG) {
- unsigned int hashalgo;
- if (headerGet(sigh, sigtag, &sigtd, HEADERGET_DEFAULT)) {
- parsePGPSig(&sigtd, "package", &sig, &msg);
- rpmtdFreeData(&sigtd);
+ if (nosignatures && sinfo.type == RPMSIG_SIGNATURE_TYPE)
+ continue;
+ if (nodigests && sinfo.type == RPMSIG_DIGEST_TYPE)
+ continue;
+ if (rc == RPMRC_OK && sinfo.hashalgo) {
+ rpmDigestBundleAdd(sinfo.payload ? plbundle : hdrbundle,
+ sinfo.hashalgo, RPMDIGEST_NONE);
}
- if (sig == NULL) goto exit;
-
- /* XXX assume same hash_algo in header-only and header+payload */
- hashalgo = pgpDigParamsAlgo(sig, PGPVAL_HASHALGO);
- rpmDigestBundleAdd(plbundle, hashalgo, RPMDIGEST_NONE);
- rpmDigestBundleAdd(hdrbundle, hashalgo, RPMDIGEST_NONE);
}
-
- if (headerIsEntry(sigh, RPMSIGTAG_PGP) ||
- headerIsEntry(sigh, RPMSIGTAG_PGP5) ||
- headerIsEntry(sigh, RPMSIGTAG_MD5)) {
- rpmDigestBundleAdd(plbundle, PGPHASHALGO_MD5, RPMDIGEST_NONE);
- }
- if (headerIsEntry(sigh, RPMSIGTAG_GPG)) {
- rpmDigestBundleAdd(plbundle, PGPHASHALGO_SHA1, RPMDIGEST_NONE);
- }
-
- /* always do sha1 hash of header */
- rpmDigestBundleAdd(hdrbundle, PGPHASHALGO_SHA1, RPMDIGEST_NONE);
+ hi = headerFreeIterator(hi);
/* Read the file, generating digest(s) on the fly. */
fdSetBundle(fd, plbundle);
@@ -315,7 +291,6 @@ static int rpmpkgVerifySigs(rpmKeyring keyring, rpmQueryFlags flags,
hi = headerInitIterator(sigh);
for (; headerNext(hi, &sigtd) != 0; rpmtdFreeData(&sigtd)) {
char *result = NULL;
- int havekey = 0;
DIGEST_CTX ctx = NULL;
if (sigtd.data == NULL) /* XXX can't happen */
continue;
@@ -323,42 +298,29 @@ static int rpmpkgVerifySigs(rpmKeyring keyring, rpmQueryFlags flags,
/* Clean up parameters from previous sigtag. */
sig = pgpDigParamsFree(sig);
- switch (sigtd.tag) {
- case RPMSIGTAG_GPG:
- case RPMSIGTAG_PGP5: /* XXX legacy */
- case RPMSIGTAG_PGP:
- havekey = 1;
- case RPMSIGTAG_RSA:
- case RPMSIGTAG_DSA:
- if (nosignatures)
- continue;
- if (parsePGPSig(&sigtd, "package", &sig, &msg))
- goto exit;
- ctx = rpmDigestBundleDupCtx(havekey ? plbundle : hdrbundle,
- pgpDigParamsAlgo(sig, PGPVAL_HASHALGO));
- break;
- case RPMSIGTAG_SHA1:
- if (nodigests)
- continue;
- ctx = rpmDigestBundleDupCtx(hdrbundle, PGPHASHALGO_SHA1);
- break;
- case RPMSIGTAG_MD5:
- if (nodigests)
- continue;
- ctx = rpmDigestBundleDupCtx(plbundle, PGPHASHALGO_MD5);
- break;
- default:
+ /* Note: we permit failures to be ignored via disablers */
+ rc = rpmSigInfoParse(&sigtd, "package", &sinfo, &sig, &result);
+
+ if (nosignatures && sinfo.type == RPMSIG_SIGNATURE_TYPE)
+ continue;
+ if (nodigests && sinfo.type == RPMSIG_DIGEST_TYPE)
+ continue;
+ if (sinfo.type == RPMSIG_OTHER_TYPE)
continue;
- break;
- }
- rc = rpmVerifySignature(keyring, &sigtd, sig, ctx, &result);
- rpmDigestFinal(ctx, NULL, NULL, 0);
+ if (rc == RPMRC_OK) {
+ ctx = rpmDigestBundleDupCtx(sinfo.payload ? plbundle : hdrbundle,
+ sinfo.hashalgo);
+ rc = rpmVerifySignature(keyring, &sigtd, sig, ctx, &result);
+ rpmDigestFinal(ctx, NULL, NULL, 0);
+ }
- formatResult(sigtd.tag, rc, result, havekey,
+ if (result) {
+ formatResult(sigtd.tag, rc, result,
(rc == RPMRC_NOKEY ? &missingKeys : &untrustedKeys),
&buf);
- free(result);
+ free(result);
+ }
if (rc != RPMRC_OK) {
failed = 1;
diff --git a/lib/rpmcli.h b/lib/rpmcli.h
index 48e8250e..4adb3d1a 100644
--- a/lib/rpmcli.h
+++ b/lib/rpmcli.h
@@ -91,6 +91,10 @@ enum rpmQVSources_e {
RPMQV_HDRID, /*!< ... from header id (immutable header SHA1). */
RPMQV_TID, /*!< ... from install transaction id (time stamp). */
RPMQV_SPECSRPM, /*!< ... from spec file source (query only). */
+ RPMQV_WHATRECOMMENDS, /*!< ... from recommends db search. */
+ RPMQV_WHATSUGGESTS, /*!< ... from suggests db search. */
+ RPMQV_WHATSUPPLEMENTS, /*!< ... from supplements db search. */
+ RPMQV_WHATENHANCES, /*!< ... from enhances db search. */
};
typedef rpmFlags rpmQVSources;
diff --git a/lib/rpmdb.c b/lib/rpmdb.c
index b6d32472..2dd36843 100644
--- a/lib/rpmdb.c
+++ b/lib/rpmdb.c
@@ -47,7 +47,7 @@
#undef HTKEYTYPE
#undef HTDATATYPE
-typedef rpmRC (*idxfunc)(dbiCursor dbc, const char *keyp, size_t keylen,
+typedef rpmRC (*idxfunc)(dbiIndex dbi, dbiCursor dbc, const char *keyp, size_t keylen,
dbiIndexItem rec);
static rpmRC tag2index(dbiIndex dbi, rpmTagVal rpmtag,
@@ -75,7 +75,9 @@ static int buildIndexes(rpmdb db)
/* Don't call us again */
db->db_buildindex = 0;
- dbSetFSync(db->db_dbenv, 0);
+ dbSetFSync(db, 0);
+
+ dbCtrl(db, RPMDB_CTRL_LOCK_RW);
mi = rpmdbInitIterator(db, RPMDBI_PACKAGES, NULL, 0);
while ((h = rpmdbNextIterator(mi))) {
@@ -89,7 +91,11 @@ static int buildIndexes(rpmdb db)
}
}
rpmdbFreeIterator(mi);
- dbSetFSync(db->db_dbenv, !db->cfg.db_no_fsync);
+
+ dbCtrl(db, DB_CTRL_INDEXSYNC);
+ dbCtrl(db, DB_CTRL_UNLOCK_RW);
+
+ dbSetFSync(db, !db->cfg.db_no_fsync);
return rc;
}
@@ -154,7 +160,7 @@ static int pkgdbOpen(rpmdb db, int flags, dbiIndex *dbip)
if ((!verifyonly && (dbiFlags(dbi) & DBI_CREATED)) || db->cfg.db_no_fsync) {
rpmlog(RPMLOG_DEBUG, "disabling fsync on database\n");
db->cfg.db_no_fsync = 1;
- dbSetFSync(db->db_dbenv, 0);
+ dbSetFSync(db, 0);
}
} else {
rpmlog(RPMLOG_ERR, _("cannot open %s index using %s - %s (%d)\n"),
@@ -222,15 +228,12 @@ static rpmRC indexGet(dbiIndex dbi, const char *keyp, size_t keylen,
dbiCursor dbc = dbiCursorInit(dbi, DBC_READ);
if (keyp) {
- if (keylen == 0) {
+ if (keylen == 0)
keylen = strlen(keyp);
- if (keylen == 0)
- keylen++; /* XXX "/" fixup */
- }
- rc = dbcCursorGet(dbc, keyp, keylen, set);
+ rc = idxdbGet(dbi, dbc, keyp, keylen, set, DBC_NORMAL_SEARCH);
} else {
do {
- rc = dbcCursorGet(dbc, NULL, 0, set);
+ rc = idxdbGet(dbi, dbc, NULL, 0, set, DBC_NORMAL_SEARCH);
} while (rc == RPMRC_OK);
/* If we got some results, not found is not an error */
@@ -238,11 +241,29 @@ static rpmRC indexGet(dbiIndex dbi, const char *keyp, size_t keylen,
rc = RPMRC_OK;
}
- dbiCursorFree(dbc);
+ dbiCursorFree(dbi, dbc);
}
return rc;
}
+static rpmRC indexPrefixGet(dbiIndex dbi, const char *pfx, size_t plen,
+ dbiIndexSet *set)
+{
+ rpmRC rc = RPMRC_FAIL; /* assume failure */
+
+ if (dbi != NULL && pfx) {
+ dbiCursor dbc = dbiCursorInit(dbi, DBC_READ);
+
+ if (plen == 0)
+ plen = strlen(pfx);
+ rc = idxdbGet(dbi, dbc, pfx, plen, set, DBC_PREFIX_SEARCH);
+
+ dbiCursorFree(dbi, dbc);
+ }
+ return rc;
+}
+
+
typedef struct miRE_s {
rpmTagVal tag; /*!< header tag */
rpmMireMode mode; /*!< pattern match mode */
@@ -282,6 +303,7 @@ struct rpmdbIndexIterator_s {
rpmDbiTag ii_rpmtag;
dbiCursor ii_dbc;
dbiIndexSet ii_set;
+ unsigned int *ii_hdrNums;
};
static rpmdb rpmdbRock;
@@ -293,7 +315,7 @@ int rpmdbCheckTerminate(int terminate)
sigset_t newMask, oldMask;
static int terminating = 0;
- if (terminating) return 0;
+ if (terminating) return terminating;
(void) sigfillset(&newMask); /* block all signals */
(void) sigprocmask(SIG_BLOCK, &newMask, &oldMask);
@@ -432,6 +454,12 @@ int rpmdbClose(rpmdb db)
if (db == NULL)
goto exit;
+ prev = &rpmdbRock;
+ while ((next = *prev) != NULL && next != db)
+ prev = &next->db_next;
+ if (!next)
+ goto exit;
+
(void) rpmdbUnlink(db);
if (db->nrefs > 0)
@@ -439,7 +467,7 @@ int rpmdbClose(rpmdb db)
/* Always re-enable fsync on close of rw-database */
if ((db->db_mode & O_ACCMODE) != O_RDONLY)
- dbSetFSync(db->db_dbenv, 1);
+ dbSetFSync(db, 1);
if (db->db_pkgs)
rc = dbiClose(db->db_pkgs, 0);
@@ -452,9 +480,6 @@ int rpmdbClose(rpmdb db)
db->db_indexes = _free(db->db_indexes);
db->db_descr = _free(db->db_descr);
- prev = &rpmdbRock;
- while ((next = *prev) != NULL && next != db)
- prev = &next->db_next;
if (next) {
*prev = next->db_next;
next->db_next = NULL;
@@ -480,7 +505,6 @@ static rpmdb newRpmdb(const char * root, const char * home,
char * db_home = rpmGetPath((home && *home) ? home : "%{_dbpath}", NULL);
static rpmDbiTag const dbiTags[] = {
- RPMDBI_PACKAGES,
RPMDBI_NAME,
RPMDBI_BASENAMES,
RPMDBI_GROUP,
@@ -493,6 +517,12 @@ static rpmdb newRpmdb(const char * root, const char * home,
RPMDBI_INSTALLTID,
RPMDBI_SIGMD5,
RPMDBI_SHA1HEADER,
+ RPMDBI_FILETRIGGERNAME,
+ RPMDBI_TRANSFILETRIGGERNAME,
+ RPMDBI_RECOMMENDNAME,
+ RPMDBI_SUGGESTNAME,
+ RPMDBI_SUPPLEMENTNAME,
+ RPMDBI_ENHANCENAME,
};
if (!(db_home && db_home[0] != '%')) {
@@ -612,7 +642,10 @@ int rpmdbVerify(const char * prefix)
int xx;
rc = rpmdbOpenAll(db);
- rc = dbiForeach(db->db_indexes, db->db_ndbi, dbiVerify, 0);
+
+ if (db->db_pkgs)
+ rc += dbiVerify(db->db_pkgs, 0);
+ rc += dbiForeach(db->db_indexes, db->db_ndbi, dbiVerify, 0);
xx = rpmdbClose(db);
if (xx && rc == 0) rc = xx;
@@ -621,7 +654,7 @@ int rpmdbVerify(const char * prefix)
return rc;
}
-static Header rpmdbGetHeaderAt(rpmdb db, unsigned int offset)
+Header rpmdbGetHeaderAt(rpmdb db, unsigned int offset)
{
rpmdbMatchIterator mi = rpmdbInitIterator(db, RPMDBI_PACKAGES,
&offset, sizeof(offset));
@@ -1019,8 +1052,11 @@ static int miFreeHeader(rpmdbMatchIterator mi, dbiIndex dbi)
sigset_t signalMask;
blockSignals(&signalMask);
+ dbCtrl(mi->mi_db, DB_CTRL_LOCK_RW);
rc = pkgdbPut(dbi, mi->mi_dbc, mi->mi_prevoffset,
- hdrBlob, hdrLen, NULL);
+ hdrBlob, hdrLen);
+ dbCtrl(mi->mi_db, DB_CTRL_INDEXSYNC);
+ dbCtrl(mi->mi_db, DB_CTRL_UNLOCK_RW);
unblockSignals(&signalMask);
if (rc) {
@@ -1052,13 +1088,14 @@ rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator mi)
if (next) {
*prev = next->mi_next;
next->mi_next = NULL;
- }
+ } else
+ return NULL;
pkgdbOpen(mi->mi_db, 0, &dbi);
miFreeHeader(mi, dbi);
- mi->mi_dbc = dbiCursorFree(mi->mi_dbc);
+ mi->mi_dbc = dbiCursorFree(dbi, mi->mi_dbc);
if (mi->mi_re != NULL)
for (i = 0; i < mi->mi_nre; i++) {
@@ -1097,6 +1134,24 @@ int rpmdbGetIteratorCount(rpmdbMatchIterator mi)
return (mi && mi->mi_set ? mi->mi_set->count : 0);
}
+int rpmdbGetIteratorIndex(rpmdbMatchIterator mi)
+{
+ return (mi ? mi->mi_setx : 0);
+}
+
+void rpmdbSetIteratorIndex(rpmdbMatchIterator mi, unsigned int ix)
+{
+ if (mi)
+ mi->mi_setx = ix;
+}
+
+unsigned int rpmdbGetIteratorOffsetFor(rpmdbMatchIterator mi, unsigned int ix)
+{
+ if (mi && mi->mi_set && ix < mi->mi_set->count)
+ return mi->mi_set->recs[ix].hdrNum;
+ return 0;
+}
+
/**
* Return pattern match.
* @param mire match iterator regex
@@ -1511,7 +1566,9 @@ top:
mi->mi_offset = dbiIndexRecordOffset(mi->mi_set, mi->mi_setx);
mi->mi_filenum = dbiIndexRecordFileNumber(mi->mi_set, mi->mi_setx);
} else {
- rc = pkgdbGet(dbi, mi->mi_dbc, 0, &uh, &uhlen, &mi->mi_offset);
+ rc = pkgdbGet(dbi, mi->mi_dbc, 0, &uh, &uhlen);
+ if (rc == 0)
+ mi->mi_offset = pkgdbKey(dbi, mi->mi_dbc);
/* Terminate on error or end of keys */
if (rc || (mi->mi_setx && mi->mi_offset == 0))
@@ -1526,7 +1583,7 @@ top:
/* Retrieve next header blob for index iterator. */
if (uh == NULL) {
- rc = pkgdbGet(dbi, mi->mi_dbc, mi->mi_offset, &uh, &uhlen, NULL);
+ rc = pkgdbGet(dbi, mi->mi_dbc, mi->mi_offset, &uh, &uhlen);
if (rc)
return NULL;
}
@@ -1579,6 +1636,13 @@ void rpmdbSortIterator(rpmdbMatchIterator mi)
}
}
+void rpmdbUniqIterator(rpmdbMatchIterator mi)
+{
+ if (mi && mi->mi_set) {
+ dbiIndexSetUniq(mi->mi_set, mi->mi_sorted);
+ }
+}
+
int rpmdbExtendIterator(rpmdbMatchIterator mi,
const void * keyp, size_t keylen)
{
@@ -1604,22 +1668,31 @@ int rpmdbExtendIterator(rpmdbMatchIterator mi,
return rc;
}
-int rpmdbPruneIterator(rpmdbMatchIterator mi, removedHash hdrNums)
+int rpmdbFilterIterator(rpmdbMatchIterator mi, packageHash hdrNums, int neg)
{
- if (mi == NULL || hdrNums == NULL || removedHashNumKeys(hdrNums) <= 0)
+ if (mi == NULL || hdrNums == NULL)
return 1;
if (!mi->mi_set)
- return 0;
+ return 0;
+
+ if (packageHashNumKeys(hdrNums) == 0) {
+ if (!neg)
+ mi->mi_set->count = 0;
+ return 0;
+ }
unsigned int from;
unsigned int to = 0;
unsigned int num = mi->mi_set->count;
+ int cond;
assert(mi->mi_set->count > 0);
for (from = 0; from < num; from++) {
- if (removedHashHasEntry(hdrNums, mi->mi_set->recs[from].hdrNum)) {
+ cond = !packageHashHasEntry(hdrNums, mi->mi_set->recs[from].hdrNum);
+ cond = neg ? !cond : cond;
+ if (cond) {
mi->mi_set->count--;
continue;
}
@@ -1630,6 +1703,15 @@ int rpmdbPruneIterator(rpmdbMatchIterator mi, removedHash hdrNums)
return 0;
}
+int rpmdbPruneIterator(rpmdbMatchIterator mi, packageHash hdrNums)
+{
+ if (packageHashNumKeys(hdrNums) <= 0)
+ return 1;
+
+ return rpmdbFilterIterator(mi, hdrNums, 1);
+}
+
+
int rpmdbAppendIterator(rpmdbMatchIterator mi,
const unsigned int * hdrNums, unsigned int nHdrNums)
{
@@ -1650,8 +1732,13 @@ rpmdbMatchIterator rpmdbNewIterator(rpmdb db, rpmDbiTagVal dbitag)
{
rpmdbMatchIterator mi = NULL;
- if (indexOpen(db, dbitag, 0, NULL))
- return NULL;
+ if (dbitag == RPMDBI_PACKAGES) {
+ if (pkgdbOpen(db, 0, NULL))
+ return NULL;
+ } else {
+ if (indexOpen(db, dbitag, 0, NULL))
+ return NULL;
+ }
mi = xcalloc(1, sizeof(*mi));
mi->mi_set = NULL;
@@ -1764,6 +1851,40 @@ rpmdbMatchIterator rpmdbInitIterator(rpmdb db, rpmDbiTagVal rpmtag,
return mi;
}
+rpmdbMatchIterator rpmdbInitPrefixIterator(rpmdb db, rpmDbiTagVal rpmtag,
+ const void * pfx, size_t plen)
+{
+ rpmdbMatchIterator mi = NULL;
+ dbiIndexSet set = NULL;
+ dbiIndex dbi = NULL;
+ rpmDbiTagVal dbtag = rpmtag;
+
+ if (!pfx)
+ return NULL;
+
+ if (db != NULL && rpmtag != RPMDBI_PACKAGES) {
+ (void) rpmdbCheckSignals();
+
+
+ if (indexOpen(db, dbtag, 0, &dbi) == 0) {
+ int rc = 0;
+
+ rc = indexPrefixGet(dbi, pfx, plen, &set);
+
+ if (rc) {
+ set = dbiIndexSetFree(set);
+ } else {
+ mi = rpmdbNewIterator(db, dbtag);
+ mi->mi_set = set;
+ rpmdbSortIterator(mi);
+ }
+ }
+
+ }
+
+ return mi;
+}
+
/*
* Convert current tag data to db key
* @param tagdata Tag data container
@@ -1804,8 +1925,6 @@ static const void * td2key(rpmtd tagdata, unsigned int *keylen)
str = rpmtdGetString(tagdata);
if (str) {
size = strlen(str);
- if (size == 0)
- size++; /* fixup for empty strings */
data = str;
}
break;
@@ -1862,9 +1981,9 @@ int rpmdbIndexIteratorNext(rpmdbIndexIterator ii, const void ** key, size_t * ke
/* free old data */
ii->ii_set = dbiIndexSetFree(ii->ii_set);
- rc = dbcCursorGet(ii->ii_dbc, NULL, 0, &ii->ii_set);
+ rc = idxdbGet(ii->ii_dbi, ii->ii_dbc, NULL, 0, &ii->ii_set, DBC_NORMAL_SEARCH);
- *key = dbiCursorKey(ii->ii_dbc, &iikeylen);
+ *key = idxdbKey(ii->ii_dbi, ii->ii_dbc, &iikeylen);
*keylen = iikeylen;
return (rc == RPMRC_OK) ? 0 : -1;
@@ -1930,6 +2049,24 @@ unsigned int rpmdbIndexIteratorPkgOffset(rpmdbIndexIterator ii, unsigned int nr)
return dbiIndexRecordOffset(ii->ii_set, nr);
}
+unsigned int *rpmdbIndexIteratorPkgOffsets(rpmdbIndexIterator ii)
+{
+ int i;
+
+ if (!ii || !ii->ii_set)
+ return NULL;
+
+ if (ii->ii_hdrNums)
+ ii->ii_hdrNums = _free(ii->ii_hdrNums);
+
+ ii->ii_hdrNums = xmalloc(sizeof(*ii->ii_hdrNums) * ii->ii_set->count);
+ for (i = 0; i < ii->ii_set->count; i++) {
+ ii->ii_hdrNums[i] = ii->ii_set->recs[i].hdrNum;
+ }
+
+ return ii->ii_hdrNums;
+}
+
unsigned int rpmdbIndexIteratorTagNum(rpmdbIndexIterator ii, unsigned int nr)
{
if (!ii || !ii->ii_set)
@@ -1952,13 +2089,17 @@ rpmdbIndexIterator rpmdbIndexIteratorFree(rpmdbIndexIterator ii)
if (next) {
*prev = next->ii_next;
next->ii_next = NULL;
- }
+ } else
+ return NULL;
- ii->ii_dbc = dbiCursorFree(ii->ii_dbc);
+ ii->ii_dbc = dbiCursorFree(ii->ii_dbi, ii->ii_dbc);
ii->ii_dbi = NULL;
rpmdbClose(ii->ii_db);
ii->ii_set = dbiIndexSetFree(ii->ii_set);
+ if (ii->ii_hdrNums)
+ ii->ii_hdrNums = _free(ii->ii_hdrNums);
+
ii = _free(ii);
return NULL;
}
@@ -1979,12 +2120,13 @@ static void logAddRemove(const char *dbiname, int removing, rpmtd tagdata)
static rpmRC indexDel(dbiIndex dbi, rpmTagVal rpmtag, unsigned int hdrNum, Header h)
{
- return tag2index(dbi, rpmtag, hdrNum, h, dbcCursorDel);
+ return tag2index(dbi, rpmtag, hdrNum, h, idxdbDel);
}
int rpmdbRemove(rpmdb db, unsigned int hdrNum)
{
dbiIndex dbi = NULL;
+ dbiCursor dbc = NULL;
Header h;
sigset_t signalMask;
int ret = 0;
@@ -2008,9 +2150,12 @@ int rpmdbRemove(rpmdb db, unsigned int hdrNum)
return 1;
(void) blockSignals(&signalMask);
+ dbCtrl(db, DB_CTRL_LOCK_RW);
/* Remove header from primary index */
- ret = pkgdbDel(dbi, NULL, hdrNum);
+ dbc = dbiCursorInit(dbi, DBC_WRITE);
+ ret = pkgdbDel(dbi, dbc, hdrNum);
+ dbiCursorFree(dbi, dbc);
/* Remove associated data from secondary indexes */
if (ret == 0) {
@@ -2024,6 +2169,8 @@ int rpmdbRemove(rpmdb db, unsigned int hdrNum)
}
}
+ dbCtrl(db, DB_CTRL_INDEXSYNC);
+ dbCtrl(db, DB_CTRL_UNLOCK_RW);
(void) unblockSignals(&signalMask);
headerFree(h);
@@ -2032,22 +2179,109 @@ int rpmdbRemove(rpmdb db, unsigned int hdrNum)
return 0;
}
+struct updateRichDepData {
+ ARGV_t argv;
+ int nargv;
+ int neg;
+ int level;
+ int *nargv_level;
+};
+
+static rpmRC updateRichDepCB(void *cbdata, rpmrichParseType type,
+ const char *n, int nl, const char *e, int el, rpmsenseFlags sense,
+ rpmrichOp op, char **emsg) {
+ struct updateRichDepData *data = cbdata;
+ if (type == RPMRICH_PARSE_ENTER) {
+ data->level++;
+ data->nargv_level = xrealloc(data->nargv_level, data->level * (sizeof(int)));
+ data->nargv_level[data->level - 1] = data->nargv;
+ }
+ if (type == RPMRICH_PARSE_LEAVE) {
+ data->level--;
+ }
+ if (type == RPMRICH_PARSE_SIMPLE && nl && !(nl > 7 && !strncmp(n, "rpmlib(", 7))) {
+ char *name = xmalloc(nl + 2);
+ *name = data->neg ? '!' : ' ';
+ strncpy(name + 1, n, nl);
+ name[1 + nl] = 0;
+ argvAdd(&data->argv, name);
+ data->nargv++;
+ _free(name);
+ }
+ if (type == RPMRICH_PARSE_OP && op == RPMRICHOP_IF) {
+ /* save nargv in case of ELSE */
+ data->nargv_level[data->level - 1] = data->nargv;
+ data->neg ^= 1;
+ }
+ if (type == RPMRICH_PARSE_OP && op == RPMRICHOP_ELSE) {
+ int i, nargv = data->nargv;
+ /* copy and invert condition block */
+ for (i = data->nargv_level[data->level - 1]; i < nargv; i++) {
+ char *name = data->argv[i];
+ *name ^= ' ' ^ '!';
+ argvAdd(&data->argv, name);
+ *name ^= ' ' ^ '!';
+ data->nargv++;
+ }
+ data->neg ^= 1;
+ }
+ if (type == RPMRICH_PARSE_LEAVE && op == RPMRICHOP_IF) {
+ data->neg ^= 1;
+ }
+ return RPMRC_OK;
+}
+
+static rpmRC updateRichDep(dbiIndex dbi, dbiCursor dbc, const char *str,
+ struct dbiIndexItem_s *rec,
+ idxfunc idxupdate)
+{
+ int n, i, rc = 0;
+ struct updateRichDepData data;
+
+ data.argv = argvNew();
+ data.neg = 0;
+ data.nargv = 0;
+ data.level = 0;
+ data.nargv_level = xcalloc(1, sizeof(int));
+ if (rpmrichParse(&str, NULL, updateRichDepCB, &data) == RPMRC_OK) {
+ n = argvCount(data.argv);
+ if (n) {
+ argvSort(data.argv, NULL);
+ for (i = 0; i < n; i++) {
+ char *name = data.argv[i];
+ if (i && !strcmp(data.argv[i - 1], name))
+ continue; /* ignore dups */
+ if (*name == ' ')
+ name++;
+ rc += idxupdate(dbi, dbc, name, strlen(name), rec);
+ }
+ }
+ }
+ _free(data.nargv_level);
+ argvFree(data.argv);
+ return rc;
+}
+
static rpmRC tag2index(dbiIndex dbi, rpmTagVal rpmtag,
unsigned int hdrNum, Header h,
idxfunc idxupdate)
{
int i, rc = 0;
- struct rpmtd_s tagdata, reqflags;
+ struct rpmtd_s tagdata, reqflags, trig_index;
dbiCursor dbc = NULL;
switch (rpmtag) {
case RPMTAG_REQUIRENAME:
headerGet(h, RPMTAG_REQUIREFLAGS, &reqflags, HEADERGET_MINMEM);
- /* fallthrough */
- default:
- headerGet(h, rpmtag, &tagdata, HEADERGET_MINMEM);
+ break;
+ case RPMTAG_FILETRIGGERNAME:
+ headerGet(h, RPMTAG_FILETRIGGERINDEX, &trig_index, HEADERGET_MINMEM);
+ break;
+ case RPMTAG_TRANSFILETRIGGERNAME:
+ headerGet(h, RPMTAG_TRANSFILETRIGGERINDEX, &trig_index, HEADERGET_MINMEM);
break;
}
+ headerGet(h, rpmtag, &tagdata, HEADERGET_MINMEM);
if (rpmtdCount(&tagdata) == 0) {
if (rpmtag != RPMTAG_GROUP)
@@ -2066,8 +2300,22 @@ static rpmRC tag2index(dbiIndex dbi, rpmTagVal rpmtag,
const void * key = NULL;
unsigned int keylen = 0;
int j;
- /* Include the tagNum in all indices (only files use though) */
- struct dbiIndexItem_s rec = { .hdrNum = hdrNum, .tagNum = i };
+ struct dbiIndexItem_s rec;
+
+ switch (rpmtag) {
+ /* Include trigger index in db index for triggers */
+ case RPMTAG_FILETRIGGERNAME:
+ case RPMTAG_TRANSFILETRIGGERNAME:
+ rec.hdrNum = hdrNum;
+ rec.tagNum = *rpmtdNextUint32(&trig_index);
+ break;
+
+ /* Include the tagNum in the others indices (only files use though) */
+ default:
+ rec.hdrNum = hdrNum;
+ rec.tagNum = i;
+ break;
+ }
switch (rpmtag) {
case RPMTAG_REQUIRENAME: {
@@ -2097,24 +2345,43 @@ static rpmRC tag2index(dbiIndex dbi, rpmTagVal rpmtag,
if ((key = td2key(&tagdata, &keylen)) == NULL)
continue;
- rc += idxupdate(dbc, key, keylen, &rec);
+ rc += idxupdate(dbi, dbc, key, keylen, &rec);
+
+ if (*(char *)key == '(') {
+ switch (rpmtag) {
+ case RPMTAG_REQUIRENAME:
+ case RPMTAG_CONFLICTNAME:
+ case RPMTAG_SUGGESTNAME:
+ case RPMTAG_SUPPLEMENTNAME:
+ case RPMTAG_RECOMMENDNAME:
+ case RPMTAG_ENHANCENAME:
+ if (rpmtdType(&tagdata) == RPM_STRING_ARRAY_TYPE) {
+ rc += updateRichDep(dbi, dbc, rpmtdGetString(&tagdata),
+ &rec, idxupdate);
+ }
+ default:
+ break;
+ }
+ }
}
- dbiCursorFree(dbc);
+ dbiCursorFree(dbi, dbc);
exit:
rpmtdFreeData(&tagdata);
return (rc == 0) ? RPMRC_OK : RPMRC_FAIL;
}
+
static rpmRC indexPut(dbiIndex dbi, rpmTagVal rpmtag, unsigned int hdrNum, Header h)
{
- return tag2index(dbi, rpmtag, hdrNum, h, dbcCursorPut);
+ return tag2index(dbi, rpmtag, hdrNum, h, idxdbPut);
}
int rpmdbAdd(rpmdb db, Header h)
{
sigset_t signalMask;
dbiIndex dbi = NULL;
+ dbiCursor dbc = NULL;
unsigned int hdrNum = 0;
unsigned int hdrLen = 0;
unsigned char *hdrBlob = NULL;
@@ -2134,9 +2401,14 @@ int rpmdbAdd(rpmdb db, Header h)
goto exit;
(void) blockSignals(&signalMask);
+ dbCtrl(db, DB_CTRL_LOCK_RW);
/* Add header to primary index */
- ret = pkgdbPut(dbi, NULL, 0, hdrBlob, hdrLen, &hdrNum);
+ dbc = dbiCursorInit(dbi, DBC_WRITE);
+ ret = pkgdbNew(dbi, dbc, &hdrNum);
+ if (ret == 0)
+ ret = pkgdbPut(dbi, dbc, hdrNum, hdrBlob, hdrLen);
+ dbiCursorFree(dbi, dbc);
/* Add associated data to secondary indexes */
if (ret == 0) {
@@ -2150,6 +2422,8 @@ int rpmdbAdd(rpmdb db, Header h)
}
}
+ dbCtrl(db, DB_CTRL_INDEXSYNC);
+ dbCtrl(db, DB_CTRL_UNLOCK_RW);
(void) unblockSignals(&signalMask);
/* If everything ok, mark header as installed now */
@@ -2224,10 +2498,9 @@ static int rpmdbRemoveDatabase(const char * prefix, const char * dbpath)
static int renameTag(const char * prefix,
const char * olddbpath, const char *newdbpath,
- rpmTagVal dbtag)
+ const char * base)
{
int xx, rc = 0;
- const char *base = rpmTagGetName(dbtag);
char *src = rpmGetPath(prefix, "/", olddbpath, "/", base, NULL);
char *dest = rpmGetPath(prefix, "/", newdbpath, "/", base, NULL);
struct stat st;
@@ -2265,10 +2538,14 @@ static int rpmdbMoveDatabase(const char * prefix,
rpmdb db = newRpmdb(prefix, newdbpath, O_RDONLY, 0644, RPMDB_FLAG_REBUILD);
blockSignals(&sigMask);
- rc = renameTag(prefix, olddbpath, newdbpath, RPMDBI_PACKAGES);
+ rc = renameTag(prefix, olddbpath, newdbpath, rpmTagGetName(RPMDBI_PACKAGES));
for (int i = 0; i < db->db_ndbi; i++) {
- rc += renameTag(prefix, olddbpath, newdbpath, db->db_tags[i]);
+ rc += renameTag(prefix, olddbpath, newdbpath, rpmTagGetName(db->db_tags[i]));
}
+#ifdef ENABLE_NDB
+ rc += renameTag(prefix, olddbpath, newdbpath, "Packages.db");
+ rc += renameTag(prefix, olddbpath, newdbpath, "Index.db");
+#endif
cleanDbenv(prefix, olddbpath);
cleanDbenv(prefix, newdbpath);
@@ -2407,3 +2684,27 @@ exit:
return rc;
}
+
+int rpmdbCtrl(rpmdb db, rpmdbCtrlOp ctrl)
+{
+ dbCtrlOp dbctrl = 0;
+ switch (ctrl) {
+ case RPMDB_CTRL_LOCK_RO:
+ dbctrl = DB_CTRL_LOCK_RO;
+ break;
+ case RPMDB_CTRL_UNLOCK_RO:
+ dbctrl = DB_CTRL_UNLOCK_RO;
+ break;
+ case RPMDB_CTRL_LOCK_RW:
+ dbctrl = DB_CTRL_LOCK_RW;
+ break;
+ case RPMDB_CTRL_UNLOCK_RW:
+ dbctrl = DB_CTRL_UNLOCK_RW;
+ break;
+ case RPMDB_CTRL_INDEXSYNC:
+ dbctrl = DB_CTRL_INDEXSYNC;
+ break;
+ }
+ return dbctrl ? dbCtrl(db, dbctrl) : 1;
+}
+
diff --git a/lib/rpmdb.h b/lib/rpmdb.h
index bae275c0..4bbd465d 100644
--- a/lib/rpmdb.h
+++ b/lib/rpmdb.h
@@ -30,6 +30,14 @@ typedef enum rpmdbOpX_e {
RPMDB_OP_MAX = 4
} rpmdbOpX;
+typedef enum rpmdbCtrlOp_e {
+ RPMDB_CTRL_LOCK_RO = 1,
+ RPMDB_CTRL_UNLOCK_RO = 2,
+ RPMDB_CTRL_LOCK_RW = 3,
+ RPMDB_CTRL_UNLOCK_RW = 4,
+ RPMDB_CTRL_INDEXSYNC = 5
+} rpmdbCtrlOp;
+
/** \ingroup rpmdb
* Retrieve operation timestamp from rpm database.
* @param db rpm database
@@ -217,6 +225,13 @@ unsigned int rpmdbIndexIteratorTagNum(rpmdbIndexIterator ii, unsigned int nr);
*/
rpmdbIndexIterator rpmdbIndexIteratorFree(rpmdbIndexIterator ii);
+/** \ingroup rpmdb
+ * manipulate the rpm database
+ * @param db rpm database
+ * @param ctrl operation
+ * @return 0 on success; != 0 on error
+ */
+int rpmdbCtrl(rpmdb db, rpmdbCtrlOp ctrl);
#ifdef __cplusplus
}
diff --git a/lib/rpmdb_internal.h b/lib/rpmdb_internal.h
index 1b8da286..92848ab3 100644
--- a/lib/rpmdb_internal.h
+++ b/lib/rpmdb_internal.h
@@ -15,7 +15,7 @@ extern "C" {
#undef HASHTYPE
#undef HTKEYTYPE
#undef HTDATATYPE
-#define HASHTYPE removedHash
+#define HASHTYPE packageHash
#define HTKEYTYPE unsigned int
#define HTDATATYPE struct rpmte_s *
#include "rpmhash.H"
@@ -121,13 +121,31 @@ int rpmdbExtendIterator(rpmdbMatchIterator mi,
void rpmdbSortIterator(rpmdbMatchIterator mi);
/** \ingroup rpmdb
+ * uniq the iterator by recnum
+ * Return database iterator.
+ * @param mi rpm database iterator
+ */
+void rpmdbUniqIterator(rpmdbMatchIterator mi);
+
+/** \ingroup rpmdb
+ * If neg equals to zero then it leaves in iterator only packages that
+ * header numbers are in hdrNums. If neg is not zero then removes from iterator
+ * all packages that header numbers are in hdrNums.
+ * @param mi rpm database iterator
+ * @param hdrNums hash of package numbers
+ * @param neg mode
+ * return 0 on success, 1 on failure (bad args)
+ */
+int rpmdbFilterIterator(rpmdbMatchIterator mi, packageHash hdrNums, int neg);
+
+/** \ingroup rpmdb
* Remove items from set of package instances to iterate.
* @note Sorted hdrNums are always passed in rpmlib.
* @param mi rpm database iterator
* @param hdrNums hash of package instances
* @return 0 on success, 1 on failure (bad args)
*/
-int rpmdbPruneIterator(rpmdbMatchIterator mi, removedHash hdrNums);
+int rpmdbPruneIterator(rpmdbMatchIterator mi, packageHash hdrNums);
/** \ingroup rpmdb
* Create a new, empty match iterator (for purposes of extending it
@@ -139,6 +157,60 @@ int rpmdbPruneIterator(rpmdbMatchIterator mi, removedHash hdrNums);
RPM_GNUC_INTERNAL
rpmdbMatchIterator rpmdbNewIterator(rpmdb db, rpmDbiTagVal dbitag);
+/** \ingroup rpmdb
+ * Return database iterator that iterates over database items
+ * starting with pfx.
+ * @param db rpm database
+ * @param rpmtag database index tag
+ * @param pfx prefix data
+ * @param plen prefix data length (0 will use strlen(keyp))
+ * @return NULL on failure
+ */
+RPM_GNUC_INTERNAL
+rpmdbMatchIterator rpmdbInitPrefixIterator(rpmdb db, rpmDbiTagVal rpmtag,
+ const void * pfx, size_t plen);
+/** \ingroup rpmdb
+ * Get package offsets of entries
+ * @param ii index iterator
+ * @return db offsets of pkgs
+ */
+RPM_GNUC_INTERNAL
+unsigned int *rpmdbIndexIteratorPkgOffsets(rpmdbIndexIterator ii);
+
+/** \ingroup rpmdb
+ * Return current index (position) in iterator.
+ * @param mi rpm database iterator
+ * @return current index
+ */
+RPM_GNUC_INTERNAL
+int rpmdbGetIteratorIndex(rpmdbMatchIterator mi);
+
+/** \ingroup rpmdb
+ * Set iterator index.
+ * @param mi rpm database iterator
+ * @param ix index
+ */
+RPM_GNUC_INTERNAL
+void rpmdbSetIteratorIndex(rpmdbMatchIterator mi, unsigned int ix);
+
+/** \ingroup rpmdb
+ * Return offset of package with given index.
+ * @param mi rpm database iterator
+ * @param ix index
+ * @return package offset
+ */
+RPM_GNUC_INTERNAL
+unsigned int rpmdbGetIteratorOffsetFor(rpmdbMatchIterator mi, unsigned int ix);
+
+/** \ingroup rpmdb
+ * Return header located in rpmdb at given offset.
+ * @param db rpm database
+ * @param offset database offset
+ * @return header at given offset
+ */
+RPM_GNUC_INTERNAL
+Header rpmdbGetHeaderAt(rpmdb db, unsigned int offset);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/rpmds.c b/lib/rpmds.c
index 49e33bc0..ba6e2444 100644
--- a/lib/rpmds.c
+++ b/lib/rpmds.c
@@ -96,6 +96,16 @@ static int dsType(rpmTagVal tag,
t = "Oldenhances";
evr = RPMTAG_OLDENHANCESVERSION;
f = RPMTAG_OLDENHANCESFLAGS;
+ } else if (tag == RPMTAG_FILETRIGGERNAME) {
+ t = "FileTrigger";
+ evr = RPMTAG_FILETRIGGERVERSION;
+ f = RPMTAG_FILETRIGGERFLAGS;
+ ti = RPMTAG_FILETRIGGERINDEX;
+ } else if (tag == RPMTAG_TRANSFILETRIGGERNAME) {
+ t = "TransFileTrigger";
+ evr = RPMTAG_TRANSFILETRIGGERVERSION;
+ f = RPMTAG_TRANSFILETRIGGERFLAGS;
+ ti = RPMTAG_TRANSFILETRIGGERINDEX;
} else {
rc = 1;
}
@@ -484,6 +494,44 @@ rpmds rpmdsCurrent(rpmds ds)
return cds;
}
+rpmds rpmdsFilterTi(rpmds ds, int ti)
+{
+ int i, i2, tiCount = 0;
+ rpmds fds;
+
+ if (ds == NULL || !ds->ti || !ds->Count)
+ return NULL;
+
+ for (i = 0; i < ds->Count; i++) {
+ if (ds->ti[i] == ti)
+ tiCount++;
+ }
+
+ if (!tiCount)
+ return NULL;
+
+ fds = rpmdsCreate(ds->pool, ds->tagN, ds->Type, tiCount, ds->instance);
+
+ fds->N = xmalloc(tiCount * sizeof(*fds->N));
+ fds->EVR = xmalloc(tiCount * sizeof(*fds->EVR));
+ fds->Flags = xmalloc(tiCount * sizeof(*fds->Flags));
+ fds->ti = xmalloc(tiCount * sizeof(*fds->ti));
+ fds->i = -1;
+
+ i2 = 0;
+ for (i = 0; i < ds->Count; i++) {
+ if (ds->ti[i] == ti) {
+ fds->N[i2] = ds->N[i];
+ fds->EVR[i2] = ds->EVR[i];
+ fds->Flags[i2] = ds->Flags[i];
+ fds->ti[i2] = ds->ti[i];
+ i2++;
+ }
+ }
+
+ return fds;
+}
+
int rpmdsPutToHeader(rpmds ds, Header h)
{
rpmTagVal tagN = rpmdsTagN(ds);
@@ -1209,6 +1257,9 @@ static const struct rpmlibProvides_s rpmlibProvides[] = {
{ "rpmlib(LargeFiles)", "4.12.0-1",
( RPMSENSE_EQUAL),
N_("support files larger than 4GB") },
+ { "rpmlib(RichDependencies)", "4.12.0-1",
+ ( RPMSENSE_EQUAL),
+ N_("support for rich dependencies.") },
{ NULL, NULL, 0, NULL }
};
@@ -1244,7 +1295,7 @@ rpmstrPool rpmdsPool(rpmds ds)
return (ds != NULL) ? ds->pool : NULL;
}
-rpmFlags rpmSanitizeDSFlags(rpmTagVal tagN, rpmFlags Flags)
+rpmsenseFlags rpmSanitizeDSFlags(rpmTagVal tagN, rpmsenseFlags Flags)
{
rpmsenseFlags extra = RPMSENSE_ANY;
switch (tagN) {
@@ -1252,6 +1303,8 @@ rpmFlags rpmSanitizeDSFlags(rpmTagVal tagN, rpmFlags Flags)
extra = Flags & RPMSENSE_FIND_PROVIDES;
break;
case RPMTAG_TRIGGERNAME:
+ case RPMTAG_FILETRIGGERNAME:
+ case RPMTAG_TRANSFILETRIGGERNAME:
extra = Flags & RPMSENSE_TRIGGER;
break;
case RPMTAG_RECOMMENDNAME:
@@ -1259,10 +1312,289 @@ rpmFlags rpmSanitizeDSFlags(rpmTagVal tagN, rpmFlags Flags)
case RPMTAG_SUPPLEMENTNAME:
case RPMTAG_ENHANCENAME:
case RPMTAG_REQUIRENAME:
- extra = Flags & _ALL_REQUIRES_MASK;
+ extra = Flags & (_ALL_REQUIRES_MASK);
+ break;
+ case RPMTAG_CONFLICTNAME:
+ extra = Flags;
break;
default:
break;
}
return (Flags & RPMSENSE_SENSEMASK) | extra;
}
+
+static struct ReqComp {
+const char * token;
+ rpmsenseFlags sense;
+} const ReqComparisons[] = {
+ { "<=", RPMSENSE_LESS | RPMSENSE_EQUAL},
+ { "=<", RPMSENSE_LESS | RPMSENSE_EQUAL},
+ { "<", RPMSENSE_LESS},
+
+ { "==", RPMSENSE_EQUAL},
+ { "=", RPMSENSE_EQUAL},
+
+ { ">=", RPMSENSE_GREATER | RPMSENSE_EQUAL},
+ { "=>", RPMSENSE_GREATER | RPMSENSE_EQUAL},
+ { ">", RPMSENSE_GREATER},
+
+ { NULL, 0 },
+};
+
+rpmsenseFlags rpmParseDSFlags(const char *str, size_t len)
+{
+ const struct ReqComp *rc;
+ for (rc = ReqComparisons; rc->token != NULL; rc++)
+ if (len == strlen(rc->token) && rstreqn(str, rc->token, len))
+ return rc->sense;
+ return 0;
+}
+
+static struct RichOpComp {
+ const char * token;
+ rpmrichOp op;
+} const RichOps[] = {
+ { "and", RPMRICHOP_AND},
+ { "or", RPMRICHOP_OR},
+ { "if", RPMRICHOP_IF},
+ { "else", RPMRICHOP_ELSE},
+ { NULL, 0 },
+};
+
+int rpmdsIsRich(rpmds dep)
+{
+ const char * n = rpmdsN(dep);
+ return (n && n[0] == '(');
+}
+
+static rpmRC parseRichDepOp(const char **dstrp, rpmrichOp *opp, char **emsg)
+{
+ const char *p = *dstrp, *pe = p;
+ const struct RichOpComp *ro;
+
+ while (*pe && !risspace(*pe) && *pe != ')')
+ pe++;
+ for (ro = RichOps; ro->token != NULL; ro++)
+ if (pe - p == strlen(ro->token) && rstreqn(p, ro->token, pe - p)) {
+ *opp = ro->op;
+ *dstrp = pe;
+ return RPMRC_OK;
+ }
+ if (emsg)
+ rasprintf(emsg, _("Unknown rich dependency op '%.*s'"), (int)(pe - p), p);
+ return RPMRC_FAIL;
+}
+
+const char *rpmrichOpStr(rpmrichOp op)
+{
+ if (op == RPMRICHOP_SINGLE)
+ return "SINGLE";
+ if (op == RPMRICHOP_AND)
+ return "and";
+ if (op == RPMRICHOP_OR)
+ return "or";
+ if (op == RPMRICHOP_IF)
+ return "if";
+ if (op == RPMRICHOP_ELSE)
+ return "else";
+ return NULL;
+}
+
+
+#define SKIPWHITE(_x) {while(*(_x) && (risspace(*_x) || *(_x) == ',')) (_x)++;}
+#define SKIPNONWHITEX(_x){int bl = 0; while(*(_x) &&!(risspace(*_x) || *(_x) == ',' || (*(_x) == ')' && bl-- <= 0))) if (*(_x)++ == '(') bl++;}
+
+static rpmRC parseSimpleDep(const char **dstrp, char **emsg, rpmrichParseFunction cb, void *cbdata)
+{
+ const char *p = *dstrp;
+ const char *n, *e = 0;
+ int nl, el = 0;
+ rpmsenseFlags sense = 0;
+
+ n = p;
+ SKIPNONWHITEX(p);
+ nl = p - n;
+ if (nl == 0) {
+ if (emsg)
+ rasprintf(emsg, _("Name required"));
+ return RPMRC_FAIL;
+ }
+ SKIPWHITE(p);
+ if (*p) {
+ const char *pe = p;
+
+ SKIPNONWHITEX(pe);
+ sense = rpmParseDSFlags(p, pe - p);
+ if (sense) {
+ p = pe;
+ SKIPWHITE(p);
+ e = p;
+ SKIPNONWHITEX(p);
+ el = p - e;
+ }
+ }
+ if (e && el == 0) {
+ if (emsg)
+ rasprintf(emsg, _("Version required"));
+ return RPMRC_FAIL;
+ }
+ if (cb(cbdata, RPMRICH_PARSE_SIMPLE, n, nl, e, el, sense, RPMRICHOP_SINGLE, emsg) != RPMRC_OK)
+ return RPMRC_FAIL;
+ *dstrp = p;
+ return RPMRC_OK;
+}
+
+rpmRC rpmrichParse(const char **dstrp, char **emsg, rpmrichParseFunction cb, void *cbdata)
+{
+ const char *p = *dstrp, *pe;
+ rpmrichOp op = RPMRICHOP_SINGLE, chainop = 0;
+
+ if (cb(cbdata, RPMRICH_PARSE_ENTER, p, 0, 0, 0, 0, op, emsg) != RPMRC_OK)
+ return RPMRC_FAIL;
+ if (*p++ != '(') {
+ if (emsg)
+ rasprintf(emsg, _("Rich dependency does not start with '('"));
+ return RPMRC_FAIL;
+ }
+ for (;;) {
+ SKIPWHITE(p);
+ if (*p == ')') {
+ if (emsg) {
+ if (chainop)
+ rasprintf(emsg, _("Missing argument to rich dependency op"));
+ else
+ rasprintf(emsg, _("Empty rich dependency"));
+ }
+ return RPMRC_FAIL;
+ }
+ if (*p == '(') {
+ if (rpmrichParse(&p, emsg, cb, cbdata) != RPMRC_OK)
+ return RPMRC_FAIL;
+ } else {
+ if (parseSimpleDep(&p, emsg, cb, cbdata) != RPMRC_OK)
+ return RPMRC_FAIL;
+ }
+ SKIPWHITE(p);
+ if (!*p) {
+ if (emsg)
+ rasprintf(emsg, _("Unterminated rich dependency: %s"), *dstrp);
+ return RPMRC_FAIL;
+ }
+ if (*p == ')')
+ break;
+ pe = p;
+ if (parseRichDepOp(&pe, &op, emsg) != RPMRC_OK)
+ return RPMRC_FAIL;
+ if (op == RPMRICHOP_ELSE && chainop == RPMRICHOP_IF)
+ chainop = 0;
+ if (chainop && op != chainop) {
+ if (emsg)
+ rasprintf(emsg, _("Cannot chain different ops"));
+ return RPMRC_FAIL;
+ }
+ if (chainop && op != RPMRICHOP_AND && op != RPMRICHOP_OR) {
+ if (emsg)
+ rasprintf(emsg, _("Can only chain AND and OR ops"));
+ return RPMRC_FAIL;
+ }
+ if (cb(cbdata, RPMRICH_PARSE_OP, p, pe - p, 0, 0, 0, op, emsg) != RPMRC_OK)
+ return RPMRC_FAIL;
+ chainop = op;
+ p = pe;
+ }
+ p++;
+ if (cb(cbdata, RPMRICH_PARSE_LEAVE, *dstrp, p - *dstrp , 0, 0, 0, op, emsg) != RPMRC_OK)
+ return RPMRC_FAIL;
+ *dstrp = p;
+ return RPMRC_OK;
+}
+
+
+struct rpmdsParseRichDepData {
+ rpmds dep;
+ rpmsenseFlags depflags;
+
+ rpmds leftds;
+ rpmds rightds;
+ rpmrichOp op;
+
+ int depth;
+ const char *rightstart;
+ int dochain;
+};
+
+static rpmRC rpmdsParseRichDepCB(void *cbdata, rpmrichParseType type,
+ const char *n, int nl, const char *e, int el, rpmsenseFlags sense,
+ rpmrichOp op, char **emsg) {
+ struct rpmdsParseRichDepData *data = cbdata;
+ rpmds ds = 0;
+
+ if (type == RPMRICH_PARSE_ENTER)
+ data->depth++;
+ else if (type == RPMRICH_PARSE_LEAVE) {
+ if (--data->depth == 0 && data->dochain && data->rightstart) {
+ /* chain op hack, construct a sub-ds from the right side of the chain */
+ char *right = xmalloc(n + nl - data->rightstart + 2);
+ right[0] = '(';
+ strncpy(right + 1, data->rightstart, n + nl - data->rightstart);
+ right[n + nl - data->rightstart + 1] = 0;
+ data->rightds = rpmdsFree(data->rightds);
+ ds = singleDS(data->dep->pool, data->dep->tagN, 0, 0, data->depflags, 0, 0, 0);
+ ds->N[0] = rpmstrPoolId(ds->pool, right, 1);
+ ds->EVR[0] = rpmstrPoolId(ds->pool, "", 1);
+ data->rightds = ds;
+ free(right);
+ }
+ }
+ if (data->depth != 1)
+ return RPMRC_OK; /* we're only interested in top-level parsing */
+ if ((type == RPMRICH_PARSE_SIMPLE || type == RPMRICH_PARSE_LEAVE) && !data->dochain) {
+ if (type == RPMRICH_PARSE_SIMPLE && data->dep->tagN == RPMTAG_REQUIRENAME && nl > 7 &&
+ rstreqn(n, "rpmlib(", sizeof("rpmlib(")-1))
+ sense |= RPMSENSE_RPMLIB;
+ ds = singleDS(data->dep->pool, data->dep->tagN, 0, 0, sense | data->depflags, 0, 0, 0);
+ ds->N[0] = rpmstrPoolIdn(ds->pool, n, nl, 1);
+ ds->EVR[0] = rpmstrPoolIdn(ds->pool, e ? e : "", el, 1);
+ if (!data->leftds)
+ data->leftds = ds;
+ else {
+ data->rightds = ds;
+ data->rightstart = n;
+ }
+ }
+ if (type == RPMRICH_PARSE_OP) {
+ if (data->op != RPMRICHOP_SINGLE)
+ data->dochain = 1; /* this is a chained op */
+ else
+ data->op = op;
+ }
+ return RPMRC_OK;
+}
+
+
+rpmRC rpmdsParseRichDep(rpmds dep, rpmds *leftds, rpmds *rightds, rpmrichOp *op, char **emsg)
+{
+ rpmRC rc;
+ struct rpmdsParseRichDepData data;
+ const char *depstr = rpmdsN(dep);
+ memset(&data, 0, sizeof(data));
+ data.dep = dep;
+ data.op = RPMRICHOP_SINGLE;
+ data.depflags = rpmdsFlags(dep) & ~(RPMSENSE_SENSEMASK | RPMSENSE_MISSINGOK);
+ rc = rpmrichParse(&depstr, emsg, rpmdsParseRichDepCB, &data);
+ if (rc == RPMRC_OK && *depstr) {
+ if (emsg)
+ rasprintf(emsg, _("Junk after rich dependency"));
+ rc = RPMRC_FAIL;
+ }
+ if (rc != RPMRC_OK) {
+ rpmdsFree(data.leftds);
+ rpmdsFree(data.rightds);
+ } else {
+ *leftds = data.leftds;
+ *rightds = data.rightds;
+ *op = data.op;
+ }
+ return rc;
+}
+
diff --git a/lib/rpmds.h b/lib/rpmds.h
index 9b7c9082..a113609a 100644
--- a/lib/rpmds.h
+++ b/lib/rpmds.h
@@ -90,10 +90,18 @@ typedef rpmFlags rpmsenseFlags;
/** \ingroup rpmds
* Return only those flags allowed for given type of dependencies
* @param tagN type of dependency
- * @param flags flags
+ * @param Flags flags
* @return flags filtered to allowed bits
*/
-rpmFlags rpmSanitizeDSFlags(rpmTagVal tagN, rpmFlags Flags);
+rpmsenseFlags rpmSanitizeDSFlags(rpmTagVal tagN, rpmsenseFlags Flags);
+
+/** \ingroup rpmds
+ * Convert a string to the sense flags
+ * @param str the string
+ * @param len length of the string
+ * @return flags, zero for unknwon relations
+ */
+rpmsenseFlags rpmParseDSFlags(const char *str, size_t len);
/** \ingroup rpmds
* Reference a dependency set instance.
@@ -454,6 +462,62 @@ rpmds rpmdsSinglePoolTix(rpmstrPool pool, rpmTagVal tagN,
*/
int rpmdsRpmlibPool(rpmstrPool pool, rpmds * dsp, const void * tblp);
+
+typedef enum rpmrichOp_e {
+ RPMRICHOP_SINGLE = 1,
+ RPMRICHOP_AND = 2,
+ RPMRICHOP_OR = 3,
+ RPMRICHOP_IF = 4,
+ RPMRICHOP_ELSE = 5
+} rpmrichOp;
+
+typedef enum rpmrichParseType_e {
+ RPMRICH_PARSE_SIMPLE = 1, /* standard N <=> EVR dep */
+ RPMRICH_PARSE_ENTER = 2, /* entering sub-dependency */
+ RPMRICH_PARSE_LEAVE = 3, /* leaving sub-dependency */
+ RPMRICH_PARSE_OP = 4 /* parsed a rich dependency op */
+} rpmrichParseType;
+
+typedef rpmRC (*rpmrichParseFunction) (void *cbdata, rpmrichParseType type,
+ const char *n, int nl, const char *e, int el, rpmsenseFlags sense,
+ rpmrichOp op, char **emsg);
+
+/**
+ * Parse a rich dependency string
+ * @param dstrp pointer to sting, will be updated
+ * @param emsg returns the error string, can be NULL
+ * @param cb callback function
+ * @param cbdata callback function data
+ * @return RPMRC_OK on success
+ */
+rpmRC rpmrichParse(const char **dstrp, char **emsg, rpmrichParseFunction cb, void *cbdata);
+
+
+/**
+ * Return if current depenency is rich
+ * @param dep the dependency
+ * @return 1 is dependency is a rich 0 otherwise
+ */
+int rpmdsIsRich(rpmds dep);
+
+/**
+ * Return a string representation of the rich dependency op
+ * @param op the dependency op
+ * @return constant string, do not free
+ */
+const char *rpmrichOpStr(rpmrichOp op);
+
+/**
+ * Parse a rich dependency string
+ * @param dep the dependency
+ * @param leftds returns the left dependency
+ * @param rightds returns the right dependency
+ * @param op returns the rich dep op
+ * @param emsg returns the error string
+ * @return RPMRC_OK on success
+ */
+rpmRC rpmdsParseRichDep(rpmds dep, rpmds *leftds, rpmds *rightds, rpmrichOp *op, char **emsg);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/rpmds_internal.h b/lib/rpmds_internal.h
index 26cb4bdb..86d44987 100644
--- a/lib/rpmds_internal.h
+++ b/lib/rpmds_internal.h
@@ -69,6 +69,15 @@ rpm_color_t rpmdsColorIndex(rpmds ds, int i);
RPM_GNUC_INTERNAL
int rpmdsCompareIndex(rpmds A, int aix, rpmds B, int bix);
+/** \ingroup rpmds
+ * Filter dependency set and return new dependency set containing only items
+ * with given trigger index.
+ * @param ds dependency set
+ * @param ti trigger index
+ * @return new filtered dependency set
+ */
+RPM_GNUC_INTERNAL
+rpmds rpmdsFilterTi(rpmds ds, int ti);
#ifdef __cplusplus
}
#endif
diff --git a/lib/rpmfi.c b/lib/rpmfi.c
index 2fba707e..924ff4b6 100644
--- a/lib/rpmfi.c
+++ b/lib/rpmfi.c
@@ -50,6 +50,9 @@ struct rpmfi_s {
char * fn; /*!< File name buffer. */
char * ofn; /*!< Original file name buffer. */
+ int intervalStart; /*!< Start of iterating interval. */
+ int intervalEnd; /*!< End of iterating interval. */
+
rpmfiles files; /*!< File info set */
rpmcpio_t archive; /*!< Archive with payload */
unsigned char * found; /*!< Bit field of files found in the archive */
@@ -111,7 +114,9 @@ struct rpmfiles_s {
struct fingerPrint_s * fps; /*!< File fingerprint(s). */
int digestalgo; /*!< File digest algorithm */
+ int signaturelength; /*!< File signature length */
unsigned char * digests; /*!< File digests in binary. */
+ unsigned char * signatures; /*!< File signatures in binary. */
struct nlinkHash_s * nlinks;/*!< Files connected by hardlinks */
rpm_off_t * replacedSizes; /*!< (TR_ADDED) */
@@ -475,6 +480,12 @@ int rpmfiFindOFN(rpmfi fi, const char * fn)
return ix;
}
+static int cmpPfx(rpmfiles files, int ix, const char *pfx)
+{
+ int plen = strlen(pfx);
+ return strncmp(pfx, rpmfilesDN(files, rpmfilesDI(files, ix)), plen);
+}
+
rpmfileAttrs rpmfilesFFlags(rpmfiles fi, int ix)
{
rpmfileAttrs FFlags = 0;
@@ -560,6 +571,19 @@ char * rpmfiFDigestHex(rpmfi fi, int *algo)
return fdigest;
}
+const unsigned char * rpmfilesFSignature(rpmfiles fi, int ix, size_t *len)
+{
+ const unsigned char *signature = NULL;
+
+ if (fi != NULL && ix >= 0 && ix < rpmfilesFC(fi)) {
+ if (fi->signatures != NULL)
+ signature = fi->signatures + (fi->signaturelength * ix);
+ if (len)
+ *len = fi->signaturelength;
+ }
+ return signature;
+}
+
const char * rpmfilesFLink(rpmfiles fi, int ix)
{
const char * flink = NULL;
@@ -817,6 +841,16 @@ static int iterBack(rpmfi fi)
return fi->i - 1;
}
+static int iterInterval(rpmfi fi)
+{
+ if (fi->i == -1)
+ return fi->intervalStart;
+ else if (fi->i + 1 < fi->intervalEnd)
+ return fi->i + 1;
+ else
+ return RPMERR_ITER_END;
+}
+
int rpmfiNext(rpmfi fi)
{
int next = -1;
@@ -1146,6 +1180,7 @@ rpmfiles rpmfilesFree(rpmfiles fi)
fi->flinks = _free(fi->flinks);
fi->flangs = _free(fi->flangs);
fi->digests = _free(fi->digests);
+ fi->signatures = _free(fi->signatures);
fi->fcaps = _free(fi->fcaps);
fi->cdict = _free(fi->cdict);
@@ -1360,7 +1395,7 @@ static int rpmfilesPopulate(rpmfiles fi, Header h, rpmfiFlags flags)
headerGetFlags scareFlags = (flags & RPMFI_KEEPHEADER) ?
HEADERGET_MINMEM : HEADERGET_ALLOC;
headerGetFlags defFlags = HEADERGET_ALLOC;
- struct rpmtd_s fdigests, digalgo, td;
+ struct rpmtd_s fdigests, fsignatures, digalgo, td;
unsigned char * t;
/* XXX TODO: all these should be sanity checked, ugh... */
@@ -1411,6 +1446,8 @@ static int rpmfilesPopulate(rpmfiles fi, Header h, rpmfiFlags flags)
}
}
+ fi->signaturelength = headerGetNumber(h, RPMTAG_FILESIGNATURELENGTH);
+
fi->digests = NULL;
/* grab hex digests from header and store in binary format */
if (!(flags & RPMFI_NOFILEDIGESTS) &&
@@ -1431,6 +1468,25 @@ static int rpmfilesPopulate(rpmfiles fi, Header h, rpmfiFlags flags)
rpmtdFreeData(&fdigests);
}
+ fi->signatures = NULL;
+ /* grab hex signatures from header and store in binary format */
+ if (! (flags & RPMFI_NOFILESIGNATURES) &&
+ headerGet(h, RPMTAG_FILESIGNATURES, &fsignatures, HEADERGET_MINMEM)) {
+ const char *fsignature;
+ fi->signatures = t = xmalloc(rpmtdCount(&fsignatures) * fi->signaturelength);
+
+ while ((fsignature = rpmtdNextString(&fsignatures))) {
+ if (*fsignature == '\0') {
+ memset(t, 0, fi->signaturelength);
+ t += fi->signaturelength;
+ continue;
+ }
+ for (int j = 0; j < fi->signaturelength; j++, t++, fsignature += 2)
+ *t = (rnibble(fsignature[0]) << 4) | rnibble(fsignature[1]);
+ }
+ rpmtdFreeData(&fsignatures);
+ }
+
/* XXX TR_REMOVED doesn;t need fmtimes, frdevs, finodes */
if (!(flags & RPMFI_NOFILEMTIMES))
_hgfi(h, RPMTAG_FILEMTIMES, &td, scareFlags, fi->fmtimes);
@@ -1512,6 +1568,7 @@ int (*nextfuncs[])(rpmfi fi) = {
iterReadArchiveNext,
iterReadArchiveNextContentFirst,
iterReadArchiveNextOmitHardlinks,
+ iterInterval,
};
@@ -1527,7 +1584,9 @@ static rpmfi initIter(rpmfiles files, int itype, int link)
fi->i = -1;
if (itype == RPMFI_ITER_BACK) {
fi->i = rpmfilesFC(fi->files);
- } else if (itype >=RPMFI_ITER_READ_ARCHIVE) {
+ } else if (itype >=RPMFI_ITER_READ_ARCHIVE
+ && itype <= RPMFI_ITER_READ_ARCHIVE_OMIT_HARDLINKS) {
+
fi->found = xcalloc(1, (rpmfiFC(fi)>>3) + 1);
}
rpmfiLink(fi);
@@ -1541,6 +1600,50 @@ rpmfi rpmfilesIter(rpmfiles files, int itype)
return initIter(files, itype, 1);
}
+rpmfi rpmfilesFindPrefix(rpmfiles fi, const char *pfx)
+{
+ int l, u, c, comparison;
+ rpmfi iterator = NULL;
+
+ if (!fi || !pfx)
+ return NULL;
+
+ l = 0;
+ u = rpmfilesFC(fi);
+ while (l < u) {
+ c = (l + u) / 2;
+
+ comparison = cmpPfx(fi, c, pfx);
+
+ if (comparison < 0)
+ u = c;
+ else if (comparison > 0)
+ l = c + 1;
+ else {
+ if (cmpPfx(fi, l, pfx))
+ l = c;
+ while (l > 0 && !cmpPfx(fi, l - 1, pfx))
+ l--;
+ if ( u >= rpmfilesFC(fi) || cmpPfx(fi, u, pfx))
+ u = c;
+ while (++u < rpmfilesFC(fi)) {
+ if (cmpPfx(fi, u, pfx))
+ break;
+ }
+ break;
+ }
+
+ }
+
+ if (l < u) {
+ iterator = initIter(fi, RPMFI_ITER_INTERVAL, 1);
+ iterator->intervalStart = l;
+ iterator->intervalEnd = u;
+ }
+
+ return iterator;
+}
+
rpmfi rpmfiNewPool(rpmstrPool pool, Header h, rpmTagVal tagN, rpmfiFlags flags)
{
rpmfiles files = rpmfilesNew(pool, h, tagN, flags);
@@ -1662,6 +1765,11 @@ const unsigned char * rpmfiFDigest(rpmfi fi, int *algo, size_t *len)
return rpmfilesFDigest(fi->files, fi ? fi->i : -1, algo, len);
}
+const unsigned char * rpmfiFSignature(rpmfi fi, size_t *len)
+{
+ return rpmfilesFSignature(fi->files, fi ? fi->i : -1, len);
+}
+
uint32_t rpmfiFDepends(rpmfi fi, const uint32_t ** fddictp)
{
return rpmfilesFDepends(fi->files, fi ? fi->i : -1, fddictp);
diff --git a/lib/rpmfi.h b/lib/rpmfi.h
index dd44451e..6a00a14f 100644
--- a/lib/rpmfi.h
+++ b/lib/rpmfi.h
@@ -91,6 +91,7 @@ const char * rpmfiFN(rpmfi fi);
* The file name may have "." prefixed but is then interpreted as a global
* path without the prefixing "."
* @param fi file info set iterator
+ * @param fn file name
* @return file index or -1
*/
int rpmfiFindFN(rpmfi fi, const char * fn);
@@ -121,6 +122,7 @@ const char * rpmfiOFN(rpmfi fi);
* in the rpmfi. The file name may have "." prefixed but is then interpreted
* as a global path without the prefixing "."
* @param fi file info set iterator
+ * @param fn file name
* @return file index or -1
*/
int rpmfiFindOFN(rpmfi fi, const char * fn);
@@ -181,6 +183,14 @@ const unsigned char * rpmfiFDigest(rpmfi fi, int *algo, size_t *diglen);
char * rpmfiFDigestHex(rpmfi fi, int *algo);
/** \ingroup rpmfi
+ * Return current file (binary) signature of file info set iterator.
+ * @param fi file info set iterator
+ * @retval siglen signature length (pass NULL to ignore)
+ * @return current file signature, NULL on invalid
+ */
+const unsigned char * rpmfiFSignature(rpmfi fi, size_t *siglen);
+
+/** \ingroup rpmfi
* Return current file (binary) md5 digest from file info set iterator.
* @deprecated Use rpmfiFDigest() instead
* @param fi file info set iterator
diff --git a/lib/rpmfi_internal.h b/lib/rpmfi_internal.h
index 9a0de63d..cb3284c0 100644
--- a/lib/rpmfi_internal.h
+++ b/lib/rpmfi_internal.h
@@ -87,6 +87,14 @@ void rpmfilesFpLookup(rpmfiles fi, fingerPrintCache fpc);
rpmfiles rpmfiFiles(rpmfi fi);
+/** \ingroup rpmfi
+ * Return file iterator through files starting with given prefix.
+ * @param fi file info set
+ * @param pfx prefix
+ * @return file iterator
+ */
+RPM_GNUC_INTERNAL
+rpmfi rpmfilesFindPrefix(rpmfiles fi, const char *pfx);
#ifdef __cplusplus
}
#endif
diff --git a/lib/rpmfiles.h b/lib/rpmfiles.h
index 928c4201..acac6fdf 100644
--- a/lib/rpmfiles.h
+++ b/lib/rpmfiles.h
@@ -116,6 +116,7 @@ enum rpmfiFlags_e {
RPMFI_NOFILECOLORS = (1 << 15),
RPMFI_NOFILEVERIFYFLAGS = (1 << 16),
RPMFI_NOFILEFLAGS = (1 << 17),
+ RPMFI_NOFILESIGNATURES = (1 << 18),
};
typedef rpmFlags rpmfiFlags;
@@ -136,6 +137,14 @@ typedef rpmFlags rpmfiFlags;
(RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
RPMFI_NOFILECOLORS | RPMFI_NOFILEVERIFYFLAGS)
+#define RPMFI_FLAGS_ONLY_FILENAMES \
+ (RPMFI_NOFILECLASS | RPMFI_NOFILEDEPS | RPMFI_NOFILELANGS | \
+ RPMFI_NOFILEUSER | RPMFI_NOFILEGROUP | RPMFI_NOFILEMODES | \
+ RPMFI_NOFILESIZES | RPMFI_NOFILECAPS | RPMFI_NOFILELINKTOS | \
+ RPMFI_NOFILEDIGESTS | RPMFI_NOFILEMTIMES | RPMFI_NOFILERDEVS | \
+ RPMFI_NOFILEINODES | RPMFI_NOFILESTATES | RPMFI_NOFILECOLORS | \
+ RPMFI_NOFILEVERIFYFLAGS | RPMFI_NOFILEFLAGS)
+
typedef enum rpmFileIter_e {
RPMFI_ITER_FWD = 0,
RPMFI_ITER_BACK = 1,
@@ -143,9 +152,10 @@ typedef enum rpmFileIter_e {
RPMFI_ITER_READ_ARCHIVE = 3,
RPMFI_ITER_READ_ARCHIVE_CONTENT_FIRST = 4,
RPMFI_ITER_READ_ARCHIVE_OMIT_HARDLINKS = 5,
+ RPMFI_ITER_INTERVAL = 6,
} rpmFileIter;
-#define RPMFILEITERMAX 5
+#define RPMFILEITERMAX 6
#ifdef __cplusplus
extern "C" {
@@ -193,7 +203,8 @@ rpm_count_t rpmfilesDC(rpmfiles fi);
* Return file index of the given file name or -1 if file is not in the rpmfi.
* The file name may have "." prefixed but is then interpreted as a global
* path without the prefixing "."
- * @param fi file info set
+ * @param files file info set
+ * @param fn file name
* @return file index or -1
*/
int rpmfilesFindFN(rpmfiles files, const char * fn);
@@ -202,7 +213,8 @@ int rpmfilesFindFN(rpmfiles files, const char * fn);
* Return file index of the given original file name or -1 if file is not
* in the rpmfi. The file name may have "." prefixed but is then interpreted
* as a global path without the prefixing "."
- * @param fi file info set
+ * @param files file info set
+ * @param fn file name
* @return file index or -1
*/
int rpmfilesFindOFN(rpmfiles files, const char * fn);
@@ -218,7 +230,7 @@ int rpmfilesDigestAlgo(rpmfiles fi);
/** \ingroup rpmfiles
* Return union of all file color bits from file info set.
- * @param fi file info set
+ * @param files file info set
* @return color
*/
rpm_color_t rpmfilesColor(rpmfiles files);
@@ -249,7 +261,7 @@ const char * rpmfilesBN(rpmfiles fi, int ix);
* you'd catenate the results of rpmfilesDN(f, rpmfilesDI(f, X)) and
* rpmfilesBN(f, X).
* @param fi file info set
- * @param ix directory index
+ * @param jx directory index
* @return directory, NULL on invalid
*/
const char * rpmfilesDN(rpmfiles fi, int jx);
@@ -294,7 +306,7 @@ const char * rpmfilesOBN(rpmfiles fi, int ix);
* you'd catenate the results of rpmfilesODN(f, rpmfilesODI(f, X)) and
* rpmfilesOBN(f, X).
* @param fi file info set
- * @param ix directory index
+ * @param jx directory index
* @return directory, NULL on invalid
*/
const char * rpmfilesODN(rpmfiles fi, int jx);
@@ -411,12 +423,21 @@ rpm_mode_t rpmfilesFMode(rpmfiles fi, int ix);
* @param fi file info set
* @param ix file index
* @retval algo digest hash algorithm used (pass NULL to ignore)
- * @retval diglen digest hash length (pass NULL to ignore)
+ * @retval len digest hash length (pass NULL to ignore)
* @return file digest, NULL on invalid
*/
const unsigned char * rpmfilesFDigest(rpmfiles fi, int ix, int *algo, size_t *len);
/** \ingroup rpmfiles
+ * Return file (binary) digest of file info set.
+ * @param fi file info set
+ * @param ix file index
+ * @retval len signature length (pass NULL to ignore)
+ * @return file signature, NULL on invalid
+ */
+const unsigned char * rpmfilesFSignature(rpmfiles fi, int ix, size_t *len);
+
+/** \ingroup rpmfiles
* Return file rdev from file info set.
* @param fi file info set
* @param ix file index
diff --git a/lib/rpmgi.c b/lib/rpmgi.c
index 89707df6..1e82446a 100644
--- a/lib/rpmgi.c
+++ b/lib/rpmgi.c
@@ -17,6 +17,8 @@
#include "debug.h"
+#define MANIFEST_RECURSIONS 1000 /* Max. number of allowed manifest recursions */
+
RPM_GNUC_INTERNAL
rpmgiFlags giFlags = RPMGI_NONE;
@@ -31,6 +33,10 @@ struct rpmgi_s {
ARGV_t argv;
int argc;
+
+ int curLvl; /*!< Current recursion level */
+ int recLvls[MANIFEST_RECURSIONS]; /*!< Reversed end index for given level */
+
};
/**
@@ -123,11 +129,24 @@ static Header rpmgiLoadReadHeader(rpmgi gi)
if (gi->argv != NULL && gi->argv[gi->i] != NULL)
do {
char * fn = gi->argv[gi->i];
- int rc = rpmgiReadHeader(gi, fn, &h);
+ int rc;
+
+ while (gi->recLvls[gi->curLvl] > gi->argc - gi->i)
+ gi->curLvl--;
+
+ rc = rpmgiReadHeader(gi, fn, &h);
if (h != NULL || (gi->flags & RPMGI_NOMANIFEST) || rc == 0)
break;
+ if (gi->curLvl == MANIFEST_RECURSIONS - 1) {
+ rpmlog(RPMLOG_ERR,
+ _("Max level of manifest recursion exceeded: %s\n"), fn);
+ break;
+ }
+ gi->curLvl++;
+ gi->recLvls[gi->curLvl] = gi->argc - gi->i;
+
/* Not a header, so try for a manifest. */
gi->argv[gi->i] = NULL; /* Mark the insertion point */
if (rpmgiLoadManifest(gi, fn) != RPMRC_OK) {
@@ -200,6 +219,9 @@ rpmgi rpmgiNew(rpmts ts, rpmgiFlags flags, ARGV_const_t argv)
gi->argc = 0;
rpmgiGlobArgv(gi, argv);
+ gi->curLvl = 0;
+ gi->recLvls[gi->curLvl] = 1;
+
return gi;
}
diff --git a/lib/rpmhash.C b/lib/rpmhash.C
index 9320b854..6875397a 100644
--- a/lib/rpmhash.C
+++ b/lib/rpmhash.C
@@ -142,6 +142,8 @@ void HASHPREFIX(AddHEntry)(HASHTYPE ht, HTKEYTYPE key, unsigned int keyHash
}
#ifdef HTDATATYPE
else {
+ if (ht->freeKey)
+ ht->freeKey(key);
// resizing bucket TODO: increase exponentially
// Bucket_s already contains space for one dataset
b = *b_addr = xrealloc(
diff --git a/lib/rpminstall.c b/lib/rpminstall.c
index d093ca21..2127088b 100644
--- a/lib/rpminstall.c
+++ b/lib/rpminstall.c
@@ -290,8 +290,8 @@ static int rpmcliTransaction(rpmts ts, struct rpmInstallArguments_s * ia,
ps = rpmtsProblems(ts);
- if ((rpmpsNumProblems(ps) > 0) && (eflags? 1 : (rc > 0)))
- rpmpsPrint((eflags? NULL : stderr), ps);
+ if (rpmpsNumProblems(ps) > 0 && (eflags || rc > 0))
+ rpmpsPrint(NULL, ps);
ps = rpmpsFree(ps);
}
@@ -387,6 +387,19 @@ static int checkFreshenStatus(rpmts ts, Header h)
return (oldH != NULL);
}
+static int rpmNoGlob(const char *fn, int *argcPtr, ARGV_t * argvPtr)
+{
+ struct stat sb;
+ int rc = stat(fn, &sb);
+ if (rc == 0) {
+ argvAdd(argvPtr, fn);
+ *argcPtr = 1;
+ } else {
+ *argcPtr = 0;
+ }
+ return rc;
+}
+
/** @todo Generalize --freshen policies. */
int rpmInstall(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_t fileArgv)
{
@@ -419,13 +432,20 @@ int rpmInstall(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_t fileArgv)
for (eiu->fnp = fileArgv; *eiu->fnp != NULL; eiu->fnp++) {
ARGV_t av = NULL;
int ac = 0;
- char * fn;
- fn = rpmEscapeSpaces(*eiu->fnp);
- rc = rpmGlob(fn, &ac, &av);
- fn = _free(fn);
+ if (giFlags & RPMGI_NOGLOB) {
+ rc = rpmNoGlob(*eiu->fnp, &ac, &av);
+ } else {
+ char * fn = rpmEscapeSpaces(*eiu->fnp);
+ rc = rpmGlob(fn, &ac, &av);
+ fn = _free(fn);
+ }
if (rc || ac == 0) {
- rpmlog(RPMLOG_ERR, _("File not found by glob: %s\n"), *eiu->fnp);
+ if (giFlags & RPMGI_NOGLOB) {
+ rpmlog(RPMLOG_ERR, _("File not found: %s\n"), *eiu->fnp);
+ } else {
+ rpmlog(RPMLOG_ERR, _("File not found by glob: %s\n"), *eiu->fnp);
+ }
eiu->numFailed++;
continue;
}
diff --git a/lib/rpmlock.c b/lib/rpmlock.c
index 7696cbed..9c076543 100644
--- a/lib/rpmlock.c
+++ b/lib/rpmlock.c
@@ -124,10 +124,11 @@ rpmlock rpmlockNew(const char *lock_path, const char *descr)
int rpmlockAcquire(rpmlock lock)
{
int locked = 0; /* assume failure */
+ int maywait = isatty(STDIN_FILENO); /* dont wait within scriptlets */
if (lock) {
locked = rpmlock_acquire(lock, RPMLOCK_WRITE);
- if (!locked && (lock->openmode & RPMLOCK_WRITE)) {
+ if (!locked && (lock->openmode & RPMLOCK_WRITE) && maywait) {
rpmlog(RPMLOG_WARNING, _("waiting for %s lock on %s\n"),
lock->descr, lock->path);
locked = rpmlock_acquire(lock, (RPMLOCK_WRITE|RPMLOCK_WAIT));
diff --git a/lib/rpmplugins.h b/lib/rpmplugins.h
index ecfa68b4..39762c37 100644
--- a/lib/rpmplugins.h
+++ b/lib/rpmplugins.h
@@ -157,8 +157,8 @@ rpmRC rpmpluginsCallFsmFilePost(rpmPlugins plugins, rpmfi fi, const char* path,
* @param plugins plugins structure
* @param fi file info iterator (or NULL)
* @param path file object current path
- * @param path file object destination path
- * @param file_mode file object mode
+ * @param dest file object destination path
+ * @param mode file object mode
* @param op file operation + associated flags
* @return RPMRC_OK on success, RPMRC_FAIL otherwise
*/
diff --git a/lib/rpmrc.c b/lib/rpmrc.c
index 40101bd7..18d44dc6 100644
--- a/lib/rpmrc.c
+++ b/lib/rpmrc.c
@@ -135,8 +135,6 @@ static const size_t optionTableSize = sizeof(optionTable) / sizeof(*optionTable)
#define OS 0
#define ARCH 1
-static int defaultsInitialized = 0;
-
typedef struct rpmrcCtx_s * rpmrcCtx;
struct rpmrcCtx_s {
ARGV_t platpat;
@@ -144,6 +142,8 @@ struct rpmrcCtx_s {
int currTables[2];
struct rpmvarValue values[RPMVAR_NUM];
struct tableType_s tables[RPM_MACHTABLE_COUNT];
+ int machDefaults;
+ int pathDefaults;
pthread_rwlock_t lock;
};
@@ -817,6 +817,11 @@ static inline int RPMClass(void)
sigaction(SIGILL, &oldsa, NULL);
+#define USER686 ((1<<4) | (1<<8) | (1<<15))
+ /* Transmeta Crusoe CPUs say that their CPU family is "5" but they have enough features for i686. */
+ if(cpu == 5 && (cap & USER686) == USER686)
+ return 6;
+
if (cpu < 6)
return cpu;
@@ -988,7 +993,6 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
{
const char * const platform_path = SYSCONFDIR "/rpm/platform";
static struct utsname un;
- static int gotDefaults = 0;
char * chptr;
canonEntry canon;
int rc;
@@ -998,7 +1002,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
read_auxv();
#endif
- while (!gotDefaults) {
+ while (!ctx->machDefaults) {
if (!rpmPlatform(ctx, platform_path)) {
char * s = rpmExpand("%{_host_cpu}", NULL);
if (s) {
@@ -1010,7 +1014,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
rstrlcpy(un.sysname, s, sizeof(un.sysname));
free(s);
}
- gotDefaults = 1;
+ ctx->machDefaults = 1;
break;
}
rc = uname(&un);
@@ -1053,10 +1057,46 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
# if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL)
/* little endian */
- strcpy(un.machine, "mipsel");
+# if defined(__mips64)
+ /* 64-bit */
+# if !defined(__mips_isa_rev) || __mips_isa_rev < 6
+ /* r1-r5 */
+ strcpy(un.machine, "mips64el");
+# else
+ /* r6 */
+ strcpy(un.machine, "mips64r6el");
+# endif
+# else
+ /* 32-bit */
+# if !defined(__mips_isa_rev) || __mips_isa_rev < 6
+ /* r1-r5 */
+ strcpy(un.machine, "mipsel");
+# else
+ /* r6 */
+ strcpy(un.machine, "mipsr6el");
+# endif
+# endif
# elif defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB)
/* big endian */
- strcpy(un.machine, "mips");
+# if defined(__mips64)
+ /* 64-bit */
+# if !defined(__mips_isa_rev) || __mips_isa_rev < 6
+ /* r1-r5 */
+ strcpy(un.machine, "mips64");
+# else
+ /* r6 */
+ strcpy(un.machine, "mips64r6");
+# endif
+# else
+ /* 32-bit */
+# if !defined(__mips_isa_rev) || __mips_isa_rev < 6
+ /* r1-r5 */
+ strcpy(un.machine, "mips");
+# else
+ /* r6 */
+ strcpy(un.machine, "mipsr6");
+# endif
+# endif
# endif
# if defined(__hpux) && defined(_SC_CPU_VERSION)
@@ -1172,6 +1212,17 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
}
# endif /* arm*-linux */
+# if defined(__linux__) && defined(__riscv__)
+ if (rstreq(un.machine, "riscv")) {
+ if (sizeof(long) == 4)
+ strcpy(un.machine, "riscv32");
+ else if (sizeof(long) == 8)
+ strcpy(un.machine, "riscv64");
+ else if (sizeof(long) == 16)
+ strcpy(un.machine, "riscv128");
+ }
+# endif /* riscv */
+
# if defined(__GNUC__) && defined(__alpha__)
{
unsigned long amask, implver;
@@ -1227,7 +1278,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
ctx->tables[RPM_MACHTABLE_INSTOS].canonsLength);
if (canon)
rstrlcpy(un.sysname, canon->short_name, sizeof(un.sysname));
- gotDefaults = 1;
+ ctx->machDefaults = 1;
break;
}
@@ -1507,9 +1558,9 @@ static rpmRC rpmReadRC(rpmrcCtx ctx, const char * rcfiles)
ARGV_t p, globs = NULL, files = NULL;
rpmRC rc = RPMRC_FAIL;
- if (!defaultsInitialized) {
+ if (!ctx->pathDefaults) {
setDefaults();
- defaultsInitialized = 1;
+ ctx->pathDefaults = 1;
}
if (rcfiles == NULL)
@@ -1660,7 +1711,8 @@ void rpmFreeRpmrc(void)
}
ctx->current[OS] = _free(ctx->current[OS]);
ctx->current[ARCH] = _free(ctx->current[ARCH]);
- defaultsInitialized = 0;
+ ctx->machDefaults = 0;
+ ctx->pathDefaults = 0;
/* XXX doesn't really belong here but... */
rpmFreeCrypto();
diff --git a/lib/rpmscript.c b/lib/rpmscript.c
index c3c50ed2..98d3f420 100644
--- a/lib/rpmscript.c
+++ b/lib/rpmscript.c
@@ -4,6 +4,10 @@
#include <sys/wait.h>
#include <errno.h>
#include <unistd.h>
+#include <sys/resource.h>
+#if defined(__linux__)
+#include <sys/syscall.h> /* For ionice */
+#endif
#include <rpm/rpmfileutil.h>
#include <rpm/rpmmacro.h>
@@ -19,6 +23,13 @@
#include "debug.h"
+struct scriptNextFileFunc_s {
+ char *(*func)(void *); /* function producing input for script */
+ void *param; /* parameter for func */
+};
+
+typedef struct scriptNextFileFunc_s *scriptNextFileFunc;
+
struct rpmScript_s {
rpmscriptTypes type; /* script type */
rpmTagVal tag; /* script tag */
@@ -26,6 +37,7 @@ struct rpmScript_s {
char *body; /* script body */
char *descr; /* description for logging */
rpmscriptFlags flags; /* flags to control operation */
+ struct scriptNextFileFunc_s nextFileFunc; /* input function */
};
struct scriptInfo_s {
@@ -76,7 +88,8 @@ static const struct scriptInfo_s * findTag(rpmTagVal tag)
*/
static rpmRC runLuaScript(rpmPlugins plugins, ARGV_const_t prefixes,
const char *sname, rpmlogLvl lvl, FD_t scriptFd,
- ARGV_t * argvp, const char *script, int arg1, int arg2)
+ ARGV_t * argvp, const char *script, int arg1, int arg2,
+ scriptNextFileFunc nextFileFunc)
{
rpmRC rc = RPMRC_FAIL;
#ifdef WITH_LUA
@@ -90,6 +103,7 @@ static rpmRC runLuaScript(rpmPlugins plugins, ARGV_const_t prefixes,
/* Create arg variable */
rpmluaPushTable(lua, "arg");
rpmluavSetListMode(var, 1);
+ rpmluaSetNextFileFunc(nextFileFunc->func, nextFileFunc->param);
if (argv) {
char **p;
for (p = argv; *p; p++) {
@@ -113,10 +127,16 @@ static rpmRC runLuaScript(rpmPlugins plugins, ARGV_const_t prefixes,
if (cwd != -1) {
mode_t oldmask = umask(0);
umask(oldmask);
+ pid_t pid = getpid();
if (chdir("/") == 0 && rpmluaRunScript(lua, script, sname) == 0) {
rc = RPMRC_OK;
}
+ if (pid != getpid()) {
+ /* Terminate child process forked in lua scriptlet */
+ rpmlog(RPMLOG_ERR, _("No exec() called after fork() in lua scriptlet\n"));
+ _exit(EXIT_FAILURE);
+ }
/* This failing would be fatal, return something different for it... */
if (fchdir(cwd)) {
rpmlog(RPMLOG_ERR, _("Unable to restore current directory: %m"));
@@ -141,19 +161,12 @@ static const char * const SCRIPT_PATH = "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr
static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes,
FD_t scriptFd, FD_t out)
{
- int pipes[2];
int flag;
int fdno;
int xx;
int open_max;
(void) signal(SIGPIPE, SIG_DFL);
- pipes[0] = pipes[1] = 0;
- /* make stdin inaccessible */
- xx = pipe(pipes);
- xx = close(pipes[1]);
- xx = dup2(pipes[0], STDIN_FILENO);
- xx = close(pipes[0]);
/* XXX Force FD_CLOEXEC on all inherited fdno's. */
open_max = sysconf(_SC_OPEN_MAX);
@@ -246,13 +259,19 @@ exit:
*/
static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
const char *sname, rpmlogLvl lvl, FD_t scriptFd,
- ARGV_t * argvp, const char *script, int arg1, int arg2)
+ ARGV_t * argvp, const char *script, int arg1, int arg2,
+ scriptNextFileFunc nextFileFunc)
{
FD_t out = NULL;
char * fn = NULL;
pid_t pid, reaped;
int status;
+ int inpipe[2];
+ FILE *in = NULL;
+ const char *line;
+ char *mline = NULL;
rpmRC rc = RPMRC_FAIL;
+ struct sigaction newact, oldact;
rpmlog(RPMLOG_DEBUG, "%s: scriptlet start\n", sname);
@@ -274,6 +293,14 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
}
}
+ if (pipe(inpipe) < 0) {
+ rpmlog(RPMLOG_ERR,
+ ("Couldn't create pipe: %s\n"), strerror(errno));
+ goto exit;
+ }
+ in = fdopen(inpipe[1], "w");
+ inpipe[1] = 0;
+
if (scriptFd != NULL) {
if (rpmIsVerbose()) {
out = fdDup(Fileno(scriptFd));
@@ -292,6 +319,12 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
goto exit;
}
+ /* Ignore SIGPIPE during execution of scriptlets */
+ sigemptyset(&newact.sa_mask);
+ newact.sa_flags = 0;
+ newact.sa_handler = SIG_IGN;
+ sigaction(SIGPIPE, &newact, &oldact);
+
pid = fork();
if (pid == (pid_t) -1) {
rpmlog(RPMLOG_ERR, _("Couldn't fork %s: %s\n"),
@@ -301,6 +334,35 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
rpmlog(RPMLOG_DEBUG, "%s: execv(%s) pid %d\n",
sname, *argvp[0], (unsigned)getpid());
+ fclose(in);
+ dup2(inpipe[0], STDIN_FILENO);
+
+ /* If RPM was invoked with nice and/or ionice, the scripts that we run
+ * will be also nice'd/ionice'd. This is terrible if you restart any
+ * daemon (e.g. mysqld), so let's reset this to default values before
+ * taking any actions.
+ */
+
+ /* Call for resetting nice priority. */
+ int ret;
+ ret = setpriority(PRIO_PROCESS, 0, 0);
+ if (ret == -1) {
+ rpmlog(RPMLOG_WARNING, _("Unable to reset nice value: %s"),
+ strerror(errno));
+ }
+
+ /* Call for resetting IO priority. */
+ #if defined(__linux__)
+ /* Defined at include/linux/ioprio.h */
+ const int _IOPRIO_WHO_PROCESS = 1;
+ const int _IOPRIO_CLASS_NONE = 0;
+ ret = syscall(SYS_ioprio_set, _IOPRIO_WHO_PROCESS, 0, _IOPRIO_CLASS_NONE);
+ if (ret == -1) {
+ rpmlog(RPMLOG_WARNING, _("Unable to reset I/O priority: %s"),
+ strerror(errno));
+ }
+ #endif
+
/* Run scriptlet post fork hook for all plugins */
if (rpmpluginsCallScriptletForkPost(plugins, *argvp[0], RPMSCRIPTLET_FORK | RPMSCRIPTLET_EXEC) != RPMRC_FAIL) {
doScriptExec(*argvp, prefixes, scriptFd, out);
@@ -308,6 +370,31 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
_exit(126); /* exit 126 for compatibility with bash(1) */
}
}
+ close(inpipe[0]);
+ inpipe[0] = 0;
+
+ if (nextFileFunc->func) {
+ while ((line = nextFileFunc->func(nextFileFunc->param)) != NULL) {
+ size_t size = strlen(line);
+ size_t ret_size;
+ mline = xstrdup(line);
+ mline[size] = '\n';
+
+ ret_size = fwrite(mline, size + 1, 1, in);
+ mline = _free(mline);
+ if (ret_size != 1) {
+ if (errno == EPIPE) {
+ break;
+ } else {
+ rpmlog(RPMLOG_ERR, _("Fwrite failed: %s"), strerror(errno));
+ rc = RPMRC_FAIL;
+ goto exit;
+ }
+ }
+ }
+ }
+ fclose(in);
+ in = NULL;
do {
reaped = waitpid(pid, &status, 0);
@@ -333,6 +420,12 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
}
exit:
+ if (in)
+ fclose(in);
+
+ if (inpipe[0])
+ close(inpipe[0]);
+
if (out)
Fclose(out); /* XXX dup'd STDOUT_FILENO */
@@ -341,6 +434,11 @@ exit:
unlink(fn);
free(fn);
}
+ free(mline);
+
+ /* Restore SIGPIPE handler */
+ sigaction(SIGPIPE, &oldact, NULL);
+
return rc;
}
@@ -369,9 +467,9 @@ rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd,
if (rc != RPMRC_FAIL) {
if (script_type & RPMSCRIPTLET_EXEC) {
- rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2);
+ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc);
} else {
- rc = runLuaScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2);
+ rc = runLuaScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc);
}
}
@@ -427,20 +525,101 @@ static rpmScript rpmScriptNew(Header h, rpmTagVal tag, const char *body,
script->body = body;
}
+ script->nextFileFunc.func = NULL;
+ script->nextFileFunc.param = NULL;
+
free(nevra);
return script;
}
-rpmScript rpmScriptFromTriggerTag(Header h, rpmTagVal triggerTag, uint32_t ix)
+void rpmScriptSetNextFileFunc(rpmScript script, char *(*func)(void *),
+ void *param)
+{
+ script->nextFileFunc.func = func;
+ script->nextFileFunc.param = param;
+}
+
+rpmTagVal triggerDsTag(rpmscriptTriggerModes tm)
+{
+ rpmTagVal tag = RPMTAG_NOT_FOUND;
+ switch (tm) {
+ case RPMSCRIPT_NORMALTRIGGER:
+ tag = RPMTAG_TRIGGERNAME;
+ break;
+ case RPMSCRIPT_FILETRIGGER:
+ tag = RPMTAG_FILETRIGGERNAME;
+ break;
+ case RPMSCRIPT_TRANSFILETRIGGER:
+ tag = RPMTAG_TRANSFILETRIGGERNAME;
+ break;
+ }
+ return tag;
+}
+
+rpmscriptTriggerModes triggerMode(rpmTagVal tag)
+{
+ rpmscriptTriggerModes tm = 0;
+ switch (tag) {
+ case RPMTAG_TRIGGERNAME:
+ tm = RPMSCRIPT_NORMALTRIGGER;
+ break;
+ case RPMTAG_FILETRIGGERNAME:
+ tm = RPMSCRIPT_FILETRIGGER;
+ break;
+ case RPMTAG_TRANSFILETRIGGERNAME:
+ tm = RPMSCRIPT_TRANSFILETRIGGER;
+ break;
+ }
+ return tm;
+}
+
+rpmTagVal triggertag(rpmsenseFlags sense)
+{
+ rpmTagVal tag = RPMTAG_NOT_FOUND;
+ switch (sense) {
+ case RPMSENSE_TRIGGERIN:
+ tag = RPMTAG_TRIGGERIN;
+ break;
+ case RPMSENSE_TRIGGERUN:
+ tag = RPMTAG_TRIGGERUN;
+ break;
+ case RPMSENSE_TRIGGERPOSTUN:
+ tag = RPMTAG_TRIGGERPOSTUN;
+ break;
+ case RPMSENSE_TRIGGERPREIN:
+ tag = RPMTAG_TRIGGERPREIN;
+ break;
+ default:
+ break;
+ }
+ return tag;
+}
+
+rpmScript rpmScriptFromTriggerTag(Header h, rpmTagVal triggerTag,
+ rpmscriptTriggerModes tm, uint32_t ix)
{
rpmScript script = NULL;
struct rpmtd_s tscripts, tprogs, tflags;
headerGetFlags hgflags = HEADERGET_MINMEM;
- headerGet(h, RPMTAG_TRIGGERSCRIPTS, &tscripts, hgflags);
- headerGet(h, RPMTAG_TRIGGERSCRIPTPROG, &tprogs, hgflags);
- headerGet(h, RPMTAG_TRIGGERSCRIPTFLAGS, &tflags, hgflags);
-
+ switch(tm) {
+ case RPMSCRIPT_NORMALTRIGGER:
+ headerGet(h, RPMTAG_TRIGGERSCRIPTS, &tscripts, hgflags);
+ headerGet(h, RPMTAG_TRIGGERSCRIPTPROG, &tprogs, hgflags);
+ headerGet(h, RPMTAG_TRIGGERSCRIPTFLAGS, &tflags, hgflags);
+ break;
+ case RPMSCRIPT_FILETRIGGER:
+ headerGet(h, RPMTAG_FILETRIGGERSCRIPTS, &tscripts, hgflags);
+ headerGet(h, RPMTAG_FILETRIGGERSCRIPTPROG, &tprogs, hgflags);
+ headerGet(h, RPMTAG_FILETRIGGERSCRIPTFLAGS, &tflags, hgflags);
+ break;
+ case RPMSCRIPT_TRANSFILETRIGGER:
+ headerGet(h, RPMTAG_TRANSFILETRIGGERSCRIPTS, &tscripts, hgflags);
+ headerGet(h, RPMTAG_TRANSFILETRIGGERSCRIPTPROG, &tprogs, hgflags);
+ headerGet(h, RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS, &tflags, hgflags);
+ break;
+ }
+
if (rpmtdSetIndex(&tscripts, ix) >= 0 && rpmtdSetIndex(&tprogs, ix) >= 0) {
rpmscriptFlags sflags = 0;
const char *prog = rpmtdGetString(&tprogs);
diff --git a/lib/rpmscript.h b/lib/rpmscript.h
index d807d279..3768077c 100644
--- a/lib/rpmscript.h
+++ b/lib/rpmscript.h
@@ -3,6 +3,7 @@
#include <rpm/rpmtypes.h>
#include <rpm/argv.h>
+#include <rpm/rpmds.h>
/* Rpm scriptlet types */
enum rpmscriptTypes_e {
@@ -22,6 +23,14 @@ enum rpmscriptTypes_e {
typedef rpmFlags rpmscriptTypes;
+enum rpmscriptTriggerMode_e {
+ RPMSCRIPT_NORMALTRIGGER = (1 << 0),
+ RPMSCRIPT_FILETRIGGER = (1 << 1),
+ RPMSCRIPT_TRANSFILETRIGGER = (1 << 2),
+};
+
+typedef rpmFlags rpmscriptTriggerModes;
+
enum rpmscriptFlags_e {
RPMSCRIPT_FLAG_NONE = 0,
RPMSCRIPT_FLAG_EXPAND = (1 << 0), /* macro expansion */
@@ -37,10 +46,20 @@ extern "C" {
#endif
RPM_GNUC_INTERNAL
+rpmTagVal triggerDsTag(rpmscriptTriggerModes tm);
+
+RPM_GNUC_INTERNAL
+rpmscriptTriggerModes triggerMode(rpmTagVal tag);
+
+RPM_GNUC_INTERNAL
+rpmTagVal triggertag(rpmsenseFlags sense);
+
+RPM_GNUC_INTERNAL
rpmScript rpmScriptFromTag(Header h, rpmTagVal scriptTag);
RPM_GNUC_INTERNAL
-rpmScript rpmScriptFromTriggerTag(Header h, rpmTagVal triggerTag, uint32_t ix);
+rpmScript rpmScriptFromTriggerTag(Header h, rpmTagVal triggerTag,
+ rpmscriptTriggerModes tm, uint32_t ix);
RPM_GNUC_INTERNAL
rpmScript rpmScriptFree(rpmScript script);
@@ -54,6 +73,10 @@ rpmTagVal rpmScriptTag(rpmScript script);
RPM_GNUC_INTERNAL
rpmscriptTypes rpmScriptType(rpmScript script);
+
+RPM_GNUC_INTERNAL
+void rpmScriptSetNextFileFunc(rpmScript script, char *(*func)(void *),
+ void *param);
#ifdef __cplusplus
}
#endif
diff --git a/lib/rpmsignfiles.c b/lib/rpmsignfiles.c
new file mode 100644
index 00000000..61ea33e4
--- /dev/null
+++ b/lib/rpmsignfiles.c
@@ -0,0 +1,164 @@
+/**
+ * Copyright (C) 2014 IBM Corporation
+ *
+ * Author: Fionnuala Gunter <fin@linux.vnet.ibm.com>
+ */
+
+#include "system.h"
+#include "imaevm.h"
+
+#include <termios.h>
+
+#include <rpm/rpmlog.h> /* rpmlog */
+#include <rpm/rpmstring.h> /* rnibble */
+#include <rpm/rpmpgp.h> /* rpmDigestLength */
+#include "lib/header.h" /* HEADERGET_MINMEM */
+#include "lib/rpmtypes.h" /* rpmRC */
+
+#include "lib/rpmsignfiles.h"
+
+#define MAX_SIGNATURE_LENGTH 1024
+
+static const char *hash_algo_name[] = {
+ [PGPHASHALGO_MD5] = "md5",
+ [PGPHASHALGO_SHA1] = "sha1",
+ [PGPHASHALGO_RIPEMD160] = "rmd160",
+ [PGPHASHALGO_MD2] = "md2",
+ [PGPHASHALGO_TIGER192] = "tgr192",
+ [PGPHASHALGO_HAVAL_5_160] = "haval5160",
+ [PGPHASHALGO_SHA256] = "sha256",
+ [PGPHASHALGO_SHA384] = "sha384",
+ [PGPHASHALGO_SHA512] = "sha512",
+ [PGPHASHALGO_SHA224] = "sha224",
+};
+
+char *get_fskpass(void)
+{
+ struct termios flags, tmp_flags;
+ char *password, *pwd;
+ int passlen = 64;
+
+ password = malloc(passlen);
+ if (!password) {
+ perror("malloc");
+ return NULL;
+ }
+
+ tcgetattr(fileno(stdin), &flags);
+ tmp_flags = flags;
+ tmp_flags.c_lflag &= ~ECHO;
+ tmp_flags.c_lflag |= ECHONL;
+
+ if (tcsetattr(fileno(stdin), TCSANOW, &tmp_flags) != 0) {
+ perror("tcsetattr");
+ return NULL;
+ }
+
+ printf("PEM password: ");
+ pwd = fgets(password, passlen, stdin);
+ pwd[strlen(pwd) - 1] = '\0'; /* remove newline */
+
+ if (tcsetattr(fileno(stdin), TCSANOW, &flags) != 0) {
+ perror("tcsetattr");
+ return NULL;
+ }
+ return pwd;
+}
+
+static char *signFile(const char *algo, const char *fdigest, int diglen,
+const char *key, char *keypass)
+{
+ char *fsignature;
+ unsigned char digest[diglen];
+ unsigned char signature[MAX_SIGNATURE_LENGTH];
+ int siglen;
+
+#ifndef WITH_IMAEVM
+ rpmlog(RPMLOG_ERR, _("missing libimaevm\n"));
+ return NULL;
+#endif
+
+ /* convert file digest hex to binary */
+ memset(digest, 0, diglen);
+ for (int i = 0; i < diglen; ++i, fdigest += 2)
+ digest[i] = (rnibble(fdigest[0]) << 4) | rnibble(fdigest[1]);
+
+ /* prepare file signature */
+ memset(signature, 0, MAX_SIGNATURE_LENGTH);
+ signature[0] = '\x03';
+
+ /* calculate file signature */
+ siglen = sign_hash(algo, digest, diglen, key, keypass, signature+1);
+ if (siglen < 0) {
+ rpmlog(RPMLOG_ERR, _("sign_hash failed\n"));
+ return NULL;
+ }
+
+ /* convert file signature binary to hex */
+ fsignature = pgpHexStr(signature, siglen+1);
+ return fsignature;
+}
+
+static uint32_t signatureLength(const char *algo, int diglen, const char *key,
+char *keypass)
+{
+ unsigned char digest[diglen];
+ unsigned char signature[MAX_SIGNATURE_LENGTH];
+
+ memset(digest, 0, diglen);
+ memset(signature, 0, MAX_SIGNATURE_LENGTH);
+ signature[0] = '\x03';
+
+ uint32_t siglen = sign_hash(algo, digest, diglen, key, keypass,
+ signature+1);
+ return siglen + 1;
+}
+
+rpmRC rpmSignFiles(Header h, const char *key, char *keypass)
+{
+ struct rpmtd_s digests;
+ int algo;
+ int diglen;
+ uint32_t siglen;
+ const char *algoname;
+ const char *digest;
+ char *signature;
+ rpmRC rc = RPMRC_OK;
+
+ algo = headerGetNumber(h, RPMTAG_FILEDIGESTALGO);
+ if (!algo) {
+ rpmlog(RPMLOG_ERR, _("missing RPMTAG_FILEDIGESTALGO\n"));
+ return RPMRC_FAIL;
+ }
+
+ diglen = rpmDigestLength(algo);
+ algoname = hash_algo_name[algo];
+ if (!algoname) {
+ rpmlog(RPMLOG_ERR, _("hash_algo_name failed\n"));
+ return RPMRC_FAIL;
+ }
+
+ headerDel(h, RPMTAG_FILESIGNATURELENGTH);
+ headerDel(h, RPMTAG_FILESIGNATURES);
+ siglen = signatureLength(algoname, diglen, key, keypass);
+ headerPutUint32(h, RPMTAG_FILESIGNATURELENGTH, &siglen, 1);
+
+ headerGet(h, RPMTAG_FILEDIGESTS, &digests, HEADERGET_MINMEM);
+ while ((digest = rpmtdNextString(&digests))) {
+ signature = signFile(algoname, digest, diglen, key, keypass);
+ if (!signature) {
+ rpmlog(RPMLOG_ERR, _("signFile failed\n"));
+ rc = RPMRC_FAIL;
+ goto exit;
+ }
+ if (!headerPutString(h, RPMTAG_FILESIGNATURES, signature)) {
+ rpmlog(RPMLOG_ERR, _("headerPutString failed\n"));
+ rc = RPMRC_FAIL;
+ goto exit;
+ }
+ }
+
+exit:
+ rpmtdFreeData(&digests);
+ return rc;
+}
diff --git a/lib/rpmsignfiles.h b/lib/rpmsignfiles.h
new file mode 100644
index 00000000..52e2482a
--- /dev/null
+++ b/lib/rpmsignfiles.h
@@ -0,0 +1,23 @@
+#ifndef H_RPMSIGNFILES
+#define H_RPMSIGNFILES
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Sign file digests in header and store the signatures in header
+ * @param h package header
+ * @param key signing key
+ * @param keypass signing key password
+ * @return RPMRC_OK on success
+ */
+rpmRC rpmSignFiles(Header h, const char *key, char *keypass);
+
+char *get_fskpass(void); /* get file signing key password */
+
+#ifdef _cplusplus
+}
+#endif
+
+#endif /* H_RPMSIGNFILES */
diff --git a/lib/rpmtag.h b/lib/rpmtag.h
index 12a2a501..dc62de2b 100644
--- a/lib/rpmtag.h
+++ b/lib/rpmtag.h
@@ -328,6 +328,36 @@ typedef enum rpmTag_e {
RPMTAG_SUGGESTNEVRS = 5059, /* s[] extension */
RPMTAG_SUPPLEMENTNEVRS = 5060, /* s[] extension */
RPMTAG_ENHANCENEVRS = 5061, /* s[] extension */
+ RPMTAG_ENCODING = 5062, /* s */
+ RPMTAG_FILETRIGGERIN = 5063, /* internal */
+ RPMTAG_FILETRIGGERUN = 5064, /* internal */
+ RPMTAG_FILETRIGGERPOSTUN = 5065, /* internal */
+ RPMTAG_FILETRIGGERSCRIPTS = 5066, /* s[] */
+ RPMTAG_FILETRIGGERSCRIPTPROG = 5067, /* s[] */
+ RPMTAG_FILETRIGGERSCRIPTFLAGS = 5068, /* i[] */
+ RPMTAG_FILETRIGGERNAME = 5069, /* s[] */
+ RPMTAG_FILETRIGGERINDEX = 5070, /* i[] */
+ RPMTAG_FILETRIGGERVERSION = 5071, /* s[] */
+ RPMTAG_FILETRIGGERFLAGS = 5072, /* i[] */
+ RPMTAG_TRANSFILETRIGGERIN = 5073, /* internal */
+ RPMTAG_TRANSFILETRIGGERUN = 5074, /* internal */
+ RPMTAG_TRANSFILETRIGGERPOSTUN = 5075, /* internal */
+ RPMTAG_TRANSFILETRIGGERSCRIPTS = 5076, /* s[] */
+ RPMTAG_TRANSFILETRIGGERSCRIPTPROG = 5077, /* s[] */
+ RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS = 5078, /* i[] */
+ RPMTAG_TRANSFILETRIGGERNAME = 5079, /* s[] */
+ RPMTAG_TRANSFILETRIGGERINDEX = 5080, /* i[] */
+ RPMTAG_TRANSFILETRIGGERVERSION = 5081, /* s[] */
+ RPMTAG_TRANSFILETRIGGERFLAGS = 5082, /* i[] */
+ RPMTAG_REMOVEPATHPOSTFIXES = 5083, /* s internal */
+ RPMTAG_FILETRIGGERPRIORITIES = 5084, /* i[] */
+ RPMTAG_TRANSFILETRIGGERPRIORITIES = 5085, /* i[] */
+ RPMTAG_FILETRIGGERCONDS = 5086, /* s[] extension */
+ RPMTAG_FILETRIGGERTYPE = 5087, /* s[] extension */
+ RPMTAG_TRANSFILETRIGGERCONDS = 5088, /* s[] extension */
+ RPMTAG_TRANSFILETRIGGERTYPE = 5089, /* s[] extension */
+ RPMTAG_FILESIGNATURES = 5090, /* s[] */
+ RPMTAG_FILESIGNATURELENGTH = 5091, /* i */
RPMTAG_FIRSTFREE_TAG /*!< internal */
} rpmTag;
@@ -353,6 +383,12 @@ typedef enum rpmDbiTag_e {
RPMDBI_SIGMD5 = RPMTAG_SIGMD5,
RPMDBI_SHA1HEADER = RPMTAG_SHA1HEADER,
RPMDBI_INSTFILENAMES = RPMTAG_INSTFILENAMES,
+ RPMDBI_FILETRIGGERNAME = RPMTAG_FILETRIGGERNAME,
+ RPMDBI_TRANSFILETRIGGERNAME = RPMTAG_TRANSFILETRIGGERNAME,
+ RPMDBI_RECOMMENDNAME = RPMTAG_RECOMMENDNAME,
+ RPMDBI_SUGGESTNAME = RPMTAG_SUGGESTNAME,
+ RPMDBI_SUPPLEMENTNAME = RPMTAG_SUPPLEMENTNAME,
+ RPMDBI_ENHANCENAME = RPMTAG_ENHANCENAME,
} rpmDbiTag;
/** \ingroup signature
diff --git a/lib/rpmtd.c b/lib/rpmtd.c
index 550d733a..b933c886 100644
--- a/lib/rpmtd.c
+++ b/lib/rpmtd.c
@@ -57,6 +57,11 @@ rpm_count_t rpmtdCount(rpmtd td)
return (td->type == RPM_BIN_TYPE) ? 1 : td->count;
}
+rpm_count_t rpmtdSize(rpmtd td)
+{
+ return (td != NULL) ? td->size : 0;
+}
+
rpmTagVal rpmtdTag(rpmtd td)
{
assert(td != NULL);
diff --git a/lib/rpmtd.h b/lib/rpmtd.h
index a8f0b712..76f1ca56 100644
--- a/lib/rpmtd.h
+++ b/lib/rpmtd.h
@@ -30,6 +30,7 @@ struct rpmtd_s {
rpm_data_t data; /* pointer to actual data */
rpmtdFlags flags; /* flags on memory allocation etc */
int ix; /* iteration index */
+ rpm_count_t size; /* size of data (only works for RPMTD_IMMUTABLE atm) */
};
/** \ingroup rpmtd
@@ -67,6 +68,14 @@ void rpmtdFreeData(rpmtd td);
rpm_count_t rpmtdCount(rpmtd td);
/** \ingroup rpmtd
+ * Retrieve container data size (eg required for allocation).
+ * Note this currently only works for RPMTD_IMMUTABLE data.
+ * @param td Tag data container
+ * @return Data size in bytes.
+ */
+rpm_count_t rpmtdSize(rpmtd td);
+
+/** \ingroup rpmtd
* Retrieve tag of the container.
* @param td Tag data container
* @return Rpm tag.
diff --git a/lib/rpmte_internal.h b/lib/rpmte_internal.h
index af25c626..464f4762 100644
--- a/lib/rpmte_internal.h
+++ b/lib/rpmte_internal.h
@@ -14,6 +14,8 @@ typedef enum pkgGoal_e {
PKG_VERIFY = RPMTAG_VERIFYSCRIPT,
PKG_PRETRANS = RPMTAG_PRETRANS,
PKG_POSTTRANS = RPMTAG_POSTTRANS,
+ PKG_TRANSFILETRIGGERIN = RPMTAG_TRANSFILETRIGGERIN,
+ PKG_TRANSFILETRIGGERUN = RPMTAG_TRANSFILETRIGGERUN,
} pkgGoal;
/** \ingroup rpmte
diff --git a/lib/rpmtriggers.c b/lib/rpmtriggers.c
new file mode 100644
index 00000000..1f97623e
--- /dev/null
+++ b/lib/rpmtriggers.c
@@ -0,0 +1,616 @@
+#include "system.h"
+
+#include <rpm/rpmts.h>
+#include <rpm/rpmdb.h>
+#include <rpm/rpmds.h>
+#include <rpm/rpmfi.h>
+#include <stdlib.h>
+
+#include "lib/rpmtriggers.h"
+#include "lib/rpmts_internal.h"
+#include "lib/rpmdb_internal.h"
+#include "lib/rpmds_internal.h"
+#include "lib/rpmfi_internal.h"
+#include "lib/rpmchroot.h"
+
+#define TRIGGER_PRIORITY_BOUND 10000
+
+rpmtriggers rpmtriggersCreate(unsigned int hint)
+{
+ rpmtriggers triggers = xmalloc(sizeof(struct rpmtriggers_s));
+ triggers->count = 0;
+ triggers->alloced = hint;
+ triggers->triggerInfo = xmalloc(sizeof(struct triggerInfo_s) *
+ triggers->alloced);
+ return triggers;
+}
+
+rpmtriggers rpmtriggersFree(rpmtriggers triggers)
+{
+ _free(triggers->triggerInfo);
+ _free(triggers);
+
+ return NULL;
+}
+
+static void rpmtriggersAdd(rpmtriggers trigs, unsigned int hdrNum,
+ unsigned int tix, unsigned int priority)
+{
+ if (trigs->count == trigs->alloced) {
+ trigs->alloced <<= 1;
+ trigs->triggerInfo = xrealloc(trigs->triggerInfo,
+ sizeof(struct triggerInfo_s) * trigs->alloced);
+ }
+
+ trigs->triggerInfo[trigs->count].hdrNum = hdrNum;
+ trigs->triggerInfo[trigs->count].tix = tix;
+ trigs->triggerInfo[trigs->count].priority = priority;
+ trigs->count++;
+}
+
+static int trigCmp(const void *a, const void *b)
+{
+ const struct triggerInfo_s *trigA = a, *trigB = b;
+
+ if (trigA->priority < trigB->priority)
+ return 1;
+
+ if (trigA->priority > trigB->priority)
+ return -1;
+
+ if (trigA->hdrNum < trigB->hdrNum)
+ return -1;
+
+ if (trigA->hdrNum > trigB->hdrNum)
+ return 1;
+
+ if (trigA->tix < trigB->tix)
+ return -1;
+
+ if (trigA->tix > trigB->tix)
+ return 1;
+
+ return 0;
+}
+
+static void rpmtriggersSortAndUniq(rpmtriggers trigs)
+{
+ unsigned int from;
+ unsigned int to = 0;
+ unsigned int count = trigs->count;
+
+ if (count > 1)
+ qsort(trigs->triggerInfo, count, sizeof(struct triggerInfo_s), trigCmp);
+
+ for (from = 0; from < count; from++) {
+ if (from > 0 &&
+ !trigCmp((const void *) &trigs->triggerInfo[from - 1],
+ (const void *) &trigs->triggerInfo[from])) {
+
+ trigs->count--;
+ continue;
+ }
+ if (from != to)
+ trigs->triggerInfo[to] = trigs->triggerInfo[from];
+ to++;
+ }
+}
+
+void rpmtriggersPrepPostUnTransFileTrigs(rpmts ts, rpmte te)
+{
+ rpmdbMatchIterator mi;
+ rpmdbIndexIterator ii;
+ Header trigH;
+ const void *key;
+ size_t keylen;
+ rpmfiles files;
+ rpmds rpmdsTriggers;
+ rpmds rpmdsTrigger;
+ int tix = 0;
+
+ ii = rpmdbIndexIteratorInit(rpmtsGetRdb(ts), RPMDBI_TRANSFILETRIGGERNAME);
+ mi = rpmdbNewIterator(rpmtsGetRdb(ts), RPMDBI_PACKAGES);
+ files = rpmteFiles(te);
+
+ /* Iterate over file triggers in rpmdb */
+ while ((rpmdbIndexIteratorNext(ii, &key, &keylen)) == 0) {
+ /* Check if file trigger matches any file in this te */
+ rpmfi fi = rpmfilesFindPrefix(files, key);
+ if (rpmfiFC(fi) > 0) {
+ /* If yes then store it */
+ rpmdbAppendIterator(mi, rpmdbIndexIteratorPkgOffsets(ii),
+ rpmdbIndexIteratorNumPkgs(ii));
+ }
+ rpmfiFree(fi);
+ }
+ rpmdbIndexIteratorFree(ii);
+
+ if (rpmdbGetIteratorCount(mi)) {
+ /* Filter triggers and save only trans postun triggers into ts */
+ while((trigH = rpmdbNextIterator(mi)) != NULL) {
+ rpmdsTriggers = rpmdsNew(trigH, RPMTAG_TRANSFILETRIGGERNAME, 0);
+ while ((rpmdsTrigger = rpmdsFilterTi(rpmdsTriggers, tix))) {
+ if ((rpmdsNext(rpmdsTrigger) >= 0) &&
+ (rpmdsFlags(rpmdsTrigger) & RPMSENSE_TRIGGERPOSTUN)) {
+ struct rpmtd_s priorities;
+
+ headerGet(trigH, RPMTAG_TRANSFILETRIGGERPRIORITIES,
+ &priorities, HEADERGET_MINMEM);
+ rpmtdSetIndex(&priorities, tix);
+ rpmtriggersAdd(ts->trigs2run, rpmdbGetIteratorOffset(mi),
+ tix, *rpmtdGetUint32(&priorities));
+ }
+ rpmdsFree(rpmdsTrigger);
+ tix++;
+ }
+ rpmdsFree(rpmdsTriggers);
+ }
+ }
+ rpmdbFreeIterator(mi);
+}
+
+int runPostUnTransFileTrigs(rpmts ts)
+{
+ int i;
+ Header trigH;
+ struct rpmtd_s installPrefixes;
+ rpmScript script;
+ rpmtriggers trigs = ts->trigs2run;
+ int nerrors = 0;
+
+ if (rpmChrootIn() != 0)
+ return -1;
+
+ rpmtriggersSortAndUniq(trigs);
+ /* Iterate over stored triggers */
+ for (i = 0; i < trigs->count; i++) {
+ /* Get header containing trigger script */
+ trigH = rpmdbGetHeaderAt(rpmtsGetRdb(ts),
+ trigs->triggerInfo[i].hdrNum);
+
+ /* Maybe package whith this trigger is already uninstalled */
+ if (trigH == NULL)
+ continue;
+
+ /* Prepare and run script */
+ script = rpmScriptFromTriggerTag(trigH, RPMSENSE_TRIGGERPOSTUN,
+ RPMSCRIPT_TRANSFILETRIGGER, trigs->triggerInfo[i].tix);
+
+ headerGet(trigH, RPMTAG_INSTPREFIXES, &installPrefixes,
+ HEADERGET_ALLOC|HEADERGET_ARGV);
+
+ nerrors += runScript(ts, NULL, installPrefixes.data, script, 0, 0);
+ rpmtdFreeData(&installPrefixes);
+ rpmScriptFree(script);
+ headerFree(trigH);
+ }
+
+ rpmChrootOut();
+
+ return nerrors;
+}
+
+/*
+ * Get files from next package from match iterator. If files are
+ * available in memory then don't read them from rpmdb.
+ */
+static rpmfiles rpmtsNextFiles(rpmts ts, rpmdbMatchIterator mi)
+{
+ Header h;
+ rpmte *te;
+ rpmfiles files = NULL;
+ rpmstrPool pool = ts->members->pool;
+ int ix;
+ unsigned int offset;
+
+ ix = rpmdbGetIteratorIndex(mi);
+ if (ix < rpmdbGetIteratorCount(mi)) {
+ offset = rpmdbGetIteratorOffsetFor(mi, ix);
+ if (packageHashGetEntry(ts->members->removedPackages, offset,
+ &te, NULL, NULL)) {
+ /* Files are available in memory */
+ files = rpmteFiles(te[0]);
+ }
+
+ if (packageHashGetEntry(ts->members->installedPackages, offset,
+ &te, NULL, NULL)) {
+ /* Files are available in memory */
+ files = rpmteFiles(te[0]);
+ }
+ }
+
+ if (files) {
+ rpmdbSetIteratorIndex(mi, ix + 1);
+ } else {
+ /* Files are not available in memory. Read them from rpmdb */
+ h = rpmdbNextIterator(mi);
+ if (h) {
+ files = rpmfilesNew(pool, h, RPMTAG_BASENAMES,
+ RPMFI_FLAGS_ONLY_FILENAMES);
+ }
+ }
+
+ return files;
+}
+
+
+typedef struct matchFilesIter_s {
+ rpmts ts;
+ rpmds rpmdsTrigger;
+ rpmfiles files;
+ rpmfi fi;
+ const char *pfx;
+ rpmdbMatchIterator pi;
+ packageHash tranPkgs;
+} *matchFilesIter;
+
+static matchFilesIter matchFilesIterator(rpmds trigger, rpmfiles files)
+{
+ matchFilesIter mfi = xcalloc(1, sizeof(*mfi));
+ rpmdsInit(trigger);
+ mfi->rpmdsTrigger = trigger;
+ mfi->files = rpmfilesLink(files);
+ return mfi;
+}
+
+static matchFilesIter matchDBFilesIterator(rpmds trigger, rpmts ts,
+ int inTransaction)
+{
+ matchFilesIter mfi = xcalloc(1, sizeof(*mfi));
+ rpmsenseFlags sense;
+
+ rpmdsSetIx(trigger, 0);
+ sense = rpmdsFlags(trigger);
+ rpmdsInit(trigger);
+
+ mfi->rpmdsTrigger = trigger;
+ mfi->ts = ts;
+
+ /* If inTransaction is set then filter out packages that aren't in transaction */
+ if (inTransaction) {
+ if (sense & RPMSENSE_TRIGGERIN)
+ mfi->tranPkgs = ts->members->installedPackages;
+ else
+ mfi->tranPkgs = ts->members->removedPackages;
+ }
+ return mfi;
+}
+
+static const char *matchFilesNext(matchFilesIter mfi)
+{
+ const char *matchFile = NULL;
+ int fx = 0;
+
+ /* Decide if we iterate over given files (mfi->files) */
+ if (!mfi->ts)
+ do {
+ /* Get next file from mfi->fi */
+ rpmfiNext(mfi->fi);
+ matchFile = rpmfiFN(mfi->fi);
+ if (strlen(matchFile))
+ break;
+ matchFile = NULL;
+
+ /* If we are done with current mfi->fi, create mfi->fi for next prefix */
+ fx = rpmdsNext(mfi->rpmdsTrigger);
+ mfi->pfx = rpmdsN(mfi->rpmdsTrigger);
+ rpmfiFree(mfi->fi);
+ mfi->fi = rpmfilesFindPrefix(mfi->files, mfi->pfx);
+
+ } while (fx >= 0);
+ /* or we iterate over files in rpmdb */
+ else
+ do {
+ rpmfiNext(mfi->fi);
+ matchFile = rpmfiFN(mfi->fi);
+ if (strlen(matchFile))
+ break;
+ matchFile = NULL;
+
+ /* If we are done with current mfi->fi, create mfi->fi for next package */
+ rpmfilesFree(mfi->files);
+ rpmfiFree(mfi->fi);
+ mfi->files = rpmtsNextFiles(mfi->ts, mfi->pi);
+ mfi->fi = rpmfilesFindPrefix(mfi->files, mfi->pfx);
+ if (mfi->files)
+ continue;
+
+ /* If we are done with all packages, go through packages with new prefix */
+ fx = rpmdsNext(mfi->rpmdsTrigger);
+ mfi->pfx = rpmdsN(mfi->rpmdsTrigger);
+ rpmdbFreeIterator(mfi->pi);
+ mfi->pi = rpmdbInitPrefixIterator(rpmtsGetRdb(mfi->ts),
+ RPMDBI_DIRNAMES, mfi->pfx, 0);
+
+ rpmdbFilterIterator(mfi->pi, mfi->tranPkgs, 0);
+
+ } while (fx >= 0);
+
+
+ return matchFile;
+}
+
+static int matchFilesEmpty(matchFilesIter mfi)
+{
+ const char *matchFile;
+
+ /* Try to get the first file */
+ matchFile = matchFilesNext(mfi);
+
+ /* Rewind back this file */
+ rpmfiInit(mfi->fi, 0);
+
+ if (matchFile)
+ /* We have at least one file so iterator is not empty */
+ return 0;
+ else
+ /* No file in iterator */
+ return 1;
+}
+
+static matchFilesIter matchFilesIteratorFree(matchFilesIter mfi)
+{
+ rpmfiFree(mfi->fi);
+ rpmfilesFree(mfi->files);
+ rpmdbFreeIterator(mfi->pi);
+ free(mfi);
+ return NULL;
+}
+
+/*
+ * Run all file triggers in header h
+ * @param searchMode 0 match trigger prefixes against files in te
+ * 1 match trigger prefixes against files in whole ts
+ * 2 match trigger prefixes against files in whole
+ * rpmdb
+ */
+static int runHandleTriggersInPkg(rpmts ts, rpmte te, Header h,
+ rpmsenseFlags sense, rpmscriptTriggerModes tm,
+ int searchMode, int ti)
+{
+ int nerrors = 0;
+ rpmds rpmdsTriggers, rpmdsTrigger;
+ rpmfiles files = NULL;
+ matchFilesIter mfi = NULL;
+ rpmScript script;
+ struct rpmtd_s installPrefixes;
+ char *(*inputFunc)(void *);
+
+ rpmdsTriggers = rpmdsNew(h, triggerDsTag(tm), 0);
+ rpmdsTrigger = rpmdsFilterTi(rpmdsTriggers, ti);
+ /*
+ * Now rpmdsTrigger contains all dependencies belonging to one trigger
+ * with trigger index tix. Have a look at the first one to check flags.
+ */
+ if ((rpmdsNext(rpmdsTrigger) >= 0) &&
+ (rpmdsFlags(rpmdsTrigger) & sense)) {
+
+ switch (searchMode) {
+ case 0:
+ /* Create iterator over files in te that this trigger matches */
+ files = rpmteFiles(te);
+ mfi = matchFilesIterator(rpmdsTrigger, files);
+ break;
+ case 1:
+ /* Create iterator over files in ts that this trigger matches */
+ mfi = matchDBFilesIterator(rpmdsTrigger, ts, 1);
+ break;
+ case 2:
+ /* Create iterator over files in whole rpmd that this trigger matches */
+ mfi = matchDBFilesIterator(rpmdsTrigger, ts, 0);
+ break;
+ }
+
+ /* If this trigger matches any file then run trigger script */
+ if (!matchFilesEmpty(mfi)) {
+ script = rpmScriptFromTriggerTag(h, triggertag(sense), tm, ti);
+
+ headerGet(h, RPMTAG_INSTPREFIXES, &installPrefixes,
+ HEADERGET_ALLOC|HEADERGET_ARGV);
+
+
+ /*
+ * As input function set function to get next file from
+ * matching file iterator. As parameter for this function
+ * set matching file iterator. Input function will be called
+ * during execution of trigger script in order to get data
+ * that will be passed as stdin to trigger script. To get
+ * these data from lua script function rpm.input() can be used.
+ */
+ inputFunc = (char *(*)(void *)) matchFilesNext;
+ rpmScriptSetNextFileFunc(script, inputFunc, mfi);
+
+ nerrors += runScript(ts, te, installPrefixes.data,
+ script, 0, 0);
+ rpmtdFreeData(&installPrefixes);
+ rpmScriptFree(script);
+ }
+ rpmfilesFree(files);
+ matchFilesIteratorFree(mfi);
+ }
+ rpmdsFree(rpmdsTrigger);
+ rpmdsFree(rpmdsTriggers);
+
+ return nerrors;
+}
+
+/* Return true if any file in package (te) starts with pfx */
+static int matchFilesInPkg(rpmts ts, rpmte te, const char *pfx,
+ rpmsenseFlags sense)
+{
+ int rc;
+ rpmfiles files = rpmteFiles(te);
+ rpmfi fi = rpmfilesFindPrefix(files, pfx);
+
+ rc = (fi != NULL);
+ rpmfilesFree(files);
+ rpmfiFree(fi);
+ return rc;
+}
+
+/* Return true if any added/removed file in ts starts with pfx */
+static int matchFilesInTran(rpmts ts, rpmte te, const char *pfx,
+ rpmsenseFlags sense)
+{
+ int rc = 1;
+ rpmdbMatchIterator pi;
+
+ /* Get all files from rpmdb starting with pfx */
+ pi = rpmdbInitPrefixIterator(rpmtsGetRdb(ts), RPMDBI_DIRNAMES, pfx, 0);
+
+ if (sense & RPMSENSE_TRIGGERIN)
+ /* Leave in pi only files installed in ts */
+ rpmdbFilterIterator(pi, ts->members->installedPackages, 0);
+ else
+ /* Leave in pi only files removed in ts */
+ rpmdbFilterIterator(pi, ts->members->removedPackages, 0);
+
+ rc = rpmdbGetIteratorCount(pi);
+ rpmdbFreeIterator(pi);
+
+ return rc;
+}
+
+rpmRC runFileTriggers(rpmts ts, rpmte te, rpmsenseFlags sense,
+ rpmscriptTriggerModes tm, int priorityClass)
+{
+ int nerrors = 0, i;
+ rpmdbIndexIterator ii;
+ const void *key;
+ char *pfx;
+ size_t keylen;
+ Header trigH;
+ int (*matchFunc)(rpmts, rpmte, const char*, rpmsenseFlags sense);
+ rpmTagVal priorityTag;
+ rpmtriggers triggers = rpmtriggersCreate(10);
+
+ /* Decide if we match triggers against files in te or in whole ts */
+ if (tm == RPMSCRIPT_FILETRIGGER) {
+ matchFunc = matchFilesInPkg;
+ priorityTag = RPMTAG_FILETRIGGERPRIORITIES;
+ } else {
+ matchFunc = matchFilesInTran;
+ priorityTag = RPMTAG_TRANSFILETRIGGERPRIORITIES;
+ }
+
+ ii = rpmdbIndexIteratorInit(rpmtsGetRdb(ts), triggerDsTag(tm));
+
+ /* Loop over all file triggers in rpmdb */
+ while ((rpmdbIndexIteratorNext(ii, &key, &keylen)) == 0) {
+ pfx = xmalloc(keylen + 1);
+ memcpy(pfx, key, keylen);
+ pfx[keylen] = '\0';
+
+ /* Check if file trigger is fired by any file in ts/te */
+ if (matchFunc(ts, te, pfx, sense)) {
+ for (i = 0; i < rpmdbIndexIteratorNumPkgs(ii); i++) {
+ struct rpmtd_s priorities;
+ unsigned int priority;
+ unsigned int offset = rpmdbIndexIteratorPkgOffset(ii, i);
+ unsigned int tix = rpmdbIndexIteratorTagNum(ii, i);
+
+ /*
+ * Don't handle transaction triggers installed in current
+ * transaction to avoid executing the same script two times.
+ * These triggers are handled in runImmedFileTriggers().
+ */
+ if (tm == RPMSCRIPT_TRANSFILETRIGGER &&
+ (packageHashHasEntry(ts->members->removedPackages, offset) ||
+ packageHashHasEntry(ts->members->installedPackages, offset)))
+ continue;
+
+ /* Get priority of trigger from header */
+ trigH = rpmdbGetHeaderAt(rpmtsGetRdb(ts), offset);
+ headerGet(trigH, priorityTag, &priorities, HEADERGET_MINMEM);
+ rpmtdSetIndex(&priorities, tix);
+ priority = *rpmtdGetUint32(&priorities);
+ headerFree(trigH);
+
+ /* Store file trigger in array */
+ rpmtriggersAdd(triggers, offset, tix, priority);
+ }
+ }
+ free(pfx);
+ }
+ rpmdbIndexIteratorFree(ii);
+
+ /* Sort triggers by priority, offset, trigger index */
+ rpmtriggersSortAndUniq(triggers);
+
+ if (rpmChrootIn() != 0) {
+ rpmtriggersFree(triggers);
+ return RPMRC_FAIL;
+ }
+
+ /* Handle stored triggers */
+ for (i = 0; i < triggers->count; i++) {
+ if (priorityClass == 1) {
+ if (triggers->triggerInfo[i].priority < TRIGGER_PRIORITY_BOUND)
+ continue;
+ } else if (priorityClass == 2) {
+ if (triggers->triggerInfo[i].priority >= TRIGGER_PRIORITY_BOUND)
+ continue;
+ }
+
+ trigH = rpmdbGetHeaderAt(rpmtsGetRdb(ts), triggers->triggerInfo[i].hdrNum);
+ if (tm == RPMSCRIPT_FILETRIGGER)
+ nerrors += runHandleTriggersInPkg(ts, te, trigH, sense, tm, 0,
+ triggers->triggerInfo[i].tix);
+ else
+ nerrors += runHandleTriggersInPkg(ts, te, trigH, sense, tm, 1,
+ triggers->triggerInfo[i].tix);
+ headerFree(trigH);
+ }
+ rpmtriggersFree(triggers);
+ /* XXX an error here would require a full abort */
+ (void) rpmChrootOut();
+
+ return (nerrors == 0) ? RPMRC_OK : RPMRC_FAIL;
+}
+
+rpmRC runImmedFileTriggers(rpmts ts, rpmte te, rpmsenseFlags sense,
+ rpmscriptTriggerModes tm, int priorityClass)
+{
+ int nerrors = 0;
+ int triggersCount, i;
+ Header trigH = rpmteHeader(te);
+ struct rpmtd_s priorities;
+ rpmTagVal priorityTag;
+ rpmtriggers triggers;
+
+ if (tm == RPMSCRIPT_FILETRIGGER) {
+ priorityTag = RPMTAG_FILETRIGGERPRIORITIES;
+ } else {
+ priorityTag = RPMTAG_TRANSFILETRIGGERPRIORITIES;
+ }
+ headerGet(trigH, priorityTag, &priorities, HEADERGET_MINMEM);
+
+ triggersCount = rpmtdCount(&priorities);
+ triggers = rpmtriggersCreate(triggersCount);
+
+ for (i = 0; i < triggersCount; i++) {
+ rpmtdSetIndex(&priorities, i);
+ /* Offset is not important, all triggers are from the same package */
+ rpmtriggersAdd(triggers, 0, i, *rpmtdGetUint32(&priorities));
+ }
+
+ /* Sort triggers by priority, offset, trigger index */
+ rpmtriggersSortAndUniq(triggers);
+
+ for (i = 0; i < triggersCount; i++) {
+ if (priorityClass == 1) {
+ if (triggers->triggerInfo[i].priority < TRIGGER_PRIORITY_BOUND)
+ continue;
+ } else if (priorityClass == 2) {
+ if (triggers->triggerInfo[i].priority >= TRIGGER_PRIORITY_BOUND)
+ continue;
+ }
+
+ nerrors += runHandleTriggersInPkg(ts, te, trigH, sense, tm, 2,
+ triggers->triggerInfo[i].tix);
+ }
+ rpmtriggersFree(triggers);
+ headerFree(trigH);
+
+ return (nerrors == 0) ? RPMRC_OK : RPMRC_FAIL;
+}
diff --git a/lib/rpmtriggers.h b/lib/rpmtriggers.h
new file mode 100644
index 00000000..bca79b8f
--- /dev/null
+++ b/lib/rpmtriggers.h
@@ -0,0 +1,83 @@
+#ifndef _RPMTRIGGERS_H
+#define _RPMTRIGGERS_H
+
+#include <rpm/rpmutil.h>
+#include "lib/rpmscript.h"
+
+struct triggerInfo_s {
+ unsigned int hdrNum;
+ unsigned int tix;
+ unsigned int priority;
+};
+
+typedef struct rpmtriggers_s {
+ struct triggerInfo_s *triggerInfo;
+ int count;
+ int alloced;
+} *rpmtriggers;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+RPM_GNUC_INTERNAL
+rpmtriggers rpmtriggersCreate(unsigned int hint);
+
+RPM_GNUC_INTERNAL
+rpmtriggers rpmtriggersFree(rpmtriggers triggers);
+
+/*
+ * Prepare post trans uninstall file triggers. After transcation uninstalled
+ * files are not saved anywhere. So we need during uninstalation of every
+ * package, in time when the files to uninstall are still available,
+ * to determine and store triggers that should be set off after transaction.
+ */
+RPM_GNUC_INTERNAL
+void rpmtriggersPrepPostUnTransFileTrigs(rpmts ts, rpmte te);
+
+/* Run triggers stored in ts */
+RPM_GNUC_INTERNAL
+int runPostUnTransFileTrigs(rpmts ts);
+
+/*
+ * It runs file triggers in other package(s) this package/transaction sets off.
+ * If tm is RPMSCRIPT_FILETRIGGERSCRIPT then it runs file triggers that are
+ * fired by files in transaction entry. If tm is RPMSCRIPT_TRANSFILETRIGGERSCRIPT
+ * then it runs file triggers that are fired by all files in transaction set.
+ * In that case te can be NULL.
+ *
+ * @param ts transaction set
+ * @param te transaction entry
+ * @param sense defines which triggers should be set off (triggerin,
+ * triggerun, triggerpostun)
+ * @param triggerClass 1 to run triggers that should be executed before
+ * standard scriptlets
+ * 2 to run triggers that should be executed after
+ * standard scriptlets
+ * 0 to run all triggers
+ * @param tm trigger mode, (filetrigger/transfiletrigger)
+ */
+RPM_GNUC_INTERNAL
+rpmRC runFileTriggers(rpmts ts, rpmte te, rpmsenseFlags sense,
+ rpmscriptTriggerModes tm, int upper);
+
+/* Run file triggers in this te other package(s) set off.
+ * @param ts transaction set
+ * @param te transaction entry
+ * @param sense defines which triggers should be set off (triggerin,
+ * triggerun, triggerpostun)
+ * @param triggerClass 1 to run triggers that should be executed before
+ * standard scriptlets
+ * 2 to run triggers that should be executed after
+ * standard scriptlets
+ * 0 to run all triggers
+ * @param tm trigger mode, (filetrigger/transfiletrigger)
+ */
+rpmRC runImmedFileTriggers(rpmts ts, rpmte te, rpmsenseFlags sense,
+ rpmscriptTriggerModes tm, int upper);
+#ifdef __cplusplus
+}
+#endif
+#endif /* _RPMTRIGGERS_H */
+
diff --git a/lib/rpmts.c b/lib/rpmts.c
index a3b4ed26..3f8f8808 100644
--- a/lib/rpmts.c
+++ b/lib/rpmts.c
@@ -28,6 +28,7 @@
#include "lib/rpmts_internal.h"
#include "lib/rpmte_internal.h"
#include "lib/misc.h"
+#include "lib/rpmtriggers.h"
#include "debug.h"
@@ -274,7 +275,10 @@ static int loadKeyringFromFiles(rpmts ts)
}
for (char **f = files; *f; f++) {
+ int subkeysCount, i;
+ rpmPubkey *subkeys;
rpmPubkey key = rpmPubkeyRead(*f);
+
if (!key) {
rpmlog(RPMLOG_ERR, _("%s: reading of public key failed.\n"), *f);
continue;
@@ -283,7 +287,22 @@ static int loadKeyringFromFiles(rpmts ts)
nkeys++;
rpmlog(RPMLOG_DEBUG, "added key %s to keyring\n", *f);
}
+ subkeys = rpmGetSubkeys(key, &subkeysCount);
rpmPubkeyFree(key);
+
+ for (i = 0; i < subkeysCount; i++) {
+ rpmPubkey subkey = subkeys[i];
+
+ if (rpmKeyringAddKey(ts->keyring, subkey) == 0) {
+ rpmlog(RPMLOG_DEBUG,
+ "added subkey %d of main key %s to keyring\n",
+ i, *f);
+
+ nkeys++;
+ }
+ rpmPubkeyFree(subkey);
+ }
+ free(subkeys);
}
exit:
free(pkpath);
@@ -312,6 +331,9 @@ static int loadKeyringFromDB(rpmts ts)
if (rpmBase64Decode(key, (void **) &pkt, &pktlen) == 0) {
rpmPubkey key = rpmPubkeyNew(pkt, pktlen);
+ int subkeysCount, i;
+ rpmPubkey *subkeys = rpmGetSubkeys(key, &subkeysCount);
+
if (rpmKeyringAddKey(ts->keyring, key) == 0) {
char *nvr = headerGetAsString(h, RPMTAG_NVR);
rpmlog(RPMLOG_DEBUG, "added key %s to keyring\n", nvr);
@@ -319,6 +341,22 @@ static int loadKeyringFromDB(rpmts ts)
nkeys++;
}
rpmPubkeyFree(key);
+
+ for (i = 0; i < subkeysCount; i++) {
+ rpmPubkey subkey = subkeys[i];
+
+ if (rpmKeyringAddKey(ts->keyring, subkey) == 0) {
+ char *nvr = headerGetAsString(h, RPMTAG_NVR);
+ rpmlog(RPMLOG_DEBUG,
+ "added subkey %d of main key %s to keyring\n",
+ i, nvr);
+
+ free(nvr);
+ nkeys++;
+ }
+ rpmPubkeyFree(subkey);
+ }
+ free(subkeys);
free(pkt);
}
}
@@ -344,7 +382,8 @@ static void loadKeyring(rpmts ts)
}
/* Build pubkey header. */
-static int makePubkeyHeader(rpmts ts, rpmPubkey key, Header * hdrp)
+static int makePubkeyHeader(rpmts ts, rpmPubkey key, rpmPubkey *subkeys,
+ int subkeysCount, Header * hdrp)
{
Header h = headerNew();
const char * afmt = "%{pubkeys:armor}";
@@ -365,6 +404,7 @@ static int makePubkeyHeader(rpmts ts, rpmPubkey key, Header * hdrp)
char * r = NULL;
char * evr = NULL;
int rc = -1;
+ int i;
if ((enc = rpmPubkeyBase64(key)) == NULL)
goto exit;
@@ -412,6 +452,27 @@ static int makePubkeyHeader(rpmts ts, rpmPubkey key, Header * hdrp)
headerPutUint32(h, RPMTAG_BUILDTIME, &keytime, 1);
headerPutString(h, RPMTAG_SOURCERPM, "(none)");
+ for (i = 0; i < subkeysCount; i++) {
+ char *v, *r, *n, *evr;
+ pgpDigParams pgpkey;
+
+ pgpkey = rpmPubkeyPgpDigParams(subkeys[i]);
+ v = pgpHexStr(pgpkey->signid, sizeof(pgpkey->signid));
+ r = pgpHexStr(pgpkey->time, sizeof(pgpkey->time));
+
+ rasprintf(&n, "gpg(%s)", v+8);
+ rasprintf(&evr, "%d:%s-%s", pubp->version, v, r);
+
+ headerPutString(h, RPMTAG_PROVIDENAME, n);
+ headerPutString(h, RPMTAG_PROVIDEVERSION, evr);
+ headerPutUint32(h, RPMTAG_PROVIDEFLAGS, &pflags, 1);
+
+ free(v);
+ free(r);
+ free(n);
+ free(evr);
+ }
+
/* Reload the lot to immutable region and stomp sha1 digest on it */
h = headerReload(h, RPMTAG_HEADERIMMUTABLE);
if (h != NULL) {
@@ -464,10 +525,12 @@ rpmRC rpmtsImportPubkey(const rpmts ts, const unsigned char * pkt, size_t pktlen
Header h = NULL;
rpmRC rc = RPMRC_FAIL; /* assume failure */
rpmPubkey pubkey = NULL;
+ rpmPubkey *subkeys = NULL;
+ int subkeysCount = 0;
rpmVSFlags oflags = rpmtsVSFlags(ts);
rpmKeyring keyring;
rpmtxn txn = rpmtxnBegin(ts, RPMTXN_WRITE);
- int krc;
+ int krc, i;
if (txn == NULL)
return rc;
@@ -479,6 +542,10 @@ rpmRC rpmtsImportPubkey(const rpmts ts, const unsigned char * pkt, size_t pktlen
if ((pubkey = rpmPubkeyNew(pkt, pktlen)) == NULL)
goto exit;
+
+ if ((subkeys = rpmGetSubkeys(pubkey, &subkeysCount)) == NULL)
+ goto exit;
+
krc = rpmKeyringAddKey(keyring, pubkey);
if (krc < 0)
goto exit;
@@ -487,7 +554,7 @@ rpmRC rpmtsImportPubkey(const rpmts ts, const unsigned char * pkt, size_t pktlen
if (krc == 0) {
rpm_tid_t tid = rpmtsGetTid(ts);
- if (makePubkeyHeader(ts, pubkey, &h) != 0)
+ if (makePubkeyHeader(ts, pubkey, subkeys, subkeysCount, &h) != 0)
goto exit;
headerPutUint32(h, RPMTAG_INSTALLTIME, &tid, 1);
@@ -504,6 +571,10 @@ exit:
/* Clean up. */
headerFree(h);
rpmPubkeyFree(pubkey);
+ for (i = 0; i < subkeysCount; i++)
+ rpmPubkeyFree(subkeys[i]);
+ free(subkeys);
+
rpmKeyringFree(keyring);
rpmtxnEnd(txn);
return rc;
@@ -608,7 +679,7 @@ void rpmtsEmpty(rpmts ts)
tsmem->orderCount = 0;
/* The pool cannot be emptied, there might be references to its contents */
tsmem->pool = rpmstrPoolFree(tsmem->pool);
- removedHashEmpty(tsmem->removedPackages);
+ packageHashEmpty(tsmem->removedPackages);
return;
}
@@ -657,7 +728,8 @@ rpmts rpmtsFree(rpmts ts)
(void) rpmtsCloseDB(ts);
- tsmem->removedPackages = removedHashFree(tsmem->removedPackages);
+ tsmem->removedPackages = packageHashFree(tsmem->removedPackages);
+ tsmem->installedPackages = packageHashFree(tsmem->installedPackages);
tsmem->order = _free(tsmem->order);
ts->members = _free(ts->members);
@@ -677,6 +749,8 @@ rpmts rpmtsFree(rpmts ts)
ts->plugins = rpmpluginsFree(ts->plugins);
+ rpmtriggersFree(ts->trigs2run);
+
if (_rpmts_stats)
rpmtsPrintStats(ts);
@@ -965,7 +1039,8 @@ rpmts rpmtsCreate(void)
tsmem->pool = NULL;
tsmem->delta = 5;
tsmem->addedPackages = NULL;
- tsmem->removedPackages = removedHashCreate(128, uintId, uintCmp, NULL, NULL);
+ tsmem->removedPackages = packageHashCreate(128, uintId, uintCmp, NULL, NULL);
+ tsmem->installedPackages = packageHashCreate(128, uintId, uintCmp, NULL, NULL);
tsmem->orderAlloced = 0;
tsmem->orderCount = 0;
tsmem->order = NULL;
@@ -978,6 +1053,8 @@ rpmts rpmtsCreate(void)
ts->plugins = NULL;
+ ts->trigs2run = rpmtriggersCreate(10);
+
return rpmtsLink(ts);
}
diff --git a/lib/rpmts_internal.h b/lib/rpmts_internal.h
index 0caa7cb1..6a30cc52 100644
--- a/lib/rpmts_internal.h
+++ b/lib/rpmts_internal.h
@@ -8,13 +8,16 @@
#include "lib/fprint.h"
#include "lib/rpmlock.h"
#include "lib/rpmdb_internal.h"
+#include "lib/rpmscript.h"
+#include "lib/rpmtriggers.h"
typedef struct diskspaceInfo_s * rpmDiskSpaceInfo;
/* Transaction set elements information */
typedef struct tsMembers_s {
rpmstrPool pool; /*!< Global string pool */
- removedHash removedPackages; /*!< Set of packages being removed. */
+ packageHash removedPackages; /*!< Set of packages being removed. */
+ packageHash installedPackages; /*!< Set of installed packages */
rpmal addedPackages; /*!< Set of packages being installed. */
rpmds rpmlib; /*!< rpmlib() dependency set. */
@@ -24,6 +27,17 @@ typedef struct tsMembers_s {
int delta; /*!< Delta for reallocation. */
} * tsMembers;
+typedef struct tsTrigger_s {
+ unsigned int hdrNum;
+ int index;
+} tsTrigger;
+
+typedef struct tsTriggers_s {
+ tsTrigger *trigger;
+ int count;
+ int alloced;
+} tsTriggers;
+
/** \ingroup rpmts
* The set of packages to be installed/removed atomically.
*/
@@ -68,6 +82,8 @@ struct rpmts_s {
rpmPlugins plugins; /*!< Transaction plugins */
int nrefs; /*!< Reference count. */
+
+ rpmtriggers trigs2run; /*!< Transaction file triggers */
};
#ifdef __cplusplus
@@ -99,6 +115,11 @@ int rpmtsSolve(rpmts ts, rpmds key);
RPM_GNUC_INTERNAL
rpmRC rpmtsSetupTransactionPlugins(rpmts ts);
+
+RPM_GNUC_INTERNAL
+rpmRC runScript(rpmts ts, rpmte te, ARGV_const_t prefixes,
+ rpmScript script, int arg1, int arg2);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/signature.c b/lib/signature.c
index 037dc19c..9784c7b6 100644
--- a/lib/signature.c
+++ b/lib/signature.c
@@ -12,6 +12,7 @@
#include <rpm/rpmfileutil.h>
#include <rpm/rpmlog.h>
#include <rpm/rpmkeyring.h>
+#include <rpm/rpmmacro.h>
#include "lib/rpmlead.h"
#include "lib/signature.h"
@@ -19,6 +20,91 @@
#include "debug.h"
+rpmRC rpmSigInfoParse(rpmtd td, const char *origin,
+ struct sigtInfo_s *sinfo, pgpDigParams *sigp, char **msg)
+{
+ rpmRC rc = RPMRC_FAIL;
+ rpm_tagtype_t tagtype = 0;
+ rpm_count_t tagsize = 0;
+ pgpDigParams sig = NULL;
+
+ memset(sinfo, 0, sizeof(*sinfo));
+ switch (td->tag) {
+ case RPMSIGTAG_GPG:
+ case RPMSIGTAG_PGP5: /* XXX legacy */
+ case RPMSIGTAG_PGP:
+ sinfo->payload = 1;
+ /* fallthrough */
+ case RPMSIGTAG_RSA:
+ case RPMSIGTAG_DSA:
+ tagtype = RPM_BIN_TYPE;
+ sinfo->type = RPMSIG_SIGNATURE_TYPE;
+ break;
+ case RPMSIGTAG_SHA1:
+ tagsize = 41; /* includes trailing \0 */
+ tagtype = RPM_STRING_TYPE;
+ sinfo->hashalgo = PGPHASHALGO_SHA1;
+ sinfo->type = RPMSIG_DIGEST_TYPE;
+ break;
+ case RPMSIGTAG_MD5:
+ tagtype = RPM_BIN_TYPE;
+ tagsize = 16;
+ sinfo->hashalgo = PGPHASHALGO_MD5;
+ sinfo->type = RPMSIG_DIGEST_TYPE;
+ sinfo->payload = 1;
+ break;
+ case RPMSIGTAG_SIZE:
+ case RPMSIGTAG_PAYLOADSIZE:
+ tagsize = 4;
+ tagtype = RPM_INT32_TYPE;
+ sinfo->type = RPMSIG_OTHER_TYPE;
+ break;
+ case RPMSIGTAG_LONGSIZE:
+ case RPMSIGTAG_LONGARCHIVESIZE:
+ tagsize = 8;
+ tagtype = RPM_INT64_TYPE;
+ sinfo->type = RPMSIG_OTHER_TYPE;
+ break;
+ case RPMSIGTAG_RESERVEDSPACE:
+ tagtype = RPM_BIN_TYPE;
+ sinfo->type = RPMSIG_OTHER_TYPE;
+ break;
+ default:
+ /* anything unknown just falls through for now */
+ break;
+ }
+
+ if (tagsize && (td->flags & RPMTD_IMMUTABLE) && tagsize != td->size) {
+ rasprintf(msg, _("%s tag %u: BAD, invalid size %u"),
+ origin, td->tag, td->size);
+ goto exit;
+ }
+
+ if (tagtype && tagtype != td->type) {
+ rasprintf(msg, _("%s tag %u: BAD, invalid type %u"),
+ origin, td->tag, td->type);
+ goto exit;
+ }
+
+ if (sinfo->type == RPMSIG_SIGNATURE_TYPE) {
+ if (pgpPrtParams(td->data, td->count, PGPTAG_SIGNATURE, &sig)) {
+ rasprintf(msg, _("%s tag %u: BAD, invalid OpenPGP signature"),
+ origin, td->tag);
+ goto exit;
+ }
+ sinfo->hashalgo = pgpDigParamsAlgo(sig, PGPVAL_HASHALGO);
+ }
+
+ rc = RPMRC_OK;
+ if (sigp)
+ *sigp = sig;
+ else
+ pgpDigParamsFree(sig);
+
+exit:
+ return rc;
+}
+
/**
* Print package size.
* @todo rpmio: use fdSize rather than fstat(2) to get file size.
@@ -211,6 +297,92 @@ Header rpmFreeSignature(Header sigh)
return headerFree(sigh);
}
+rpmRC rpmGenerateSignature(char *SHA1, uint8_t *MD5, rpm_loff_t size,
+ rpm_loff_t payloadSize, FD_t fd)
+{
+ Header sig = NULL;
+ struct rpmtd_s td;
+ rpmRC rc = RPMRC_OK;
+ char *reservedSpace;
+ int spaceSize = 0;
+
+ /* Prepare signature */
+ sig = rpmNewSignature();
+
+ rpmtdReset(&td);
+ td.tag = RPMSIGTAG_SHA1;
+ td.count = 1;
+ td.type = RPM_STRING_TYPE;
+ td.data = SHA1;
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
+
+ rpmtdReset(&td);
+ td.tag = RPMSIGTAG_MD5;
+ td.count = 16;
+ td.type = RPM_BIN_TYPE;
+ td.data = MD5;
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
+
+ rpmtdReset(&td);
+ td.count = 1;
+ if (payloadSize < UINT32_MAX) {
+ rpm_off_t p = payloadSize;
+ rpm_off_t s = size;
+ td.type = RPM_INT32_TYPE;
+
+ td.tag = RPMSIGTAG_PAYLOADSIZE;
+ td.data = &p;
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
+
+ td.tag = RPMSIGTAG_SIZE;
+ td.data = &s;
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
+ } else {
+ rpm_loff_t p = payloadSize;
+ rpm_loff_t s = size;
+ td.type = RPM_INT64_TYPE;
+
+ td.tag = RPMSIGTAG_LONGARCHIVESIZE;
+ td.data = &p;
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
+
+ td.tag = RPMSIGTAG_LONGSIZE;
+ td.data = &s;
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
+ }
+
+ spaceSize = rpmExpandNumeric("%{__gpg_reserved_space}");
+ if(spaceSize > 0) {
+ reservedSpace = xcalloc(spaceSize, sizeof(char));
+ rpmtdReset(&td);
+ td.tag = RPMSIGTAG_RESERVEDSPACE;
+ td.count = spaceSize;
+ td.type = RPM_BIN_TYPE;
+ td.data = reservedSpace;
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
+ free(reservedSpace);
+ }
+
+ /* Reallocate the signature into one contiguous region. */
+ sig = headerReload(sig, RPMTAG_HEADERSIGNATURES);
+ if (sig == NULL) { /* XXX can't happen */
+ rpmlog(RPMLOG_ERR, _("Unable to reload signature header.\n"));
+ rc = RPMRC_FAIL;
+ goto exit;
+ }
+
+ /* Write the signature section into the package. */
+ if (rpmWriteSignature(fd, sig)) {
+ rc = RPMRC_FAIL;
+ goto exit;
+ }
+
+exit:
+ rpmFreeSignature(sig);
+ return rc;
+}
+
+
static const char * rpmSigString(rpmRC res)
{
const char * str;
@@ -225,74 +397,31 @@ static const char * rpmSigString(rpmRC res)
return str;
}
-static rpmRC
-verifyMD5Digest(rpmtd sigtd, DIGEST_CTX md5ctx, char **msg)
+static rpmRC verifyDigest(rpmtd sigtd, DIGEST_CTX digctx, const char *title,
+ char **msg)
{
rpmRC res = RPMRC_FAIL; /* assume failure */
- uint8_t * md5sum = NULL;
- size_t md5len = 0;
- char *md5;
- const char *title = _("MD5 digest:");
- *msg = NULL;
- DIGEST_CTX ctx = rpmDigestDup(md5ctx);
-
- if (ctx == NULL) {
- rasprintf(msg, "%s %s", title, rpmSigString(res));
- goto exit;
- }
-
- (void) rpmDigestFinal(ctx, (void **)&md5sum, &md5len, 0);
+ char * dig = NULL;
+ size_t diglen = 0;
+ char *pkgdig = rpmtdFormat(sigtd, RPMTD_FORMAT_STRING, NULL);
+ DIGEST_CTX ctx = rpmDigestDup(digctx);
- md5 = pgpHexStr(md5sum, md5len);
- if (md5len != sigtd->count || memcmp(md5sum, sigtd->data, md5len)) {
- char *hex = rpmtdFormat(sigtd, RPMTD_FORMAT_STRING, NULL);
- rasprintf(msg, "%s %s Expected(%s) != (%s)", title,
- rpmSigString(res), hex, md5);
- free(hex);
- } else {
- res = RPMRC_OK;
- rasprintf(msg, "%s %s (%s)", title, rpmSigString(res), md5);
- }
- free(md5);
-
-exit:
- md5sum = _free(md5sum);
- return res;
-}
-
-/**
- * Verify header immutable region SHA1 digest.
- * @retval msg verbose success/failure text
- * @param sha1ctx
- * @return RPMRC_OK on success
- */
-static rpmRC
-verifySHA1Digest(rpmtd sigtd, DIGEST_CTX sha1ctx, char **msg)
-{
- rpmRC res = RPMRC_FAIL; /* assume failure */
- char * SHA1 = NULL;
- const char *title = _("Header SHA1 digest:");
- const char *sig = sigtd->data;
- *msg = NULL;
- DIGEST_CTX ctx = rpmDigestDup(sha1ctx);
-
- if (ctx == NULL) {
+ if (rpmDigestFinal(ctx, (void **)&dig, &diglen, 1) || diglen == 0) {
rasprintf(msg, "%s %s", title, rpmSigString(res));
goto exit;
}
- (void) rpmDigestFinal(ctx, (void **)&SHA1, NULL, 1);
-
- if (SHA1 == NULL || !rstreq(SHA1, sig)) {
- rasprintf(msg, "%s %s Expected(%s) != (%s)", title,
- rpmSigString(res), sig, SHA1 ? SHA1 : "(nil)");
- } else {
+ if (strcmp(pkgdig, dig) == 0) {
res = RPMRC_OK;
- rasprintf(msg, "%s %s (%s)", title, rpmSigString(res), SHA1);
+ rasprintf(msg, "%s %s (%s)", title, rpmSigString(res), pkgdig);
+ } else {
+ rasprintf(msg, "%s: %s Expected(%s) != (%s)",
+ title, rpmSigString(res), pkgdig, dig);
}
exit:
- SHA1 = _free(SHA1);
+ free(dig);
+ free(pkgdig);
return res;
}
@@ -332,10 +461,10 @@ rpmVerifySignature(rpmKeyring keyring, rpmtd sigtd, pgpDigParams sig,
switch (sigtd->tag) {
case RPMSIGTAG_MD5:
- res = verifyMD5Digest(sigtd, ctx, &msg);
+ res = verifyDigest(sigtd, ctx, _("MD5 digest:"), &msg);
break;
case RPMSIGTAG_SHA1:
- res = verifySHA1Digest(sigtd, ctx, &msg);
+ res = verifyDigest(sigtd, ctx, _("Header SHA1 digest:"), &msg);
break;
case RPMSIGTAG_RSA:
case RPMSIGTAG_DSA:
diff --git a/lib/signature.h b/lib/signature.h
index 8fa83e38..7866e7be 100644
--- a/lib/signature.h
+++ b/lib/signature.h
@@ -15,6 +15,19 @@ typedef enum sigType_e {
RPMSIGTYPE_HEADERSIG= 5 /*!< Header style signature */
} sigType;
+enum {
+ RPMSIG_UNKNOWN_TYPE = 0,
+ RPMSIG_DIGEST_TYPE = 1,
+ RPMSIG_SIGNATURE_TYPE = 2,
+ RPMSIG_OTHER_TYPE = 3,
+};
+
+struct sigtInfo_s {
+ int hashalgo;
+ int payload;
+ int type;
+};
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -50,6 +63,7 @@ int rpmWriteSignature(FD_t fd, Header h);
* @param keyring keyring handle
* @param sigtd signature tag data container
* @param sig signature/pubkey parameters
+ * @param ctx digest context
* @retval result detailed text result of signature verification
* (malloc'd)
* @return result of signature verification
@@ -64,10 +78,20 @@ rpmRC rpmVerifySignature(rpmKeyring keyring, rpmtd sigtd, pgpDigParams sig,
*/
Header rpmFreeSignature(Header h);
-/* Dumb wrapper around pgpPrtParams() to log some error messages on failure */
+/** \ingroup signature
+ * Generate signature and write to file
+ * @param SHA1 SHA1 digest
+ * @param MD5 MD5 digest
+ * @param size size of header
+ * @param payloadSize size of archive
+ * @param fd output file
+ */
+rpmRC rpmGenerateSignature(char *SHA1, uint8_t *MD5, rpm_loff_t size,
+ rpm_loff_t payloadSize, FD_t fd);
+
RPM_GNUC_INTERNAL
-int parsePGPSig(rpmtd sigtd, const char *type,
- pgpDigParams *sig, char **msg);
+rpmRC rpmSigInfoParse(rpmtd td, const char *origin,
+ struct sigtInfo_s *sigt, pgpDigParams *sigp, char **msg);
#ifdef __cplusplus
}
diff --git a/lib/tagexts.c b/lib/tagexts.c
index 0d29c417..f72ff60f 100644
--- a/lib/tagexts.c
+++ b/lib/tagexts.c
@@ -191,28 +191,65 @@ exit:
return rc;
}
+typedef enum tMode_e {
+ NORMALTRIGGER = 0,
+ FILETRIGGER = 1,
+ TRANSFILETRIGGER = 2,
+} tMode;
+
/**
* Retrieve trigger info.
+ * @param mode type of trigger (see tMode_e)
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
-static int triggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
+static int triggercondsTagFor(tMode mode, Header h, rpmtd td,
+ headerGetFlags hgflags)
{
uint32_t * indices;
int i, j;
char ** conds;
struct rpmtd_s nametd, indextd, flagtd, versiontd, scripttd;
int hgeflags = HEADERGET_MINMEM;
+ rpmTagVal triggername, triggerindex, triggerflags;
+ rpmTagVal triggerversion, triggerscripts;
+
+ switch (mode) {
+ case NORMALTRIGGER:
+ triggername = RPMTAG_TRIGGERNAME;
+ triggerindex = RPMTAG_TRIGGERINDEX;
+ triggerflags = RPMTAG_TRIGGERFLAGS;
+ triggerversion = RPMTAG_TRIGGERVERSION;
+ triggerscripts = RPMTAG_TRIGGERSCRIPTS;
+ break;
+ case FILETRIGGER:
+ triggername = RPMTAG_FILETRIGGERNAME;
+ triggerindex = RPMTAG_FILETRIGGERINDEX;
+ triggerflags = RPMTAG_FILETRIGGERFLAGS;
+ triggerversion = RPMTAG_FILETRIGGERVERSION;
+ triggerscripts = RPMTAG_FILETRIGGERSCRIPTS;
+ break;
+ case TRANSFILETRIGGER:
+ triggername = RPMTAG_TRANSFILETRIGGERNAME;
+ triggerindex = RPMTAG_TRANSFILETRIGGERINDEX;
+ triggerflags = RPMTAG_TRANSFILETRIGGERFLAGS;
+ triggerversion = RPMTAG_TRANSFILETRIGGERVERSION;
+ triggerscripts = RPMTAG_TRANSFILETRIGGERSCRIPTS;
+ break;
+ default:
+ return 0;
+ }
- if (!headerGet(h, RPMTAG_TRIGGERNAME, &nametd, hgeflags)) {
+ if (!headerGet(h, triggername, &nametd, hgeflags)) {
return 0;
}
- headerGet(h, RPMTAG_TRIGGERINDEX, &indextd, hgeflags);
- headerGet(h, RPMTAG_TRIGGERFLAGS, &flagtd, hgeflags);
- headerGet(h, RPMTAG_TRIGGERVERSION, &versiontd, hgeflags);
- headerGet(h, RPMTAG_TRIGGERSCRIPTS, &scripttd, hgeflags);
+ headerGet(h, triggerindex, &indextd, hgeflags);
+ headerGet(h, triggerflags, &flagtd, hgeflags);
+ headerGet(h, triggerversion, &versiontd, hgeflags);
+ headerGet(h, triggerscripts, &scripttd, hgeflags);
td->type = RPM_STRING_ARRAY_TYPE;
td->flags = RPMTD_ALLOCED | RPMTD_PTR_ALLOCED;
@@ -261,24 +298,63 @@ static int triggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
return 1;
}
+static int triggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggercondsTagFor(NORMALTRIGGER, h, td, hgflags);
+}
+
+static int filetriggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggercondsTagFor(FILETRIGGER, h, td, hgflags);
+}
+
+static int transfiletriggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggercondsTagFor(TRANSFILETRIGGER, h, td, hgflags);
+}
+
/**
* Retrieve trigger type info.
+ * @param mode type of trigger (see tMode_e)
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
-static int triggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
+static int triggertypeTagFor(tMode mode, Header h, rpmtd td,
+ headerGetFlags hgflags)
{
int i;
char ** conds;
struct rpmtd_s indices, flags, scripts;
+ rpmTagVal triggerindex, triggerflags, triggerscripts;
- if (!headerGet(h, RPMTAG_TRIGGERINDEX, &indices, HEADERGET_MINMEM)) {
+ switch (mode) {
+ case NORMALTRIGGER:
+ triggerindex = RPMTAG_TRIGGERINDEX;
+ triggerflags = RPMTAG_TRIGGERFLAGS;
+ triggerscripts = RPMTAG_TRIGGERSCRIPTS;
+ break;
+ case FILETRIGGER:
+ triggerindex = RPMTAG_FILETRIGGERINDEX;
+ triggerflags = RPMTAG_FILETRIGGERFLAGS;
+ triggerscripts = RPMTAG_FILETRIGGERSCRIPTS;
+ break;
+ case TRANSFILETRIGGER:
+ triggerindex = RPMTAG_TRANSFILETRIGGERINDEX;
+ triggerflags = RPMTAG_TRANSFILETRIGGERFLAGS;
+ triggerscripts = RPMTAG_TRANSFILETRIGGERSCRIPTS;
+ break;
+ default:
+ return 0;
+ }
+
+ if (!headerGet(h, triggerindex, &indices, HEADERGET_MINMEM)) {
return 0;
}
- headerGet(h, RPMTAG_TRIGGERFLAGS, &flags, HEADERGET_MINMEM);
- headerGet(h, RPMTAG_TRIGGERSCRIPTS, &scripts, HEADERGET_MINMEM);
+ headerGet(h, triggerflags, &flags, HEADERGET_MINMEM);
+ headerGet(h, triggerscripts, &scripts, HEADERGET_MINMEM);
td->flags = RPMTD_ALLOCED | RPMTD_PTR_ALLOCED;
td->count = rpmtdCount(&scripts);
@@ -314,20 +390,38 @@ static int triggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
return 1;
}
+static int triggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggertypeTagFor(NORMALTRIGGER, h, td, hgflags);
+}
+
+static int filetriggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggertypeTagFor(FILETRIGGER, h, td, hgflags);
+}
+
+static int transfiletriggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggertypeTagFor(TRANSFILETRIGGER, h, td, hgflags);
+}
+
/**
* Retrieve installed file paths.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int instfilenamesTag(Header h, rpmtd td, headerGetFlags hgflags)
{
return fnTag(h, RPMTAG_BASENAMES, 1, td);
}
+
/**
* Retrieve file paths.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int filenamesTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -339,6 +433,7 @@ static int filenamesTag(Header h, rpmtd td, headerGetFlags hgflags)
* Retrieve original file paths (wrt relocation).
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int origfilenamesTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -389,6 +484,7 @@ static char *makeFClass(rpmfi fi)
* Retrieve/generate file classes.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int fileclassTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -419,6 +515,7 @@ static int fileclassTag(Header h, rpmtd td, headerGetFlags hgflags)
* Retrieve file provides.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int fileprovideTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -430,6 +527,7 @@ static int fileprovideTag(Header h, rpmtd td, headerGetFlags hgflags)
* Retrieve file requires.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int filerequireTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -451,6 +549,7 @@ static const char * const _macro_i18ndomains = "%{?_i18ndomains}";
* @param h header
* @param tag tag
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int i18nTag(Header h, rpmTag tag, rpmtd td, headerGetFlags hgflags)
@@ -515,6 +614,7 @@ static int i18nTag(Header h, rpmTag tag, rpmtd td, headerGetFlags hgflags)
* Retrieve summary text.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int summaryTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -526,6 +626,7 @@ static int summaryTag(Header h, rpmtd td, headerGetFlags hgflags)
* Retrieve description text.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int descriptionTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -537,6 +638,7 @@ static int descriptionTag(Header h, rpmtd td, headerGetFlags hgflags)
* Retrieve group text.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int groupTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -583,6 +685,7 @@ static int get64(Header h, rpmtd td, rpmTag newtag, rpmTag oldtag)
* Retrieve file sizes as 64bit regardless of how they're stored.
* @param h header
* @retval td tag data container
+ * @param hgflags header get flags
* @return 1 on success
*/
static int longfilesizesTag(Header h, rpmtd td, headerGetFlags hgflags)
@@ -859,7 +962,11 @@ static const struct headerTagFunc_s rpmHeaderTagExtensions[] = {
{ RPMTAG_FILEPROVIDE, fileprovideTag },
{ RPMTAG_FILEREQUIRE, filerequireTag },
{ RPMTAG_TRIGGERCONDS, triggercondsTag },
+ { RPMTAG_FILETRIGGERCONDS, filetriggercondsTag },
+ { RPMTAG_TRANSFILETRIGGERCONDS, transfiletriggercondsTag },
{ RPMTAG_TRIGGERTYPE, triggertypeTag },
+ { RPMTAG_FILETRIGGERTYPE, filetriggertypeTag },
+ { RPMTAG_TRANSFILETRIGGERTYPE, transfiletriggertypeTag },
{ RPMTAG_LONGFILESIZES, longfilesizesTag },
{ RPMTAG_LONGARCHIVESIZE, longarchivesizeTag },
{ RPMTAG_LONGSIZE, longsizeTag },
diff --git a/lib/tagtbl.C b/lib/tagtbl.C
index 483c263c..5dcf9e5d 100644
--- a/lib/tagtbl.C
+++ b/lib/tagtbl.C
@@ -27,6 +27,7 @@ static const struct headerTagTableEntry_s rpmTagTable[] = {
{ "RPMTAG_DISTURL", "Disturl", RPMTAG_DISTURL, RPM_STRING_TYPE, RPM_SCALAR_RETURN_TYPE, 0 },
{ "RPMTAG_DSAHEADER", "Dsaheader", RPMTAG_DSAHEADER, RPM_BIN_TYPE, RPM_SCALAR_RETURN_TYPE, 0 },
{ "RPMTAG_E", "E", RPMTAG_EPOCH, RPM_INT32_TYPE, RPM_SCALAR_RETURN_TYPE, 0 },
+ { "RPMTAG_ENCODING", "Encoding", RPMTAG_ENCODING, RPM_STRING_TYPE, RPM_SCALAR_RETURN_TYPE, 0 },
{ "RPMTAG_ENHANCEFLAGS", "Enhanceflags", RPMTAG_ENHANCEFLAGS, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_ENHANCENAME", "Enhancename", RPMTAG_ENHANCENAME, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_ENHANCENEVRS", "Enhancenevrs", RPMTAG_ENHANCENEVRS, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
@@ -61,8 +62,20 @@ static const struct headerTagTableEntry_s rpmTagTable[] = {
{ "RPMTAG_FILEPROVIDE", "Fileprovide", RPMTAG_FILEPROVIDE, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
{ "RPMTAG_FILERDEVS", "Filerdevs", RPMTAG_FILERDEVS, RPM_INT16_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_FILEREQUIRE", "Filerequire", RPMTAG_FILEREQUIRE, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
+ { "RPMTAG_FILESIGNATURELENGTH", "Filesignaturelength", RPMTAG_FILESIGNATURELENGTH, RPM_INT32_TYPE, RPM_SCALAR_RETURN_TYPE, 0 },
+ { "RPMTAG_FILESIGNATURES", "Filesignatures", RPMTAG_FILESIGNATURES, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_FILESIZES", "Filesizes", RPMTAG_FILESIZES, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_FILESTATES", "Filestates", RPMTAG_FILESTATES, RPM_CHAR_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_FILETRIGGERCONDS", "Filetriggerconds", RPMTAG_FILETRIGGERCONDS, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
+ { "RPMTAG_FILETRIGGERFLAGS", "Filetriggerflags", RPMTAG_FILETRIGGERFLAGS, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_FILETRIGGERINDEX", "Filetriggerindex", RPMTAG_FILETRIGGERINDEX, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_FILETRIGGERNAME", "Filetriggername", RPMTAG_FILETRIGGERNAME, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_FILETRIGGERPRIORITIES", "Filetriggerpriorities", RPMTAG_FILETRIGGERPRIORITIES, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_FILETRIGGERSCRIPTFLAGS", "Filetriggerscriptflags", RPMTAG_FILETRIGGERSCRIPTFLAGS, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_FILETRIGGERSCRIPTPROG", "Filetriggerscriptprog", RPMTAG_FILETRIGGERSCRIPTPROG, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_FILETRIGGERSCRIPTS", "Filetriggerscripts", RPMTAG_FILETRIGGERSCRIPTS, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_FILETRIGGERTYPE", "Filetriggertype", RPMTAG_FILETRIGGERTYPE, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
+ { "RPMTAG_FILETRIGGERVERSION", "Filetriggerversion", RPMTAG_FILETRIGGERVERSION, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_FILEUSERNAME", "Fileusername", RPMTAG_FILEUSERNAME, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_FILEVERIFYFLAGS", "Fileverifyflags", RPMTAG_FILEVERIFYFLAGS, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_FSCONTEXTS", "Fscontexts", RPMTAG_FSCONTEXTS, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
@@ -196,6 +209,16 @@ static const struct headerTagTableEntry_s rpmTagTable[] = {
{ "RPMTAG_SUPPLEMENTNEVRS", "Supplementnevrs", RPMTAG_SUPPLEMENTNEVRS, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
{ "RPMTAG_SUPPLEMENTS", "Supplements", RPMTAG_SUPPLEMENTNAME, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_SUPPLEMENTVERSION", "Supplementversion", RPMTAG_SUPPLEMENTVERSION, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_TRANSFILETRIGGERCONDS", "Transfiletriggerconds", RPMTAG_TRANSFILETRIGGERCONDS, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
+ { "RPMTAG_TRANSFILETRIGGERFLAGS", "Transfiletriggerflags", RPMTAG_TRANSFILETRIGGERFLAGS, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_TRANSFILETRIGGERINDEX", "Transfiletriggerindex", RPMTAG_TRANSFILETRIGGERINDEX, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_TRANSFILETRIGGERNAME", "Transfiletriggername", RPMTAG_TRANSFILETRIGGERNAME, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_TRANSFILETRIGGERPRIORITIES", "Transfiletriggerpriorities", RPMTAG_TRANSFILETRIGGERPRIORITIES, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS", "Transfiletriggerscriptflags", RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_TRANSFILETRIGGERSCRIPTPROG", "Transfiletriggerscriptprog", RPMTAG_TRANSFILETRIGGERSCRIPTPROG, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_TRANSFILETRIGGERSCRIPTS", "Transfiletriggerscripts", RPMTAG_TRANSFILETRIGGERSCRIPTS, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
+ { "RPMTAG_TRANSFILETRIGGERTYPE", "Transfiletriggertype", RPMTAG_TRANSFILETRIGGERTYPE, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
+ { "RPMTAG_TRANSFILETRIGGERVERSION", "Transfiletriggerversion", RPMTAG_TRANSFILETRIGGERVERSION, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_TRIGGERCONDS", "Triggerconds", RPMTAG_TRIGGERCONDS, RPM_STRING_ARRAY_TYPE, RPM_ARRAY_RETURN_TYPE, 1 },
{ "RPMTAG_TRIGGERFLAGS", "Triggerflags", RPMTAG_TRIGGERFLAGS, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
{ "RPMTAG_TRIGGERINDEX", "Triggerindex", RPMTAG_TRIGGERINDEX, RPM_INT32_TYPE, RPM_ARRAY_RETURN_TYPE, 0 },
diff --git a/lib/transaction.c b/lib/transaction.c
index 736f64d9..4f90782a 100644
--- a/lib/transaction.c
+++ b/lib/transaction.c
@@ -23,6 +23,7 @@
#include "lib/rpmte_internal.h" /* only internal apis */
#include "lib/rpmts_internal.h"
#include "rpmio/rpmhook.h"
+#include "lib/rpmtriggers.h"
#include "lib/rpmplugins.h"
@@ -379,9 +380,11 @@ static int handleColorConflict(rpmts ts,
* @param ts transaction set
* @param p current transaction element
* @param fi file info set
- * @param shared shared file info
- * @param sharedCount no. of shared elements
- * @param reportConflicts
+ * @param fx file index
+ * @param otherHeader header containing the matching file
+ * @param otherFi matching file info set
+ * @param ofx matching file index
+ * @param beingRemoved file being removed (installed otherwise)
*/
/* XXX only ts->{probs,rpmdb} modified */
static void handleInstInstalledFile(const rpmts ts, rpmte p, rpmfiles fi, int fx,
@@ -587,6 +590,9 @@ assert(otherFi != NULL);
if (!(oflags & RPMFILE_GHOST)) {
rpmfsSetAction(fs, i, FA_SKIP);
}
+ /* if the other file is color skipped then skip this file too */
+ } else if (oaction == FA_SKIPCOLOR) {
+ rpmfsSetAction(fs, i, FA_SKIPCOLOR);
}
}
@@ -651,7 +657,6 @@ assert(otherFi != NULL);
* @param tspool transaction string pool
* @param p current transaction element
* @param h installed header
- * @param ps problem set
*/
static void ensureOlder(rpmstrPool tspool, const rpmte p, const Header h)
{
@@ -743,7 +748,8 @@ static void skipEraseFiles(const rpmts ts, rpmfiles files, rpmfs fs)
/**
* Skip any files that do not match install policies.
* @param ts transaction set
- * @param fi file info set
+ * @param files file info set
+ * @param fs file states
*/
static void skipInstallFiles(const rpmts ts, rpmfiles files, rpmfs fs)
{
@@ -846,7 +852,8 @@ static void skipInstallFiles(const rpmts ts, rpmfiles files, rpmfs fs)
}
/* Skip (now empty) directories that had skipped files. */
- for (j = 0; j < dc; j++) {
+ /* Iterate over dirs in reversed order to solve subdirs at first */
+ for (j = dc - 1; j >= 0; j--) {
const char * dn, * bn;
size_t dnlen, bnlen;
@@ -887,6 +894,11 @@ static void skipInstallFiles(const rpmts ts, rpmfiles files, rpmfs fs)
continue;
rpmlog(RPMLOG_DEBUG, "excluding directory %s\n", dn);
rpmfsSetAction(fs, i, FA_SKIPNSTATE);
+ ix = rpmfiDX(fi);
+ /* Decrease count of files for parent directory */
+ drc[ix]--;
+ /* Mark directory because something was removed from them */
+ dff[ix] = 1;
break;
}
}
@@ -1020,7 +1032,7 @@ void checkInstalledFiles(rpmts ts, uint64_t fileCount, fingerPrintCache fpc)
/* Is this package being removed? */
installedPkg = rpmdbGetIteratorOffset(mi);
- if (removedHashGetEntry(tsmem->removedPackages, installedPkg,
+ if (packageHashGetEntry(tsmem->removedPackages, installedPkg,
&removedPkg, NULL, NULL)) {
beingRemoved = 1;
otherFi = rpmteFiles(removedPkg[0]);
@@ -1181,7 +1193,11 @@ static int runTransScripts(rpmts ts, pkgGoal goal)
int rc = 0;
rpmte p;
rpmtsi pi = rpmtsiInit(ts);
- while ((p = rpmtsiNext(pi, TR_ADDED)) != NULL) {
+ rpmElementTypes types = TR_ADDED;
+ if (goal == PKG_TRANSFILETRIGGERUN)
+ types = TR_REMOVED;
+
+ while ((p = rpmtsiNext(pi, types)) != NULL) {
rc += rpmteProcess(p, goal);
}
rpmtsiFree(pi);
@@ -1329,12 +1345,16 @@ exit:
static int rpmtsProcess(rpmts ts)
{
rpmtsi pi; rpmte p;
+ tsMembers tsmem = rpmtsMembers(ts);
int rc = 0;
+ int i = 0;
pi = rpmtsiInit(ts);
while ((p = rpmtsiNext(pi, 0)) != NULL) {
int failed;
+ rpmtsNotify(ts, NULL, RPMCALLBACK_ELEM_PROGRESS, i++,
+ tsmem->orderCount);
rpmlog(RPMLOG_DEBUG, "========== +++ %s %s-%s 0x%x\n",
rpmteNEVR(p), rpmteA(p), rpmteO(p), rpmteColor(p));
@@ -1379,6 +1399,60 @@ rpmRC rpmtsSetupTransactionPlugins(rpmts ts)
return rc;
}
+/**
+ * Run a scriptlet with args.
+ *
+ * Run a script with an interpreter. If the interpreter is not specified,
+ * /bin/sh will be used. If the interpreter is /bin/sh, then the args from
+ * the header will be ignored, passing instead arg1 and arg2.
+ *
+ * @param ts transaction set
+ * @param te transaction element
+ * @param prefixes install prefixes
+ * @param script scriptlet from header
+ * @param arg1 no. instances of package installed after scriptlet exec
+ * (-1 is no arg)
+ * @param arg2 ditto, but for the target package
+ * @return 0 on success
+ */
+rpmRC runScript(rpmts ts, rpmte te, ARGV_const_t prefixes,
+ rpmScript script, int arg1, int arg2)
+{
+ rpmRC stoprc, rc = RPMRC_OK;
+ rpmTagVal stag = rpmScriptTag(script);
+ FD_t sfd = NULL;
+ int warn_only = (stag != RPMTAG_PREIN &&
+ stag != RPMTAG_PREUN &&
+ stag != RPMTAG_PRETRANS &&
+ stag != RPMTAG_VERIFYSCRIPT);
+
+ sfd = rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_START, stag, 0);
+ if (sfd == NULL)
+ sfd = rpmtsScriptFd(ts);
+
+ rpmswEnter(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
+ rc = rpmScriptRun(script, arg1, arg2, sfd,
+ prefixes, warn_only, rpmtsPlugins(ts));
+ rpmswExit(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
+
+ /* Map warn-only errors to "notfound" for script stop callback */
+ stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc;
+ rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_STOP, stag, stoprc);
+
+ /*
+ * Notify callback for all errors. "total" abused for warning/error,
+ * rc only reflects whether the condition prevented install/erase
+ * (which is only happens with %prein and %preun scriptlets) or not.
+ */
+ if (rc != RPMRC_OK) {
+ if (warn_only) {
+ rc = RPMRC_OK;
+ }
+ rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_ERROR, stag, rc);
+ }
+
+ return rc;
+}
int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
{
@@ -1418,6 +1492,16 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
goto exit;
}
+ if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_NOPRETRANS|
+ RPMTRANS_FLAG_NOTRIGGERUN) || rpmpsNumProblems(tsprobs))) {
+
+ /* Run file triggers in this package other package(s) set off. */
+ runFileTriggers(ts, NULL, RPMSENSE_TRIGGERUN,
+ RPMSCRIPT_TRANSFILETRIGGER, 0);
+ /* Run file triggers in other package(s) this package sets off. */
+ runTransScripts(ts, PKG_TRANSFILETRIGGERUN);
+ }
+
/* Run pre-transaction scripts, but only if there are no known
* problems up to this point and not disabled otherwise. */
if (!((rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_NOPRETRANS))
@@ -1452,6 +1536,7 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_TEST|RPMTRANS_FLAG_BUILD_PROBS)))
tsmem->pool = rpmstrPoolFree(tsmem->pool);
+
/* Actually install and remove packages, get final exit code */
rc = rpmtsProcess(ts) ? -1 : 0;
@@ -1461,6 +1546,18 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
runTransScripts(ts, PKG_POSTTRANS);
}
+ /* Run file triggers in other package(s) this package sets off. */
+ if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERIN))) {
+ runFileTriggers(ts, NULL, RPMSENSE_TRIGGERIN, RPMSCRIPT_TRANSFILETRIGGER, 0);
+ }
+ if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERPOSTUN))) {
+ runPostUnTransFileTrigs(ts);
+ }
+
+ /* Run file triggers in this package other package(s) set off. */
+ if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERIN))) {
+ runTransScripts(ts, PKG_TRANSFILETRIGGERIN);
+ }
exit:
/* Run post transaction hook for all plugins */
if (TsmPreDone) /* If TsmPre hook has been called, call the TsmPost hook */
diff --git a/lib/verify.c b/lib/verify.c
index eb6f2e15..84e98433 100644
--- a/lib/verify.c
+++ b/lib/verify.c
@@ -96,6 +96,12 @@ int rpmVerifyFile(const rpmts ts, const rpmfi fi,
return 1;
}
+ /* If we expected a directory but got a symlink to one, follow the link */
+ if (S_ISDIR(fmode) && S_ISLNK(sb.st_mode) && stat(fn, &sb) != 0) {
+ *res |= RPMVERIFY_LSTATFAIL;
+ return 1;
+ }
+
/* Links have no mode, other types have no linkto */
if (S_ISLNK(sb.st_mode))
flags &= ~(RPMVERIFY_MODE);
diff --git a/luaext/lposix.c b/luaext/lposix.c
index a59be3e9..c578c5a1 100644
--- a/luaext/lposix.c
+++ b/luaext/lposix.c
@@ -361,22 +361,22 @@ static int Pfork(lua_State *L) /** fork() */
static int Pwait(lua_State *L) /** wait([pid]) */
{
- pid_t pid = luaL_optint(L, 1, -1);
+ pid_t pid = luaL_optinteger(L, 1, -1);
return pushresult(L, waitpid(pid, NULL, 0), NULL);
}
static int Pkill(lua_State *L) /** kill(pid,[sig]) */
{
- pid_t pid = luaL_checkint(L, 1);
- int sig = luaL_optint(L, 2, SIGTERM);
+ pid_t pid = luaL_checkinteger(L, 1);
+ int sig = luaL_optinteger(L, 2, SIGTERM);
return pushresult(L, kill(pid, sig), NULL);
}
static int Psleep(lua_State *L) /** sleep(seconds) */
{
- unsigned int seconds = luaL_checkint(L, 1);
+ unsigned int seconds = luaL_checkinteger(L, 1);
lua_pushnumber(L, sleep(seconds));
return 1;
}
@@ -529,7 +529,7 @@ static int Pgetprocessid(lua_State *L) /** getprocessid([selector]) */
static int Pttyname(lua_State *L) /** ttyname(fd) */
{
- int fd=luaL_optint(L, 1, 0);
+ int fd=luaL_optinteger(L, 1, 0);
lua_pushstring(L, ttyname(fd));
return 1;
}
@@ -819,6 +819,25 @@ static int Pmkstemp(lua_State *L)
return 2;
}
+static int Predirect2null(lua_State *L)
+{
+ int target_fd, fd, r, e;
+
+ if (!have_forked)
+ return luaL_error(L, "silence_file_descriptor not permitted in this context");
+
+ target_fd = luaL_checkinteger(L, 1);
+
+ r = fd = open("/dev/null", O_WRONLY);
+ if (fd >= 0 && fd != target_fd) {
+ r = dup2(fd, target_fd);
+ e = errno;
+ (void) close(fd);
+ errno = e;
+ }
+ return pushresult(L, r, NULL);
+}
+
static const luaL_Reg R[] =
{
{"access", Paccess},
@@ -861,6 +880,7 @@ static const luaL_Reg R[] =
{"wait", Pwait},
{"setenv", Psetenv},
{"unsetenv", Punsetenv},
+ {"redirect2null", Predirect2null},
{NULL, NULL}
};
@@ -880,7 +900,7 @@ static int exit_override(lua_State *L)
if (!have_forked)
return luaL_error(L, "exit not permitted in this context");
- exit(luaL_optint(L, 1, EXIT_SUCCESS));
+ exit(luaL_optinteger(L, 1, EXIT_SUCCESS));
}
static const luaL_Reg os_overrides[] =
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
index 9000a057..48bc9344 100644
--- a/m4/ltsugar.m4
+++ b/m4/ltsugar.m4
@@ -1,6 +1,7 @@
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
@@ -33,7 +34,7 @@ m4_define([_lt_join],
# ------------
# Manipulate m4 lists.
# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
+# Autoconf-2.59, which quotes differently.
m4_define([lt_car], [[$1]])
m4_define([lt_cdr],
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
@@ -44,7 +45,7 @@ m4_define([lt_unquote], $1)
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
# Note that neither SEPARATOR nor STRING are expanded; they are appended
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
index c573da90..c6b26f88 100644
--- a/m4/lt~obsolete.m4
+++ b/m4/lt~obsolete.m4
@@ -1,6 +1,7 @@
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+# Foundation, Inc.
# Written by Scott James Remnant, 2004.
#
# This file is free software; the Free Software Foundation gives
@@ -11,7 +12,7 @@
# These exist entirely to fool aclocal when bootstrapping libtool.
#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
# which have later been changed to m4_define as they aren't part of the
# exported API, or moved to Autoconf or Automake where they belong.
#
@@ -25,7 +26,7 @@
# included after everything else. This provides aclocal with the
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
#
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
# Yes, that means every name once taken will need to remain here until
diff --git a/macros.debug b/macros.debug
new file mode 100644
index 00000000..6a8432eb
--- /dev/null
+++ b/macros.debug
@@ -0,0 +1,43 @@
+# macros to include to generate debuginfo
+
+%_enable_debug_packages 1
+%_include_minidebuginfo 1
+
+# Expanded at end of %install scriptlet
+
+%__arch_install_post %{nil}
+
+%__os_install_post \
+ %{_rpmconfigdir}/brp-compress \
+ %{!?__debug_package:\
+ %{_rpmconfigdir}/brp-strip %{__strip} \
+ %{_rpmconfigdir}/brp-strip-comment-note %{__strip} %{__objdump} \
+ } \
+ %{_rpmconfigdir}/brp-strip-static-archive %{__strip} \
+%{nil}
+
+%__spec_install_post\
+ %{?__debug_package:%{__debug_install_post}}\
+ %{__arch_install_post}\
+ %{__os_install_post}\
+%{nil}
+
+%install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package}}}\
+%%install\
+%{nil}
+
+# Should missing buildids terminate a build?
+%_missing_build_ids_terminate_build 1
+
+# Number of debugging information entries (DIEs) above which
+# dwz will stop considering file for multifile optimizations
+# and enter a low memory mode, in which it will optimize
+# in about half the memory needed otherwise.
+%_dwz_low_mem_die_limit 10000000
+# Number of DIEs above which dwz will stop processing
+# a file altogether.
+%_dwz_max_die_limit 50000000
+
+%_find_debuginfo_dwz_opts --run-dwz\\\
+ --dwz-low-mem-die-limit %{_dwz_low_mem_die_limit}\\\
+ --dwz-max-die-limit %{_dwz_max_die_limit}
diff --git a/macros.in b/macros.in
index 2ada48b3..fd57f2eb 100644
--- a/macros.in
+++ b/macros.in
@@ -180,7 +180,7 @@
# the script. See the script for details.
#
%__debug_install_post \
- %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
+ %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_include_minidebuginfo:-m} %{?_find_debuginfo_dwz_opts} %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
%{nil}
# Template for debug information sub-package.
@@ -366,6 +366,7 @@ package or when debugging this package.\
# Default patch flags
#%_default_patch_flags -s
+%_default_patch_flags --no-backup-if-mismatch
#==============================================================================
# ---- Build configuration macros.
@@ -389,9 +390,21 @@ package or when debugging this package.\
%_missing_doc_files_terminate_build 1
#
+# Should empty %files manifest file terminate a build?
+#
+# Note: The default value should be 0 for legacy compatibility.
+%_empty_manifest_terminate_build 1
+
+#
# Should binaries in noarch packages terminate a build?
%_binaries_in_noarch_packages_terminate_build 1
+# Should invalid utf8 encoding in package metadata terminate a build?
+%_invalid_encoding_terminates_build 0
+
+# Should invalid version format in requires, provides, ... terminate a build?
+%_wrong_version_format_terminate_build 1
+
#
# Should rpm try to download missing sources at build-time?
# Enabling this is dangerous as long as rpm has no means to validate
@@ -430,6 +443,12 @@ package or when debugging this package.\
#%_missing_build_ids_terminate_build 1
#
+# Include minimal debug information in build binaries.
+# Requires _enable_debug_packages.
+#
+#%_include_minidebuginfo 1
+
+#
# Use internal dependency generator rather than external helpers?
%_use_internal_dependency_generator 1
@@ -529,11 +548,9 @@ package or when debugging this package.\
# Macro(s) to hold the arguments passed to GPG/PGP for package
# signing and verification.
#
-%__gpg_check_password_cmd %{__gpg} \
- gpg --batch --no-verbose --passphrase-fd 3 -u "%{_gpg_name}" -so -
%__gpg_sign_cmd %{__gpg} \
- gpg --batch --no-verbose --no-armor --passphrase-fd 3 \
+ gpg --no-verbose --no-armor \
%{?_gpg_digest_algo:--digest-algo %{_gpg_digest_algo}} \
--no-secmem-warning \
-u "%{_gpg_name}" -sbo %{__signature_filename} %{__plaintext_filename}
@@ -869,7 +886,7 @@ package or when debugging this package.\
#------------------------------------------------------------------------------
# The "make" analogue, hiding the _smp_mflags magic from specs
-%make_build %{__make} %{?_smp_mflags}
+%make_build %{__make} -O %{?_smp_mflags}
#------------------------------------------------------------------------------
# The make install analogue of %configure for modern autotools:
@@ -879,6 +896,7 @@ package or when debugging this package.\
# Former make install analogue, kept for compatibility and for old/broken
# packages that don't support DESTDIR properly.
%makeinstall \
+ echo "warning: %%makeinstall is deprecated, try %%make_install instead" 1>&2\
%{__make} \\\
prefix=%{?buildroot:%{buildroot}}%{_prefix} \\\
exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \\\
@@ -1004,6 +1022,26 @@ done \
%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
#------------------------------------------------------------------------------
+# arch macro for 32-bit MIPS processors
+%mips32 mips mipsel mipsr6 mipsr6el
+
+#------------------------------------------------------------------------------
+# arch macro for 64-bit MIPS processors
+%mips64 mips64 mips64el mips64r6 mips64r6el
+
+#------------------------------------------------------------------------------
+# arch macro for big endian MIPS processors
+%mipseb mips mipsr6 mips64 mips64r6
+
+#------------------------------------------------------------------------------
+# arch macro for little endian MIPS processors
+%mipsel mipsel mipsr6el mips64el mips64r6el
+
+#------------------------------------------------------------------------------
+# arch macro for all supported MIPS processors
+%mips %{mips32} %{mips64}
+
+#------------------------------------------------------------------------------
# arch macro for all supported Sparc processors
%sparc sparc sparcv8 sparcv9 sparcv9v sparc64 sparc64v
@@ -1040,6 +1078,7 @@ done \
%__transaction_systemd_inhibit %{__plugindir}/systemd_inhibit.so
%__transaction_selinux %{__plugindir}/selinux.so
%__transaction_syslog %{__plugindir}/syslog.so
+%__transaction_ima %{__plugindir}/ima.so
#------------------------------------------------------------------------------
# Macros for further automated spec %setup and patch application
@@ -1054,7 +1093,7 @@ done \
# Plain patch (-m is unused)
%__scm_setup_patch(q) %{nil}
%__scm_apply_patch(qp:m:)\
-%{__patch} %{-p:-p%{-p*}} %{-q:-s}
+%{__patch} %{-p:-p%{-p*}} %{-q:-s} --fuzz=%{_default_patch_fuzz} %{_default_patch_flags}
# Mercurial (aka hg)
%__scm_setup_hg(q)\
@@ -1104,7 +1143,15 @@ done \
# Single patch application
%apply_patch(qp:m:)\
-%{uncompress:%{1}} | %{expand:%__scm_apply_%{__scm} %{-q} %{-p:-p%{-p*}} %{-m:-m%{-m*}}}
+%{lua:\
+local file = rpm.expand("%{1}")\
+if posix.access(file, "r") then\
+ local options = rpm.expand("%{-q} %{-p:-p%{-p*}} %{-m:-m%{-m*}}")\
+ local scm_apply = rpm.expand("%__scm_apply_%{__scm}")\
+ print(rpm.expand("%{uncompress:"..file.."} | "..scm_apply.." "..options.."\\n"))\
+else\
+ print("echo 'Cannot read "..file.."'; exit 1;".."\\n")\
+end}
# Automatically apply all patches
%autopatch(vp:)\
diff --git a/misc/fts.c b/misc/fts.c
index 9fbefe3d..22509f29 100644
--- a/misc/fts.c
+++ b/misc/fts.c
@@ -31,6 +31,13 @@
static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
#endif /* LIBC_SCCS and not lint */
+/* Conditional to set up proper fstat64 implementation */
+#if defined(hpux) || defined(sun)
+# define FTS_FSTAT64(_fd, _sbp) fstat((_fd), (_sbp))
+#else
+# define FTS_FSTAT64(_fd, _sbp) fstat64((_fd), (_sbp))
+#endif
+
#if defined(_LIBC)
#include <sys/param.h>
#include <include/sys/stat.h>
@@ -42,25 +49,22 @@ static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
#include <string.h>
#include <unistd.h>
#else
+
+/* Conditionals for working around non-GNU environments */
#if defined(hpux)
-# define _INCLUDE_POSIX_SOURCE
+# define _INCLUDE_POSIX_SOURCE
# define __errno_location() (&errno)
# define dirfd(dirp) -1
# define stat64 stat
-# define _STAT_VER 0
-# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
#endif
#if defined(sun)
# define __errno_location() (&errno)
# define dirfd(dirp) -1
-# define _STAT_VER 0
-# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
#endif
#if defined(__APPLE__)
# define __errno_location() (__error())
-# define _STAT_VER 0
-# define __fxstat64(_stat_ver, _fd, _sbp) fstat64((_fd), (_sbp))
#endif
+
#include "system.h"
#include <stdlib.h>
#include <string.h>
@@ -1118,7 +1122,7 @@ fts_safe_changedir(FTS * sp, FTSENT * p, int fd, const char * path)
return (0);
if (fd < 0 && (newfd = __open(path, O_RDONLY, 0)) < 0)
return (-1);
- if (__fxstat64(_STAT_VER, newfd, &sb)) {
+ if (FTS_FSTAT64(newfd, &sb)) {
ret = -1;
goto bail;
}
diff --git a/misc/fts.h b/misc/fts.h
index b147de4c..30ad0ee8 100644
--- a/misc/fts.h
+++ b/misc/fts.h
@@ -40,18 +40,18 @@
# define __THROW
-#if defined(hpux)
-# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
-# define _INCLUDE_POSIX_SOURCE
+#if !defined(_LARGEFILE64_SOURCE)
# define _LARGEFILE64_SOURCE
#endif
-#if defined(sun)
-# define _D_EXACT_NAMLEN(d) ((d)->d_reclen)
+#if !defined(_D_EXACT_NAMLEN)
+# define _D_EXACT_NAMLEN(d) (strlen((d)->d_name))
#endif
-#if defined(__APPLE__)
-# define _D_EXACT_NAMLEN(d) (strlen((d)->d_name))
+#if defined(hpux)
+# if !defined(_INCLUDE_POSIX_SOURCE)
+# define _INCLUDE_POSIX_SOURCE
+# endif
#endif
#endif
diff --git a/missing b/missing
index cdea5149..f62bbae3 100755
--- a/missing
+++ b/missing
@@ -1,9 +1,9 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -160,7 +160,7 @@ give_advice ()
;;
autom4te*)
echo "You might have modified some maintainer files that require"
- echo "the 'automa4te' program to be rebuilt."
+ echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 53b24500..5ddc174b 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -31,3 +31,7 @@ endif
syslog_la_SOURCES = syslog.c
syslog_la_LIBADD = $(top_builddir)/lib/librpm.la $(top_builddir)/rpmio/librpmio.la
plugins_LTLIBRARIES += syslog.la
+
+ima_la_sources = ima.c
+ima_la_LIBADD = $(top_builddir)/lib/librpm.la $(top_builddir)/rpmio/librpmio.la
+plugins_LTLIBRARIES += ima.la
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
index c157ad73..a5cce483 100644
--- a/plugins/Makefile.in
+++ b/plugins/Makefile.in
@@ -138,15 +138,19 @@ am__uninstall_files_from_dir = { \
}
am__installdirs = "$(DESTDIR)$(pluginsdir)"
LTLIBRARIES = $(plugins_LTLIBRARIES)
+ima_la_DEPENDENCIES = $(top_builddir)/lib/librpm.la \
+ $(top_builddir)/rpmio/librpmio.la
+ima_la_SOURCES = ima.c
+ima_la_OBJECTS = ima.lo
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
@SELINUX_TRUE@selinux_la_DEPENDENCIES = $(top_builddir)/lib/librpm.la \
@SELINUX_TRUE@ $(top_builddir)/rpmio/librpmio.la
am__selinux_la_SOURCES_DIST = selinux.c
@SELINUX_TRUE@am_selinux_la_OBJECTS = selinux.lo
selinux_la_OBJECTS = $(am_selinux_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
@SELINUX_TRUE@am_selinux_la_rpath = -rpath $(pluginsdir)
syslog_la_DEPENDENCIES = $(top_builddir)/lib/librpm.la \
$(top_builddir)/rpmio/librpmio.la
@@ -194,10 +198,10 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-SOURCES = $(selinux_la_SOURCES) $(syslog_la_SOURCES) \
+SOURCES = ima.c $(selinux_la_SOURCES) $(syslog_la_SOURCES) \
$(systemd_inhibit_la_SOURCES)
-DIST_SOURCES = $(am__selinux_la_SOURCES_DIST) $(syslog_la_SOURCES) \
- $(am__systemd_inhibit_la_SOURCES_DIST)
+DIST_SOURCES = ima.c $(am__selinux_la_SOURCES_DIST) \
+ $(syslog_la_SOURCES) $(am__systemd_inhibit_la_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -466,7 +470,7 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \
-I$(top_builddir)/include/ -I$(top_srcdir)/misc \
-DLOCALEDIR="\"$(localedir)\"" \
@@ -475,7 +479,7 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \
-DLIBRPMALIAS_FILENAME="\"rpmpopt-${VERSION}\""
AM_LDFLAGS = -avoid-version -module -shared
pluginsdir = $(libdir)/rpm-plugins
-plugins_LTLIBRARIES = $(am__append_1) $(am__append_2) syslog.la
+plugins_LTLIBRARIES = $(am__append_1) $(am__append_2) syslog.la ima.la
@SELINUX_TRUE@selinux_la_SOURCES = selinux.c
@SELINUX_TRUE@selinux_la_LIBADD = $(top_builddir)/lib/librpm.la $(top_builddir)/rpmio/librpmio.la @WITH_SELINUX_LIB@
@DBUS_TRUE@systemd_inhibit_la_SOURCES = systemd_inhibit.c
@@ -483,6 +487,8 @@ plugins_LTLIBRARIES = $(am__append_1) $(am__append_2) syslog.la
@DBUS_TRUE@systemd_inhibit_la_LIBADD = $(top_builddir)/lib/librpm.la $(top_builddir)/rpmio/librpmio.la @DBUS_LIBS@
syslog_la_SOURCES = syslog.c
syslog_la_LIBADD = $(top_builddir)/lib/librpm.la $(top_builddir)/rpmio/librpmio.la
+ima_la_sources = ima.c
+ima_la_LIBADD = $(top_builddir)/lib/librpm.la $(top_builddir)/rpmio/librpmio.la
all: all-am
.SUFFIXES:
@@ -553,6 +559,9 @@ clean-pluginsLTLIBRARIES:
rm -f $${locs}; \
}
+ima.la: $(ima_la_OBJECTS) $(ima_la_DEPENDENCIES) $(EXTRA_ima_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(pluginsdir) $(ima_la_OBJECTS) $(ima_la_LIBADD) $(LIBS)
+
selinux.la: $(selinux_la_OBJECTS) $(selinux_la_DEPENDENCIES) $(EXTRA_selinux_la_DEPENDENCIES)
$(AM_V_CCLD)$(LINK) $(am_selinux_la_rpath) $(selinux_la_OBJECTS) $(selinux_la_LIBADD) $(LIBS)
@@ -568,6 +577,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ima.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/selinux.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/systemd_inhibit_la-systemd_inhibit.Plo@am__quote@
diff --git a/plugins/ima.c b/plugins/ima.c
new file mode 100644
index 00000000..0dfdd8be
--- /dev/null
+++ b/plugins/ima.c
@@ -0,0 +1,44 @@
+#include <sys/xattr.h>
+
+#include <rpm/rpmfi.h>
+#include <rpm/rpmte.h>
+#include <rpm/rpmfiles.h>
+#include <rpm/rpmtypes.h>
+#include <rpmio/rpmstring.h>
+
+#include "lib/rpmfs.h"
+#include "lib/rpmplugin.h"
+#include "lib/rpmte_internal.h"
+
+#define XATTR_NAME_IMA "security.ima"
+
+static rpmRC ima_psm_post(rpmPlugin plugin, rpmte te, int res)
+{
+ rpmfi fi = rpmteFI(te);
+ const char *fpath;
+ const unsigned char * fsig = NULL;
+ size_t len;
+ int rc = 0;
+
+ if (fi == NULL) {
+ rc = RPMERR_BAD_MAGIC;
+ goto exit;
+ }
+
+ while (rpmfiNext(fi) >= 0) {
+ /* Don't install signatures for (mutable) config files */
+ if (!(rpmfiFFlags(fi) & RPMFILE_CONFIG)) {
+ fpath = rpmfiFN(fi);
+ fsig = rpmfiFSignature(fi, &len);
+ if (fsig) {
+ lsetxattr(fpath, XATTR_NAME_IMA, fsig, len, 0);
+ }
+ }
+ }
+exit:
+ return rc;
+}
+
+struct rpmPluginHooks_s ima_hooks = {
+ .psm_post = ima_psm_post,
+};
diff --git a/plugins/selinux.c b/plugins/selinux.c
index 77083ed3..0c2419ce 100644
--- a/plugins/selinux.c
+++ b/plugins/selinux.c
@@ -2,7 +2,6 @@
#include <selinux/selinux.h>
#include <selinux/context.h>
-#include <selinux/flask.h>
#include <selinux/label.h>
#include <selinux/avc.h>
#include <rpm/rpmlog.h>
@@ -91,9 +90,10 @@ static rpmRC selinux_scriptlet_fork_post(rpmPlugin plugin,
const char *path, int type)
{
rpmRC rc = RPMRC_FAIL;
+ int xx;
+#ifndef HAVE_SETEXECFILECON
security_context_t mycon = NULL, fcon = NULL, newcon = NULL;
context_t con = NULL;
- int xx;
if (sehandle == NULL)
return RPMRC_OK;
@@ -133,6 +133,18 @@ exit:
freecon(fcon);
freecon(mycon);
+#else
+ if (sehandle == NULL)
+ return RPMRC_OK;
+
+ if ((xx = setexecfilecon(path, "rpm_script_t") == 0))
+ rc = RPMRC_OK;
+
+ if (rpmIsDebug()) {
+ rpmlog(RPMLOG_DEBUG, "setexecfilecon: (%s) %s\n",
+ path, (xx < 0 ? strerror(errno) : ""));
+ }
+#endif
/* If selinux is not enforcing, we don't care either */
if (rc && security_getenforce() < 1)
rc = RPMRC_OK;
diff --git a/plugins/systemd_inhibit.c b/plugins/systemd_inhibit.c
index a34d7d99..4a90c440 100644
--- a/plugins/systemd_inhibit.c
+++ b/plugins/systemd_inhibit.c
@@ -1,4 +1,7 @@
#include <dbus/dbus.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
#include <rpm/rpmlog.h>
#include <rpm/rpmts.h>
#include "lib/rpmplugin.h"
@@ -24,7 +27,7 @@ static int inhibit(void)
}
if (msg) {
- const char *what = "shutdown";
+ const char *what = "idle:sleep:shutdown";
const char *mode = "block";
const char *who = "RPM";
const char *reason = "Transaction running";
@@ -55,6 +58,19 @@ static int inhibit(void)
return fd;
}
+static rpmRC systemd_inhibit_init(rpmPlugin plugin, rpmts ts)
+{
+ struct stat st;
+
+ if (lstat("/run/systemd/system/", &st) == 0) {
+ if (S_ISDIR(st.st_mode)) {
+ return RPMRC_OK;
+ }
+ }
+
+ return RPMRC_NOTFOUND;
+}
+
static rpmRC systemd_inhibit_tsm_pre(rpmPlugin plugin, rpmts ts)
{
if (rpmtsFlags(ts) & (RPMTRANS_FLAG_TEST|RPMTRANS_FLAG_BUILD_PROBS))
@@ -83,6 +99,7 @@ static rpmRC systemd_inhibit_tsm_post(rpmPlugin plugin, rpmts ts, int res)
}
struct rpmPluginHooks_s systemd_inhibit_hooks = {
+ .init = systemd_inhibit_init,
.tsm_pre = systemd_inhibit_tsm_pre,
.tsm_post = systemd_inhibit_tsm_post,
};
diff --git a/po/POTFILES.in b/po/POTFILES.in
index b5d42d14..2662a311 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -72,7 +72,7 @@ lib/rpmdb.c
lib/tagexts.c
lib/tagname.c
lib/backend/db3.c
-lib/backend/dbconfig.c
+lib/backend/dbi.c
python/rpmts-py.c
rpmio/argv.c
rpmio/digest.c
diff --git a/po/ar.gmo b/po/ar.gmo
index 487b335d..97e410d0 100644
--- a/po/ar.gmo
+++ b/po/ar.gmo
Binary files differ
diff --git a/po/ar.po b/po/ar.po
index cc3cdbed..07cbe07a 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -8,11 +8,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Arabic (http://www.transifex.com/projects/p/rpm/language/"
-"ar/)\n"
+"Language-Team: Arabic (http://www.transifex.com/rpm-team/rpm/language/ar/)\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -83,8 +82,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -104,7 +103,7 @@ msgstr ""
msgid "unexpected query source"
msgstr ""
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr ""
@@ -204,7 +203,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -224,201 +223,243 @@ msgstr ""
msgid "no arguments given for verify"
msgstr ""
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr ""
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr ""
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, c-format
+msgid "verify %files section from <source package>"
+msgstr ""
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr ""
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr ""
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr ""
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, c-format
+msgid "do not execute %prep stage of the build"
+msgstr ""
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "أزِل المصادر عند الانتهاء"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "أزِل ملف المُحدّد عند الانتهاء"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr ""
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr ""
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr ""
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr ""
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr ""
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr ""
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr ""
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr ""
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr ""
@@ -467,48 +508,61 @@ msgstr "أظهر قائمة المفاتيح من حلقة مفاتيح RPM"
msgid "Keyring options:"
msgstr "خيارات حلقة المفاتيح:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "وقّع الحزم"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "احذف توقيعات الحُزم"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "وقّع الحزم"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "خيارات التّوقيع:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "تعذّر تنفيذ %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "أدخل عبّارة المرور:"
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "عبّارة المرور جيدة.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+#: rpmsign.c:82
+msgid "--fskpass may only be specified when signing files"
+msgstr ""
+
+#: rpmsign.c:126
+msgid "--fskpath may only be specified when signing files"
msgstr ""
#: rpmspec.c:26
@@ -527,7 +581,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -628,218 +682,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr ""
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr ""
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr ""
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr ""
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr ""
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "السّطر: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
#, c-format
-msgid "Can't mix special %s with other forms: %s\n"
+msgid "File not found by glob: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1922
#, c-format
-msgid "More than one file on a line: %s\n"
+msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:1938
#, c-format
-msgid "Bad file: %s: %s\n"
+msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1978 build/parsePrep.c:33
+#: build/files.c:2068
#, c-format
-msgid "Bad owner/group: %s\n"
+msgid "Bad file: %s: %s\n"
msgstr ""
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -858,89 +912,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: السّطر: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "تعذّر تحميل رأس التّوقيع.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "تعذّر فتح %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "تعذّرت كتابة الحزمة: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "بيانات CSA خاطئة\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "تعذّر تنفيذ %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "تعذّر إيجاد %s:\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "تمت كتابة: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "يجري تنفيذ \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr ""
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -991,19 +1046,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr ""
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1058,142 +1113,146 @@ msgstr "يجري تنزيل %s إلى %s\n"
msgid "Couldn't download %s\n"
msgstr "تعذّر تنزيل %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "نوع الرّمز غير معروف: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "السّطر %d: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: السّطر: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1203,161 +1262,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "مصدر خاطئ: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr ""
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "السّطر %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr ""
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1428,287 +1519,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "تعذّر تنفيذ %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "يجري إبجاد %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "تعذّر إيجاد %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(ليس رقمًا)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(نوع غير سليم)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "عادية"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "مُستبدلة"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "غير مثبّتة"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "لون خاطئ"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "مفقودة"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(غير معروفة)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s حُفت كـ %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s أُنشئت كـ %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "دليل"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "ملف"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1926,7 +2006,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr ""
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2046,162 +2126,178 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr ""
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr ""
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr ""
+
+#: lib/poptQV.c:107
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr ""
+
+#: lib/poptQV.c:109
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr ""
+
+#: lib/poptQV.c:111
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr ""
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr ""
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr ""
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ""
@@ -2276,96 +2372,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr ""
-#: lib/query.c:391
+#: lib/query.c:390
+#, c-format
+msgid "no package recommends %s\n"
+msgstr ""
+
+#: lib/query.c:397
+#, c-format
+msgid "no package suggests %s\n"
+msgstr ""
+
+#: lib/query.c:404
+#, c-format
+msgid "no package supplements %s\n"
+msgstr ""
+
+#: lib/query.c:411
+#, c-format
+msgid "no package enhances %s\n"
+msgstr ""
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr ""
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "الملف %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr ""
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr ""
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr ""
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "غير موافق"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "موافق"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (مفاتيح مفقودة:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (مفاتيح غير موثوقة:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: فشل فتح: %s\n"
@@ -2390,144 +2506,191 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "لا"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "نعم"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+msgid "support for rich dependencies."
+msgstr ""
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr ""
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr ""
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr ""
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr ""
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " فشل - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2559,42 +2722,42 @@ msgstr "فشل في الاعتماديات:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr ""
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr ""
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "تعذّر فتح %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "يجري تثبيت %s\n"
@@ -2620,12 +2783,12 @@ msgstr ""
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2783,60 +2946,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr "خيار خاطئ '%s' at %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "نظام غير معروف: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "اتّصل رجاءً %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "تعذّرت كتابة الحزمة: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "تعذّرت كتابة الحزمة: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: فشل فتح: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "صيغة غير معروفة"
@@ -2848,127 +3030,146 @@ msgstr "ثبّت"
msgid "erase"
msgstr "أزِل"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr ""
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "مُبادلة"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "تعذّر تحميل رأس التّوقيع.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "الترويسة"
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
-msgstr "الترويسة"
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "مُستثناة"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "مفقود %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3042,240 +3243,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr ""
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "مُشتركة"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr ""
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr ""
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr ""
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr ""
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr ""
@@ -3295,31 +3496,31 @@ msgstr "الملف %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3328,19 +3529,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(بدون أخطاء)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "خطأ فادح: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "خطأ: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr ""
@@ -3349,101 +3550,157 @@ msgstr ""
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(لا شيء)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:66
+#, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, c-format
+msgid "error delete directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr ""
+msgid "Could not exec %s: %s\n"
+msgstr "تعذّر تنفيذ %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: فشل فتح: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "تعذّر تنفيذ %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "تعذّر تنفيذ %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+msgid "generateSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:543
+msgid "rpmReadSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "فشل التّنفيذ\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "فشل التّنفيذ\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "فشل التّنفيذ\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3457,5 +3714,8 @@ msgstr ""
msgid "don't verify header+payload signature"
msgstr ""
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "تعذّر فتح ملفٍ مؤقت.\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "أدخل عبّارة المرور:"
+
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "عبّارة المرور جيدة.\n"
diff --git a/po/br.gmo b/po/br.gmo
index 967fe65b..591c2dbe 100644
--- a/po/br.gmo
+++ b/po/br.gmo
Binary files differ
diff --git a/po/br.po b/po/br.po
index 2207d486..7d158c83 100644
--- a/po/br.po
+++ b/po/br.po
@@ -3,16 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Thierry Vignaud <thierry.vignaud@gmail.com>, 2012
+# Thierry Vignaud <thierry.vignaud@gmail.com>, 2012,2015
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
-"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Breton (http://www.transifex.com/projects/p/rpm/language/"
-"br/)\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-08-21 08:33+0000\n"
+"Last-Translator: Thierry Vignaud <thierry.vignaud@gmail.com>\n"
+"Language-Team: Breton (http://www.transifex.com/rpm-team/rpm/language/br/)\n"
"Language: br\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -81,8 +80,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -102,7 +101,7 @@ msgstr ""
msgid "unexpected query source"
msgstr ""
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr ""
@@ -202,7 +201,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -222,201 +221,243 @@ msgstr ""
msgid "no arguments given for verify"
msgstr ""
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
-msgstr ""
+msgstr "<restr_spec>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<pakad tarzh>"
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, c-format
+msgid "verify %files section from <source package>"
+msgstr ""
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr ""
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<pakad tarzh>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr ""
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, c-format
+msgid "do not execute %prep stage of the build"
+msgstr ""
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr ""
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr ""
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr ""
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr ""
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Muioc'h evit ur restr war ul linenn : %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr ""
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr ""
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr ""
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr ""
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr ""
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr ""
@@ -443,7 +484,7 @@ msgstr ""
#: rpmdb.c:42
msgid "Database options:"
-msgstr ""
+msgstr "Dibaboù ar stlennvon:"
#: rpmkeys.c:24
msgid "verify package signature(s)"
@@ -465,48 +506,61 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "Staliañ pakad(où)"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "N'hell ket bet sevenet %s : %s\n"
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
-#: rpmsign.c:118
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
+msgid "Signature options:"
+msgstr "Dibaboù ar sinadur:"
+
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
+#: rpmsign.c:76
+#, c-format
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
-#: rpmsign.c:127
-#, c-format
-msgid "Pass phrase is good.\n"
+#: rpmsign.c:82
+msgid "--fskpass may only be specified when signing files"
msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+#: rpmsign.c:126
+msgid "--fskpath may only be specified when signing files"
msgstr ""
#: rpmspec.c:26
@@ -525,7 +579,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -623,218 +677,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr ""
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr ""
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr ""
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr ""
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "N'eo ket bet kavet ar renkell : %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "N'eo ket bet kavet ar rstr : %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "linenn : %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Fazi en ur lenn %%files eus ar restr %s : %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr ""
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Muioc'h evit ur restr war ul linenn : %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "N'eo ket ur restr mat : %s : %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr ""
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -853,89 +907,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr "N'hell ket bet digoret ar restr %s : %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s : linenn : %s\n"
-#: build/pack.c:174
-#, c-format
-msgid "Could not canonicalize hostname: %s\n"
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
+#: build/pack.c:183
+#, c-format
+msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "N'hell ket bet digoret ar restr %s : %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "N'hell ket bet digoret ar restr %s : %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s : sac'het eo bet Fread : %s\n"
+msgstr "sac'het eo bet Fread er restr %s : %s\n"
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr ""
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "O seveniñ « %s » :\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Sac'het eo bet seveniñ « %s ».\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Sac'het eo bet ar gwiriekaat pakad « %s ».\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "n'hell ket bet krouet %s : %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -986,19 +1041,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr ""
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "linenn %d : re a anvioù : %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "linenn %d : n'eus ket eus ar pakad-se : %s\n"
@@ -1053,142 +1108,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr ""
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "linenn %d : %s : %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s : linenn : %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1198,161 +1257,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s : %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
+
+#: build/parseReqs.c:240 build/parseReqs.c:315
+msgid "invalid dependency"
+msgstr ""
+
+#: build/parseReqs.c:275 lib/rpmds.c:1438
msgid "Version required"
msgstr "Ret eo e vede ur stumm"
-#: build/parseReqs.c:188
-msgid "invalid dependency"
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "linenn %d : %s : %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr ""
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "linenn %d : %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "fazi en ur zigeriñ %s : %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1423,287 +1514,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "N'hell bet bet sevenet %s : %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "sac'het eo bet %s : %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "sac'het eo bet magic_open(0x%x) : %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "sac'het eo bet magic_load : %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "O klask %s : %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Sac'het eo bet klask %s :\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "Un Delta RPM eo %s neuez ne c'hell ket bezañ staliet\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "Bet eo ouzhpennet ar pakad %s dija, o tremen e-biou %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "Bet eo ouzhpennet ar pakad %s dija, o erlec'hiañ gant %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(n'eo ket un niverenn)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "reizh"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "erlec'hiet"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "ket staliet"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "ket rannet"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "mankout a ra"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(dianav)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr ""
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr ""
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s : sac'het eo bet lemel : %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "renkell"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "restr"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1768,7 +1848,7 @@ msgstr ""
#: lib/poptALL.c:204
msgid "CMD"
-msgstr ""
+msgstr "URZH"
#: lib/poptALL.c:209
msgid "use ROOT as top level directory"
@@ -1784,7 +1864,7 @@ msgstr ""
#: lib/poptALL.c:213
msgid "DIRECTORY"
-msgstr ""
+msgstr "RENKEL"
#: lib/poptALL.c:216
msgid "display known query tags"
@@ -1921,7 +2001,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr ""
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2041,162 +2121,178 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr ""
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr ""
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr ""
+
+#: lib/poptQV.c:107
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr ""
+
+#: lib/poptQV.c:109
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr ""
+
+#: lib/poptQV.c:111
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr ""
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr ""
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "o tremen e-biou ar restroù %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr ""
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " war restr "
@@ -2271,96 +2367,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr ""
-#: lib/query.c:391
+#: lib/query.c:390
+#, c-format
+msgid "no package recommends %s\n"
+msgstr ""
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "n'eus pakad evet da lemel"
+
+#: lib/query.c:404
+#, c-format
+msgid "no package supplements %s\n"
+msgstr ""
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "n'eus pakad evet da lemel"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr ""
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr ""
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr ""
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr ""
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr ""
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s : sac'het eo bet headerRead : %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s : sac'het eo bet Fread : %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "KET MAT"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "MAT"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s : sac'het eo bet digeriñ : %s\n"
@@ -2385,144 +2501,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "KET"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "YA"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+msgid "support for rich dependencies."
+msgstr ""
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Ret eo e vede ur stumm"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr ""
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr ""
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr ""
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr ""
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " sac'het - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2554,42 +2718,42 @@ msgstr "Sujedigezh sac'het :\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "O tegas %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "fazi en ur lenn eus ar restr %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "N'hell ket bet digoret %s : %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "O staliañ %s\n"
@@ -2615,12 +2779,12 @@ msgstr ""
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "o c'hortoz evit krouiliñ %s war %s\n"
@@ -2778,60 +2942,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr ""
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr ""
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "N'hell ket bet digoret %s evit lenn : %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "fazi en ur zigeriñ %s : %s\n"
+
+#: lib/rpmscript.c:361
+#, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr ""
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s : sac'het eo bet Fwrite : %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Furmad dianav"
@@ -2843,127 +3026,146 @@ msgstr "staliañ"
msgid "erase"
msgstr "lemel"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "N'hell ket bet digoret stlennvon ar pakadoù e %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "gra"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
+msgstr ""
+
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "tremenet en e biou"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "sac'het"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "mankout a ra %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3037,240 +3239,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader : o tremen e-biou"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s : sac'het eo bet regexec : %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s : sac'het eo bet regcomp : %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator : o tremen e-biou"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr ""
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "n'hellan ket krouiliñ %s war %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "rannet"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr ""
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr ""
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr ""
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr ""
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr ""
@@ -3290,31 +3492,31 @@ msgstr ""
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3323,122 +3525,180 @@ msgstr ""
msgid "[none]"
msgstr "[hini ebet]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(fazi ebet)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "Fazi sac'hus : "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "fazi :"
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
-msgstr "ho evezh : "
+msgstr "hoc'h evezh : "
#: rpmio/rpmmalloc.c:25
#, c-format
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, ID alc'hwez %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(hini ebet)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "Fazi en ur lenn %%files eus ar restr %s : %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "Fazi en ur lenn %%files eus ar restr %s : %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "Fazi en ur lenn %%files eus ar restr %s : %m\n"
+
+#: sign/rpmgensig.c:95
+#, c-format
+msgid "error delete directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s : sac'het eo bet Fwrite : %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s : sac'het eo bet Fflush : %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr ""
+msgid "Could not exec %s: %s\n"
+msgstr "N'hell ket bet sevenet %s : %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s : sac'het eo bet digeriñ : %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "N'hell ket bet digoret ar restr %s : %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "N'hell ket bet digoret ar restr %s : %s\n"
+msgstr "N'hell ket bet lennet ar restr %s : %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "Sac'het eo bet seveniñ gpg (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s : sac'het eo bet rpmWriteSignature : %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s : sac'het eo bet rpmReadSignature : %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s : sac'het eo bet headerRead : %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "sac'het eo rpmMkTemp\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "sac'het eo bet seveniñ\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s : sac'het eo bet headerRead : %s\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s : sac'het eo bet rpmReadSignature : %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s : sac'het eo bet rpmWriteSignature : %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "sac'het eo rpmMkTemp\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s : sac'het eo bet writeLead : %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "sach'et eo bet erlec'hiañ %s : %s\n"
@@ -3452,5 +3712,5 @@ msgstr ""
msgid "don't verify header+payload signature"
msgstr ""
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Sac'het eo bet seveniñ %s : %s\n"
+#~ msgid "Fread failed: %s"
+#~ msgstr "sac'het eo bet Fread : %s"
diff --git a/po/ca.gmo b/po/ca.gmo
index 0d7e336f..b649e9e6 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 97eae231..2904db9d 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -3,15 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2015
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
-"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Catalan (http://www.transifex.com/projects/p/rpm/language/"
-"ca/)\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-08-26 13:57+0000\n"
+"Last-Translator: Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>\n"
+"Language-Team: Catalan (http://www.transifex.com/rpm-team/rpm/language/ca/)\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -26,7 +26,7 @@ msgstr "%s: %s\n"
#: cliutils.c:27 lib/poptALL.c:57
#, c-format
msgid "RPM version %s\n"
-msgstr "Versió de l'RPM %s\n"
+msgstr "Versió %s de RPM\n"
#: cliutils.c:32
#, c-format
@@ -68,7 +68,7 @@ msgstr "no s'ha pogut tornar a obrir les dades de càrrega: %s\n"
#: rpmqv.c:41
msgid "Query/Verify package selection options:"
-msgstr ""
+msgstr "Opcions de selecció de paquets de consulta o verificació:"
#: rpmqv.c:46
msgid "Query options (with -q or --query):"
@@ -80,16 +80,16 @@ msgstr "Opcions de verificació (amb -V o --verify):"
#: rpmqv.c:57
msgid "Install/Upgrade/Erase options:"
-msgstr "Opcions d'instal·lació/actualització/supressió:"
+msgstr "Opcions d'instal·lació, actualització o supressió:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
-msgstr "Opcions comunes per a tots els modes d'rpm i executables:"
+msgstr "Opcions comunes per a tots els modes rpm i executables:"
#: rpmqv.c:121
msgid "one type of query/verify may be performed at a time"
-msgstr "només es pot realitzar un tipus de consulta/verificació alhora"
+msgstr "només es pot realitzar un tipus consulta o verifica alhora"
#: rpmqv.c:125
msgid "unexpected query flags"
@@ -101,19 +101,20 @@ msgstr "format inesperat de la consulta"
#: rpmqv.c:131
msgid "unexpected query source"
-msgstr "font inesperada de la consulta"
+msgstr "origen inesperat de la consulta"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "només es pot especificar un mode principal"
#: rpmqv.c:154
msgid "only installation and upgrading may be forced"
-msgstr ""
+msgstr "només es pot forçar la instal·lació i l'actualització"
#: rpmqv.c:156
msgid "files may only be relocated during package installation"
-msgstr "només es poden reubicar els fitxers durant la instal·lació d'un paquet"
+msgstr ""
+"només es poden traslladar els fitxers durant la instal·lació del paquet"
#: rpmqv.c:159
msgid "cannot use --prefix with --relocate or --excludepath"
@@ -124,13 +125,11 @@ msgid ""
"--relocate and --excludepath may only be used when installing new packages"
msgstr ""
"només es poden utilitzar les opcions --relocate i --excludepath quan "
-"s'estiguin instal·lant paquets nous"
+"s'instal·lin paquets nous"
#: rpmqv.c:165
msgid "--prefix may only be used when installing new packages"
-msgstr ""
-"només es pot utilitzar l'opció --prefix quan s'estiguin instal·lant paquets "
-"nous"
+msgstr "només es pot utilitzar l'opció --prefix quan s'instal·lin paquets nous"
#: rpmqv.c:168
msgid "arguments to --prefix must begin with a /"
@@ -148,19 +147,19 @@ msgstr ""
#: rpmqv.c:179
msgid "--replacepkgs may only be specified during package installation"
msgstr ""
-"només es pot especificar l'opció --replacepkgs durant la instal·lació d'un "
+"només es pot especificar l'opció --replacepkgs durant la instal·lació del "
"paquet"
#: rpmqv.c:183
msgid "--excludedocs may only be specified during package installation"
msgstr ""
-"només es pot especificar l'opció --excludedocs durant la instal·lació d'un "
+"només es pot especificar l'opció --excludedocs durant la instal·lació del "
"paquet"
#: rpmqv.c:187
msgid "--includedocs may only be specified during package installation"
msgstr ""
-"només es pot especificar l'opció --includedocs durant la instal·lació d'un "
+"només es pot especificar l'opció --includedocs durant la instal·lació del "
"paquet"
#: rpmqv.c:191
@@ -170,37 +169,35 @@ msgstr "només es pot especificar una opció entre --excludedocs i --includedocs
#: rpmqv.c:195
msgid "--ignorearch may only be specified during package installation"
msgstr ""
-"només es pot especificar l'opció --ignorearch durant la instal·lació d'un "
+"només es pot especificar l'opció --ignorearch durant la instal·lació del "
"paquet"
#: rpmqv.c:199
msgid "--ignoreos may only be specified during package installation"
msgstr ""
-"només es pot especificar l'opció --ignoreos durant la instal·lació d'un "
-"paquet"
+"només es pot especificar l'opció --ignoreos durant la instal·lació del paquet"
#: rpmqv.c:204
msgid "--ignoresize may only be specified during package installation"
msgstr ""
-"només es pot especificar l'opció --ignoresize durant la instal·lació d'un "
+"només es pot especificar l'opció --ignoresize durant la instal·lació del "
"paquet"
#: rpmqv.c:208
msgid "--allmatches may only be specified during package erasure"
msgstr ""
-"només es pot especificar l'opció --allmatches durant la supressió d'un paquet"
+"només es pot especificar l'opció --allmatches durant la supressió del paquet"
#: rpmqv.c:212
msgid "--allfiles may only be specified during package installation"
msgstr ""
-"només es pot especificar l'opció --allfiles durant la instal·lació d'un "
-"paquet"
+"només es pot especificar l'opció --allfiles durant la instal·lació del paquet"
#: rpmqv.c:217
msgid "--justdb may only be specified during package installation and erasure"
msgstr ""
-"només es pot especificar l'opció --justdb durant la instal·lació i supressió "
-"d'un paquet"
+"només es pot especificar l'opció --justdb durant la instal·lació i la "
+"supressió del paquet"
#: rpmqv.c:222
msgid ""
@@ -208,7 +205,7 @@ msgid ""
"and erasure"
msgstr ""
"només es poden especificar les opcions d'inhabilitació d'scripts durant la "
-"instal·lació i supressió d'un paquet"
+"instal·lació i la supressió del paquet"
#: rpmqv.c:227
msgid ""
@@ -216,7 +213,7 @@ msgid ""
"and erasure"
msgstr ""
"només es poden especificar les opcions d'inhabilitació de l'activador durant "
-"la instal·lació i supressió d'un paquet"
+"la instal·lació i la supressió del paquet"
#: rpmqv.c:231
msgid ""
@@ -228,7 +225,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "els arguments a --root (-r) han de començar per /"
@@ -246,215 +243,275 @@ msgstr "no s'han donat arguments per a consultar"
#: rpmqv.c:315
msgid "no arguments given for verify"
-msgstr "no s'han donat arguments per a verificar"
+msgstr "no s'han proporcionat arguments per verificar"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
-msgstr "el buildroot ja s'ha especificat, s'està ignorant %s\n"
+msgstr "el buildroot ja s'ha especificat, s'ignora %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-"munta amb %prep (desempaqueta els fonts i aplica els pedaços) des del "
-"<fitxer d'especificació>"
+"construeix mitjançant el %prep (desempaqueta els fonts i aplica els pedaços) "
+"des del <fitxer spec>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
-msgstr "<fitxer d'especificació>"
+msgstr "<fitxer spec>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-"munta amb %build (%prep, després compila) des del <fitxer d'especificació>"
+"construeix mitjançant el %build (%prep, després compila) des del <fitxer "
+"spec>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-"munta amb %install (%prep, %build i després instal·la) des del <fitxer "
-"d'especificació>"
+"construeix mitjançant el %install (%prep, %build i després instal·la) des "
+"del <fitxer spec>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
-msgstr "verifica la secció %files de <fitxer d'especificació>"
+msgstr "verifica la secció %files des del <fitxer spec>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
-msgstr "munta els paquets de codi font i binaris de <fitxer d'especificació>"
+msgstr ""
+"construeix els paquets del codi font i del binaris des del <fitxer spec>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
-msgstr "munta només el paquet binari de <fitxer d'especificació>"
+msgstr "construeix només el paquet dels binaris des del <fitxer spec>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
-msgstr "munta només el paquet font de <fitxer d'especificació>"
+msgstr "construeix només el paquet del codi font des del <fitxer spec>"
+
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"construeix mitjançant el %prep (desempaqueta els fonts i aplica els pedaços) "
+"des del <fitxer spec>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<paquet dels fonts>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+"construeix mitjançant el %build (%prep, després compila) des del <fitxer "
+"spec>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"construeix mitjançant el %install (%prep, %build i instal·la) des del "
+"<paquet dels fonts>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "verifica la secció %files des del <fitxer spec>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "construeix el paquet dels binaris des del <paquet dels fonts>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "construeix el paquet dels binaris des del <paquet dels fonts>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "construeix només el paquet del codi font des del <fitxer spec>"
-#: rpmbuild.c:142
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-"munta amb %prep (desempaqueta els fonts i aplica els pedaços) des de "
-"l'<arxiu tar>"
+"construeix mitjançant el %prep (desempaqueta els fonts i aplica els pedaços) "
+"des de l'<arxiu tar>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<arxiu tar>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
-msgstr "munta amb %build (%prep, després compila) des de l'<arxiu tar>"
+msgstr ""
+"construeix mitjançant el %build (%prep, després compila) des de l'<arxiu tar>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
-msgstr "munta amb %install (%prep, %build, instal·la) des de l'<arxiu tar>"
+msgstr ""
+"construeix mitjançant el %install (%prep, %build, instal·la) des de l'<arxiu "
+"tar>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "verifica la secció %files des de l'<arxiu tar>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
-msgstr "munta els paquets font i binari des de l'<arxiu tar>"
+msgstr ""
+"construeix els paquets del codi font i dels binaris des de l'<arxiu tar>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
-msgstr "munta el paquet binari des de l'<arxiu tar> només"
+msgstr "construeix el paquet dels binari només des de l'<arxiu tar>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
-msgstr "munta els paquets font només des de l'<arxiu tar>"
+msgstr "construeix el paquet del codi font només des de l'<arxiu tar>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
-msgstr "munta els paquets binaris des de <paquet font>"
-
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<paquet font>"
+msgstr "construeix el paquet dels binaris des del <paquet dels fonts>"
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr "munta amb %install (%prep, %build i instal·la) des del <paquet font>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
-msgstr "omet l'arrel de compilació"
+msgstr "substitueix l'arrel de la construcció"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "No es pot obrir el directori actual: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
-msgstr "suprimeix l'arbre del muntatge en acabar"
+msgstr "suprimeix l'arbre de la construcció en acabar"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignora ExcludeArch: directives del fitxer d'especificació"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "depura la màquina d'estat de fitxers"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
-msgstr "no executis cap fase del muntatge"
+msgstr "no executis cap de les etapes de la construcció"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
-msgstr "no verifiquis les dependències del muntatge"
+msgstr "no verifiquis les dependències de la construcció"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
+"genera capçaleres del paquet compatibles amb l'empaquetament rpm v3 (llegat)"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
-msgstr ""
+msgstr "no executis l'etapa %clean de la construcció"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "no executis l'etapa %clean de la construcció"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
-msgstr ""
+msgstr "no executis l'etapa %check de la construcció"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
-msgstr "no acceptis els msgstr d'i18N des d'un fitxer d'especificació"
+msgstr "no acceptis els msgstr d'i18N del fitxer spec"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "suprimeix els fonts en acabar"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
-msgstr "suprimeix el fitxer d'especificació en acabar"
+msgstr "suprimeix el fitxer spec en acabar"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "vés directament a l'etapa especificada (només per a c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
-msgstr "omet plataforma objectiu"
+msgstr "substitueix la plataforma"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-"Opcions de muntatge amb [ <fitxer d'especificacions> | <arxiu tar> | <paquet "
-"font> ]:"
+"Opcions de construcció amb [ <fitxer spec> | <arxiu tar> | <paquet dels "
+"fonts> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
-msgstr "Han fallat les dependències de muntatge:\n"
+msgstr "Han fallat les dependències de la construcció:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "No s'ha pogut obrir el fitxer d'especificacions %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
-msgstr "No s'ha pogut obrir un conducte per al tar: %m\n"
+msgstr "Ha fallat l'obertura de la canonada per al tar: %m\n"
+
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Més d'un fitxer en una línia: %s\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
-msgstr "No s'ha pogut llegir el fitxer d'especificacions des de %s\n"
+msgstr "Ha fallat la lectura del fitxer spec de %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
-msgstr "No s'ha pogut canviar el nom de %s per %s: %m\n"
+msgstr "Ha fallat el canvi de nom de %s a %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
-msgstr "No s'ha pogut obtenir l'estat de %s: %m\n"
+msgstr "Ha fallat l'obtenció de l'estat de %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "El fitxer %s no és un fitxer regular.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "El fitxer %s no sembla un fitxer d'especificacions.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
-msgstr "S'estan muntant les plataformes destí: %s\n"
+msgstr "S'estan construint per a les plataformes: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
-msgstr "S'està muntant per al destí %s\n"
+msgstr "S'està construint per a %s\n"
#: rpmdb.c:25
msgid "initialize database"
@@ -463,8 +520,8 @@ msgstr "initialitza la base de dades"
#: rpmdb.c:27
msgid "rebuild database inverted lists from installed package headers"
msgstr ""
-"torna a muntar les llistes invertides de la base de dades des de les "
-"capçaleres de paquets instal·lades"
+"reconstrueix la base de dades de les llistes inverses des de les capçaleres "
+"dels paquets instal·lats"
#: rpmdb.c:30
msgid "verify database files"
@@ -473,10 +530,13 @@ msgstr "verifica els fitxers de la base de dades"
#: rpmdb.c:32
msgid "export database to stdout header list"
msgstr ""
+"exporta la base de dades al llistat de capçaleres de la sortida estàndard"
#: rpmdb.c:35
msgid "import database from stdin header list"
msgstr ""
+"importa la base de dades des de la llista de capçaleres de l'entrada "
+"estàndard"
#: rpmdb.c:42
msgid "Database options:"
@@ -492,102 +552,118 @@ msgstr "importa una clau pública armada"
#: rpmkeys.c:28
msgid "don't import, but tell if it would work or not"
-msgstr ""
+msgstr "no importis, però diguis si podria funcionar o no"
#: rpmkeys.c:31 rpmkeys.c:33
msgid "list keys from RPM keyring"
-msgstr ""
+msgstr "llista les claus des de l'anell de claus RPM"
#: rpmkeys.c:40
msgid "Keyring options:"
-msgstr ""
+msgstr "Opcions de l'anell de claus:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "no s'han donat arguments"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
-msgstr ""
+msgstr "signa els paquets"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
-msgstr "signa els paquets (igual que --addsign)"
+msgstr "signa els paquets (idèntic a --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "suprimeix les signatures dels paquets"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "signa els paquets"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Opcions de la signatura:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "No es pot executar %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Heu d'establir «%%_gpg_name» al vostre fitxer de macros\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Introduïu la contrasenya:"
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "La contrasenya és correcta.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "només es pot utilitzar l'opció --prefix quan s'instal·lin paquets nous"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
msgstr ""
+"només es pot especificar l'opció --allmatches durant la supressió del paquet"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
-msgstr ""
+msgstr "analitza sintàcticament els fitxers spec per la sortida estàndard"
#: rpmspec.c:28
msgid "query spec file(s)"
-msgstr ""
+msgstr "consulta els fitxers spec"
#: rpmspec.c:30
msgid "operate on binary rpms generated by spec (default)"
-msgstr ""
+msgstr "opera sobre els binaris dels rpm generats amb el spec (per defecte)"
#: rpmspec.c:32
msgid "operate on source rpm generated by spec"
-msgstr ""
+msgstr "opera sobre els fonts del rpm generat amb el spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
-msgstr "utilitza el format de consulta següent"
+msgstr "utilitza el següent format de consulta"
#: rpmspec.c:45
msgid "Spec options:"
-msgstr ""
+msgstr "Opcions de spec:"
#: rpmspec.c:90
msgid "no arguments given for parse"
-msgstr ""
+msgstr "no s'ha proporcionat arguments per analitzar sintàcticament"
#: build/build.c:120
#, c-format
msgid "Unable to open temp file: %s\n"
-msgstr ""
+msgstr "No es pot obrir el fitxer temporal: %s\n"
#: build/build.c:126
#, c-format
msgid "Unable to open stream: %s\n"
-msgstr ""
+msgstr "No es pot obrir el flux: %s\n"
#: build/build.c:161
#, c-format
msgid "Executing(%s): %s\n"
-msgstr "Executant(%s): %s\n"
+msgstr "Execució(%s): %s\n"
#: build/build.c:168
#, c-format
@@ -602,7 +678,7 @@ msgstr ""
#: build/build.c:184
#, c-format
msgid "Bad exit status from %s (%s)\n"
-msgstr "L'estat de sortida de %s (%s) és erroni\n"
+msgstr "Estat incorrecte de sortida de %s (%s)\n"
#: build/build.c:291
msgid ""
@@ -612,7 +688,7 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Errors del muntatge de l'RPM:\n"
+"Errors de construcció del RPM:\n"
#: build/expression.c:215
msgid "syntax error while parsing ==\n"
@@ -663,201 +739,201 @@ msgstr "&& i || no són disponibles per a les cadenes\n"
msgid "syntax error in expression\n"
msgstr "error de sintaxi a l'expressió\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
-msgstr "Manca '(' a %s %s\n"
+msgstr "Falta '(' a %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
-msgstr "Manca ')' a %s(%s\n"
+msgstr "Falta ')' a %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "L'element %s no és vàlid: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
-msgstr "Manca %s a %s %s\n"
+msgstr "Falta %s a %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "%s() va seguit d'un caràcter que no és un espai en blanc: %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Sintaxi incorrecta: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
-msgstr "Especificació de mode incorrecta: %s(%s)\n"
+msgstr "mode incorrecte del spec: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
-msgstr "Especificació de dirmode incorrecta: %s(%s)\n"
+msgstr "dirmode incorrecte del spec: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Capacitat invàlida: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
-msgstr "No s'ha muntat amb disponibilitat de fitxers\n"
+msgstr "No s'ha construït amb disponibilitat de fitxers\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "El fitxer ha de començar amb \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
-msgstr "L'algorisme %u de resum del fitxer és desconegut, s'està usant MD5\n"
+msgstr "Es desconeix l'algorisme de resum del fitxer %u, es torna al MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "El fitxer apareix dues vegades: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "L'enllaç simbòlic apunta al BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
-msgstr ""
+msgstr "No es va trobar el directori: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "No s'ha trobat el fitxer: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
-msgstr ""
+msgstr "No és un directori: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: no es pot carregar l'etiqueta incorrecta (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
-msgstr "%s: ha fallat la clau pública.\n"
+msgstr "%s: ha fallat la lectura de la clau pública.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: no és una clau pública armada.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "El fitxer ha de començar amb \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "El glob no ha trobat el fitxer: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
-msgstr ""
+msgstr "No s'ha pogut obrir el fitxer %s del %%files: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "línia: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "El glob no ha trobat el fitxer: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
-msgstr ""
+msgstr "Més d'un fitxer en una línia: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
-msgstr "Fitxer no vàlid: %s: %s\n"
+msgstr "Fitxer incorrecte: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Propietari/grup incorrecte: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
-msgstr "S'està comprovant fitxers no empaquetats: %s\n"
+msgstr "S'està comprovant si hi ha fitxers no empaquetats: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -866,118 +942,119 @@ msgstr ""
"Hi ha fitxers instal·lats però no empaquetats:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
-msgstr ""
+msgstr "S'estan processant els fitxers: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Els binaris dependents de l'arquitectura estan en el paquet noarch\n"
#: build/pack.c:90
#, c-format
msgid "create archive failed on file %s: %s\n"
-msgstr ""
+msgstr "ha fallat la creació de l'arxiu al fitxer %s: %s\n"
#: build/pack.c:93
#, c-format
msgid "create archive failed: %s\n"
-msgstr ""
+msgstr "ha fallat la creació de l'arxiu: %s\n"
#: build/pack.c:120
#, c-format
msgid "Could not open %s file: %s\n"
-msgstr ""
+msgstr "No s'ha pogut obrir el fitxer %s: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: línia: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "El nom de màquina no es pot fer canònic: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "No es pot tornar a carregar la capçalera de signatura.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Compressió de dades desconeguda: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "No es pot crear la regió de capçalera no modificable.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "No es pot obrir %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "No es pot escriure el paquet: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "No s'ha pogut escriure la capçalera temporal\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
-msgstr "Dades CSA invàlides\n"
+msgstr "Dades CSA incorrectes\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "No es pot executar %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: El Fread ha fallat: %s\n"
+msgstr "Ha fallat el fread al fitxer%s: %s\n"
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
-msgstr "S'ha escrit: %s\n"
+msgstr "Es va escriure: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "S'està executant: \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Ha fallat l'execució de \"%s\" .\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Ha fallat la verificació del paquet \"%s\".\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "No es pot generar el nom de fitxer de sortida per al paquet %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "no es pot crear %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "línia %d: segon %s\n"
@@ -990,17 +1067,17 @@ msgstr ""
#: build/parseChangelog.c:146
#, c-format
msgid "%%changelog entries must start with *\n"
-msgstr "les entrades del %%changelog han de començar amb *\n"
+msgstr "les entrades %%changelog han de començar amb *\n"
#: build/parseChangelog.c:154
#, c-format
msgid "incomplete %%changelog entry\n"
-msgstr "l'entrada de %%changelog no és completa\n"
+msgstr "Entrada incompleta del %%changelog\n"
#: build/parseChangelog.c:169
#, c-format
msgid "bad date in %%changelog: %s\n"
-msgstr "la data de %%changelog no és correcta: %s\n"
+msgstr "data incorrecta al %%changelog: %s\n"
#: build/parseChangelog.c:174
#, c-format
@@ -1010,60 +1087,65 @@ msgstr "el %%changelog no està en ordre cronològic descendent\n"
#: build/parseChangelog.c:182 build/parseChangelog.c:193
#, c-format
msgid "missing name in %%changelog\n"
-msgstr "manca el nom a %%changelog\n"
+msgstr "falta el nom a %%changelog\n"
#: build/parseChangelog.c:200
#, c-format
msgid "no description in %%changelog\n"
-msgstr "no hi ha descripció a %%changelog\n"
+msgstr "sense descripció al %%changelog\n"
#: build/parseChangelog.c:237
#, c-format
msgid "line %d: second %%changelog\n"
-msgstr ""
+msgstr "línia %d: segon %%changelog\n"
#: build/parseDescription.c:32
#, c-format
msgid "line %d: Error parsing %%description: %s\n"
-msgstr "línia %d: s'ha produït un error en analitzar %%description: %s\n"
+msgstr ""
+"línia %d: S'ha produït un error en analitzar sintàcticament el "
+"%%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
-msgstr "línia %d: opció incorrecta %s: %s\n"
+msgstr "línia %d: Opció %s incorrecta: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "línia %d: massa noms: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
-msgstr "línia %d: no existeix Package: %s\n"
+msgstr "línia %d: No existeix el paquet: %s\n"
#: build/parseFiles.c:33
#, c-format
msgid "line %d: Error parsing %%files: %s\n"
-msgstr "línia %d: s'ha produït un error en analitzar %%files: %s\n"
+msgstr ""
+"línia %d: S'ha produït un error en analitzar sintàcticament el %%files: %s\n"
#: build/parseFiles.c:76
#, c-format
msgid "line %d: second %%files\n"
-msgstr ""
+msgstr "línia %d: segon %%files\n"
#: build/parsePolicies.c:32
#, c-format
msgid "line %d: Error parsing %%policies: %s\n"
msgstr ""
+"línia %d: S'ha produït un error en analitzar sintàcticament el %%policies: "
+"%s\n"
#: build/parsePreamble.c:71
#, c-format
msgid "Error parsing tag field: %s\n"
-msgstr ""
+msgstr "S'ha produït un error en analitzar sintàcticament el camp tag: %s\n"
#: build/parsePreamble.c:164
#, c-format
@@ -1073,328 +1155,365 @@ msgstr "línia %d: número incorrecte: %s\n"
#: build/parsePreamble.c:170
#, c-format
msgid "line %d: Bad no%s number: %u\n"
-msgstr "línia %d: Numero dolent%s número: %u\n"
+msgstr "línia %d: Número incorrecte de no%s: %u\n"
#: build/parsePreamble.c:233
#, c-format
msgid "line %d: Bad %s number: %s\n"
-msgstr "línia %d: número %s incorrecte: %s\n"
+msgstr "línia %d: número incorrecte %s: %s\n"
#: build/parsePreamble.c:247
#, c-format
msgid "%s %d defined multiple times\n"
-msgstr "%s %d definit múltiples vegades\n"
+msgstr "%s %d es va definir diverses vegades\n"
#: build/parsePreamble.c:292
#, c-format
msgid "Downloading %s to %s\n"
-msgstr ""
+msgstr "S'està baixant %s a %s\n"
#: build/parsePreamble.c:295
#, c-format
msgid "Couldn't download %s\n"
-msgstr ""
+msgstr "No s'ha pogut baixar %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "S'ha exclòs l'arquitectura: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
-msgstr "No s'inclou l'arquitectura: %s\n"
+msgstr "No s'ha inclòs l'arquitectura: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "S'ha exclòs el SO: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "No s'ha inclòs el SO: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
-msgstr "El camp %s ha de ser present al paquet: %s\n"
+msgstr "El camp %s ha d'estar present al paquet: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
-msgstr "L'entrada %s és duplicada al paquet: %s\n"
+msgstr "L'entrada %s està duplicada al paquet: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "No s'ha pogut obrir la icona %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "No s'ha pogut llegir la icona %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
-msgstr "El tipus d'icona és desconegut: %s\n"
+msgstr "Tipus desconegut d'icona: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
-msgstr "línia %d: l'etiqueta pren un únic testimoni: %s\n"
-
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
+msgstr "línia %d: L'etiqueta pren un únic testimoni: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr ""
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
+msgstr "línia %d: El caràcter '%c' no està permès: %s\n"
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
-msgstr ""
+#, fuzzy
+msgid "Illegal sequence \"..\""
+msgstr "línia %d: La seqüència \"..\" no està permesa: %s\n"
+
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "línia %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: línia: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "línia %d: l'etiqueta és malament formada: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "línia %d: l'etiqueta és buida: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "línia %d: els prefixos no poden acabar en «/»: %s \n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "línia %d: «Docdir» ha de començar per «/»: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "línia %d: el camp Epoch ha d'ésser un nombre sense signe: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
-msgstr "línia %d: %s és incorrecte: qualificadors: %s\n"
+msgstr "línia %d: %s incorrecte: qualificadors: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
-msgstr "línia %d: el format de «BuildArchitecture» és incorrecte: %s\n"
+msgstr "línia %d: Format incorrecte del BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "linia %d: Només els subpaquets noarch estan suportats: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "S'ha produït un error intern: l'etiqueta %d és incorrecta\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
-msgstr ""
+msgstr "línia %d: %s està en desús: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
-msgstr "L'especificació del paquet és incorrecta: %s\n"
+msgstr "Especificació incorrecta del paquet: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "El paquet ja existeix: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
-msgstr "línia %d: l'etiqueta és desconeguda: %s\n"
+msgstr "línia %d: Etiqueta desconeguda: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} no pot estar buit\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
-msgstr "%%{buildroot} no pot ésser \"/\"\n"
+msgstr "%%{buildroot} no pot ser \"/\"\n"
#: build/parsePrep.c:28
#, c-format
msgid "Bad source: %s: %s\n"
-msgstr "La font és incorrecta: %s: %s\n"
+msgstr "Fonts incorrectes: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "No existeix el pedaç número %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch sense l'etiqueta \"Patch:\" corresponent\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "No existeix la font número %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
-msgstr "Falta l'etiqueta \"Source:\" en el fitxer d'especificacions\n"
+msgstr "Sense \"Source:\" etiqueta al fitxer spec\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
-msgstr "Hi ha hagut un error en analitzar %%setup: %s\n"
+msgstr "S'ha produït un error en analitzar sintàcticament el %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
-msgstr "línia %d: l'argument a %%setup és incorrecte: %s\n"
+msgstr "línia %d: Argument incorrecte al %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
-msgstr "línia %d: l'opció de %%setup %s és incorrecta: %s\n"
+msgstr "línia %d: Opció %s incorrecta del %%setup: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "El número de pedaç %s no és vàlid: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "línia %d: segon %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
+msgstr "dependència no vàlida"
+
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Es requereix la versió"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
-msgstr ""
+msgstr "línia %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "línia %d: els activadors han de tenir --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
-msgstr "línia %d: s'ha produït un error en analitzar %s: %s\n"
+msgstr "línia %d: S'ha produït un error en analitzar sintàcticament %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "línia %d: l'script intern ha d'acabar en «>»: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "línia %d: el programa d'script ha de començar per «/»: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "línia %d: Segon %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "línia %d: l'script intern no està disponible: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "línia %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "No es pot obrir %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
-msgstr ""
+msgstr "%s:%d: S'esperava l'argument per %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
-msgstr ""
+msgstr "línia %d: %%if sense tancar\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
-msgstr ""
+msgstr "%s:%d: condició incorrecta del %%if\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: s'ha obtingut un %%else sense %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: s'ha obtingut un %%endif sense %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
-msgstr "No s'ha trobat cap arquitectura compatible per al muntatge\n"
+msgstr "No s'ha trobat cap arquitectura compatible per a la construcció\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "El paquet no té %%description: %s\n"
@@ -1411,17 +1530,17 @@ msgstr ""
#: build/policies.c:101
msgid "Failed to get policies from header\n"
-msgstr ""
+msgstr "Ha fallat l'obtenció de les polítiques de les capçaleres\n"
#: build/policies.c:154
#, c-format
msgid "%%semodule requires a file path\n"
-msgstr ""
+msgstr "%%semodule requereix el camí a un fitxer\n"
#: build/policies.c:163
#, c-format
msgid "Failed to read policy file: %s\n"
-msgstr ""
+msgstr "Ha fallat la lectura del pitxer de política: %s\n"
#: build/policies.c:170
#, c-format
@@ -1431,7 +1550,7 @@ msgstr ""
#: build/policies.c:187
#, c-format
msgid "Failed to determine a policy name: %s\n"
-msgstr ""
+msgstr "Ha fallat la determinació d'un nom de política: %s\n"
#: build/policies.c:199
#, c-format
@@ -1443,310 +1562,300 @@ msgstr ""
#: build/policies.c:246
#, c-format
msgid "Error parsing %s: %s\n"
-msgstr ""
+msgstr "S'ha produït un error en analitzar sintàcticament %s: %s\n"
#: build/policies.c:252
#, c-format
msgid "Expecting %%semodule tag: %s\n"
-msgstr ""
+msgstr "S'esperava l'etiqueta %%semodule: %s\n"
#: build/policies.c:262
#, c-format
msgid "Missing module path in line: %s\n"
-msgstr ""
+msgstr "Falta el camí al mòdul en la línia: %s\n"
#: build/policies.c:268
#, c-format
msgid "Too many arguments in line: %s\n"
-msgstr ""
+msgstr "Hi ha massa arguments en la línia: %s\n"
#: build/policies.c:307
#, c-format
msgid "Processing policies: %s\n"
-msgstr ""
+msgstr "S'estan processant les polítiques: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
-msgstr ""
+msgstr "S'ignora l'expressió regular incorrecta %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "No s'ha pogut crear la canonada per a %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "No s'ha pogut executar %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "No s'ha pogut crear el procés fill de «%s»: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
-msgstr ""
+msgstr "ha fallat %s: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
-msgstr ""
+msgstr "ha fallat l'escriptura de totes les dades a %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
-msgstr ""
+msgstr "operador incorrecte"
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
-msgstr ""
+msgstr "format incorrecte"
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
-msgstr ""
-
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Ha fallat la conversió de %s a enter gran.\n"
+msgstr "dependència no vàlida (%s): %s\n"
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
-msgstr ""
+msgstr "Classificador buit de fitxer\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
-msgstr ""
+msgstr "Sense atributs de fitxer configurats\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "Ha fallat magic_open(0x%x): %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "Ha fallat magic_load: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Ha fallat el reconeixement del fitxer \"%s\": mode %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "S'està cercant %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Ha fallat la cerca de %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-"ha fallat la consulta del fitxer d'especificació %s, no es pot analitzar\n"
+"ha fallat la consulta del fitxer spec %s, no es pot analitzar "
+"sintàcticament\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s és un Delta RPM i no es pot instal·lar directament\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Les dades (%s) no estan disponibles al paquet %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "el paquet %s ja s'ha afegit, s'està ignorant %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "el paquet %s ja es va afegir, s'està reemplaçant per %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
-msgstr "(no és una xifra)"
+msgstr "(no és un número)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(no és base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(tipus invàlid)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(no és un blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
-msgstr "(tipus d'XML invàlid)"
+msgstr "(tipus invàlid d'XML)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(no és una signatura d'OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
-msgstr ""
+msgstr "Data no vàlida %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
-msgstr ""
+msgstr "normal"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
-msgstr ""
+msgstr "substituït"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
-msgstr ""
+msgstr "no instal·lat"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
-msgstr ""
+msgstr "compartit per xarxa"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
-msgstr ""
+msgstr "color incorrecte"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
-msgstr ""
+msgstr "falta"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
-msgstr ""
+msgstr "(deconegut)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
-msgstr ""
+msgstr "(no és una cadena)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
-msgstr "%s desat com a %s\n"
+msgstr "%s s'ha desat com a %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
-msgstr "%s creat com a %s\n"
+msgstr "%s s'ha creat com a %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
-msgstr ""
+msgstr "%s %s: ha fallat la supressió: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
-msgstr ""
+msgstr "directori"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
-msgstr ""
+msgstr "fitxer"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1763,15 +1872,15 @@ msgstr "'MACRO EXPR'"
#: lib/poptALL.c:178
msgid "define MACRO with value EXPR"
-msgstr "defineix la MACRO amb el valor EXPR"
+msgstr "defineix la MACRO amb el valor de l'EXPR"
#: lib/poptALL.c:181
msgid "undefine MACRO"
-msgstr ""
+msgstr "des-defineix la MACRO"
#: lib/poptALL.c:182
msgid "MACRO"
-msgstr ""
+msgstr "MACRO"
#: lib/poptALL.c:184
msgid "print macro expansion of EXPR"
@@ -1783,7 +1892,7 @@ msgstr "'EXPR'"
#: lib/poptALL.c:187 lib/poptALL.c:206
msgid "read <FILE:...> instead of default file(s)"
-msgstr "llegeix <FILE:...> en comptes dels fitxers per defecte"
+msgstr "llegeix <FITXER:...> en comptes dels fitxers per defecte"
#: lib/poptALL.c:188 lib/poptALL.c:207
msgid "<FILE:...>"
@@ -1791,15 +1900,15 @@ msgstr "<FITXER:...>"
#: lib/poptALL.c:193
msgid "don't enable any plugins"
-msgstr ""
+msgstr "no habilitis cap complement"
#: lib/poptALL.c:196
msgid "don't verify package digest(s)"
-msgstr "no verifiquis els resums dels fitxers"
+msgstr "no verifiquis els resums dels paquets"
#: lib/poptALL.c:198
msgid "don't verify database header(s) when retrieved"
-msgstr "no verifiquis les capçaleres de la base de dades en obtenir-les"
+msgstr "no verifiquis les capçaleres de la base de dades quan s'obtinguin"
#: lib/poptALL.c:200
msgid "don't verify package signature(s)"
@@ -1815,27 +1924,27 @@ msgstr "CMD"
#: lib/poptALL.c:209
msgid "use ROOT as top level directory"
-msgstr "utilitza ROOT com a directori d'alt nivell"
+msgstr "utilitza l'ARREL com el directori de nivell superior"
#: lib/poptALL.c:210
msgid "ROOT"
-msgstr "ROOT"
+msgstr "ARREL"
#: lib/poptALL.c:212
msgid "use database in DIRECTORY"
-msgstr ""
+msgstr "utilitza la base de dades en el DIRECTORI"
#: lib/poptALL.c:213
msgid "DIRECTORY"
-msgstr ""
+msgstr "DIRECTORI"
#: lib/poptALL.c:216
msgid "display known query tags"
-msgstr "mostra etiquetes de consulta conegudes"
+msgstr "mostra les etiquetes conegudes de consulta"
#: lib/poptALL.c:218
msgid "display final rpmrc and macro configuration"
-msgstr "mostra rpmrc final i la configuració de macros"
+msgstr "mostra el rpmrc final i la configuració de les macros"
#: lib/poptALL.c:220
msgid "provide less detailed output"
@@ -1847,7 +1956,7 @@ msgstr "proporciona sortides més detallades"
#: lib/poptALL.c:224
msgid "print the version of rpm being used"
-msgstr "escriu la versió d'RPM que s'està usant"
+msgstr "escriu la versió del RPM que s'està utilitzant"
#: lib/poptALL.c:230
msgid "debug payload file state machine"
@@ -1855,7 +1964,7 @@ msgstr "depura la màquina d'estats del fitxer de dades"
#: lib/poptALL.c:236
msgid "debug rpmio I/O"
-msgstr "depura l'E/S de l'rpmio"
+msgstr "depura l'E/S de rpmio"
#: lib/poptALL.c:303
#, c-format
@@ -1868,20 +1977,20 @@ msgstr "els camins exclosos han de començar per /"
#: lib/poptI.c:64
msgid "relocations must begin with a /"
-msgstr "les reubicacions han de començar per /"
+msgstr "els trasllats han de començar amb /"
#: lib/poptI.c:67
msgid "relocations must contain a ="
-msgstr "les reubicacions han de contenir ="
+msgstr "els trasllats han de contenir un ="
#: lib/poptI.c:70
msgid "relocations must have a / following the ="
-msgstr "les reubicacions han de tenir un / seguit de ="
+msgstr "els trasllats han de tenir un / a continuació del ="
#: lib/poptI.c:114
msgid "install all files, even configurations which might otherwise be skipped"
msgstr ""
-"instal·la tots els fitxers, fins i tot configuracions que podrien ser "
+"instal·la tots els fitxers, fins i tot les configuracions que podrien ser "
"ignorades"
#: lib/poptI.c:118
@@ -1894,11 +2003,11 @@ msgstr ""
#: lib/poptI.c:123
msgid "relocate files in non-relocatable package"
-msgstr "reubica els fitxers en un paquet no reubicable"
+msgstr "trasllada els fitxers al paquet sense translació"
#: lib/poptI.c:127
msgid "print dependency loops as warning"
-msgstr "escriu els bucles de dependències com a avís"
+msgstr "escriu els bucles de dependències com advertències"
#: lib/poptI.c:131
msgid "erase (uninstall) package"
@@ -1914,11 +2023,11 @@ msgstr "no instal·lis fitxers de configuració"
#: lib/poptI.c:137 lib/poptI.c:176
msgid "do not install documentation"
-msgstr "no instal·lis documentació"
+msgstr "no instal·lis la documentació"
#: lib/poptI.c:139
msgid "skip files with leading component <path> "
-msgstr "ignora fitxers amb un component inicial <camí> "
+msgstr "ignora els fitxers amb un component inicial <camí> "
#: lib/poptI.c:140
msgid "<path>"
@@ -1934,7 +2043,7 @@ msgstr "actualitza els paquets si ja estan instal·lats"
#: lib/poptI.c:148 lib/poptI.c:164 lib/poptI.c:251 lib/poptI.c:255
msgid "<packagefile>+"
-msgstr "<fitxerPaquet>+"
+msgstr "<fitxer paquet>+"
#: lib/poptI.c:150
msgid "print hash marks as package installs (good with -v)"
@@ -1958,7 +2067,7 @@ msgstr "instal·la documentació"
#: lib/poptI.c:164
msgid "install package(s)"
-msgstr "instal·la paquets"
+msgstr "instal·la els paquets"
#: lib/poptI.c:167
msgid "update the database, but do not modify the filesystem"
@@ -1968,13 +2077,13 @@ msgstr "actualitza la base de dades, però no modifiquis el sistema de fitxers"
msgid "do not verify package dependencies"
msgstr "no verifiquis les dependències dels paquets"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
-msgstr "no verificar els resums dels fitxers"
+msgstr "no verifiquis els resums dels fitxers"
#: lib/poptI.c:181
msgid "don't verify digest of files (obsolete)"
-msgstr "no verificar els resums dels fitxers (obsolet)"
+msgstr "no verifiquis els resums dels fitxers (obsolet)"
#: lib/poptI.c:183
msgid "don't install file security contexts"
@@ -1992,32 +2101,32 @@ msgstr "no executis els scriptlets del paquet"
#: lib/poptI.c:195
#, c-format
msgid "do not execute %%pre scriptlet (if any)"
-msgstr "no executis cap scriptlet %%pre"
+msgstr "no executis el scriptlet %%pre (si n'hi hagués)"
#: lib/poptI.c:198
#, c-format
msgid "do not execute %%post scriptlet (if any)"
-msgstr "no executis cap scriptlet %%post"
+msgstr "no executis el scriptlet %%post (si n'hi hagués)"
#: lib/poptI.c:201
#, c-format
msgid "do not execute %%preun scriptlet (if any)"
-msgstr "no executis cap scriptlet %%preun"
+msgstr "no executis el scriptlet %%preun (si n'hi hagués)"
#: lib/poptI.c:204
#, c-format
msgid "do not execute %%postun scriptlet (if any)"
-msgstr "no executis cap scriptlet %%postun"
+msgstr "no executis el scriptlet %%postun (si n'hi hagués)"
#: lib/poptI.c:207
#, c-format
msgid "do not execute %%pretrans scriptlet (if any)"
-msgstr ""
+msgstr "no executis el scriptlet %%pretrans (si n'hi hagués)"
#: lib/poptI.c:210
#, c-format
msgid "do not execute %%posttrans scriptlet (if any)"
-msgstr ""
+msgstr "no executis el scriptlet %%posttrans (si n'hi hagués)"
#: lib/poptI.c:213
msgid "do not execute any scriptlet(s) triggered by this package"
@@ -2057,7 +2166,7 @@ msgstr "escriu els percentatges com a instal·lació de paquets"
#: lib/poptI.c:235
msgid "relocate the package to <dir>, if relocatable"
-msgstr "reubica el paquet a <dir>, si és reubicable"
+msgstr "trasllada el paquet al <dir>, si es pot traslladar"
#: lib/poptI.c:236
msgid "<dir>"
@@ -2065,7 +2174,7 @@ msgstr "<dir>"
#: lib/poptI.c:238
msgid "relocate files from path <old> to <new>"
-msgstr "reubica els fitxers del camí <vell> al <nou>"
+msgstr "trasllada els fitxers del camí <antic> al <nou>"
#: lib/poptI.c:239
msgid "<old>=<new>"
@@ -2085,169 +2194,188 @@ msgstr "no instal·lis, però digues si funcionarà correctament o no"
#: lib/poptI.c:250
msgid "upgrade package(s)"
-msgstr "actualitza paquets"
+msgstr "actualitza els paquets"
#: lib/poptI.c:254
msgid "reinstall package(s)"
-msgstr ""
+msgstr "reinstal·la els paquets"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
-msgstr "comprova tots els paquets"
+msgstr "consulta o verifica tots els paquets"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
-msgstr "mode de comprovació de signatura"
+msgstr "mode rpm de comprovació de signatura"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
-msgstr "comprova a quins paquets pertany aquest fitxer"
+msgstr "consulta o verifica els paquets als que pertany aquest fitxer"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
-msgstr "comprova paquets en el grup"
+msgstr "consulta o verifica els paquets al grup"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
-msgstr "comprova un paquet"
+msgstr "consulta o verifica un fitxer de paquet"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
-msgstr "comprova quins paquets tenen identificador"
+msgstr "consulta o verifica els paquets amb l'identificador de paquet"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
-msgstr "comprova paquets amb identificació de capçalera"
+msgstr "consulta o verifica els paquets amb l'identificació de capçalera"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
-msgstr "mode de consulta"
+msgstr "mode rpm de consulta"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
-msgstr "comprova una instància de capçalera"
+msgstr "consulta o verifica una instància de capçalera"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
-msgstr "comprova els paquets de la transacció d'instal·lació"
+msgstr "consulta o verifica els paquets des de la transacció d'instal·lació"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "consulta els paquets exigits pel paquet"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
-msgstr "mode de verificació"
+msgstr "mode rpm de verificació"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
-msgstr "comprova les relacions de dependència dels paquets"
+msgstr "consulta o verifica els paquets que requereixen una dependència"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
-msgstr "comprova els paquets que satisfan les relacions de dependència"
+msgstr "consulta o verifica els paquets que proporcionen un dependència"
+
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "consulta o verifica els paquets que requereixen una dependència"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "consulta o verifica els paquets que requereixen una dependència"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "consulta o verifica els paquets que requereixen una dependència"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "consulta o verifica els paquets que requereixen una dependència"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:114
msgid "do not glob arguments"
-msgstr "no passis els arguments"
+msgstr "no englobis els arguments"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
-msgstr ""
-"no processis els fitxers que no pertanyin al paquet com a fitxers manifest"
+msgstr "no processis els fitxers que no pertanyin al paquet com manifests"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "mostra tots els fitxers de configuració"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
-msgstr "mostra llista de fitxers de documentació"
+msgstr "mostra tots els fitxers de documentació"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
-msgstr ""
+msgstr "mostra tots els fitxers de llicència"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
-msgstr "mostra informació bàsica del fitxer"
+msgstr "mostra la informació bàsica del fitxer"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "mostra tots els fitxers del paquet"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "omet fitxers %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
-msgstr "mostra l'estat dels fitxers de la llista"
+msgstr "mostra els estats dels fitxers llistats"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
-msgstr "no comprovis la mida dels fitxers"
+msgstr "no verifiquis la mida dels fitxers"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
-msgstr "no comprovis l'enllaç simbòlic dels fitxers"
+msgstr "no verifiquis l'enllaç simbòlic dels fitxers"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
-msgstr "no comprovis qui és el propietari dels fitxers"
+msgstr "no verifiquis qui és el propietari dels fitxers"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
-msgstr "no comprovis a quin grup pertanyen els fitxers"
+msgstr "no verifiquis a quin grup pertanyen els fitxers"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
-msgstr "no comprovis la data de modificació dels fitxers"
+msgstr "no verifiquis la data de modificació dels fitxers"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
-msgstr "no comprovis el mode dels fitxers"
+msgstr "no verifiquis el mode dels fitxers"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "no verifiquis les capacitats dels fitxers"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
-msgstr "no comprovis els contextos de seguretat dels fitxers"
+msgstr "no verifiquis els contextos de seguretat dels fitxers"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
-msgstr "no comprovis els fitxers del paquet"
+msgstr "no verifiquis els fitxers del paquet"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
-msgstr "no comprovis les relacions de dependència del paquet"
+msgstr "no verifiquis les relacions de dependència del paquet"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "no executis els scripts de verificació"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "s'espera un paquet de codi font, però s'ha trobat un de binari\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "el paquet font no conté un fitxer .spec\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "ha fallat el desempaquetat de l'arxiu%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " al fitxer "
@@ -2322,111 +2450,131 @@ msgstr "cap paquet concorda amb %s: %s\n"
msgid "no package requires %s\n"
msgstr "cap paquet necessita %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "cap paquet necessita %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "cap paquet dispara %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "cap paquet necessita %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "cap paquet necessita %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "cap paquet proporciona %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "fitxer %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "el fitxer %s no pertany a cap paquet\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "número de paquet invàlid: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
-msgstr ""
+msgstr "no s'ha pogut llegir el registre %u\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "no s'ha instal·lat el paquet %s\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "etiqueta desconeguda: «%s»\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
-msgstr ""
+msgstr "%s: ha fallat la importació de la clau %d.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: ha fallat la lectura de la importació (%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
-msgstr ""
+msgstr "%s: ha fallat el headerRead: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: la regió de capçalera inmutable no s'ha pogut llegir. El paquet és "
"corrupte?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
-msgstr "%s: El Fread ha fallat: %s\n"
+msgstr "%s: Ha fallat el fread: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NO ÉS CORRECTE"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "D'ACORD"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
-msgstr " (CLAUS NO TROBADES:"
+msgstr " (FALTEN LES CLAUS:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (CLAUS NO FIABLES:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
-msgstr "%s: ha fallat l'apertura: %s\n"
+msgstr "%s: ha fallat l'obertura: %s\n"
#: lib/rpmchroot.c:43
#, c-format
msgid "Unable to open current directory: %m\n"
-msgstr ""
+msgstr "No es pot obrir el directori actual: %m\n"
#: lib/rpmchroot.c:59 lib/rpmchroot.c:84
#, c-format
msgid "%s: chroot directory not set\n"
-msgstr ""
+msgstr "%s: directori chroot sense establir\n"
#: lib/rpmchroot.c:70
#, c-format
@@ -2436,154 +2584,205 @@ msgstr "No s'ha pogut canviar el directori root: %m\n"
#: lib/rpmchroot.c:95
#, c-format
msgid "Unable to restore root directory: %m\n"
-msgstr ""
+msgstr "No es pot restaurar el directori arrel: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NO "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "SÍ"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
-msgstr ""
-"Les dependències PreReq:, Provides:, i Obsoletes: disposen de versionatge."
+msgstr "Les dependències PreReq:, Provides: i Obsoletes: suporten versions."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"els noms de fitxer s'han emmagatzemat com una tupla (dirName,baseName,"
"dirIndex), no com a camí"
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "les dades del paquet es poden comprimir amb el bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "Les dades del paquet es poden comprimir amb xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "Les dades del paquet es poden comprimir amb bzip2."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "els fitxer de les dades del paquet tenen el prefix «./»."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
"no s'ha proporcionat implícitament el nom-versió-alliberament del paquet."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "les etiquetes de la capçalera sempre s'ordenen després de carregar-se."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "l'íntèrpret de l'scriptlet pot emprar arguments de la capçalera."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
"es pot instal·lar un conjunt d'enllaços durs a fitxer sense que estiguin "
"complets."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"els scriptlets del paquet poden accedir la base de dades rpm durant la "
"instal·lació"
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "es poden emprar scripts en lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "l'algorisme de resum de fitxer és configurable per paquet"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "suport per a capacitats de fitxer POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
+"els scriptlets del paquet es poden expandir en el moment de la instal·lació."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
+msgstr "suporta els fitxers superior als 4 GB"
+
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "no verifiquis les dependències dels paquets"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Es requereix la versió"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "dependència no vàlida"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "%c sense terminar: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "dependència no vàlida"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
-msgstr "l'usuari %s no existeix - usant el root\n"
+msgstr "no existeix l'usuari %s - s'utilitza root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
-msgstr "el grup %s no existeix - s'està usant el root\n"
+msgstr "no existeix el grup %s- s'utilitza root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
-msgstr "Valor màgic incorrecte"
+msgstr "Valor incorrecte del magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
-msgstr "Capçalera dolenta/il·legible"
+msgstr "Capçalera incorrecta o il·legible"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "La mida de la capçalera és massa gran"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
-msgstr ""
+msgstr "El fitxer és massa gran per a l'arxiu"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Tipus de fitxer desconegut"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
-msgstr ""
+msgstr "Falten fitxers"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "No hi ha coincidència de resums"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Error intern"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "El fitxer de l'arxiu no és a la capçalera"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " ha fallat - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
-msgstr ""
+msgstr "%s: (error 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
-msgstr "ha fallat l'apertura de %s: %s\n"
+msgstr "ha fallat l'obertura de %s: %s\n"
+
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: no és un paquet rpm (o un manifest de paquet)\n"
@@ -2591,12 +2790,12 @@ msgstr "%s: no és un paquet rpm (o un manifest de paquet)\n"
#: lib/rpminstall.c:141
#, c-format
msgid "Updating / installing...\n"
-msgstr ""
+msgstr "S'esta actualitzant o instal·lant...\n"
#: lib/rpminstall.c:143
#, c-format
msgid "Cleaning up / removing...\n"
-msgstr ""
+msgstr "S'està netejant o suprimint...\n"
#: lib/rpminstall.c:192
msgid "Preparing..."
@@ -2604,7 +2803,7 @@ msgstr "S'està preparant..."
#: lib/rpminstall.c:194
msgid "Preparing packages..."
-msgstr ""
+msgstr "S'estan preparant els paquets..."
#: lib/rpminstall.c:270 tools/rpmgraph.c:168
msgid "Failed dependencies:\n"
@@ -2615,42 +2814,42 @@ msgstr "Dependències fallides:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: no és un paquet rpm (o un manifest de paquet): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "no es pot instal·lar %s\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "S'està obtenint %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "S'està ometent %s - ha fallat la transferència\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
-msgstr "el paquet %s no és reubicable\n"
+msgstr "el paquet %s no és pot traslladar\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "s'ha produït un error en llegir del fitxer %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" especifica múltiples paquets:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "no es pot obrir %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "S'està instal·lant %s\n"
@@ -2674,14 +2873,14 @@ msgstr "ha fallat la lectura: %s (%d)\n"
#: lib/rpmlead.c:126
msgid "not an rpm package\n"
-msgstr ""
+msgstr "no és un paquet rpm\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
-msgstr ""
+msgstr "no es pot crea el bloqueig %s a %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2699,12 +2898,12 @@ msgstr ""
#: lib/rpmplugins.c:154
#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr ""
+msgstr "Complement %%__%s_%s no configurat\n"
#: lib/rpmplugins.c:199
#, c-format
msgid "Plugin %s not loaded\n"
-msgstr ""
+msgstr "Complement %s no carregat\n"
#: lib/rpmprob.c:109
msgid "different"
@@ -2728,18 +2927,19 @@ msgstr "el paquet %s ja s'ha instal·lat"
#: lib/rpmprob.c:125
#, c-format
msgid "path %s in package %s is not relocatable"
-msgstr "el camí %s del paquet %s no és reubicable"
+msgstr "el camí %s al paquet %s no és pot traslladar"
#: lib/rpmprob.c:130
#, c-format
msgid "file %s conflicts between attempted installs of %s and %s"
-msgstr "el fitxer %s té un conflicte amb els intents d'instal·lació de %s i %s"
+msgstr ""
+"el fitxer %s entra amb conflicte entre els intents d'instal·lació de %s i %s"
#: lib/rpmprob.c:135
#, c-format
msgid "file %s from install of %s conflicts with file from package %s"
msgstr ""
-"el fitxer %s de la instal·lació de %s té un conflicte amb un fitxer del "
+"el fitxer %s de la instal·lació de %s entra amb conflicte amb el fitxer del "
"paquet %s"
#: lib/rpmprob.c:140
@@ -2763,21 +2963,21 @@ msgstr ""
#: lib/rpmprob.c:159
#, c-format
msgid "%s is needed by %s%s"
-msgstr "el paquet %s és requerit per %s%s"
+msgstr "el paquet %s és requerit pel paquet %s%s"
#: lib/rpmprob.c:160 lib/rpmprob.c:164 lib/rpmprob.c:168
msgid "(installed) "
-msgstr "(instalat) "
+msgstr "(instal·lat) "
#: lib/rpmprob.c:163
#, c-format
msgid "%s conflicts with %s%s"
-msgstr "%s té conflictes amb %s%s"
+msgstr "%s entra en conflicte amb %s%s"
#: lib/rpmprob.c:167
#, c-format
msgid "%s is obsoleted by %s%s"
-msgstr ""
+msgstr "%s està devaluat amb %s%s"
#: lib/rpmprob.c:172
#, c-format
@@ -2787,7 +2987,7 @@ msgstr "error desconegut %d en manipular el paquet %s"
#: lib/rpmrc.c:222
#, c-format
msgid "missing second ':' at %s:%d\n"
-msgstr "falten el segon ':' a %s:%d\n"
+msgstr "falta el segon ':' a %s:%d\n"
#: lib/rpmrc.c:225
#, c-format
@@ -2797,7 +2997,7 @@ msgstr "falta el nom d'arquitectura a %s:%d\n"
#: lib/rpmrc.c:370
#, c-format
msgid "Incomplete data line at %s:%d\n"
-msgstr "Línia de dades incompleta a %s:%d\n"
+msgstr "Línia incompleta de dades a %s:%d\n"
#: lib/rpmrc.c:375
#, c-format
@@ -2807,12 +3007,12 @@ msgstr "Massa arguments a la línia de dades a %s:%d\n"
#: lib/rpmrc.c:382
#, c-format
msgid "Bad arch/os number: %s (%s:%d)\n"
-msgstr "Número d'arquitectura/S.O. incorrecte: %s (%s:%d)\n"
+msgstr "Número incorrecte d'arch/os: %s (%s:%d)\n"
#: lib/rpmrc.c:413
#, c-format
msgid "Incomplete default line at %s:%d\n"
-msgstr "Línia per defecte incorrecta a %s:%d\n"
+msgstr "Línia incompleta per defecte a %s:%d\n"
#: lib/rpmrc.c:418
#, c-format
@@ -2822,12 +3022,12 @@ msgstr "Massa arguments a la línia per defecte a %s:%d\n"
#: lib/rpmrc.c:523
#, c-format
msgid "missing ':' (found 0x%02x) at %s:%d\n"
-msgstr "manca ':' (trobat a 0x%02x) a %s:%d\n"
+msgstr "falta ':' (trobat a 0x%02x) a %s:%d\n"
#: lib/rpmrc.c:540 lib/rpmrc.c:572
#, c-format
msgid "missing argument for %s at %s:%d\n"
-msgstr "manca un argument per a %s a %s:%d\n"
+msgstr "falta l'argument per %s a %s:%d\n"
#: lib/rpmrc.c:551
#, c-format
@@ -2842,209 +3042,247 @@ msgstr "falta l'arquitecutra per a %s a %s:%d\n"
#: lib/rpmrc.c:632
#, c-format
msgid "bad option '%s' at %s:%d\n"
-msgstr "opció incorrecte '%s' a %s:%d\n"
+msgstr "opció incorrecta '%s' a %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Sistema desconegut: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "contacteu amb %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "No s'ha pogut obrir %s per a lectura: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
-msgstr ""
+msgstr "No s'ha pogut restaurar el directori actual: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
-msgstr "no s'ha muntat la disponibilitat per a emprar scriptlets <lua>\n"
+msgstr "no s'ha construït amb la compatibilitat cap als scriptlets <lua>\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "No s'ha pogut crear el fitxer temporal per a %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "S'ha produït un error en duplicar el descriptor de fitxer: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "No s'ha pogut llegir la icona %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "No es pot restaurar el directori arrel: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: ha fallat l'Fwrite: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "Ha fallat l'scriptlet %s, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s ha fallat l'scriplet, senyal %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "Ha fallat l'scriptlet %s, estat de sortida %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Format desconegut"
#: lib/rpmte.c:729
msgid "install"
-msgstr ""
+msgstr "instal·la"
#: lib/rpmte.c:730
msgid "erase"
-msgstr ""
+msgstr "esborra"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "no es pot obrir la base de dades Packages a %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "hi ha un '(' de més a l'etiqueta del paquet: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "falta '(' a l'etiqueta del paquet: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "falta ')' a l'etiqueta del paquet: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: ha fallat la lectura de la clau pública.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
+msgstr "transacció"
+
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(no és una signatura d'OpenPGP)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "No es pot tornar a carregar la capçalera de signatura.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Capçalera "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "Resum MD5:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Capçalera de resum SHA1:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Capçalera "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
-msgstr ""
+msgstr "s'ha omès"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
-msgstr ""
+msgstr "ha fallat"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
-msgstr ""
+msgstr "sense estat"
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
-msgstr ""
+msgstr "estat desconegut"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
-msgstr "manca %c %s"
+msgstr "falta %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Dependències insatisfetes per a %s:\n"
#: lib/headerfmt.c:336
msgid "invalid field width"
-msgstr ""
+msgstr "l'amplada del camp no és vàlida"
#: lib/headerfmt.c:342
msgid "missing { after %"
-msgstr "manca { després de %"
+msgstr "falta { després de %"
#: lib/headerfmt.c:364
msgid "missing } after %{"
-msgstr "manca } després de %{"
+msgstr "falta } després de %{"
#: lib/headerfmt.c:375
msgid "empty tag format"
@@ -3103,243 +3341,243 @@ msgstr "iterador de matrius emprat amb matrius de mides diferents"
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "no s'ha establert cap dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: s'està ignorant"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "s'ha produït un error (%d) en emmagatzemar el registre #%d a %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: ha fallat regexec: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: ha fallat regcomp: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: s'està ignorant"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
-msgstr "rpmdb: s'ha obtingut la capçalera #%u malmesa -- s'està ignorant.\n"
+msgstr "rpmdb: s'ha obtingut malmesa la capçalera #%u -- s'ignora.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: no s'ha pogut llegir la capçalera a 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "no s'ha establert el dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "ha fallat en crear el directori %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
-msgstr "la capçalera #%u de la base de dades és incorrecta -- s'ignorarà.\n"
+msgstr "la capçalera #%u en la base de dades és incorrecta -- s'ignora.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "no es pot afegir el registre originalment a %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-"no s'ha pogut remuntar la base de dades: es continua fent servir la base de "
-"dades original\n"
+"no s'ha pogut reconstruir la base de dades: la base de dades original "
+"continua al seu lloc\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "no s'ha pogut reemplaçar la base de dades antiga amb la nova\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "reemplaçeu els fitxers a %s amb fitxers de %s per a recuperar-ho"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "no s'ha pogut suprimir el directori %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
-msgstr ""
+msgstr "%s error(%d) de %s: %s\n"
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
+msgstr "%s error(%d): %s\n"
+
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "opció de la bd no reconeguda: s'ignora «%s».\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s té un valor numèric invàlid, s'ignorarà\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s té un valor de tipus «long» massa gran o massa petit, s'ignorarà\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
msgstr ""
+"%s té un valor de tipus «enter» massa llarg o massa petit, s'ignorarà\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "no es pot obtenir el blocatge %s a %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "compartit"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "exclusiu"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "error(%d) en emmagatzemar el registre «%s» en %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "error(%d) en suprimir el registre «%s» de %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "error(%d) en assignar la instància de nou paquet\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "opció de la bd no reconeguda: s'ignora «%s».\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s té un valor numèric invàlid, s'ignorarà\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s té un valor de tipus «long» massa gran o massa petit, s'ignorarà\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-"%s té un valor de tipus «enter» massa llarg o massa petit, s'ignorarà\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(buit)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(buit)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "La macro %%%s té opcions inacabades\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "La macro %%%s té un cos inacabat\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "La macro %%%s té un nom invàlid (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "La macro %%%s té un cos buit\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
-msgstr ""
+msgstr "La macro %%%s necessita un espai en blanc abans del cos\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
-msgstr "No s'ha expandit la macro %%%s\n"
+msgstr "Ha fallat l'expansió de la macro %%%s\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "La macro %%%s té un nom invàlid (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Opció desconeguda %c a %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "%c sense terminar: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Un %% precedeix una macro que no es pot analitzar\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
-msgstr ""
+msgstr "ha fallat la càrrega del fitxer de les macros %s"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== actiu %d buit %d\n"
@@ -3357,160 +3595,218 @@ msgstr "Fitxer %s: %s\n"
#: rpmio/rpmfileutil.c:332
#, c-format
msgid "File %s is smaller than %u bytes\n"
-msgstr "El fitxer %s fa menys de %u bytes\n"
+msgstr "El fitxer %s és inferior als %u bytes\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "no s'ha pogut crear el directori"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "sintaxi invàlida en l'scriptlet lua: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "sintaxi invàlida en l'script lua: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "ha fallat l'script lua: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "sintaxi invàlida en el ftixer lua: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "Ha fallat el hook lua: %s\n"
#: rpmio/rpmio.c:280
msgid "[none]"
-msgstr ""
+msgstr "[cap]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(cap error)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "error fatal: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "error: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
-msgstr "avís: "
+msgstr "advertència: "
#: rpmio/rpmmalloc.c:25
#, c-format
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "l'assignació de memòria (%u bytes) ha retornat NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
#, c-format
-msgid "V%d %s/%s %s, key ID %s"
+msgid "Unsupported version of key: V%d\n"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1081
+#, c-format
+msgid "V%d %s/%s %s, key ID %s"
+msgstr "V%d %s/%s %s, id. de la clau %s"
+
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
-msgstr ""
+msgstr "(cap)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "S'ha produït un error en crear el fitxer temporal %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "S'ha produït un error en crear el fitxer temporal %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "S'ha produït un error en crear el fitxer temporal %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "ha fallat en crear el directori %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: ha fallat l'Fwrite: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: ha fallat l'Fflush: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
-msgstr ""
+msgstr "Signatura PGP no suportada\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
-msgstr ""
+msgstr "Algoritme de dispersió PGP no suportat %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
-msgstr ""
+msgstr "Algoritme de clau pública PGP no suportat %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "No s'ha pogut crear una canonada per a la signatura: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "No es pot executar %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
-msgstr "%s: ha fallat l'apertura: %s\n"
+msgid "Fopen failed\n"
+msgstr "ha fallat el fdopen\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "No es pot executar %s: %s\n"
+msgstr "No s'ha pogut escriure a la canonada\n"
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "No es pot executar %s: %s\n"
+msgstr "No s'ha pogut llegir des del fitxer %s: %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "ha fallat l'execució del gpg (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "el gpg no ha escrit la signatura\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "no es pot llegir la signatura\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: ha fallat el rpmWriteSignature: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: El rpmReadSignature ha fallat: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: ha fallat el headerRead: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "Ha fallat el rpmMkTemp\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "ha fallat el fdopen\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: ha fallat el headerRead: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s ja conté una signatura idèntica, s'omet\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: El rpmReadSignature ha fallat: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
-msgstr ""
+msgstr "No es poden signar els paquets RPM v3\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
-msgstr ""
+msgstr "%s ja conté una signatura idèntica, s'omet\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
-msgstr "%s: ha fallat rpmWriteSignature: %s\n"
-
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "Ha fallat rpmMkTemp\n"
+msgstr "%s: ha fallat el rpmWriteSignature: %s\n"
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
-msgstr "%s: ha fallat writeLead: %s\n"
+msgstr "%s: ha fallat el writeLead: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
-msgstr ""
+msgstr "ha fallat la substitució %s: %s\n"
#: tools/rpmgraph.c:142
#, c-format
@@ -3521,25 +3817,26 @@ msgstr "%s: ha fallat la lectura del manifest: %s\n"
msgid "don't verify header+payload signature"
msgstr "no verifiquis la signatura de la capçalera i les dades"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "No s'ha pogut escriure les dades de %s: %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Ha fallat la conversió de %s a long integer.\n"
+
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Introduïu la contrasenya:"
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "No s'ha pogut llegir les dades de %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "La contrasenya és correcta.\n"
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "No s'ha pogut obrir el fitxer temporal.\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Propietari o grup incorrecte: %s\n"
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "No s'ha pogut obrir el sigtarget %s: %s\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "línia %d: Caràcter no permès: %s\n"
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "No es pot llegir la capçalera de %s: %s\n"
+#~ msgid "%s has unverifiable signature"
+#~ msgstr "%s té una signatura que no es pot verificar"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "No es pot escriure la capçalera a %s: %s\n"
+#~ msgid "Fread failed: %s"
+#~ msgstr "Ha fallat el fread: %s"
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr ""
-#~ "La regió inmutable de la capçalera no s'ha pogut llegir. És possible que "
-#~ "el paquet sigui corrupte\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "No s'ha pogut crear una canonada per a la signatura: %m"
diff --git a/po/cmn.gmo b/po/cmn.gmo
index 0af5660a..acbe64d6 100644
--- a/po/cmn.gmo
+++ b/po/cmn.gmo
Binary files differ
diff --git a/po/cmn.po b/po/cmn.po
index bb90a7e3..d0541cbf 100644
--- a/po/cmn.po
+++ b/po/cmn.po
@@ -4,14 +4,15 @@
#
# Translators:
# 趙惟倫 <bluebat@member.fsf.org>, 2013
+# 趙惟倫 <bluebat@member.fsf.org>, 2013
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Chinese (Mandarin) (http://www.transifex.com/projects/p/rpm/"
+"Language-Team: Chinese (Mandarin) (http://www.transifex.com/rpm-team/rpm/"
"language/cmn/)\n"
"Language: cmn\n"
"MIME-Version: 1.0\n"
@@ -81,8 +82,8 @@ msgstr "驗證選項 (使用 -V 或 --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "安裝/升級/抹除選項:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "用於所有 rpm 模式和可執行檔案的共同選項:"
@@ -102,7 +103,7 @@ msgstr "不可預料的查詢格式"
msgid "unexpected query source"
msgstr "不可預料的查詢來源"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "只能指定一個主要工作模式"
@@ -202,7 +203,7 @@ msgstr "--nodeps 只能在套件安裝、抹除與驗證時指定"
msgid "--test may only be specified during package installation and erasure"
msgstr "--test 只能在套件安裝與抹除時指定"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "--root (-r) 的引數必須以「/」開頭"
@@ -222,201 +223,248 @@ msgstr "沒有給定查詢引數"
msgid "no arguments given for verify"
msgstr "沒有給定驗證引數"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot 已被指定,忽略 %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr "從 <specfile> 透過 %prep (解包原始碼並套用修補程式) 來建置"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "從 <specfile> 透過 %build (%prep,然後編譯) 來建置"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "從 <specfile> 透過 %install (%prep,%build,然後安裝) 來建置"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "從 <specfile> 驗證 %files 區段"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "根據 <specfile> 建置原始碼套件與二進位套件"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "根據 <specfile> 只建置二進位套件"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "根據 <specfile> 只建置原始碼套件"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr "從 <specfile> 透過 %prep (解包原始碼並套用修補程式) 來建置"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<source package>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "從 <specfile> 透過 %build (%prep,然後編譯) 來建置"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr "從 <source package> 透過 %install (%prep,%build,然後安裝) 來建置"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "從 <specfile> 驗證 %files 區段"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "從 <source package> 中建置二進位套件"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "從 <source package> 中建置二進位套件"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "根據 <specfile> 只建置原始碼套件"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr "從 <tarball> 透過 %prep (解包原始碼和套用修補檔) 來建置"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "從 <tarball> 透過 %build (%prep,然後編譯) 來建置"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "從 <tarball> 透過 %install (%prep,%build,然後安裝) 來建置"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "從 <tarball> 驗證 %files 區段"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "從 <tarball> 中建置原始碼套件與二進位套件"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "從 <tarball> 中只建置二進位套件"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "從 <tarball> 中只建置原始碼套件"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "從 <source package> 中建置二進位套件"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<source package>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr "從 <source package> 透過 %install (%prep,%build,然後安裝) 來建置"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "強制覆寫建置根目錄"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "無法開啟目前的目錄:%m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "完成後移除建置樹"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "忽略 ExcludeArch:根據規格檔的指示"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "除錯檔案狀態機器"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "不執行建置程序裡的任何步驟"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "不驗證建置相依關係"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr "產生與(舊)rpm v3 封裝相容的套件標頭"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "不執行組建的 %clean 階段"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "不執行組建的 %clean 階段"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "不執行組建的 %check 階段"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "不接受來自規格檔的 i18N msgstr"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "完成後移除原始碼檔案"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "完成後移除規格檔"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "直接跳到指定的階段 (只有用於 c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "無視目標平臺"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "組建選項中使用 [ <specfile> | <tarball> | <source package> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "相依性建置失敗:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "無法開啟 %s 規格檔:%s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "無法開啟 tar 管線:%m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "一列中超過一個檔案:%s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "無法從 %s 讀取規格檔\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "無法將 %s 重新命名為 %s:%m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "無法檢視 %s 的狀態:%m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "%s 不是通常的檔案。\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "%s 似乎不是規格檔。\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "建置目標平臺:%s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "建置目標 %s\n"
@@ -465,49 +513,64 @@ msgstr "列出 RPM 鑰匙圈的金鑰"
msgid "Keyring options:"
msgstr "鑰匙圈選項:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "沒有給定引數"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "簽署套件"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "簽署套件 (與 --addsign 含義相同)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "刪除套件簽名"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "簽署套件"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "簽名選項:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "無法執行 %s:%s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "您必須在您的巨集檔案中設定「%%_gpg_name」\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "輸入通關密語: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "通關密語良好。\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "密語檢查失敗或是 GPG 金鑰過期\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix 只能在安裝新套件時使用"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches 只能在套件抹除時指定"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -525,7 +588,7 @@ msgstr "操作透過規格所建立的二進位 rpm (預設)"
msgid "operate on source rpm generated by spec"
msgstr "操作透過規格所建立的原始碼 rpm"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "使用以下的查詢格式"
@@ -626,201 +689,201 @@ msgstr "字串不支援 && 和 ||\n"
msgid "syntax error in expression\n"
msgstr "表述式中有語法錯誤\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "在 %s %s 中有遺漏的「(」\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "在 %s(%s 中有遺漏的「)」\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "無效的 %s 符記:%s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "在 %2$s %3$s 中有缺失的 %1$s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "%s() 之後有非空白空格:%s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "不當語法:%s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "不當模式規格:%s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "不當目錄模式規格:%s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "不尋常的語區長度:「%s」於 %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "複製語區 %s 於 %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "無效的功能:%s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "檔案功能支援未內建於\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "檔案必須以「/」開頭:%s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "不明檔案摘要演算法 %u,權宜落回 MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "列出了兩次的檔案:%s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "讀取符號鏈結 %s 失敗:%s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "指向 BuildRoot 的符號鏈結:%s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "找不到目錄:%s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "找不到檔案:%s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s:無法呼叫不明的標籤 (%d)。\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s:公鑰讀入失敗。\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s:不是一個受保護的公鑰。\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s:編碼失敗\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "檔案需要以「/」開頭:%s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "%%dev 不允許透過 glob 解析:%s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "透過 glob 解析找不到目錄:%s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "透過 glob 解析找不到檔案:%s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "無法開啟 %%files 檔案 %s:%m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "列:%s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "讀取 %%files 檔案 %s 時發生錯誤:%m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "不合法的 _docdir_fmt %s:%s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "透過 glob 解析找不到檔案:%s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "無法混合特殊 %s 與其他表單:%s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "一列中超過一個檔案:%s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "不當檔案:%s:%s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "不當擁有者/群組:%s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "正在檢查未打包的檔案:%s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -829,17 +892,17 @@ msgstr ""
"找到已安裝 (但未打包) 的檔案:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "正在處理檔案:%s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr "二進位架構 (%d) 無法匹配套件架構 (%d)。\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "noarch 套件中有依賴架構的二進位檔\n"
@@ -858,89 +921,90 @@ msgstr "建立封存時失敗:%s\n"
msgid "Could not open %s file: %s\n"
msgstr "無法開啟 %s 檔案:%s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: 列:%s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "無法標準化主機名稱:%s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "無法重新載入簽名標頭。\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "不明酬載壓縮:%s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "無法建立不可變的標頭區域。\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "無法開啟 %s:%s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "無法寫入套件:%s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "無法寫入臨時標頭\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "不當 CSA 資料\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "無法開啟 %s 檔案:%s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "建立檔案 %s 封存時失敗:%s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "已寫入:%s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "正在執行「%s」:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "「%s」執行失敗。\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "套件檢查「%s」失敗。\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "無法產生套件 %s 的檔案名稱輸出:%s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "無法建立 %s:%s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "第 %d 列:第二個 %s\n"
@@ -991,19 +1055,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "第 %d 列:剖析 %%description 時發生錯誤:%s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "第 %d 列:不當選項 %s:%s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "第 %d 列:過多名稱:%s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "第 %d 列:套件不存在:%s\n"
@@ -1058,142 +1122,147 @@ msgstr "正在下載 %s 到 %s\n"
msgid "Couldn't download %s\n"
msgstr "無法下載 %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "被排除的架構:%s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "未包含的架構:%s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "被排除的作業系統:%s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "未包含的作業系統:%s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s 欄位必須出現於套件中:%s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "套件中有重複的 %s 條目:%s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "無法開啟圖示 %s:%s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "無法讀取圖示 %s:%s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "不明的圖示類型:%s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "第 %d 列:標籤只需單一符記:%s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "第 %d 列:不合法的字元 %c 於:%s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "第 %d 列:不合法的字元於:%s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "第 %d 列:不合法的序列「..」於:%s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "第 %d 列:%s:%s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: 列:%s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "第 %d 列:格式不當的標籤:%s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "第 %d 列:空的標籤:%s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "第 %d 列:前綴不能以「/」結尾:%s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "第 %d 列:Docdir 必須以「/」開頭:%s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "第 %d 列:Epoch 欄位必須是無正負號的數字:%s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "第 %d 列:不當 %s:修飾詞:%s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "第 %d 列:不當 BuildArchitecture 格式:%s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "第 %d 列:只有支援 noarch 子套裝模組:%s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "內部錯誤:假造的標籤 %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "第 %d 列:%s 已過時:%s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "不當套件規格:%s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "套件已經存在:%s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "第 %d 列:不明標籤:%s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} 不可是空的\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} 不可為「/」\n"
@@ -1203,161 +1272,193 @@ msgstr "%%{buildroot} 不可為「/」\n"
msgid "Bad source: %s: %s\n"
msgstr "不當原始碼:%s:%s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "沒有修補編號 %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch 卻無相應的「Patch:」標籤\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "沒有原始碼編號 %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "規格檔內無「Source:」標籤\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "剖析 %%setup 時發生錯誤:%s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "第 %d 列:%%setup 中出現不當引數:%s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "第 %d 列:不當 %%setup 選項 %s:%s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "無效的修補編號 %s:%s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "第 %d 列:第二個 %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr "依存字組必須以英數字、_ 或 / 開頭"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "不允許標上版本的檔案名稱"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "所需版本"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "無效的依存性"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "所需版本"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "第 %d 列:%s:%s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "第 %d 列:觸發器必須包含 --:%s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "第 %d 列:剖析 %s 時發生錯誤:%s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "第 %d 列:內部指令稿必須以「>」結尾:%s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "第 %d 列:指令稿程式必須以「/」開頭:%s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr "第 %d 列:解譯器引數不允許存在觸發器中:%s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "第 %d 列:第二個 %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "第 %d 列:不支援的內部指令稿:%s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr "第 %d 列:解譯器引數不允許存在觸發器中:%s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "第 %d 列:%s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "無法開啟 %s:%s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d:預期用於 %s 的引數\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "第 %d 列:未關閉的 %%if\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "第 %d 列:未關閉的巨集或不當的列延續\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d:不當的 %%if 條件\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d:有個 %%else 沒有對應 %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d:有個 %%endif 沒有對應 %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d:異常的 %%include 敘述\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "找不到可供建置的相容架構\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "套件沒有 %%description:%s\n"
@@ -1428,287 +1529,276 @@ msgstr "太多引數於列號:%s\n"
msgid "Processing policies: %s\n"
msgstr "處理策略:%s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "忽略無效的正規表示式 %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "無法為 %s 建立管線:%m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "無法執行 %s:%s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "無法分支 %s:%s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s 失敗:%x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "無法寫入所有資料至 %s:%s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "%s 轉換至長整數時失敗。\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "空的檔案分類器\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "無設定檔案特性\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) 失敗:%s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load 失敗:%s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "檔案「%s」辨識失敗:模式 %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "正在尋找 %s:%s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "找不到 %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "%s 規格檔查詢失敗,無法剖析\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s 是個差異 RPM 而無法直接安裝\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "未支援的酬載 (%s) 於套件 %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "套件 %s 已被加入,跳過 %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "套件 %s 已被加入,以 %s 替換\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(不是一個數字)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%Y %b %d %a"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(不是 base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(無效型態)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(不是 blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(無效 xml 類型)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(不是個 OpenPGP 簽名)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "無效的日期 %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "一般"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "已替換"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "未安裝"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "已網路分享"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "錯誤色彩"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "遺失"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(不明)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(不是字串)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s 已被另存為 %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s 已建立為 %s \n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s:移除失敗:%s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "目錄"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "檔案"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1928,7 +2018,7 @@ msgstr "更新資料庫,但不修改檔案系統"
msgid "do not verify package dependencies"
msgstr "不驗證套件相依性"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "不要驗證檔案的摘要"
@@ -2048,162 +2138,182 @@ msgstr "升級套件"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "查詢/驗證所有套件"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "rpm 檢查簽名模式"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "查詢/驗證套件擁有的檔案"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "查詢/驗證套件所屬的群組"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "查詢/驗證一個套件檔案"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "以套件的識別符查詢/驗證套件"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "以標頭識別符查詢/驗證套件"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm 查詢模式"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "查詢/驗證標頭實體"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "從安裝異動作業查詢/驗證套件"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "查詢套件所觸發的套件"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm 驗證模式"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "查詢/驗證需要某些相依套件的套件"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "查詢/驗證提供某些相依套件的套件"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "查詢/驗證需要某些相依套件的套件"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "查詢/驗證需要某些相依套件的套件"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "查詢/驗證需要某些相依套件的套件"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "查詢/驗證需要某些相依套件的套件"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "不以 glob 解析引數"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "不以清單形式處理非套件檔案"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "列出所有組態檔案"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "列出所有文件檔案"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "傾印基本檔案資訊"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "列出套件內的檔案"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "略過 %%ghost 檔案"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "顯示列出的檔案的狀態"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "不驗證檔案大小"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "不驗證檔案的符號鏈結路徑"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "不驗證檔案的擁有者"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "不驗證檔案的群組"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "不驗證檔案的修改時間"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "不驗證檔案的模式"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "不驗證檔案的能力"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "不驗證檔案的安全情境"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "不驗證套件內的檔案"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "不驗證套件的相依關係"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "不執行驗證指令稿"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "缺少 rpmlib 的特色用於 %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "預期是原始碼套件,但卻找到二進位套件\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "原始碼套件內未包含 .spec 檔案\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "解包封存檔失敗 %s%s:%s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " 於檔案 "
@@ -2278,96 +2388,116 @@ msgstr "沒有套件符合 %s:%s\n"
msgid "no package requires %s\n"
msgstr "沒有套件需要 %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "沒有套件需要 %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "沒有套件會觸發 %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "沒有套件需要 %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "沒有套件需要 %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "沒有套件提供 %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "檔案 %s:%s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "檔案 %s 不被任何套件擁有\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "無效的套件編號:%s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "記錄 %u 無法讀取\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "套件 %s 尚未安裝\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "不明的標籤:「%s」\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s:金鑰 %d 匯入失敗。\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s:金鑰 %d 不是受保護的公鑰。\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s:匯入時讀取失敗(%d)。\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s:headerRead 失敗:%s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr "%s:不可變的標頭區域無法讀取。套件已損壞?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s:Fread 失敗:%s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "不正確"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "正確"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (遺失的金鑰:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (未受信任的金鑰:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s:開啟失敗:%s\n"
@@ -2392,144 +2522,195 @@ msgstr "無法變更根目錄:%m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "無法還原根目錄:%m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "否 "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "是"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "PreReq:、Provides:、以及 Obsoletes: 相依性支援版本。"
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr "檔案名稱儲存為 (dirName、baseName、dirIndex) 字組,而非路徑。"
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "套件酬載可以使用 bzip2 壓縮。"
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "套件酬載可以使用 xz 壓縮。"
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "套件酬載可以使用 lzma 壓縮。"
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "套件酬載檔案有「./」前綴。"
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "套件的「名稱-版本-釋出編號」沒有隱含性地提供。"
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "標頭標籤總在載入之後排序。"
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "指令稿片段解譯器可以使用來自標頭的引數。"
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "硬鏈結檔案組也許沒有被完整安裝。"
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "套件指令稿片段在安裝過程中可以存取 rpm 資料庫。"
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "lua 指令稿的內部支援。"
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "檔案摘要演算法可依各套件組配"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "支援 POSIX.1e 檔案的能力"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "套件指令片段可以於安裝期間展開。"
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "依存性的比較支援附有波折號的版本。"
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "不驗證套件相依性"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "所需版本"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "無效的依存性"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "未終結的 %c:%s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "無效的依存性"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "使用者 %s 不存在 - 現使用 root 代替\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "群組 %s 不存在 - 現使用 root 代替\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "不當魔法數字"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "不當或無法讀取的標頭"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "標頭尺寸過大"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "檔案太大而無法封存"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "不明檔案類型"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "摘要不符"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "內部錯誤"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "在標頭中沒有封存檔"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " 失敗 - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "開啟 %s 失敗:%s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s:不是一個 rpm 套件 (或套件清單)\n"
@@ -2561,42 +2742,42 @@ msgstr "相依關係失敗:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s:不是一個 rpm 套件 (或套件清單):%s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s 無法安裝\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "擷取 %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "跳過 %s - 轉移失敗\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "套件 %s 不能重新分配位置\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "讀取檔案 %s 時發生錯誤\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "「%s」指定多個套件:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "無法開啟 %s:%s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "正在安裝 %s\n"
@@ -2622,12 +2803,12 @@ msgstr "讀取失敗:%s (%d)\n"
msgid "not an rpm package\n"
msgstr "並非 rpm 套件\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "無法建立 %s 鎖定於 %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "等待 %s 鎖定於 %s\n"
@@ -2643,9 +2824,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "解析符號 %s 時失敗:%s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "%s 插件未載入\n"
+msgstr ""
#: lib/rpmplugins.c:199
#, c-format
@@ -2785,60 +2966,79 @@ msgstr "%s 遺漏架構位於 %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "不當選項「%s」位於 %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "讀取輔助向量時失敗,/proc 未掛載?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "不明系統:%s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "請聯絡 %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "無法開啟 %s 以供讀取:%m。\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "無法還原目前的目錄:%m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "<lua> 指令稿片段支援未內建\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "無法建立暫存檔用於 %s:%s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "無法複製檔案描述符號:%s:%s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "無法讀取圖示 %s:%s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "無法還原根目錄:%m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite 失敗:%s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s 指令稿片段失敗,waitpid(%d) rc %d:%s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s 指令稿片段失敗,信號 %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s 指令稿片段失敗,離開狀態 %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "不明格式"
@@ -2850,127 +3050,146 @@ msgstr "安裝"
msgid "erase"
msgstr "抹除"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "無法開啟套件資料庫 %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "額外的「(」存在於套件標貼中:%s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "套件標貼遺漏「(」:%s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "套件標貼遺漏「)」:%s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s:讀取公鑰時失敗。\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "異動作業"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(不是個 OpenPGP 簽名)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "無法重新載入簽名標頭。\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "標頭 "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 摘要:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "標頭 SHA1 摘要:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "標頭 "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "已跳過"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "已失敗"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "遺漏 %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "未滿足 %s 的依存性:\n"
@@ -3044,240 +3263,240 @@ msgstr "用於不同大小陣列的陣列迭代器"
msgid "Generating %d missing index(es), please wait...\n"
msgstr "正在產生 %d 個缺少的索引,請稍待…\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "尚未設定 dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader:跳過"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "儲存記錄 #%2$d 到 %3$s 時發生錯誤(%1$d)\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s:regexec 失敗:%s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s:regcomp 失敗:%s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator:跳過"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb:已擷取損壞的標頭 #%u -- 跳過。\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s:無法讀取位於 0x%x 的標頭\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "尚未設定 dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "建立目錄 %s 時失敗:%s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "在資料庫中有不當的標頭 #%u -- 跳過。\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "無法加入原本位於 %u 的記錄\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "重建資料庫時失敗:原來的資料庫保持原狀\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "以新的資料庫取代舊的資料庫時失敗!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "以 %2$s 的檔案取代 %1$s 的檔案來復原"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "移除目錄時失敗 %s:%s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "無法辨識的資料庫選項:「%s」 已忽略。\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s 有無效的數值,略過\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s 有過大或過小的 long 數值,略過\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s 有過大或過小的整數值,略過\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "無法取得 %s 於 %s/%s 的鎖定\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "已共享"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "排他"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "無效的索引類型 %x 於 %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "錯誤(%d) 發生於取得「%s」記錄自 %s 索引:%s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "儲存記錄「%2$s」到 %3$s 時發生錯誤(%1$d)\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "從 %3$s 移除記錄「%2$s」時發生錯誤(%1$d)\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "錯誤(%d) 發生於加入標頭 #%d 記錄\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "錯誤(%d) 發生於移除標頭 #%d 記錄\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "分配新套件實體時發生錯誤(%d)\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "無法辨識的資料庫選項:「%s」 已忽略。\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s 有無效的數值,略過\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s 有過大或過小的 long 數值,略過\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s 有過大或過小的整數值,略過\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(清空)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(清空)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "巨集 %%%s 具有未終結的選項\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "巨集 %%%s 具有未終結的主體\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "巨集 %%%s 具有無效的名稱 (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "巨集 %%%s 具有空的主體\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "巨集 %%%s 展開時失敗\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "巨集 %%%s 具有無效的名稱 (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "在 %2$s(%3$s) 中有不明的選項 %1$c\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr "在巨集展開中有太多層的遞迴。它似乎是遞迴的巨集宣告所造成的。\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "未終結的 %c:%s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "在無法剖析的巨集之後跟著一個 %%\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== 作用中 %d 清空 %d\n"
@@ -3297,31 +3516,31 @@ msgstr "檔案 %s:%s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "檔案 %s 小於 %u 位元組\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "無法建立目錄"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "無效的語法於 lua 指令稿片段:%s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "無效的語法於 lua 指令稿:%s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua 指令稿失敗:%s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "lua 檔案內有無效語法:%s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua 攔截指令失敗:%s\n"
@@ -3330,19 +3549,19 @@ msgstr "lua 攔截指令失敗:%s\n"
msgid "[none]"
msgstr "[無]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(無錯誤)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "嚴重錯誤:"
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "錯誤:"
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "警告:"
@@ -3351,101 +3570,159 @@ msgstr "警告:"
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "記憶體配置 (%u 位元組) 回傳 NULL。\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s,金鑰識別號 %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(無)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "建立暫存檔 %s 時發生錯誤:%m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "建立暫存檔 %s 時發生錯誤:%m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "建立暫存檔 %s 時發生錯誤:%m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "建立目錄 %s 時失敗:%s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite 失敗:%s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s:Fflush 失敗:%s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "未支援的 PGP 簽名\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "未支援的 PGP 雜湊演算法 %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "未支援的 PGP 公鑰演算法 %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "無法建立簽署用的管線:%m"
+msgid "Could not exec %s: %s\n"
+msgstr "無法執行 %s:%s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s:開啟失敗:%s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "無法開啟 %s 檔案:%s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "無法開啟 %%files 檔案 %s:%m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg 執行失敗 (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "寫入簽名時 gpg 失敗\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "無法讀取簽名\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s:rpmWriteSignature 失敗:%s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s:rpmReadSignature 失敗:%s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s:headerRead 失敗:%s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp 失敗\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "執行失敗\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s:headerRead 失敗:%s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s 已經含有相同的簽名,跳過\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s:rpmReadSignature 失敗:%s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "無法簽署 RPM v3 套件\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s 已經含有相同的簽名,跳過\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s:rpmWriteSignature 失敗:%s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp 失敗\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s:writeLead 失敗:%s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "置換 %s 時失敗:%s\n"
@@ -3459,80 +3736,23 @@ msgstr "%s:讀取清單失敗:%s\n"
msgid "don't verify header+payload signature"
msgstr "不驗證標頭+酬載簽名"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "無法寫入酬載到 %s:%s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "無法從 %s 讀取酬載:%s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "無法開啟暫時檔案。\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "無法開啟簽名目標 %s:%s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "無法讀取 %s 的標頭:%s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "無法寫入 %s 的標頭:%s\n"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "不實行任何收集動作"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr "不可變的標頭區域無法讀取。套件已損壞?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "無法解碼 %s 的策略\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "無法為 %s 建立暫存檔:%s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "無法寫入 %s 策略至檔案 %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "建立 semanage 控柄時失敗\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "無法連接至策略控柄\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "無法開始策略異動作業:%s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "無法移除暫存策略檔 %s:%s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "無法安裝策略模組:%s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "無法移除策略模組:%s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "無法分支程序:%s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "無法執行 %s:%s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s 已異常終止\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "%s 轉換至長整數時失敗。\n"
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s 已失敗並伴隨代碼 %i\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "輸入通關密語: "
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "無法提交策略變更\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "通關密語良好。\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "無法擴展 restorecon 路徑"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr "密語檢查失敗或是 GPG 金鑰過期\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr "無法將檔案系統重新貼標。檔案可能標貼有誤\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "不當擁有者/群組:%s\n"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr "無法重新載入檔案語境。檔案可能標貼有誤\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "第 %d 列:不合法的字元於:%s\n"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "無法從 %s 抽出策略\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "無法建立簽署用的管線:%m"
diff --git a/po/cs.gmo b/po/cs.gmo
index 6ea4ce06..d4da5ee9 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 1089d637..b421213d 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Czech (http://www.transifex.com/projects/p/rpm/language/cs/)\n"
+"Language-Team: Czech (http://www.transifex.com/rpm-team/rpm/language/cs/)\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -79,8 +79,8 @@ msgstr "Vollby kontroly (s -V nebo --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Volby pro Instalaci/Aktualizaci/Mazání:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Společné volby pro všechny rpm režimy a spustitelné soubory:"
@@ -100,7 +100,7 @@ msgstr "neočekávaný formát dotazu"
msgid "unexpected query source"
msgstr "neočekávaný zdroj dotazu"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "specifikovat lze jen jeden hlavní režim"
@@ -205,7 +205,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "parametry pro --root (-r) musejí začínat znakem /"
@@ -225,207 +225,255 @@ msgstr "k dotazu nezadány žádné parametry"
msgid "no arguments given for verify"
msgstr "pro kontrolu nezadány žádné balíčky"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot byl již nastaven, ignoruji %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"sestavení podle %prep (rozbalení zdrojových kódů a aplikace patchů) podle "
"<spec_soubor>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<spec_soubor>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "sestavení podle %build (%prep, pak kompilace) podle <spec_soubor>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"sestavení podle %install (%prep, %build, pak install) podle <spec_soubor>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "kontrola části %files ve <spec_soubor>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "vytvoření zdrojového a binárního balíčku podle <spec_soubor>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "vytvoření pouze binárního balíčku podle <spec_soubor>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "vytvoření zdrojového balíčku podle <spec_soubor>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"sestavení podle %prep (rozbalení zdrojových kódů a aplikace patchů) podle "
+"<spec_soubor>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<zdrojový balíček>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "sestavení podle %build (%prep, pak kompilace) podle <spec_soubor>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr "sestavení podle %%install (včetně %prep, %build) ze <zdrojový balíček>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "kontrola části %files ve <spec_soubor>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "vytvoření binárního balíčku ze <zdrojový balíček>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "vytvoření binárního balíčku ze <zdrojový balíček>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "vytvoření zdrojového balíčku podle <spec_soubor>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"sestavení podle %prep (rozbalení zdrojových kódů, aplikace patchů) z "
"<tar_soubor>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tar_soubor>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "sestavení podle %build (%prep, pak kompilace) z <tar_soubor>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "sestavení podle %%install (%prep, %build, pak install) z <tar_soubor>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "kontrola části %files z <tar_soubor>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "vytvoření zdrojového a binárního balíčku z <tar_soubor>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "vytvoření pouze binárního balíčku z <tar_soubor>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "vytvoření pouze zdrojového balíčku z <tar_soubor>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "vytvoření binárního balíčku ze <zdrojový balíček>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<zdrojový balíček>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr "sestavení podle %%install (včetně %prep, %build) ze <zdrojový balíček>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "build root předefinován"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+msgid "run build in current directory"
+msgstr ""
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "po dokončení odstranit sestavovací strom"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignorovat ExcludeArch: direktivy ve spec souboru"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "ladit nástroj stavu souborů"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "nespouštět žádné etapy vytváření balíčku"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "nekontrolovat závislosti balíčků"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "nespouštět žádné etapy vytváření balíčku"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "neakceptovat i18N popisky ze spec souboru"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "po dokončení odstranit zdrojové kódy"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "po dokončení odstranit spec soubor"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "přeskočit přímo na určenou etapu (pouze pro c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "cílová platforma předefinována"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"Sestavovací volby s [ <spec_soubor> | <tar_soubor> | <zdrojový_balíček> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Chybné závislosti při sestavování:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Nelze otevřít spec soubor %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Nelze otevřít rouru pro tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Nelze otevřít spec soubor %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Nelze číst spec soubor z %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Nelze přejmenovat %s na %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "nemohu zjistit stav %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Soubor %s není obyčejný soubor.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Nezdá se, že by %s byl spec soubor.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Sestavuji cílové platformy: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Sestavuji pro cíl %s\n"
@@ -474,50 +522,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "nezadány žádné parametry"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "podepsat balíček (identické s --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "vymazat podpisy balíčku"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "nainstalovat balíčky"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Volby signatury:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Nemohu spustit %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Je nutné nastavit \"%%_gpg_name\" ve vašem souboru maker\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Vložte heslovou frázi: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Heslová fráze je v pořádku.\n"
-
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix je možno použít jen při instalaci nových balíčků"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches může být použit jen při instalaci balíčků"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -534,7 +597,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "použij následující formát dotazů"
@@ -635,201 +698,201 @@ msgstr "&& a || není podporováno pro řetězce\n"
msgid "syntax error in expression\n"
msgstr "chyba syntaxe ve výrazu\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Chybí '(' v %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Chybí ')' v %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Neplatný %s token: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Chybějící %s v %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Následuje neprázdný znak %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Špatná syntaxe: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Špatná práva spec: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Špatná práva adresáře: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Soubor musí začínat na \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Soubor uveden dvakrát: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symbolická linka ukazuje na BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Soubor nenalezen: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: nemohu nahrát neznámou značku (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: čtení veřejného klíče selhalo.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: není obrněný veřejný klíč.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Soubor potřebuje úvodní \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Soubor nenalezen globem: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Nemohu otevřít %%files soubor %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "řádek: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Soubor nenalezen globem: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Špatný soubor: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Špatný vlastník/skupina: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Kontroluji nezabalené soubory: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -838,17 +901,17 @@ msgstr ""
"Nalezeny instalované, ale nezabalené soubory:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -867,89 +930,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: řádek: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Nemohu získat jméno počítače: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Nemohu znovu přečíst hlavičku podpisu.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Neznámá komprese payloadu: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Nemohu vytvořit nezměnitelný region hlavičky.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Nemohu otevřít %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Nemohu zapsat balíček: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Nemohu zapsat dočasnou hlavičku\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Špatná CSA data\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Nemohu otevřít %%files soubor %s: %m\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread selhalo: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Zapsáno: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Nemohu vygenerovat jméno souboru pro balíček %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "nemohu vytvořit %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "řádek: %d: druhý %s\n"
@@ -1000,19 +1064,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "řádek %d: Chyba při parsování %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "řádek %d: špatná volba %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "řádek %d: Příliš mnoho jmen: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "řádek %d: Balíček neexistuje: %s\n"
@@ -1067,142 +1131,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Architektura je vyřazena: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Architektura není zahrnuta: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS je vyřazen: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS není zahrnut: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "Položka %s musí být v balíčku přítomna: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Duplikovaná položka %s v balíčku: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Nemohu otevřít ikonu %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Nemohu přečíst ikonu %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Neznámý typ ikony: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "řádek %d: Značka má jen jeden token: %s\n"
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "řádek: %d: druhý %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: řádek: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "řádek %d: Počkozená značka: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "řádek %d: Prázdná značka: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "řádek %d: Prefixy nesmí končit znakem \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "řádek %d: Docdir musí začínat na '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "řádek %d: Špatné určení %s: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "řádek %d: Špatný formát BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Interní chyba: Špatná značka: %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Špatná specifikace balíčku: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Balíček již existuje: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "řádek %d: Neznámá značka: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1212,161 +1280,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "Špatný zdrojový soubor: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Chyba při parsování %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "řádek %d: Špatný parametr v %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "řádek %d: Špatná volba v %%setup %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Neplatné číslo záplaty %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "řádek %d: druhý %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "řádek %d: spouště (triggery) musí mít --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "řádek %d: Chyba při parsování %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "řádek %d: vnitřní skript musí končit na '>': %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "řádek %d: jméno skriptu musí začínat na '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "řádek %d: Druhý %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "řádek %d: nepodporovaný interní skript: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "řádek %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Nemohu otevřít %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: %%else bez počítečního %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%endif bez počátečního %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Nenalezeny žádné kompatibilní architektury pro sestavení\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Balíček nemá žádné %%description: %s\n"
@@ -1437,287 +1537,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Nemohu vytvořit rouru pro %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Nemohu spustit %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Nemohu provést fork %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) selhalo: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load selhal: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Hledám %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Selhalo vyhledání %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "dotaz na spec soubor %s selhal, nemohu parsovat\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s is a Delta RPM a nemůže být přímo instalován\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Nepodporovaný payload (%s) in balíčku %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "balíček %s byl již přidán, přeskakuji %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "balíček %s byl již přidán, nahrazuji ho s %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(není číslo)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(není base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(neplatný typ)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(není blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(neplatný typ xml)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(není OpenPGP podpis)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s uloženo jako %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s vytvořen jako %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1938,7 +2027,7 @@ msgstr "upravit databázi, ale neupravovat systém souborovů"
msgid "do not verify package dependencies"
msgstr "nekontrolovat závislosti balíčků"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2060,162 +2149,182 @@ msgstr "aktualizace balíčku"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "dotázat/ověřit všechny balíčky"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "režim rpm checksig"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "dotaz/ověření balíčků vlastnícího soubor"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "dotaz/ověření balíčků ve skupině"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "dotázat/ověřit soubor balíčku"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "dotaz/ověření balíčků s identifikátorem balíčku"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "dotaz/ověření balíčků s hlavičkovým identifikátorem"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "režim dotazů"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "dotaz/ověření hlavičkové instance"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "dotaz/ověření balíčků z instalační transakce"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "dotaz na balíčky aktivované balíčkem"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "režim kontroly"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "dotaz/ověření balíčků vyžadujících závislost"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "dotaz/ověření balíčků poskytujících závislost"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "dotaz/ověření balíčků vyžadujících závislost"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "dotaz/ověření balíčků vyžadujících závislost"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "dotaz/ověření balíčků vyžadujících závislost"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "dotaz/ověření balíčků vyžadujících závislost"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "neseparuj argumenty"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "nezpracovávej nebalíčkové soubory jako seznamy"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "vypsat všechny konfigurační soubory"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "vypsat všechny soubory s dokumentací"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "zobrazit základní informace o souborech"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "vypsat soubory v balíčku"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "vynechat %%ghost soubory"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "zobrazit stav vypsaných souborů"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "nekontrolovat velikost souborů"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "nekontrolovat cesty symbolických linek"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "nekontrolovat vlastníka souborů"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "nekontrolovat skupinu souborů"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "nekontrolovat čas změny souboru"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "nekontrolovat mód souborů"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "nekontrolovat bezpečnostní kontexty souboru"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "nekontrolovat soubory v balíčku"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "nekontrolovat závislosti balíčků"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "nespouštět kontrolní skripty"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "očekávám balíček se zdrojovými kódy, nalezen však binární\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "zdrojový balíček neobsahuje .spec soubor\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "rozbalování archívu selhalo %s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " na souboru "
@@ -2290,97 +2399,117 @@ msgstr "žádný balíček se neshoduje s %s: %s\n"
msgid "no package requires %s\n"
msgstr "žádný balíček nevyžaduje %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "žádný balíček nevyžaduje %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "žádný balíček neaktivuje %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "žádný balíček nevyžaduje %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "žádný balíček nevyžaduje %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "žádný balíček neposkytuje %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "soubor %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "soubor %s nevlastní žádný balíček\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "neplatné číslo balíčku: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "balíček %s není nainstalován\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "neznámá značka: \"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: importní čtení selhalo(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: Nezměnitelná oblast hlavičky nemůže být čtena. Poškozený balíček?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread selhalo: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NENÍ OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr "(CHYBĚJÍCÍ KLÍČE:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr "(NEDŮVĚRYHODNÉ KLÍČE:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: otevření selhalo: %s\n"
@@ -2405,144 +2534,192 @@ msgstr "Není možné změnit kořenový adresář: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NE "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "ANO"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "PreReq:, Provides:, a Obsoletes: verze pro podporu závislostí."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr "jména souborů uložená jako diName,baseName,dirIndex, ne jako cesta."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "payload balíčku může být komprimován pomocí bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "payload balíčku může být komprimován pomocí lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "soubory payloadu balíčku mají předponu \"./\"."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "NVR balíčku není implicitně zprostředkována."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "značky hlavičky jsou vždy setřízeny po nahrátí."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "interpret skriptletů může použít argumenty z hlavičky."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "hardlinkovaný soubor může být instalován bez toho, aby byl kompletní."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "skriptlety balíčku mohou přistupovat k rpm databázi při instalaci."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "interní podpora pro lua skripty."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "nekontrolovat závislosti balíčků"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Neukončené %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "uživatel %s neexistuje - použit uživatel root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "skupina %s neexistuje - použita skupina root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Špatné magické číslo"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Špatná nebo nečitelná hlavička"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Velikost hlavičky je přiliš velká"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Neznámý typ souboru"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Interní chyba"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Soubor z archivu není v hlavičce"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr "selhal - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "otevření %s selhalo: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2574,42 +2751,42 @@ msgstr "Selhalé závislosti:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: není rpm balíčkem (nebo seznamem balíčků): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s nemůže být nainstalován\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Získávám %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "balíček %s není přemístitelný\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "chyba při vytváření dočasného souboru %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "nemohu otevřít %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Instaluji: %s\n"
@@ -2635,12 +2812,12 @@ msgstr "čtení selhalo: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2798,60 +2975,79 @@ msgstr "chybí arcitektura pro %s na %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "špatný parametr'%s' na %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Neznámý systém: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Prosím kontaktujte %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Nemohu otevřít %s pro čtení: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Nemohu přečíst ikonu %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Nemohu přečíst ikonu %s: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite selhalo: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s scriptlet selhal, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s skriplet selhal, signál %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "provedení %s skripletu selhalo, návratový kód: %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2863,127 +3059,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "nemohu otevřít Packages databázi v %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "nadbytečná '(' v názvu balíčku: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "chybějící '(' v názvu balíčku: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "chybějící ')' v názvu balíčku: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(není OpenPGP podpis)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Nemohu znovu přečíst hlavičku podpisu.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Hlavička "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 digest:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "SHA1 digest v hlavičce:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Hlavička "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "chybí %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Nesplněné závislosti pro %s:\n"
@@ -3057,240 +3272,240 @@ msgstr "iterátor pole použitý s poli jiné délky"
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "nebyla nastavena dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: přeskakuji"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "chyba(%d) ukládání záznamu #%d do %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec selhal: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp selhal: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: přeskakuji"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: poškozená hlavička #%u získáno -- přeskakuji.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: nemohu číst hlavičku na 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "žádný dbpath nebyl nastaven"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "selhání při vytváření adresáře %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "hlavička #%u v databázi je špatná -- přeskakuji.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "nemohu přidat záznam původně na %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "selhalo znovusestavení databáze: původní databáze zůstává na místě\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "selhalo nahrazení staré databáze novou databází!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "nahraď soubory v %s soubory z %s k obnovení"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "selhalo odstranění adresáře %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "nerozpoznaný db parametr: \"%s\" ignorován.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s má neplatnou číselnou hodnotu, přeskakuji\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s má příliš velkou nebo příliš malou long hodnotu, přeskakuji\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s má příliš velkou nebo příliš malou int hodnotu, přeskakuji\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "nemohu získat zámek %s na %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "sdílen"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "exkluzivní"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "chyba(%d) při ukládání záznamu \"%s\" do %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "chyba(%d) v odstraňování \"%s\" z %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "chyba(%d) při alokaci nové instance balíčku\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "nerozpoznaný db parametr: \"%s\" ignorován.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s má neplatnou číselnou hodnotu, přeskakuji\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s má příliš velkou nebo příliš malou long hodnotu, přeskakuji\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s má příliš velkou nebo příliš malou int hodnotu, přeskakuji\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(prázdné)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(prázdné)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Makro %%%s má neukončené parametry\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Makro %%%s má neukončené tělo\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Makro %%%s má nepřípustné jméno (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Makro %%%s má prázdné tělo\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Selhalo vyhodnocení makra %%%s\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Makro %%%s má nedovolené jméno (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Neznámý parametr %c v %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Neukončené %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Po %% následuje nezpracovatelné makro\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktivní %d prázdné %d\n"
@@ -3310,31 +3525,31 @@ msgstr ""
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "neplatná syntax v lua skriptletu: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "neplatná syntax v lua skriptu: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua skript selhal: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "neplatné syntax v lua souboru: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua obsloužení selhalo: %s\n"
@@ -3343,19 +3558,19 @@ msgstr "lua obsloužení selhalo: %s\n"
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(žádná chyba)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "fatální chyba:"
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "chyba: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "varování: "
@@ -3364,101 +3579,159 @@ msgstr "varování: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "alokace paměti (%u bajtů) vrátila NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "selhání při vytváření adresáře %s: %s\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "chyba při vytváření dočasného souboru %s\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "selhání při vytváření adresáře %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite selhalo: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush selhal: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Nemohu vytvořit rouru pro podepsání: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Nemohu spustit %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: otevření selhalo: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Nemohu spustit %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Nemohu otevřít %%files soubor %s: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "spuštění gpg selhalo (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg selhal při zápisu podpisu\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "nemohu přečíst podpis\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: Fwrite selhalo: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature selhalo: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "spuštění selhalo\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp selhal\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "spuštění selhalo\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "spuštění selhalo\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature selhalo: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: Fwrite selhalo: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp selhal\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead selhalo: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3472,23 +3745,14 @@ msgstr "%s: čtení seznamu selhalo: %s\n"
msgid "don't verify header+payload signature"
msgstr "neověřuj podpis hlavičky a payloadu"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Nemohu zapsat payload do %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Nemohu přečíst payload z %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Nelze otevřít dočasný soubor.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Nemohu otevřít cíl pro podepsání %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Vložte heslovou frázi: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Nemohu přečíst hlavičku z %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Heslová fráze je v pořádku.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Nemohu zapsat hlavičku do %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Špatný vlastník/skupina: %s\n"
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr "Nezměnitelná oblast hlavičky nemůže být čtena. Poškozený balíček?\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Nemohu vytvořit rouru pro podepsání: %m"
diff --git a/po/da.gmo b/po/da.gmo
index 52d37461..e945bbe9 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 81a89f50..c6abce41 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7,11 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Danish (http://www.transifex.com/projects/p/rpm/language/"
-"da/)\n"
+"Language-Team: Danish (http://www.transifex.com/rpm-team/rpm/language/da/)\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -80,8 +79,8 @@ msgstr "Verifikationstilvalg (med -V eller --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -101,7 +100,7 @@ msgstr "uventet forespørgselsformat"
msgid "unexpected query source"
msgstr "uventet forespørgselskilde"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "kun ét hovedtilvalg kan angives"
@@ -201,7 +200,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "parameteren til --root (-r) skal starte med et /"
@@ -221,204 +220,250 @@ msgstr "ingen parametre angivet ved forespørgsel"
msgid "no arguments given for verify"
msgstr "ingen parametre angivet ved verifikation"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
"buildroot allerede angivet, ignorerer %s\n"
"\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr "opbyg gennem %prep (udpak kilder og påfør lapper) ud fra <spec-fil>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<spec-fil>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "opbyg gennem %build (%prep, så oversæt) ud fra <spec-fil>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "opbyg gennem %install (%prep, %build, så installér) ud fra <spec-fil>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "verificér afsnittet %files ud fra <spec-fil>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "opbyg kilde- og binærpakke ud fra <spec-fil>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "opbyg kun binærpakke ud fra <spec-fil>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "opbyg kun kildepakke ud fra <spec-fil>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr "opbyg gennem %prep (udpak kilder og påfør lapper) ud fra <spec-fil>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<kildepakke>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "opbyg gennem %build (%prep, så oversæt) ud fra <spec-fil>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"opbyg gennem %install (%prep, %build, så installér) ud fra <kildepakke>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "verificér afsnittet %files ud fra <spec-fil>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "opbyg binærpakke ud fra <kildepakke>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "opbyg binærpakke ud fra <kildepakke>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "opbyg kun kildepakke ud fra <spec-fil>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr "opbyg gennem %prep (udpak kilder og påfør lapper) ud fra <tararkiv>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tararkiv>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "opbyg gennem %build (%prep, så oversæt) ud fra <tararkiv>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "opbyg gennem %install (%prep, %build, så installér) ud fra <tararkiv>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "verificér afsnittet %files fra <tararkiv>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "opbyg kilde- og binærpakker ud fra <tararkiv>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "opbyg kun binærpakke ud fra <tararkiv>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "opbyg kun kildepakke ud fra <tararkiv>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "opbyg binærpakke ud fra <kildepakke>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<kildepakke>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"opbyg gennem %install (%prep, %build, så installér) ud fra <kildepakke>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "gennemtving opbygningsrod"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+msgid "run build in current directory"
+msgstr ""
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "fjern bygge-træ ved afslutning"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignorér 'ExcludeArch':-angivelser fra spec-fil"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "udfør ingen stadier af opbygningen"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "udfør ingen stadier af opbygningen"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "acceptér ikke i18N msgstr'er fra spec-fil"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "fjern kilder ved afslutning"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "fjern spec-fil ved afslutning"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "spring direkte til angivet stadium (kun for c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "gennemtving målplatform"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Opbygningstilvalg med [ <spec-fil> | <tararkiv> | <kildepakke> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Kan ikke åbne spec-fil %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Kunne ikke åbne tar-videreførsel: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Kan ikke åbne spec-fil %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Kunne ikke læse spec-fil fra %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Kunne ikke omdøbe %s til %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "kunne ikke finde %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Filen %s er ikke en regulær fil.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Filen %s synes ikke at være en spec-fil.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Opbygger mål-platforme: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Opbygger for mål %s\n"
@@ -467,50 +512,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
-msgstr "Signaturtilvalg"
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "<pakkefil>+"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
-msgstr "Du skal angive \"%%_gpg_name\" i din makrofil\n"
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Indtast adgangskode: "
+#: rpmsign.c:47
+msgid "Signature options:"
+msgstr "Signaturtilvalg"
-#: rpmsign.c:127
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Adgangskode godkendt.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
+msgstr "Du skal angive \"%%_gpg_name\" i din makrofil\n"
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix kan kun bruges, når nye pakker installeres"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches kan kun angives ved installation"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -527,7 +587,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "brug følgende forespørgselsformat"
@@ -628,218 +688,218 @@ msgstr "&& og || understøttes ikke for strenge\n"
msgid "syntax error in expression\n"
msgstr "syntaksfejl i udtryk\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Manglende '(' i %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Manglende ')' i %s %s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Ugyldigt %s-symbol: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Ikke-mellemrum efterfølger %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Ugyldig syntaks: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Ugyldig tilstandsangivelse: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Ugyldig dirmode-spec: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Fil skal begynde med \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Fil angivet to gange: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symbolsk lænke peger på BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Fil ikke fundet: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Fil kræver foranstillet \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Fil ikke fundet med glob: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "linie: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Fil ikke fundet med glob: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Ugyldig fil: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Ugyldig ejer/gruppe: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -858,89 +918,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Kunne ikke kanonisere værtsnavn: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr ""
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Kunne ikke åbne %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Kunne ikke skrive pakke: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Ugyldige CSA-data\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Kunne ikke åbne %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread mislykkedes: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Skrev: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Kunne ikke generere filnavn til oprettelse af pakke %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "kan ikke oprette %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "linie %d: anden %s\n"
@@ -991,19 +1052,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "linie %d: Fejl ved tolkning af %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "linie %d: Ugyldigt tilvalg %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "line %d: For mange navne: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "line %d: Pakken eksisterer ikke: %s\n"
@@ -1058,142 +1119,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Arkitekturen er ekskluderet: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Arkitekturen er ikke inkluderet: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS er ekskluderet: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS is ikke inkluderet: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "'%s'-felt skal være tilstede i pakke : %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Flere '%s'-indgange i pakke: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Kunne ikke åbne ikon %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Kunne ikke læse ikon %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Ukendt ikontype: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "linie %d: anden %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "linie: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "linie %d: Forkert udformet mærke: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "linie %d: Tomt mærke: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "linie %d: Præfikser kan ikke ende på \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "linie %d: Docdir skal starte med '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "linie %d: Ugyldig %s: angivere: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "linie %d: Ugyldigt 'BuildArchitecture'-format: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Intern fejl: Falsk mærke %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Ugyldig pakkeangivelse: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Pakken eksisterer allerede: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "linie %d: Ukendt mærke: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1203,163 +1268,195 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "Ugyldig kilde: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Fejl ved tolking af %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "linie %d: Ugyldigt '%%setup'-tilvalg %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "linie %d: anden %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "linie %d: udløsere skal have --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "linie %d: Fejl under tolkning af %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "linie %d: skriptprogram skal starte med '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "linie %d: Anden %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "linie %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr ""
"Kunne ikke åbne %s: %s\n"
"\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Fik et %%else uden et %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Fik et %%endif uden et %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Pakke har ingen %%description: %s\n"
@@ -1430,287 +1527,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Kunne ikke udføre %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Kunne ikke fraspalte ny proces til %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Kunne ikke finde %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "forespørgsel af spec-fil %s mislykkedes, kunne ikke tolkes\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(ikke et tal)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s gemt som %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s oprettet som %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1932,7 +2018,7 @@ msgstr "opdatér databasen, men rør ikke filsystemet"
msgid "do not verify package dependencies"
msgstr "undlad at tjekke pakkers afhængighedskrav"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2055,162 +2141,182 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "forespørg/verificér alle pakker"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "forespørg/verificér pakke(r), der ejer filen"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "forespørg/verificér pakke(r) i gruppen"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm forespørgselstilstand"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "forespørg pakke(r), der udløses af pakken"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm verifikationstilstand"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "forespørg/verificér pakke(r), der stiller et krav"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "forespørg/verificér pakke(r), der tilfredsstiller et krav"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "forespørg/verificér pakke(r), der stiller et krav"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "forespørg/verificér pakke(r), der stiller et krav"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "forespørg/verificér pakke(r), der stiller et krav"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "forespørg/verificér pakke(r), der stiller et krav"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "vis alle konfigurationsfiler"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "vis alle dokumentationsfiler"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "vis grundlæggende filinformation"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "vis liste over filerne i pakken"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "vis filernes status"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "verificér ikke filerne i pakke"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "kildepakke forventet, binær fundet\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "kildepakke indeholder ingen .spec-fil\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "udpakning af arkiv mislykkedes%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " for fil "
@@ -2285,96 +2391,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr "ingen pakker kræver %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "ingen pakker kræver %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "ingen pakker udløser %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "ingen pakker kræver %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "ingen pakker kræver %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "ingen pakker tilfører %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "fil %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "filen %s tilhører ingen pakke\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "ugyldigt pakkenummer: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "pakken %s er ikke installeret\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread mislykkedes: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "IKKE O.K."
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "O.K."
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (MANGLENDE NØGLER: "
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (IKKE-BETROEDE NØGLER:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: åbning mislykkedes: %s\n"
@@ -2399,144 +2525,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr ""
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "undlad at tjekke pakkers afhængighedskrav"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Uafsluttet %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "bruger %s eksisterer ikke - bruger root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "gruppe %s eksisterer ikke - bruger root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Ugyldigt magisk tal"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Ugyldigt/ulæseligt hoved"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Hovedstørrelse er for stor"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Ukendt filtype"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Intern fejl"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " mislykkedes - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "åbning af %s mislykkedes %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2568,42 +2742,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s kunne ikke installeres\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Modtager %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "fejl ved læsning fra filen %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "kunne ikke åbne %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Installerer %s\n"
@@ -2629,12 +2803,12 @@ msgstr "læsning mislykkedes: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2793,62 +2967,81 @@ msgstr "manglende arkitektur for %s ved %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "ugyldig tilvalg '%s' ved %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr ""
"Ukendt system: %s\n"
"\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Kunne ikke læse ikon %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Kunne ikke læse ikon %s: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite mislykkedes: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2860,127 +3053,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "kunne ikke åbne Packages-database i %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
+msgstr ""
+
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3054,240 +3266,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "der er ikke sat nogen dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: kan ikke læse hoved ved 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "der ikke sat nogen dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "kunne ikke genopbygge database: original-databasen beholdes\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "kunne ikke erstatte gammel database med ny database!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "erstat filer i %s med filer fra %s for at genoprette"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "kunne ikke fjerne katalog %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr ""
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s har ugyldig talværdi, overspringes\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s har for stor eller lille 'long'-værdi, overspringes\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s har for stor eller lille heltalsværdi, overspringes\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "kan ikke opnå %s lås på %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "delt"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "eksklusiv"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "fejl(%d) under allokering af ny pakkeinstans\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s har ugyldig talværdi, overspringes\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s har for stor eller lille 'long'-værdi, overspringes\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s har for stor eller lille heltalsværdi, overspringes\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(tom)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(tom)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Makroen %%%s har uafsluttede parametre\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Makroen %%%s har et uafsluttet indhold (body)\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Makroen %%%s har et ugyldig navn (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Makroen %%%s har intet indhold\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Makroen %%%s kunne ikke udfoldes\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Makroen %%%s har ugyldigt navn (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Ukendt tilvalg %c i %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Uafsluttet %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Et %% efterfølges af en makro, der ikke kan tolkes\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktiv %d tom %d\n"
@@ -3307,31 +3519,31 @@ msgstr "Fil %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Filen %s er mindre end %u byte\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3340,19 +3552,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(ingen fejl)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "fatal fejl: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "fejl: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "advarsel: "
@@ -3361,101 +3573,159 @@ msgstr "advarsel: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "hukommelsesallokering (%u byte) returnerede NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "fejl ved læsning fra filen %s\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "fejl ved læsning fra filen %s\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "kunne ikke fjerne katalog %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite mislykkedes: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: åbning mislykkedes: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Kunne ikke åbne %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Kunne ikke åbne %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg kunne ikke skrive signaturen\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "kunne ikke læse signaturen\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature mislykkedes: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmWriteSignature mislykkedes: %s\n"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "eksekvering mislykkedes\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "eksekvering mislykkedes\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "eksekvering mislykkedes\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature mislykkedes: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead mislykkedes: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3469,20 +3739,11 @@ msgstr "%s: læs manifest mislykkedes: %s\n"
msgid "don't verify header+payload signature"
msgstr ""
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Kunne ikke skrive pakkeindhold til %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Kunne ikke læse pakkeindhold fra %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Kunne ikke åbne midlertidig fil.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Kunne ikke åbne sigtarget %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Indtast adgangskode: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Kunne ikke læse hoved fra %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Adgangskode godkendt.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Kunne ikke skrive hoved til %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Ugyldig ejer/gruppe: %s\n"
diff --git a/po/de.gmo b/po/de.gmo
index 380be2cb..5b31d99c 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 8fb58317..73ad53e4 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,11 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
-"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: German (http://www.transifex.com/projects/p/rpm/language/"
-"de/)\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-08-13 10:35+0000\n"
+"Last-Translator: Lubos Kardos <kardos.lubos@gmail.com>\n"
+"Language-Team: German (http://www.transifex.com/rpm-team/rpm/language/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -46,7 +45,7 @@ msgstr ""
#: cliutils.c:53
#, c-format
msgid "creating a pipe for --pipe failed: %m\n"
-msgstr "erzeugen einer Pipe für --pipe fehlgeschlagen: %m\n"
+msgstr "Erzeugen einer Pipe für --pipe fehlgeschlagen: %m\n"
#: cliutils.c:63
#, c-format
@@ -66,7 +65,7 @@ msgstr "Fehler beim Lesen des Paket-Headers\n"
#: rpm2archive.c:111 rpm2cpio.c:83
#, c-format
msgid "cannot re-open payload: %s\n"
-msgstr "Kann Nutzdaten nicht erneut öffnen: %s\n"
+msgstr "Nutzdaten können nicht erneut geöffnet werden: %s\n"
#: rpmqv.c:41
msgid "Query/Verify package selection options:"
@@ -84,8 +83,8 @@ msgstr "Überprüfungsoptionen (mit -V oder --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Installations-/Aktualisierungs-/Deinstallationsoptionen:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Gemeinsame Optionen für alle RPM-Modi und Ausführungen:"
@@ -106,13 +105,13 @@ msgstr "Unerwartetes Abfrage-Format"
msgid "unexpected query source"
msgstr "Unerwartete Abfrage-Quelle"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
-msgstr "Nur ein wichtiger Modus kann angegeben werden"
+msgstr "Nur ein Hauptmodus kann angegeben werden"
#: rpmqv.c:154
msgid "only installation and upgrading may be forced"
-msgstr "Nur Installation und Upgrade kann erzwungen werden"
+msgstr "Nur Installation und Aktualisierung kann erzwungen werden"
#: rpmqv.c:156
msgid "files may only be relocated during package installation"
@@ -225,7 +224,7 @@ msgstr ""
"--test kann nur während der Paket-Installation oder -Deinstallation "
"angegeben werden"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "Argumente für --root (-r) müssen mit einem / beginnen"
@@ -245,237 +244,286 @@ msgstr "Es wurden keine Argumente für die Abfrage angegeben"
msgid "no arguments given for verify"
msgstr "Es wurden keine Argumente für die Überprüfung angegeben"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
-msgstr "BuildRoot wurde bereits angegeben, ignoriere %s\n"
+msgstr "BuildRoot wurde bereits angegeben, %s wird ignoriert\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"%prep (Quellen entpacken, Patches übernehmen) der <Spec-Datei> durchlaufen"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<Spec-Datei>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-"%build (%prep, anschliessendes Kompilieren) der <Spec-Datei> durchlaufen"
+"%build (%prep, anschließendes Kompilieren) der <Spec-Datei> durchlaufen"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-"%install (%prep, %build, anschliessendes Installieren) der <Spec-Datei> "
+"%install (%prep, %build, anschließendes Installieren) der <Spec-Datei> "
"durchlaufen"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
-msgstr "Überprüfe %files-Abschnitt der <Spec-Datei>"
+msgstr "%files-Abschnitt der <Spec-Datei> überprüfen"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
-msgstr "Baue Source- und Binär-Paket von <Spec-Datei>"
+msgstr "Quell- und Binär-Paket von <Spec-Datei> bauen"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
-msgstr "Baue nur ein Binär-Paket von <Spec-Datei>"
+msgstr "Nur ein Binär-Paket von <Spec-Datei> bauen"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
-msgstr "Baue nur ein Source-Paket von <Spec-Datei>"
+msgstr "Nur ein Quell-Paket von <Spec-Datei> bauen"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"%prep (Quellen entpacken, Patches übernehmen) der <Spec-Datei> durchlaufen"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<Quell-Paket>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+"%build (%prep, anschließendes Kompilieren) der <Spec-Datei> durchlaufen"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"%install (%prep, %build, anschließendes Installieren) des <Quell-Pakets> "
+"durchlaufen"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "%files-Abschnitt der <Spec-Datei> überprüfen"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "Ein Quell-Paket vom <Source-Paket> bauen"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "Ein Quell-Paket vom <Source-Paket> bauen"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "Nur ein Quell-Paket von <Spec-Datei> bauen"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"%prep (Quellen entpacken, Patches übernehmen) des <Tar-Archivs> durchlaufen"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<Tar-Archiv>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-"%build (%prep, anschliessendes Kompilieren) des <Tar-Archivs> durchlaufen"
+"%build (%prep, anschließendes Kompilieren) des <Tar-Archivs> durchlaufen"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-"%install (%prep, %build, anschliessendes Installieren) des <Tar-Archivs> "
+"%install (%prep, %build, anschließendes Installieren) des <Tar-Archivs> "
"durchlaufen"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
-msgstr "Überprüfe %files-Abschnitt des <Tar-Archivs>"
+msgstr "%files-Abschnitt des <Tar-Archivs> überprüfen"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
-msgstr "Baue Source- und Binär-Paket vom <Tar-Archiv>"
+msgstr "Quell- und Binär-Paket vom <Tar-Archiv> bauen"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
-msgstr "Baue nur ein Binär-Paket vom <Tar-Archiv>"
+msgstr "Nur ein Binär-Paket vom <Tar-Archiv> bauen"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
-msgstr "Baue nur ein Source-Paket vom <Tar-Archiv>"
+msgstr "Nur ein Quell-Paket vom <Tar-Archiv> bauen"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
-msgstr "Baue ein Binär-Paket vom <Source-Paket>"
-
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<Source-Paket>"
+msgstr "Ein Quell-Paket vom <Source-Paket> bauen"
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"%install (%prep, %build, anschliessendes Installieren) des <Source-Pakets> "
-"durchlaufen"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
-msgstr "Überschreibe BuildRoot"
+msgstr "BuildRoot überschreiben"
+
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Das aktuelle Verzeichnis kann nicht geöffnet werden: %m\n"
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "Erstellungsdateibaum nach Beendigung löschen"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ExcludeArch ignorieren: Anweisungen der Spec-Datei"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
-msgstr "Debugge Datei-Status"
+msgstr "Datei-Status debuggen"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "Keine der Phasen des Erstellungsvorganges ausführen"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "Keine Überprüfung der Paket-Abhängigkeiten"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-"Generiere Paket-Header, die mit veralteten RPM-Paketen (v3) kompatibel sind"
+"Paket-Header generieren, die mit veralteten RPM-Paketen (v3) kompatibel sind"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
-msgstr ""
+msgstr "%clean-Abschnitt des Bauvorgangs nicht ausführen"
+
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "%clean-Abschnitt des Bauvorgangs nicht ausführen"
-#: rpmbuild.c:189
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
-msgstr ""
+msgstr "%check-Abschnitt des Bauvorgangs nicht ausführen"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "Keine i18n-Übersetzungen der Spec-Datei zulassen"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "Quelldateien nach Beendigung löschen"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "Spec-Datei nach Beendigung löschen"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
-msgstr "Springe direkt zur angegeben Phase (nur für c, i)"
+msgstr "Direkt zur angegeben Phase springen (nur für c, i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
-msgstr "Überschreibe Zielplattform"
+msgstr "Zielplattform überschreiben"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-"Erstellungsoptionen mit [ <Spec-Datei> | <Tar-Archiv> | <Source-Paket> ]:"
+"Erstellungsoptionen mit [ <Spec-Datei> | <Tar-Archiv> | <Quell-Paket> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Fehlgeschlagene Paket-Abhängigkeiten:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Die Spec-Datei %s kann nicht geöffnet werden: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Die Tar-Pipe konnte nicht geöffnet werden: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Mehr als eine Datei in einer Zeile: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
-msgstr "Konnte Spec-Datei von %s nicht lesen\n"
+msgstr "Spec-Datei konnte nicht von %s gelesen werden\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
-msgstr "Konnte %s nicht in %s umbenennen: %m\n"
+msgstr "%s konnte nicht in %s umbenannt werden: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "Aufruf von stat für %s nicht möglich: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
-msgstr "Die Datei %s ist keine normale Datei.\n"
+msgstr "Die Datei %s ist keine reguläre Datei.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Die Datei %s scheint keine Spec-Datei zu sein.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
-msgstr "Baue für die Zielplattform(en): %s\n"
+msgstr "Für folgende Zielplattform(en) wird gebaut: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
-msgstr "Baue für das Ziel %s\n"
+msgstr "Für das Ziel %s wird gebaut\n"
#: rpmdb.c:25
msgid "initialize database"
-msgstr "Initialisiere Datenbank"
+msgstr "Datenbank initialisieren"
#: rpmdb.c:27
msgid "rebuild database inverted lists from installed package headers"
msgstr ""
-"Erstelle invertierte Datenbank-Liste anhand der installierten Paket-Header"
+"Invertierte Datenbank-Liste anhand der installierten Paket-Header erstellen"
#: rpmdb.c:30
msgid "verify database files"
-msgstr "Überprüfe Datenbank-Dateien"
+msgstr "Datenbank-Dateien überprüfen"
#: rpmdb.c:32
msgid "export database to stdout header list"
-msgstr ""
+msgstr "Datenbank in die Header-Liste in der Standardeingabe exportieren"
#: rpmdb.c:35
msgid "import database from stdin header list"
-msgstr ""
+msgstr "Datenbank aus der Header-Liste in der Standardeingabe importieren"
#: rpmdb.c:42
msgid "Database options:"
@@ -483,15 +531,16 @@ msgstr "Datenbank-Optionen:"
#: rpmkeys.c:24
msgid "verify package signature(s)"
-msgstr "Überprüfe Paket-Signatur(en)"
+msgstr "Paket-Signatur(en) überprüfen"
#: rpmkeys.c:26
msgid "import an armored public key"
-msgstr "Importiere einen gepanzerten öffentlichen Schlüssel"
+msgstr "Einen gepanzerten öffentlichen Schlüssel importieren"
#: rpmkeys.c:28
msgid "don't import, but tell if it would work or not"
msgstr ""
+"Nicht importieren, aber ermitteln, ob es funktionieren würde oder nicht"
#: rpmkeys.c:31 rpmkeys.c:33
msgid "list keys from RPM keyring"
@@ -501,53 +550,69 @@ msgstr "Schlüssel des RPM-Schlüsselbundes auflisten"
msgid "Keyring options:"
msgstr "Signatur-Optionen:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "Es wurden keine Argumente angegeben"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "Paket(e) signieren"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
-msgstr "Signiere Paket(e) (identisch mit --addsign)"
+msgstr "Paket(e) signieren (identisch mit --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
-msgstr "Lösche Paket-Signatur(en)"
+msgstr "Paket-Signatur(en) löschen"
+
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "Paket(e) signieren"
-#: rpmsign.c:35
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Signatur-Optionen:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Konnte %s nicht ausführen: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
-msgstr "\"%%_gpg_name\" muss in der Makro-Datei gesetzt sein\n"
+msgstr "»%%_gpg_name« muss in der Makro-Datei gesetzt sein\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Bitte das Passwort eingeben: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Das Passwort ist richtig.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix darf nur bei der Installation neuer Pakete benutzt werden"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
msgstr ""
+"--allmatches darf nur während der Paket-Deinstallation angegeben werden"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
-msgstr ""
+msgstr "Auswertung der Spec-Datei(en) in die Standardausgabe leiten"
#: rpmspec.c:28
msgid "query spec file(s)"
@@ -556,14 +621,14 @@ msgstr "Spec-Datei(en) abfragen"
#: rpmspec.c:30
msgid "operate on binary rpms generated by spec (default)"
msgstr ""
-"Arbeite mit dem binären RPMS, das aus der Spezifikation erstellt wurde "
+"Mit den binären RPMs arbeiten, die aus der Spezifikation erstellt wurden "
"(Standard)"
#: rpmspec.c:32
msgid "operate on source rpm generated by spec"
-msgstr "Arbeite mit Quell-RPM, das aus der Spezifikation erstellt wurde"
+msgstr "Mit Quell-RPM arbeiten, das aus der Spezifikation erstellt wurde"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "Folgendes Abfrage-Format benutzen"
@@ -573,7 +638,7 @@ msgstr "Spec-Optionen:"
#: rpmspec.c:90
msgid "no arguments given for parse"
-msgstr ""
+msgstr "Keine Argumente zur Auswertung angegeben"
#: build/build.c:120
#, c-format
@@ -583,7 +648,7 @@ msgstr "Temp-Datei konnte nicht geöffnet werden: %s\n"
#: build/build.c:126
#, c-format
msgid "Unable to open stream: %s\n"
-msgstr "Stream konnte nicht geöffnet werden: %s\n"
+msgstr "Datenstrom konnte nicht geöffnet werden: %s\n"
#: build/build.c:161
#, c-format
@@ -598,7 +663,7 @@ msgstr "Ausführung von %s fehlgeschlagen (%s): %s\n"
#: build/build.c:177
#, c-format
msgid "Error executing scriptlet %s (%s)\n"
-msgstr ""
+msgstr "Fehler bei der Ausführung des Skriptlets %s (%s)\n"
#: build/build.c:184
#, c-format
@@ -617,19 +682,19 @@ msgstr ""
#: build/expression.c:215
msgid "syntax error while parsing ==\n"
-msgstr "Syntax-Fehler beim Parsen von ==\n"
+msgstr "Syntax-Fehler beim Auswerten von ==\n"
#: build/expression.c:245
msgid "syntax error while parsing &&\n"
-msgstr "Syntax-Fehler beim Parsen von &&\n"
+msgstr "Syntax-Fehler beim Auswerten von &&\n"
#: build/expression.c:254
msgid "syntax error while parsing ||\n"
-msgstr "Syntax-Fehler beim Parsen von ||\n"
+msgstr "Syntax-Fehler beim Auswerten von ||\n"
#: build/expression.c:304
msgid "parse error in expression\n"
-msgstr "Fehler beim Parsen des Ausdrucks\n"
+msgstr "Fehler beim Auswerten des Ausdrucks\n"
#: build/expression.c:336
msgid "unmatched (\n"
@@ -650,215 +715,215 @@ msgstr "Typen müssen übereinstimmen\n"
#: build/expression.c:439
msgid "* / not suported for strings\n"
-msgstr "* / nicht unterstützt für Strings\n"
+msgstr "* / nicht unterstützt für Zeichenketten\n"
#: build/expression.c:490
msgid "- not suported for strings\n"
-msgstr "- nicht unterstützt für Strings\n"
+msgstr "- nicht unterstützt für Zeichenketten\n"
#: build/expression.c:637
msgid "&& and || not suported for strings\n"
-msgstr "&& und || nicht unterstützt für Strings\n"
+msgstr "&& und || nicht unterstützt für Zeichenketten\n"
#: build/expression.c:669
msgid "syntax error in expression\n"
msgstr "Syntax-Fehler im Ausdruck\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
-msgstr "Fehlende '(' bei %s %s\n"
+msgstr "Fehlende »(« bei %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
-msgstr "Fehlende ')' bei %s(%s\n"
+msgstr "Fehlende »)« bei %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
-msgstr "Ungültiges %s Zeichen: %s\n"
+msgstr "Ungültiges %s-Zeichen: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Fehlendes %s bei %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
-msgstr "Druckbarem Zeichen folgt %s(): %s\n"
+msgstr "Darstellbarem Zeichen folgt %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Ungültiger Syntax: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Ungültige Dateiberechtigungen: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Ungültige Verzeichnisberechtigungen: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
-msgstr ""
+msgstr "Ungültige Länge der Locale: »%s« in %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
-msgstr ""
+msgstr "Doppelte Locale %s in %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Ungültige Fähigkeit: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Dateifähigkeits-Unterstützung nicht eingebaut\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
-msgstr "Datei muss mit \"/\" beginnen: %s\n"
+msgstr "Datei muss mit »/« beginnen: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
-msgstr "Unbekannter Datei--Auszug-Algorithmus %u, gehe zurück zu MD5\n"
+msgstr "Unbekannter Prüfsummen-Algorithmus %u, es wird auf MD5 ausgewichen\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Datei doppelt aufgelistet: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
-msgstr ""
+msgstr "Lesen des symbolischen Links %s fehlgeschlagen: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symbolischer Link zeigt auf den BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
-msgstr ""
+msgstr "Pfad ist außerhalb von BuildRoot: %s\n"
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Verzeichnis nicht gefunden: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Datei nicht gefunden: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
-msgstr ""
+msgstr "Kein Verzeichnis: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
-msgstr "%s: Kann den unbekannten Tag (%d) nicht laden.\n"
+msgstr "%s: Unbekannter Tag (%d) kann nicht geladen werden.\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: Lesen des öffentlichen Schlüssels fehlgeschlagen.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: Ist kein gepanzerter öffentlicher Schlüssel.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: Verschlüsselung fehlgeschlagen\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
-msgstr "Datei benötigt führenden \"/\": %s\n"
+msgstr "Datei benötigt führenden »/«: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
-msgstr ""
+msgstr "%%dev-glob ist unzulässig: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
-msgstr "Verzeichnis von Glob nicht gefunden: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
+msgstr "Verzeichnis von »glob« nicht gefunden: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
-msgstr "Datei von \"glob\" nicht gefunden: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
+msgstr "Datei von »glob« nicht gefunden: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
-msgstr "Datei %s aus %%files konnte nicht geöffnet: %m\n"
+msgstr "Datei %s aus %%files konnte nicht geöffnet werden: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "Zeile: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
-msgstr ""
+msgstr "Leere Datei %s in %%files\n"
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
-msgstr ""
+msgstr "Fehler beim Lesen der Datei %s in %%files: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
-msgstr ""
+msgstr "Ungültiges _docdir_fmt %s: %s\n"
+
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Datei von »glob« nicht gefunden: %s\n"
-#: build/files.c:1806
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
-msgstr ""
+msgstr "Spezielles %s kann nicht mit anderen Formen gemischt werden: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
-msgstr ""
+msgstr "Mehr als eine Datei in einer Zeile: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Ungültige Datei: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Ungültiger Eigentümer/Gruppe: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
-msgstr "Prüfe auf nicht gepackte Datei(en): %s\n"
+msgstr "Auf nicht gepackte Datei(en) wird geprüft: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -867,122 +932,121 @@ msgstr ""
"Installierte (aber nicht gepackte) Datei(en) gefunden:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
-msgstr "Verarbeite Daten: %s\n"
+msgstr "Dateien werden verarbeitet: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
+"Architektur der Binärdateien (%d) entspricht nicht der Paketarchitektur "
+"(%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
-msgstr "Architekturabhängige Binärdateien in noarch-Paket\n"
+msgstr "Architekturabhängige Binärdateien in »noarch«-Paket\n"
#: build/pack.c:90
#, c-format
msgid "create archive failed on file %s: %s\n"
-msgstr ""
+msgstr "Erstellen der Archivdatei fehlgeschlagen bei Datei %s: %s\n"
#: build/pack.c:93
#, c-format
msgid "create archive failed: %s\n"
-msgstr ""
+msgstr "Erstellen der Archivdatei fehlgeschlagen: %s\n"
#: build/pack.c:120
#, c-format
msgid "Could not open %s file: %s\n"
-msgstr ""
-"Konnte %s-Datei nicht öffnen: %s\n"
-"\n"
+msgstr "%s-Datei konnte nicht geöffnet werden: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: Zeile: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Rechnername konnte nicht erkannt werden: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Kann den Header der Signatur nicht erneut laden.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
-msgstr "Unbekannte Nutzdaten.Kompression: %s\n"
+msgstr "Unbekannte Nutzdaten-Kompression: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
-msgstr "Konnte keine unveränderliche Header-Region erstellen.\n"
+msgstr "Unveränderliche Header-Region konnte nicht erstellt werden.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
-msgstr "Konnte %s nicht öffnen: %s\n"
+msgstr "%s konnte nicht geöffnet werden: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
-msgstr "Kann das Paket nicht schreiben: %s\n"
+msgstr "Paket konnte nicht geschrieben werden: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
-msgstr "Kann den temporären Header nicht schreiben\n"
+msgstr "Temporärer Header konnte nicht geschrieben werden\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Ungültige CSA-Daten\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr ""
-"Konnte %s-Datei nicht öffnen: %s\n"
-"\n"
+msgstr "Datei %s kann nicht durchsucht werden: %s\n"
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread fehlgeschlagen: %s\n"
+msgstr "»fread« fehlgeschlagen in Datei %s: %s\n"
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Erstellt: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
-msgstr "Ausschluss \"%s\":\n"
+msgstr "»%s« wird ausgeführt:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
-msgstr "Ausschluss von \"%s\" fehlgeschlagen.\n"
+msgstr "Ausführung von »%s« ist fehlgeschlagen.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
-msgstr "Paket-Prüfung \"%s\" fehlgeschlagen.\n"
+msgstr "Paket-Prüfung »%s« fehlgeschlagen.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
-msgstr "Konnte den Dateinamen für das Paket %s nicht generieren: %s\n"
+msgstr "Dateiname für das Paket %s konnte nicht generiert werden: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
-msgstr "Kann Datei %s nicht erstellen: %s\n"
+msgstr "%s konnte nicht erstellt werden: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "Zeile %d: Zweites %s\n"
@@ -990,7 +1054,7 @@ msgstr "Zeile %d: Zweites %s\n"
#: build/parseChangelog.c:114
#, c-format
msgid "bogus date in %%changelog: %s\n"
-msgstr ""
+msgstr "Ungültiges Datum in %%changelog: %s\n"
#: build/parseChangelog.c:146
#, c-format
@@ -1015,7 +1079,7 @@ msgstr "%%changelog ist nicht in absteigender Reihenfolge\n"
#: build/parseChangelog.c:182 build/parseChangelog.c:193
#, c-format
msgid "missing name in %%changelog\n"
-msgstr "Fehlender Name im %%changelog\n"
+msgstr "Name im %%changelog fehlt\n"
#: build/parseChangelog.c:200
#, c-format
@@ -1025,27 +1089,27 @@ msgstr "Keine Beschreibung im %%changelog\n"
#: build/parseChangelog.c:237
#, c-format
msgid "line %d: second %%changelog\n"
-msgstr ""
+msgstr "Zeile %d: zweites %%changelog\n"
#: build/parseDescription.c:32
#, c-format
msgid "line %d: Error parsing %%description: %s\n"
-msgstr "Zeile %d: Fehler beim Parsen von %%description: %s\n"
+msgstr "Zeile %d: Fehler beim Auswerten von %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "Zeile %d: Ungültige Option %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "Zeile %d: Zu viele Namen: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "Zeile: %d: Paket existiert nicht: %s\n"
@@ -1053,22 +1117,22 @@ msgstr "Zeile: %d: Paket existiert nicht: %s\n"
#: build/parseFiles.c:33
#, c-format
msgid "line %d: Error parsing %%files: %s\n"
-msgstr "Zeile %d: Fehler beim Parsen von %%files: %s\n"
+msgstr "Zeile %d: Fehler beim Auswerten von %%files: %s\n"
#: build/parseFiles.c:76
#, c-format
msgid "line %d: second %%files\n"
-msgstr ""
+msgstr "Zeile %d: zweiter %%files-Abschnitt\n"
#: build/parsePolicies.c:32
#, c-format
msgid "line %d: Error parsing %%policies: %s\n"
-msgstr "Zeile %d: Fehler beim Parsen von %%policies: %s\n"
+msgstr "Zeile %d: Fehler beim Auswerten von %%policies: %s\n"
#: build/parsePreamble.c:71
#, c-format
msgid "Error parsing tag field: %s\n"
-msgstr ""
+msgstr "Fehler beim Auswerten des Tag-Feldes: %s\n"
#: build/parsePreamble.c:164
#, c-format
@@ -1083,7 +1147,7 @@ msgstr "Zeile %d: Ungültige no%s-Nummer: %u\n"
#: build/parsePreamble.c:233
#, c-format
msgid "line %d: Bad %s number: %s\n"
-msgstr "Zeile %d: Ungültige %s Nummer: %s\n"
+msgstr "Zeile %d: Ungültige %s-Nummer: %s\n"
#: build/parsePreamble.c:247
#, c-format
@@ -1093,7 +1157,7 @@ msgstr "%s %d ist mehrfach definiert\n"
#: build/parsePreamble.c:292
#, c-format
msgid "Downloading %s to %s\n"
-msgstr "%s herunterladen nach %s\n"
+msgstr "%s wird nach %s heruntergeladen\n"
#: build/parsePreamble.c:295
#, c-format
@@ -1102,308 +1166,346 @@ msgstr ""
"%s konnte nicht heruntergeladen werden\n"
"\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Architektur ist ausgeschlossen: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Architektur ist nicht einbezogen: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "Betriebssystem ist ausgeschlossen: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "Betriebssystem ist nicht einbezogen: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s-Feld muss im Paket vorhanden sein: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Doppelte %s-Einträge im Paket: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
-msgstr "Kann Icon %s nicht öffnen: %s\n"
+msgstr "Symbol %s kann nicht geöffnet werden: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
-msgstr "Kann Icon %s nicht lesen: %s\n"
+msgstr "Symbol %s kann nicht gelesen werden: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
-msgstr "Unbekannter Icon-Typ: %s\n"
+msgstr "Unbekannter Symbol-Typ: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "Zeile %d: Tag benötigt nur ein Zeichen: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr "Zeile %d: Ungültiges Zeichen '%c' in: %s\n"
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "Zeile %d: Ungültiges Zeichen in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
+msgstr "Zeile %d: Ungültiges Zeichen »%c« in: %s\n"
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
-msgstr "Zeile %d: Ungültiges Zeichen \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
+msgstr "Zeile %d: Ungültige Sequenz »..« in: %s\n"
+
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "Zeile %d: %s: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: Zeile: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "Zeile %d: Missgebildeter Tag: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "Zeile %d: Leerer Tag: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
-msgstr "Zeile %d: Präfixe dürfen nicht mit einem \"/\" enden: %s\n"
+msgstr "Zeile %d: Präfixe dürfen nicht mit einem »/« enden: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-"Zeile %d: Das Dokumentationsverzeichnis muss mit einem \"/\" beginnen: %s\n"
+"Zeile %d: Das Dokumentationsverzeichnis muss mit einem »/« beginnen: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "Zeile %d: Das Epoch-Feld muss eine vorzeichenlose Zahl sein: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "Zeile %d: Ungültig %s: Kennzeichner: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "Zeile %d: Ungültiges BuildArchitecture-Format: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
-msgstr "Zeile %d: Nur noarch-Unterpakete werden unterstützt: %s\n"
+msgstr "Zeile %d: Nur »noarch«-Unterpakete werden unterstützt: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Interner Fehler: Falscher Tag %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "Zeile %d: %s ist veraltet: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Ungültige Paket-Spezifikation: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Paket ist bereits vorhanden: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "Zeile %d: Unbekannter Tag: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} kann nicht leer sein\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
-msgstr "%%{buildroot} kann nicht \"/\" sein\n"
+msgstr "%%{buildroot} kann nicht »/« sein\n"
#: build/parsePrep.c:28
#, c-format
msgid "Bad source: %s: %s\n"
msgstr "Ungültige Quelle: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
-msgstr "Keine Patch-Nummer %u\n"
+msgstr "Kein Patch mit der Nummer %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
-msgstr "%%patch ohne korrespondierenden \"Patch:\"-Tag\n"
+msgstr "%%patch ohne korrespondierenden »Patch:«-Tag\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
-msgstr "Keine Source-Nummer %u\n"
+msgstr "Keine Quelle mit der Nummer %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
-msgstr "Kein \"Source\"-Tag in Spec-Datei\n"
+msgstr "Kein »Source«-Tag in Spec-Datei\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
-msgstr "Fehler beim Parsen von %%setup: %s\n"
+msgstr "Fehler beim Auswerten von %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "Zeile %d: Ungültiges Argument für %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "Zeile %d: Ungültige %%setup-Option %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Ungültige Patch-Nummer %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "Zeile %d: Zweites %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-"Token mit Abhängigkeiten müssen alphanumerisch, mit '_' oder '/' beginnen"
+"Token mit Abhängigkeiten müssen mit alphanumerischem Zeichen, »_« oder »/« "
+"beginnen"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
-msgstr ""
+msgstr "Versionierter Dateiname ist nicht erlaubt"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Version benötigt"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "Ungültige Abhängigkeit"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Version wird benötigt"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
-msgstr ""
+msgstr "Zeile %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "Zeile %d: Trigger benötigen --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
-msgstr "Zeile %d: Fehler beim Parsen von %s: %s\n"
+msgstr "Zeile %d: Fehler beim Auswerten von %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
-msgstr "Zeile %d: Internes Skript muss mit '>' enden: %s\n"
+msgstr "Zeile %d: Internes Skript muss mit »>« enden: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
-msgstr "Zeile %d: Skript/Programm muss mit '/' beginnen: %s\n"
+msgstr "Zeile %d: Skript/Programm muss mit »/« beginnen: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr "Zeile %d: Interpreter-Argumente sind in Triggern nicht erlaubt: %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "Zeile %d: Zweites %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "Zeile %d: Nicht unterstütztes internes Skript: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
-msgstr ""
+msgstr "Zeile %d: Interpreter-Argumente sind in Triggern nicht erlaubt: %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "Zeile %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Öffnen von %s fehlgeschlagen: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
-msgstr ""
+msgstr "%s:%d: Argument wurde für %s erwartet\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
-msgstr ""
+msgstr "Zeile %d: Nicht geschlossenes %%if\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
-msgstr ""
+msgstr "Zeile %d: Nicht geschlossenes Makro oder ungültige Zeilenfortsetzung\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
-msgstr ""
+msgstr "%s:%d: Ungültige %%if-Bedingung\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: %%else ohne %%if erhalten\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%endif ohne %%if erhalten\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
+msgstr "%s:%d: missgebildete %%include-Anweisung\n"
+
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
-msgstr "Keine für das Bauen kompatible Architektur gefunden\n"
+msgstr "Keine für das Bauen kompatiblen Architekturen gefunden\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Paket hat keine %%description: %s\n"
@@ -1434,7 +1536,7 @@ msgstr ""
#: build/policies.c:163
#, c-format
msgid "Failed to read policy file: %s\n"
-msgstr "Lesevorgang fehlgeschlagen Richtlinien-Datei: %s\n"
+msgstr "Lesen der Richtlinien-Datei fehlgeschlagen: %s\n"
#: build/policies.c:170
#, c-format
@@ -1452,320 +1554,313 @@ msgid ""
"'%s' type given with other types in %%semodule %s. Compacting types to "
"'%s'.\n"
msgstr ""
+"»%s«-Type zusammen mit anderen Typen in %%semodule %s angegeben. Typen "
+"werden zu »%s« zusammengefasst.\n"
#: build/policies.c:246
#, c-format
msgid "Error parsing %s: %s\n"
-msgstr "Fehler beim Parsen von %s: %s\n"
+msgstr "Fehler beim Auswerten von %s: %s\n"
#: build/policies.c:252
#, c-format
msgid "Expecting %%semodule tag: %s\n"
msgstr ""
-"Erwarte %%semodule Kennzeichen: %s\n"
+"%%semodule-Tag wird erwartet: %s\n"
"\n"
#: build/policies.c:262
#, c-format
msgid "Missing module path in line: %s\n"
-msgstr "Fehlender Modul-Pfad bei Zeile %s\n"
+msgstr "Fehlender Modul-Pfad in Zeile: %s\n"
#: build/policies.c:268
#, c-format
msgid "Too many arguments in line: %s\n"
-msgstr "Zu viele Argumente in der Datenzeile bei %s\n"
+msgstr "Zu viele Argumente in der Zeile: %s\n"
#: build/policies.c:307
#, c-format
msgid "Processing policies: %s\n"
-msgstr "Verarbeite Richtlinien: %s\n"
+msgstr "Richtlinien werden verarbeitet: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
-msgstr "Ungültiger Regex-Ausdruck %s wird ignoriert\n"
+msgstr "Ungültiger regulärer Ausdruck %s wird ignoriert\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
-msgstr "Konnte keine Pipe für %s erzeugen: %m\n"
+msgstr "Pipe für %s konnte nicht erzeugt werden: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
-msgstr "Konnte %s nicht ausführen: %s\n"
+msgstr "%s konnte nicht ausgeführt werden: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
-msgstr "Konnte fork %s nicht ausführen: %s\n"
+msgstr "fork %s konnte nicht ausgeführt werden: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s fehlgeschlagen: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
-msgstr "Konnte nicht all Daten nach %s: %s schreiben\n"
+msgstr "Nicht alle Daten konnten nach %s geschrieben werden: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
-msgstr ""
+msgstr "Falscher Operator"
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
-msgstr ""
+msgstr "Falsches Format"
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
-msgstr ""
-
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Umwandlung von %s in einen langen Integer fehlgeschlagen.\n"
+msgstr "Ungültige Abhängigkeit (%s): %s\n"
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
-msgstr ""
+msgstr "Leerer Dateiklassifizierer\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Keine Dateiattribute konfiguriert\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) fehlgeschlagen: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load fehlgeschlagen: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
-msgstr "Erkennung der Datei \"%s\" fehlgeschlagen: Modus %06o %s\n"
+msgstr "Erkennung der Datei »%s« fehlgeschlagen: Modus %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
-msgstr "Finde %s: %s\n"
+msgstr "%s wird gesucht: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
-msgstr "Fehlgeschlagenes zu finden %s:\n"
+msgstr "%s konnte nicht gefunden werden:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
-msgstr "Abfragen der Spec-Datei %s fehlgeschlagen, kann nicht geparst werden\n"
+msgstr ""
+"Abfragen der Spec-Datei %s fehlgeschlagen, kann nicht ausgewertet werden\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
-msgstr "%s ist ein Delta RPM und kann nicht direkt installiert werden\n"
+msgstr "%s ist ein Delta-RPM und kann nicht direkt installiert werden\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
-msgstr "Nicht unterstütze Nutzlast (%s) in Paket %s\n"
+msgstr "Nicht unterstütze Nutzdaten (%s) in Paket %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
-msgstr "Paket %s wurde bereits hinzugefügt, überspringe %s\n"
+msgstr "Paket %s wurde bereits hinzugefügt, %s wird übersprungen\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
-msgstr "Paket %s wurde bereits hinzugefügt, ersetze es durch %s\n"
+msgstr "Paket %s wurde bereits hinzugefügt, wird durch %s ersetzt\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(keine Nummer)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(nicht Base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(ungültiger Typ)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(kein Blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(ungültiger XML-Typ)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(keine OpenPGP-Signatur)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Ungültiges Datum %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normal"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "ersetzt"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "nicht installiert"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "Netzwerk-Mitbenutzung"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "Falsche Farbe"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "fehlt"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(unbekannt)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
-msgstr "(kein String)"
+msgstr "(keine Zeichenkette)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s als %s gesichert\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s erstellt als %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
-msgstr ""
+msgstr "%s %s: Entfernen fehlgeschlagen: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
-msgstr ""
+msgstr "Verzeichnis"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
-msgstr ""
-
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
+msgstr "Datei"
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
"%s: error: more than one --pipe specified (incompatible popt aliases?)\n"
msgstr ""
+"%s: Fehler: --pipe wurde mehrmals angegeben (inkompatible »popt«-Aliase?)\n"
#: lib/poptALL.c:175
msgid "predefine MACRO with value EXPR"
@@ -1773,7 +1868,7 @@ msgstr "MAKRO mit Wert AUSDRUCK vordefinieren"
#: lib/poptALL.c:176 lib/poptALL.c:179
msgid "'MACRO EXPR'"
-msgstr "'MAKRO AUSDRUCK'"
+msgstr "»MAKRO AUSDRUCK«"
#: lib/poptALL.c:178
msgid "define MACRO with value EXPR"
@@ -1781,11 +1876,11 @@ msgstr "MAKRO mit Wert AUSDRUCK definieren"
#: lib/poptALL.c:181
msgid "undefine MACRO"
-msgstr ""
+msgstr "Definition von MAKRO zurücksetzen"
#: lib/poptALL.c:182
msgid "MACRO"
-msgstr ""
+msgstr "MAKRO"
#: lib/poptALL.c:184
msgid "print macro expansion of EXPR"
@@ -1793,11 +1888,11 @@ msgstr "Makro-Ausdehnung des AUSDRUCKS anzeigen"
#: lib/poptALL.c:185
msgid "'EXPR'"
-msgstr "'AUSDRUCK'"
+msgstr "»AUSDRUCK«"
#: lib/poptALL.c:187 lib/poptALL.c:206
msgid "read <FILE:...> instead of default file(s)"
-msgstr "lese <DATEI:...> anstatt der Standard-Datei(en)"
+msgstr "<DATEI:...> anstatt der Standard-Datei(en) lesen"
#: lib/poptALL.c:188 lib/poptALL.c:207
msgid "<FILE:...>"
@@ -1805,11 +1900,11 @@ msgstr "<DATEI:...>"
#: lib/poptALL.c:193
msgid "don't enable any plugins"
-msgstr ""
+msgstr "Keinerlei Plugins aktivieren"
#: lib/poptALL.c:196
msgid "don't verify package digest(s)"
-msgstr "Paket-Kurzfassung nicht überprüfen"
+msgstr "Paket-Prüfsummen nicht verifizieren"
#: lib/poptALL.c:198
msgid "don't verify database header(s) when retrieved"
@@ -1821,7 +1916,7 @@ msgstr "Paket-Signatur(en) nicht überprüfen"
#: lib/poptALL.c:203
msgid "send stdout to CMD"
-msgstr "Sende Standardausgabe an CMD"
+msgstr "Standardausgabe an CMD senden"
#: lib/poptALL.c:204
msgid "CMD"
@@ -1829,7 +1924,7 @@ msgstr "CMD"
#: lib/poptALL.c:209
msgid "use ROOT as top level directory"
-msgstr "benutze WURZELVERZEICHNIS als oberstes Verzeichnis"
+msgstr "WURZELVERZEICHNIS als oberstes Verzeichnis verwenden"
#: lib/poptALL.c:210
msgid "ROOT"
@@ -1845,31 +1940,31 @@ msgstr "VERZEICHNIS"
#: lib/poptALL.c:216
msgid "display known query tags"
-msgstr "Zeige bekannte Abfrage-Tags"
+msgstr "Bekannte Abfrage-Tags anzeigen"
#: lib/poptALL.c:218
msgid "display final rpmrc and macro configuration"
-msgstr "Zeige endgültige rpmrc- und Makro-Konfiguration"
+msgstr "Endgültige rpmrc- und Makro-Konfiguration anzeigen"
#: lib/poptALL.c:220
msgid "provide less detailed output"
-msgstr "Zeige weniger informative Ausgabe"
+msgstr "Weniger informative Ausgabe anzeigen"
#: lib/poptALL.c:222
msgid "provide more detailed output"
-msgstr "Zeige detailliertere Ausgabe"
+msgstr "Detailliertere Ausgabe anzeigen"
#: lib/poptALL.c:224
msgid "print the version of rpm being used"
-msgstr "Zeige benutzte RPM-Version"
+msgstr "Benutzte RPM-Version anzeigen"
#: lib/poptALL.c:230
msgid "debug payload file state machine"
-msgstr "Debugge Nutzdaten-Dateistatus"
+msgstr "Nutzdaten-Dateistatus debuggen"
#: lib/poptALL.c:236
msgid "debug rpmio I/O"
-msgstr "Debugge rpmio Ein-/Ausgabe"
+msgstr "rpmio-Ein-/Ausgabe debuggen"
#: lib/poptALL.c:303
#, c-format
@@ -1895,7 +1990,7 @@ msgstr "Verschiebungen müssen einen / nach dem = enthalten"
#: lib/poptI.c:114
msgid "install all files, even configurations which might otherwise be skipped"
msgstr ""
-"Installiere alle Dateien, sogar Konfigurationsdateien, die sonst "
+"Alle Dateien installieren, sogar Konfigurationsdateien, die sonst "
"möglicherweise übersprungen werden"
#: lib/poptI.c:118
@@ -1903,20 +1998,20 @@ msgid ""
"remove all packages which match <package> (normally an error is generated if "
"<package> specified multiple packages)"
msgstr ""
-"Entferne alle Pakete, die mit <Paket> übereinstimmen (normalerweise wird "
+"Alle Pakete entfernen, die mit <Paket> übereinstimmen (normalerweise wird "
"eine Fehlermeldung angezeigt, wenn <Paket> auf mehrere Pakete zutrifft)"
#: lib/poptI.c:123
msgid "relocate files in non-relocatable package"
-msgstr "Verschiebe Dateien eines nicht verschiebbaren Pakets"
+msgstr "Dateien eines nicht verschiebbaren Pakets verschieben"
#: lib/poptI.c:127
msgid "print dependency loops as warning"
-msgstr "Zeige Abhängigkeitsschleifen als Warnung"
+msgstr "Abhängigkeitsschleifen als Warnung anzeigen"
#: lib/poptI.c:131
msgid "erase (uninstall) package"
-msgstr "Lösche (deinstalliere) Paket"
+msgstr "Paket löschen (deinstallieren)"
#: lib/poptI.c:131
msgid "<package>+"
@@ -1924,15 +2019,15 @@ msgstr "<Paket>+"
#: lib/poptI.c:134 lib/poptI.c:171
msgid "do not install configuration files"
-msgstr "Installiere keine Konfigurationsdateien"
+msgstr "Keine Konfigurationsdateien installieren"
#: lib/poptI.c:137 lib/poptI.c:176
msgid "do not install documentation"
-msgstr "Installiere keine Dokumentation"
+msgstr "Keine Dokumentation installieren"
#: lib/poptI.c:139
msgid "skip files with leading component <path> "
-msgstr "Überspringe Dateien mit beginnendem <Pfad> "
+msgstr "Dateien überspringen, die mit <Pfad> beginnen"
#: lib/poptI.c:140
msgid "<path>"
@@ -1944,7 +2039,7 @@ msgstr "Abkürzung für --replacepkgs --replacefiles"
#: lib/poptI.c:147
msgid "upgrade package(s) if already installed"
-msgstr "Aktualisiere Paket(e), wenn bereits installiert"
+msgstr "Paket(e) aktualisieren, wenn bereits installiert"
#: lib/poptI.c:148 lib/poptI.c:164 lib/poptI.c:251 lib/poptI.c:255
msgid "<packagefile>+"
@@ -1952,7 +2047,7 @@ msgstr "<Paket-Datei>+"
#: lib/poptI.c:150
msgid "print hash marks as package installs (good with -v)"
-msgstr "Zeige Rautezeichen während der Installation (empfehlenswert mit -v)"
+msgstr "Rautezeichen während der Installation (empfehlenswert mit -v)"
#: lib/poptI.c:153
msgid "don't verify package architecture"
@@ -1968,21 +2063,21 @@ msgstr "Keine Überprüfung des Festplattenspeichers vor der Installation"
#: lib/poptI.c:161
msgid "install documentation"
-msgstr "Installiere Dokumentation"
+msgstr "Dokumentation installieren"
#: lib/poptI.c:164
msgid "install package(s)"
-msgstr "Installiere Paket(e)"
+msgstr "Paket(e) installieren"
#: lib/poptI.c:167
msgid "update the database, but do not modify the filesystem"
-msgstr "Aktualisiere die Datenbank, aber verändere nichts im Dateisystem"
+msgstr "Die Datenbank aktualisieren, aber nichts im Dateisystem verändern"
#: lib/poptI.c:173
msgid "do not verify package dependencies"
msgstr "Keine Überprüfung der Paket-Abhängigkeiten"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "Keine Überprüfung der Prüfsumme der Dateien"
@@ -1992,7 +2087,7 @@ msgstr "Keine Überprüfung der Prüfsumme der Dateien (veraltet)"
#: lib/poptI.c:183
msgid "don't install file security contexts"
-msgstr "Installiere keine Sicherheitskontext-Dateien"
+msgstr "Keine Sicherheitskontext-Dateien installieren"
#: lib/poptI.c:187
msgid "do not reorder package installation to satisfy dependencies"
@@ -2026,12 +2121,12 @@ msgstr "%%postun-Scriptlet nicht ausführen (wenn vorhanden)"
#: lib/poptI.c:207
#, c-format
msgid "do not execute %%pretrans scriptlet (if any)"
-msgstr ""
+msgstr "%%pretrans-Scriptlet nicht ausführen (wenn vorhanden)"
#: lib/poptI.c:210
#, c-format
msgid "do not execute %%posttrans scriptlet (if any)"
-msgstr ""
+msgstr "%%posttrans-Scriptlet nicht ausführen (wenn vorhanden)"
#: lib/poptI.c:213
msgid "do not execute any scriptlet(s) triggered by this package"
@@ -2067,13 +2162,13 @@ msgstr ""
#: lib/poptI.c:233
msgid "print percentages as package installs"
-msgstr "Zeige Prozentangabe bei der Paket-Installation"
+msgstr "Prozentangabe bei der Paket-Installation anzeigen"
#: lib/poptI.c:235
msgid "relocate the package to <dir>, if relocatable"
msgstr ""
-"Verschiebe das Paket, wenn es verschiebbar ist, in das Verzeichnis "
-"<Verzeichnis>"
+"Das Paket, wenn es verschiebbar ist, in das Verzeichnis <Verzeichnis> "
+"verschieben"
#: lib/poptI.c:236
msgid "<dir>"
@@ -2081,7 +2176,7 @@ msgstr "<Verzeichnis>"
#: lib/poptI.c:238
msgid "relocate files from path <old> to <new>"
-msgstr "verschiebe Dateien von <alter Pfad> nach <neuer Pfad>"
+msgstr "Dateien von <alter Pfad> nach <neuer Pfad> verschieben"
#: lib/poptI.c:239
msgid "<old>=<new>"
@@ -2089,11 +2184,11 @@ msgstr "<alter Pfad>=<neuer Pfad>"
#: lib/poptI.c:242
msgid "ignore file conflicts between packages"
-msgstr "Ignoriere Datei-Konflikte zwischen Paketen"
+msgstr "Datei-Konflikte zwischen Paketen ignorieren"
#: lib/poptI.c:245
msgid "reinstall if the package is already present"
-msgstr "Installiere erneut, wenn das Paket bereits vorhanden ist"
+msgstr "Erneut installieren, wenn das Paket bereits vorhanden ist"
#: lib/poptI.c:247
msgid "don't install, but tell if it would work or not"
@@ -2105,164 +2200,184 @@ msgstr "Paket(e) aktualisieren"
#: lib/poptI.c:254
msgid "reinstall package(s)"
-msgstr ""
+msgstr "Paket(e) erneut installieren"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "Abfrage aller Pakete"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "Abfrage-Modus der Signatur"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "Abfragen/überprüfen eines Pakets, das die Datei besitzt"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "Abfragen/überprüfen eines Pakets einer Gruppe"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "Abfragen/überprüfen einer Paket-Datei"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "Abfragen/überprüfen von Paketen mit der Paket-Kennung"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "Abfragen/überprüfen von Paketen mit Header-Kennung"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "Abfrage-Modus"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "Abfragen/überprüfen einer Header-Instanz"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "Abfragen/überprüfen von Paketen einer Installation"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "Abfragen eines Pakets gesteuert vom Paket"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "Überprüfungsmodus"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "Abfrage nach Paketen, die die Fähigkeit benötigen"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "Abfrage nach Paketen, die die Fähigkeit bereitstellen"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "Abfrage nach Paketen, die die Fähigkeit benötigen"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "Abfrage nach Paketen, die die Fähigkeit benötigen"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "Abfrage nach Paketen, die die Fähigkeit benötigen"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "Abfrage nach Paketen, die die Fähigkeit benötigen"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
-msgstr "\"Globe\" nicht nach Argumenten"
+msgstr "»Globe« nicht nach Argumenten"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "Dateien nicht als Paket-Liste verarbeiten"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "Alle Konfigurationsdateien anzeigen"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "Alle Dokumentationsdateien anzeigen"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
-msgstr ""
+msgstr "Alle Lizenzdateien anzeigen"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "Grundlegende Datei-Informationen auflisten"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "Alle Dateien im Paket auflisten"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
-msgstr "Überspringe %%ghost-Dateien"
+msgstr "%%ghost-Dateien überspringen"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "Anzeigen der Zustände der aufgelisteten Dateien"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
-msgstr "Keine Grössenüberprüfung der Dateien"
+msgstr "Keine Größenüberprüfung der Dateien"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "Keine Überprüfung der symbolischen Links der Dateien"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "Keine Überprüfung der Eigentümer der Dateien"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "Keine Überprüfung der Gruppen der Dateien"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "Keine Überprüfung der letzten Bearbeitungszeit der Dateien"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "Keine Überprüfung der Berechtigungen der Dateien"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "Keine Fähigkeitsprüfung der Dateien"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "Keine Überprüfung des Sicherheitskontexts"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "Keine Überprüfung der Dateien im Paket"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "Keine Überprüfung der Paket-Abhängigkeiten"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "Kein(e) Überprüfungsskript(e) ausführen"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Fehlende rpmlib-Features für %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
-msgstr "Source-Paket erwartet, Binär-Paket entdeckt\n"
+msgstr "Quell-Paket erwartet, Binär-Paket entdeckt\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
-msgstr "Source-Paket enthält keine Spec-Datei\n"
+msgstr "Quell-Paket enthält keine Spec-Datei\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "Entpacken des Archivs fehlgeschlagen%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " bei Datei "
@@ -2289,7 +2404,7 @@ msgstr "nicht installiert"
#: lib/query.c:165
msgid "net shared "
-msgstr "geshared "
+msgstr "im Netz freigegeben"
#: lib/query.c:168
msgid "wrong color "
@@ -2337,99 +2452,120 @@ msgstr "Kein Paket stimmt mit %s überein: %s\n"
msgid "no package requires %s\n"
msgstr "Kein Paket benötigt %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "Kein Paket benötigt %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "Keine Paket-Trigger %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "Kein Paket benötigt %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "Kein Paket benötigt %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
-msgstr "Kein Paket bietet %s\n"
+msgstr "Kein Paket stellt %s bereit\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "Datei %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "Die Datei %s gehört zu keinem Paket\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "Ungültige Paket-Nummer: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
-msgstr "Eintrag %u konnte nicht gelesen werden\n"
+msgstr "Datensatz %u konnte nicht gelesen werden\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "Das Paket %s ist nicht installiert\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
-msgstr "Unbekannter Tag: \"%s\"\n"
+msgstr "Unbekannter Tag: »%s«\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
"%s: Import des Schlüssels %d fehlgeschlagen.\n"
"\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
-msgstr "%s: Schlüssel %d nicht gesicherter öffentlicher Schlüssel.\n"
+msgstr "%s: Schlüssel %d ist kein gesicherter öffentlicher Schlüssel.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: Importieren fehlgeschlagen (%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
-msgstr ""
+msgstr "%s: headerRead fehlgeschlagen: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-"%s: Immuner Header-Bereich konnte nicht gelesen werden. Korruptes Paket?\n"
+"%s: Unveränderlicher Header-Bereich konnte nicht gelesen werden. "
+"Beschädigtes Paket?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
-msgstr "%s: Fread fehlgeschlagen: %s\n"
+msgstr "%s: »fread« fehlgeschlagen: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NICHT OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (FEHLENDE SCHLÜSSEL:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (UNBESTÄTIGTE SCHLÜSSEL:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: Öffnen fehlgeschlagen: %s\n"
@@ -2447,157 +2583,208 @@ msgstr "%s: chroot-Verzeichnis nicht gesetzt\n"
#: lib/rpmchroot.c:70
#, c-format
msgid "Unable to change root directory: %m\n"
-msgstr "Wechseln des Wurzel.Verzeichnis fehlgeschlagen: %m\n"
+msgstr "Wechseln des Wurzelverzeichnisses fehlgeschlagen: %m\n"
#: lib/rpmchroot.c:95
#, c-format
msgid "Unable to restore root directory: %m\n"
-msgstr "Root-Verzeichnis kann nicht wiederhergestellt werden: %m\n"
+msgstr "Wurzelverzeichnis kann nicht wiederhergestellt werden: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NEIN "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "JA"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
-msgstr "PreReq:, Provides:, und Obsoletes: unterstützen Versionen."
+msgstr ""
+"»PreReq:«-, »Provides:«- und »Obsoletes:«-Abhängigkeiten unterstützen "
+"Versionen."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"Dateiname(n) als (dirName,baseName,dirIndex)-Tupel gespeichert, nicht als "
"Pfad."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "Paket-Nutzdaten können mit bzip2 komprimiert werden."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "Paket-Nutzdaten können mit xz komprimiert werden."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "Paket-Nutzdaten können mit lzma komprimiert werden."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
-msgstr "Dateien der Paket-Nutzdaten haben \"./\" als Präfix"
+msgstr "Dateien der Paket-Nutzdaten haben »./« als Präfix"
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "Paket Name-Version-Release wird nicht unbedingt bereitgestellt."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "Header-Tags werden immer nach dem Laden sortiert."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "Der Scriptlet-Interpreter kann Argumente aus dem Header benutzen."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
-msgstr ""
-"Eine harte Verlinkung kann auch ohne eine komplette Installation angelegt "
-"werden."
+msgstr "Eine harte Dateiverknüpfung ohne Ziel ist installierbar."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"Paket-Scriptlets können während der Installation auf die RPM-Datenbank "
"zugreifen."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "Interne Unterstützung für LUA-Scripte"
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "Datei-Prüfsummen-Algorithmus ist pro Paket konfigurierbar"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "Unterstützung für POSIX.1e-Dateifähigkeiten"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "Paket-Scriptlets können während der Installation entpackt werden."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
-msgstr ""
+msgstr "Abhängigkeitsvergleich unterstützt Versionen mit Tilde."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
+msgstr "Dateien größer als 4 GB werden unterstützt"
+
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "Keine Überprüfung der Paket-Abhängigkeiten"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Version wird benötigt"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "Ungültige Abhängigkeit"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Nicht terminiertes %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "Ungültige Abhängigkeit"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
-msgstr "Benutzer %s existiert nicht - benutze Root\n"
+msgstr "Benutzer %s existiert nicht - Root wird benutzt\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
-msgstr "Gruppe %s existiert nicht - benutze Root\n"
+msgstr "Gruppe %s existiert nicht - Root wird benutzt\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Ungültige Magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
-msgstr "Ungültiger Header"
+msgstr "Ungültiger oder unlesbarer Header"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
-msgstr "Header zu gross"
+msgstr "Header zu groß"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
-msgstr ""
+msgstr "Datei ist zu groß für das Archiv"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Unbekannter Datei-Typ"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
-msgstr ""
+msgstr "Fehlende Datei(en)"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
-msgstr "Prüfsumme stimmt nicht überein"
+msgstr "Prüfsummen stimmen nicht überein"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Interner Fehler"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Archiv-Datei nicht im Header"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " fehlgeschlagen - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
-msgstr ""
+msgstr "%s: (Fehler 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "Öffnen von %s fehlgeschlagen: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: Kein RPM-Paket (oder Paket-Liste)\n"
@@ -2605,71 +2792,69 @@ msgstr "%s: Kein RPM-Paket (oder Paket-Liste)\n"
#: lib/rpminstall.c:141
#, c-format
msgid "Updating / installing...\n"
-msgstr ""
-"Aktualisierung/ Installation...\n"
-"\n"
+msgstr "Aktualisierung/ Installation …\n"
#: lib/rpminstall.c:143
#, c-format
msgid "Cleaning up / removing...\n"
-msgstr "Aufräumen/ Entfernen...\n"
+msgstr "Aufräumen/ Entfernen …\n"
#: lib/rpminstall.c:192
msgid "Preparing..."
-msgstr "Vorbereiten..."
+msgstr "Vorbereiten …"
#: lib/rpminstall.c:194
msgid "Preparing packages..."
-msgstr "Pakete vorbereiten..."
+msgstr "Pakete vorbereiten …"
#: lib/rpminstall.c:270 tools/rpmgraph.c:168
msgid "Failed dependencies:\n"
-msgstr "Fehlgeschlagende Abhängigkeiten:\n"
+msgstr "Fehlgeschlagene Abhängigkeiten:\n"
#: lib/rpminstall.c:321
#, c-format
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: Kein RPM-Paket (oder Paket-Liste): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s kann nicht installiert werden\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
-msgstr "Empfange %s\n"
+msgstr "%s wird geholt\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
-msgstr "überspringe %s - Übertragung fehlgeschlagen\n"
+msgstr "%s wird übersprungen - Übertragung fehlgeschlagen\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "Paket %s ist nicht verschiebbar\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "Fehler beim Lesen von Datei %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
-msgstr "\"%s\" bezeichnet mehrere Pakete:\n"
+msgstr "»%s« bezeichnet mehrere Pakete:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
-msgstr "Kann %s nicht öffnen: %s\n"
+msgstr "%s kann nicht geöffnet werden: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
-msgstr "Installiere %s\n"
+msgstr "%s wird installiert\n"
#: lib/rpmlead.c:100
msgid "not an rpm package"
@@ -2677,7 +2862,7 @@ msgstr "ist kein RPM-Paket"
#: lib/rpmlead.c:104
msgid "illegal signature type"
-msgstr "Illegaler Signatur-Typ"
+msgstr "Ungültiger Signatur-Typ"
#: lib/rpmlead.c:108
msgid "unsupported RPM package version"
@@ -2692,37 +2877,35 @@ msgstr "Lesen fehlgeschlagen: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "kein RPM-Paket\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
-msgstr ""
-"kann keine %s Blockierung auf %s (%s) erstellen\n"
-"\n"
+msgstr "%s-Sperre auf %s kann nicht erstellt werden (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
-msgstr "warte auf %s Blockierung auf %s\n"
+msgstr "Auf %s-Sperre auf %s wird gewartet\n"
#: lib/rpmplugins.c:65
#, c-format
msgid "Failed to dlopen %s %s\n"
-msgstr "Dlopen %s %s fehlgeschlagen\n"
+msgstr "»dlopen« %s %s fehlgeschlagen\n"
#: lib/rpmplugins.c:73
#, c-format
msgid "Failed to resolve symbol %s: %s\n"
-msgstr "Auflösen des Symbols fehlgeschlagen %s: %s\n"
+msgstr "Auflösen des Symbols %s fehlgeschlagen: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Plugin %s nicht geladen\n"
+msgstr "Plugin %%__%s_%s ist nicht konfiguriert\n"
#: lib/rpmplugins.c:199
#, c-format
msgid "Plugin %s not loaded\n"
-msgstr "Plugin %s nicht geladen\n"
+msgstr "Plugin %s ist nicht geladen\n"
#: lib/rpmprob.c:109
msgid "different"
@@ -2805,7 +2988,7 @@ msgstr "Unbekannter Fehler %d trat während dem Verarbeiten des Pakets %s auf"
#: lib/rpmrc.c:222
#, c-format
msgid "missing second ':' at %s:%d\n"
-msgstr "Fehlender zweiter ':' bei %s:%d\n"
+msgstr "Fehlender zweiter »:« bei %s:%d\n"
#: lib/rpmrc.c:225
#, c-format
@@ -2825,7 +3008,7 @@ msgstr "Zu viele Argumente in der Datenzeile bei %s:%d\n"
#: lib/rpmrc.c:382
#, c-format
msgid "Bad arch/os number: %s (%s:%d)\n"
-msgstr "Ungültige Architektur/Betriebssystem-Nummer: %s (%s:%d)\n"
+msgstr "Ungültige Architektur-/Betriebssystem-Nummer: %s (%s:%d)\n"
#: lib/rpmrc.c:413
#, c-format
@@ -2840,7 +3023,7 @@ msgstr "Zu viele Argumente in der Standardzeile bei %s:%d\n"
#: lib/rpmrc.c:523
#, c-format
msgid "missing ':' (found 0x%02x) at %s:%d\n"
-msgstr "Fehlender ':' (0x%02x gefunden) bei %s:%d\n"
+msgstr "Fehlender »:« (0x%02x gefunden) bei %s:%d\n"
#: lib/rpmrc.c:540 lib/rpmrc.c:572
#, c-format
@@ -2850,7 +3033,7 @@ msgstr "Fehlendes Argument für %s bei %s:%d\n"
#: lib/rpmrc.c:551
#, c-format
msgid "cannot open %s at %s:%d: %m\n"
-msgstr "Kann %s bei %s:%d nicht öffnen: %m\n"
+msgstr "%s bei %s:%d kann nicht geöffnet werden: %m\n"
#: lib/rpmrc.c:564
#, c-format
@@ -2860,62 +3043,82 @@ msgstr "Fehlende Architektur für %s bei %s:%d\n"
#: lib/rpmrc.c:632
#, c-format
msgid "bad option '%s' at %s:%d\n"
-msgstr "Ungültige Option '%s' bei %s:%d\n"
+msgstr "Ungültige Option »%s« bei %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
+"»Auxiliary vector« kann nicht gelesen werden, ist /proc nicht eingehängt?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Unbekanntes System: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Bitte (in Englisch) %s kontaktieren\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
-msgstr "Kann %s nicht zum Lesen öffnen: %m.\n"
+msgstr "%s kann nicht zum Lesen geöffnet werden: %m.\n"
+
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
-msgstr ""
+msgstr "Aktuelles Verzeichnis kann nicht wiederhergestellt werden: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "<lua>-Scriptlet-Unterstützung nicht eingebaut\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
-msgstr "Konnte keine temporäre Datei erzeugen für %s: %s\n"
+msgstr "Temporäre Datei für %s konnte nicht angelegt werden: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
-msgstr "Konnte Datei-Beschreiber nicht duplizieren: %s: %s\n"
+msgstr "Datei-Deskriptor konnte nicht dupliziert werden: %s: %s\n"
+
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Symbol %s kann nicht gelesen werden: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Wurzelverzeichnis kann nicht wiederhergestellt werden: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite fehlgeschlagen: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s Scriptlet fehlgeschlagen, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s Scriptlet fehlgeschlagen, Signal %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s Scriptlet fehlgeschlagen, Beenden-Status %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Unbekanntes Format"
@@ -2927,134 +3130,153 @@ msgstr "installieren"
msgid "erase"
msgstr "löschen"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
-msgstr "Kann Paket-Datenbank in %s nicht öffnen\n"
+msgstr "Paket-Datenbank in %s kann nicht geöffnet werden\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
-msgstr "Zusätzliche '(' im Paket-Bezeichnung: %s\n"
+msgstr "Zusätzliche »(« in Paket-Bezeichnung: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
-msgstr "Fehlende '(' im Paket-Label: %s\n"
+msgstr "Fehlende »(« in Paket-Bezeichnung: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
-msgstr "Fehlende ')' im Paket-Bezeichung: %s\n"
+msgstr "Fehlende »)« in Paket-Bezeichnung: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: Lesen des öffentlichen Schlüssels fehlgeschlagen.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "Transaktion"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(keine OpenPGP-Signatur)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
-msgstr "MD5-Kurzfassung: "
-
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
-msgstr "SHA1-Kurzfassung des Headers: "
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Header der Signatur kann nicht erneut geladen werden.\n"
-#: lib/signature.c:316
+#: lib/signature.c:445
msgid "Header "
msgstr "Header "
-#: lib/signature.c:357
+#: lib/signature.c:464
+msgid "MD5 digest:"
+msgstr "MD5-Prüfsumme: "
+
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
+msgstr "SHA1-Prüfsumme des Headers: "
+
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
-msgstr ""
+msgstr "Signaturüberprüfung: FALSCHE PARAMETER (%d %p %d %p %p)"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "übersprungen"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "fehlgeschlagen"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
-msgstr ""
+msgstr "Doppelter Benutzername oder Benutzer-ID für Benutzer %s\n"
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
-msgstr ""
+msgstr "Doppelter Gruppenname oder Gruppen-ID für Gruppe %s\n"
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
-msgstr ""
+msgstr "kein Status"
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
-msgstr ""
+msgstr "unbekannter Status"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "fehlend %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Unerfüllte Abhängigkeiten für %s:\n"
#: lib/headerfmt.c:336
msgid "invalid field width"
-msgstr ""
+msgstr "ungültige Feldbreite"
#: lib/headerfmt.c:342
msgid "missing { after %"
@@ -3070,7 +3292,7 @@ msgstr "Leeres Tag-Format"
#: lib/headerfmt.c:386
msgid "empty tag name"
-msgstr "Unbekannter Tag"
+msgstr "Leerer Tag-Name"
#: lib/headerfmt.c:393
msgid "unknown tag"
@@ -3114,248 +3336,252 @@ msgstr "| am Ende des Ausdrucks erwartet"
#: lib/headerfmt.c:735
msgid "array iterator used with different sized arrays"
-msgstr "Zählvariable wird mit ungleich grossem Array benutzt"
+msgstr "Zählvariable wird mit ungleich großem Array benutzt"
#: lib/rpmdb.c:71
#, c-format
msgid "Generating %d missing index(es), please wait...\n"
-msgstr "Generiere %d fehlende Index(e), bitte warten...\n"
+msgstr "%d fehlende(r) Index(e), bitte warten...\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
-msgstr ""
+msgstr "%s-Index kann nicht mittels %s geöffnet werden - %s (%d)\n"
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
-msgstr "Kein Datenbank-Pfad wurde gesetzt\n"
+msgstr "Datenbank-Pfad wurde nicht gesetzt\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
-msgstr "miFreeHeader: Überspringe"
+msgstr "miFreeHeader: wird übersprungen"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
-msgstr "Fehler(%d) beim Speichern des Eintrags #%d in %s\n"
+msgstr "Fehler(%d) beim Speichern des Datensatzes #%d in %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec fehlgeschlagen: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp fehlgeschlagen: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
-msgstr "rpmdbNextIterator: Überspringe"
+msgstr "rpmdbNextIterator: wird übersprungen"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
-msgstr "rpmdb: Beschädigten Header #%u erhalten -- überspringe.\n"
+msgstr "rpmdb: Beschädigten Header #%u erhalten -- wird übersprungen.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
-msgstr "%s: Kann den Header bei 0x%x nicht lesen\n"
+msgstr "%s: Header bei 0x%x kann nicht gelesen werden\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
-msgstr "Kein Datenbank-Pfad wurde gesetzt"
+msgstr "Datenbank-Pfad wurde nicht gesetzt"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
-msgstr "Erzeugen des Verzeichnises %s fehlgeschlagen: %s\n"
+msgstr "Anlegen des Verzeichnisses %s fehlgeschlagen: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
-msgstr "Header #%u in der Datenbank ist ungültig -- überspringe.\n"
+msgstr "Header #%u in der Datenbank ist ungültig -- wird übersprungen.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
-msgstr "Kann ursprünglichen Eintrag %u nicht hinzufügen\n"
+msgstr "Ursprünglicher Datensatz %u kann nicht hinzugefügt werden\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"Neu bauen der Datenbank fehlgeschlagen: Datenbank verbleibt entsprechend\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "Konnte die alte Datenbank nicht durch die neue ersetzen!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
-msgstr "Ersetze Dateien in %s mit Dateien aus %s für eine Wiederherstellung"
+msgstr "Für eine Wiederherstellung Dateien in %s durch Dateien aus %s ersetzen"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "Entfernen des Verzeichnisses %s fehlgeschlagen: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
-msgstr ""
+msgstr "%s Fehler(%d) von %s: %s\n"
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
+msgstr "%s Fehler(%d): %s\n"
+
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "Unbekannte Datenbank-Option: »%s« wird ignoriert.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s hat einen ungültigen numerischen Wert, wird übersprungen\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s hat einen zu großen oder zu kleinen Wert, wird übersprungen\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
msgstr ""
+"%s hat einen zu großen oder zu kleinen Integer-Wert, wird übersprungen\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "Keine %s-Sperre auf %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
-msgstr "verteilt"
+msgstr "gemeinsam"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "exklusiv"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
-msgstr ""
+msgstr "Ungültiger Indextyp %x auf %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
-msgstr ""
+msgstr "Fehler(%d) beim Holen der Datensätze »%s« aus dem %s-Index: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
-msgstr "Fehler(%d) beim Speichern des Eintrags \"%s\" in %s\n"
+msgstr "Fehler(%d) beim Speichern des Datensatzes »%s« in %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
-msgstr "Fehler(%d) beim Entfernen des Eintrags \"%s\" aus %s\n"
+msgstr "Fehler(%d) beim Entfernen des Datensatzes »%s« aus %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
-msgstr ""
+msgstr "Fehler(%d) beim Hinzufügen des Datensatzes für Header #%d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
-msgstr ""
+msgstr "Fehler(%d) beim Entfernen des Datensatzes für Header #%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "Fehler(%d) beim Reservieren einer neuen Paket-Instanz\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "Unbekannte Datenbank-Option: \"%s\" ignoriert.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s hat einen ungültigen numerischen Wert, übersprungen\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s hat einen zu grossen oder zu kleinen Wert, übersprungen\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s hat einen zu grossen oder zu kleinen Integer-Wert, übersprungen\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(leer)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(leer)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
-msgstr "Makro %%%s hat keine terminierten Optionen\n"
+msgstr "Makro %%%s hat nicht terminierte Optionen\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
-msgstr "Makro %%%s hat keinen terminierten Hauptteil\n"
+msgstr "Makro %%%s hat einen nicht terminierten Hauptteil\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Makro %%%s hat einen ungültigen Namen (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Makro %%%s hat einen leeren Hauptteil\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
-msgstr ""
+msgstr "Makro %%%s benötigt Leerzeichen vor dem Hauptteil\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Makro %%%s konnte nicht erweitert werden\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Makro %%%s hat einen ungültigen Namen (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
+"Makro %%%s ist definiert, wird aber nicht innerhalb des Bereichs verwendet\n"
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Unbekannte Option %c in %s (%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
+"Zu viele Rekursionsebenen bei der Expansion des Makros. Dies wird "
+"wahrscheinlich durch eine rekursive Makro-Deklaration verursacht.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Nicht terminiertes %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
-msgstr "Ein %% ist gefolgt von einem nicht parsbaren Makro\n"
+msgstr "Auf %% folgt ein nicht auswertbares Makro\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
-msgstr ""
+msgstr "Laden der Makro-Datei %s ist fehlgeschlagen"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktiv %d leer %d\n"
@@ -3375,52 +3601,52 @@ msgstr "Datei %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Datei %s ist kleiner als %u Byte\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
-msgstr "Erzeugen des Verzeichnises fehlgeschlagen"
+msgstr "Erzeugen des Verzeichnisses fehlgeschlagen"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
-msgstr "Ungültige Syntax in lua-Scriptlet: %s\n"
+msgstr "Ungültige Syntax in Lua-Scriptlet: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
-msgstr "Ungültige Syntax in lua-Script: %s\n"
+msgstr "Ungültige Syntax in Lua-Script: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
-msgstr "lua-Script fehlgeschlagen: %s\n"
+msgstr "Lua-Script fehlgeschlagen: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
-msgstr "Ungültige Syntax in lua-Datei: %s\n"
+msgstr "Ungültige Syntax in Lua-Datei: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
-msgstr "lua hook fehlgeschlagen: %s\n"
+msgstr "Lua-Hook fehlgeschlagen: %s\n"
#: rpmio/rpmio.c:280
msgid "[none]"
-msgstr ""
+msgstr "[kein]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(kein Fehler)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "Schwerwiegender Fehler: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "Fehler: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "Warnung: "
@@ -3429,106 +3655,162 @@ msgstr "Warnung: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "Speicherbelegung (%u Byte) lieferte NULL zurück.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, Schlüssel-ID %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
-msgstr ""
+msgstr "(keine)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "Fehler beim Erstellen der temporären Datei %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "Fehler beim Erstellen der temporären Datei %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "Fehler beim Erstellen der temporären Datei %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "Anlegen des Verzeichnisses %s fehlgeschlagen: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite fehlgeschlagen: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush fehlgeschlagen: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
-msgstr ""
+msgstr "Nicht unterstützte PGP-Signatur\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
-msgstr ""
+msgstr "Nicht unterstützter PGP-Prüfsummenalgorithmus %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
-msgstr ""
+msgstr "Nicht unterstützter PGP-Algorithmus %u für öffentlichen Schlüssel\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Konnte kein Pipe zum Signieren erzeugen: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "%s konnte nicht ausgeführt werden: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
-msgstr "%s: Öffnen fehlgeschlagen: %s\n"
+msgid "Fopen failed\n"
+msgstr "fdopen fehlgeschlagen\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr ""
-"Konnte %s-Datei nicht öffnen: %s\n"
-"\n"
+msgstr "In die Pipe konnte nicht geschrieben werden\n"
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Datei %s aus %%files konnte nicht geöffnet: %m\n"
+msgstr "Aus Datei %s konnte nicht gelesen werden: %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
-msgstr "GPG fehlgeschlagen (%d)\n"
+msgstr "Ausführung von GPG fehlgeschlagen (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "GPG konnte die Signatur nicht schreiben\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
-msgstr "Konnte die Signatur nicht lesen\n"
+msgstr "Signatur konnte nicht gelesen werden\n"
+
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature fehlgeschlagen: %s\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature fehlgeschlagen: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: headerRead fehlgeschlagen: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMk Temp fehlgeschlagen\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "fdopen fehlgeschlagen\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: headerRead fehlgeschlagen: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s enthält bereits eine identische Signatur, wird übersprungen\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature fehlgeschlagen: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
-msgstr ""
+msgstr "RPM-Pakete der Version 3 können nicht signiert werden\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
-msgstr ""
+msgstr "%s enthält bereits eine identische Signatur, wird übersprungen\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature fehlgeschlagen: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMk Temp fehlgeschlagen\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead fehlgeschlagen: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
-msgstr ""
+msgstr "Ersetzen von %s fehlgeschlagen: %s\n"
#: tools/rpmgraph.c:142
#, c-format
@@ -3539,27 +3821,30 @@ msgstr "%s: Lesen der Paket-Liste fehlgeschlagen: %s\n"
msgid "don't verify header+payload signature"
msgstr "Keine Überprüfung der Header- und Nutzdaten-Signatur"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Konnte Nutzdaten nicht nach %s schreiben: %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Umwandlung von %s in einen langen Integer fehlgeschlagen.\n"
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Konnte Nutzdaten von %s nicht lesen: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Bitte das Passwort eingeben: "
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Kann temporäre Datei nicht öffnen.\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Das Passwort ist richtig.\n"
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Konnte Signatur-Ziel %s nicht öffnen: %s\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr ""
+#~ "Überprüfung des Passworts fehlgeschlagen oder GPG-Schlüssel abgelaufen\n"
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Konnte Header von %s nicht lesen: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Ungültiger Eigentümer/Gruppe: %s\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Konnte Header nicht nach %s schreiben: %s\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "Zeile %d: Ungültiges Zeichen in: %s\n"
-#~ msgid "do not perform any collection actions"
-#~ msgstr "keine Erfassungaktionen ausführen"
+#~ msgid "%s has unverifiable signature"
+#~ msgstr "%s hat eine nicht überprüfbare Signatur"
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr ""
-#~ "Immuner Header-Bereich konnte nicht gelesen werden. Korruptes Paket?\n"
+#~ msgid "Fread failed: %s"
+#~ msgstr "»fread« fehlgeschlagen: %s"
+
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Pipe zum Signieren konnte nicht erzeugt werden: %m"
diff --git a/po/el.gmo b/po/el.gmo
index 8b863844..656524c2 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 0af59fe2..6b883265 100644
--- a/po/el.po
+++ b/po/el.po
@@ -8,10 +8,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Greek (http://www.transifex.com/projects/p/rpm/language/el/)\n"
+"Language-Team: Greek (http://www.transifex.com/rpm-team/rpm/language/el/)\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -82,8 +82,8 @@ msgstr "Επιλογές επαλήθευσης (με -V ή --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Επιλογές Εγκατάστασης/Αναβάθμισης/Διαγραφής:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Κοινές επιλογές για όλα τα εκτελέσιμα και τις λειτουργίες rpm:"
@@ -103,7 +103,7 @@ msgstr ""
msgid "unexpected query source"
msgstr ""
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr ""
@@ -203,7 +203,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -223,201 +223,243 @@ msgstr ""
msgid "no arguments given for verify"
msgstr ""
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr ""
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr ""
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, c-format
+msgid "verify %files section from <source package>"
+msgstr ""
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr ""
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr ""
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr ""
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, c-format
+msgid "do not execute %prep stage of the build"
+msgstr ""
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr ""
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr ""
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr ""
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr ""
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr ""
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr ""
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr ""
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr ""
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr ""
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr ""
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr ""
@@ -466,48 +508,60 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
+#: rpmsign.c:36
+msgid "sign package(s) files"
msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
+#: rpmsign.c:39
+msgid "<key>"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:47
+msgid "Signature options:"
+msgstr ""
+
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
+
+#: rpmsign.c:82
+msgid "--fskpass may only be specified when signing files"
+msgstr ""
+
+#: rpmsign.c:126
+msgid "--fskpath may only be specified when signing files"
msgstr ""
#: rpmspec.c:26
@@ -526,7 +580,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -624,218 +678,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr ""
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr ""
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr ""
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr ""
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr ""
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr ""
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
#, c-format
-msgid "Can't mix special %s with other forms: %s\n"
+msgid "File not found by glob: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1922
#, c-format
-msgid "More than one file on a line: %s\n"
+msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:1938
#, c-format
-msgid "Bad file: %s: %s\n"
+msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1978 build/parsePrep.c:33
+#: build/files.c:2068
#, c-format
-msgid "Bad owner/group: %s\n"
+msgid "Bad file: %s: %s\n"
msgstr ""
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -854,89 +908,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
-#, c-format
-msgid "Could not canonicalize hostname: %s\n"
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
+#: build/pack.c:183
+#, c-format
+msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr ""
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
#, c-format
msgid "Could not seek in file %s: %s\n"
msgstr ""
-#: build/pack.c:538
+#: build/pack.c:490
#, c-format
msgid "Fread failed in file %s: %s\n"
msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr ""
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr ""
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -987,19 +1042,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr ""
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1054,142 +1109,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr ""
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+#: build/parsePreamble.c:625
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:625
+#: build/parsePreamble.c:630
#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "line %d: %s in: %s\n"
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1199,161 +1258,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr ""
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr ""
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr ""
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1424,287 +1515,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr ""
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr ""
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr ""
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr ""
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr ""
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1922,7 +2002,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr ""
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2042,162 +2122,178 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr ""
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr ""
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr ""
+
+#: lib/poptQV.c:107
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr ""
+
+#: lib/poptQV.c:109
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr ""
+
+#: lib/poptQV.c:111
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr ""
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr ""
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr ""
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ""
@@ -2272,96 +2368,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr ""
-#: lib/query.c:391
+#: lib/query.c:390
+#, c-format
+msgid "no package recommends %s\n"
+msgstr ""
+
+#: lib/query.c:397
+#, c-format
+msgid "no package suggests %s\n"
+msgstr ""
+
+#: lib/query.c:404
+#, c-format
+msgid "no package supplements %s\n"
+msgstr ""
+
+#: lib/query.c:411
+#, c-format
+msgid "no package enhances %s\n"
+msgstr ""
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr ""
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr ""
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr ""
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr ""
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr ""
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr ""
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ""
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ""
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr ""
@@ -2386,144 +2502,191 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr ""
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+msgid "support for rich dependencies."
+msgstr ""
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr ""
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Το μέγεθος της κεφαλίδας είναι πολύ μεγάλο"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Άγνωστος τύπος αρχείου"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Εσωτερικό σφάλμα"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr ""
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2555,42 +2718,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr ""
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr ""
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr ""
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr ""
@@ -2616,12 +2779,12 @@ msgstr ""
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2779,60 +2942,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr ""
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr ""
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, c-format
+msgid "Unable to reset nice value: %s"
+msgstr ""
+
+#: lib/rpmscript.c:361
+#, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr ""
+
+#: lib/rpmscript.c:389
+#, c-format
+msgid "Fwrite failed: %s"
+msgstr ""
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2844,127 +3026,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr ""
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
+msgstr ""
+
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3038,240 +3239,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
#, c-format
-msgid "cannot get %s lock on %s/%s\n"
+msgid "unrecognized db option: \"%s\" ignored.\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "shared"
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "exclusive"
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:337
#, c-format
-msgid "invalid index type %x on %s/%s\n"
+msgid "%s has too large or too small integer value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:797
#, c-format
-msgid "error(%d) getting \"%s\" records from %s index: %s\n"
+msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:904
-#, c-format
-msgid "error(%d) storing record \"%s\" into %s\n"
+#: lib/backend/db3.c:799
+msgid "shared"
msgstr ""
-#: lib/backend/db3.c:912
-#, c-format
-msgid "error(%d) removing record \"%s\" from %s\n"
+#: lib/backend/db3.c:799
+msgid "exclusive"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:881
#, c-format
-msgid "error(%d) adding header #%d record\n"
+msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1070
#, c-format
-msgid "error(%d) removing header #%d record\n"
+msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1100
#, c-format
-msgid "error(%d) allocating new package instance\n"
+msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
+#: lib/backend/db3.c:1108
#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
+msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:182
+#: lib/backend/db3.c:1210
#, c-format
-msgid "%s has invalid numeric value, skipped\n"
+msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:191
+#: lib/backend/db3.c:1219
#, c-format
-msgid "%s has too large or too small long value, skipped\n"
+msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:200
+#: lib/backend/db3.c:1274
#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
+msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr ""
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr ""
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr ""
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr ""
@@ -3291,31 +3492,31 @@ msgstr ""
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3324,19 +3525,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr ""
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr ""
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr ""
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr ""
@@ -3345,100 +3546,157 @@ msgstr ""
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:66
+#, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, c-format
+msgid "error delete directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "αποτυχία εκτέλεσης\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
msgstr ""
-#: sign/rpmgensig.c:285
+#: sign/rpmgensig.c:309
#, c-format
msgid "Could not read from file %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+msgid "generateSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:543
+msgid "rpmReadSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "αποτυχία εκτέλεσης\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "αποτυχία εκτέλεσης\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "αποτυχία εκτέλεσης\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
diff --git a/po/eo.gmo b/po/eo.gmo
index abac4c80..46b1e493 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index d5dd7eaa..8949c1a1 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -9,10 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Esperanto (http://www.transifex.com/projects/p/rpm/language/"
+"Language-Team: Esperanto (http://www.transifex.com/rpm-team/rpm/language/"
"eo/)\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
@@ -84,8 +84,8 @@ msgstr "Konstatantaj elektoj (kun -V aŭ --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Elektoj por instali/promocii/forigi:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Kutimaj elektoj por ĉiuj rpm-aj reĝimoj kaj programoj:"
@@ -105,7 +105,7 @@ msgstr "neatendita mendo-aranĝo"
msgid "unexpected query source"
msgstr "neatendita mendo-fonto"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "nur unu ĉefa reĝimo povas esti specifita"
@@ -216,7 +216,7 @@ msgstr ""
"oni povas specifi la parametron --hash (-h) nur dum instalado kaj forviŝado "
"de pakaĵo"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "argumentoj de --root (-r) devas komenciĝi per /"
@@ -236,203 +236,250 @@ msgstr "neniuj parametroj donitaj por mendi"
msgid "no arguments given for verify"
msgstr "neniuj argumentoj donitaj por konstati"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot jam specifita, %s ignorata\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr "munti per %prep (elpaki fontotekstojn kaj fliki) laŭ <spec-dosiero>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<spec-dosiero>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "munti per %build (%prep, tiam traduki) laŭ <spec-dosiero>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "munti per %install (%prep, %build, tiam instali) laŭ <spec-dosiero>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "konstati la sekcion %file laŭ <spec-dosiero>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "munti fontotekstan kaj plenumeblan pakaĵojn laŭ <spec-dosiero>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "munti nur plenumeblan pakaĵon laŭ <spec-dosiero>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "munti nur fontotekstan pakaĵon laŭ <spec-dosiero>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr "munti per %prep (elpaki fontotekstojn kaj fliki) laŭ <spec-dosiero>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<fontoteksta pakaĵo>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "munti per %build (%prep, tiam traduki) laŭ <spec-dosiero>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"munti per %install (%prep, %build, tiam instali) laŭ <fontoteksta pakaĵo>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "konstati la sekcion %file laŭ <spec-dosiero>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "munti plenumeblan pakaĵon laŭ <fontoteksta pakaĵo>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "munti plenumeblan pakaĵon laŭ <fontoteksta pakaĵo>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "munti nur fontotekstan pakaĵon laŭ <spec-dosiero>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr "munti per %prep (elpaki fontotekstojn kaj fliki) laŭ <tar-dosiero>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tar-dosiero>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "munti per %build (%prep, tiam traduki) laŭ <tar-dosiero>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "munti per %install (%prep, %build, tiam instali) laŭ <tar-dosiero>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "konstati sekcion %files laŭ <tar-dosiero>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "munti fontotekstan kaj plenumeblan pakaĵojn laŭ <tar-dosiero>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "munti nur plenumeblan pakaĵon laŭ <tar-dosiero>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "munti nur fontotekstan pakaĵon laŭ <tar-dosiero>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "munti plenumeblan pakaĵon laŭ <fontoteksta pakaĵo>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<fontoteksta pakaĵo>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"munti per %install (%prep, %build, tiam instali) laŭ <fontoteksta pakaĵo>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "superregi muntan radikon"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Ne eblas malfermi aktualan dosierujon: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "forigi muntan arbon post finita"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignori la direktivojn ExcludeArch: el spec-dosiero"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "senerarigi dosierstatan maŝinon"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "ne plenumigi iun ajn etapon de la muntado"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "ne konstati muntaĵo-dependaĵojn"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr "generi pakaĵo-kapo(j)n kongrua(j)n kun (malmoderna) pakado de rpm 3"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "ne plenumigi la etapon %clean por la muntado"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "ne plenumigi la etapon %clean por la muntado"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "ne plenumigi la etapon %check por la muntado"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "ne akcepti tradukojn el spec-dosiero"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "forigi fontotekstojn post kiam finita"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "forigi spec-dosieron post kiam finita"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "preterlasi rekte al specifita etapo (nur por c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "superregi celan platformon"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"Multaj elektoj je [ <spec-dosiero> | <tar-dosiero> | <fontoteksta pakaĵo> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Malsukcesintaj muntaj dependaĵoj:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Ne eblas malfermi spec-dosieron %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Malsukcesis malfermi tar-tubon: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Pli ol unu dosiero en linio: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Malsukcesis legi spec-dosieron je %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Malsukcesis alinomi %s al %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "malsukcesis stat-i: %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Dosiero %s ne estas regula dosiero.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Dosiero %s ne aspektas kiel spec-dosiero.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Platformoj por kiu munti: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Muntanta por celon %s\n"
@@ -482,49 +529,64 @@ msgstr "listigi ŝlosilojn el RPM-ŝlosilaro"
msgid "Keyring options:"
msgstr "Ŝlosilaro-elektoj:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "neniuj parametroj donitaj"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "pretendi pakaĵo(j)n"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "pretendi pakaĵo(j)n (identa je --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "forigi pakaĵo-pretendojn"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "pretendi pakaĵo(j)n"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Pretendo-elektojn:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Ne eblas plenumigi: %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Vi devas valorizi \"%%_gpg_name\" en via makro-dosiero\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Enmeti pasfrazon:"
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Pasfrazo bonas.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "Kontrolado de pasfrazo malsukcesis aŭ GPG-ŝlosilo eksvalidiĝis.\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix povas esti uzata nur dum instali novajn pakaĵojn"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "oni povas specifi la parametron --hash (-h) nur dum pakaĵo-forviŝado"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -542,7 +604,7 @@ msgstr "operacii je dekumaj rpm-oj generitaj de spec (apriora)"
msgid "operate on source rpm generated by spec"
msgstr "operacii je fontotekstaj rpm-oj generitaj de spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "uzu la jenan mendo-formaton"
@@ -643,201 +705,201 @@ msgstr "&& kaj || ne por ĉenoj\n"
msgid "syntax error in expression\n"
msgstr "sintaksa eraro en esprimo\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Manka '(' en %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Manka ')' en %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Nevalida ero %s: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Manka %s en %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Blankospacoj ne povas sekvi: %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Fuŝa sintakso: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Fuŝa reĝimo-specifo: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Fuŝa dosierujo-specifo: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "Neordinara longo de lokaĵaro: \"%s\" en %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Duplika lokaĵaro %s en %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Nevalida kapablo: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Dosiero-kapabla rego ne integra\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Dosiero devas komenciĝi per \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Nekonata algoritmo %u por dosieraj resumoj, uzanta je MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Dosiero listigita dufoje: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "legado de mola ligilo %s malsukcesis: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Mola ligilo almontras al BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Dosierujo ne trovita: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Dosiero ne trovita: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: ne eblas ŝargi nekonatan etikedon (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: legi publikan ŝlosilon malsukcesis.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: ne ŝirmita publika ŝlosilo.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: malsukcesis kodiĝi\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Dosiero devas havi antaŭan \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "Amaso %%dev ne permesata:%s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "Dosierujo ne trovita laŭ amaso: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Dosiero ne trovita laŭ amaso: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Ne eblis malfermi %%files file %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "linio: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "eraro dum legi dosieron %%files %s: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "nepermesita _docdir_fmt %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Dosiero ne trovita laŭ amaso: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "Ne eblas kunmiksi specialan %s-on kun aliaj formoj: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Pli ol unu dosiero en linio: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Fuŝa dosiero: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Fuŝa estro/grupo: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Kontrolanta ne pakita(j)n dosiero(j)n: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -846,19 +908,19 @@ msgstr ""
"Insalita(j) (sed ne pakita(j) dosiero(j) trovita(j):\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Procedanta dosierojn: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
"Platformo (%d) de la plenumebla dosiero ne kongruas la pakaĵan platformon "
"(%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Platformo-dependaj dosieroj en platformo-sendependa pakaĵo\n"
@@ -877,89 +939,90 @@ msgstr "kreado de arkivo malsukcesis: %s\n"
msgid "Could not open %s file: %s\n"
msgstr "Ne eblis malfermi dosieron %s: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: linio: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Ne eblis kanonigi gastiganto-nomon: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Ne eblas reŝargi pretendo-kapon.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Nekonata kunpremo-tipo de ŝarĝo: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Ne eblas krei regionon por neŝanĝebla kapo.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Ne eblas malfermi: %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Ne eblas skribi pakaĵon: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Ne eblas skribi provizoran kapon\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Fuŝa CSA-datumo\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Ne eblis malfermi dosieron %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "kreado de arkivo malsukcesis ĉe dosiero %s: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Skribis: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Plenumiĝanta \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Plenumigo de \"%s\" malsukcesis.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Pako-controlo \"%s\" malsukcesis.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Ne eblas generi eligan dosiernomon por pakaĵo %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "ne eblas krei %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "line %d: dua %s\n"
@@ -1010,19 +1073,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "linio %d: Eraro dum analizo de %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "linio %d: Fuŝa elekto %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "linio %d: Tro da nomoj: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "linio %d: Pako ne ekzistas: %s\n"
@@ -1077,142 +1140,147 @@ msgstr "Elŝutanta el %s al %s\n"
msgid "Couldn't download %s\n"
msgstr "Ne eblis elŝuti: %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Platformo estas ne malpermesata: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Platformo estas ne inkluzivita: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "Operaciumo estas ekskluzivita: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "Operaciumo estas ne inkluzivita: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "kampo %s devas ĉeesti en pakaĵo: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Duplikaj eroj %s en pakaĵo: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Ne eblas malfermi piktogramon %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Ne eblas legi piktogramon %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Nekonata piktogramo-tipo: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "linio %d: Etikedo devas havi nur unu eron: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "linio %d: Nevalida signo '%c' en: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "linio %d: Nevalida signo en: %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "linio %d: Nevalida sinsekvo \"..\" en: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "linio %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: linio: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "linio %d: Misformita etikedo: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "linio %d: Vaka etikedo: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "linio %d: Oni ne rajtas fini prefikson kun \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "linio %d: Docdir devas komenciĝi per '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "linio %d: Epoko-kampo devas esti sensignuma: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "linio %d: Fuŝa %s: kvalifikiloj: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "linio %d: Fuŝa aranĝo de BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "linio %d: Nur subpakaĵoj noarch estas permesataj: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Interna eraro: Fuŝa etikedo %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "linio %d: %s estas malfavorita: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Fuŝa pakaĵo-specifo: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Pako jam ekzistas: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "linio %d: Nekonata etikedo: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} devas ne vaki\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "ne eblas, ke %%{buildroot} estu \"/\"\n"
@@ -1222,162 +1290,195 @@ msgstr "ne eblas, ke %%{buildroot} estu \"/\"\n"
msgid "Bad source: %s: %s\n"
msgstr "Fuŝa fonto: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Neniu flikaĵa numero %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch sen responda etikedo \"Patch:\"\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Neniu fonta numero %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Neniu etikedo \"Source:\" en la spec-dosiero\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Eraro dum analizo de %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "linio %d: Fuŝa elekto ĉe %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "linio %d: Fuŝa elekto ĉe %%setup %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Nevalida flikaĵo-numero %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "linio %d: dua %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr "Dependaĵo-eroj devas komenciĝi per nombro, litero, '_' aŭ '/'"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "Dosiernomo kun eldono ne permesata"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Eldono necesas"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "nevalida dependaĵo"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Eldono necesas"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "linio %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "linio %d: instigiloj devas enhavi: --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "linio %d: Eraro dum analizo de %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "linio %d: ena programeto devas finiĝi per '>': %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "linio %d: programeto devas komenciĝi per '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+"lino %d: interpretilaj parametroj ne estas permesataj en instigiloj: %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "linio %d: Dua %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "linio %d: ne rekonas enan programeton: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
"lino %d: interpretilaj parametroj ne estas permesataj en instigiloj: %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "linio %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Ne eblas malfermi: %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s: %d: Parametroj anticipitaj por %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "linio %d: Nefermita %%if\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "linio %d: nefinita makroo aŭ fuŝa linio-daŭrigo\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: fuŝa kondiĉo ĉe %%if\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d %%else sen %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%endif sen %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d: misformita frazo %%include\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Neniuj kongruaj platformoj trovitaj por muntaĵo\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Pako ne enhavas: %%description: %s\n"
@@ -1450,287 +1551,276 @@ msgstr "Tro da parametroj en linio: %s\n"
msgid "Processing policies: %s\n"
msgstr "Traktanta kondutojn: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Ignoris nevalidan regulesprimon %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Ne eblis krei tubon por %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Ne eblis plenumigi: %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Ne eblis forki: %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s malsukcesis: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "malsukcesis skribi ĉiujn datumojn al %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Konvertado de %s al longa entjero malsukcesis.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "Vaka dosiero-klasifikilo\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Neniuj dosieraj atributoj elektitaj\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) malsukcesis: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load malsukcesis: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Rekono de dosiero \"%s\" malsukcesis: reĝimo %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Serĉi: %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Malsukcesis trovi: %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "mendo de spec-dosiero %s malsukcesis, ne eblas analizi\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s estas Pera RPM kaj ne estas rekte instalebla\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Ne komprenata ŝarĝo (%s) en pakaĵo %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "pakaĵo %s jam aldoniĝis, preterlasanta %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "pakaĵo %s jam aldoniĝis, anstataŭigante per %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(ne cifero)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%Y-%d-%b (%a)"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(ne base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(nevalida tipo)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(ne amaso)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(nevalida XML-tipo)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(ne OpenPGP-pretendo)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Nevalida dato %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normala"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "anstataŭita"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "ne instalita"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "rete kunuzita"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "malĝusta koloro"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "manka"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(nekonata)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(ne ĉeno)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s konservita kiel %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s kreita kiel %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: forigo malsukcesis: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "dosierujo"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "dosiero"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1951,7 +2041,7 @@ msgstr "aktualigi la datumbazon, sed ne modifi la dosiersistemon"
msgid "do not verify package dependencies"
msgstr "ne konstati pakaĵo-dependaĵojn"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "ne konstati resumojn de dosieroj"
@@ -2072,162 +2162,182 @@ msgstr "promocii pakaĵo(j)n"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "mendi/konstati ĉiujn pakaĵojn"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "reĝimo kontroli konstaton de rpm"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "mendi/konstati pakaĵo(j)n havanta(j) dosieron"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "mendi/konstati pakaĵo(j)n en grupo"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "mendi/konstati pakaĵo-dosieron"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "mendi/konstati pakaĵo(j)n per pakaĵo-identigilo"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "mendi/konstati pakaĵo(j)n per kapo-identigilo"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm-mendanta reĝimo"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "mendi/konstati kapo-okazon"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "mendi/konstati pakaĵo(j)n el instalo-interago"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "mendi la pakaĵo(j)n okazigitaj de la pakaĵo"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm-konstata reĝimo"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "mendi/konstati la pakaĵo(j)n, kiuj postulas dependaĵon"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "mendi/konstati la pakaĵo(j)n, kiujn havigas dependaĵon"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "mendi/konstati la pakaĵo(j)n, kiuj postulas dependaĵon"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "mendi/konstati la pakaĵo(j)n, kiuj postulas dependaĵon"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "mendi/konstati la pakaĵo(j)n, kiuj postulas dependaĵon"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "mendi/konstati la pakaĵo(j)n, kiuj postulas dependaĵon"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "ne kunfandi parametrojn"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "ne procedi ne pakaĵo-dosierojn kiel manifestojn"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "listigi ĉiujn agordo-dosierojn"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "listigi ĉiujn dokumento-dosierojn"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "ŝuti bazajn informojn pri dosieroj"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "listigi dosierojn en pakaĵo"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "preterlasi %%ghost-dosierojn"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "elmontri la statojn de la listigitaj dosieroj"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "ne konstati la grandon de la dosieroj"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "ne konstati ligilajn padojn de dosieroj"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "ne konstati estrecon de dosiero"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "ne konstati grupon de dosiero"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "ne konstati modifo-tempon de dosieroj"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "ne konstati permesojn de dosieroj"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "ne konstati kapablojn de dosieroj"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "ne konstati sekureco-kuntekstojn"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "ne konstati dosierojn en pakaĵo"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "ne konstati pakaĵo-dependaĵojn"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "ne plenumigi konstato-programo(j)n"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Mankantaj trajtoj en rpmlib por %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "fontoteksta pakaĵo atendita, plenumebla trovita\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "fontoteksta pakaĵo enhavas neniun spec-dosieron\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "Elpakado de arkivo malsukcesis%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " ĉe dosiero"
@@ -2302,96 +2412,116 @@ msgstr "neniu pakaĵo kongruas kun %s: %s\n"
msgid "no package requires %s\n"
msgstr "neniu pakaĵo postulas: %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "neniu pakaĵo postulas: %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "neniuj pakaĵo-instigiloj %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "neniu pakaĵo postulas: %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "neniu pakaĵo postulas: %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "neniu pakaĵo provizas: %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "dosiero %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "neniu pakaĵo estras dosieron %s\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "nevalida pakaĵo-numero: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "ne eblas legi rikordon %u\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "pakaĵo %s ne estas instalita\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "nekonata etikedo: \"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: malsukcesis importi ŝlosilon %d.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: ŝlosilo %d ne estas ŝirmita publika ŝlosilo.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: importa legado malsukcesis (%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s: headerRead malsukcesis: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr "%s: Ne eblis legi neŝanĝeblan kapan regionon. Ĉu koruptita pakaĵo?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread malsukcesis: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NEBONA"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "BONA"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr "(MANKAJ ŜLOSILOJ:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr "NEFIDINDAJ ŜLOSILOJ:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: malsukcesis malfermi: %s\n"
@@ -2416,146 +2546,197 @@ msgstr "Ne eblas ŝanĝi radikan dosierujon: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Ne eblas restarigi radikan dosierujon: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NE "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "JES"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "Dependaĵoj de PreReq:, Provides:, kaj Obseletes: eblas havi eldonojn."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"dosiernomo(j) konservitaj kiel (dirName, basNem, dirIndex) triopo, ne kiel "
"pado."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "pakaĵo-ŝarĝo eblas esti kunpremita per bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "pakaĵo-ŝarĝo eblas esti kunpremita per xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "pakaĵo-ŝarĝo eblas esti kunpremita per lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "pakaĵo-ŝarĝa(j) dosiero(j) havas prefikson \"./\"."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "la nomo, eldono kaj promocio de pakaĵo ne subkomprenita."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "kapaj tagoj ĉiam estas ordigitaj post ŝargiĝi."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "la programeta interpretilo povas uzi parametrojn de la kapo."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "aro da malmolaj ligiloj povas esti instalita sen esti kompleta."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "pakaĵo-programetojn rajtas atingi la rpm-datumbazon dum instali."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "interna komprena de lua-programetoj."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "dosiero-resuma algoritmo estas aparte agordeble por ĉiu pakaĵo"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "rego de kapabloj de dosieroj laŭ POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "pakaĵo-programetoj eblas etendiĝi dum insntalado."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "dependaĵa komparo komprenas eldonojn kun tildo."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "ne konstati pakaĵo-dependaĵojn"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Eldono necesas"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "nevalida dependaĵo"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Nefinita %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "nevalida dependaĵo"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "uzanto %s ne ekzistas - mi uzos la ĉefuzanton\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "grupo %s ne ekzistas - uzos la ĉefgrupon\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Fuŝa magiaĵo"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Fuŝa kapo"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Kapo-grando tro granda"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "Dosiero tro granda por arkivo"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Nekonata dosiertipo"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Malkongrueco ĉe resumo"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Interna eraro"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Arkivo-dosiero ne en kapo"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " malsukcesis - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "malfermo de %s malsukcesis: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: ne rpm-pakaĵo (aŭ pakaĵo-manifesto)\n"
@@ -2587,42 +2768,42 @@ msgstr "Malhavaj dependaĵoj:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: ne rpm-pakaĵo (aŭ pakaĵo-manifesto): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s ne eblas instaliĝi\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Riceviĝas %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "transigo de %s malsukcesis - preterlasanta\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "pakaĵo %s ne estas relokebla\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "eraro dum legi dosieron %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" specifas plurajn pakaĵojn:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "ne eblas malfermiĝi %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Instaliĝas %s\n"
@@ -2648,12 +2829,12 @@ msgstr "malsukcesis legi: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "ne rpm-pakaĵo\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "ne eblas krei ŝloson %s ĉe %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "atendis ŝloson %s ĉe %s\n"
@@ -2669,9 +2850,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Solvi simbolon %s malsukcesis: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Kromprogramo %s ne ŝargita\n"
+msgstr ""
#: lib/rpmplugins.c:199
#, c-format
@@ -2811,60 +2992,79 @@ msgstr "manka platformo por %s ĉe %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "Fuŝa elekto '%s' ĉe %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "Malsukcesis legi helpan vektoron, ĉu /proc ne surmetita?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Nekonata operaciumo: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Bonvolu kontakti %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "%s ne malfermeblas por legiĝi: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "Ne eblas restarigi aktualan dosierujon: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "rego por <lua>-programetojn ne estas integraj\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Ne eblis krei provizoran dosieron por %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Ne eblis dupliki dosieran priskribilon %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Ne eblas legi piktogramon %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Ne eblas restarigi radikan dosierujon: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite malsukcesis: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "programeto %s malsukcesis, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "programeto %s malsukcesis, signalo %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "programeto %s malsukcesis, elira stato %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "nekonata formato"
@@ -2876,127 +3076,146 @@ msgstr "instali"
msgid "erase"
msgstr "forviŝi"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "ne eblas malfermi pakaĵo-datumbazon en %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "aldona '(' en pakaĵo-etikedo: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "manka '(' en pakaĵo-etikedo: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "manka ')' en pakaĵo-etikedo: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: legi la publikan ŝlosilon malsukcesis.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "interago"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(ne OpenPGP-pretendo)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Ne eblas reŝargi pretendo-kapon.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Kapo"
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5-resumo:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "SHA1-resuma kapo:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Kapo"
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "preterlasita"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "malsukcesa"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "manka %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Malkontentaj dependaĵoj por %s:\n"
@@ -3070,221 +3289,221 @@ msgstr "tabela iteraciilo uzata kun tabeloj kun diversaj grandoj"
msgid "Generating %d missing index(es), please wait...\n"
msgstr "Generanta %d mankajn indekso(j)n, bonvolu atendi...\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "neniu dbpath estis valorizita\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: preterlasanta"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "eraro (%d) konservanta rikordon #%d al en %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec malsukcesis: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp malsukcesis: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: preterlasanta"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: difektita kapo #%u akirita -- preterlasanta.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: ne eblas legi kapon en 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "neniu dbpath estis valorizita"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "malsukcesis krei dosierujon %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "kapo #%u en datumbazo estas fuŝa -- preterlasanta.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "ne eblas aldoni rikordon devene el %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "malsukcesis remunti datumbazon: neŝanĝita datumbazo restas\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "malsukcesis anstataŭigi la malnovan datumbazon per la nova!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "anstataŭigi dosierojn en %s per dosieroj el %s por reatingi"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "malsukcesis reatingi dosierujon %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "nekonata elekto en db: \"%s\" ignorita.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s haves nevalidan nombran valoron, preterlasita\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr ""
+"%s havas tro grandan aŭ mangrandan longentjeran valoron, preterlasita\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+"%s havas tro grandan aŭ malgrandan mallongentjeran valoron, preterlasita\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "ne eblas atingi ŝloson %s ĉe %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "kunuzata"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "ekskluziva"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "nevalida indeksa tipo %x ĉe %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "eraro(%d) dum ricevi rikordojn \"%s\" el indekso %s: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "eraro(%d) konservi rikordon \"%s\" en %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "eraro(%d) dum forigi rikordon \"%s\" el %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "eraro(%d) aldonanta en kapo rikordon #%d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "eraro(%d) foriganta el kapo rikordon #%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "eraro(%d) dum generi novan okazon de pakaĵo\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "nekonata elekto en db: \"%s\" ignorita.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s haves nevalidan nombran valoron, preterlasita\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr ""
-"%s havas tro grandan aŭ mangrandan longentjeran valoron, preterlasita\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-"%s havas tro grandan aŭ malgrandan mallongentjeran valoron, preterlasita\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(vaka)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(vaka)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Makroo %%%s havas nefinitajn elektojn\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Makroo %%%s havas nefinitan korpon\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Makroo %%%s havas nevalidan vomon (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Makroo %%%s havas vakan korpon\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Makroo %%%s malsukcesis etendiĝi\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Makroo %%%s havas nevalidan nomon (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Nekonata elekto %c en %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3292,22 +3511,22 @@ msgstr ""
"Tro da niveloj de rekursioj en makroa etendado. Verŝajne kaŭzate de rekursia "
"makro-deklaro.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Nefinita %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "%% estas sekvata de sensenca makroo\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktiva %d vaka %d\n"
@@ -3327,31 +3546,31 @@ msgstr "Dosiero %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Dosiero %s estas malpli ol %u bajtoj\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "malsukcesis krei dosierujon"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "nevalida sintakso en lua-programeto: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "nevalida sintakso en lua-programeto: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua-programeto malsukcesis: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "nevalida sintakso en lua-dosiero: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua hoko malsukcesis: %s\n"
@@ -3360,19 +3579,19 @@ msgstr "lua hoko malsukcesis: %s\n"
msgid "[none]"
msgstr "[neniu]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(neniu eraro)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "haltigenda eraro:"
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "eraro: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "averto: "
@@ -3381,101 +3600,159 @@ msgstr "averto: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "memora generado (%u bajtoj) donis nulon.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, ŝlosila identigilo %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(neniu)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "eraro dum krei provizoran dosieron %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "eraro dum krei provizoran dosieron %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "eraro dum krei provizoran dosieron %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "malsukcesis krei dosierujon %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite malsukcesis: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush malsukcesis: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Nekomprenita PGP-pretendo\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "Nekomprenita krampita algoritmo %u de PGP\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "Nekomprenita algoritmo publika-ŝlosila %u de PGP\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Ne eblas krei tubon por pretendi: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Ne eblas plenumigi: %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: malsukcesis malfermi: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Ne eblis malfermi dosieron %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Ne eblis malfermi %%files file %s: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg-plenumo malsukcesis (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg malsukcesis skribi pretendon\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "ne eblas legi la pretendon\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature malsukcesis: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignure malsucksis: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: headerRead malsukcesis: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp malsukcesis\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "plenumo malsukcesis\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: headerRead malsukcesis: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s jam enhavas identan pretendon, preterlasanta\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignure malsucksis: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "Ne povas pretendi pakaĵojn el RPM-v3\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s jam enhavas identan pretendon, preterlasanta\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature malsukcesis: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp malsukcesis\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead malsukcesis: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "anstataŭigo de %s malsukcesis: %s\n"
@@ -3489,82 +3766,23 @@ msgstr "%s: legi manifeston malsukcesis: %s\n"
msgid "don't verify header+payload signature"
msgstr "ne konstati pretendojn de kapo+ŝarĝo"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Ne eblas skribi ŝarĝon al %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Ne eblas legi ŝarĝon el %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Ne eblas malfermi provizoran dosieron.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Ne eblas malfermi celon %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Ne eblas legi kapon el %s: %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Ne eblas skribi kapon al %s: %s\n"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "ne plenumi ian ajn kolekto-agon"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr "Neŝanĝebla kapa regiono ne eblas legiĝi. Ĉu koruptita pakaĵo?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Malsukcesis malkodi konduton por %s\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Malsukcesis krei provizoran dosieron por %s: %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Malsukcesis skribi konduton %s al dosiero %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Malsukcesis krei anson por semanage\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Malsukcesis konektiĝi al konduta traktilo\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Malsukcesis komenci kondutan interagon: %s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "Malsukcesis forigi provizoran kondutan dosieron %s: %s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Malsukcesis instali kondutan modulon: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Malsukcesis forigi konduto-modulon: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Malsukcesis disforkigi procezon: %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Malsukcesis plenumigi: %s: %s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s haltis malnormale\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Konvertado de %s al longa entjero malsukcesis.\n"
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s malsukcesis kun elira kodo %i\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Enmeti pasfrazon:"
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Malsukcesis cizeli kondutajn ŝanĝojn\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Pasfrazo bonas.\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Malsukcesis etendi padon restorecon"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr "Kontrolado de pasfrazo malsukcesis aŭ GPG-ŝlosilo eksvalidiĝis.\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr "Malsukcesis alinomi dosiersistemon. Dosieroj ele estas misnomataj\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Fuŝa estro/grupo: %s\n"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Malsukcesis reŝargi dosierajn kuntekstojn. Dosieroj eble estas "
-#~ "misnomataj\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "linio %d: Nevalida signo en: %s\n"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Malsukcesis eltiri konduton el %s\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Ne eblas krei tubon por pretendi: %m"
diff --git a/po/es.gmo b/po/es.gmo
index 38ea0228..8efae585 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 0c578e00..a10d4944 100644
--- a/po/es.po
+++ b/po/es.po
@@ -3,8 +3,9 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Adolfo Jayme Barrientos <fitoschido@ubuntu.com>, 2011
-# Adolfo Jayme Barrientos <fitoschido@ubuntu.com>, 2014
+# Adolfo Jayme Barrientos, 2011
+# Adolfo Jayme Barrientos <fitoschido@ubuntu.com>, 2011,2014
+# beckerde <domingobecker@gmail.com>, 2012
# Claudio Rodrigo Pereyra Diaz <elsupergomez@gmail.com>, 2012
# Daniel Cabrera <logan@fedoraproject.org>, 2011
# beckerde <domingobecker@gmail.com>, 2012
@@ -13,11 +14,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/rpm/language/"
-"es/)\n"
+"Language-Team: Spanish (http://www.transifex.com/rpm-team/rpm/language/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -88,8 +88,8 @@ msgstr "Opciones de verificación (con -V o --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Opciones de Instalación/Actualización/Remoción:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Opciones comunes para todos los modos rpm y ejecutables:"
@@ -109,7 +109,7 @@ msgstr "formato de consulta inesperado"
msgid "unexpected query source"
msgstr "fuente de consulta inesperado"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "solo puede especificarse un modo principal"
@@ -234,7 +234,7 @@ msgstr ""
"solo puede especificarse --test durante la instalación o la eliminación de "
"un paquete"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "los argumentos de --root (-r) deben iniciar con una /"
@@ -254,215 +254,264 @@ msgstr "no ha sido indicado ningún argumento para la consulta"
msgid "no arguments given for verify"
msgstr "no ha sido indicado ningún argumento para la verificación"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot ya especificado, ignorando %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"construir a través de %prep (desempaquetar fuentes y aplicar parches) desde "
"<specfile>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "construir a través de %build (%prep, luego compilar) desde <specfile>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"construir a través de %install (%prep, %build, luego instalar) desde "
"<specfile>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "verificar la sección %files de <specfile>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "construir paquetes binarios y fuente desde <specfile>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "construir paquetes binarios únicamente desde <specfile>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "construir paquete fuente únicamente desde <specfile>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"construir a través de %prep (desempaquetar fuentes y aplicar parches) desde "
+"<specfile>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<paquete fuente>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "construir a través de %build (%prep, luego compilar) desde <specfile>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"construir a través de %install (%prep, %build, luego instalar) desde "
+"<paquete fuente>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "verificar la sección %files de <specfile>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "construir paquete binario desde <source package>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "construir paquete binario desde <source package>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "construir paquete fuente únicamente desde <specfile>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"construir a través de %prep (desempaquetar fuentes y aplicar parches) desde "
"<tarball>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "construir a través de %build (%prep, luego compilar) desde <tarball>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"construir a través de %install (%prep, %build, luego instalar) desde "
"<tarball>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "verificar sección %files desde <tarball>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "construir paquetes binarios y fuente desde <tarball>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "construir paquete binario únicamente desde <tarball>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "construir paquete fuente desde <tarball> "
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "construir paquete binario desde <source package>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<paquete fuente>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"construir a través de %install (%prep, %build, luego instalar) desde "
-"<paquete fuente>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "sobreescribir construcción de root"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "No es posible abrir directorio actual: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "remover árbol de construcción al finalizar"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignorar directivas ExcludeArch desde el archivo spec"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "depurar archivo de la máquina de estado"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "no ejecutar ningún nivel de la construcción"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "no verificar dependencias de la construcción"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
"genera encabezado(s) de paquete(s) compatible(s) con el empaquetamiento rpm "
"v3 (legado)"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "no ejecutar la fase %clean de la construcción"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "no ejecutar la fase %clean de la construcción"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "no ejecutar la fase %check de la construcción"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "no aceptar msgstr i18N desde el archivo spec"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "eliminar fuentes al finalizar"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "eliminar el archivo spec al finalizar"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "Ir a etapa especificada (solo para c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "sobreescribir plataforma de destino"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"Opciones de construcción con [ <archivo spec> | <tarball> | <paquete "
"fuente> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Fallo al construir las dependencias:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "No se puede abrir el archivo spec %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Falló la apertura de la tuberia para tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Más de un archivo en una línea: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Falló la lectura del archivo spec desde %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Falló al renombrar %s to %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "falló la llamada stat sobre %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "El archivo %s no es un archivo regular.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "El archivo %s no parece ser un archivo spec.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Construyendo las plataformas de destino: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Construyendo para el destino %s\n"
@@ -513,49 +562,65 @@ msgstr "lista las llaves del administrador de llaves RPM"
msgid "Keyring options:"
msgstr "Opciones del llavero:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "no ha sido indicado ningún argumento"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "firma paquete(s)"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "firmar paquete(s) (idéntico a --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "eliminar las firmas del paquete"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "firma paquete(s)"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Opciones de firma:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "No se pudo ejecutar %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Debe establecer \"%%_gpg_name\" en su archivo de macro\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Introduzca la frase de acceso:"
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "La frase de acceso es correcta\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "Falló la verificación de la contraseña, o la llave gpg ha expirado\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix solo puede ser utilizado al instalar nuevos paquetes"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr ""
+"--allmatches solo puede ser especificado durante la eliminación del paquete"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -573,7 +638,7 @@ msgstr "opera sobre rpms binarios generados por spec (predeterminado)"
msgid "operate on source rpm generated by spec"
msgstr "opera sobre rpm fuente generado por spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "utilizar el siguiente formato de consulta"
@@ -674,201 +739,201 @@ msgstr "&& y || no están soportados en cadenas\n"
msgid "syntax error in expression\n"
msgstr "error de sintaxis en la expresión\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "'(' ausente en %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "')' ausente en %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Elemento %s no válido: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "%s ausente en %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Ningún espacio en blanco después de %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Sintaxis errónea: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "modo spec erróneo: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "dirmode spec erróneo: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "Longitud de locale no usual: \"%s\" in %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Locale %s duplicado en %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Capacidad inválida %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Soporte para la capacidad del archivo no construido\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Los archivos deben iniciar con \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Algoritmo de resumen de archivo %u desconocido, regresando a MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Archivo listado dos veces: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "falló la lectura %s de symlink: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "El enlace simbólico apunta a BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "No se ha encontrado el directorio: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Archivo no encontrado: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: no se puede cargar, etiqueta (%d) desconocida.\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: falló la lectura de la clave publica.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: no es una clave pública con armadura.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: falló la codificación\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "El archivo necesita comenzar con \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "%%dev glob no permitido: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "El directorio no ha sido hallado por glob: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Archivo no encontrado por glob: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "No se pudo abrir el archivo %%files %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "línea: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Error leyendo %%files archivo %s: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "illegal _docdir_fmt %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Archivo no encontrado por glob: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "No se puede mezclar el %s especial con otros formatos: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Más de un archivo en una línea: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Archivo erróneo: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "propietario/grupo erróneo: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Comprobando si hay archivos desempaquetados: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -877,18 +942,18 @@ msgstr ""
"Se encontraron archivos instalados (pero desempaquetados):\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Procesando archivos: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
"Los archivos binarios (%d) no coinciden con los archivos del paquete (%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
"Binarios dependientes de la arquitectura en paquetes sin arquitectura\n"
@@ -908,90 +973,91 @@ msgstr "falló la creación del archivo: %s\n"
msgid "Could not open %s file: %s\n"
msgstr "No es posible abrir el archivo %s: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: línea: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "No se pudo canonizar el nombre de host: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Incapaz de recargar el encabezado de la firma\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Compresion de carga útil desconocida: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "No ha sido posible crear la región inmutable del encabezado.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "No se pudo abrir %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "No ha sido possible escribir el paquete: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Incapaz de escribir el encabezado temporal\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Datos CSA erróneos\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "No es posible abrir el archivo %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "falló al crear el archivo %s: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Escrito: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Ejecutando \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Falló la ejecución de \"%s\":\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Falló la verificación \"%s\" del paquete\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
"No se pudo generar el nombre de archivo de salida para el paquete %s: %s \n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "no es posible crear %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "línea %d: segundo %s\n"
@@ -1042,19 +1108,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "línea %d: Error al analizar %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "línea %d: Opción errónea %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "línea %d: Demasiados nombres: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "línea %d: El paquete no existe: %s\n"
@@ -1109,142 +1175,147 @@ msgstr "Descargando %s en %s\n"
msgid "Couldn't download %s\n"
msgstr "No es posible descargar %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "La arquitectura es excluida: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "La arquitectura no es incluida: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "SO es excluido: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "SO no es incluido: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "el campo %s debe estar presente en el paquete: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Duplicar entradas %s en el paquete: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "No ha sido posible abrir el icono %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "No ha sido posible leer el icono %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Tipo de icono desconocido: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "línea %d: La etiqueta solo recibe patrones individuales: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "línea %d: Carácter '%c' ilegal en: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "línea %d: Carácter ilegal en: %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "línea %d: Secuencia \"..\" ilegal en: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "línea %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: línea: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "línea %d: Etiqueta mal formada: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "línea %d: Etiqueta vacía: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "línea %d: Los prefijos deben finalizar en \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "línea %d: Docdir debe iniciar con '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "línea %d: El campo epoch debe ser un número sin signo: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "línea %d: %s erróneo: calificadores: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "línea %d: Formato BuildArchitecture erróneo: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "linea %d: Solo existe soporte para subpaquetes sin arquitectura: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Error interno: Etiqueta errónea %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "línea %d: %s se encuentra obsoleta: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Especificación de paquete errónea: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "El paquete ya existe: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "línea %d: Etiqueta desconocida: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} no puede ser vacío\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{BuildRoot} no puede ser \"/\"\n"
@@ -1254,165 +1325,199 @@ msgstr "%%{BuildRoot} no puede ser \"/\"\n"
msgid "Bad source: %s: %s\n"
msgstr "Fuente errónea: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Ningún número de parche %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch sin etiqueta \"Patch:\" correspondientes\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Ningún número fuente %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "No hay etiqueta \"Source:\" en el archivo spec\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Error al analizar %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "línea %d: Argumento erróneo para %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "línea %d: opción %%setup errónea %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Número de parche %s inválido: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "línea %d: segundo %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
"Las fichas de dependencias deben comenzar con caracteres alfanuméricos, «_» "
"o «/»"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "No se permite el nombre de archivo versionado"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "se necesita una versión"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "dependencia no válida"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "se necesita una versión"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "línea %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "línea %d: los detonantes deben tener --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "línea %d: Error al analizar %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "línea %d: el script interno debe finalizar con '>': %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "línea %d: los scripts ejecutables debe iniciar con '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+"línea %d: los argumentos de intérprete no son permitidos en disparadores: "
+"%s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "línea %d: Segundo %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "línea %d: script interno no soportado: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
"línea %d: los argumentos de intérprete no son permitidos en disparadores: "
"%s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "línea %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "No ha sido posible abrir %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d: Argumento esperado para %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "línea %d: %%if no cerrado\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "línea %d: macro no cerrado o continuación de línea errónea\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: mal %%si condición\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Tiene un %%else sin %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Tiene un %%endif sin %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d: instrucción %%include con formato incorrecto\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "No se encontraron arquitecturas compatibles para la construcción\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "El paquete no tiene %%description: %s\n"
@@ -1487,287 +1592,276 @@ msgstr "Demasiados argumentos en la línea: %s\n"
msgid "Processing policies: %s\n"
msgstr "Procesando políticas: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Ignorando regex no válido %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "No se pudo crear una tuberia para %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "No se pudo ejecutar la llamada exec %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "No se pudo ejecutar la llamada al sistema fork para %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "Falló %s: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "falló la escritura de todos los datos a %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Falló la conversión de %s a entero largo.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "Clasificador de archivo vacío\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "No han sido configurados atributos de archivo\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "falló magic_open(0x%x): %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "falló magic_load: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Falló la identificación del archivo \"%s\": modo %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Buscando %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Falló la búsqueda de %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "la consulta del archivo spec %s falló, no se pudo analizar\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s es un RPM Delta y no puede ser instalado directamente\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Carga útil (%s) no soportada en el paquete %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "el paquete %s ya fue añadido, omitiendo %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "el paquete %s ya fue añadido, reemplazando con %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(no es un número)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(no base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(tipo no válido)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(no es un blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(tipo xml no válido)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(no es una firma OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Fecha no válida %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normal "
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "reemplazado"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "no instalado"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "compartido en red"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "color incorrecto"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "no se encuentra"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(desconocido) "
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(no es una cadena)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s guardado como %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s creado como %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: falló al eliminar: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "directorio"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "archivo"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1990,7 +2084,7 @@ msgstr "actualizar la base de datos, mas no modificar el sistema de archivos"
msgid "do not verify package dependencies"
msgstr "no verificar las dependencias del paquete"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "no verificar el digest de los archivos"
@@ -2112,162 +2206,182 @@ msgstr "actualizar paquete(s)"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "consultar/verificar todos los paquetes"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "modo rpm checksig"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "consultar/verificar archivo propietario de paquete(s)"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "consultar/verificar paquete(s) en grupo"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "consultar/verificar un archivo de paquete"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "consultar/verificar paquete(s) con identificador de paquete"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "consultar/verificar paquete(s)con identificador de cabecera"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "modo de consulta rpm"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "consultar/verificar una instancia de la cabecera"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "consultar/verificar paquete(s) de la transacción de la instalación"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "consultar los paquetes lanzados por el paquete"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "modo de verificación de rpm"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "consultar/verificar los paquetes que requieren una dependencia"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "consultar/verificar paquetes que proporcionan una dependencia"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "consultar/verificar los paquetes que requieren una dependencia"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "consultar/verificar los paquetes que requieren una dependencia"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "consultar/verificar los paquetes que requieren una dependencia"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "consultar/verificar los paquetes que requieren una dependencia"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "ningún argumento para glob"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "no procese los archivos que no pertenecen al paquete como manifiestos"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "listar todos los archivos de configuración"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "listar todos los archivos de documentación"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "Volcar información de archivo básica"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "listar archivos del paquete"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "saltar archivos %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "mostrar el estado de los archivos listados"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "no verificar el tamaño de los archivos"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "no verificar la ruta symlink de los archivos"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "no verificar el propietario de los archivos"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "no verificar el grupo de los archivos"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "no verificar el tiempo de modificación de los archivos"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "no verificar el modo de los archivos"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "no verificar las capacidades de los archivos"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "no verificar los contextos de seguridad del archivo"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "no verificar los archivos en el paquete"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "no verificar las dependencias de paquetes"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "no ejecutar scripts de verificación"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "No se encuentran características rpmlib para %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "se esperaba el paquete fuente, paquete binario encontrado\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "el paquete fuente no contiene archivo .spec\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "falló el desempaquetado de archivos %s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " en archivo"
@@ -2342,98 +2456,118 @@ msgstr "ningún paquete coincide con %s: %s\n"
msgid "no package requires %s\n"
msgstr "ningún paquete requiere %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "ningún paquete requiere %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "sin detonante de paquetes %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "ningún paquete requiere %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "ningún paquete requiere %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "ningún paquete proporciona %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "archivo %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "el archivo %s no es propiedad de ningún paquete\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "número de paquete inválido: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "el registro %u no pudo ser leído\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "el paquete %s no está instalado\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "etiqueta desconocida:\"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: falló la importación de la llave %d\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: la llave %d no es una llave pública protegida.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: falló la lectura para importar(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s: falló headerRead: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: la cabecera de región no modificable no pudo ser leída. ¿Estará corrupto "
"el paquete?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread falló: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NO ESTA BIEN"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "BIEN"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (FALTAN LAS CLAVES:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (CLAVES NO CONFIABLES:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: falló la apertura: %s\n"
@@ -2458,154 +2592,205 @@ msgstr "No se puede cambiar el directorio raíz: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "No es posible restablecer el directorio raíz: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NO "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "SI"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "PreReq:, Provides:, y Obsoletes: dependencias soportan versiones."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"nombres de archivos almacenados como (dirName,baseName,dirIndex) \"tuple\", "
"no como ruta."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "la carga del paquete puede ser comprimida utilizando bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "la carga del paquete puede ser comprimida utilizando xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "la carga del paquete puede ser comprimida tilizando bzip2. "
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "los archivos de carga del paquete tienen el prefijo \"./\"."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
"nombre-versión-lanzamiento del paquete no se proporciona implícitamente."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
"las etiquetas del encabezado son siempre ordenadas después de ser cargadas."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "el intérprete de scriptlet puede utilizar argumentos del encabezado."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
"un conjunto de enlaces fijos de archivo puede ser instalado aunque no se "
"haya completado."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"scriplets de paquete pueden acceder a la base de datos rpm mientras se está "
"imstalando."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "soporte interno para scripts lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "el algoritmo de digest se puede configurar por paquete"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "soporte para capacidades de archivo POSIX1e."
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
"los scriptlets de los paquetes pueden ser expandidos en el momento de la "
"instalación."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "la comparación de dependencias admite versiones con virgulilla."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "no verificar las dependencias del paquete"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "se necesita una versión"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "dependencia no válida"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "No terminado %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "dependencia no válida"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "usuario %s no existe - utilizando root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "grupo %s no existe - utilizando root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Magic erróneo"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Encabezado erróneo/imposible de leer"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "El tamaño del encabezado es demasiado extenso"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "Archivo muy grande para compactar"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Tipo de archivo desconocido"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "El digest no coincide"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Error interno"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "El fichero del archivo no se encuentra en el encabezado"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " falló - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "la apertura de %s falló: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: no es un paquete rpm (o manifiesto de paquete)\n"
@@ -2637,42 +2822,42 @@ msgstr "Error de dependencias:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: no es un paquete rpm (o manifiesto de paquete): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s no puede ser instalado\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Recuperando %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "omitiendo %s - transferencia fallida\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "paquete %s no es reubicable\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "error al leer del archivo %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" especifica varios paquetes:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "no se puede abrir %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Instalando %s\n"
@@ -2698,12 +2883,12 @@ msgstr "falló la lectura: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "no es un paquete rpm\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "no es posible crear el bloqueo %s sobre %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "esperando el bloqueo %s sobre %s\n"
@@ -2719,9 +2904,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Falló al resolver el símbolo %s: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "El complemento %s no ha sido cargado\n"
+msgstr ""
#: lib/rpmplugins.c:199
#, c-format
@@ -2868,61 +3053,80 @@ msgstr "falta la arquitectura para %s en %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "opción errónea '%s' en %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "Falló al leer el vector auxiliar, ¿estará montado /proc?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Sistema desconocido: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Por favor contacte %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "No se puede abrir %s para lectura: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "No es posible restaurar el directorio actual: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
"soporte interno para macro de inclución de guiones <lua>, no fue construido\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "No se pudo crear un archivo temporal para %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "No se pudo duplicar el descritor de archivo %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "No ha sido posible leer el icono %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "No es posible restablecer el directorio raíz: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite falló: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s: macro de ejecución de guión fallido, waitpid(%d) rd %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s: macro de ejecución de guión fallido, señal %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s: macro de ejecución de guión fallido, estado de terminación %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "formato desconocido"
@@ -2934,127 +3138,146 @@ msgstr "instalar "
msgid "erase"
msgstr "borrar"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "no se puede abrir la base de datos Packages en %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "'(' extra en la etiqueta del paquete: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "'(' ausente en la etiqueta del paquete: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "')' ausente en la etiqueta del paquete: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: lectura de la clave publica fallida.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "transacción"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(no es una firma OpenPGP)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Incapaz de recargar el encabezado de la firma\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Encabezado"
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "Resumen MD5: "
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Resumen SHA1 del encabezado:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Encabezado"
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "ignorado"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "falló"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "falta %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Dependencias no satisfechas para %s:\n"
@@ -3128,224 +3351,224 @@ msgstr "iterador de arreglo usado con arreglos de diferente tamaño"
msgid "Generating %d missing index(es), please wait...\n"
msgstr "Generando %d índice(s) faltante(s), espere…\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "no se ha establecido dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: omitiendo"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "error(%d) almacenando registro #%d en %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec falló: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp falló: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: omitiendo"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: encabezado dañado #%u recuperada -- omitiendo.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: no se pudo leer encabezado en 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "no se ha establecido dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "no se pudo crear el directorio %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "encabezado #%u erróneo en la base de datos -- omitiendo.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "no se puede añadir el registro original en %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"falló la reconstrucción de la base de datos: la base de datos original "
"permanece en su lugar\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
"¡falló el remplazo de la base de datos antigua con la nueva base de datos!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "reemplazar archivos en %s con los archivos de %s a recuperar"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "falló la eliminación del directorio %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "opciones db no reconocidas: \"%s\" ignorado.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s tiene un valor numérico no válido, omitido\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr ""
+"%s tiene un valor largo demasiado grande o demasiado pequeño, omitido\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+"%s tiene un valor entero demasiado grande o demasiado pequeño, omitido\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "no se pudo obtener bloqueo %s en %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "compartido"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "exclusivo"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "tipo de índice %x inválido en %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "error(%d) al obtener registros «%s» desde el índice %s: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "error(%d) almacenando registros \"%s\" en %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "error(%d) eliminando registro \"%s\" de %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "error(%d) estableciendo registro de encabezado #%d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "error(%d) eliminando registro de encabezado #%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "error(%d) asignando nueva instancia de paquete\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "opciones db no reconocidas: \"%s\" ignorado.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s tiene un valor numérico no válido, omitido\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr ""
-"%s tiene un valor largo demasiado grande o demasiado pequeño, omitido\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-"%s tiene un valor entero demasiado grande o demasiado pequeño, omitido\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(vacío)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(vacío)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "El macro %%%s tiene opciones no terminadas\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "El macro %%%s tiene un cuerpo incompleto\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "El macro %%%s tiene un nombre ilegal (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "El macro %%%s tiene un cuerpo vacío\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Falló la expansión del macro macro %%%s\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "El macro %%%s tiene un nombre ilegal (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Opción desconocida %c en %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3353,22 +3576,22 @@ msgstr ""
"Demasiados niveles de recursión en la expansión macro. Esto seguramente haya "
"sido provocado por una declaración macro recursiva.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "No terminado %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Un %% está seguido por un macro no analizable\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== activo %d vacío %d\n"
@@ -3388,31 +3611,31 @@ msgstr "Archivo %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "El archivo %s tiene menos de %u bytes\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "falló al crear el directorio"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "sintaxis no válida en el macro de ejecución de scriptlet lua: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "sintaxis no valida en el scriptlet lua: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "falló el scriptlet lua: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "sintaxis no valida en el archivo de scriptlet lua: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "falló el enlace de lua: %s\n"
@@ -3421,19 +3644,19 @@ msgstr "falló el enlace de lua: %s\n"
msgid "[none]"
msgstr "[ninguno]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(ningún error)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "error fatal:"
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "error: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "advertencia:"
@@ -3442,101 +3665,159 @@ msgstr "advertencia:"
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "la asignación de memoria (%u bytes) retornó NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, ID de clave %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(ninguno)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "error al crear el archivo temporal %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "error al crear el archivo temporal %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "error al crear el archivo temporal %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "no se pudo crear el directorio %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite falló: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush fallido: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Firma PGP no soportada\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "Algoritmo hash PGP no soportado %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "Algoritmo de llave pública PGP no soportado %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "No se pudo crear la tuberia para firmar: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "No se pudo ejecutar %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: falló la apertura: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "No es posible abrir el archivo %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "No se pudo abrir el archivo %%files %s: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "falló la llamada al sistema exec para gpg (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg falló al escribir la firma\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "incapaz de leer la firma\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature falló: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature falló: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: falló headerRead: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "faló makeTempFile\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "falló exec\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: falló headerRead: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s ya contiene una firma idéntica, ignorando\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature falló: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "No es posible firmar paquetes RPM v3\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s ya contiene una firma idéntica, ignorando\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature falló: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "faló makeTempFile\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead falló: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "falló el reemplazo %s: %s\n"
@@ -3550,86 +3831,24 @@ msgstr "%s: falló la lectura del manifiesto: %s\n"
msgid "don't verify header+payload signature"
msgstr "no verificar firma de encabezado+carga"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "No ha sido possible escribir la carga útil de %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "No ha sido posible leer la carga útil de %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "No es posible abrir archivo temporal.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "No ha sido posible abrir sigtarget %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "No ha sido posible leer el encabezado de %s: %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Falló la conversión de %s a entero largo.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "No ha sido possible escribir el encabezado de %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Introduzca la frase de acceso:"
-#~ msgid "do not perform any collection actions"
-#~ msgstr "no realizar ninguna acción de colección"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "La frase de acceso es correcta\n"
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
#~ msgstr ""
-#~ "No se pudo leer la región inmutable del encabezado. ¿El paquete esta "
-#~ "corrupto?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Falló al decodificar la política para %s\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Falló al crear archivo temporal para %s: %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Falló al escribir la política %s en el archivo %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Falló al crear manipulador de semanage\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Falló al conectar con el manipulador de políticas\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Falló iniciar transacción de política: %s\n"
+#~ "Falló la verificación de la contraseña, o la llave gpg ha expirado\n"
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "Falló al eliminar el archivo de política temporal %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "propietario/grupo erróneo: %s\n"
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Falló al instalar módulo de política: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Falló al eliminar el módulo de política: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Falló al bifurcar el proceso: %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Falló al ejecutar %s: %s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s finalizó de manera anormal\n"
-
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s falló con un código de salida %i\n"
-
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Falló al enviar modificaciones de política\n"
-
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Falló al expandir el camino restoreconf"
-
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Falló al re etiquetar el sistema de archivos. Lor archivos podrían "
-#~ "encontrarse mal etiquetados\n"
-
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Falló al recargar el contexto de archivo. Los archivos podrían estar mal "
-#~ "etiquetados\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "línea %d: Carácter ilegal en: %s\n"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Falló al extraer la política desde %s\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "No se pudo crear la tuberia para firmar: %m"
diff --git a/po/fi.gmo b/po/fi.gmo
index 01aea8e1..1a16b015 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index f2f80d0e..2978b30e 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,11 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Finnish (http://www.transifex.com/projects/p/rpm/language/"
-"fi/)\n"
+"Language-Team: Finnish (http://www.transifex.com/rpm-team/rpm/language/fi/)\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -80,8 +79,8 @@ msgstr "Tarkistusvalitsimet (-V tai --verify yhteydessä)"
msgid "Install/Upgrade/Erase options:"
msgstr "Asennus-, päivitys- ja poistovalitsimet:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Yhteiset valitsimet kaikille rpm moodeille:"
@@ -101,7 +100,7 @@ msgstr "odottamaton kyselyn muotoilu"
msgid "unexpected query source"
msgstr "odottamaton kyselyn lähde"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "vain yksi päätila voidaan määritellä"
@@ -208,7 +207,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "parametrit --root (-r):lle alettava /-merkillä"
@@ -228,203 +227,250 @@ msgstr "kyselylle ei annettu parametrejä"
msgid "no arguments given for verify"
msgstr "tarkistukselle ei annettu parametrejä"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot on jo määritelty, %s:ää ei huomioida\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr "käännä %prep-osioon asti spec-tiedostosta"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<spec-tiedosto>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "käännä %build-osioon asti (%prep ja %build) spec-tiedostosta"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"käännä %install-osioon asti (%prep, %build ja %install) spec-tiedostosta"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "tarkista %files-osio spec-tiedostosta"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "käännä lähde- ja binääripaketit spec-tiedostosta"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "käännä vain binääripaketti spec-tiedostosta"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "käännä vain lähdepaketti spec-tiedostosta"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr "käännä %prep-osioon asti spec-tiedostosta"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<lähdepaketti>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "käännä %build-osioon asti (%prep ja %build) spec-tiedostosta"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr "käännä %install-osioon asti (%prep, %build ja %install) lähdepaketista"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "tarkista %files-osio spec-tiedostosta"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "käännä binääripaketti lähdepaketista"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "käännä binääripaketti lähdepaketista"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "käännä vain lähdepaketti spec-tiedostosta"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr "käännä %prep-osioon asti tar-tiedostosta"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tar-tiedosto>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "käännä %build-osioon asti (%prep ja %build) tar-tiedostosta"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"käännä %install-osioon asti (%prep, %build ja %install) tar-tiedostosta"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "tarkista %files-osio tar-tiedostosta"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "käännä lähde- ja binääripaketit tar-tiedostosta"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "käännä vain binääripaketti tar-tiedostosta"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "käännä vain lähdepaketti tar-tiedostosta"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "käännä binääripaketti lähdepaketista"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<lähdepaketti>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr "käännä %install-osioon asti (%prep, %build ja %install) lähdepaketista"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "ohita käännösjuuri"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "hakemiston luonti epäonnistui"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "poista käännöspuu, kun valmis"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "jätä ExcludeArch-directiivit huomioimatta"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "älä suorita mitään käännöksen vaiheita"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "älä tarkista käännösriippuvuuksia"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "älä suorita mitään käännöksen vaiheita"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "poista lähdekoodit kun valmis"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "poista määrittelytiedosto kun valmis"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "siirry suoraan määriteltyyn vaiheeseen (vain c ja i yhteydessä)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "ohita kohdealusta"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Käännösvalitsimet:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Puuttuvia käännösriippuvuuksia:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "En voi avata spec-tiedostoa %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "tar-putken avaus epäonnistui: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "En voi avata spec-tiedostoa %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Spec-tiedoston avaaminen %s:sta epäonnistui\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Uudelleen nimeäminen %s -> %s epäonnistui: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "%s:n stat epäonnistui: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Tiedosto %s ole tavallinen tiedosto.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Tiedosto %s ei vaikuta spec-tiedostolta.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Käännetään kohdealustoille: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Käännetään kohteelle %s\n"
@@ -473,50 +519,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "ei annettu parametrejä"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "allekirjoita paketti (hylkää nykyinen allekirjoitus)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "poista paketin allekirjoitus"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "asenna paketteja"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Allekirjoitusvalitsimet:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "%s:ää ei voitu suorittaa: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Sinun pitää asettaa \"gpg_name:\" makrotiedostossasi\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Syötä salasana: "
-
-#: rpmsign.c:127
-#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Salasana täsmää.\n"
-
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix: voidaan käyttää vain uusia paketteja asennettaessa"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches: voidaan käyttää vain paketteja poistettaessa"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -533,7 +594,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "käytä seuraava kyselyformaattia"
@@ -633,201 +694,201 @@ msgstr "&& ja || ei tuettu merkkijoinoille\n"
msgid "syntax error in expression\n"
msgstr "syntaksivirhe lausekkeessa\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Puuttuva '(' %s %s:ssä\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "puuttuva ')' %s:(%s:ssä\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Virheellinen %s merkki: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Puuttuva %s %s %s:ssä\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Virheellinen syntaksi: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Virheellinen oikeusmäärittely %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Virheellinen hakemisto-oikeusmäärittely %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Tiedostojen täytyy alkaa \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Tiedosto lueteltu kahdesti: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symbolinen linkki osoittaa BuildRoot:iin: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Tiedostoa ei löytynyt: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: julkisen avaimen luku epäonnistui\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: ei ole panssaroitu julkinen avain.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Tiedosto tarvitsee aloitusmerkin \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Tiedostoa ei löytynyt täydennyksellä: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "%%files tiedostoa %s ei voitu avata: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "rivi: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Tiedostoa ei löytynyt täydennyksellä: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Virheellinen tiedosto: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Virheellinen omistaja/ryhmä: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Tarkistetaan paketoimattomia tiedostoja: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -836,17 +897,17 @@ msgstr ""
"Löytyi asennettuja (mutta paketoimattomia) tiedostoja:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Käsitellään tiedostoja: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -865,89 +926,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: rivi: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Allekirjoitusotsikon uudelleenlataus ei onnistu\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Tuntematon kuorman pakkaus: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "%s:aa ei voitu avata: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Pakettia ei voitu kirjoittaa: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Tilapäisotsikon kirjoitus ei onnistu\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "%%files tiedostoa %s ei voitu avata: %m\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Tiedoston luku epäonnistui: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Kirjoitettiin: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Suoritetaan \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "%s:n suoritus epäonnistui.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Paketin tarkistus \"%s\" epäonnistui.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Tiedostonimen muodostus paketille %s ei onnistu: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "%s:n luonti ei onnistu: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "rivi %d: toinen %s\n"
@@ -998,19 +1060,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "rivi %d: virhe jäsennettäessä %%description-osiota %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "rivi %d: virheellinen valinta %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "rivi %d: liikaa nimiä: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "line %d: pakettia ei ole olemassa: %s\n"
@@ -1065,142 +1127,147 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Arkkitehtuuri on poissuljettu: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Arkkitehtuuri ei ole mukaanluettu: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "Käyttöjärjestelmä on poissuljettu: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "Käyttöjärjestelmä ei ole mukaanluettu: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "kenttä %s on vaadittu kenttä paketissa: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Useita %s-merkintöjä paketissa: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Ikonia %s ei voida avata: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Ikonia %s ei voida lukea: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Tuntematon ikonityyppi: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "rivi %d: laiton merkki '%c' %s:ssä\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "rivi %d: laiton merkki %s:ssä\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "rivi %d: laiton merkkijono \"..\" %s:ssä\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "rivi %d: toinen %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: rivi: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "rivi %d: Epoch-kentän täytyy olla etumerkitön numero: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "rivi %d: virheellinen käännösarkkitehtuurin muoto: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Virheellinen pakettimäärittely: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Paketti on jo olemassa: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "rivi %d: tuntematon nimiö: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} ei voi olla tyhjä\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} ei voi olla \"/\"\n"
@@ -1210,161 +1277,193 @@ msgstr "%%{buildroot} ei voi olla \"/\"\n"
msgid "Bad source: %s: %s\n"
msgstr "Virheellinen lähde: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Ei patchia numero %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Ei lähdettä numero %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Virhe jäsennettäessä %%setup-osiota: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "rivi %d: virheellinen argumentti %%setup:ille: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "rivi %d: virheellinen %%setup valitsin %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Virheellinen patch-numero %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "rivi %d: toinen %%prep-osio\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "rivi %d: laukaisimissa pitää olla --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "rivi %d: virhe jäsennettäessä %s:ää: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "rivi %d: sisäisen skriptin täytyy päättyä '>':n: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "rivi %d: skriptitulkin täytyy alkaa '/':lla: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "rivi %d: toinen %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "rivi %d: %s:\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Ei voi avata %s:ää: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: %%else ilman %%if:iä\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%endif ilman %%if:iä\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Ei yhteensopivia arkkitehtureeja käännökselle\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Paketissa ei ole %%description-osiota: %s\n"
@@ -1435,287 +1534,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Ei voitu luoda putkea %s:lle: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Ei voitu suorittaa %s:ää: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Ei voitu suorittaa %s:ää: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) epäonnistui: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load epäonnistui: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Tiedoston \"%s\" tunnistaminen epäonnistui: moodi %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Etsitään %s:ää: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "%s:ää ei löytynyt\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "määrittelytiedoston %s kysely epäonnistui\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s on Delta RPM eikä sitä voida suoraan asentaa\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Tuntematon kuorma (%s) paketissa %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "paketti %s on jo lisätty, ohitetaan %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "paketti %s oli jo lisätty, korvataan %s:lla\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(ei ole luku)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(ei ole base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(virheellinen tyyppi)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(ei ole binääridataa)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(virheellinen xml-tyyppi)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(ei ole OpenPGP-allekirjoitus)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normaali"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "korvattu"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "ei asennettu"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "verkkojaettu"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "väärä väri"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(tuntematon)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(ei ole merkkijono)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s talletettiin %s:nä\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s luotu %s:na\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1936,7 +2024,7 @@ msgstr "päivitä tietokanta, mutta älä muuta tiedostojärjestelmää"
msgid "do not verify package dependencies"
msgstr "älä tarkista paketin riippuvuuksia"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "älä tarkista tiedostojen tarkistussummia"
@@ -2058,162 +2146,182 @@ msgstr "päivitä paketteja"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "kysele/tarkista kaikki paketit"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "rpm allekirjoituksen tarkistustila"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "kysele/tarkista pakettia, jonka omistuksessa <tiedosto> on"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "kysele/tarkista paketteja ryhmässä"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "kysele/tarkista pakettitiedostoa"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm kyselytila"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm tarkistustila"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "kysele/tarkista paketteja, jotka vaativat ominaisuutta"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "kysele/tarkista paketteja, jotka tarjoavat ominaisuuden"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "kysele/tarkista paketteja, jotka vaativat ominaisuutta"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "kysele/tarkista paketteja, jotka vaativat ominaisuutta"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "kysele/tarkista paketteja, jotka vaativat ominaisuutta"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "kysele/tarkista paketteja, jotka vaativat ominaisuutta"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "luettele kaikki konfiguraatiotiedostot"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "luettele kaikki dokumentaatiotiedostot"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "luettele paketin tiedostot"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "ohita %%ghost tiedostot"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "näytä lueteltujen tiedostojen tilat"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "älä tarkista tiedostojen kokoa"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "älä tarkista tiedostojen symbolisen linkin polkua"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "älä tarkista tiedostojen omistajaa"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "älä tarkista tiedostojen ryhmää"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "älä tarkista tiedostojen muutosaikaa"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "älä tarkista tiedostojen oikeuksia"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "älä tarkista paketin tiedostoja"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "älä tarkista paketin riippuvuuksia"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "älä suorita tarkistusskriptejä"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "arkiston %s%s purkaminen epäonnistui: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " tiedostolle "
@@ -2288,96 +2396,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr "mikään paketti ei tarvitse %s:a\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "mikään paketti ei tarvitse %s:a\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "mikään paketti ei laukaise %s:a\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "mikään paketti ei tarvitse %s:a\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "mikään paketti ei tarvitse %s:a\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "mikään paketti ei tarjoa %s:a\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "tiedosto %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "tiedostoa %s ei omista mikään paketti\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "virheellinen paketin numero: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "tietuetta %u ei voitu lukea\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "paketti %s ei ole asennettu\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "tuntematon nimiö: \"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Tiedoston luku epäonnistui: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "EI OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr ""
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr "(PUUTTUVIA AVAIMIA:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ""
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (EPÄLUOTETTAVIA AVAIMIA:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ""
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: avaus epäonnistui: %s\n"
@@ -2402,144 +2530,192 @@ msgstr "Juurihakemiston vaihto ei onnistu: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Juurihakemiston palautus ei onnistu: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "EI "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "KYLLÄ "
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "älä tarkista paketin riippuvuuksia"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Päättämätön %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "käyttäjää %s ei ole olemassa, käytetään käyttäjää root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "ryhmää %s ei ole olemassa, käytetään ryhmää root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Virheellinen otsikkotieto"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Otsikkotieto liian suuri"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Tuntematon tiedostotyyppi"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Tarkistussumma ei täsmää"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Sisäinen virhe"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " epäonnistui - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "%s:n avaus ei onnistunut: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: ei ole rpm paketti (tai pakettilista)\n"
@@ -2571,42 +2747,42 @@ msgstr "Puuttuvia riippuvuuksia:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: ei ole rpm paketti (tai pakettilista): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s:ää ei voida asentaa\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Haetaan %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "ohitetaan %s - siirto epäonnistui\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "paketti %s ei ole uudelleensijoitettava\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "virhe luettaessa tiedostosta %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" määrittää useita paketteja:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "virhe: en voi avata %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Asennetaan %s\n"
@@ -2632,12 +2808,12 @@ msgstr "luku epäonnistui: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "ei ole RPM paketti\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "%s-lukon luonti %s:een ei onnistu (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "odotetaan %s-lukkoa %s\n"
@@ -2797,60 +2973,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr ""
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Tuntematon järjestelmä: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Ota yhteyttä %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "En voi avata %s luettavaksi: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Ei voitu luoda tilapäistiedostoa %s:lle: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Ikonia %s ei voida lukea: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Juurihakemiston palautus ei onnistu: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite epäonnistui: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s scripti epäonnistui, waitpid(%d) palautti %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s skripti epäonnistui, signaali %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s skripti epäonnistui, palautti %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Tuntematon formaatti"
@@ -2862,127 +3057,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "Pakettitietokantaa %s ei voida avata\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: julkisen avaimen luku epäonnistui.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(ei ole OpenPGP-allekirjoitus)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Allekirjoitusotsikon uudelleenlataus ei onnistu\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Otsikko "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Otsikko "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "epäonnistui"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "puuttuva %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Tyydyttämättömiä riippuvuuksia %s:lle:\n"
@@ -3056,241 +3270,241 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "dbpath ei ole asetettu\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: ohitetaan"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "virhe(%d) tallennettaessa tietuetta #%d %s:ään\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec epäonnistui: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp epäonnistui: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: ohitetaan"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: ohitetaan vioittunut otsikkotietue #%u.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: otsikkoa ei voida lukea (0x%x)\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "dbpath ei ole asetettu"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "hakemiston %s luonti epäonnistui: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "tietue numero %u tietokannassa viallinen -- ohitetaan.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "alkupäisen tietueen %u lisäys ei onnistu\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"tietokannan uudelleenrakennus epäonnistui: alkuperäinen kanta paikallaan\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "vanhan tietokannan korvaus uudella epäonnistui!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "korvaa tiedostot %s:ssä tiedostoilla %s:stä korjataksesi"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "hakemiston %s poisto epäonnistui: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr ""
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "en saa %s lukitusta tietokantaan %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "jaettua"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "poissulkevaa"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "virhe(%d) tallennettaessa tietuetta %s %s:ään\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "virhe(%d) poistettaessa tietuetta %s %s:stä\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "virhe(%d) lisättäessä otsikkon #%d tietuetta\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "virhe(%d) poistettaessa otsikon #%d tietuetta\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "virhe(%d) varattaessa uutta paketti-instanssia\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(tyhjä)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(tyhjä)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Makrossa %%%s on päättämättömiä valitsimia\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Makrossa %%%s on päättämätön runko\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Makron %%%s nimi on laiton (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Makron %%%s runko on tyhjä\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Makron %%%s laajennos ei onnistunut\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Makron %%%s nimi on laiton (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Tuntematon valitsin %c %s(%s):ssä\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Päättämätön %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "%% seuraa makro jota ei voida jäsentää\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktiivisia %d tyhjiä %d\n"
@@ -3310,31 +3524,31 @@ msgstr "Tiedosto %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "hakemiston luonti epäonnistui"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "virheellinen syntaksi lua-skriptissä: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "virheellinen syntaksi lua-skriptissä: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua-skripti epäonnistui: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "virheellinen syntaksi lua-tiedostossa: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua-koukku epäonnistui: %s\n"
@@ -3343,19 +3557,19 @@ msgstr "lua-koukku epäonnistui: %s\n"
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(ei virhettä)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "vakava virhe: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "virhe: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "varoitus: "
@@ -3364,101 +3578,159 @@ msgstr "varoitus: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "muistin varaus (%u tavua) palautti NULL:in.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(ei mitään)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "virhe luotaessa tilapäistä tiedostoa %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "virhe luotaessa tilapäistä tiedostoa %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "virhe luotaessa tilapäistä tiedostoa %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "hakemiston %s luonti epäonnistui: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite epäonnistui: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush epäonnistui: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr ""
+msgid "Could not exec %s: %s\n"
+msgstr "%s:ää ei voitu suorittaa: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: avaus epäonnistui: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "%s:ää ei voitu suorittaa: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "%%files tiedostoa %s ei voitu avata: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg:n suoritus epäonnistui (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg ei voinut kirjoittaa allekirjoitusta\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "en voinut lukea allekirjoitusta\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature epäonnistui: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature epäonnistui: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "suoritus epäonnistui\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp epäonnistui\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "suoritus epäonnistui\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "suoritus epäonnistui\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature epäonnistui: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature epäonnistui: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp epäonnistui\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead epäonnistui: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3472,17 +3744,14 @@ msgstr "%s: pakettilistan luku epäonnistui: %s\n"
msgid "don't verify header+payload signature"
msgstr "älä tarkista otsikon ja kuorman allekirjoitusta"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Kuorman kirjoitus %s:ään ei onnistu: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Kuorman luku %s:stä ei onnistu: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Syötä salasana: "
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "En voi avata väliaikaistiedostoa.\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Salasana täsmää.\n"
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Otsikkotiedon lukeminen %s:stä epäonnistui: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Virheellinen omistaja/ryhmä: %s\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Otsikkotiedon kirjoittaminen %s:n epäonnistui: %s\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "rivi %d: laiton merkki %s:ssä\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index d3b5399e..16173823 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index b4cf3cbc..f76fe7d6 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,16 +4,15 @@
#
# Translators:
# Jérôme Fenal <jfenal@gmail.com>, 2013
-# Mathieu LEFEBVRE Mathdabomb <mathdabomb@gmail.com>, 2011-2012
+# Mathieu LEFEBVRE Mathdabomb <mathdabomb@gmail.com>, 2011-2012,2015
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
-"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: French (http://www.transifex.com/projects/p/rpm/language/"
-"fr/)\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-07-05 17:54+0000\n"
+"Last-Translator: Mathieu LEFEBVRE Mathdabomb <mathdabomb@gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/rpm-team/rpm/language/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -84,8 +83,8 @@ msgstr "Options de vérifications (avec -V ou --verify) :"
msgid "Install/Upgrade/Erase options:"
msgstr "Options d'installation/désinstallation/mise à jour :"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Options communes à tous les modes et exécutables rpm :"
@@ -105,7 +104,7 @@ msgstr "format de requête inattendu"
msgid "unexpected query source"
msgstr "source de requête inattendue"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "un seul mode majeur peut être spécifié"
@@ -220,7 +219,7 @@ msgid "--test may only be specified during package installation and erasure"
msgstr ""
"--test ne peut être utilisé qu'à l'installation/la désinstallation de paquet"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "les arguments ed --root (-r) doivent commencer par un /"
@@ -240,219 +239,270 @@ msgstr "aucun argument fournit à la requête"
msgid "no arguments given for verify"
msgstr "aucun argument fournit à la vérification"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot déjà spécifié, %s ignoré\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"construction jusqu'à la section %prep (déballage des sources et applications "
"des patchs) du <fichier_spec>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<fichier_spec>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
"construction jusqu'à la section %build (%prep, et compilation) du "
"<fichier_spec>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"construction jusqu'à la section %install (%prep, %build, et installation) du "
"<fichier_spec>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "vérifier la section %files du <fichier_spec>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "construire les paquet sources et binaires à partir du <fichier_spec>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "construction du paquet binaire seulement à partir du <fichier_spec>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "construction du paquet source seulement à partir du <fichier_spec>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"construction jusqu'à la section %prep (déballage des sources et applications "
+"des patchs) du <fichier_spec>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<paquet source>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+"construction jusqu'à la section %build (%prep, et compilation) du "
+"<fichier_spec>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"construire jusqu'à la section %install (%prep, %build, et installation) à "
+"partir du <paquet source>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "vérifier la section %files du <fichier_spec>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "construire le paquet binaire à partir du <paquet source>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "construire le paquet binaire à partir du <paquet source>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "construction du paquet source seulement à partir du <fichier_spec>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"construire jusqu'à la section %prep (déballage des sources et application "
"des patchs) à partir du <tarball>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
"construire jusqu'à la section %build (%prep, puis compilation) à partir du "
"<tarball>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"construire jusqu'à la section %build (%prep, %build, puis installation) à "
"partir du <tarball>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "vérifier la section %files à partir du <tarball>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "construire les paquet source et binaire à partir du <tarball>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "construire seulement le paquet binaire à partir du <tarball>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "construire seulement le paquet source à partir du <tarball>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "construire le paquet binaire à partir du <paquet source>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<paquet source>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"construire jusqu'à la section %install (%prep, %build, et installation) à "
-"partir du <paquet source>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "surcharger le buildroot"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Impossible d'ouvrir le répertoire courant : %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "effacer l'arborescence de construction une fois terminé"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignorer les directives ExcludeArch: du fichier spec"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "déboguer la machine à états de fichiers (déballage)"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "n'exécuter aucune étape de la construction"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "ne pas vérifier les dépendances de construction"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
"générer un(des) entête(s) de paquet compatible(s) avec l'empaquetage rpm v3 "
"(hérité)"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "ne pas exécuter l'étape %clean de la construction"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "ne pas exécuter l'étape %clean de la construction"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "ne pas exécuter l'étape %check de la construction"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "ne pas accepter les msgstr de l'i18n du specfile"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "effacer les sources une fois terminé"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "effacer le fichier spec une fois terminé"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "aller directement à l'étape spécifiée (seulement pour c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "surcharger la plate-forme cible"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"Options de construction avec [ <fichier_spec> | <tarball> | <paquet "
"source> ] :"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Dépendances de construction manquantes:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Impossible d'ouvrir le fichier spec %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Impossible d'ouvrir le pipe de tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Plus d'un fichier sur la ligne : %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Impossible de lire le fichier spec à %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Impossible de renommer %s en %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "échec de stat sur %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Fichier %s non régulier.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Le fichier %s ne semble pas être un fichier spec.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Construction pour plate-formes cibles: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Construction pour cible %s\n"
@@ -503,51 +553,66 @@ msgstr "listes les clés du trousseau RPM"
msgid "Keyring options:"
msgstr "Options du trousseau :"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "aucun argument fournit"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "signer le(s) paquet(s)"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "signer le(s) paquet(s) (identique à --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "supprimer les signatures de paquets"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "signer le(s) paquet(s)"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Options de signatures :"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Impossible d'exécuter %s : %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
"Vous devez affecter une valeur à \"%%_gpg_name\" dans votre fichier de "
"macros\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Entrez la phrase de passe : "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Phrase de passe bonne.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "Échec du mot de passe ou clé GPG expirée\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix ne peut être utilisé qu'à l'installation de nouveaux paquets"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches ne peut être utilisé qu'à la désinstallation de paquet"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -565,7 +630,7 @@ msgstr "opérer sur le(s) rpm(s) binaire(s) généré(s) par spec (défaut)"
msgid "operate on source rpm generated by spec"
msgstr "opérer sur le rpm source généré par spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "utiliser le format de requête suivant"
@@ -666,201 +731,201 @@ msgstr "&& et || ne sont pas prix en charge sur des chaînes de caractères\n"
msgid "syntax error in expression\n"
msgstr "erreur de syntaxe dans l'expression\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "'(' manquante dans %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "')' manquante dans %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Lexème %s invalide : %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "%s manquant(e) dans %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "espace non-blanc suivant %s() : %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Mauvaise syntaxe : %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Mauvais mode spec : %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Mauvais dirmode spec : %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "Mauvaise longueur de la locale : « %s » dans %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Deux fois la même locale %s dans %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Capacité invalide : %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Support de capacité du fichier non intégré\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Le fichier doit commencer par « / » : %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Algorithme %u du fichier de digest inconnu, recourt à MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Fichier listé deux fois : %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "la lecture du symlink %s a échouée : %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Lien symbolique pointant sur BuildRoot : %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Répertoire introuvable : %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Fichier non trouvé : %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
-msgstr ""
+msgstr "Pas de répertoire: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s : ne peut pas charger le tag (%d) inconnu.\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s : échec de la lecture de la clé publique.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s : n'est pas une clé publique blindée.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s : échec de l'encodage.\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Le fichier non précédé d'un \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "globale %%dev non autorisée : %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "Répertoire introuvable par glob : %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Fichier non trouvé par la substitution : %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Impossible d'ouvrir le fichier %%files %s : %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "Ligne : %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Erreur de lecture du fichiers %%files %s : %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "illegal _docdir_fmt %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Fichier non trouvé par la substitution : %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "Impossible de mélanger un %s spécial avec d'autres formes : %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Plus d'un fichier sur la ligne : %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Mauvais fichier : %s : %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Mauvais possesseur/groupe : %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Vérification des fichiers non empaquetés : %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -869,18 +934,18 @@ msgstr ""
"Fichier(s) installé(s) (mais non empaquetés) :\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Traitement des fichiers : %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
"L'architecture de binaire (%d) ne correspond pas à celle du paquet (%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Binaires dépendants d'une arch dans un paquet noarch\n"
@@ -899,89 +964,90 @@ msgstr "échec de la création de l'archive : %s\n"
msgid "Could not open %s file: %s\n"
msgstr "Impossible d'ouvrir le fichier %s : %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s : ligne : %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Ne peut canoniser le nom d'hôte : %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Impossible de recharger l'entête de la signature.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Compression de charge inconnue : %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Impossible de créer la partie immuable de l'entête.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Impossible d'ouvrir %s : %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Impossible d'écrire le paquet : %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Impossible d'écrire un entête temporaire\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Mauvaises données CSA\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Impossible d'ouvrir le fichier %s : %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "échec de la création de l'archive dans le fichier %s : %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Écrit : %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Exécution_de « %s » :\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "L'exécution de « %s » a échouée.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "La vérification du paquet « %s » a échouée.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Ne peut générer le nom de fichier pour le paquet %s : %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "Ne peut créer %s : %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "ligne %d : deuxième %s\n"
@@ -1032,19 +1098,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "ligne %d : erreur dans l'analyse syntaxique de la %%description : %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "ligne %d : mauvaise option %s : %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "ligne %d : trop de noms : %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "ligne %d : paquet inexistant : %s\n"
@@ -1099,142 +1165,147 @@ msgstr "Téléchargement de %s à %s\n"
msgid "Couldn't download %s\n"
msgstr "Impossible de télécharger %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Architecture exclue : %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Architecture non incluse : %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS exclus : %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS non inclus : %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "Le champ %s doit être présent dans le paquet : %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Entrée dupliquée %s dans le paquet : %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Impossible d'ouvrir l'icône %s : %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Impossible de lire l'icône %s : %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Type d'icône inconnu : %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "ligne %d : le tag n'accepte qu'un seul lexème : %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "ligne %d : caractère '%c' illégal dans : %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "ligne %d : caractère illégal dans : %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "ligne %d : séquence illégale « .. » dans : %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "ligne %d : %s : %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s : ligne : %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "ligne %d : tag mal formé : %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "ligne %d : tag vide : %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "ligne %d : les préfixes ne doivent pas finir par un « / » : %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "ligne %d : le docdir doit commencer par un « / » : %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "ligne %d : le champ Epoch doit être un nombre : %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "ligne %d : mauvais %s : qualificatifs : %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "ligne %d : mauvais format pour BuildArchitecture : %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "ligne %d seuls les sous-paquets noarch sont pris en charge : %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Erreur interne : tag bidon %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "ligne %d : %s est obsolète : %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Mauvaise spécification de paquet : %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Paquet déjà existant : %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "ligne %d : tag inconnu : %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} ne peux pas être vide\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} ne peut pas être « / »\n"
@@ -1244,164 +1315,197 @@ msgstr "%%{buildroot} ne peut pas être « / »\n"
msgid "Bad source: %s: %s\n"
msgstr "Mauvaise source : %s : %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Pas de numéro de patch %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch sans correspondance avec le tag « Patch : »\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Pas de numéro de source %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Pas de tag « Source: » dans le fichier spec\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Erreur d'analyse syntaxique du %%setup : %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "ligne %d : mauvais argument à %%setup : %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "ligne %d : mauvaise option à %%setup %s : %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s : %s : %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Numéro du patch invalide %s :%s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "ligne %d : deuxième %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
"Les jetons de dépendance doivent commencer par un caractère alpha-numérique, "
"'_' ou '/'"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "Nom de version de fichier non autorisé"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Version requise"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "dépendance invalide"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Version requise"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "ligne %d : %s : %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "ligne %d : les triggers doivent avoir -- : %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "ligne %d : erreur d'analyse syntaxique %s : %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "ligne %d : le script interne doit se terminer par '>' : %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "ligne %d : le nom du script doit commencer par un '/' : %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+"ligne %d : arguments interprète non autorisé dans les déclencheurs : %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "ligne %d : deuxième %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "ligne %d : script interne non pris en charge :%s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
"ligne %d : arguments interprète non autorisé dans les déclencheurs : %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "ligne %d : %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Impossible d'ouvrir %s : %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s :%d : argument attendu pour %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "ligne %d : %%if non terminé\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "ligne %d : macro non fermée ou mauvaise continuation de ligne\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s : %d : mauvaise condition %%if\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s : %d : j'ai là un %%else sans %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s : %d : j'ai là un %%endif sans %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d: directive %%include mal-formée\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Pas d'architecture compatible pour construction\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Le paquet n'a pas de %%description : %s\n"
@@ -1475,289 +1579,278 @@ msgstr "Trop nombreux arguments en ligne : %s\n"
msgid "Processing policies: %s\n"
msgstr "Traitement de la stratégie : %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Ignorer l'expression régulière %s invalide\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Impossible de créer le pipe pour %s : %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Impossible d'exécuter %s : %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Impossible de forker %s : %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s a échoué : %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "échec de l'écriture de toutes les données de %s : %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
-msgstr ""
+msgstr "mauvais opérateur"
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
-msgstr ""
+msgstr "mauvais format"
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "La conversion de %s vers un entier long a échoué.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "Classificateur de fichier vide\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Aucun fichier attributs configurés\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) a échoué : %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load a échoué : %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "La reconnaissance du fichier « %s » a échoué : mode %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Trouver %s : %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Impossible de trouver %s :\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
"échec de la requête sur le fichier spec %s, impossible de faire l'analyser "
"syntaxique\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s est un Delta RPM et ne peut être installé directement\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Charge (%s) non pris en charge dans le paquet %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "le paquet %s a déjà été rajouté, %s ignoré\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "le paquet %s a déjà été rajouté, replacé par %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(n'est pas un nombre)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(pas base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(type invalide)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(pas un blob ça)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(type xml invalide)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(pas une signature OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Date invalide %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normal"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "remplacé"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "pas installé"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "sur le réseau"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "fausse couleur"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "manquant"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(inconnu)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(pas une chaîne)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s sauvé en tant que %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s créé en tant que %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s : échec de la suppression : %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "répertoire"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "fichier"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1782,7 +1875,7 @@ msgstr ""
#: lib/poptALL.c:182
msgid "MACRO"
-msgstr ""
+msgstr "MACRO"
#: lib/poptALL.c:184
msgid "print macro expansion of EXPR"
@@ -1802,7 +1895,7 @@ msgstr "<FICHIER:...>"
#: lib/poptALL.c:193
msgid "don't enable any plugins"
-msgstr ""
+msgstr "n'autoriser aucun plugin"
#: lib/poptALL.c:196
msgid "don't verify package digest(s)"
@@ -1981,7 +2074,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr "ne pas vérifier les dépendances du paquet"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "ne pas vérifier les sommes de hachage des fichiers"
@@ -2103,167 +2196,187 @@ msgstr "mises à jour des paquets"
#: lib/poptI.c:254
msgid "reinstall package(s)"
-msgstr ""
+msgstr "réinstaller le(s) paquet(s)"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "vérifier/demander à tous les paquets"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "mode rpm vérifsign"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "vérifier/demander un paquet possèdant un fichier"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "vérifier/questionner le(s) paquet(s) d'un même groupe"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "vérifier/questionner un fichier paquet"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "questionner/vérifier le(s) paquet(s) grâce à un identifieur de paquet"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
"questionner/vérifier le(s) paquet(s) grâce à un identificateur d'entête"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "mode de requête de rpm"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "questionner/vérifier une instance d'entête"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
"questionner/vérifier le(s) paquet(s) à partir de la transaction "
"d'installation"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "questionner le(s) paquet(s) surveillé(s) par le paquet"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "mode de vérification de rpm"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "vérifier/demander le(s) paquet(s) qui requier(en)t une dépendance"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "vérifier/demander le(s) paquet(s) qui fourni(ssen)t une dépendance"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "vérifier/demander le(s) paquet(s) qui requier(en)t une dépendance"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "vérifier/demander le(s) paquet(s) qui requier(en)t une dépendance"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "vérifier/demander le(s) paquet(s) qui requier(en)t une dépendance"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "vérifier/demander le(s) paquet(s) qui requier(en)t une dépendance"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "Ne pas passer des arguments"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "ne traite pas les fichiers non-paquet comme manifestes"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "lister les fichiers de configuration"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "lister les fichiers documents"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
-msgstr ""
+msgstr "lister les fichiers de license"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "débite les informations de base des fichiers"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "lister les fichiers du paquet"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "éviter les fichiers fantômes %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "affiche la liste des fichiers et leur état"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "ne pas vérifier la taille des fichiers"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "ne pas vérifier le chemin du lien symbolique des fichiers"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "ne pas vérifier le possesseur des fichiers"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "ne pas vérifier le groupe possesseur des fichiers"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "ne pas vérifier les dates de modification des fichiers"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "ne pas vérifier les permissions des fichiers"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "ne pas vérifier les capacités des fichiers"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "ne pas vérifier la sécurité des fichiers"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "ne pas vérifier les fichiers du paquet"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "ne pas vérifier les dépendances du paquet"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "ne pas exécuter le(s) script(s) de vérification"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Éléments rpmlib manquants pour %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "paquet source attendu, paquet binaire trouvé\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "le paquet source ne contient pas de fichier .spec\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "échec du déballage de l'archive %s%s : %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " dans fichier "
@@ -2339,97 +2452,117 @@ msgstr "aucun paquet ne correspond à %s : %s\n"
msgid "no package requires %s\n"
msgstr "aucun paquet ne requiert %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "aucun paquet ne requiert %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "aucun paquet ne surveille %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "aucun paquet ne requiert %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "aucun paquet ne requiert %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "aucun paquet ne fournit %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "fichier %s : %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "le fichier %s n'appartient à aucun paquet\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "numéro de paquet invalide : %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "l'enregistrement %u n'a pas pu être lu\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "le paquet %s n'est pas installé\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "tag inconnu: « %s »\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s : importation de la clé %d échouée.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s : la clés %d n'est pas une clé publique blindée.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s : l'importation de lecture a échoué (%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s : échec de headerRead %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s : la région d'en-tête immuable ne peut pas être lu. Paquet corrompu ?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s : Fread a échoué : %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "PAS OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (CLES MANQUANTES :"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (CLES NONCREDIBLE :"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s : échec de l'ouverture : %s\n"
@@ -2454,152 +2587,203 @@ msgstr "Impossible de changer le répertoire racine : %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Impossible de restaurer le répertoire racine : %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NON"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "OUI"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
"Les dépendances de type PreReq:, Provides: et Obsoletes: supportent les "
"versions."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"Le(s) nom(s) de fichier sont stockés en tant que triplets (NomRep,NomFich,"
"IndexRep), pas en tant que chemin."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "La charge du paquet est compressée avec bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "La charge du paquet est compressée avec xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "La charge du paquet est compressée avec lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
"le(s) fichier(s) de la charge utile du paquet ont « ./ » comme préfixe."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "le nom-version-révision du paquet n'est pas implicitement fourni."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "les tags d'entête sont toujours triés après avoir été chargés."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
"l'interprète du scriptlet peut utiliser des arguments à partir des entêtes."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "un lien en dur pourrait être installé sans être complet."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"les scriptlets du paquet pourrait accéder à la base de données rpm pendant "
"l'installation."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "prise en charge interne pour les scripts LUA."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "l'algorithme de hachage de fichier est configurable par paquet"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "prise en charge des capacités du fichier POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "les scriptlets du paquet peut être étendu lors de l'installation."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "la comparaison de dépendances prend en charge les versions avec tilde."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
+msgstr "supporte les fichiers supérieurs à 4GB"
+
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "ne pas vérifier les dépendances du paquet"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Version requise"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "dépendance invalide"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "%c non terminé: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "dépendance invalide"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "utilisateur %s inexistant - utilisation de root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "groupe %s inexistant - utilisation de root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Mauvaise magie, blah"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Entête mauvais ou illisible"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Entête trop gros"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "Fichier trop grand pour l'archive"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Type de fichier inconnu"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
-msgstr ""
+msgstr "Fichier(s) manquant(s)"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Digest ne correspond pas"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Erreur interne"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "L'entête ne contient pas le fichier archive"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " échec - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
-msgstr ""
+msgstr "%s: (erreur 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "échec de l'ouverture de %s: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2633,42 +2817,42 @@ msgstr "Dépendances requises:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s : n'est pas un paquet rpm (ni une liste de paquet) : %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s ne peut être installé\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Récupération de %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "%s ignoré - échec du transfert\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "le paquet %s n'est pas localisable\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "erreur en lisant %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "« %s » spécifie plusieurs paquets\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "impossible d'ouvrir %s : %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Installation de %s\n"
@@ -2694,12 +2878,12 @@ msgstr "échec de lecture : %s (%d)\n"
msgid "not an rpm package\n"
msgstr "pas un paquet rpm\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "Impossible de créer %s verrou sur %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "attente pour %s verrou sur %s\n"
@@ -2715,9 +2899,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Impossible de résoudre le symbole %s : %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Plugin %s non chargé\n"
+msgstr "Plugin %%__%s_%s non configuré\n"
#: lib/rpmplugins.c:199
#, c-format
@@ -2864,62 +3048,81 @@ msgstr "architecture manquante pour %s à %s : %d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "mauvaise option '%s' à %s : %d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "Échec de la lecture du vecteur auxiliaire, /proc est-il monté ?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "système inconnu : %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Contactez %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
"Impossible d'ouvrir %s en lecture : %m.\n"
"\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "Impossible de restaurer le répertoire courant : %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "le support du scriptlet <lua> n'est pas intégrer\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Impossible de créer de fichier temporaire pour %s : %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Impossible de dupliquer le descripteur de fichier : %s : %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Impossible de lire l'icône %s : %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Impossible de restaurer le répertoire racine : %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s : échec de Fwrite : %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "scriptlet %s échoué, waitpid(%d) rc %d : %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "scriptlet %s échoué, signal %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s scriptlet échoué, état de sortie %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Format inconnu"
@@ -2931,127 +3134,146 @@ msgstr "installer"
msgid "erase"
msgstr "effacer"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "impossible d'ouvrir la base de données paquet dans %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "'(' supplémentaire dans le label du paquet : %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "'(' manquante dans le label du paquet : %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "')' manquante dans le label du paquet : %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: la lecture de la clé publique a échoué.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "transaction"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(pas une signature OpenPGP)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Impossible de recharger l'entête de la signature.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Entête "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 :"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Hachage de l'entête SHA1 :"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Entête "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
-msgstr ""
+msgstr "Vérification de signature: MAUVAIS PARAMETRES (%d %p %d %p %p)"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "sauté"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "échoué"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
-msgstr ""
+msgstr "pas d'état"
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
-msgstr ""
+msgstr "état inconnu"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "manque %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Dépendances non satisfaites pour %s :\n"
@@ -3125,223 +3347,223 @@ msgstr "itérateur de tableau utilisé avec des tableaux de tailles différentes
msgid "Generating %d missing index(es), please wait...\n"
msgstr "Génération d'index manquant(s) %d, merci d'attendre...\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
-msgstr ""
+msgstr "impossible d'ouvrir l'index %s en utilisant %s - %s (%d)\n"
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "aucun dbpath n'a été fourni\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader : ignoré"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "erreur(%d) en stockant l'article nº%d dans %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s : regexec a échoué :%s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s : regcomp a échoué :%s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator : ignoré"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb : l'entête #%u endommagée a été récupérée -- ignoré.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s : impossible de lire l'entête à 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "aucun dbpath fournit"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "Impossible de créer le répertoire %s : %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "l'entête #%u dans la base de données n'est pas bon -- ignoré.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "impossible d'ajouter l'article qui était au départ à %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"Ne peut reconstruire la base de données : la base originale reste telle "
"qu'elle est\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "Ne peut remplacer la vieille base de données par la nouvelle!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
"remplacer les fichiers dans %s avec les fichiers de %s pour faire une "
"récupération"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "Ne peut détruire le répertoire %s : %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
-msgstr ""
+msgstr "%s erreur(%d) de %s: %s\n"
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
-msgstr ""
+msgstr "%s erreur(%d): %s\n"
+
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "options de db inconnues : \"%s\" ignoré.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s est une valeur numérique invalide, ignoré\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s est une valeur 'long' trop petite ou trop grande, ignoré\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s est une valeur entière trop petite ou trop grande, ignoré\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "impossible d'avoir le verrou %s sur %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "partagé"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "exclusif"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "type d'index %x invalide sur %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "erreur(%d) en attrapant les articles « %s » de l'index %s : %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "erreur(%d) en stockant l'article « %s » dans %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "erreur(%d) en enlevant l'article « %s » de %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "Erreur(%d) ajout de l'enregistrement de l'en-tête #%d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "Erreur (%d) suppression de l'enregistrement de l'en-tête #%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "erreur(%d) en allouant une nouvelle instance de paquet\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "options de db inconnues : \"%s\" ignoré.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s est une valeur numérique invalide, ignoré\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s est une valeur 'long' trop petite ou trop grande, ignoré\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s est une valeur entière trop petite ou trop grande, ignoré\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(vide)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(vide)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "La macro %%%s a des options non-terminées\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "La macro %%%s a un corps sans fin\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "La macro %%%s a un nom illégal (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "La macro %%%s a un corps vide\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
-msgstr ""
+msgstr "La macro %%%s a besoin d'un espace avant le corps\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "La macro %%%s ne peut être expansée\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "La macro %%%s a un nom illégal (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
-msgstr ""
+msgstr "Macro %%%s définie mais non utilisée sans portée\n"
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Option inconnue %c dans %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3349,22 +3571,22 @@ msgstr ""
"Trop de niveaux de récursivité dans l'expansion de la macro. Il est "
"probablement causée par une déclaration de macro récursive.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "%c non terminé: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Un %% est suivi d'une macro in-analysable\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
-msgstr ""
+msgstr "Impossible de charger le fichier macro %s"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== %d actif(s) %d vide(s)\n"
@@ -3384,31 +3606,31 @@ msgstr "Fichier %s : %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Le fichier %s est plus petit que %u octets\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "échec de création du répertoire"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "syntaxe invalide dans le scriptlet lua : %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "syntaxe invalide dans le script lua : %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "script lua échoué : %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "syntaxe invalide dans le fichier lua : %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "crochet lua échoué : %s\n"
@@ -3417,19 +3639,19 @@ msgstr "crochet lua échoué : %s\n"
msgid "[none]"
msgstr "[Aucun]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(pas d'erreur)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "erreur fatale : "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "erreur : "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "attention : "
@@ -3438,101 +3660,159 @@ msgstr "attention : "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "l'allocation de mémoire (%u octets) a retourné NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, clé ID %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(none)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "Erreur de création du fichier temporaire %s : %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "Erreur de création du fichier temporaire %s : %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "Erreur de création du fichier temporaire %s : %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "Impossible de créer le répertoire %s : %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s : échec de Fwrite : %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s : Fflush échoué : %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Signature PGP non supportée\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "Algorithme %u de hashage PGP non supporté\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "Algorithme %u clé publique PGP non supporté\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Impossible de créer le pipe pour la signature : %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Impossible d'exécuter %s : %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
-msgstr "%s : échec de l'ouverture : %s\n"
+msgid "Fopen failed\n"
+msgstr "fdopen échoué\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Impossible d'ouvrir le fichier %s : %s\n"
+msgstr "Impossible d'écrire dans le pipe\n"
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Impossible d'ouvrir le fichier %%files %s : %m\n"
+msgstr "Impossible de lire le fichier %s: %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg exec échoué (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "échec de gpg à écrire la signature\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "impossible de lire la signature\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s : échec de rpmWriteSignature : %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s : échec de rpmReadSignature : %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s : échec de headerRead %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp échoué\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "fdopen échoué\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s : échec de headerRead %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s contient déjà une signature identique, ignoré\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s : échec de rpmReadSignature : %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "Ne peut signer les paquets RPM v3\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s contient déjà une signature identique, ignoré\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s : échec de rpmWriteSignature : %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp échoué\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s : échec de writeLead : %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "remplacer %s à échouer : %s\n"
@@ -3546,85 +3826,23 @@ msgstr "%s : échec de la lecture de la liste de paquetages : %s\n"
msgid "don't verify header+payload signature"
msgstr "ne pas vérifier la signature de l'entête+charge_utile"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Impossible d'écrire la charge utile dans %s : %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Impossible de lire la charge utile dans %s : %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Incapable d'ouvrir un fichier temporaire.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Impossible d'ouvrir sigtarget %s : %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Impossible de lire l'entête dans %s : %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Impossible d'écrire l'entête dans %s : %s\n"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "ne jamais effectuer de mesures de recouvrement"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr "La région d'entête immuable ne peut pas être lu. Paquet corrompu?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Échec de décodage de la stratégie pour %s\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Impossible de créer le fichier temporaire %s : %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Impossible d'écrire la stratégie %s dans le fichier %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Impossible de créer semanage handle\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Impossible de se connecter au gestionnaire de la stratégie\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Impossible de commencer la transaction de la stratégie : %s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr ""
-#~ "Échec de la suppression du fichier temporaire de la stratégie %s : %s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Impossible d'installer le module de stratégie :%s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Impossible de supprimer le module de stratégie :%s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Échec du fork du processus : %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Impossible d'exécuter %s : %s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s terminé anormalement\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "La conversion de %s vers un entier long a échoué.\n"
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s a échoué avec le code de sortie %i\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Entrez la phrase de passe : "
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Impossible de valider les changements de stratégie\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Phrase de passe bonne.\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Impossible d'étendre le chemin restorecon"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr "Échec du mot de passe ou clé GPG expirée\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Impossible de renommer les fichiers. Les fichiers peuvent être mal "
-#~ "étiqueté\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Mauvais possesseur/groupe : %s\n"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Impossible de recharger les contextes de fichiers. Les fichiers peuvent "
-#~ "être mal étiquetés\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "ligne %d : caractère illégal dans : %s\n"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Impossible d'extraire la stratégie depuis %s\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Impossible de créer le pipe pour la signature : %m"
diff --git a/po/is.gmo b/po/is.gmo
index 49ec67e7..7c9748ea 100644
--- a/po/is.gmo
+++ b/po/is.gmo
Binary files differ
diff --git a/po/is.po b/po/is.po
index 74321d83..11f9d918 100644
--- a/po/is.po
+++ b/po/is.po
@@ -7,16 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Icelandic (http://www.transifex.com/projects/p/rpm/language/"
+"Language-Team: Icelandic (http://www.transifex.com/rpm-team/rpm/language/"
"is/)\n"
"Language: is\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
#: cliutils.c:21 lib/poptI.c:29
#, c-format
@@ -80,8 +80,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -101,7 +101,7 @@ msgstr ""
msgid "unexpected query source"
msgstr ""
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr ""
@@ -201,7 +201,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -221,201 +221,243 @@ msgstr ""
msgid "no arguments given for verify"
msgstr ""
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot þegar skilgreind, hunsa %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr ""
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr ""
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "ekki yfirfara skrárnar í pakkanum"
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr ""
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr ""
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr ""
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, c-format
+msgid "do not execute %prep stage of the build"
+msgstr ""
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr ""
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr ""
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Get ekki opnað spec skrána %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Gat ekki opnað pípu í tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Get ekki opnað spec skrána %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Gat ekki lesið spec skrá frá %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Gat ekki endurnefnt %s sem %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "gat ekki skoðað %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Skráin %s er ekki venjuleg skrá.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Skráin %s virðist ekki vera specskrá.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Þýði fyrir markkerfi: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Þýði fyrir markkerfi %s\n"
@@ -464,48 +506,61 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "<pakkaskrá>+"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:39
+msgid "<key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
+#: rpmsign.c:47
+msgid "Signature options:"
msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
+
+#: rpmsign.c:82
+msgid "--fskpass may only be specified when signing files"
+msgstr ""
+
+#: rpmsign.c:126
+msgid "--fskpath may only be specified when signing files"
msgstr ""
#: rpmspec.c:26
@@ -524,7 +579,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -622,218 +677,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "vantar '(' í %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "vantar ')' í %s %s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Ógilt %s tákn: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Skráin er tvítekin: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Skráin fannst ekki: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Skráin fannst ekki með 'glob': %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "lína: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Skráin fannst ekki með 'glob': %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Ógild skrá %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr ""
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -852,89 +907,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
-#, c-format
-msgid "Could not canonicalize hostname: %s\n"
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
+#: build/pack.c:183
+#, c-format
+msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr ""
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Get ekki ritað í pakka: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Gat ekki keyrt %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "Ógild skrá %s: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Skrifaði: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr ""
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -985,19 +1041,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "lína %d: Óleyfilegur rofi %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1052,142 +1108,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Get ekki opnað táknmynd %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Gat ekki lesið táknmynd %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Óþekkt tegund táknmyndar: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "lína %d: Tag tekur einungis eitt tákn: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "lína %d: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "lína %d: Skemmt tag: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "lína %d: Tómt tag: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1197,161 +1257,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "Slæmt ílag: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "lína %d: Ógilt viðfang við %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "lína %d: Villa við þáttun %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "lína %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Get ekki opnað %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1422,287 +1514,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Gat ekki keyrt %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Gat ekki búið til undirferli (fork) %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "gat ekki fundið %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr ""
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s vistað sem %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s búið til sem %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1920,7 +2001,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr ""
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2040,162 +2121,182 @@ msgstr "uppfæra pakka"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "fyrirspurn/yfirferð á pakkann sam á skrá"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "fyrirspurn/yfirferð á pakkana sem hafa pakkaþarfir"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "fyrirspurn/yfirferð á pakkana sem uppfylla þarfir annara pakka"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "fyrirspurn/yfirferð á pakkana sem hafa pakkaþarfir"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "fyrirspurn/yfirferð á pakkana sem hafa pakkaþarfir"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "fyrirspurn/yfirferð á pakkana sem hafa pakkaþarfir"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "fyrirspurn/yfirferð á pakkana sem hafa pakkaþarfir"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr ""
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "ekki yfirfara stærð skráa"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "ekki yfirfara symlink slóð skráa"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "ekki yfirfara eiganda skráa"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "ekki yfirfara hop skráa"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "ekki yfirfara heimildir skráa"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "ekki yfirfara skrárnar í pakkanum"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "ekki skoða pakkaskilyrðin"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "pakkinn inniheldur enga .spec skrá\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ""
@@ -2270,96 +2371,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr ""
-#: lib/query.c:391
+#: lib/query.c:390
+#, c-format
+msgid "no package recommends %s\n"
+msgstr ""
+
+#: lib/query.c:397
+#, c-format
+msgid "no package suggests %s\n"
+msgstr ""
+
+#: lib/query.c:404
+#, c-format
+msgid "no package supplements %s\n"
+msgstr ""
+
+#: lib/query.c:411
+#, c-format
+msgid "no package enhances %s\n"
+msgstr ""
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr ""
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr ""
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr ""
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr ""
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr ""
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr ""
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ""
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ""
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr ""
@@ -2384,144 +2505,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr ""
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "ekki skoða pakkaskilyrðin"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr ""
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr ""
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr ""
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr ""
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr ""
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2553,42 +2722,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr ""
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr ""
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr ""
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr ""
@@ -2614,12 +2783,12 @@ msgstr ""
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2777,60 +2946,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr "ólöglegur rofi '%s' á %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr ""
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Gat ekki lesið táknmynd %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Gat ekki lesið táknmynd %s: %s\n"
+
+#: lib/rpmscript.c:389
+#, c-format
+msgid "Fwrite failed: %s"
+msgstr ""
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2842,127 +3030,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "get ekki opnað pakka gagnagrunn í %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
+msgstr ""
+
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3036,240 +3243,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr ""
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "deildann"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "einka"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(tómt)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(tómt)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Óþekkt viðfang %c í %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== virkt %d tómt %d\n"
@@ -3289,31 +3496,31 @@ msgstr "Skrá %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Skráin %s er minni en %u bæti\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3322,19 +3529,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(engin villa)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "banvæn villa: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "villa: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "aðvörun: "
@@ -3343,99 +3550,153 @@ msgstr "aðvörun: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "minnisfrátekt (%u bæta) skilaði NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:66
+#, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, c-format
+msgid "error delete directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
-msgid "fdopen failed\n"
+#: sign/rpmgensig.c:287
+msgid "Fopen failed\n"
msgstr ""
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Gat ekki keyrt %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg get ekki lesið undirskriftina\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "get ekki lesið undirskriftina\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+msgid "generateSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:543
+msgid "rpmReadSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+msgid "headerReload failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+msgid "copyFile failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:621
+msgid "headerWrite failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3448,21 +3709,3 @@ msgstr ""
#: tools/rpmgraph.c:220
msgid "don't verify header+payload signature"
msgstr ""
-
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Get ekki ritað innihald í %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Get ekki lesið innihald %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Get ekki opnað tempi skrá.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Get ekki opnað sigtarget %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Get ekki lesið haus úr %s: %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Gat ekki ritað haus í %s: %s\n"
diff --git a/po/it.gmo b/po/it.gmo
index 656bc972..7ccb142a 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 5cdbacd9..7799faa2 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,11 +8,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:47+0000\n"
-"Last-Translator: Guido Grazioli <guido.grazioli@gmail.com>\n"
-"Language-Team: Italian (http://www.transifex.com/projects/p/rpm/language/"
-"it/)\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
+"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
+"Language-Team: Italian (http://www.transifex.com/rpm-team/rpm/language/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -83,8 +82,8 @@ msgstr "Opzioni di verifica (con -V o --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Opzioni Installa/Aggiorna/Rimuovi:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Opzioni comuni per tutte le modalità e gli eseguibili rpm:"
@@ -104,7 +103,7 @@ msgstr "formato di interrogazione inaspettato"
msgid "unexpected query source"
msgstr "origine d'interrogazione inaspettata"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "è possibile specificare solo una modalità principale"
@@ -234,7 +233,7 @@ msgstr ""
"--test può essere specificato solamente per l'installazione e l'eliminazione "
"di pacchetti"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "gli argomenti per --root (-r) devono iniziare con /"
@@ -254,207 +253,256 @@ msgstr "non è stato specificato alcun argomento per l'interrogazione"
msgid "no arguments given for verify"
msgstr "non è stato specificato alcun argomento per la verifica"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot è già specificato, ignora %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"compila attraverso %prep (scompatta i sorgenti e applica le patch) da "
"<specfile>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "compila attraverso %build (%prep, e poi compila) da <specfile>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"compila attraverso %install (%prep, %build, e poi installa) da <specfile>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "verifica sezione %files da <specfile>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "compila i pacchetti binari e sorgente da <specfile>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "compila solo il pacchetto binario da <specfile>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "compila solo il pacchetto sorgente da <specfile>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"compila attraverso %prep (scompatta i sorgenti e applica le patch) da "
+"<specfile>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<source package>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "compila attraverso %build (%prep, e poi compila) da <specfile>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"compila attraverso %install (%prep, %build, poi installa) da <source package>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "verifica sezione %files da <specfile>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "compila il pacchetto binario da <source package>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "compila il pacchetto binario da <source package>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "compila solo il pacchetto sorgente da <specfile>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"compila attraverso %prep (scompatta i sorgenti ed applica le patch) da "
"<tarball>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "compila attraverso %build (%prep, e poi compila) da <tarball>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "compila attraverso %install (%prep, %build, poi installa) da <tarball>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "verifica la sezione %files da <tarball>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "compila i pacchetti binari e sorgenti da <tarball>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "compila solo il pacchetto binario da <tarball>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "compila solo il pacchetto sorgente da <tarball>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "compila il pacchetto binario da <source package>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<source package>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"compila attraverso %install (%prep, %build, poi installa) da <source package>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "override della build root"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Impossibile aprire la directory corrente: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "rimuovere l'albero di compilazione quando terminato"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignora le direttive ExcludeArch: dal file spec"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "macchina a stati del file di debug"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "non eseguire alcuna fase del processo di compilazione"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "non verificare le dipendenze di compilazione"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr "genera pacchetti con intestazioni compatibili con rpm v3 (legacy)"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "non eseguire la fase %clean del processo di build"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "non eseguire la fase %clean del processo di build"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "non eseguire la fase %check del processo di build"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "non accettare i msgtr di i18N da specfile"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "rimuovi i sorgenti quando terminato"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "rimuovi lo specfile quando terminato"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "salta direttamente alla fase specificata (solo per c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "override della piattaforma target"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Opzioni di build con [ <specfile> | <tarball> | <source package> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Dipendenze di build fallite:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Impossibile aprire il file spec %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Impossibile aprire tar pipe: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Più di un file su una riga: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Impossibile leggere il file spec da %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Impossibile rinominare %s in %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "impossibile eseguire lo stat di %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Il file %s non è un file regolare.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Il file %s non sembra essere uno specfile.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Creazione piattaforme target in corso: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Creazione per il target %s in corso\n"
@@ -507,49 +555,65 @@ msgstr "elenca le chiavi del keyring RPM"
msgid "Keyring options:"
msgstr "Opzioni keyring:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "non è stato specificato alcun argomento"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "firma i pacchetti"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "firma pacchetto/i (identico a --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "cancella le firme del pacchetto"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "firma i pacchetti"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Opzioni della firma:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Impossibile eseguire %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "È necessario impostare \"%%_gpg_name\" nel file macro\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Inserire la passphrase:"
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "La passphrase risulta valida.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "Controllo della pass phrase fallito o chiave gpg scaduta\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix può essere usato solo quando si installano nuovi pacchetti"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr ""
+"--allmatches può essere specificato solo durante la rimozione del pacchetto"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -567,7 +631,7 @@ msgstr "opera sugli rpm binari generati dal file spec (default)"
msgid "operate on source rpm generated by spec"
msgstr "opera sul file rpm sorgente generato dal file spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "usare il seguente formato di interrogazione"
@@ -668,203 +732,203 @@ msgstr "&& e || non supportati per le stringhe\n"
msgid "syntax error in expression\n"
msgstr "errore di sintassi nell'espressione\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "'(' mancante in %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "')' mancante in %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Token %s non valido: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "%s mancante in %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Caratteri non validi seguono %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Sintassi non corretta: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Spec della modalità errata: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Spec dirmode errata: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "Lunghezza inconsueta del locale: \"%s\" in %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Locale duplicato: %s in %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Capability non valida: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Supporto alle file capabilities non disponibile\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Il file deve iniziare con \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Algoritmo di digest %u sconosciuto, ritorno a MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "File elencato due volte: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "lettura del symlink %s fallita: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Il Symlink punta alla BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr "Percorso esterno alla buildroot: %s\n"
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Directory non trovata: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "File non trovato: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr "Non è una directory: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: impossibile caricare tag sconosciuto (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: lettura chiave pubblica fallita.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: non è una chiave pubblica con formato 'armored'.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: errore durante l'encoding\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Il file deve essere preceduto da \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "glob %%dev non consentito: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "Directory non trovata per il glob: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "File non trovato dal glob: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Impossibile aprire %%files file %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "riga: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
"File %s vuoto nella sezione %%files\n"
"\n"
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Errore nella lettura del file %s in %%files: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "_docdir_fmt %s non valido: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "File non trovato dal glob: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "Impossibile unire %s speciali con altre forme: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Più di un file su una riga: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "File errato: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Proprietario/gruppo errato: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Controllo per file non pacchettizzati in corso: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -873,18 +937,18 @@ msgstr ""
"Trovati file installati (ma non inclusi nel pacchetto):\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Elaborazione file: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
"L'architettura dei binari (%d) non corrisponde a quella del pacchetto (%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Binari dipendenti dall'architettura presenti in un pacchetto noarch\n"
@@ -903,89 +967,90 @@ msgstr "creazione archivio fallita: %s\n"
msgid "Could not open %s file: %s\n"
msgstr "Impossibile aprire il file %s: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: linea: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Impossibile regolarizzare l'hostname: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Impossibile ricaricare intestazione della firma.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Compressione payload sconosciuta: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Impossibile creare una regione dell'intestazione immutabile.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Impossibile aprire %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Impossibile scrivere il pacchetto: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Impossibile salvare intestazione di temp\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Dati CSA errati\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Impossibile aprire il file %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "creazione archivio fallita sul file %s: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Scritto: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Esecuzione \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Esecuzione di \"%s\" fallita.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Controllo pacchetto \"%s\" fallito.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Impossibile generare nome del file di output per il pacchetto %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "impossibile creare %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "riga %d: secondo %s\n"
@@ -1036,19 +1101,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "riga %d: Errore durante il parsing di %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "riga %d: Opzione %s errata: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "riga %d: Troppi nomi: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "riga %d: Pacchetto non esistente: %s\n"
@@ -1103,142 +1168,147 @@ msgstr "Scaricamento di %s su %s\n"
msgid "Couldn't download %s\n"
msgstr "Impossibile scaricare %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "L'architettura è esclusa: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "L'architettura non è inclusa: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS è escluso: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS non è incluso: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "il campo %s deve essere presente nel pacchetto: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Voci %s duplicate nel pacchetto: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Impossibile aprire l'icona %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Impossibile leggere l'icona %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Tipo di icona sconosciuto: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "riga %d: Il tag necessita di un solo token: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "riga %d: Carattere '%c' illegale in: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "riga %d: Carattere illegale in: %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "riga %d: Sequenza \"..\" illegale in: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "linea %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: linea: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "riga %d: Tag malformato: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "riga %d: Tag vuoto: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "riga %d: I prefissi non devono finire con \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "riga %d: Docdir deve iniziare con '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "riga %d: Il tag Epoch deve essere un numero: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "riga %d: %s errati: qualificatori: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "riga %d: Formato BuildArchitecture errato: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "riga %d: Sono supportati solo sottopacchetti noarch: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Errore interno: bogus tag %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "riga %d: %s è deprecato: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Specifiche errate del pacchetto: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Il pacchetto è già esistente: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "riga %d: Tag sconosciuto: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} non può essere vuota\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} non può essere \"/\"\n"
@@ -1248,164 +1318,196 @@ msgstr "%%{buildroot} non può essere \"/\"\n"
msgid "Bad source: %s: %s\n"
msgstr "Sorgenti non validi: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Nessuna patch con numero %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch senza il corrispondente tag \"Patch:\"\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Nessun sorgente con numero %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Nessun tag \"Source:\" nello spec file\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Errore nel parsing di %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "riga %d: Argomento errato su %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "riga %d: Opzione di %%setup errata %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Numero patch non valido %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "riga %d: secondo %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr "I token delle dipendenze devono iniziare per alfanumerico, '_' o '/'"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "Nome file versionato non consentito"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Versione richiesta"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "Dipendenza non valida"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Versione richiesta"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "linea %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "riga %d: i trigger devono presentare --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "riga %d: Errore nel parsing di %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "linea %d: uno script interno deve terminare con '>': %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "riga %d: il programma script deve iniziare con '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr "linea %d: argomenti dell'interprete non consentiti nei trigger: %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "riga %d: Secondo %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "linea %d: script interno non supportato: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr "linea %d: argomenti dell'interprete non consentiti nei trigger: %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "riga %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Impossibile aprire %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d: argomento necessario per %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
"riga %d: %%if non bilanciato\n"
"\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "linea %d: macro non chiusa o errata continuazione linea\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: condizione %%if errata\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Trovato un %%else con nessun %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Trovato un %%endif con nessun %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s: %d: istruzione %%include malformata\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
"Non è stata trovata alcuna architettura compatibile per la compilazione\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Il pacchetto non possiede alcuna %%description: %s\n"
@@ -1478,288 +1580,277 @@ msgstr "Troppi argomenti alla linea: %s\n"
msgid "Processing policies: %s\n"
msgstr "Elaborazione policies: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Viene ignorata la regex non valida %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Impossibile creare la pipe per %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Impossibile eseguire %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Impossibile biforcare %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s fallito: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "impossibile salvare tutti i dati su %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr "operatore non valido"
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr "formato non valido"
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr "dipendenza non valida (%s): %s\n"
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Conversione di %s a long integer fallita.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "File classifier vuoto\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Non è configurato alcun attributo dei file\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) fallita: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load fallita: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Identificazione file \"%s\" fallita: modalità %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Ricerca di %s in corso: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Impossibile trovare %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
"interrogazione di specfile %s fallita, impossibile eseguire il parsing\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s è un Delta RPM e non può essere installato direttamente\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Payload non supportato (%s) nel pacchetto %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "il pacchetto %s è già stato aggiunto, salto %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "il pacchetto %s è stato già aggiunto, sostituzione con %s in corso\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(non è un numero)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(non base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(tipo non valido)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(non è un blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(tipo xml non valido)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(non è una firma OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Formato data %u non corretto"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normale"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "sostituito"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "non installato"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "condivisa su rete"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "colore errato"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "mancanti"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(sconosciuto)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(non è una stringa)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s salvato come %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s creato come %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: rimozione fallita: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "directory"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "file"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr "%s ha una signature non verificabile"
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1982,7 +2073,7 @@ msgstr "aggiorna il database, senza modificare il filesystem"
msgid "do not verify package dependencies"
msgstr "non verificare le dipendenze dei pacchetti"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "non verificare il digest dei file"
@@ -2105,165 +2196,185 @@ msgstr "aggiorna il pacchetto/i"
msgid "reinstall package(s)"
msgstr "reinstalla pacchetto(i)"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "interrogare/verificare tutti i pacchetti"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "modalità rpm checksig"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "interrogare/verificare a quale pacchetto/i appartiene il file"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "interrogare/verificare il pacchetto/i in un gruppo"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "interrogare/verificare un file del pacchetto"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
"interrogare/verificare il pacchetto/i con un identificatore del pacchetto"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
"interrogare/verificare il pacchetto/i con un identificatore di intestazione"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "modalità interrogazione rpm"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "interrogare/verificare una istanza dell'intestazione"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
"interrogare/verificare il pacchetto/i dalla transazione di installazione"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "interroga il pacchetto/i azionato dal pacchetto"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "modalità verifica rpm"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "interrogare/verificare il pacchetto/i che necessita di una dipendenza"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "interrogare/verificare il pacchetto/i che fornisce una dipendenza"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "interrogare/verificare il pacchetto/i che necessita di una dipendenza"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "interrogare/verificare il pacchetto/i che necessita di una dipendenza"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "interrogare/verificare il pacchetto/i che necessita di una dipendenza"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "interrogare/verificare il pacchetto/i che necessita di una dipendenza"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "non eseguire il glob degli argomenti"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "non processare i file non-package come manifest"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "elenca tutti i file di configurazione"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "elenca tutti i file di documentazione"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr "elenca tutti i file licenza"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "emettere le informazioni di base dei file"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "elenca i file in un pacchetto"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "salta file %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "visualizza gli stati dei file elencati"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "non verificare la dimensione dei file"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "non verificare il percorso symlink dei file"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "non verificare il proprietario dei file"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "non verificare il gruppo dei file"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "non verificare l'ora di modifica dei file"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "non verificare la modalità dei file"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "non verificare le capabilities dei file"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "non verificare i contesti di sicurezza dei file"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "non verificare i file nel pacchetto"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "non verificare le dipendenze del pacchetto"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "non eseguire gli script di verifica"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Funzionalità rpmlib mancanti per %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "pacchetto sorgente atteso, trovato binario\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "il pacchetto sorgente non contiene alcun file .spec\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "estrazione archivio fallita%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " sul file "
@@ -2339,97 +2450,117 @@ msgstr "nessun pacchetto corrisponde a %s: %s\n"
msgid "no package requires %s\n"
msgstr "nessun pacchetto necessita di %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "nessun pacchetto necessita di %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "nessun pacchetto attiva %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "nessun pacchetto necessita di %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "nessun pacchetto necessita di %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "nessun pacchetto fornisce %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "file %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "il file %s non è posseduto da alcun pacchetto\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "numero del pacchetto non valido: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "il record %u non può essere letto\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "il pacchetto %s non è stato installato\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "tag sconosciuto: \"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: importazione chiave %d fallita.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: chiave pubblica %d non con formato 'armored'.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: lettura importazione fallita(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s: headerRead fallita: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: La regione header immutabile non può essere letta. Pacchetto corrotto?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread fallito: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NON OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (CHIAVI MANCANTI:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (CHIAVI NON FIDATE:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: apertura fallita: %s\n"
@@ -2454,154 +2585,205 @@ msgstr "Impossibile cambiare directory root: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Impossibile ripristinare directory root: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NO "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "SI"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
"Supporto alla versione per le dipendenze PreReq:, Provides: e Obsoletes:."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"file name conservati come tuple (dirName,baseName,dirIndex), non come "
"percorsi."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "il payload del pacchetto può essere compresso utilizzando bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "il payload del pacchetto può essere compresso utilizzando xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "il payload del pacchetto può essere compresso utilizzando lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "il/i file payload del pacchetto presentano un prefisso \"./\""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
"il nome-versione-release del pacchetto non viene implicitamente fornito."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
"i tag delle intestazioni vengono sempre ordinate dopo il loro caricamento."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
"l'interprete di scriptlet può utilizzare gli argomenti presenti "
"nell'intestazione."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "un set di file hardlink può essere installato senza che sia completo."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"le scriptlet del pacchetto potrebbero accedere al database rpm durante "
"l'installazione."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "supporto interno per gli script lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "l'algoritmo digest di checksum dei file è configurabile per pacchetto"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "supporto per le file capabilities POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
"le scriptlet del pacchetto possono essere espanse durante l'installazione."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "la comparazione delle dipendenze supporta le versioni con tilde."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr "supporto per file più grandi di 4GB"
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "non verificare le dipendenze dei pacchetti"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Versione richiesta"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "Dipendenza non valida"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "%c non terminato: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "Dipendenza non valida"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "l'utente %s non esiste - uso dell'utente root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "il gruppo %s non esiste - uso dell'utente root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Bad magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Intestazione errata/illeggibile"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Dimensione intestazione troppo grande"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "FIle troppo grande per l'archivio"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Tipo di file sconosciuto"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr "File mancante(i)"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Digest non corrispondente"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Errore interno"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "File archive non è nell'intestazione"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " fallito - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr "%s: (errore 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "apertura di %s fallita: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: non è un pacchetto rpm (o un manifest del pacchetto)\n"
@@ -2633,42 +2815,42 @@ msgstr "Dipendenze fallite:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: non è un pacchetto rpm (o un manifest del pacchetto): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s non può essere installato\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Ripristino di %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "omissione di %s - trasferimento fallito\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "il pacchetto %s non è riposizionabile\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "errore di lettura dal file %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" specifica pacchetti multipli:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "impossibile aprire %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Installazione di %s in corso\n"
@@ -2694,12 +2876,12 @@ msgstr "lettura fallita: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "non è un pacchetto rpm\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "impossibile creare il lock %s su %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "attesa del lock %s su %s\n"
@@ -2715,9 +2897,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Impossibile risolvere il simbolo %s: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Plugin %s non caricato\n"
+msgstr ""
#: lib/rpmplugins.c:199
#, c-format
@@ -2866,60 +3048,79 @@ msgstr "architettura mancante per %s su %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "opzione errata '%s' su %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "Impossibile leggere il vettore ausiliario, /proc non montata?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Sistema sconosciuto: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Si prega di contattare %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Impossibile aprire %s per la lettura: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "Impossibile tornare alla direcotry corrente: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "supporto agli scriptlet <lua> non disponibile\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Impossibile creare il file temporaneo per %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Impossibile duplicare il file descriptor: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Impossibile leggere l'icona %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Impossibile ripristinare directory root: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite fallito: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "scriptlet %s fallita, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "scriptlet %s fallita, segnale %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "scriptlet %s fallita, uscita con stato %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Formato sconosciuto"
@@ -2931,127 +3132,146 @@ msgstr "installa"
msgid "erase"
msgstr "elimina"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "impossibile aprire il database dei pacchetti in %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "'(' extra nell'etichetta del pacchetto: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "'(' mancante nell'etichetta del pacchetto: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "')' mancante nell'etichetta del pacchetto: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: lettura chiave pubblica fallita.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "transazione"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(non è una firma OpenPGP)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Impossibile ricaricare intestazione della firma.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Header "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 digest:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Digest SHA1 header:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Header "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr "Verifica signature: PARAMETRI NON VALIDI (%d %p %d %p %p)"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "saltato"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "fallito"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr "nessuno stato"
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr "stato sconosciuto"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "%c %s mancanti"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Dipendenze non soddisfatte per %s:\n"
@@ -3125,219 +3345,219 @@ msgstr "iteratore di array usato con array di dimensioni differenti"
msgid "Generating %d missing index(es), please wait...\n"
msgstr "Generazione di %d indici mancanti, prego attendere...\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr "impossibile aprire l'indice %s usando%s - %s (%d)\n"
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "non è stato impostato alcun dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: salto"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "errore(%d) nella memorizzazione del record #%d in %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec fallito: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp fallito: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: salto"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: intestazione #%u danneggiata -- viene omessa.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: impossibile leggere intestazione 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "non è stato impostato alcun dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "impossibile creare la cartella %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "l'intestazione #%u nel database non è valida -- viene omessa.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "impossibile aggiungere il record originariamente su %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "ricompilazione database fallita: il database originale rimane in uso\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "sostituzione del vecchio database con il nuovo database fallita!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "per eseguire un ripristino sostituire i file in %s con i file di %s"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "rimozione della directory %s fallita: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr "%s error(%d) da %s: %s\n"
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr "%s error(%d): %s\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "opzione db non riconosciuta: \"%s\" ignorata.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s presenta un valore numeric non valido, omesso\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s presenta un valore long troppo grande o troppo piccolo, omesso\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s presenta un valore integer troppo grande o troppo piccolo, omesso\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "impossibile ottenere il %s su %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "condiviso"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "esclusivo"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "tipo indice %x non valido su %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "errore(%d) nella lettura dei record \"%s\" dall'indice %s: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "errore(%d) nella memorizzazione del record \"%s\" in %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "errore(%d) nella rimozione del record \"%s\" da %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "errore(%d) nell'impostazione del record #%d dell'intestazione\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "errore(%d) nell'eliminazione del record dell'intestazione #%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "errore(%d) nell'allocazione di una nuova istanza del pacchetto\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "opzione db non riconosciuta: \"%s\" ignorata.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s presenta un valore numeric non valido, omesso\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s presenta un valore long troppo grande o troppo piccolo, omesso\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s presenta un valore integer troppo grande o troppo piccolo, omesso\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(vuoto)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(vuoto)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "La macro %%%s presenta delle opzioni incomplete\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "La macro %%%s presenta un corpo incompleto\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "La macro %%%s presenta un nome illegale (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "La macro %%%s presenta contenuto vuoto\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr "La Macro %%%s richiede whitespace prima del corpo\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Impossibile espandere la macro %%%s\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "La macro %%%s presenta un nome illegale (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr "Macro %%%s definita ma non usata nello scope\n"
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Opzione %c sconosciuta in %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3345,22 +3565,22 @@ msgstr ""
"Troppo livelli di ricorsione nell'espansione della macro. Si tratta "
"probabilmente di una macro definita ricorsivamente.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "%c non terminato: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Un %% è seguito da una macro non parsabile\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr "impossibile caricare il file di macro %s"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== %d attivo %d vuoto\n"
@@ -3380,31 +3600,31 @@ msgstr "File %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "File %s è più piccolo di %u byte\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "impossibile creare la directory"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "sintassi non valida nella scriptlet lua: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "sintassi non valida nello script lua: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "script lua fallito: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "sintassi non valida nel file lua: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua hook fallito: %s\n"
@@ -3413,19 +3633,19 @@ msgstr "lua hook fallito: %s\n"
msgid "[none]"
msgstr "[nessuno]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(nessun errore)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "errore fatale: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "errore: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "avvertimento: "
@@ -3434,101 +3654,159 @@ msgstr "avvertimento: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "allocazione memoria (%u byte) ha ritornato NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, ID chiave %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(nessuno)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "errore nella creazione del file temporaneo %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "errore nella creazione del file temporaneo %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "errore nella creazione del file temporaneo %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "impossibile creare la cartella %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite fallito: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush fallito: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Firma PGP non supportata\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "Algoritmo hash PGP %u non supportato\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "Algoritmo di chiave privata PGP non supportato %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Impossibile creare la pipe per la firma: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Impossibile eseguire %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: apertura fallita: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Impossibile aprire il file %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Impossibile aprire %%files file %s: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "esecuzione gpg fallita (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg non è riuscito a salvare la firma\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "impossibile leggere la firma\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature fallito: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature fallita: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: headerRead fallita: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp fallito\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "exec fallito\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: headerRead fallita: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s contiene la stessa identica signature, lo salto\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature fallita: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "Impossibile firmare pacchetti RPM v3\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s contiene la stessa identica signature, lo salto\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature fallito: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp fallito\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead fallito: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "sostituzione di %s fallita: %s\n"
@@ -3542,89 +3820,26 @@ msgstr "%s: lettura manifesto fallita: %s\n"
msgid "don't verify header+payload signature"
msgstr "non verificare firma header+payload"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Impossibile salvare payload su %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Impossibile leggere payload da %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Impossibile aprire il file temp.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Impossibile aprire sigtarget %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Impossibile leggere intestazione da %s: %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Impossibile salvare intestazione su %s: %s\n"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "non eseguire azioni sulle collezioni"
-
-#~ msgid "Failed to expand %%__%s_%s macro\n"
-#~ msgstr "Impossibile espandere la macro %%__%s_%s\n"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr ""
-#~ "Impossibile leggere la regione immutabile dell'header. Pacchetto "
-#~ "corrotto?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Impossibile decodificare la policy per %s\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Impossibile creare il file temporaneo per %s: %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Impossibile scrivere la policy %s nel file %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Errore nella creazione dell'handle semanage\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Errore nella connessione all'handler di policy\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Errore nell'inizializzazione della policy transaction: %s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "Impossibile rimuovere il temporaneo %s della policy: %s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Impossibile installare il modulo di policy: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Impossibile rimuovere il modulo di policy: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Errore durante il fork del processo: %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Impossibile eseguire %s: %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Conversione di %s a long integer fallita.\n"
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s è terminato in modo anomalo\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Inserire la passphrase:"
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s fallito con codice di errore %i\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "La passphrase risulta valida.\n"
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Errore durante il commit delle modifiche alla policy\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr "Controllo della pass phrase fallito o chiave gpg scaduta\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Impossibile espandere il percorso restorecon"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Proprietario/gruppo errato: %s\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Errore durante il relabel del filesystem. I file potrebbero avere label "
-#~ "non corrette\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "riga %d: Carattere illegale in: %s\n"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Errore nel caricamento dei file context. I file potrebbero avere label "
-#~ "non corrette\n"
+#~ msgid "%s has unverifiable signature"
+#~ msgstr "%s ha una signature non verificabile"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Impossibile estrarre la policy da %s\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Impossibile creare la pipe per la firma: %m"
diff --git a/po/ja.gmo b/po/ja.gmo
index 54e0c199..d481f6b4 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 960ee3b4..c5d1a669 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,15 +6,16 @@
# Hajime Taira <htaira@redhat.com>, 2011-2012
# Tadashi Jokagi <elf@poyo.jp>, 2012
# Tadashi Jokagi <elf@elf.no-ip.org>, 2011
+# Tadashi Jokagi <elf@poyo.jp>, 2012
# Tomoyuki KATO <tomo@dream.daynight.jp>, 2012-2013
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/rpm/language/"
+"Language-Team: Japanese (http://www.transifex.com/rpm-team/rpm/language/"
"ja/)\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
@@ -84,8 +85,8 @@ msgstr "検証オプション (-V または --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "インストール/アップグレード/アンインストールオプション:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "すべてのモード・コマンドで共通のオプション:"
@@ -105,7 +106,7 @@ msgstr "予期せぬ問い合わせのフォーマット"
msgid "unexpected query source"
msgstr "予期せぬ問い合わせのソース"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "一つのメジャーモードのみを指定して下さい"
@@ -212,7 +213,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr "--test はパッケージのインストール時および削除時のみ指定できます。"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "--root (-r) の引数は / から始まらなければなりません。"
@@ -232,202 +233,249 @@ msgstr "問い合わせのための引数が指定されていません。"
msgid "no arguments given for verify"
msgstr "検証のための引数が指定されていません。"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "BuildRoot は既に指定されています。%s を無視します\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr "<specfile> の %prep (ソース展開と patch の適用) まで実行"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "<specfile> の %build (%prep とコンパイル) まで実行"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "<specfile> の %install (%prep, %build, インストール) まで実行"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "<specfile> の %files セクションを検証"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "<specfile> を元に、バイナリ/ソースパッケージ作成"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "<specfile> を元に、バイナリパッケージのみ作成"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "<specfile> を元に、ソースパッケージのみ作成"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr "<specfile> の %prep (ソース展開と patch の適用) まで実行"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<source package>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "<specfile> の %build (%prep とコンパイル) まで実行"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr "<source package> から %install (%prep, %build, インストール) まで実行"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "<specfile> の %files セクションを検証"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "<source package> を元にバイナリパッケージを作成"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "<source package> を元にバイナリパッケージを作成"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "<specfile> を元に、ソースパッケージのみ作成"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr "<tarball> から %prep (ソース展開とパッチ適用) まで実行"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "<tarball> から %build (%prep とコンパイル) まで実行"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "<tarball> から %install (%prep, %build, インストール) まで実行"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "<tarball> から %files セクションを検証"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "<tarball> を元に、バイナリ/ソースパッケージを作成"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "<tarball> を元に、バイナリパッケージのみを作成"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "<tarball> を元に、ソースパッケージのみを作成"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "<source package> を元にバイナリパッケージを作成"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<source package>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr "<source package> から %install (%prep, %build, インストール) まで実行"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "build root を強制指定"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "カレントディレクトリーを開けません: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "パッケージ作成後ツリーを削除"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "spec ファイルの ExcludeArch: を無視"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "ファイル状態マシーンのデバッグ"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "ビルドのどの段階も実行しない"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "ビルド依存性を検証しない"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
"レガシーなRPM v3のパッケージングと互換性のあるパッケージのヘッダーの生成"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "ビルドの %clean 段階を実行しない"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "ビルドの %clean 段階を実行しない"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "ビルドの %check 段階を実行しない"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "specfile から i18N msgstr を受け付けない"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "終了後ソースを削除します。"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "終了時に spec ファイルを削除"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "指定した過程までスキップします (c, i でのみ有効)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "ターゲットプラットフォームを強制指定"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "[ <specfile> | <tarball> | <source package> ] とのビルドオプション:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "ビルド依存性の失敗:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "spec ファイル %s を開けません: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "tar パイプのオープンに失敗しました: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "1 行に複数のファイル: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "%s から spec ファイルの読み込みに失敗しました。\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "%s を %s に名前を変更できませんでした: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "stat %s に失敗しました: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "%s は通常ファイルではありません。\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "ファイル %s は spec ファイルではないようです。\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "ビルド対象プラットフォーム: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "ターゲット %s 用にビルド中\n"
@@ -478,50 +526,64 @@ msgstr "RPMキーリングからキーを一覧表示する。"
msgid "Keyring options:"
msgstr "キーリングのオプション:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "引数が指定されていません。"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "署名パッケージ"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "パッケージに署名する (--addsign と同一です)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "パッケージの署名を削除する"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "署名パッケージ"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "署名オプション:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "%s を実行できませんでした: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "マクロファイル内で \"%%_gpg_name\" を設定しなければなりません。\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "パスフレーズの入力: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "パスフレーズは正常です。\n"
-
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
-"パスフレーズのチェックに失敗しました、または GPG キーが失効しています\n"
+
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix は新規パッケージのインストール時のみ使用できます。"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches はパッケージ削除時のみ指定できます。"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -539,7 +601,7 @@ msgstr "specファイルによって生成されたバイナリRPMを操作す
msgid "operate on source rpm generated by spec"
msgstr "specファイルによって生成されたソースRPMを操作する。"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "以下の問い合わせ書式を使用します。"
@@ -640,203 +702,203 @@ msgstr "&& と || は文字列には使えません\n"
msgid "syntax error in expression\n"
msgstr "式中で文法エラー\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "%s に '(' がありません %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "%s(%s の後に ')' がありません\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "無効なトークン %s: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "%s が %s %s にありません\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "%s() に続く空白がありません: %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "文法エラー: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "不正なモード指定: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "不正なディレクトリモード指定: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "異常なロケール長: \"%s\" (%%lang(%s))\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "重複する位置 %s が %%lang(%s) にあります\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "不正なケーパビリティです: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "ファイル ケーパビリティのサポートが組み込まれていません\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "ファイルは \"/\" から始まらなければなりません: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
"不明なファイルのダイジェスト アルゴリズム %u です。MD5 にフォールバックしま"
"す。\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "ファイルが2回表記されています: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "シンボリックリンク %s の読み込みに失敗しました: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "シンボリックリンクが BuildRoot を指しています: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "ディレクトリーがありません: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "ファイルが見つかりません: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: 不明なタグ (%d) を読み込めませんでした。\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: 公開鍵の読み込みに失敗しました。\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: ASCII 形式の公開鍵ではありません。\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: エンコードに失敗\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "ファイルは先頭に \"/\" が必要です: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "%%dev グロブは許可されません: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "ディレクトリーがグロブにより見つかりませんでした: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "ファイルが見つかりません (by glob): %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "%%files のファイル %s を開けません: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "%s行目: \n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "%%files ファイル %s の読み込み中にエラー: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "不正な _docdir_fmt %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "ファイルが見つかりません (by glob): %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "他の形式で特別な %s を混ぜることはできません: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "1 行に複数のファイル: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "不正なファイル: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "不正な所有者/グループ: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "パッケージに含まれないファイルの検査中: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -845,19 +907,19 @@ msgstr ""
"インストール済み(ただしパッケージに含まれない)ファイルが見つかりました:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "ファイルの処理中: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
"バイナリのアーキテクチャー (%d) がパッケージのアーキテクチャー (%d) と一致し"
"ません。\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "noarch パッケージ内にアーキテクチャ依存のバイナリー\n"
@@ -876,89 +938,90 @@ msgstr "アーカイブの作成に失敗しました: %s\n"
msgid "Could not open %s file: %s\n"
msgstr "%s ファイルを開けませんでした: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: 行: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "ホスト名を正式なものにできません: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "署名ヘッダーの再読み込みができません。\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "不明なペイロード圧縮: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "不変ヘッダー領域を作成できません。\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "%s のオープンに失敗: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "パッケージの書き込みに失敗: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "一時ヘッダーの書き込みができません。\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "不正な CSA データ\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "%s ファイルを開けませんでした: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "ファイル %s にアーカイブの作成を失敗しました: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "書き込み完了: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "「%s」を実行しています:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "「%s」の実行に失敗しました。\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "パッケージ \"%s\" のチェックに失敗しました。\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "パッケージ %s の出力ファイル名を生成できませんでした: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "%s を作成できません: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "%d 行目: 2番目の %s\n"
@@ -1009,19 +1072,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "%d 行目: %%description の構文解析エラー: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "%d 行目: 不正なオプション %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "%d 行目: 名前が多すぎます: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "%d 行目: パッケージが存在しません: %s\n"
@@ -1076,142 +1139,147 @@ msgstr "%s を %s にダウンロード中\n"
msgid "Couldn't download %s\n"
msgstr "%s をダウンロードできませんでした\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "アーキテクチャは除外されています: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "アーキテクチャは含まれていません: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS は除外されています: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS は含まれていません: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s フィールドがパッケージ中に必要です: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "パッケージ中に %s エントリが重複しています: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "アイコン %s を開けません: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "アイコン %s を読むことができません: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "不明なアイコンタイプ: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "%d 行目: タグはトークンを 1つしかとりません: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "%d 行目: 不正な文字 '%c' : %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "%d 行目: 不正な文字 '-' : %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "%d 行目: 不正なシーケンス 「..」 : %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "%d 行目: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: 行: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "%d 行目: 不完全な形のタグ: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "%d 行目: 空のタグ: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "%d 行目: Prefix は \"/\" で終わってはいけません: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "%d 行目: Docdir は '/' で始まらなければなりません: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "%d 行目: Epoch フィールドは数字でなければなりません: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "%d 行目: 不正な修飾子 %s : %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "%d 行目: 不正な BuildArchtecture フォーマット: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "%d 行目: noarch サブ パッケージでのみサポート: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "内部エラー: にせのタグ %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "%d 行目: %s は非推奨: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "不正なパッケージの指定: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "パッケージは既に存在しています: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "%d 行目: 不明なタグ: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} を空にすることができません\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} を \"\" にすることができません\n"
@@ -1221,162 +1289,194 @@ msgstr "%%{buildroot} を \"\" にすることができません\n"
msgid "Bad source: %s: %s\n"
msgstr "不正なソース: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "パッチ番号 %u はありません\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "\"Patch:\" タグに該当しない %%patch\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "ソース番号 %u はありません\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "spec ファイルに「Source:」タグがありません\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "%%setup の構文解析エラー: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "%d 行目: %%setup への不正な引数: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "%d 行目: 不正な %%setup オプション %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "無効なパッケージ番号 %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "%d 行目: ふたつ目の %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
"依存関係トークンは、英数字、'_' または '/' で始まらなければいけません。"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "バージョン付きファイル名は許可されません"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "バージョン要件"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "無効な依存性"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "バージョン要件"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "%d 行目: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "%d 行目: トリガーには -- がなければなりません: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "%d 行目: %s の構文解析エラー: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "%d 行目: 内部スクリプトは '>' で終わらなければなりません: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "%d 行目: スクリプトプログラムは '/' で始まらなければなりません: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr "%d 行目: インタープリター引数はトリガーにおいて許可されません: %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "%d 行目: 2番目の %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "%d 行目: 未サポートの内部スクリプト: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr "%d 行目: インタープリター引数はトリガーにおいて許可されません: %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "%d 行目: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "%s を開けません: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d: %s に対して期待される引数\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "%d 行目: %%if が閉じていません\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "%d 行目: 終了していないマクロまたは行の不正な継続\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: 不正な %%if 条件\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: %%if がないのに %%else があります\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%if がないのに %%endif があります\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d: 不正な形式の %%include 文\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "作成(build)可能な互換アーキテクチャはありません\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "パッケージには %%description がありません: %s\n"
@@ -1451,287 +1551,276 @@ msgstr "オプションが多すぎます: %s\n"
msgid "Processing policies: %s\n"
msgstr "ポリシーの処理中: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "不正な正規表現 %s を無視します\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "%s のためのパイプ作成ができません: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "%s を実行できませんでした: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "%s のフォークに失敗しました: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s は失敗しました。 %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "%s へ全データの書き込みに失敗しました: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "%s の整数(long int)への変換に失敗しました。\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "空のファイル分類子\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "構成すべきファイル属性がありません。\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) に失敗しました: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load に失敗しました: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "ファイル \"%s\" の承認に失敗しました: モード %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "%s を検索しています: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "%s の検索に失敗しました:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "スペックファイル %s の問い合わせに失敗しました。解析できません。\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s はデルタ RPM で、直接インストールできません。\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "パッケージ %s 内にサポートしていないペイロード (%s) です。\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "パッケージ %s は既に追加されています。%s を飛ばします。\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "パッケージ %s は既に追加されています。 %s と置換します。\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(数字ではありません)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(base64 ではありません)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(不正なタイプ)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(blob ではありません)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(不正な XML タイプ)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(OpenPGP 署名ではありません)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "無効な日付 %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "通常"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "置換"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "未インストール"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "ネット共有"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "間違った色"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "見つかりません"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(不明) "
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(文字列でない)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s は %s として保存されました。\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s は %s として作成されました。\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: 削除に失敗しました: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "ディレクトリー"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "ファイル"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1952,7 +2041,7 @@ msgstr "データベースを更新しますが、ファイルシステムの変
msgid "do not verify package dependencies"
msgstr "パッケージの依存関係の検証を行いません。"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "ファイルのダイジェストを検証しません。"
@@ -2074,163 +2163,183 @@ msgstr "パッケージをアップグレードします。"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "すべてのパッケージについて問い合わせ/検証します。"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "rpm の署名検査モード"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "<file> を所有しているパッケージを問い合わせ/検証します。"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "グループに所属するパッケージを問い合わせ/検証します。"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "パッケージファイルの問い合わせ/検証をします。"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "パッケージ ID で問い合わせ/検証します。"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "ヘッダー ID でパッケージを問い合わせ/検証します。"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm 問い合わせモード"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "ヘッダー インスタンスの問い合わせ/検証をします。"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
"インストール トランザクションからのパッケージの問い合わせ/検証をします。"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "パッケージによってトリガーされるパッケージを問い合わせます。"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "RPM 検証モード"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "依存性を要求するパッケージの問い合わせ/検証をします。"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "依存性を提供するパッケージの問い合わせ/検証をします。"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "依存性を要求するパッケージの問い合わせ/検証をします。"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "依存性を要求するパッケージの問い合わせ/検証をします。"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "依存性を要求するパッケージの問い合わせ/検証をします。"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "依存性を要求するパッケージの問い合わせ/検証をします。"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "引数を glob パターンとしてみなしません。"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "リスト内の非パッケージファイルを処理しません。"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "全ての設定ファイルを列挙します。"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "全てのドキュメントファイルを列挙します。"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "基本的なファイル情報をダンプします。"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "パッケージ中のファイルを列挙します。"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "%%ghost ファイルをスキップします。"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "列挙したファイルの状態を表示します。"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "ファイル容量を検証しません。"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "ファイルのシンボリックリンクを検証しません。"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "ファイルの所有者を検証しません。"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "ファイルの所有グループを検証しません。"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "ファイルの最終更新日を検証しません。"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "ファイルのモードを検証しません。"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "ファイルのケーパビリティ (capability) を検証しません。"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "ファイルのセキュリティ コンテキストを検証しません。"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "パッケージ中のファイルを検証しません。"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "パッケージの依存関係を検証しません。"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "検証スクリプトを実行しません。"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "%s の rpmlib 機能が見つかりません:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "ソースパッケージが期待されますが、これはバイナリパッケージです\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "ソースパッケージに .spec ファイルがありません\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "アーカイブの伸長に失敗%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ": ファイル "
@@ -2305,98 +2414,118 @@ msgstr "%s に一致するパッケージは存在しません: %s\n"
msgid "no package requires %s\n"
msgstr "%s を必要とするパッケージは存在しません。\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "%s を必要とするパッケージは存在しません。\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "%s をトリガーするパッケージが存在しません。\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "%s を必要とするパッケージは存在しません。\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "%s を必要とするパッケージは存在しません。\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "%s を提供するパッケージは存在しません。\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "ファイル %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "ファイル %s はどのパッケージにも属していません。\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "無効なパッケージ番号: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "レコード %u は読み込めませんでした\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "パッケージ %s はインストールされていません。\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "不明なタグ: \"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: キー %d のインポートに失敗しました。\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: キー %d は ASCII 形式の公開鍵ではありません。\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: インポート読み込みに失敗しました(%d)。\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s: headerRead に失敗しました: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: 不変のヘッダー領域が読み込めませんでした。パッケージが壊れていません"
"か?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread に失敗しました: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "OK ではありません。"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr "(見つからない鍵:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr "(信頼できない鍵:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: オープンに失敗しました: %s\n"
@@ -2421,147 +2550,198 @@ msgstr "ルート ディレクトリーの変更に失敗しました: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "ルート ディレクトリーの復元に失敗しました: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NO "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "YES"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
"「PreReq:」「Provides:」「Obsoletes:」の依存関係をサポートしたバージョン。"
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"ファイル名が、パスではなく (dirName, baseName, dirIndex) の組で格納されます。"
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "パッケージ ペイロードが bzip2 を用いて圧縮できます。"
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "パッケージ ペイロードが xz を用いて圧縮できます。"
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "パッケージ ペイロードが lzma を用いて圧縮できます。"
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "パッケージ ペイロード ファイルが「./」接頭語を持っています。"
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "「パッケージ名-バージョン-リリース」が暗黙で提供されません。"
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "ヘッダー タグが読み込まれた後、常にソートされます。"
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "スクリプト インタプリターがヘッダーから引数を使用できます。"
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "ハードリンク ファイル群が完全でなくてもインストールできます。"
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"インストール中に、パッケージスクリプトが rpm データベースにアクセスできます。"
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "lua スクリプトの内部サポート。"
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "ファイルのダイジェストアルゴリズムはパッケージ毎の設定です"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "POSIX..1e ファイル ケーパビリティ (capability) のためのサポート"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "パッケージのスクリプトはインストール時間を長くすることができます。"
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "依存性の比較はチルダを持つバージョンをサポートします"
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "パッケージの依存関係の検証を行いません。"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "バージョン要件"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "無効な依存性"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "終端されていない %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "無効な依存性"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "ユーザー %s は存在しません - root を使用します\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "グループ %s は存在しません - root を使用します\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "不正なマジック"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "不正な/不可読なヘッダー"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "ヘッダーサイズが大きすぎます。"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "ファイルがアーカイブのために大きすぎます"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "不明なファイルタイプ"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "ダイジェストが適合しません"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "内部エラー"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "アーカイブファイルがヘッダーにありません。"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr "失敗 - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "%s のオープンに失敗: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: RPM パッケージ(またはパッケージのリスト)ではありません。\n"
@@ -2593,42 +2773,42 @@ msgstr "依存性の欠如:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: RPM パッケージ(またはパッケージのリスト)ではありません: %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s をインストールできません。\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "%s を取得中\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "%s をスキップします - 転送に失敗しました\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "パッケージ %s は再配置できません。\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "ファイル %s の読み込みエラー\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" は複数のパッケージを指定しています:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "%s を開けません: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "%s をインストール中です。\n"
@@ -2654,12 +2834,12 @@ msgstr "読み込みの失敗: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "rpm パッケージではありません。\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "%s ロックを(%s 上に)作成できません。(%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "%s ロックを待っています。(%s 上)\n"
@@ -2675,9 +2855,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "シンボル %s の解決に失敗: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "%s プラグインは読み込まれていません。\n"
+msgstr ""
#: lib/rpmplugins.c:199
#, c-format
@@ -2823,61 +3003,80 @@ msgstr "%s 用のアーキテクチャが見つかりません (%s:%d)\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "不正なオプションです: '%s' (%s:%d)\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
"補助ベクトルの読み込みに失敗しました、/proc がマウントされていないですか?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "不明なシステム: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "%s に連絡してください。\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "%s を読み込み用に開けません: %m。\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "カレントディレクトリを戻せません: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "<lua> スクリプトは組み込みでサポートしていません\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "%s の一時ファイルを作成できませんでした: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "ファイル ディスクリプターの複製ができません: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "アイコン %s を読むことができません: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "ルート ディレクトリーの復元に失敗しました: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite に失敗しました: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s スクリプトの実行に失敗しました。waitpid (%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s スクリプトの実行に失敗しました。シグナル %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s スクリプトの実行に失敗しました。終了ステータス %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "不明な書式"
@@ -2889,127 +3088,146 @@ msgstr "インストール"
msgid "erase"
msgstr "削除"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "%s にある Package データベースを開けません。\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "パッケージラベル中に余分な「(」があります: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "パッケージラベル中に「(」がありません: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "パッケージラベル中に「)」がありません: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: 公開鍵の読み込みに失敗しました。\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "トランザクション"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(OpenPGP 署名ではありません)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "署名ヘッダーの再読み込みができません。\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "ヘッダー "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 ダイジェスト:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "ヘッダー SHA1 ダイジェスト:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "ヘッダー "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "スキップした"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "失敗"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "%c %s が見つかりません。"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "%s のための依存性を満たしていません。\n"
@@ -3083,220 +3301,220 @@ msgstr "配列の繰り返し指定が、サイズが異なる配列の間で使
msgid "Generating %d missing index(es), please wait...\n"
msgstr "失われたインデックス %d を生成しています、お待ちください...\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "dbpath が設定されていません\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: スキップします。"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "エラー(%d) - レコード #%d を %s に格納時\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: 正規表現に失敗しました: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp に失敗しました: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: スキップします。"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
"rpmdb: 破損したヘッダーインスタンス #%u を取得しました。スキップします。\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: ヘッダーを読むことができません (0x%x)\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "dbpath が設定されていません。"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "ディレクトリー %s の作成に失敗しました: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "データベース中のヘッダー #%u は不正です -- スキップします。\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "元々 %u にあったレコードを追加できません。\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "データベースの再構築に失敗: オリジナルのデータベースは残っています。\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "古いデータベースを新しいデータベースで置き換えるのに失敗!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "復元するには %s 内のファイルを %s 内のファイルで置き換えて下さい"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "ディレクトリー %s の削除に失敗しました: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "不明なデータベースオプション: \"%s\" は無視します。\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s には不正な数値があります。スキップします\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s には大き/小さ過ぎるlong値があります。スキップします\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s には大き/小さ過ぎる整数値があります。スキップします\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "%sロックを獲得できません (%s/%s)\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "共有"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "排他"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "不正なインデックス形式 %x が %s/%s にあります\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "エラー(%d) \"%s\" レコードの %s インデックスから取得中: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "エラー(%d) - レコード \"%s\" を %s に格納時\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "エラー(%d) - レコード \"%s\" を %s から削除時\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "エラー(%d) - ヘッダー #%d レコードの追加時\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "エラー(%d) - ヘッダー #%d レコードの削除時\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "エラー(%d) - 新しいパッケージインスタンスの割り当て時\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "不明なデータベースオプション: \"%s\" は無視します。\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s には不正な数値があります。スキップします\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s には大き/小さ過ぎるlong値があります。スキップします\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s には大き/小さ過ぎる整数値があります。スキップします\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(空)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(空)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "マクロ %%%s はオプションが終端されていません。\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "マクロ %%%s はボディが終端していません。\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "マクロ %%%s は不正な名前です (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "マクロ %%%s のボディは空です。\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "マクロ %%%s の展開に失敗しました。\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "マクロ %%%s は不正な名前です (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "不明なオプション %c (%s(%s)中に)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3304,22 +3522,22 @@ msgstr ""
"マクロ展開の再帰呼び出しが深すぎます。これは再帰的マクロ定義が原因で発生して"
"いる可能性があります。\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "終端されていない %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "%% の後ろに構文解析できないマクロが続いています。\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== 有効 %d 空 %d\n"
@@ -3339,31 +3557,31 @@ msgstr "ファイル %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "ファイル %s は %u バイトより小さくなっています。\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "ディレクトリーの作成に失敗しました"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "lua スクリプトで不正な文法がありました: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "lua スクリプトで不正な文法がありました: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua スクリプトに失敗しました: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "lua ファイルに不正な文法がありました: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua のフックに失敗しました: %s\n"
@@ -3372,19 +3590,19 @@ msgstr "lua のフックに失敗しました: %s\n"
msgid "[none]"
msgstr "[なし]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(エラーなし)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "致命的なエラー: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "エラー: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "警告: "
@@ -3393,101 +3611,159 @@ msgstr "警告: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "メモリ割り当て (%u バイト) が NULL を返しました。\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s、鍵 ID %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(なし)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "一時ファイル %s の作成に失敗しました: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "一時ファイル %s の作成に失敗しました: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "一時ファイル %s の作成に失敗しました: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "ディレクトリー %s の作成に失敗しました: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite に失敗しました: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush に失敗しました: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "サポートされない PGP 署名\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "サポートされない PGP ハッシュアルゴリズム %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "サポートされない PGP 公開鍵アルゴリズム %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "署名のためのパイプ作成ができません: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "%s を実行できませんでした: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: オープンに失敗しました: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "%s ファイルを開けませんでした: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "%%files のファイル %s を開けません: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg の実行に失敗しました (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg が署名を書き込むのに失敗しました。\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "署名を読み込めませんでした。\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature に失敗しました: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature に失敗しました: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: headerRead に失敗しました: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp に失敗しました。\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "実行失敗\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: headerRead に失敗しました: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s はすでに同一の署名を含みます、スキップしています\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature に失敗しました: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "RPM v3 パッケージを署名できません\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s はすでに同一の署名を含みます、スキップしています\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature に失敗しました: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp に失敗しました。\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead に失敗しました: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "%s の置換に失敗: %s\n"
@@ -3501,86 +3777,24 @@ msgstr "%s: manifest の読み込みに失敗: %s\n"
msgid "don't verify header+payload signature"
msgstr "ヘッダーとペイロード署名を検証しません。"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "%s への Payload 書き込みに失敗: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "%s から Payload 読み込みに失敗: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "一時ファイルを開けません。\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "sigtarget %s のオープンに失敗: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "%s からヘッダー読み込みに失敗: %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "%s の整数(long int)への変換に失敗しました。\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "%s へのヘッダー書き込みに失敗: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "パスフレーズの入力: "
-#~ msgid "do not perform any collection actions"
-#~ msgstr "いかなる収集活動も行わないでください。"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "パスフレーズは正常です。\n"
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
#~ msgstr ""
-#~ "不変なヘッダー領域を読むことができませんでした。パッケージが壊れていません"
-#~ "か?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "%s に対するポリシーのデコードに失敗しました\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "%s の一時ファイルの作成に失敗しました: %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "%s ポリシーをファイル %s に書き込みに失敗しました\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "semanage ハンドルの作成に失敗しました。\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "ポリシーのハンドラーへの接続に失敗しました\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "ポリシーのトランザクションの開始に失敗しました: %s\n"
+#~ "パスフレーズのチェックに失敗しました、または GPG キーが失効しています\n"
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "一時ポリシーファイル %s の削除に失敗しました: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "不正な所有者/グループ: %s\n"
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "ポリシーモジュールのインストールに失敗しました: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "ポリシーモジュールの削除に失敗しました: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "プロセスのフォークに失敗: %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "%s の実行に失敗しました。%s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s が異常終了しました。\n"
-
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s が終了コード %i で失敗しました\n"
-
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "ポリシーの変更を確定した際にエラーが発生しました。\n"
-
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "restorecon パスの展開に失敗しました"
-
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "ファイルシステムのリラベルに失敗しました。ファイルはミスラベルされたかもし"
-#~ "れません。\n"
-
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "ファイルのコンテキストの再読み込みに失敗しました。ファイルは違うラベルがつ"
-#~ "けられたかもしれません。\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "%d 行目: 不正な文字 '-' : %s\n"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "%s からのポリシーの展開に失敗しました。\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "署名のためのパイプ作成ができません: %m"
diff --git a/po/ko.gmo b/po/ko.gmo
index eafb0e5e..18e60145 100644
--- a/po/ko.gmo
+++ b/po/ko.gmo
Binary files differ
diff --git a/po/ko.po b/po/ko.po
index 4536cfec..f2ad8343 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7,11 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Korean (http://www.transifex.com/projects/p/rpm/language/"
-"ko/)\n"
+"Language-Team: Korean (http://www.transifex.com/rpm-team/rpm/language/ko/)\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -80,8 +79,8 @@ msgstr "검증 옵션 (-V 또는 --verify 옵션과 함께 사용):"
msgid "Install/Upgrade/Erase options:"
msgstr "설치/업그레이드/삭제 옵션:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -101,7 +100,7 @@ msgstr "부적절한 질의 형식 입니다"
msgid "unexpected query source"
msgstr "부적절한 질의 소스 입니다"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "하나의 주(major) 모드만 지정할 수 있습니다"
@@ -203,7 +202,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "--root (-r) 옵션의 인수는 반드시 '/' 로 시작해야 합니다"
@@ -223,203 +222,249 @@ msgstr "질의에 필요한 인수가 지정되지 않았습니다"
msgid "no arguments given for verify"
msgstr "검증에 필요한 인수가 지정되지 않았습니다"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot는 이미 지정되어 있습니다, %s(을)를 무시합니다\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr "<spec파일>의 %prep (소스를 풀고 패치를 적용하는 과정)으로 제작합니다"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<spec파일>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "<spec파일>의 %build (%prep과 컴파일하는 과정)으로 제작합니다"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "<spec파일>의 %install (%prep, %build와 설치하는 과정)으로 제작합니다"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "<spec파일>의 %files 항목(section)을 검사합니다"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "<spec파일>로 소스와 바이너리 패키지를 제작합니다"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "<spec파일>로 바이너리 패키지 만을 제작합니다"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "<spec파일>로 소스 패키지 만을 제작합니다"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr "<spec파일>의 %prep (소스를 풀고 패치를 적용하는 과정)으로 제작합니다"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<소스 패키지>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "<spec파일>의 %build (%prep과 컴파일하는 과정)으로 제작합니다"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"<소스 패키지>를 %install (%prep, %build와 설치하는 과정)으로 제작합니다"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "<spec파일>의 %files 항목(section)을 검사합니다"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "<소스 패키지>로 바이너리 패키지를 제작합니다"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "<소스 패키지>로 바이너리 패키지를 제작합니다"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "<spec파일>로 소스 패키지 만을 제작합니다"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr "<tar파일>을 %prep (소스를 풀고 패치를 적용하는 과정)으로 제작합니다"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tar파일>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "<tar파일>을 %build (%prep과 컴파일하는 과정)으로 제작합니다"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "<tar파일>을 %install (%prep, %build와 설치하는 과정)으로 제작합니다"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "<tar파일>의 %files 항목(section)을 검사합니다"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "<tar파일>로 소스와 바이너리 패키지를 제작합니다"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "<tar파일>로 바이너리 패키지 만을 제작합니다"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "<tar파일>로 소스 패키지 만을 제작합니다"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "<소스 패키지>로 바이너리 패키지를 제작합니다"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<소스 패키지>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"<소스 패키지>를 %install (%prep, %build와 설치하는 과정)으로 제작합니다"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "buildroot를 교체(override)합니다"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+msgid "run build in current directory"
+msgstr ""
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "패키지 제작 후에 소스 파일을 풀고 작업한 디렉토리를 삭제합니다"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ExcludeArch를 무시함: spec 파일에서 지정(directive)됩니다"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "컴퓨터의 상태(state) 파일을 디버그 합니다"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "패키지 제작의 어떠한 단계도 실행하지 않습니다"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "패키지 제작 의존성을 검사하지 않습니다"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "패키지 제작의 어떠한 단계도 실행하지 않습니다"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "spec파일의 i18N msgstr을 사용(accept)하지 않습니다"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "패키지 제작 후에 소스 파일을 삭제합니다"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "패키지 제작 후에 spec파일을 삭제합니다"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "지정된 단계로 바로 진행합니다 (c,i 에서만 사용 가능)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "목표대상(target) 플랫폼을 교체(override)합니다"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"다음과 함께 사용하는 제작 옵션 [ <spec파일> | <tar파일> | <소스 패키지> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "%s spec 파일을 열 수 없음: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "tar 파이프를 여는데 실패함: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "%s spec 파일을 열 수 없음: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "%s에서 spec 파일을 읽는데 실패했습니다\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "%s의 이름을 %s(으)로 변경하는데 실패함: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "%s의 상태(stat)를 표시하는데 실패함: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "%s 파일은 정규(regular) 파일이 아닙니다.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "%s 파일은 spec 파일이 아닌 것 같습니다.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "목표대상(target) 플랫폼으로 제작 중: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "%s(을)를 제작하고 있습니다\n"
@@ -470,50 +515,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "<패키지파일>+"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "서명 옵션:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "%s(을)를 실행할 수 없음: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "매크로 파일 안에 반드시 \"%%_gpg_name\"을 설정해야 합니다\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "패스 구문(pass phrase) 입력: "
-
-#: rpmsign.c:127
-#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "패스 구문(pass phrase)이 일치합니다.\n"
-
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix 옵션은 최신의 패키지를 설치할 때에만 사용할 수 있습니다"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches 옵션은 패키지 삭제시에만 지정할 수 있습니다"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -530,7 +590,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "다음의 질의 형식을 사용하십시요"
@@ -631,218 +691,218 @@ msgstr "'&&' 와 '||' 는 문자열에서 사용할 수 없습니다\n"
msgid "syntax error in expression\n"
msgstr "표현식에서 구문 오류가 발생했습니다\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "%s %s에 '(' 가 없습니다\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "%s(%s에 ')' 가 없습니다\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "부적합한 %s 토큰: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "%2$s %3$s에 %1$s 가 없습니다\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "%s() 다음에 공백이 없음: %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "잘못된 구문: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "잘못된 모드 spec: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "잘못된 dir모드 spec: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "파일은 반드시 \"/\" 로 시작해야함: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "파일 목록이 중복됨: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "BuildRoot에 심볼릭링크함: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "파일을 찾을 수 없음: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "파일은 \"/\" 로 시작해야함: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "glob으로 파일을 찾을 수 없음: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "행: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "glob으로 파일을 찾을 수 없음: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "잘못된 파일: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "잘못된 소유자/그룹: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -861,89 +921,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "호스트명을 정규화(canonicalize) 할 수 없음: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "서명(signature) 헤더를 다시 읽어올 수 없습니다.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "고정 헤더 영역(immutable header region)을 생성할 수 없습니다.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "%s(을)를 열 수 없음: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "패키지를 작성할 수 없음: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "임시(temp) 헤더를 작성할 수 없습니다\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "잘못된 CSA 데이터\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "%s(을)를 실행할 수 없음: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread이 실패했습니다: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "작성: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "%s 패키지의 출력 파일명을 생성할 수 없음: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "%s(을)를 생성할 수 없음: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "%d 번째 행: 두번째 %s\n"
@@ -994,19 +1055,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "%d 번째 행: %%description에서 오류가 발생했습니다: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "%d 번째 행: %s(은)는 잘못된 옵션입니다: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "%d 번째 행: 이름이 너무 많습니다: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "%d 번째 행: 패키지가 존재하지 않습니다: %s\n"
@@ -1061,142 +1122,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "아키텍쳐가 제외됨: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "아키텍쳐가 포함되어 있지 않음: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "운영체제가 제외됨: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "운영체제가 포함되어 있지 않음: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "패키지에 반드시 %s 항목(field)을 포함해야함: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "패키지에 %s 항목(entry)이 중복되어 있음: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "%s 아이콘을 열 수 없음: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "%s 아이콘을 읽을 수 없음: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "알 수 없는 아이콘 유형: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "%d 번째 행: 태그에 하나의 토큰만 있습니다: %s\n"
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "%d 번째 행: 두번째 %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "%d 번째 행: 올바르지 못한 태그입니다: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "%d 번째 행: 태그가 비어있습니다: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "%d 번째 행: Prefixes는 절대 \"/\" 로 끝나서는 안됩니다: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "%d 번째 행: Docdir은 반드시 '/' 로 시작해야 합니다: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "%d 번째 행: 잘못된 %s: 수식자(qualifier): %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "%d 번째 행: 잘못된 BuildArchitecture 형식입니다: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "내부 오류: 보거스(Bogus) 태그 %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "잘못된 패키지 지정: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "패키지가 이미 존재함: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "%d 번째 행: 알 수 없는 태그입니다: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1206,161 +1271,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "잘못된 소스: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "%%setup에서 오류 발생: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "%d 번째 행: %%setup에 잘못된 인수가 있습니다: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "%d 번째 행: %%setup에 잘못된 %s 옵션: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "%d 번째 행: 두번째 %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "%d 번째 행: 트리거는 반드시 '--' 를 포함해야 합니다: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "%d 번째 행: %s에서 오류가 발생했습니다: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "%d 번째 행: 스크립트 프로그램은 반드시 '/' 로 시작해야 합니다: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "%d 번째 행: 두번째 %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "%d 번째 행: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "%s(을)를 열 수 없음: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: %%else가 %%if 없이 사용되었습니다\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%endif가 %%if 없이 사용되었습니다\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "패키지 제작에 호환하는 아키텍쳐를 찾을 수 없습니다\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "패키지에 %%description이 없음: %s\n"
@@ -1431,288 +1528,277 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "%s(을)를 실행할 수 없음: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "%s(을)를 fork 할 수 없음: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "%s(을)를 찾는데 실패함:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
"%s spec 파일을 질의하는데 실패했습니다, 파일을 처리(parse)할 수 없습니다\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(숫자가 아닙니다)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(base64가 아닙니다)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(부적합한 타입)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(BLOB[Binary Large OBject]이 아닙니다)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s(이)가 %s(으)로 저장되었습니다\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s(이)가 %s(으)로 생성되었습니다\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1936,7 +2022,7 @@ msgstr "파일시스템을 변경하지 않고, 데이터베이스를 갱신합
msgid "do not verify package dependencies"
msgstr "패키지의 의존성을 검사하지 않습니다"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2061,162 +2147,182 @@ msgstr "패키지를 업그레이드 합니다"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "모든 패키지에 대해 질의/검증합니다"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "파일이 들어있는 패키지에 대해 질의/검증 합니다"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "그룹 안의 패키지를 질의/검증 합니다"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "패키지 식별자(identifier)를 사용하여 패키지를 질의/검증 합니다"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "헤더 식별자(identifier)를 사용하여 패키지를 질의/검증 합니다"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm 질의 모드"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "설치 내용을 통해 패키지를 질의/검증 합니다"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "패키지로 인해 생성되는(triggered) 패키지에 대해 질의합니다"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm 검증 모드"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "의존성을 필요로 하는 패키지에 대해 질의/검증 합니다"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "의존성을 제공하는 패키지에 대해 질의/검증 합니다"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "의존성을 필요로 하는 패키지에 대해 질의/검증 합니다"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "의존성을 필요로 하는 패키지에 대해 질의/검증 합니다"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "의존성을 필요로 하는 패키지에 대해 질의/검증 합니다"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "의존성을 필요로 하는 패키지에 대해 질의/검증 합니다"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "모든 설정 파일을 나열합니다"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "모든 문서 파일을 나열합니다"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "기본 파일 정보를 보여줍니다"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "패키지 안의 파일을 나열합니다"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "%%ghost 파일을 생략합니다"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "나열된 파일의 상태(state)를 보여줍니다"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "파일의 용량을 검사하지 않습니다"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "파일의 심볼릭 링크 경로를 검사하지 않습니다"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "파일의 소유자를 검사하지 않습니다"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "파일의 그룹을 검사하지 않습니다"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "파일의 최종 변경 시간을 검사하지 않습니다"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "파일의 모드를 검사하지 않습니다"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "패키지 안의 파일을 검사하지 않습니다"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "패키지의 의존성을 검사하지 않습니다"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "소스 패키지가 필요하며, 바이너리가 검색되었습니다\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "소스 패키지에 .spec 파일이 포함되어 있지 않습니다\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "아카이브를 푸는데 실패함%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " 다음 파일의 "
@@ -2291,96 +2397,116 @@ msgstr "%s(와)과 일치하는 패키지가 없음: %s\n"
msgid "no package requires %s\n"
msgstr "%s(을)를 필요로 하는 패키지가 없습니다\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "%s(을)를 필요로 하는 패키지가 없습니다\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "%s(을)를 생성하는(trigger) 패키지가 없습니다\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "%s(을)를 필요로 하는 패키지가 없습니다\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "%s(을)를 필요로 하는 패키지가 없습니다\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "%s(을)를 제공하는 패키지가 없습니다\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "%s 파일: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "%s 파일은 어떤 패키지에도 들어있지 않습니다\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "부적합한 패키지 번호: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "%s 패키지가 설치되어 있지 않습니다\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread이 실패했습니다: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "올바르지 않음"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "확인"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (키를 찾을 수 없음:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (키를 신뢰할 수 없음:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: 여는데 실패했습니다: %s\n"
@@ -2405,144 +2531,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "아니오"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "예"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "패키지의 의존성을 검사하지 않습니다"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "%c(이)가 종료되지 않음: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "%s 사용자가 존재하지 않습니다 - root를 이용합니다\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "%s 그룹이 존재하지 않습니다 - root를 이용합니다\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "잘못된 magic 입니다"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "잘못된/읽을 수 없는 헤더입니다"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "헤더의 크기가 너무 큽니다"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "알 수 없는 파일 유형입니다"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "내부 오류"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "헤더에 아카이브 파일이 없습니다"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " 실패함 - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "%s(을)를 여는데 실패함: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2574,42 +2748,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s(은)는 설치할 수 없습니다\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "%s(을)를 복구합니다\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "%s 파일을 읽는 도중 오류가 발생했습니다\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "%s(을)를 열 수 없음: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "%s(을)를 설치합니다\n"
@@ -2635,12 +2809,12 @@ msgstr "읽는데 실패함: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2799,60 +2973,79 @@ msgstr "%2$s에 %1$s(을)를 위한 아키텍쳐가 없음:%3$d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "%2$s에 잘못된 '%1$s' 옵션:%3$d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "알 수 없는 시스템: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "%s 아이콘을 읽을 수 없음: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "%s 아이콘을 읽을 수 없음: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite이 실패했습니다: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2864,127 +3057,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "%s 안의 패키지 데이터베이스를 열 수 없습니다\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "서명(signature) 헤더를 다시 읽어올 수 없습니다.\n"
+
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3058,241 +3270,241 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "db경로가 설정되어 있지 않습니다\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: 0x%x의 헤더를 읽을 수 없습니다\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "db경로가 설정되어 있지 않습니다"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "%u에 처음부터 레코드를 추가할 수 없습니다\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"데이터베이스를 재구축하는데 실패함: 원본 데이터베이스는 그대로 유지됩니다\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "이전 데이터베이스를 새로운 데이터베이스로 교체하는데 실패했습니다!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "복구하기 위해 %2$s의 파일을 %1$s의 파일로 교체합니다"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "%s 디렉토리를 삭제하는데 실패함: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "인증되지 않은 db 옵션: \"%s\"(을)를 무시합니다.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s(은)는 부적합한 수치 값입니다, 생략합니다\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s(은)는 너무 크거나 너무 적은 정수(long) 값입니다, 생략합니다\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s(은)는 너무 크거나 너무 적은 정수(int) 값입니다, 생략합니다\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "%2$s/%3$s의 잠금된(lock) %1$s(을)를 얻을 수 없습니다\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "공유됨"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "폐쇄적(exclusive)"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "새로운 패키지를 배치하는 도중 오류(%d)가 발생했습니다\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "인증되지 않은 db 옵션: \"%s\"(을)를 무시합니다.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s(은)는 부적합한 수치 값입니다, 생략합니다\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s(은)는 너무 크거나 너무 적은 정수(long) 값입니다, 생략합니다\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s(은)는 너무 크거나 너무 적은 정수(int) 값입니다, 생략합니다\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(비어있음)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(비어있음)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "매크로 %%%s에 종료되지 않은 옵션이 있습니다\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "매크로 %%%s에 종료되지 않은 내용(body)이 있습니다\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "매크로 %%%s에 부적합한 이름이 있습니다 (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "매크로 %%%s에 비어있는 내용(body)이 있습니다\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "매크로 %%%s(을)를 확장(expand)하는데 실패했습니다\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "매크로 %%%s에 부적합한 이름이 있습니다 (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "%2$s(%3$s)에 알 수 없는 옵션 %1$c(이)가 있습니다\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "%c(이)가 종료되지 않음: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "'%%' 다음에 처리할 수 없는(unparseable) 매크로가 있습니다\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== %d 활성 %d 비어있음\n"
@@ -3312,31 +3524,31 @@ msgstr "%s 파일: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "%s 파일이 %u 바이트 보다 적습니다\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3345,19 +3557,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(오류 없음)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "치명적 오류: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "오류: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "경고: "
@@ -3366,101 +3578,159 @@ msgstr "경고: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "메모리 할당 값 (%u 바이트)이 NULL을 반환하였습니다.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "%s 파일을 읽는 도중 오류가 발생했습니다\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "%s 파일을 읽는 도중 오류가 발생했습니다\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "%s 디렉토리를 삭제하는데 실패함: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite이 실패했습니다: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr ""
+msgid "Could not exec %s: %s\n"
+msgstr "%s(을)를 실행할 수 없음: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: 여는데 실패했습니다: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "%s(을)를 실행할 수 없음: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "%s(을)를 실행할 수 없음: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg 서명을 작성하는데 실패했습니다\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "서명을 읽을 수 없습니다\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature이 실패했습니다: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmWriteSignature이 실패했습니다: %s\n"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "실행에 실패했습니다\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "실행에 실패했습니다\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "실행에 실패했습니다\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature이 실패했습니다: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead이 실패했습니다: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3474,20 +3744,11 @@ msgstr "%s: 읽는데 실패했습니다: %s\n"
msgid "don't verify header+payload signature"
msgstr ""
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "%s에 payload를 작성할 수 없음: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "%s의 payload를 읽을 수 없음: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "임시 파일을 열 수 없습니다.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "서명할 대상 %s(을)를 열 수 없음: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "패스 구문(pass phrase) 입력: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "%s의 헤더를 읽을 수 없음: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "패스 구문(pass phrase)이 일치합니다.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "%s에 헤더를 작성할 수 없음: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "잘못된 소유자/그룹: %s\n"
diff --git a/po/ms.gmo b/po/ms.gmo
index c6ae53a9..48b594d9 100644
--- a/po/ms.gmo
+++ b/po/ms.gmo
Binary files differ
diff --git a/po/ms.po b/po/ms.po
index 41657803..a4d246cb 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Malay (http://www.transifex.com/projects/p/rpm/language/ms/)\n"
+"Language-Team: Malay (http://www.transifex.com/rpm-team/rpm/language/ms/)\n"
"Language: ms\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -79,8 +79,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -100,7 +100,7 @@ msgstr ""
msgid "unexpected query source"
msgstr ""
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr ""
@@ -200,7 +200,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -220,201 +220,243 @@ msgstr ""
msgid "no arguments given for verify"
msgstr ""
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr ""
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr ""
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, c-format
+msgid "verify %files section from <source package>"
+msgstr ""
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr ""
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr ""
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr ""
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, c-format
+msgid "do not execute %prep stage of the build"
+msgstr ""
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr ""
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr ""
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr ""
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr ""
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr ""
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr ""
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr ""
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr ""
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr ""
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr ""
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr ""
@@ -463,48 +505,60 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
+#: rpmsign.c:36
+msgid "sign package(s) files"
msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Tidak dapat melaksana %s: %s\n"
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
+#: rpmsign.c:47
+msgid "Signature options:"
msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
+
+#: rpmsign.c:82
+msgid "--fskpass may only be specified when signing files"
+msgstr ""
+
+#: rpmsign.c:126
+msgid "--fskpath may only be specified when signing files"
msgstr ""
#: rpmspec.c:26
@@ -523,7 +577,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -621,218 +675,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr ""
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr ""
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr ""
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr ""
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr ""
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr ""
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
#, c-format
-msgid "Can't mix special %s with other forms: %s\n"
+msgid "File not found by glob: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1922
#, c-format
-msgid "More than one file on a line: %s\n"
+msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:1938
#, c-format
-msgid "Bad file: %s: %s\n"
+msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1978 build/parsePrep.c:33
+#: build/files.c:2068
#, c-format
-msgid "Bad owner/group: %s\n"
+msgid "Bad file: %s: %s\n"
msgstr ""
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -851,89 +905,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
-#, c-format
-msgid "Could not canonicalize hostname: %s\n"
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
+#: build/pack.c:183
+#, c-format
+msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr ""
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Tidak dapat melaksana %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: gagal membaca manifest: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr ""
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr ""
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -984,19 +1039,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr ""
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1051,142 +1106,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr ""
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "%s: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1196,161 +1255,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr ""
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr ""
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr ""
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1421,287 +1512,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr ""
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr ""
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr ""
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr ""
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr ""
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1919,7 +1999,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr ""
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2039,162 +2119,178 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr ""
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr ""
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr ""
+
+#: lib/poptQV.c:107
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr ""
+
+#: lib/poptQV.c:109
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr ""
+
+#: lib/poptQV.c:111
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr ""
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr ""
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr ""
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ""
@@ -2269,96 +2365,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr ""
-#: lib/query.c:391
+#: lib/query.c:390
+#, c-format
+msgid "no package recommends %s\n"
+msgstr ""
+
+#: lib/query.c:397
+#, c-format
+msgid "no package suggests %s\n"
+msgstr ""
+
+#: lib/query.c:404
+#, c-format
+msgid "no package supplements %s\n"
+msgstr ""
+
+#: lib/query.c:411
+#, c-format
+msgid "no package enhances %s\n"
+msgstr ""
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr ""
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr ""
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr ""
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr ""
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr ""
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr ""
@@ -2383,144 +2499,191 @@ msgstr "Tidak dapat untuk menukar direktori root: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr ""
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+msgid "support for rich dependencies."
+msgstr ""
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr ""
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr ""
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr ""
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr ""
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr ""
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2552,42 +2715,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr ""
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr ""
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr ""
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr ""
@@ -2613,12 +2776,12 @@ msgstr ""
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2776,60 +2939,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr ""
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Sistem tidak diketahui: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Sila hubungi %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Tidak dapat membuka %s untuk dibaca: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, c-format
+msgid "Unable to reset nice value: %s"
+msgstr ""
+
+#: lib/rpmscript.c:361
+#, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr ""
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "skrip lua gagal: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2841,127 +3023,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr ""
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "'(' tambahan dalam label pakej: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr ""
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Pengepala"
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Digest SHA1 pengepala:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Pengepala"
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Kebergantungan tidak dipenuhi untuk %s:\n"
@@ -3035,240 +3236,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec gagal: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp gagal: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "gagal untuk mencipta direktori %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "gagal untuk membuang direktori %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr ""
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "terkongsi"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr ""
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(kosong)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(kosong)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Makro %%%s gagal untuk mengembang\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Pilihan tidak diketahui %c dalam %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktif %d kosong %d\n"
@@ -3288,31 +3489,31 @@ msgstr ""
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "skrip lua gagal: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "pautan lua gagal: %s\n"
@@ -3321,19 +3522,19 @@ msgstr "pautan lua gagal: %s\n"
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(tiada ralat)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "ralat maut:"
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "ralat"
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr ""
@@ -3342,100 +3543,153 @@ msgstr ""
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "gagal untuk mencipta direktori %s: %s\n"
+
+#: sign/rpmgensig.c:66
+#, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "gagal untuk mencipta direktori %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr ""
+msgid "Could not exec %s: %s\n"
+msgstr "Tidak dapat melaksana %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
-msgid "fdopen failed\n"
+#: sign/rpmgensig.c:287
+msgid "Fopen failed\n"
msgstr ""
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Tidak dapat melaksana %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Tidak dapat melaksana %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "Pelaksanaan gpg gagal (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+msgid "generateSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:543
+msgid "rpmReadSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+msgid "headerReload failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+msgid "copyFile failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:621
+msgid "headerWrite failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
diff --git a/po/nb.gmo b/po/nb.gmo
index 1bcbdfcf..b7b6b156 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 8e476a3e..4fd6f32d 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/rpm/"
+"Language-Team: Norwegian Bokmål (http://www.transifex.com/rpm-team/rpm/"
"language/nb/)\n"
"Language: nb\n"
"MIME-Version: 1.0\n"
@@ -80,8 +80,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -101,7 +101,7 @@ msgstr "ventet spørringsformat"
msgid "unexpected query source"
msgstr "uventet spørringskilde"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "kun ett større modi kan spesifiseres"
@@ -206,7 +206,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -226,203 +226,250 @@ msgstr "ingen argumenter oppgitt for spørring"
msgid "no arguments given for verify"
msgstr "ingen argumenter oppgitt for verifisering"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "Feil under lesing av spec fil fra %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"bygg gjennom %prep (pakk ut kildekoden og legg til patcher) fra <specfil>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfil>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "bygg kilde- og binærpakker fra <specfil>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "spør pakke som eier <fil>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"bygg gjennom %prep (pakk ut kildekoden og legg til patcher) fra <specfil>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<kildepakke>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "bygg binær-pakke fra <kildepakke>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "verifiser %files seksjon fra <tarball>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "bygg binær-pakke fra <kildepakke>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "bygg binær-pakke fra <kildepakke>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "bygg binær-pakke fra <kildepakke>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"bygg gjennom %prep (pakk ut kildekoden og legg til patcher) fra <tarball>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "verifiser %files seksjon fra <tarball>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "bygg kilde- og binærpakker fra <tarball>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "bygg binær-pakke fra <kildepakke>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<kildepakke>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "fjern byggtreet når ferdig"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "ikke kjør noen %%pre skriptlet (hvis noen)"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "fjern kildekoden når ferdig"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr ""
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "hopp rett til spesifisert steg (kun for c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Kunne ikke åpne spec fil %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Kunne ikke åpne tar-rør: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Kunne ikke åpne spec fil %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Feil under lesing av spec-fil fra %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Feil under endring av navn fra %s til %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "kunne ikke kjøre stat på %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Fil %s er ikke en vanlig fil.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Fil %s ser ikke ut til å være en spec-fil.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Bygger målplattformene: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Bygger for mål %s\n"
@@ -471,50 +518,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "<pakkefil>+"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:39
+msgid "<key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Skriv inn passord: "
+#: rpmsign.c:47
+msgid "Signature options:"
+msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Passord er ok.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
+msgstr ""
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix kan kun brukes ved installasjon av nye pakker"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--prefix kan kun brukes ved installasjon av nye pakker"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -531,7 +593,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -632,218 +694,218 @@ msgstr "&& og || ikke støttet for strenger\n"
msgid "syntax error in expression\n"
msgstr "syntaksfeil i uttrykk\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Mangler '(' i %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Mangler ')' i %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Ugyldig %s-tegn: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Filen må begynne med \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Fil listet to ganger: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symbolsk lenke peker til BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Fil ikke funnet: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "Installerer %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr ""
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Ugyldig fil %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Ugyldig eier/gruppe: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -862,89 +924,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
-#, c-format
-msgid "Could not canonicalize hostname: %s\n"
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
+#: build/pack.c:183
+#, c-format
+msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Kunne ikke åpne %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Kunne ikke skrive pakke: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Ugyldige CSA-data\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Kunne ikke åpne %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread feilet: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Skrev: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr ""
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -995,19 +1058,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "linje %d: Ugyldig flagg %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1062,142 +1125,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s-felt må være tilstede i pakken: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Kunne ikke åpne ikon %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Kan ikke lese ikon %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Ukjent ikontype: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "linje %d: Tagg tar kun et enkelt tegn: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "linje %d: Ugyldig %s-nummer: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "linje %d: Feilutformet tagg: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "linje %d: Tom tagg: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "linje %d: Prefiks må ikke slutte på \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "linje %d: Docdir må begynne med '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "linje %d: Ugyldig %s: kvalifikatorer: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "linje %d: Ugyldig BuildArchitecture format: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Intern feil: Ugyldig tag %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Ugyldig pakkespesifikasjon: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Pakke eksisterer allerede: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "linje %d: Ukjent tagg: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1207,161 +1274,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "kunne ikke opprette %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Feil under lesing av %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "linje %d: Ugyldig argument til %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "linje %d: Ugyldig %%setup flagg %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "linje %d: %%prep for andre gang\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "linje %d: triggere må ha --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "linje %d: Feil under lesing av %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "linje %d: skriptprogram må begynne med '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "linje %d: Andre %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "linje %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Kan ikke åpne %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: %%else uten %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%endif uten %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Ingen kompatible arkitekturer funnet for bygging\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Pakken har ingen %%description: %s\n"
@@ -1432,287 +1531,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Kunne ikke kjøre %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "klarte ikke å åpne %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Klarte ikke å finne %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr ""
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s lagret som %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s opprettet som %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1932,7 +2020,7 @@ msgstr "oppdater databasen, men ikke modifiser filsystemet"
msgid "do not verify package dependencies"
msgstr "ikke verifiser pakkeavhengigheter"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2054,162 +2142,182 @@ msgstr "oppgrader pakke(r)"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "spør/verifiser alle pakker"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "spør/verifiser pakke(r) som eier fil"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "spør/verifiser pakke(r) i gruppe"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm spørremodus"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "spør pakker utløst av <pakke>"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "spør etter etter pakker som trenger <funk> funksjonalitet"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "spør etter pakker som tilbyr <funk> funksjonalitet"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "spør etter etter pakker som trenger <funk> funksjonalitet"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "spør etter etter pakker som trenger <funk> funksjonalitet"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "spør etter etter pakker som trenger <funk> funksjonalitet"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "spør etter etter pakker som trenger <funk> funksjonalitet"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr ""
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "ikke verifiser størrelse på filer"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "ikke verifiser sti til symbolske lenker for filer"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "ikke verifiser eier av filer"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "ikke verifiser gruppe for filer"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "ikke verifisert endringsdato for filer"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "ikke verifiser modus for filer"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "ikke verifiser filer i pakke"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "ikke verifiser pakkeavhengigheter"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "kildepakke forventet, binær funnet\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "kildepakke inneholder ikke en .spec-fil\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ""
@@ -2284,96 +2392,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr "ingen pakke krever %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "ingen pakke krever %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "ingen pakke utløser %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "ingen pakke krever %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "ingen pakke krever %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "ingen pakke gir %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "fil %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "filen %s eies ikke av noen pakke\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "ugyldig pakkenummer: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "pakke %s er ikke installert\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread feilet: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "IKKE OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ""
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ""
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: åpne feilet: %s\n"
@@ -2398,144 +2526,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NEI"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "JA"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "ikke verifiser pakkeavhengigheter"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Ugyldig magi"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Ugyldig/ulesbar header"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "For stor header"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Ukjent filtype"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Intern feil"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " feilet - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "feil under åpning av %s: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2567,42 +2743,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Henter %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "feil under lesing fra fil %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "kan ikke åpne %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Installerer %s\n"
@@ -2628,12 +2804,12 @@ msgstr "lesing feilet: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2791,60 +2967,79 @@ msgstr "manglende arkitektur for %s ved %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "ugyldig flagg '%s' ved %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr ""
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Kan ikke lese ikon %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Kan ikke lese ikon %s: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite feilet: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2856,127 +3051,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "kan ikke åpne pakkedatabase i %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
+msgstr ""
+
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3050,240 +3264,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
#, c-format
-msgid "cannot get %s lock on %s/%s\n"
+msgid "unrecognized db option: \"%s\" ignored.\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "shared"
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "exclusive"
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:337
#, c-format
-msgid "invalid index type %x on %s/%s\n"
+msgid "%s has too large or too small integer value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:797
#, c-format
-msgid "error(%d) getting \"%s\" records from %s index: %s\n"
+msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:904
-#, c-format
-msgid "error(%d) storing record \"%s\" into %s\n"
+#: lib/backend/db3.c:799
+msgid "shared"
msgstr ""
-#: lib/backend/db3.c:912
-#, c-format
-msgid "error(%d) removing record \"%s\" from %s\n"
+#: lib/backend/db3.c:799
+msgid "exclusive"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:881
#, c-format
-msgid "error(%d) adding header #%d record\n"
+msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1070
#, c-format
-msgid "error(%d) removing header #%d record\n"
+msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1100
#, c-format
-msgid "error(%d) allocating new package instance\n"
+msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
+#: lib/backend/db3.c:1108
#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
+msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:182
+#: lib/backend/db3.c:1210
#, c-format
-msgid "%s has invalid numeric value, skipped\n"
+msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:191
+#: lib/backend/db3.c:1219
#, c-format
-msgid "%s has too large or too small long value, skipped\n"
+msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:200
+#: lib/backend/db3.c:1274
#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
+msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr ""
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr ""
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr ""
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr ""
@@ -3303,31 +3517,31 @@ msgstr "Fil %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Fil %s er mindre enn %u bytes\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3336,19 +3550,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr ""
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "fatal feil: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "feil: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "advarsel: "
@@ -3357,101 +3571,159 @@ msgstr "advarsel: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "feil under lesing fra fil %s\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "feil under lesing fra fil %s\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, c-format
+msgid "error delete directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite feilet: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: åpne feilet: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Kunne ikke åpne %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Kunne ikke åpne %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature feilet: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmWriteSignature feilet: %s\n"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "kjøring feilet\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "kjøring feilet\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "kjøring feilet\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature feilet: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead feilet: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3465,20 +3737,11 @@ msgstr "%s: lesing av manifest feilet: %s\n"
msgid "don't verify header+payload signature"
msgstr ""
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Kunne ikke skrive \"payload\" til %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Kunne ikke lese \"payload\" fra %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Kunne ikke åpne spec fil %s: %s\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Kunne ikke åpne sigmål %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Skriv inn passord: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Kunne ikke åpne spec fil %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Passord er ok.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Kunne ikke skrive header til %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Ugyldig eier/gruppe: %s\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index d5e5c595..5ed141b5 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 12412619..4811b759 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Dutch (http://www.transifex.com/projects/p/rpm/language/nl/)\n"
+"Language-Team: Dutch (http://www.transifex.com/rpm-team/rpm/language/nl/)\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -79,8 +79,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -100,7 +100,7 @@ msgstr ""
msgid "unexpected query source"
msgstr ""
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr ""
@@ -200,7 +200,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -220,201 +220,243 @@ msgstr ""
msgid "no arguments given for verify"
msgstr ""
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr ""
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr ""
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, c-format
+msgid "verify %files section from <source package>"
+msgstr ""
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr ""
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr ""
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, c-format
+msgid "do not execute %prep stage of the build"
+msgstr ""
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr ""
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr ""
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr ""
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr ""
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr ""
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr ""
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr ""
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr ""
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr ""
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr ""
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr ""
@@ -463,48 +505,61 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "<pakketbestand>+"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:39
+msgid "<key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
+#: rpmsign.c:47
+msgid "Signature options:"
msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
+
+#: rpmsign.c:82
+msgid "--fskpass may only be specified when signing files"
+msgstr ""
+
+#: rpmsign.c:126
+msgid "--fskpath may only be specified when signing files"
msgstr ""
#: rpmspec.c:26
@@ -523,7 +578,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -621,218 +676,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Ontbrekende '(' in %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Ontbrekende ')' in %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr ""
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Ontbrekende %s in %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr ""
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr ""
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "regel: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
#, c-format
-msgid "Can't mix special %s with other forms: %s\n"
+msgid "File not found by glob: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1922
#, c-format
-msgid "More than one file on a line: %s\n"
+msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:1938
#, c-format
-msgid "Bad file: %s: %s\n"
+msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1978 build/parsePrep.c:33
+#: build/files.c:2068
#, c-format
-msgid "Bad owner/group: %s\n"
+msgid "Bad file: %s: %s\n"
msgstr ""
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -851,89 +906,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: regel: %s\n"
-#: build/pack.c:174
-#, c-format
-msgid "Could not canonicalize hostname: %s\n"
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
+#: build/pack.c:183
+#, c-format
+msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr ""
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
#, c-format
msgid "Could not seek in file %s: %s\n"
msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "lezen mislukt: %s (%d)\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr ""
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr ""
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -984,19 +1040,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr ""
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1051,142 +1107,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr ""
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "regel %d: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: regel: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1196,161 +1256,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr ""
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "regel %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr ""
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1421,287 +1513,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr ""
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr ""
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(geen getal)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(geen OpenPGP handtekening)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr ""
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr ""
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1919,7 +2000,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr ""
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2039,162 +2120,178 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr ""
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr ""
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr ""
+
+#: lib/poptQV.c:107
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr ""
+
+#: lib/poptQV.c:109
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr ""
+
+#: lib/poptQV.c:111
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr ""
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr ""
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr ""
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ""
@@ -2269,96 +2366,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr ""
-#: lib/query.c:391
+#: lib/query.c:390
+#, c-format
+msgid "no package recommends %s\n"
+msgstr ""
+
+#: lib/query.c:397
+#, c-format
+msgid "no package suggests %s\n"
+msgstr ""
+
+#: lib/query.c:404
+#, c-format
+msgid "no package supplements %s\n"
+msgstr ""
+
+#: lib/query.c:411
+#, c-format
+msgid "no package enhances %s\n"
+msgstr ""
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr ""
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "bestand %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr ""
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr ""
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr ""
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NIET OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (ONTBREKENDE SLEUTELS:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr ""
@@ -2383,144 +2500,191 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NEE "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "JA"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+msgid "support for rich dependencies."
+msgstr ""
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr ""
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr ""
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Onbekend bestandstype"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Interne fout"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " mislukt - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2552,42 +2716,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr ""
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr ""
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr ""
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr ""
@@ -2613,12 +2777,12 @@ msgstr "lezen mislukt: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2776,60 +2940,79 @@ msgstr "ontbrekende architectuur voor %s op %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr ""
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Onbekend systeem: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, c-format
+msgid "Unable to reset nice value: %s"
+msgstr ""
+
+#: lib/rpmscript.c:361
+#, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr ""
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "lezen mislukt: %s (%d)\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2841,127 +3024,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr ""
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "ontbrekende '(' in pakketlabel: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "ontbrekende ')' in pakketlabel: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(geen OpenPGP handtekening)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
+msgstr ""
+
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "ontbrekende %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3035,240 +3237,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
#, c-format
-msgid "cannot get %s lock on %s/%s\n"
+msgid "unrecognized db option: \"%s\" ignored.\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "shared"
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "exclusive"
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:337
#, c-format
-msgid "invalid index type %x on %s/%s\n"
+msgid "%s has too large or too small integer value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:797
#, c-format
-msgid "error(%d) getting \"%s\" records from %s index: %s\n"
+msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:904
-#, c-format
-msgid "error(%d) storing record \"%s\" into %s\n"
+#: lib/backend/db3.c:799
+msgid "shared"
msgstr ""
-#: lib/backend/db3.c:912
-#, c-format
-msgid "error(%d) removing record \"%s\" from %s\n"
+#: lib/backend/db3.c:799
+msgid "exclusive"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:881
#, c-format
-msgid "error(%d) adding header #%d record\n"
+msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1070
#, c-format
-msgid "error(%d) removing header #%d record\n"
+msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1100
#, c-format
-msgid "error(%d) allocating new package instance\n"
+msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
+#: lib/backend/db3.c:1108
#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
+msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:182
+#: lib/backend/db3.c:1210
#, c-format
-msgid "%s has invalid numeric value, skipped\n"
+msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:191
+#: lib/backend/db3.c:1219
#, c-format
-msgid "%s has too large or too small long value, skipped\n"
+msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:200
+#: lib/backend/db3.c:1274
#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
+msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(leeg)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(leeg)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Onbekende optie %c in %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== actief %d leeg %d\n"
@@ -3288,31 +3490,31 @@ msgstr ""
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3321,19 +3523,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(geen fout)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "fatale fout: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "fout: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "waarschuwing: "
@@ -3342,99 +3544,154 @@ msgstr "waarschuwing: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:66
+#, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, c-format
+msgid "error delete directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
-msgid "fdopen failed\n"
-msgstr ""
+#: sign/rpmgensig.c:287
+#, fuzzy
+msgid "Fopen failed\n"
+msgstr " mislukt - "
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
msgstr ""
-#: sign/rpmgensig.c:285
+#: sign/rpmgensig.c:309
#, c-format
msgid "Could not read from file %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg uitvoeren mislukt (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+msgid "generateSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:543
+msgid "rpmReadSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+msgid "headerReload failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+msgid "copyFile failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:621
+msgid "headerWrite failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
diff --git a/po/pl.gmo b/po/pl.gmo
index 61a4e355..edb284e5 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 0c0fc5aa..b6764eb3 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,17 +6,16 @@
# Arkadiusz Miskiewicz <arekm@pld-linux.org>, 2003
# Jakub Bogusz <qboosh@pld-linux.org>, 2002
# Paweł Dziekoński <pdziekonski@mml.ch.pwr.wroc.pl>, 1999
-# Piotr Drąg <piotrdrag@gmail.com>, 2007,2011-2012
+# Piotr Drąg <piotrdrag@gmail.com>, 2007,2011-2012,2014-2015
# Wojciech Drapiński <wojciech.drapinski@zie.pg.gda.pl>, 1999
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 16:05+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-08-27 16:17+0000\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
-"Language-Team: Polish (http://www.transifex.com/projects/p/rpm/language/"
-"pl/)\n"
+"Language-Team: Polish (http://www.transifex.com/rpm-team/rpm/language/pl/)\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -37,7 +36,7 @@ msgstr "RPM wersja %s\n"
#: cliutils.c:32
#, c-format
msgid "Copyright (C) 1998-2002 - Red Hat, Inc.\n"
-msgstr "Copyright (C) 1998-2002 - Red Hat, Inc.\n"
+msgstr "Copyright (C) 1998-2002 — Red Hat, Inc.\n"
#: cliutils.c:33
#, c-format
@@ -88,8 +87,8 @@ msgstr "Opcje sprawdzania (z -V lub --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Opcje instalacji/aktualizacji/usuwania:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Wspólne opcje dla wszystkich trybów i plików binarnych RPM:"
@@ -109,7 +108,7 @@ msgstr "nieoczekiwany format zapytania"
msgid "unexpected query source"
msgstr "nieoczekiwane źródło zapytania"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "może być podany tylko jeden główny tryb pracy"
@@ -217,7 +216,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr "--test można podać tylko podczas instalacji i usuwania pakietów"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "parametry dla --root (-r) muszą zaczynać się od /"
@@ -237,208 +236,256 @@ msgstr "nie podano parametrów dla zapytania"
msgid "no arguments given for verify"
msgstr "nie podano parametrów dla sprawdzenia"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot został już podany, ignorowanie %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"zbudowanie przez %prep (rozpakowanie źródeł i nałożenie łat) z <pliku-spec>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<plik-spec>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "zbudowanie przez %build (%prep i skompilowanie) z <pliku-spec>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"zbudowanie przez %install (%prep, %build i zainstalowanie) z <pliku-spec>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "sprawdzenie sekcji %files z <pliku-spec>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "zbudowanie pakietu źródłowego i binarnego z <pliku-spec>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "zbudowanie tylko pakietu binarnego z <pliku-spec>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "zbudowanie tylko pakietu źródłowego z <pliku-spec>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"zbudowanie przez %prep (rozpakowanie źródeł i nałożenie łat) z <pliku-spec>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<pakiet-źródłowy>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "zbudowanie przez %build (%prep i skompilowanie) z <pliku-spec>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"zbudowanie przez %install (%prep, %build i zainstalowanie) z <pakietu-"
+"źródłowego>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "sprawdzenie sekcji %files z <pliku-spec>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "zbudowanie pakietu binarnego z <pakietu-źródłowego>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "zbudowanie pakietu binarnego z <pakietu-źródłowego>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "zbudowanie tylko pakietu źródłowego z <pliku-spec>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"zbudowanie przez %prep (rozpakowanie źródeł i nałożenie łat) z <pliku-tar>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<plik-tar>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "zbudowanie przez %build (%prep oraz skompilowanie) z <pliku-tar>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"zbudowanie przez %install (%prep, %build i zainstalowanie) z <pliku-tar>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "sprawdzenie sekcji %files z <pliku-tar>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "zbudowanie pakietu źródłowego i binarnego z <pliku-tar>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "zbudowanie tylko pakietu binarnego z <pliku-tar>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "zbudowanie tylko pakietu źródłowego z <pliku-tar>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "zbudowanie pakietu binarnego z <pakietu-źródłowego>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<pakiet-źródłowy>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"zbudowanie przez %install (%prep, %build i zainstalowanie) z <pakietu-"
-"źródłowego>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "zastąpienie build root"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Nie można otworzyć bieżącego katalogu: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "usunięcie drzewa budowania po ukończeniu"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "zignorowanie dyrektywy ExcludeArch: z pliku spec"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "debugowanie maszyny stanów plików"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "bez wykonania żadnych etapów budowania"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "bez sprawdzania zależności budowania"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
"utworzenie nagłówków pakietu zgodnych z (przestarzałymi) pakietami RPM v3"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "bez wykonywania etapu budowania %clean"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "bez wykonywania etapu budowania %clean"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "bez wykonywania etapu budowania %check"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "bez akceptowania wpisów msgstr i18n z pliku spec"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "usunięcie źródeł po ukończeniu"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "usunięcie pliku spec po ukończeniu"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "przejście od razu do podanego etapu (tylko dla c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "zastąpienie platformy docelowej"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Opcje budowania z [ <plik-spec> | <plik-tar> | <pakiet-źródłowy> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Niespełnione zależności budowania:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Nie można otworzyć pliku spec %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Otwarcie potoku tar się nie powiodło: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Więcej niż jeden plik na wiersz: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Odczytanie pliku spec z %s się nie powiodło\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Zmiana nazwy %s na %s się nie powiodła: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "wykonanie stat na %s się nie powiodło: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Plik %s nie jest zwykłym plikiem.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Plik %s nie wygląda na plik spec.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Budowanie dla platform docelowych: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Budowanie dla %s\n"
@@ -489,49 +536,64 @@ msgstr "wyświetlenie listy kluczy z bazy kluczy RPM"
msgid "Keyring options:"
msgstr "Opcje bazy kluczy:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "nie podano parametrów"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "podpisanie pakietów"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "podpisanie pakietów (identyczne z --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "usunięcie podpisów pakietów"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "podpisanie pakietów"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Opcje podpisu:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Nie można wykonać %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
-msgstr "Należy ustawić \"%%_gpg_name\" w pliku makr\n"
-
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Proszę podać hasło: "
+msgstr "Należy ustawić „%%_gpg_name” w pliku makr\n"
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Hasło jest dobre.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "Sprawdzenie hasła się nie powiodło lub klucz GPG wygasł\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix można użyć tylko podczas instalowania nowych pakietów"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches można podać tylko podczas usuwania pakietów"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -550,7 +612,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr "działa na źródłowych pakietach RPM utworzonych przez plik spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "użycie następującego formatu zapytania"
@@ -651,201 +713,201 @@ msgstr "&& i || nie są obsługiwane dla ciągów\n"
msgid "syntax error in expression\n"
msgstr "błąd składni w wyrażeniu\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
-msgstr "Brak \"(\" w %s %s\n"
+msgstr "Brak „(” w %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
-msgstr "Brak \")\" w %s(%s\n"
+msgstr "Brak „)” w %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Nieprawidłowy token %s: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Brak %s w %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Brak białego znaku po %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Błędna składnia: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Błędny tryb spec: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Błędny tryb katalogu spec: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
-msgstr "Niezwykła długość lokalizacji: \"%s\" w %%lang(%s)\n"
+msgstr "Niezwykła długość lokalizacji: „%s” w %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Podwójna lokalizacja %s w %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Nieprawidłowa możliwość: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Obsługa możliwości plików nie jest wbudowana\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
-msgstr "Plik musi zaczynać się od \"/\": %s\n"
+msgstr "Plik musi zaczynać się od „/”: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Nieznany algorytm skrótu pliku %u, używanie w zamian MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Plik podany dwukrotnie: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "odczytanie dowiązania symbolicznego %s się nie powiodło: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Dowiązanie symboliczne wskazuje na BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr "Ścieżka jest poza buildroot: %s\n"
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Nie odnaleziono katalogu: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Nie odnaleziono pliku: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr "Nie jest katalogiem: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: nie można wczytać nieznanego znacznika (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: odczytanie klucza publicznego się nie powiodło.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: nie jest opakowanym kluczem publicznym.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: odkodowanie się nie powiodło\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
-msgstr "Plik musi zaczynać się od \"/\": %s\n"
+msgstr "Plik musi zaczynać się od „/”: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "Wyrażenie regularne %%dev nie jest dozwolone: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "Katalog nie został odnaleziony przez wyrażenie regularne: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Nie odnaleziono pliku przez wyrażenie regularne: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Nie można otworzyć pliku %s w %%files: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "wiersz: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr "Pusty plik %s w %%files\n"
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Błąd podczas odczytywania pliku %s w %%files: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "illegal _docdir_fmt %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Nie odnaleziono pliku przez wyrażenie regularne: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "Nie można mieszać specjalnego %s z innymi formami: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Więcej niż jeden plik na wiersz: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Błędny plik: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Błędny właściciel/grupa: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Sprawdzanie niespakietowanych plików: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -854,19 +916,19 @@ msgstr ""
"Odnaleziono zainstalowane (ale niespakietowane) pliki:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Przetwarzanie plików: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
"Architektura plików binarnych (%d) nie zgadza się z architekturą pakietu "
"(%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Pliki binarne zależne od architektury w pakiecie noarch\n"
@@ -885,89 +947,90 @@ msgstr "utworzenie archiwum się nie powiodło: %s\n"
msgid "Could not open %s file: %s\n"
msgstr "Nie można otworzyć pliku %s: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: wiersz: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Nie można ustalić kanonicznej nazwy komputera: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Nie można ponownie wczytać nagłówka podpisu.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Nieznana kompresja danych: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Nie można utworzyć niezmiennej części nagłówka.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Nie można otworzyć %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Nie można zapisać pakietu: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Nie można zapisać tymczasowego nagłówka\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Błędne dane CSA\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Nie można otworzyć pliku %s: %s\n"
+msgstr "Nie można wyszukać w pliku %s: %s\n"
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "utworzenie archiwum się nie powiodło na pliku %s: %s\n"
+msgstr "„Fread” się nie powiodło w %s: %s\n"
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Zapisano: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
-msgstr "Wykonywanie \"%s\":\n"
+msgstr "Wykonywanie „%s”:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
-msgstr "Wykonanie \"%s\" się nie powiodło.\n"
+msgstr "Wykonanie „%s” się nie powiodło.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
-msgstr "Sprawdzenie pakietu \"%s\" się nie powiodło.\n"
+msgstr "Sprawdzenie pakietu „%s” się nie powiodło.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Nie można utworzyć wyjściowej nazwy pliku dla pakietu %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "nie można utworzyć %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "wiersz %d: drugi %s\n"
@@ -1018,19 +1081,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "wiersz %d: błąd podczas przetwarzania %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "wiersz %d: błędna opcja %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "wiersz %d: za dużo nazw: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "wiersz %d: pakiet nie istnieje: %s\n"
@@ -1085,309 +1148,346 @@ msgstr "Pobieranie %s do %s\n"
msgid "Couldn't download %s\n"
msgstr "Nie można pobrać %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Architektura jest wykluczona: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Architektura nie jest dołączona: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "System operacyjny jest wykluczony: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "System operacyjny nie jest dołączony: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "Pole %s musi być obecne w pakiecie: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Powtórzone wpisy %s w pakiecie: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Nie można otworzyć ikony %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Nie można odczytać ikony %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Nieznany typ ikony: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "wiersz %d: znacznik przyjmuje tylko jeden token: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr "wiersz %d: niedozwolony znak \"%c\" w: %s\n"
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "wiersz %d: niedozwolony znak w: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
+msgstr "wiersz %d: niedozwolony znak „%c” w: %s\n"
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
-msgstr "wiersz %d: niedozwolona sekwencja \"..\" w: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
+msgstr "wiersz %d: niedozwolona sekwencja „..” w: %s\n"
+
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "wiersz %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: wiersz: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "wiersz %d: błędnie sformowany znacznik: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "wiersz %d: pusty znacznik: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
-msgstr "wiersz %d: przedrostki nie mogą kończyć się na \"/\": %s\n"
+msgstr "wiersz %d: przedrostki nie mogą kończyć się na „/”: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
-msgstr "wiersz %d: Docdir musi zaczynać się od \"/\": %s\n"
+msgstr "wiersz %d: Docdir musi zaczynać się od „/”: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "wiersz %d: pole Epoch musi być niepodpisaną liczbą: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "wiersz %d: błędne określenia %s: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "wiersz %d: błędny format BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "wiersz %d: obsługiwane są tylko podpakiety noarch: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Wewnętrzny błąd: fałszywy znacznik %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "wiersz %d: %s jest przestarzałe: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Błędna specyfikacja pakietu: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Pakiet już istnieje: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "wiersz %d: nieznany znacznik: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} nie może być puste\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
-msgstr "%%{buildroot} nie może być \"/\"\n"
+msgstr "%%{buildroot} nie może być „/”\n"
#: build/parsePrep.c:28
#, c-format
msgid "Bad source: %s: %s\n"
msgstr "Błędne źródło: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Brak łaty numer %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
-msgstr "%%patch bez odpowiadającego mu znacznika \"Patch:\"\n"
+msgstr "%%patch bez odpowiadającego mu znacznika „Patch:”\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Brak źródła numer %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
-msgstr "Brak znacznika \"Source:\" w pliku spec\n"
+msgstr "Brak znacznika „Source:” w pliku spec\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Błąd podczas przetwarzania %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "wiersz %d: błędny parametr dla %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "wiersz %d: błędna opcja %%setup %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Nieprawidłowy numer łaty %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "wiersz %d: drugie %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-"Tokeny zależności muszą zaczynać się od znaków alfanumerycznych, \"_\" lub "
-"\"/\""
+"Tokeny zależności muszą zaczynać się od znaków alfanumerycznych, „_” lub „/”"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "Wersja w nazwie pliku jest niedozwolona"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Wersja jest wymagana"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "nieprawidłowa zależność"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Wersja jest wymagana"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "wiersz %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "wiersz %d: wyzwalacze muszą posiadać --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "wiersz %d: błąd podczas przetwarzania %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
-msgstr "wiersz %d: wewnętrzny skrypt musi kończyć się \">\": %s\n"
+msgstr "wiersz %d: wewnętrzny skrypt musi kończyć się „>”: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
-msgstr "wiersz %d: program skryptu musi zaczynać się od \"/\": %s\n"
+msgstr "wiersz %d: program skryptu musi zaczynać się od „/”: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+"wiersz %d: parametry interpretatora nie są dozwolone w wyzwalaczach: %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "wiersz %d: drugi %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "wiersz %d: wewnętrzny skrypt jest nieobsługiwany: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
"wiersz %d: parametry interpretatora nie są dozwolone w wyzwalaczach: %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "wiersz %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Nie można otworzyć %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d: oczekiwano parametru dla %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "wiersz %d: niezamknięte %%if\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "wiersz %d: niezamknięte makro lub błędna kontynuacja wiersza\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: błędny warunek %%if\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: napotkano %%else bez %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: napotkano %%endif bez %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d: błędnie sformatowany zwrot %%include\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Nie odnaleziono zgodnych architektur do zbudowania\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Pakiet nie posiada %%description: %s\n"
@@ -1395,12 +1495,12 @@ msgstr "Pakiet nie posiada %%description: %s\n"
#: build/policies.c:87
#, c-format
msgid "Policy module '%s' duplicated with overlapping types\n"
-msgstr "Moduł polityki \"%s\" posiada kopię z pokrywającymi się typami\n"
+msgstr "Moduł polityki „%s” posiada kopię z pokrywającymi się typami\n"
#: build/policies.c:93
#, c-format
msgid "Base modules '%s' and '%s' have overlapping types\n"
-msgstr "Podstawowe moduły \"%s\" i \"%s\" posiadają pokrywające się typy\n"
+msgstr "Podstawowe moduły „%s” i „%s” posiadają pokrywające się typy\n"
#: build/policies.c:101
msgid "Failed to get policies from header\n"
@@ -1432,8 +1532,8 @@ msgid ""
"'%s' type given with other types in %%semodule %s. Compacting types to "
"'%s'.\n"
msgstr ""
-"Typ \"%s\" został podany razem z innymi typami w %%semodule %s. "
-"Kompaktowanie typów do \"%s\".\n"
+"Typ „%s” został podany razem z innymi typami w %%semodule %s. Kompaktowanie "
+"typów do „%s”.\n"
#: build/policies.c:246
#, c-format
@@ -1460,288 +1560,277 @@ msgstr "Za dużo parametrów w wierszu: %s\n"
msgid "Processing policies: %s\n"
msgstr "Przetwarzanie polityk: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Ignorowanie nieprawidłowego wyrażenia regularnego %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Nie można utworzyć potoku dla %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Nie można wykonać %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Nie można rozdzielić %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s się nie powiodło: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "zapisanie wszystkich danych do %s się nie powiodło: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr "błędny operator"
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr "błędny format"
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr "nieprawidłowa zależność (%s): %s\n"
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Konwersja %s na długą liczbę całkowitą się nie powiodła.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "Pusty klasyfikator pliku\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Brak skonfigurowanych atrybutów plików\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) się nie powiodło: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load się nie powiodło: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
-msgstr "Rozpoznanie pliku \"%s\" się nie powiodło: tryb %06o %s\n"
+msgstr "Rozpoznanie pliku „%s” się nie powiodło: tryb %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Wyszukiwanie %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Odnalezienie %s się nie powiodło:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "odpytanie pliku spec %s się nie powiodło, nie można przetworzyć\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
"%s jest pakietem RPM Delta i nie może zostać bezpośrednio zainstalowany\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Nieobsługiwane dane (%s) w pakiecie %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "pakiet %s został już dodany, pomijanie %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "pakiet %s został już dodany, zastępowanie %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(nie jest liczbą)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(nie jest base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(nieprawidłowy typ)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
-msgstr "(nie jest \"blob\")"
+msgstr "(nie jest „blob”)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(nieprawidłowy typ XML)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(nie jest podpisem OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Nieprawidłowa data %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "zwykły"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "zastąpiony"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "niezainstalowany"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "udostępniony w sieci"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "błędny kolor"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "brak"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(nieznany)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(nie jest ciągiem)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s zapisano jako %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s utworzono jako %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: usunięcie się nie powiodło: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "katalog"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "plik"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr "nie można sprawdzić podpisu %s"
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr "znacznik[%d]: BŁĘDNY, znacznik %d typ %d offset %d licznik %d"
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr "hdr SHA1: BŁĘDNY, nie jest szesnastkowy"
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr "hdr RSA: BŁĘDNY, nie jest binarny"
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr "hdr DSA: BŁĘDNY, nie jest binarny"
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr "znacznik regionu: BŁĘDNY, znacznik %d typ %d offset %d licznik %d"
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr "offset regionu: BŁĘDNY, znacznik %d typ %d offset %d licznik %d"
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr "zakończenie regionu: BŁĘDNE, znacznik %d typ %d offset %d licznik %d"
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr "rozmiar regionu: BŁĘDNY, ril(%d) > il(%d)"
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr "rozmiar blob(%d): BŁĘDNY, 8 + 16 * il(%d) + dl(%d)"
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr "rozmiar hdr(%d): BŁĘDNY, odczytanie zwróciło %d"
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr "magic hdr: BŁĘDNE"
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr "znaczniki hdr: BŁĘDNE, liczba znaczników(%d) jest poza zakresem"
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr "dane hdr: BŁĘDNE, liczba bajtów(%d) jest poza zakresem"
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr "blob hdr(%zd): BŁĘDNE, odczytanie zwróciło %d"
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr "load hdr: BŁĘDNE"
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr "\"Fread\" się nie powiodło: %s"
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1756,7 +1845,7 @@ msgstr "wcześniejsze określenie MAKRA z wartością WYRAŻENIE"
#: lib/poptALL.c:176 lib/poptALL.c:179
msgid "'MACRO EXPR'"
-msgstr "\"MAKRO WYRAŻENIE\""
+msgstr "„MAKRO WYRAŻENIE”"
#: lib/poptALL.c:178
msgid "define MACRO with value EXPR"
@@ -1776,19 +1865,19 @@ msgstr "wyświetlenie rozwinięcia makr z WYRAŻENIA"
#: lib/poptALL.c:185
msgid "'EXPR'"
-msgstr "\"WYRAŻENIE\""
+msgstr "„WYRAŻENIE”"
#: lib/poptALL.c:187 lib/poptALL.c:206
msgid "read <FILE:...> instead of default file(s)"
-msgstr "odczytanie <PLIK:...> zamiast domyślnych plików"
+msgstr "odczytanie <PLIK:…> zamiast domyślnych plików"
#: lib/poptALL.c:188 lib/poptALL.c:207
msgid "<FILE:...>"
-msgstr "<PLIK:...>"
+msgstr "<PLIK:…>"
#: lib/poptALL.c:193
msgid "don't enable any plugins"
-msgstr ""
+msgstr "bez włączania wtyczek"
#: lib/poptALL.c:196
msgid "don't verify package digest(s)"
@@ -1965,7 +2054,7 @@ msgstr "zaktualizowanie bazy danych, ale bez modyfikacji systemu plików"
msgid "do not verify package dependencies"
msgstr "bez sprawdzania zależności pakietu"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "bez sprawdzania skrótów plików"
@@ -2087,162 +2176,182 @@ msgstr "zaktualizowanie pakietów"
msgid "reinstall package(s)"
msgstr "ponowne zainstalowanie pakietów"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "odpytanie/sprawdzenie wszystkich pakietów"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "tryb sprawdzania podpisów pakietów RPM"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "odpytanie/sprawdzenie pakietów zawierających plik"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "odpytanie/sprawdzenie pakietów w grupie"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "odpytanie/sprawdzenie pliku pakietu"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "odpytanie/sprawdzenie pakietów z identyfikatorem pakietu"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "odpytanie/sprawdzenie pakietów z identyfikatorem nagłówka"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "tryb odpytywania pakietów RPM"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "odpytanie/sprawdzenie instancji nagłówka"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "odpytanie/sprawdzenie pakietów z transakcji instalacji"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "odpytanie pakietów wyzwalanych przez pakiet"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "tryb sprawdzania pakietów RPM"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "odpytanie/sprawdzenie pakietów wymagających zależności"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "odpytanie/sprawdzenie pakietów dostarczających zależność"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "odpytanie/sprawdzenie pakietów wymagających zależności"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "odpytanie/sprawdzenie pakietów wymagających zależności"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "odpytanie/sprawdzenie pakietów wymagających zależności"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "odpytanie/sprawdzenie pakietów wymagających zależności"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "bez używania wyrażeń regularnych w parametrach"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "bez przetwarzania plików nie będących pakietami jako manifesty"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "wyświetlenie listy wszystkich plików konfiguracyjnych"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "wyświetlenie listy wszystkich plików dokumentacji"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr "wyświetlenie listy wszystkich plików licencji"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "zrzucenie podstawowych informacji o pliku"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "wyświetlenie listy plików pakietu"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "pominięcie plików %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "wyświetlenie stanu wyświetlonych plików"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "bez sprawdzania rozmiaru plików"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "bez sprawdzania ścieżek dowiązań symbolicznych plików"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "bez sprawdzania właścicieli plików"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "bez sprawdzania grup plików"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "bez sprawdzania czasu modyfikacji plików"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "bez sprawdzania trybu plików"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "bez sprawdzania możliwości plików"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "bez sprawdzania kontekstów bezpieczeństwa plików"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "bez sprawdzania plików pakietu"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "bez sprawdzania zależności pakietu"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "bez wykonania żadnych skryptów sprawdzania"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Brak funkcji rpmlib dla %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "oczekiwano pakietu źródłowego, odnaleziono binarny\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "pakiet źródłowy nie zawiera pliku .spec\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "rozpakowanie archiwum się nie powiodło%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " na pliku "
@@ -2317,97 +2426,117 @@ msgstr "brak pakietów pasujących do %s: %s\n"
msgid "no package requires %s\n"
msgstr "brak pakietów wymagających %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "brak pakietów wymagających %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "brak pakietów wyzwalających %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "brak pakietów wymagających %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "brak pakietów wymagających %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "brak pakietów dostarczających %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "plik %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "plik %s nie należy do żadnego pakietu\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "nieprawidłowy numer pakietu: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "nie można odczytać wpisu %u\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "pakiet %s nie jest zainstalowany\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
-msgstr "nieznany znacznik: \"%s\"\n"
+msgstr "nieznany znacznik: „%s”\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: zaimportowanie klucza %d się nie powiodło.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: klucz %d nie jest opakowanym kluczem publicznym.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: zaimportowanie read się nie powiodło(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s: headerRead się nie powiodło: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: nie można odczytać niezmiennego regionu nagłówka. Uszkodzony pakiet?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
-msgstr "%s: Fread się nie powiodło: %s\n"
+msgstr "%s: „Fread” się nie powiodło: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NIE DOBRZE"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (BRAK KLUCZY:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (NIEZAUFANE KLUCZE:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: otwarcie się nie powiodło: %s\n"
@@ -2432,147 +2561,198 @@ msgstr "Nie można zmienić katalogu roota: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Nie można przywrócić katalogu roota: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NIE "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "TAK"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "Zależności PreReq:, Provides: i Obsoletes: obsługują wersje."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"nazwy plików przechowano jako krotka (dirName,baseName,dirIndex), a nie jako "
"ścieżki."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "dane pakietu mogą zostać skompresowane używając bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "dane pakietu mogą zostać skompresowane używając xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "dane pakietu mogą zostać skompresowane używając lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
-msgstr "pliki danych pakietu posiadają przedrostek \"./\"."
+msgstr "pliki danych pakietu posiadają przedrostek „./”."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "pakiet nazwa-wersja-wydanie nie jest domyślnie dostarczany."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "znaczniki nagłówka są zawsze porządkowane po wczytaniu."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "interpreter skryptów może używać parametrów z nagłówka."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "plik twardego dowiązania może zostać zainstalowany bez ukończenia."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"skrypty pakietu mogą odwoływać się do bazy danych RPM podczas instalowania."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "wewnętrzna obsługa skryptów Lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "algorytm skrótu pliku jest konfigurowalny dla każdego pakietu osobno"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "obsługa możliwości plików POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "skrypty pakietu mogą być rozszerzane w czasie instalacji."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "rozwiązywanie zależności obsługuje wersje zawierające tyldę."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr "obsługa plików większych niż 4 GB"
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "bez sprawdzania zależności pakietu"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Wersja jest wymagana"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "nieprawidłowa zależność"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Niezakończone %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "nieprawidłowa zależność"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
-msgstr "użytkownik %s nie istnieje - używanie roota\n"
+msgstr "użytkownik %s nie istnieje — używanie roota\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
-msgstr "grupa %s nie istnieje - używanie roota\n"
+msgstr "grupa %s nie istnieje — używanie roota\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Błędne magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Błędny/nieczytelny nagłówek"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Rozmiar nagłówka jest za duży"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "Plik jest za duży dla archiwum"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Nieznany typ pliku"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr "Brak plików"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Skrót nie zgadza się"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Wewnętrzny błąd"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Plik archiwum nie znajduje się w nagłówku"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
-msgstr " się nie powiodło - "
+msgstr " się nie powiodło — "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr "%s: (błąd 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "otwarcie %s się nie powiodło: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: nie jest pakietem RPM (ani manifestem pakietu)\n"
@@ -2580,20 +2760,20 @@ msgstr "%s: nie jest pakietem RPM (ani manifestem pakietu)\n"
#: lib/rpminstall.c:141
#, c-format
msgid "Updating / installing...\n"
-msgstr "Aktualizowanie/instalowanie...\n"
+msgstr "Aktualizowanie/instalowanie…\n"
#: lib/rpminstall.c:143
#, c-format
msgid "Cleaning up / removing...\n"
-msgstr "Czyszczenie/usuwanie...\n"
+msgstr "Czyszczenie/usuwanie…\n"
#: lib/rpminstall.c:192
msgid "Preparing..."
-msgstr "Przygotowywanie..."
+msgstr "Przygotowywanie…"
#: lib/rpminstall.c:194
msgid "Preparing packages..."
-msgstr "Przygotowywanie pakietów..."
+msgstr "Przygotowywanie pakietów…"
#: lib/rpminstall.c:270 tools/rpmgraph.c:168
msgid "Failed dependencies:\n"
@@ -2604,42 +2784,42 @@ msgstr "Niespełnione zależności:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: nie jest pakietem RPM (ani manifestem pakietu): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s nie może zostać zainstalowany\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Pobieranie %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
-msgstr "pomijanie %s - przesłanie się nie powiodło\n"
+msgstr "pomijanie %s — przesłanie się nie powiodło\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "pakiet %s nie jest przesuwalny\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "błąd podczas odczytywania z pliku %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
-msgstr "\"%s\" podaje wiele pakietów:\n"
+msgstr "„%s” podaje wiele pakietów:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "nie można otworzyć %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Instalowanie %s\n"
@@ -2665,12 +2845,12 @@ msgstr "odczytanie się nie powiodło: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "nie jest pakietem RPM\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "nie można utworzyć blokady %s na %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "oczekiwanie na blokadę %s na %s\n"
@@ -2686,9 +2866,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Rozwiązanie symbolu %s się nie powiodło: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Wtyczka %s nie jest wczytana\n"
+msgstr "Wtyczka %%__%s_%s nie jest skonfigurowana\n"
#: lib/rpmplugins.c:199
#, c-format
@@ -2771,7 +2951,7 @@ msgstr "wystąpił nieznany błąd %d podczas manipulowania pakietem %s"
#: lib/rpmrc.c:222
#, c-format
msgid "missing second ':' at %s:%d\n"
-msgstr "brak drugiego \":\" w %s:%d\n"
+msgstr "brak drugiego „:” w %s:%d\n"
#: lib/rpmrc.c:225
#, c-format
@@ -2806,7 +2986,7 @@ msgstr "Za dużo parametrów w domyślnym wierszu w %s:%d\n"
#: lib/rpmrc.c:523
#, c-format
msgid "missing ':' (found 0x%02x) at %s:%d\n"
-msgstr "brak \":\" (odnaleziono 0x%02x) w %s:%d\n"
+msgstr "brak „:” (odnaleziono 0x%02x) w %s:%d\n"
#: lib/rpmrc.c:540 lib/rpmrc.c:572
#, c-format
@@ -2826,63 +3006,82 @@ msgstr "brak architektury dla %s w %s:%d\n"
#: lib/rpmrc.c:632
#, c-format
msgid "bad option '%s' at %s:%d\n"
-msgstr "błędna opcja \"%s\" w %s:%d\n"
+msgstr "błędna opcja „%s” w %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
"Odczytanie pomocniczego wektora się nie powiodło, nie zamontowano /proc?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Nieznany system: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Proszę skontaktować się z %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Nie można otworzyć %s do odczytania: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "Nie można przywrócić bieżącego katalogu: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "Obsługa skryptów <lua> nie jest wbudowana\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Nie można utworzyć pliku tymczasowego dla %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Nie można utworzyć kopii deskryptora pliku: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Nie można odczytać ikony %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Nie można przywrócić katalogu roota: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: „Fwrite” się nie powiodło: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "Skrypt %s się nie powiódł, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "Skrypt %s się nie powiódł, sygnał %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "Skrypt %s się nie powiódł, stan wyjścia %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Nieznany format"
@@ -2894,127 +3093,146 @@ msgstr "instalacja"
msgid "erase"
msgstr "usunięcie"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "nie można otworzyć bazy danych pakietów w %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
-msgstr "dodatkowe \"(\" w etykiecie pakietu: %s\n"
+msgstr "dodatkowe „(” w etykiecie pakietu: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
-msgstr "brak \"(\" w etykiecie pakietu: %s\n"
+msgstr "brak „(” w etykiecie pakietu: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
-msgstr "brak \")\" w etykiecie pakietu: %s\n"
+msgstr "brak „)” w etykiecie pakietu: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: odczytanie klucza publicznego się nie powiodło.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "transakcji"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(nie jest podpisem OpenPGP)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr "rozmiar sigh(%d): BŁĘDNY, odczytanie zwróciło %d"
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr "magic sigh: BŁĘDNE"
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr "znaczniki sigh: BŁĘDNE, liczba znaczników(%d) jest poza zakresem"
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr "dane sigh: BŁĘDNE, liczba bajtów(%d) jest poza zakresem"
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr "blob sigh(%d): BŁĘDNE, odczytanie zwróciło %d"
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr "znacznik sigh(%d): BŁĘDNY, znacznik %d typ %d offset %d licznik %d"
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr "load sigh: BŁĘDNE"
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr "pad sigh(%zd): BŁĘDNE, odczyt %zd bajtów"
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr "sigSize sigh(%zd): BŁĘDNE, fstat(2) się nie powiodło"
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Nie można ponownie wczytać nagłówka podpisu.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Nagłówek "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "Skrót MD5:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Skrót SHA1 nagłówka:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Nagłówek "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr "Sprawdzenie podpisu: BŁĘDNE PARAMETRY (%d %p %d %p %p)"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "pominięto"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
-msgstr "nie powiodło się"
+msgstr "się nie powiodło"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
-msgstr ""
+msgstr "Podwójna nazwa użytkownika lub UID dla użytkownika %s\n"
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
-msgstr ""
+msgstr "Podwójna nazwa grupy lub GID dla grupy %s\n"
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr "brak stanu"
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr "nieznany stan"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "brak %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Niespełnione zależności dla %s:\n"
@@ -3086,223 +3304,223 @@ msgstr "iterator tablicy użyty na tablicach o różnych rozmiarach"
#: lib/rpmdb.c:71
#, c-format
msgid "Generating %d missing index(es), please wait...\n"
-msgstr "Tworzenie %d brakujących indeksów, proszę czekać...\n"
+msgstr "Tworzenie %d brakujących indeksów, proszę czekać…\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
-msgstr "nie można otworzyć indeksu %s używając %s - %s (%d)\n"
+msgstr "nie można otworzyć indeksu %s używając %s — %s (%d)\n"
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "ścieżka bazy danych nie została ustawiona\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: pomijanie"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "błąd(%d) podczas zapisywania wpisu #%d do %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec się nie powiodło: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp się nie powiodło: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: pomijanie"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
-msgstr "rpmdb: pobrano uszkodzony nagłówek #%u - pomijanie.\n"
+msgstr "rpmdb: pobrano uszkodzony nagłówek #%u — pomijanie.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: nie można odczytać nagłówka pod 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "ścieżka bazy danych nie została ustawiona"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "utworzenie katalogu %s się nie powiodło: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
-msgstr "nagłówek #%u w bazie danych jest błędny - pomijanie.\n"
+msgstr "nagłówek #%u w bazie danych jest błędny — pomijanie.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "nie można dodać wpisu będącego pierwotnie przy %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"przebudowanie bazy danych się nie powiodło: pierwotna baza danych pozostała "
"na miejscu\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "zamiana poprzedniej bazy danych na nową się nie powiodła.\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "aby odzyskać, należy zastąpić pliki w %s plikami z %s"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "usunięcie katalogu %s się nie powiodło: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr "%s błąd(%d) z %s: %s\n"
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr "%s błąd(%d): %s\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "nierozpoznana opcja bazy danych: zignorowano „%s”.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s ma nieprawidłową wartość liczbową, pominięto\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s ma za dużą lub za małą wartość long, pominięto\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s ma za dużą lub za małą wartość całkowitą, pominięto\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "nie można otrzymać blokady %s na %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "współdzielonej"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "wyłącznej"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "nieprawidłowy typ indeksu %x w %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
-msgstr "błąd(%d) podczas uzyskiwania wpisów \"%s\" z indeksu %s: %s\n"
+msgstr "błąd(%d) podczas uzyskiwania wpisów „%s” z indeksu %s: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
-msgstr "błąd(%d) podczas zapisywania wpisu \"%s\" do %s\n"
+msgstr "błąd(%d) podczas zapisywania wpisu „%s” do %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
-msgstr "błąd(%d) usuwania wpisu \"%s\" z %s\n"
+msgstr "błąd(%d) usuwania wpisu „%s” z %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "błąd(%d) podczas dodawania wpisu nagłówka #%d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "błąd(%d) podczas usuwania wpisu nagłówka #%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "błąd(%d) podczas przydzielania nowej instancji pakietu\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "nierozpoznana opcja bazy danych: \"%s\" zignorowano.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s ma nieprawidłową wartość liczbową, pominięto\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s ma za dużą lub za małą wartość long, pominięto\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s ma za dużą lub za małą wartość całkowitą, pominięto\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(puste)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(puste)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Makro %%%s posiada niezakończone opcje\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Makro %%%s posiada niezakończone ciało\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Makro %%%s posiada niedozwoloną nazwę (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Makro %%%s posiada puste ciało\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr "Makro %%%s wymaga spacji przed treścią\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Rozwinięcie makra %%%s się nie powiodło\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Makro %%%s posiada niedozwoloną nazwę (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr "Określono makro %%%s, ale nie jest używane w ramach zakresu\n"
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Nieznana opcja %c w %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3310,22 +3528,22 @@ msgstr ""
"Za dużo poziomów rekurencji w rozwinięciu makra. Prawdopodobnie jest to "
"spowodowane rekurencyjną deklaracją makra.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Niezakończone %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Makro niemożliwe do przetworzenia po %%\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr "wczytanie pliku makra %s się nie powiodło"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktywne %d puste %d\n"
@@ -3345,31 +3563,31 @@ msgstr "Plik %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Plik %s jest mniejszy niż %u bajtów\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "utworzenie katalogu się nie powiodło"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "nieprawidłowa składnia skryptu Lua: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "nieprawidłowa składnia skryptu Lua: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "skrypt Lua się nie powiódł: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "nieprawidłowa składnia pliku Lua: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "hak Lua się nie powiódł: %s\n"
@@ -3378,19 +3596,19 @@ msgstr "hak Lua się nie powiódł: %s\n"
msgid "[none]"
msgstr "[brak]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(brak błędu)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "krytyczny błąd: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "błąd: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "ostrzeżenie: "
@@ -3399,101 +3617,159 @@ msgstr "ostrzeżenie: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "przydzielenie pamięci (%u bajtów) zwróciło NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, identyfikator klucza %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(brak)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "błąd podczas tworzenia pliku tymczasowego %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "błąd podczas tworzenia pliku tymczasowego %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "błąd podczas tworzenia pliku tymczasowego %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "utworzenie katalogu %s się nie powiodło: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
-msgstr "%s: Fwrite się nie powiodło: %s\n"
+msgstr "%s: „Fwrite” się nie powiodło: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
-msgstr "%s: Fflush się nie powiodło: %s\n"
+msgstr "%s: „Fflush” się nie powiodło: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Nieobsługiwany podpis PGP\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "Nieobsługiwany algorytm mieszania PGP %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "Nieobsługiwany algorytm klucza publicznego PGP %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Nie można utworzyć potoku do podpisania: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Nie można wykonać %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
-msgstr "%s: otwarcie się nie powiodło: %s\n"
+msgid "Fopen failed\n"
+msgstr "„fdopen” się nie powiodło\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Nie można otworzyć pliku %s: %s\n"
+msgstr "Nie można zapisać do potoku\n"
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Nie można otworzyć pliku %s w %%files: %m\n"
+msgstr "Nie można odczytać z pliku %s: %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "wykonanie gpg się nie powiodło (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "zapisanie podpisu przez gpg się nie powiodło\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "nie można odczytać podpisu\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature się nie powiodło: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature się nie powiodło: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: headerRead się nie powiodło: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp się nie powiodło\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "„fdopen” się nie powiodło\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: headerRead się nie powiodło: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s zawiera już identyczny podpis, pomijanie\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature się nie powiodło: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "Nie można podpisywać pakietów RPM v3\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s zawiera już identyczny podpis, pomijanie\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature się nie powiodło: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp się nie powiodło\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead się nie powiodło: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "zastąpienie %s się nie powiodło: %s\n"
@@ -3507,88 +3783,29 @@ msgstr "%s: odczytanie manifestu się nie powiodło: %s\n"
msgid "don't verify header+payload signature"
msgstr "bez sprawdzania podpisu nagłówka+danych"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Nie można zapisać danych do %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Nie można odczytać danych z %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Nie można otworzyć pliku tymczasowego.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Nie można otworzyć sigtarget %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Nie można odczytać nagłówka z %s: %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Nie można zapisać nagłówka do %s: %s\n"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "bez wykonywania żadnych działań kolekcji"
-
-#~ msgid "Failed to expand %%__%s_%s macro\n"
-#~ msgstr "Rozwinięcie makra %%__%s_%s się nie powiodło\n"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr ""
-#~ "Nie można odczytać niezmiennego regionu nagłówka. Uszkodzony pakiet?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Odkodowanie polityki dla %s się nie powiodło\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Utworzenie pliku tymczasowego dla %s się nie powiodło: %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Zapisanie polityki %s do pliku %s się nie powiodło\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Utworzenie obsługi semanage się nie powiodło\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Połączenie z obsługą polityki się nie powiodło\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Rozpoczęcie transakcji polityki się nie powiodło: %s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "Usunięcie tymczasowego pliku polityki %s się nie powiodło: %s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Zainstalowanie modułu polityki się nie powiodło: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Usunięcie modułu polityki się nie powiodło: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Rozdzielenie procesu się nie powiodło: %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Konwersja %s na długą liczbę całkowitą się nie powiodła.\n"
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Wykonanie %s się nie powiodło: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Proszę podać hasło: "
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s zostało nienormalnie zakończone\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Hasło jest dobre.\n"
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s nie powiodło się z kodem wyjścia %i\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr "Sprawdzenie hasła się nie powiodło lub klucz GPG wygasł\n"
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Wprowadzenie zmian w polityce się nie powiodło\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Błędny właściciel/grupa: %s\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Rozwinięcie makra restorecon się nie powiodło"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "wiersz %d: niedozwolony znak w: %s\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Ponowne nadanie etykiet systemowi plików się nie powiodło. Pliki mogą "
-#~ "posiadać błędne etykiety\n"
+#~ msgid "%s has unverifiable signature"
+#~ msgstr "nie można sprawdzić podpisu %s"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Ponowne wczytanie kontekstów plików się nie powiodło. Pliki mogą posiadać "
-#~ "błędne etykiety\n"
+#~ msgid "Fread failed: %s"
+#~ msgstr "„Fread” się nie powiodło: %s"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Wydobycie polityki z %s się nie powiodło\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Nie można utworzyć potoku do podpisania: %m"
diff --git a/po/pt.gmo b/po/pt.gmo
index abdae4e8..9e4c6638 100644
--- a/po/pt.gmo
+++ b/po/pt.gmo
Binary files differ
diff --git a/po/pt.po b/po/pt.po
index d6934214..4466de22 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Portuguese (http://www.transifex.com/projects/p/rpm/language/"
+"Language-Team: Portuguese (http://www.transifex.com/rpm-team/rpm/language/"
"pt/)\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
@@ -80,8 +80,8 @@ msgstr "Opções de verificação (com o -V ou o --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Opções de Instalação/Actualização/Remoção:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -101,7 +101,7 @@ msgstr "formato de pesquisa inesperado"
msgid "unexpected query source"
msgstr "origem de pesquisa inesperada"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "só pode ser especificado um 'major mode'"
@@ -208,7 +208,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "os argumentos do --root (-r) têm de começar por /"
@@ -228,208 +228,256 @@ msgstr "não foram indicados argumentos para a pesquisa"
msgid "no arguments given for verify"
msgstr "não foram indicados argumentos para a verificação"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "O buildroot já foi especificado, a ignorar o %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"criar através do %prep (desempacotar o código e aplicar patches) do "
"<fichspec>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<fichspec>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "criar através do %build (%prep e depois compilar) do <fichspec>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"criar através do %install (%prep, %build e depois instalar) do <fichspec>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "verificar a secção %files do <fichspec>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "criar os pacotes binários e de código a partir do <fichspec>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "criar só o pacote binário a partir do <fichspec>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "criar só o pacote com código-fonte a partir do <fichspec>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"criar através do %prep (desempacotar o código e aplicar patches) do "
+"<fichspec>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<pacote de código>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "criar através do %build (%prep e depois compilar) do <fichspec>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"criar através do %install (%prep, %build e depois instalar) do <pacote de "
+"código>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "verificar a secção %files do <fichspec>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "criar o pacote binário a partir do <pacote de código>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "criar o pacote binário a partir do <pacote de código>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "criar só o pacote com código-fonte a partir do <fichspec>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"criar através do %prep (desempacotar o código e aplicar patches) do <fichtar>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<fichtar>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "criar através do %build (%prep e depois compilar) do <fichtar>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"criar através do %install (%prep, %build e depois instalar) do <fichtar>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "verificar a secção %files do <fichtar>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "criar os pacotes binários e de código a partir do <fichtar>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "criar só o pacote binário a partir do <fichtar>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "criar só o pacote com código-fonte a partir do <fichtar>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "criar o pacote binário a partir do <pacote de código>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<pacote de código>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"criar através do %install (%prep, %build e depois instalar) do <pacote de "
-"código>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "ignorar a raiz de criação"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+msgid "run build in current directory"
+msgstr ""
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "apagar as directorias de criação quando acabar"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignorar as directivas ExcludeArch: do ficheiro spec"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "depurar máquina de estados de ficheiros"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "não executar nenhuma etapa da criação"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "não verificar as dependências de compilação"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "não executar nenhuma etapa da criação"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "não aceitar as mensagens de i18N do ficheiro spec"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "apagar o código-fonte quando acabar"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "apagar o ficheiro spec quando acabar"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "saltar directamente para a etapa indicada (só para c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "ignorar a plataforma-alvo"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Opções de criação com [ <fich spec> | <fich tar> | <pacote fonte> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Não consegui abrir ficheiro spec %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Não consegui abrir o 'pipe' para o tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Não consegui abrir ficheiro spec %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Não consegui ler o ficheiro spec do %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Não consegui mudar o nome de %s para %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "Não consegui analisar o %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "O ficheiro %s não é um ficheiro normal.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "O ficheiro %s não parece ser um ficheiro spec.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "A construir plataformas alvo: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "A construir para o alvo %s\n"
@@ -480,50 +528,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "<pacote>+"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Opções de assinatura:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Não consegui executar %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Precisa definir o \"%%_gpg_name\" no seu ficheiro de macros\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Indique a palavra-chave: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "A palavra-chave está correcta.\n"
-
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "o --prefix só pode ser usado ao instalar pacotes novos"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "o --allmatches só pode ser indicado ao apagar o pacote"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -540,7 +603,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "usar o formato de pesquisa seguinte"
@@ -641,218 +704,218 @@ msgstr "&& e || não suportados em cadeias de caracteres\n"
msgid "syntax error in expression\n"
msgstr "erro de sintaxe na expressão\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Falta um '(' em %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Falta um ')' em %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Elemento %s inválido: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Falta um %s em %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Carácter sem ser espaço a seguir a %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Sintaxe inválida: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Spec de modo inválido: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Spec de dirmode inválido: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "O ficheiro tem de começar por \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Ficheiro listado duas vezes: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "A 'symlink' aponta para a BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Ficheiro não encontrado: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "O ficheiro precisa de começar por \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Ficheiro não encontrado pelo glob: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "linha: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Ficheiro não encontrado pelo glob: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Ficheiro inválido: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Dono/grupo inválido: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -871,91 +934,92 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Não consegui canonizar o nome da máquina: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Não consegui reler o cabeçalho do assinatura.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Não consegui criar região imutável do cabeçalho.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Não consigo aceder ao %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Não consegui gravar o pacote: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
"Não consegui gravar o cabeçalho temporário\n"
"\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Dados de CSA inválidos\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Não consegui executar %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: O fread falhou: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Gravei: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Não consigo gerar o ficheiro de saída para o pacote %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "não consigo criar o %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "linha %d: segundo %s\n"
@@ -1006,19 +1070,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "linha %d: Erro ao analisar a %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "linha %d: Opção inválida %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "linha %d: Demasiados nomes: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "linha %d: O pacote não existe: %s\n"
@@ -1073,142 +1137,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "A arquitectura está excluída: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "A arquitectura não está incluída: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "O SO está excluído: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "O SO não está incluído: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "O campo %s tem de estar presente no pacote: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Entradas %s duplicadas no pacote: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Não consegui abrir o ícone %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Não consegui ler o ícone %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Tipo de ícone desconhecido: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "linha %d: Opção só recebe um parâmetro: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "linha %d: segundo %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "Linha %d: Opção inválida: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "linha %d: Opção em branco: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "linha %d: Os prefixos não podem acabar em \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "linha %d: A docdir tem de começar por '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "linha %d: Qualificadores %s: inválidos: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "linha %d: Formato da BuildArchitecture inválido: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Erro interno: Opção esquisita %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Descrição do pacote inválida: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "O pacote já existe: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "linha %d: Opção desconhecida: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1218,161 +1286,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "Código-fonte inválido: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Erro ao analisar o %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "linha %d: Argumento inválido para %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "linha %d: Opção inválida do %%setup %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "linha %d: segundo %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "linha %d: os 'triggers' (que activam) têm de ter --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "linha %d: Erro ao analisar o %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "linha %d: o programa de 'script' tem de começar por '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "linha %d: Segundo %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "linha %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Incapaz de aceder ao %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Descobri um %%else sem um %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Descobri um %%endif sem um %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Não foram encontradas arquitecturas compatíveis para as quais criar\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "O pacote não tem uma %%description: %s\n"
@@ -1443,287 +1543,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Não consegui executar o %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Não consegui executar à parte o %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Não consegui encontrar o %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "a pesquisa do ficheiro spec %s falhou, não consigo analisar\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(não é um número)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(não é um base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(tipo inválido)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(não é um blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s gravado como %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s criado como %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1945,7 +2034,7 @@ msgstr "actualiza a base de dados, mas não altera o sistema de ficheiros"
msgid "do not verify package dependencies"
msgstr "não verifica as dependências do pacote"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2068,163 +2157,183 @@ msgstr "actualizar pacote(s)"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "pesquisar/verificar todos os pacotes"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "pesquisar/verificar o(s) pacote(s) que contém(êm) o ficheiro"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "pesquisar/verificar o(s) pacote(s) no grupo"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "pesquisar/verificar o(s) pacote(s) com o identificador do pacote"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "pesquisar/verificar o(s) pacote(s) com o identificador do cabeçalho"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "modo de pesquisa do rpm"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "pesquisar/verificar o(s) pacote(s) de transacção de instalação"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "pesquisar o(s) pacote(s) activados pelo pacote"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "modo de verificação do rpm"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "pesquisar/verificar o(s) pacote(s) que precisa duma dependência"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "pesquisar/verificar o(s) pacote(s) que oferecem uma dependência"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "pesquisar/verificar o(s) pacote(s) que precisa duma dependência"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "pesquisar/verificar o(s) pacote(s) que precisa duma dependência"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "pesquisar/verificar o(s) pacote(s) que precisa duma dependência"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "pesquisar/verificar o(s) pacote(s) que precisa duma dependência"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "listar todos os ficheiros de configuração"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "listar todos os ficheiros de documentação"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "apresentar a informação básica do ficheiro"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "listar os ficheiros no pacote"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "ignorar ficheiros %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "mostrar os estados dos ficheiros listados"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "não verificar os tamanho dos ficheiros"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "não verificar as ligações simbólicas dos ficheiros"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "não verificar o dono dos ficheiros"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "não verificar o grupo dos ficheiros"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "não verificar hora de modificação dos ficheiros"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "não verificar o modo dos ficheiros"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "não verificar os ficheiros no pacote"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "não verificar as dependências do pacote"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
"esperava-se um pacote com código-fonte, foi encontrado um pacote binário\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "o pacote de código-fonte não contem um ficheiro .spec\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "a abertura do pacote falhou%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " no ficheiro "
@@ -2299,96 +2408,116 @@ msgstr "nenhum pacote coincide com %s: %s\n"
msgid "no package requires %s\n"
msgstr "nenhum pacote precisa do %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "nenhum pacote precisa do %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "nenhum pacote activa o %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "nenhum pacote precisa do %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "nenhum pacote precisa do %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "nenhum pacote oferece o %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "ficheiro %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "o ficheiro %s não pertence a nenhum pacote\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "número de pacote inválido: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "o pacote %s não está instalado\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: O fread falhou: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NÃO-OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (FALTAM AS CHAVES:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (CHAVES SUSPEITAS:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: o acesso falhou: %s\n"
@@ -2413,144 +2542,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NÃO"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "SIM"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "não verifica as dependências do pacote"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "%c não terminado: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "o utilizador %s não existe - a usar o root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "o grupo %s não existe - a usar o root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Código de integridade inválido"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Cabeçalho inválido/ilegível"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Tamanho do cabeçalho demasiado grande"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Tipo de ficheiro desconhecido"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Erro interno"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Ficheiro de arquivo não está no cabeçalho"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " falhou - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "o acesso ao %s falhou: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2582,42 +2759,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "o %s não pode ser instalado\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "A obter o %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "erro ao ler do ficheiros %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "não consigo aceder ao %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "A instalar o %s\n"
@@ -2643,12 +2820,12 @@ msgstr "a leitura falhou: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2809,60 +2986,79 @@ msgstr "falta a arquitectura para o %s em %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "má opção '%s' em %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Sistema desconhecido: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Por favor contacte o %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Não consegui ler o ícone %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Não consegui ler o ícone %s: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: O fwrite falhou: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2874,127 +3070,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "não consigo abrir a base de dados Packages em %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Não consegui reler o cabeçalho do assinatura.\n"
+
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3068,241 +3283,241 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "não foi definido o dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: não consigo ler o cabeçalho em 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "não foi definido o dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "não consigo adicionar o registo originalmente em %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"falhou a reconstrução da base de dados: a base de dados original mantém-se\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "falhou a substituição da base de dados antiga pela nova!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "substituir os ficheiros em %s por ficheiros de %s a recuperar"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "falhou a remoção da directoria %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "opção do db desconhecida: \"%s\" ignorada.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "O %s tem um valor numérico inválido, foi ignorado\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "O %s tem um valor demasiado elevado ou pequeno, foi ignorado\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "O %s tem um valor inteiro demasiado elevado ou pequeno, foi ignorado\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "não consigo trancar o %s no %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "partilhado"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "exclusivo"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "erro(%d) ao criar uma nova instância do pacote\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "opção do db desconhecida: \"%s\" ignorada.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "O %s tem um valor numérico inválido, foi ignorado\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "O %s tem um valor demasiado elevado ou pequeno, foi ignorado\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "O %s tem um valor inteiro demasiado elevado ou pequeno, foi ignorado\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(vazio)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(vazio)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "A macro %%%s tem as opções incompletas\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "A macro %%%s tem o conteúdo incompleto\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "A macro %%%s tem um nome inválido (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "A macro %%%s tem o conteúdo em branco\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "A macro %%%s não conseguiu ser expandida\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "A macro %%%s tem um nome ilegal (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Opção desconhecida %c em %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "%c não terminado: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Segue-se uma macro impossível de analisar ao %%\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== activo %d vazio %d\n"
@@ -3322,31 +3537,31 @@ msgstr "Ficheiro %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "O ficheiro %s tem menos de %u bytes\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3355,19 +3570,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(nenhum erro)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "erro fatal: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "erro: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "aviso: "
@@ -3376,101 +3591,159 @@ msgstr "aviso: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "a alocação de memória (%u bytes) devolveu NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "erro ao ler do ficheiros %s\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "erro ao ler do ficheiros %s\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "falhou a remoção da directoria %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: O fwrite falhou: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr ""
+msgid "Could not exec %s: %s\n"
+msgstr "Não consegui executar %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: o acesso falhou: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Não consegui executar %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Não consegui executar %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "o gpg não conseguiu gravar a assinatura\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "incapaz de ler a assinatura\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: o rpmWriteSignature falhou: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: o rpmWriteSignature falhou: %s\n"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "o exec falhou\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "o exec falhou\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "o exec falhou\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: o rpmWriteSignature falhou: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: o writeLead falhou: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3484,20 +3757,11 @@ msgstr "%s: a leitura do manifesto falhou: %s\n"
msgid "don't verify header+payload signature"
msgstr ""
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Não consegui escrever o conteúdo de %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Não consegui ler o conteúdo de %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Não consegui abrir um ficheiro temporário.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Não consegui abrir o sigtarget %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Indique a palavra-chave: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Não consegui ler o cabeçalho de %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "A palavra-chave está correcta.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Não consegui gravar o cabeçalho de %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Dono/grupo inválido: %s\n"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index a39b6a83..504c1eb2 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 04de8034..d5461ad4 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/rpm/"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rpm-team/rpm/"
"language/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
@@ -81,8 +81,8 @@ msgstr "Opções de verificação (com -V ou --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Opções de Instalação/Atualização/Remoção:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Opções comuns para todos os executáveis e modos rpm:"
@@ -102,7 +102,7 @@ msgstr "formato de consulta não esperado"
msgid "unexpected query source"
msgstr "fonte de pesquisa não esperada"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "somente um modo principal pode ser especificado"
@@ -219,7 +219,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "os argumentos para --root (-r) devem começar com uma /"
@@ -239,213 +239,263 @@ msgstr "nenhum argumento foi passado para consulta"
msgid "no arguments given for verify"
msgstr "nenhum argumento foi passado para verificação"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot já especificado, ignorando %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"construir através de %prep (desempacote os fontes e aplique as correções) a "
"partir do <specfile>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
"construir através de %build (%prep, então compile) a partir do <specfile>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"construir através de %install (%prep, %build, então instale) a partir do "
"<specfile>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "verificar seção %files do <specfile>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "construir os pacotes fontes e binários a partir do <specfile>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "construir pacote binário somente a partir do <specfile>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "construir pacote fonte somente a partir do <specfile>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"construir através de %prep (desempacote os fontes e aplique as correções) a "
+"partir do <specfile>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<pacote fonte>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+"construir através de %build (%prep, então compile) a partir do <specfile>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"construir através de %install (%prep, %build, então instale) a partir do "
+"<pacote fonte>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "verificar seção %files do <specfile>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "construir pacote binário a partir do <pacote fonte>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "construir pacote binário a partir do <pacote fonte>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "construir pacote fonte somente a partir do <specfile>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"construir através de %prep (desempacote os fontes e aplique as correções) a "
"partir do <tarball>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
"construindo através de %build (%prep, então compile) a partir do <tarball>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"construir através de %install (%prep, %build, então instale) a partir do "
"<tarball>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "verificar seção %files do <tarball>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "construir os pacotes fontes e binários a partir do <tarball>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "construir pacote binário somente a partir do <tarball>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "construir pacote fonte somente a partir do <tarball>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "construir pacote binário a partir do <pacote fonte>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<pacote fonte>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"construir através de %install (%prep, %build, então instale) a partir do "
-"<pacote fonte>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "substituir raíz da construção"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "falha ao criar o diretório"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "remover a árvore de construção quando terminar"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignorar ExcludeArch: diretivas do arquivo spec"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "depurar máquina de estados do arquivo"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "não executar nenhum estágio da construção"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "não verificar dependências de construção"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "não executar nenhum estágio da construção"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "não aceitar msgstr's i18N do specfile"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "remover fontes ao finalizar"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "remover specfile ao finalizar"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "pule direto para o estágio especificado (somente para c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "substituir plataforma de destino"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "opções de construção com [ <specfile> | <tarball> | <pacote fonte> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Falha ao construir dependências:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Não foi possível abrir o arquivo spec %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Não foi possível abrir o pipe do tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Não foi possível abrir o arquivo spec %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Falha ao ler o arquivo spec de %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Falha ao renomear %s para %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "falha ao iniciar %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "O arquivo %s não é um arquivo normal.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "O arquivo %s não parece ser um specfile.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Construindo plataformas de destino: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Construindo para o destino %s\n"
@@ -496,49 +546,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "nenhum argumento foi passado"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "assinar pacote(s) (idêntico ao --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "remover a assinatura dos pacotes"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "instalar pacote(s)"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Opções de assinatura:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Não foi possível executar %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Você deve definir o \"%%_gpg_name\" no seu arquivo de macro\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Digite a senha: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Senha ok.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix somente pode ser usado na instalação de novos pacotes"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
msgstr ""
+"--allmatches somente pode ser especificado durante a remoção de pacotes"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -556,7 +622,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "utilizar o seguinte formato de consulta"
@@ -657,203 +723,203 @@ msgstr "&& e || não são suportados para strings\n"
msgid "syntax error in expression\n"
msgstr "erro de sintaxe na expressão\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "\"(\" faltando em %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "\"(\" faltando em %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Token de %s inválido: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "%s faltando em %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "caractere de espaço após %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Sintaxe inválida: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Modo spec inválido: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Dirmode spec inválido: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Capacidade inválida: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Suporte à capacidade de arquivo não embutida\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "O arquivo deve começar com uma \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
"Algoritmo de digest %u do arquivo é desconhecido, utilizando o MD5 como "
"alternativa\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Arquivo listado duas vezes: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Ligação simbólica aponta para BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Arquivo não encontrado: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: não foi possível carregar a etiqueta desconhecida (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: falha ao ler a chave pública.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: não é uma chave pública blindada.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: falha ao codificar\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "O arquivo precisa da \"/\" inicial: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "O arquivo não foi encontrado pelo glob: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Não foi possível abrir %%files arquivo %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "linha: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "O arquivo não foi encontrado pelo glob: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Arquivo inválido: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Proprietário/grupo inválido: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Procurando por arquivos desempacotados: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -862,17 +928,17 @@ msgstr ""
"Arquivo(s) instalado(s) (mas não empacotado(s)) encontrado(s):\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Processando arquivos: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Binários dependentes de arquitetura no pacote noarch\n"
@@ -891,90 +957,91 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: linha: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Não foi possível canonizar o nome de máquina: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Não foi possível recarregar o cabeçalho da assinatura.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Compactação de carga útil desconhecida: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Não foi possível criar uma região de cabeçalho imutável.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Não foi possível abrir %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Não foi possível gravar o pacote: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Não foi possível gravar o cabeçalho temporário\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Dados CSA inválidos\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Não foi possível abrir %%files arquivo %s: %m\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread falhou: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Gravou: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Executando \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "A execução de \"%s\" falhou.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Falha na verificação \"%s\" do pacote.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
"Não foi possível gerar o nome de arquivo de saída para o pacote %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "Não foi possível criar %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "linha %d: segundo %s\n"
@@ -1025,19 +1092,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "linha %d: Erro ao analisar %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "linha %d: Opção inválida %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "linha %d: Nomes em excesso: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "linha %d: O pacote não existe: %s\n"
@@ -1092,142 +1159,147 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "A arquitetura está excluída: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "A arquitetura não está excluída: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "O SO está excluído: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "O SO não está incluído: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "o campo %s deve estar presente no pacote: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Entrada %s duplicada no pacote: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Não foi possível abrir o ícone %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Não foi possível ler o ícone %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Tipo de ícone desconhecido: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "linha %d: A etiqueta toma apenas um token: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "linha %d: caractere inválido \"%c\" em: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "linha %d: caractere inválido em: %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "linha %d: caractere inválido \"..\" em: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "linha %d: segundo %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: linha: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "linha %d: Etiqueta mal formada: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "linha %d: Etiqueta vazia: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "linha %d: Os prefixos não podem terminar com \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "linha %d: O docdir deve começar com \"/\": %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "linha %d: campo Epoch deve ser um número sem sinal: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "linha %d: %s inválido: qualificadores: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "linha %d: formato BuildArchitecture inválido: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "linha %d: Somente subpacotes noarch são suportados: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Erro interno: tag %d falsa\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "linha %d: %s é obsoleto: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Especificação do pacote inválida: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "O pacote já existe: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "linha %d: Etiqueta desconhecida: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} não pode ser vazio\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} não pode ser \"/\"\n"
@@ -1237,161 +1309,193 @@ msgstr "%%{buildroot} não pode ser \"/\"\n"
msgid "Bad source: %s: %s\n"
msgstr "Fonte inválida: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Nenhum número de patch %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch não corresponde à etiqueta \"Patch:\"\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Nenhum número de fonte %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Nenhuma etiqueta \"Source:\" no arquivo .spec\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Erro ao analisar %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "linha %d: Argumento inválido para %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "linha %d: Opção inválida %s de %%setup: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "número da correção %s inválido: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "linha %d: segundo %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "linha %d: os disparadores devem ter --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "linha %d: Erro ao analisar %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "linha %d: o script interno deve terminar com \">\": %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "linha %d: o script deve começar com \"/\": %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "linha %d: Segundo %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "linha %d: script interno não suportado: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "linha %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Não foi possível abrir %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Há um %%else sem um %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Há um %%endif sem um %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Nenhuma arquitetura compatível encontrada para a construção\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "O pacote não tem %%description: %s\n"
@@ -1462,287 +1566,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Ignorar regex inválida %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Não foi possível criar um pipe para %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Não foi possível executar %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Não foi possível bifurcar %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "A conversão de %s para inteiro longo falhou.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Os atributos do arquivo não foram configurados\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) falhou: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load falhou: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Falha no reconhecimento do arquivo \"%s\": modo %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Localizando %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Falha ao localizar %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "a consulta ao specfile %s falhou, não foi possível analisá-lo\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s é um Delta RPM e não pode ser instalado diretamente\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Carga útil (%s) não suportada no pacote %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "o pacote %s já foi adicionado, ignorando %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "o pacote %s já foi adicionado, substituindo por %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(não é um número)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(não é base 64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(tipo inválido)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(não é um blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(tipo xml inválido)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(não é uma assinatura OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normal"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "substituído"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "não instalado"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "compartilhado pela rede"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "cor errada"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "faltando"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(desconhecido)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(não é uma sequência)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s salvo como %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s criado como %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1963,7 +2056,7 @@ msgstr "atualizar o banco de dados, mas não modificar o sistema de arquivos"
msgid "do not verify package dependencies"
msgstr "não verificar as dependências do pacote"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "não verificar o digest dos arquivos"
@@ -2085,162 +2178,182 @@ msgstr "atualizar pacote(s)"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "consultar/verificar todos os pacotes"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "modo checksig do rpm"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "consultar/verificar pacote(s) que detém o arquivo"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "consultar/verificar pacote(s) em um grupo"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "consultar/verificar um arquivo de pacote"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "consultar/verificar pacote(s) com um identificador de pacotes"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "consultar/verificar pacote(s) com um identificador de cabeçalhos"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "modo de consulta do rpm"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "consultar/verificar uma instância do cabeçalho"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "consultar/verificar pacote(s) da transação de instalação"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "consultar o(s) pacote(s) disparado pelo pacote"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "modo de verificação do rpm"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "consultar/verificar pacotes que precisam de uma dependência"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "consultar/verificar pacote(s) que fornecem uma dependência"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "consultar/verificar pacotes que precisam de uma dependência"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "consultar/verificar pacotes que precisam de uma dependência"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "consultar/verificar pacotes que precisam de uma dependência"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "consultar/verificar pacotes que precisam de uma dependência"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "não fazer glob com os argumentos"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "não processar arquivos que não são de pacotes como manifestos"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "listar todos os arquivos de configuração"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "listar todos os arquivos de documentação"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "descarregar informações básicas do arquivo"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "listar arquivos do pacote"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "ignorar arquivos %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "exibir o estado dos arquivos listados"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "não verificar o tamanho dos arquivos"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "não verificar o caminho da ligação simbólica dos arquivos"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "não verificar o proprietário dos arquivos"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "não verificar o grupo dos arquivos"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "não verificar a hora de modificação dos arquivos"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "não verificar o modo dos arquivos"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "não verifica as capacidades dos arquivos"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "não verificar os contextos de segurança dos arquivos"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "não verificar os arquivos do pacote"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "não verificar as dependências do pacote"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "não executar script(s) de verificação"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Faltando recursos do rpmlib para %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "um pacote fonte era esperado, mas um binário foi encontrado\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "o pacote fonte não contém um arquivo .spec\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "a descompactação do arquivo falhou %s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " no arquivo "
@@ -2315,97 +2428,117 @@ msgstr "nenhum pacote corresponde com %s: %s\n"
msgid "no package requires %s\n"
msgstr "nenhum pacote requer %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "nenhum pacote requer %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "nenhum disparador de pacote %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "nenhum pacote requer %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "nenhum pacote requer %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "nenhum pacote fornece %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "arquivo %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "o arquivo %s não pertence a nenhum pacote\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "número de pacote inválido: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "o registro %u não pôde ser lido\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "o pacote %s não está instalado\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "etiqueta desconhecida: \"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: a importação da chave %d falhou.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: %d não é uma chave pública blindada.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: leitura de importação falhou (%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: A região de cabeçalho imutável não pôde ser lida. Pacote corrompido?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread falhou: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "Não está OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (CHAVES FALTANDO:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (CHAVES NÃO CONFIÁVEIS:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: falha ao abrir: %s\n"
@@ -2430,152 +2563,200 @@ msgstr "Não foi possível alterar o diretório raiz: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Não foi possível restaurar o diretório raiz: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NÃO "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "SIM"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
"PreReq:, Capacidades: e Obsoletos: as dependências suportam as versões."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"Nome(s) de arquivo(s) armazenados como tuplas (dirName,baseName,dirIndex), "
"não como um caminho."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "a carga útil do pacote pode ser compactada utilizando bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "a carga útil do pacote pode ser compactada utilizando o xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "a carga útil do pacote pode ser compactada utilizando lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "o(s) arquivo(s) da carga útil do pacote tem o prefixo \"./\"."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "o nome-versão-lançamento do pacote não está fornecido implicitamente."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
"As etiquetas de cabeçalho sempre são classificadas após serem carregadas."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "o interpretador do scriptlet pode usar argumentos do cabeçalho."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
"um conjunto de arquivos de ligação absoluta podem ser instalados sem estarem "
"completos."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"scriptlets de pacotes podem acessar o banco de dados rpm durante a "
"instalação."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "suporte interno para scripts lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "o algoritmo digest é configurável por pacote"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "suporte para as capacidades de arquivo do POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "scriptlets de pacotes podem ser expandidos durante a instalação."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "não verificar as dependências do pacote"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "%c incompleto: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "o usuário %s não existe - usando o root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "o grupo %s não existe - usando o root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Magic inválido"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Cabeçalho inválido/impossível de ler"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Tamanho do cabeçalho muito grande"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Tipo de arquivo desconhecido"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Digest incompatível"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Erro interno"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Arquivo de pacote não está no cabeçalho"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " falhou - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "falha ao abrir %s: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: não é um pacote rpm (ou um manifesto de pacote)\n"
@@ -2607,42 +2788,42 @@ msgstr "Dependências não satisfeitas:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: não é um pacote rpm (ou um manifesto de pacote): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s não pode ser instalado\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Obtendo %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "ignorando %s - a transferência falhou\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "o pacote %s não é realocável\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "erro ao ler o arquivo %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" especifica múltiplos pacotes:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "Não foi possível abrir %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Instalando %s\n"
@@ -2668,12 +2849,12 @@ msgstr "falha na leitura: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "não é um pacote rpm\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "não foi possível criar o bloqueio de transação %s em %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "esperando pelo bloqueio de transação %s em %s\n"
@@ -2834,60 +3015,79 @@ msgstr "arquitetura faltando para %s em %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "opção inválida \"%s\" em %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Sistema desconhecido: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Por favor, contate %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Não foi possível abrir %s para leitura: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "suporte a scriptlet <lua> não embutido\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Não foi possível criar um arquivo temporário para %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Não foi possível duplicar o descritor do arquivo: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Não foi possível ler o ícone %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Não foi possível restaurar o diretório raiz: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite falhou: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "o scriptlet %s falhou, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "o scriptlet %s falhou, sinal %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "o scriptlet %s falhou, status de saída %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Formato desconhecido"
@@ -2899,127 +3099,146 @@ msgstr "instalar"
msgid "erase"
msgstr "apagar"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "não foi possível abrir o banco de dados de pacotes em %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "\"(\" extra no rótulo do pacote: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "\"(\" faltando no rótulo do pacote: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "\")\" faltando no rótulo do pacote: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: falha na leitura da chave pública.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "transação"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(não é uma assinatura OpenPGP)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Não foi possível recarregar o cabeçalho da assinatura.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Cabeçalho "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "Digest MD5:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Digest do cabeçalho SHA1:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Cabeçalho "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "ignorado"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "falhou"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "%c %s faltando"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Dependências não satisfeitas para %s:\n"
@@ -3093,242 +3312,242 @@ msgstr "iterador da matriz utilizado com diferentes tamanhos de matrizes"
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "nenhum dbpath foi definido\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: ignorando"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "erro (%d) ao armazenar o registro #%d em %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: o regexec falhou: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: o regcomp falhou: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: ignorando"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: cabeçalho danificado #%u recuperado -- ignorando.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: não foi possível ler o cabeçalho em 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "nenhum dbpath foi definido"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "falha ao criar o diretório %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "o cabeçalho #%u do banco de dados é inválido -- ignorando.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "não é possível adicionar o registro originalmente em %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"falha ao reconstruir o banco de dados: o banco de dados original permanece "
"no lugar\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "falha ao substituir o banco de dados velho pela novo!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "substituir arquivos em %s com arquivos de %s para recuperação"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "falha ao remover o diretório %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "opção db não reconhecida: \"%s\" ignorado.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s tem um valor numérico inválido, ignorado\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s tem valor inteiro longo muito grande ou muito pequeno, ignorado\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s tem um valor inteiro muito grande ou muito pequeno, ignorado\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "não foi possível obter o bloqueio %s em %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "compartilhado"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "exclusivo"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "erro (%d) ao armazenar o registro \"%s\" em %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "erro (%d) ao remover o registro \"%s\" a partir de %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "erro(%d) ao adicionar o registro de cabeçalho #%d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "erro(%d) ao remover o registro de cabeçalho #%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "erro (%d) ao alocar nova instância do pacote\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "opção db não reconhecida: \"%s\" ignorado.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s tem um valor numérico inválido, ignorado\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s tem valor inteiro longo muito grande ou muito pequeno, ignorado\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s tem um valor inteiro muito grande ou muito pequeno, ignorado\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(vazio)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(vazio)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "O macro %%%s tem opções incompletas\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "O macro %%%s tem um corpo incompleto\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "O macro %%%s tem um nome inválido (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "O macro %%%s tem um corpo vazio\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "O macro %%%s falhou ao expandir\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "O macro %%%s tem um nome inválido (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Opção desconhecida %c em %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "%c incompleto: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Um %% é seguido por um macro não analisável\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== %d ativo %d vazio\n"
@@ -3348,31 +3567,31 @@ msgstr "Arquivo %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "O arquivo %s tem menos de %u bytes\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "falha ao criar o diretório"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "sintaxe inválida no scriptlet lua: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "sintaxe inválida no script lua: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "falha no script lua: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "sintaxe inválida no arquivo lua: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "falha na conexão lua: %s\n"
@@ -3381,19 +3600,19 @@ msgstr "falha na conexão lua: %s\n"
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(sem erros)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "erro fatal: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "erro: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "aviso: "
@@ -3402,101 +3621,159 @@ msgstr "aviso: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "a alocação de memória (%u bytes) retornou NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, ID da chave %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(nada)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "erro ao criar o arquivo temporário %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "erro ao criar o arquivo temporário %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "erro ao criar o arquivo temporário %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "falha ao criar o diretório %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite falhou: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush falhou: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Não foi possível criar um canal para assinar: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Não foi possível executar %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: falha ao abrir: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Não foi possível executar %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Não foi possível abrir %%files arquivo %s: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "a execução do gpg falhou (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "o gpg falhou ao gravar a assinatura\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "não foi possível ler a assinatura\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature falhou: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature falhou: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "a execução falhou\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "o rpmMkTemp falhou\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "a execução falhou\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "a execução falhou\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature falhou: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature falhou: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "o rpmMkTemp falhou\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead falhou: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3510,27 +3787,20 @@ msgstr "%s: falha na leitura do manifesto: %s\n"
msgid "don't verify header+payload signature"
msgstr "não verificar a assinatura do cabeçalho+carga útil"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Não foi possível gravar carga útil em %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Não foi possível ler carga útil a partir de %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Não foi possível abrir o arquivo temporário.\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "A conversão de %s para inteiro longo falhou.\n"
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Não foi possível abrir sigtarget %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Digite a senha: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Não foi possível ler o cabeçalho a partir de %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Senha ok.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Não foi possível gravar o cabeçalho em %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Proprietário/grupo inválido: %s\n"
-#~ msgid "do not perform any collection actions"
-#~ msgstr "não realizar nenhuma ação de coleção"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "linha %d: caractere inválido em: %s\n"
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr ""
-#~ "A região de cabeçalho imutável não pôde ser lida. Pacote corrompido?\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Não foi possível criar um canal para assinar: %m"
diff --git a/po/rpm.pot b/po/rpm.pot
index c2a7bc41..c5fce4cd 100644
--- a/po/rpm.pot
+++ b/po/rpm.pot
@@ -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: 2016-11-03 10:01+0200\n"
+"POT-Creation-Date: 2016-10-20 15:22+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"
@@ -79,8 +79,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -100,7 +100,7 @@ msgstr ""
msgid "unexpected query source"
msgstr ""
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr ""
@@ -200,7 +200,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -220,201 +220,243 @@ msgstr ""
msgid "no arguments given for verify"
msgstr ""
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr ""
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr ""
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, c-format
+msgid "verify %files section from <source package>"
+msgstr ""
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr ""
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr ""
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr ""
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, c-format
+msgid "do not execute %prep stage of the build"
+msgstr ""
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr ""
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr ""
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr ""
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr ""
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr ""
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr ""
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr ""
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr ""
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr ""
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr ""
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr ""
@@ -463,48 +505,60 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
+#: rpmsign.c:36
+msgid "sign package(s) files"
msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
+#: rpmsign.c:39
+msgid "<key>"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:47
+msgid "Signature options:"
+msgstr ""
+
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
+
+#: rpmsign.c:82
+msgid "--fskpass may only be specified when signing files"
+msgstr ""
+
+#: rpmsign.c:126
+msgid "--fskpath may only be specified when signing files"
msgstr ""
#: rpmspec.c:26
@@ -523,7 +577,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -621,218 +675,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr ""
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr ""
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr ""
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr ""
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr ""
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr ""
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
#, c-format
-msgid "Can't mix special %s with other forms: %s\n"
+msgid "File not found by glob: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1922
#, c-format
-msgid "More than one file on a line: %s\n"
+msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:1938
#, c-format
-msgid "Bad file: %s: %s\n"
+msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1978 build/parsePrep.c:33
+#: build/files.c:2068
#, c-format
-msgid "Bad owner/group: %s\n"
+msgid "Bad file: %s: %s\n"
msgstr ""
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -851,89 +905,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
-#, c-format
-msgid "Could not canonicalize hostname: %s\n"
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
+#: build/pack.c:183
+#, c-format
+msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr ""
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
#, c-format
msgid "Could not seek in file %s: %s\n"
msgstr ""
-#: build/pack.c:538
+#: build/pack.c:490
#, c-format
msgid "Fread failed in file %s: %s\n"
msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr ""
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr ""
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -984,19 +1039,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr ""
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1051,142 +1106,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr ""
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:625
+msgid "Illegal sequence \"..\""
+msgstr ""
+
+#: build/parsePreamble.c:630
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "line %d: %s in: %s\n"
msgstr ""
-#: build/parsePreamble.c:625
+#: build/parsePreamble.c:633
#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "%s in: %s\n"
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1196,161 +1255,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr ""
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr ""
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr ""
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1421,287 +1512,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr ""
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr ""
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr ""
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr ""
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr ""
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1919,7 +1999,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr ""
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2039,162 +2119,178 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr ""
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr ""
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr ""
+
+#: lib/poptQV.c:107
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr ""
+
+#: lib/poptQV.c:109
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr ""
+
+#: lib/poptQV.c:111
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr ""
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr ""
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr ""
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ""
@@ -2269,96 +2365,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr ""
-#: lib/query.c:391
+#: lib/query.c:390
+#, c-format
+msgid "no package recommends %s\n"
+msgstr ""
+
+#: lib/query.c:397
+#, c-format
+msgid "no package suggests %s\n"
+msgstr ""
+
+#: lib/query.c:404
+#, c-format
+msgid "no package supplements %s\n"
+msgstr ""
+
+#: lib/query.c:411
+#, c-format
+msgid "no package enhances %s\n"
+msgstr ""
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr ""
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr ""
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr ""
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr ""
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr ""
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr ""
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ""
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ""
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr ""
@@ -2383,144 +2499,191 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr ""
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+msgid "support for rich dependencies."
+msgstr ""
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr ""
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr ""
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr ""
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr ""
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr ""
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2552,42 +2715,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr ""
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr ""
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr ""
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr ""
@@ -2613,12 +2776,12 @@ msgstr ""
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2776,60 +2939,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr ""
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr ""
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, c-format
+msgid "Unable to reset nice value: %s"
+msgstr ""
+
+#: lib/rpmscript.c:361
+#, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr ""
+
+#: lib/rpmscript.c:389
+#, c-format
+msgid "Fwrite failed: %s"
+msgstr ""
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2841,127 +3023,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr ""
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
+msgstr ""
+
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3035,240 +3236,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
#, c-format
-msgid "cannot get %s lock on %s/%s\n"
+msgid "unrecognized db option: \"%s\" ignored.\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "shared"
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "exclusive"
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:337
#, c-format
-msgid "invalid index type %x on %s/%s\n"
+msgid "%s has too large or too small integer value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:797
#, c-format
-msgid "error(%d) getting \"%s\" records from %s index: %s\n"
+msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:904
-#, c-format
-msgid "error(%d) storing record \"%s\" into %s\n"
+#: lib/backend/db3.c:799
+msgid "shared"
msgstr ""
-#: lib/backend/db3.c:912
-#, c-format
-msgid "error(%d) removing record \"%s\" from %s\n"
+#: lib/backend/db3.c:799
+msgid "exclusive"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:881
#, c-format
-msgid "error(%d) adding header #%d record\n"
+msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1070
#, c-format
-msgid "error(%d) removing header #%d record\n"
+msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1100
#, c-format
-msgid "error(%d) allocating new package instance\n"
+msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
+#: lib/backend/db3.c:1108
#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
+msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:182
+#: lib/backend/db3.c:1210
#, c-format
-msgid "%s has invalid numeric value, skipped\n"
+msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:191
+#: lib/backend/db3.c:1219
#, c-format
-msgid "%s has too large or too small long value, skipped\n"
+msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:200
+#: lib/backend/db3.c:1274
#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
+msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr ""
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr ""
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr ""
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr ""
@@ -3288,31 +3489,31 @@ msgstr ""
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3321,19 +3522,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr ""
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr ""
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr ""
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr ""
@@ -3342,99 +3543,153 @@ msgstr ""
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:66
+#, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, c-format
+msgid "error delete directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
-msgid "fdopen failed\n"
+#: sign/rpmgensig.c:287
+msgid "Fopen failed\n"
msgstr ""
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
msgstr ""
-#: sign/rpmgensig.c:285
+#: sign/rpmgensig.c:309
#, c-format
msgid "Could not read from file %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+msgid "generateSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:543
+msgid "rpmReadSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+msgid "headerReload failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+msgid "copyFile failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:621
+msgid "headerWrite failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
diff --git a/po/ru.gmo b/po/ru.gmo
index 8ed5c028..33d763f2 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index df99c88f..261b55a3 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,17 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Russian (http://www.transifex.com/projects/p/rpm/language/"
-"ru/)\n"
+"Language-Team: Russian (http://www.transifex.com/rpm-team/rpm/language/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
+"%100>=11 && n%100<=14)? 2 : 3);\n"
#: cliutils.c:21 lib/poptI.c:29
#, c-format
@@ -81,8 +81,8 @@ msgstr "Параметры проверки (с -V или --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Параметры Установки/Обновления/Удаления:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Общие параметры для всех режимов и компонентов rpm:"
@@ -102,7 +102,7 @@ msgstr "неожиданный формат запроса"
msgid "unexpected query source"
msgstr "неожиданный источник запроса"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "может быть указан только один из основных режимов"
@@ -210,7 +210,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "аргументы для --root (-r) должны начинаться с /"
@@ -230,212 +230,261 @@ msgstr "не заданы аргументы запроса"
msgid "no arguments given for verify"
msgstr "не заданы аргументы для верификации"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot уже указан, %s игнорируется\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"выполнить по стадию %prep (развернуть исходники и наложить заплаты) из <файл "
"спецификации>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<файл спецификации>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
"выполнить по стадию %build (%prep, затем компиляция) из <файл спецификации>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"выполнить по стадию %install (%prep, %build, затем установка) из <файл "
"спецификации>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "проверить раздел %files из <файл спецификации>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "собрать исходный и двоичный пакеты по <файл спецификации>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "собрать двоичный пакет по <файл спецификации>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "собрать исходный пакет по <файлу спецификации>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"выполнить по стадию %prep (развернуть исходники и наложить заплаты) из <файл "
+"спецификации>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<исходный пакет>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+"выполнить по стадию %build (%prep, затем компиляция) из <файл спецификации>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"выполнить по стадию %install (%prep, %build, затем установка) из <исходный "
+"пакет>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "проверить раздел %files из <файл спецификации>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "собрать двоичный пакет из <исходный пакет>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "собрать двоичный пакет из <исходный пакет>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "собрать исходный пакет по <файлу спецификации>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"выполнить по стадию %prep (развернуть исходники и наложить заплаты) из "
"<архив tar>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<архив tar>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "выполнить по стадию %build (%prep, затем компиляция) из <архив tar>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"выполнить по стадию %install (%prep, %build, затем установка) из <архив tar>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "проверить секцию %files из <архив tar>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "собрать исходный и двоичный пакеты из <архив tar>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "собрать двоичный пакет из <архив tar>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "собрать исходный пакет из <архив tar>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "собрать двоичный пакет из <исходный пакет>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<исходный пакет>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"выполнить по стадию %install (%prep, %build, затем установка) из <исходный "
-"пакет>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "переопределить build root"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+msgid "run build in current directory"
+msgstr ""
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "после завершения удалить дерево исходников"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "игнорировать ExcludeArch: в файле конфигурации"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "отладка машины состояния файлов"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "не выполнять никаких этапов сборки"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "не проверять зависимости пакета перед сборкой"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "не выполнять никаких этапов сборки"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "игнорировать строки i18N из файла спецификации"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "после завершения удалить исходники"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "после завершения удалить файл спецификации"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "перейти непосредственно к указанному этапу (только для c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "переопределить целевую платформу"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"Параметры сборки с [ <файл спецификации> | <тар архив> | <исходный пакет> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Неудовлетворенные зависимости сборки:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Ошибка открытия файла спецификации %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Ошибка открытия канала tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Ошибка открытия файла спецификации %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Ошибка чтения файла спецификации из %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Невозможно переименовать %s в %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "невозможно получить информацию о %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Не обычный файл: %s.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Файл %s не похож на файл спецификации.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Платформы для сборки: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Сборка для платформы %s\n"
@@ -486,50 +535,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "не заданы аргументы"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "подписать пакет(ы)"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "подписать пакет (то же самое что --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "удалить подписи пакета"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "подписать пакет(ы)"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Параметры подписи:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Невозможно выполнить %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Вы должны установить \"%%_gpg_name\" в вашем макрофайле\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Введите ключевую фразу: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Ключевая фраза принята.\n"
-
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "вариант --prefix можно использовать только при установке новых пакетов"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches может быть указан только при удалении пакета"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -546,7 +610,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "используйте следующий формат запроса"
@@ -647,201 +711,201 @@ msgstr "&& и || не поддерживаются для строк\n"
msgid "syntax error in expression\n"
msgstr "синтаксическая ошибка в выражении\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Отсутствует '(' в %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "отсутствует ')' в %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Неверный токен %s: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Отсутствует %s в %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Не пробел следует после %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Неверный синтаксис: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Неверные права: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Неверные права на каталог %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Файл должен начинаться с \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Не удается проверить файл %u, возврат к MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Файл указан дважды: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Символическая ссылка указывает на BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Файл не найден: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: это не открытый ключ.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Файл должен начинаться с \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Файл не найден: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "строка: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Файл не найден: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Неверный файл %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Неверная пара владелец/группа: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Проверка на неупакованный(е) файл(ы): %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -850,17 +914,17 @@ msgstr ""
"Обнаружен(ы) установленный(е) (но не упакованный(е)) файл(ы):\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Двоичные данные с архитекутрой в пакете noarch\n"
@@ -879,89 +943,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Невозможно канонизировать имя компьютера: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Невозможно перезагрузить заголовок подписи.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Невозможно поместить заголовок в нерперывную область памяти.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Невозможно открыть %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Невозможно записать пакет: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Невозможно записать временный заголовок\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Неверные данные CSA\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Невозможно выполнить %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: ошибка Fread: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Записан: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Выполнение \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Выполнение \"%s\" не удалось.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Невозможно создать имя файла для пакета %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "невозможно создать %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "строка %d: второе %s\n"
@@ -1012,19 +1077,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "строка %d: Ошибка анализа %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "строка %d: Неверный параметр %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "строка %d: Слишком много имен: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "строка %d: Пакет не существует: %s\n"
@@ -1079,142 +1144,146 @@ msgstr "Загрузка %s в %s\n"
msgid "Couldn't download %s\n"
msgstr "Невозможно загрузить %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Архитектура исключена: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Архитектура не включена: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "ОС исключена: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "ОС не включена: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "Поле %s обязано присутствовать в пакете: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Повторяющиеся записи %s в пакете: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Невозможно открыть пиктограмму %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Невозможно прочитать пиктограмму %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Неизвестный тип пиктограммы: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "строка %d: Ярлык требует только один аргумент: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "строка %d: второе %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "строка %d: Неверный тэг: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "строка %d: Пустой тэг: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "строка %d: Префикс не может заканчиваться на \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "строка %d: Docdir должен начинаться с '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "строка %d: Неверное число %s: определяет: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "строка %d: Неверный формат BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Внутренняя ошибка: Неизвестный ярлык %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Неверная спецификация пакета: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Пакет уже существует: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "строка %d: Неизвестный тэг: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1224,161 +1293,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "Неверный исходник: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Ошибка анализа %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "строка %d: Неверный аргумент для %%setup %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "строка %d: Неверный параметр %%setup %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "строка %d: второй %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "строка %d: триггеры должны содержать --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "строка %d: Ошибка анализа %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "строка %d: Программы в сценариях должны начинаться с '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "строка %d: Второе %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "строка %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Невозможно открыть %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Найден %%else без %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Найден %%endif без %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Не найдены совместимые архитектуры для сборки.\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Пакет не имеет %%description: %s\n"
@@ -1449,287 +1550,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Невозможно выполнить %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Сбой ветвления %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s не удалось: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "не удалось записать все данные в %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Идет поиск %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Невозможно найти %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "запрос файла спецификации %s не удался, невозможно разобрать файл\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s является Delta RPM и не может быть установлен напрямую\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "пакет %s был уже добавлен, пропускаем %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "пакет %s уже был добавлен, заменяется %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(не число)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(не base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(неправильный тип)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(not a blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(неверный тип xml)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(не подпись формата OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Неверная дата %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "нормальный"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "перемещен"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "не установлен"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(неизвестный)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(не строка)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s сохранен как %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s создан как %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1951,7 +2041,7 @@ msgstr "обновить базу данных, но не модифициров
msgid "do not verify package dependencies"
msgstr "не проверять зависимости пакета"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2073,162 +2163,182 @@ msgstr "обновить пакет(ы)"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "запросить/проверить все пакеты"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "режим проверки подписи"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "запросить/проверить пакет, которому принадлежит файл"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "запросить/проверить пакеты в группе"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "запросить/проверить файл пакета"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "запросить/проверить пакет(ы) по идентификатору пакета"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "запросить/проверить пакет(ы), по идентификатору заголовка"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "режим запроса rpm"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "запросить/проверить заголовок"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "запросить/проверить пакет(ы) из транзакции установки"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "запросить пакеты с триггер-сценариями на пакет"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "режим проверки rpm"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "найти/проверить пакеты, требующие сервис"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "найти/проверить пакеты, предоставляющие сервис"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "найти/проверить пакеты, требующие сервис"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "найти/проверить пакеты, требующие сервис"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "найти/проверить пакеты, требующие сервис"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "найти/проверить пакеты, требующие сервис"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "показать все файлы конфигурации"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "показать все файлы документации"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "показать основную информацию о файле"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "показать список файлов пакета"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "пропустить файлы %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "показать состояние перечисленных файлов"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "не проверять размер файлов"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "не проверять путь символических ссылок"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "не проверять хозяина файлов"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "не проверять группу файлов"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "не проверять время модификации файлов"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "не проверять права доступа файлов пакета"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "не проверять файлы пакета"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "не проверять зависимости пакета"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "не исполнять сценарий(и) проверки"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "обнаружен двоичный пакет вместо ожидаемого исходного\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "исходный пакет не содержит файла спецификации\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "распаковка архива не удалась%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " на файле "
@@ -2303,96 +2413,116 @@ msgstr "ни один пакет не подходит к %s: %s\n"
msgid "no package requires %s\n"
msgstr "ни один из пакетов не требует %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "ни один из пакетов не требует %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "ни один из пакетов не взводит триггер %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "ни один из пакетов не требует %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "ни один из пакетов не требует %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "ни один из пакетов не предоставляет %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "файл %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "файл %s не принадлежит ни одному из пакетов\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "неверный номер пакета: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "пакет %s не установлен\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: ошибка Fread: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "НЕ ОК"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "ОК"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (ОТСУТСТВУЮТ КЛЮЧИ:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (НЕТ ДОВЕРИЯ К КЛЮЧАМ:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: ошибка открытия: %s\n"
@@ -2417,144 +2547,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "НЕT"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "ДА"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "PreReq:, Provides:, и Obsoletes: зависимости поддерживают версии."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr "имена файла(ов) хранятся в формате (dirName,baseName,dirIndex)."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "префикс \"./\" используется для фала(ов) содержимого пакета."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "имя-версия-выпуск пакета не предоставляется автоматически."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "ярлыки заголовков всегда сортируются после загрузки."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "интерпретатор сценариев может использовать аргументы из заголовка."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "поддерживается частичная установка набора жестких ссылок пакета."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "не проверять зависимости пакета"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Незакрытая %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "пользователь %s не существует - используется root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "группа %s не существует - используется root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Неверный magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Неверный/нечитаемый заголовок"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Заголовок слишком велик"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Неизвестный тип файла"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Внутренняя ошибка"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Файл архива не найден в заголовке пакета"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " не удалось - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "невозможно открыть %s: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2586,42 +2764,42 @@ msgstr "Неудовлетворенные зависимости:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: не пакет (или манифест пакета) rpm : %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s не может быть установлен\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Загружается %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "ошибка чтения из файла %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "невозможно открыть %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Устанавливается %s\n"
@@ -2647,12 +2825,12 @@ msgstr "ошибка чтения: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2811,60 +2989,79 @@ msgstr "отсутствует архитектура для %s в %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "неверный параметр '%s' в %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Неизвестная система: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Невозможно прочитать пиктограмму %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Невозможно прочитать пиктограмму %s: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: ошибка Fwrite: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Неизвестный формат"
@@ -2876,127 +3073,146 @@ msgstr "установить"
msgid "erase"
msgstr "стереть"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "не могу открыть базу данных Packages в %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "транзакция"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(не подпись формата OpenPGP)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Невозможно перезагрузить заголовок подписи.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Заголовок "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Заголовок "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "пропущено"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3070,242 +3286,242 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "параметер dbpath не установлен\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "ошибка (%d) сохранения записи #%d в %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: получен поврежденный заголовок #%u -- пропускается.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: невозможно прочесть заголовок в 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "параметер dbpath не установлен"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "заголовок номер %u в базе данных неверный -- пропускается.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "невозможно добавить запись (первоначально в %u)\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"перестроение базы данных не удалось, старая база данных остается на месте\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "невозможно заменить старую базу данных на новую!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "файлы в %s заменяются файлами из %s для восстановления"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "ошибка удаления каталога %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "неопознанный параметр базы данных: \"%s\" проигнорирован\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "неверное числовое значение %s, пропущено\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s имеет слишком малую или слишком большую величину long, пропущено\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+"%s имеет слишком малую или слишком большую величину integer, пропущено\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "невозможно получить блокировку %s на %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "разделяемый"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "исключительный"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "ошибка(%d) сохранения записи \"%s\" в %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "ошибка(%d) удаления записи %s из %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "ошибка(%d) резервирования памяти для образа нового пакета\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "неопознанный параметр базы данных: \"%s\" проигнорирован\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "неверное числовое значение %s, пропущено\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s имеет слишком малую или слишком большую величину long, пропущено\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-"%s имеет слишком малую или слишком большую величину integer, пропущено\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(пусто)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(пусто)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Незакрытые параметры в макросе %%%s\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Незакрытый макрос %%%s\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Недопустимое имя (%%define) макроса %%%s\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Макрос %%%s пуст\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Невозможно раскрыть макрос %%%s\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Недопустимое имя (%%undefine) макроса %%%s\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Неизвестный параметр %c в %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Незакрытая %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "непонятный макрос после %%\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "====================== активных %d пустых %d\n"
@@ -3325,31 +3541,31 @@ msgstr "Файл %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Длина файла %s меньше чем %u байт\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3358,19 +3574,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(нет ошибки)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "фатальная ошибка: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "ошибка: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "предупреждение: "
@@ -3379,101 +3595,159 @@ msgstr "предупреждение: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "memory alloc (%u bytes) returned NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "ошибка чтения из файла %s\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "ошибка чтения из файла %s\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "ошибка удаления каталога %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: ошибка Fwrite: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Неподдерживаемая подпись PGP\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr ""
+msgid "Could not exec %s: %s\n"
+msgstr "Невозможно выполнить %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: ошибка открытия: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Невозможно выполнить %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Невозможно выполнить %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "ошибка gpg при записи подписи\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "невозможно прочесть подпись\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: ошибка rpmWriteSignature: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: ошибка rpmWriteSignature: %s\n"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "запуск не удался\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "запуск не удался\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "запуск не удался\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: ошибка rpmWriteSignature: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: ошибка writeLead: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3487,20 +3761,11 @@ msgstr "%s: ошибка чтения списка файлов: %s\n"
msgid "don't verify header+payload signature"
msgstr "не проверять подпись заголовока и содержимого"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Невозможно записать содержимое в %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Невозможно прочитать содержимое из %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Невозможно открыть временный файл.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Невозможно открыть цель подписи %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Введите ключевую фразу: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Невозможно прочитать заголовок из %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Ключевая фраза принята.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Невозможно записать заголовок в %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Неверная пара владелец/группа: %s\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index ccb17532..85e53fa3 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 0b3540af..608fcbc9 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -3,16 +3,17 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Lubos Kardos <kardos.lubos@gmail.com>, 2015
+# Tomáš Vadina <tomasvadina+transifex@cryptolab.net>, 2011
# Tomáš Vadina <tomasvadina+transifex@cryptolab.net>, 2011
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
-"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Slovak (http://www.transifex.com/projects/p/rpm/language/"
-"sk/)\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-08-13 10:17+0000\n"
+"Last-Translator: Lubos Kardos <kardos.lubos@gmail.com>\n"
+"Language-Team: Slovak (http://www.transifex.com/rpm-team/rpm/language/sk/)\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -81,8 +82,8 @@ msgstr "Možnosti kontroly (s -V alebo --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Možnosti pre Inštaláciu/Upgrade/Mazanie:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Spoočné možnosti pre všetky režimy rpm a spustiteľné súbory:"
@@ -102,7 +103,7 @@ msgstr "neočakávaný formát požiadavky"
msgid "unexpected query source"
msgstr "neočakávaný zdroj pre otázku"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "môže byť použitý iba jeden hlavný režim"
@@ -210,7 +211,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr "-- test môže byť špecifikovaný iba počas inštalácie a mazania balíčka"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "argumenty pre --root (-r) musia začínať znakom /"
@@ -230,210 +231,259 @@ msgstr "neboli zadané žiadne argumenty pre otázku"
msgid "no arguments given for verify"
msgstr "neboli zadané žiadne argumenty pre overenie"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot už bol nastavený, ignoruje sa %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"zostavenie podľa %prep (rozbalenie zdrojových kódov a aplikácia patchov) z "
"<spec_subor>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<spec_subor>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "zostavenie podľa %build (%prep, potom kompilácia) z <spec_subor>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"zostavenie podľa %install (%prep, %build, potom install) z <spec_subor>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "kontrola častí %files z <spec_subor>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "vytvorenie zdrojového kódu a binárnych balíčkov z <spec_subor>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "vytvorenie iba binárneho balíčka z <spec_subor>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "vytvorenie zdrojového balíčka z <spec_subor>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"zostavenie podľa %prep (rozbalenie zdrojových kódov a aplikácia patchov) z "
+"<spec_subor>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<zdrojovy balicek>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "zostavenie podľa %build (%prep, potom kompilácia) z <spec_subor>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"zostavenie podľa %install (%prep, %build, potom inštalácia) z <zdrojovy "
+"balicek>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "kontrola častí %files z <spec_subor>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "vytvorenie binárneho balíčka z <zdrojovy balicek>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "vytvorenie binárneho balíčka z <zdrojovy balicek>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "vytvorenie zdrojového balíčka z <spec_subor>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"zostavenie podľa %prep (rozbalenie zdrojových kódov a aplikácia patchov) z "
"<tar_subor>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tar_subor>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "zostavenie podľa %build (%prep, potom kompilácia) z <tar_subor>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"zostavenie podľa %install (%prep, %build, potom inštalácia) z <tar_subor>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "kontrola častí %files z <tar_subor>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "vytvorenie zdrojového kódu a binárneho balíčka z <tar_subor>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "vytvorenie iba binárneho balíčka z <tar_subor>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "vytvorenie iba zdrojového balíčka z <tar_subor>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "vytvorenie binárneho balíčka z <zdrojovy balicek>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<zdrojovy balicek>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"zostavenie podľa %install (%prep, %build, potom inštalácia) z <zdrojovy "
-"balicek>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "predefinovať adresár pre zostavenie balíka"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Nie je možné otvoriť aktuálny priečinok: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "po ukončení odstrániť adresár, v ktorom sa balík zostavoval"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignorovať ExcludeArch: direktívy z spec súboru"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "ladiť nástroj stavu súborov"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "nevykonať žiadne etapy zostavenia"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "nekontrolovať závislosti balíčkov"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr "generovanie hlavičiek balíčka kompatibilné s (legacy) rpm v3 packaging"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
-msgstr ""
+msgstr "nevykonať %clean fázu zostavenia"
+
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "nevykonať %clean fázu zostavenia"
-#: rpmbuild.c:189
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
-msgstr ""
+msgstr "nevykonať %check fázu zostavenia"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "neakceptovať i18N popisy z spec súboru"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "po dokončení odstrániť zdrojové kódy"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "po dokončení odstrániť spec súbor"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "preskočiť priamo k určenej etape (iba pre c, i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "predefinovať cieľovú platformu"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"Zostavovacie možnosti s [ <spec_subor> | <tar_subor> | <zdrojovy balicek> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Chybné závislosti pri zostavovaní:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Nie je možné otvoriť spec súbor %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Nie je možné otvoriť rúru pre tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Viac než jeden súbor na riadku: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Nie je možné čítať spec súbor z %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Nie je možné premenovať %s na %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "nie je možné zistiť stav %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Súbor %s nie je obyčajný súbor.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Súbor %s nevyzerá ako spec súbor.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Zostavujú sa cieľové platformy: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Zostavuje sa pre cieľ %s\n"
@@ -452,11 +502,11 @@ msgstr "skontrolovať databázové súbory"
#: rpmdb.c:32
msgid "export database to stdout header list"
-msgstr ""
+msgstr "exportuj databázu na stdout ako postupnosť hlavičiek"
#: rpmdb.c:35
msgid "import database from stdin header list"
-msgstr ""
+msgstr "importuj databázu z stdin postupnosti hlavičiek"
#: rpmdb.c:42
msgid "Database options:"
@@ -482,49 +532,64 @@ msgstr "zobraziť kľúče z kľúčového zväzku RPM"
msgid "Keyring options:"
msgstr "Možnosti zväzku kľúčov:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "nezadané žiadne parametre"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "podpísať balíčky"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "podpísať balíčky (identické s --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "vymazať podpis balíčka"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "podpísať balíčky"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Možnosti podpisu:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Nie je možné spustiť %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Je potrebné nastaviť \"%%_gpg_name\" v makro súbore\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Zadajte helo:"
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Heslo je v poriadku.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "Chybne zadané heslo, alebo expirovaný kľúč gpg\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix môže byť použitý iba počas inštalácie nových balíkov"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches môže byť použité iba počas odstránenia balíkov"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -542,7 +607,7 @@ msgstr "pôsobenie v binárke rpm generovanej spec (predvolené)"
msgid "operate on source rpm generated by spec"
msgstr "pôsobenie v zdroji rpm generovaného spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "použiť nasledovný formát otázky"
@@ -643,201 +708,201 @@ msgstr "&& a || nie sú podporované pre reťazce\n"
msgid "syntax error in expression\n"
msgstr "chyba syntaxe vo výraze\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Chýba '(' v %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Chýba ')' v %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Neplatný %s token: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Chýba %s v %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Nasleduje nie prázdny znak %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Zlá syntax: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Zlý režim spec: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Zlý režim adresára spec: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "Nepoužiteľná dĺžka lokalizácie: \"%s\" v %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Dvojitá lokalizácia %s v %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Neplatná možnosť: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Podpora možností súboru nie je zabudovaná\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Súbor musí začínať na \"/\": %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Neznámy prehľad súborového algoritmu %u, návrat späť k MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Súbor uvedený dvakrát: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "čítanie symlinku %s zlyhalo: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symbolický link ukazuje na BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
-msgstr ""
+msgstr "Cesta sa nachádza mimo buildroot: %s\n"
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Priečinok nenájdený: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Súbor nenájdený: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
-msgstr ""
+msgstr "Toto nie je adresár: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: nie je možné načítať neznámu značku (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: čítanie verejného kľúča zlyhalo.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: nie je obrnený verejný kľúč.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: zlyhalo kódovanie\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Súbor potrebuje úvodný \"/\": %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "%%dev glob nie je povolený: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "Priečinok nebol nájdený globom: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Súbor nenájdený globom: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Nie je možné otvoriť %%files súbor %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "riadok: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Chyba čítania %%files súboru %s: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Súbor nenájdený globom: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
-msgstr ""
+msgstr "Viac než jeden súbor na riadku: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Zlý súbor: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Chybný vlastník/skupina: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Kontrolujú sa nezabalené súbory: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -846,118 +911,119 @@ msgstr ""
"Nájdené nainštalované (ale nezabalené) súbory:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Spracovávajú sa súbory: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Binárky závislé na architektúre v bezarchitektúrnom balíčku\n"
#: build/pack.c:90
#, c-format
msgid "create archive failed on file %s: %s\n"
-msgstr ""
+msgstr "vytvorenie archívu zlyhalo na súbore %s: %s\n"
#: build/pack.c:93
#, c-format
msgid "create archive failed: %s\n"
-msgstr ""
+msgstr "vytvorenie archívu zlyhalo: %s\n"
#: build/pack.c:120
#, c-format
msgid "Could not open %s file: %s\n"
msgstr "Nie je možné otvoriť súbor %s: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: riadok: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Nie je možné kanonizovať názov počítača: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Nie je možné znova načítať hlavičku podpisu.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Neznáma kompresia payloadu: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Nie je možné vytvoriť nezmeniteľný region hlavičky.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Nie je možné otvoriť %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Nie je možné zapísať balíček: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Nie je možné zapísať dočasnú hlavičku\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Zlé CSA dáta\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Nie je možné otvoriť súbor %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread zlyhalo: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Zapísané: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Spúšťa sa \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Spustenie \"%s\" zlyhalo.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Kontrola balíčka \"%s\" zlyhala.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Nie je možné vytvoriť meno výstupného súboru pre balík %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "nie je možné vytvoriť %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "riadok %d: druhý %s\n"
@@ -1008,19 +1074,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "riadok %d: Chyba pri parsovaní %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "riadok %d: zlá možnosť %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "riadok %d: Príliš veľa názvov: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "riadok %d: Balíček neexistuje: %s\n"
@@ -1075,142 +1141,147 @@ msgstr "Sťahuje sa %s do %s\n"
msgid "Couldn't download %s\n"
msgstr "Nie je možné stiahnuť %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Architektúra je vyradená: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Architektúra nie je zahrnutá: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS je vyradený: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS nie je zahrnutý: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "Položka %s musí byť v balíčku prítomná: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Duplikovaná položka %s v balíčku: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Nie je možné otvoriť ikonu %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Nie je možné prečítať ikonu %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Neznámy typ ikony: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "riadok %d: Značka má len jeden token: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "riadok %d: Neplatný znak '%c' v: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "riadok %d: Neplatný znak v: %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "riadok %d: Neplatná sekvencia \"..\" v: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "riadok %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: riadok: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "riadok %d: Poškodená značka: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "riadok %d: Prázdna značka: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "riadok %d: Prefixy nemôžu končiť \"/\": %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "riadok %d: Docdir musí začínať '/': %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "riadok %d: Súbor epochy musí byť nepodpísané číslo: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "riadok %d: Zlé určenie %s: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "riadok %d: Zlý formát BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "riadok %d: Podporované sú iba subbalíčky typu noarch: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Interná chyba: Chybná značka %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "riadok %d: %s je zastaralý: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Zlá špecifikácia balíčka: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Balíček už existuje: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "riadok %d: neznáma značka: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} nemôže byť prázdne\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} nemôže byť \"/\"\n"
@@ -1220,161 +1291,193 @@ msgstr "%%{buildroot} nemôže byť \"/\"\n"
msgid "Bad source: %s: %s\n"
msgstr "Zlý zdroj: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Bez čísla záplaty %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch bez zodpovedajúcej značky \"Patch:\"\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Bez čísla zdroja %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Bez značky \"Source:\" v spec súbore\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Chyba pri parsovaní %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "riadok %d: Zlý parameter v %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "riadok %d: Zlá možnosť v %%setup %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Neplatné číslo záplaty %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "riadok %d: druhý %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr "Tokeny závislosti musia začínať alfa-numerickými znakmi, '_' alebo '/'"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "Názov súboru s verziou nie je povolený"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Vyžadovaná verzia"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "Neplatná závislosť"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Vyžadovaná verzia"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "riadok %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "riadok %d: triggery musia obsahovať --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "riadok %d: Chyba parsovania %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "riadok %d: interné skripty musia končiť s '>': %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "riadok %d: skriptovací program musí začínať s '/': %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr "riadok %d: argumenty interpretera nie sú v triggeroch povolené: %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "riadok %d: Druhý %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "riadok %d: nepodporovaný interný skript: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr "riadok %d: argumenty interpretera nie sú v triggeroch povolené: %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "riadok %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Nie je možné otvoriť %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d: Očakávaný argument pre %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "riadok %d: neuzatvorené makro alebo zlá náväznosť riadka\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: zlá kondícia %%if\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: %%else bez počiatočného %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%endif bez počiatočného %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Nenájdené žiadne kompatibilné architektúry pre zostavenie\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Balíček neobsahuje %%description: %s\n"
@@ -1446,287 +1549,276 @@ msgstr "Príliž veľa argumentov v riadku: %s\n"
msgid "Processing policies: %s\n"
msgstr "Vykonávaná politika: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Ignorovanie neplatného regexu %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Nie je možné vytvoriť rúru pre %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Nie je možné spustiť %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Nie je možné vykonať fork %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s zlyhalo: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "nie je možné zapísať všetky dáta do %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Konverzia %s na dlhý integer zlyhala.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "Klasifikátor prázdneho súboru\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Nenastavené žiadne atribúty\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) zlyhalo: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load zlyhal: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Rozpoznávanie súboru \"%s\" zlyhalo: režim %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Hľadá sa %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Zlyhalo vyhľadávanie %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "otázka na spec-súbor %s zlyhala, nie je možné analyzovať\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s je Delta RPM a nemôže byž priamo inštalovaný\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Nepodporovaný payload (%s) v balíčku %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "balíček %s už bol pridaný, %s sa preskakuje\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "balíček %s už bol pridaný, nahradzuje sa s %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(nie je číslo)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(nie je base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(neplatný typ)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(nie je blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(neplatný typ xml)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(nie je OpenPGP podpis)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normálny"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "nahradený"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "nenainštalovaný"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "zdieľaný sieťou"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "zlá farba"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "chýbajúci"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(neznámy)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(nie je reťazec)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s uložený ako %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s vytvorený ako %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1948,7 +2040,7 @@ msgstr "aktualizovať databázu bez zmeny súborového systému"
msgid "do not verify package dependencies"
msgstr "neoverovať závislosti balíka"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "neoverovať prehľad súborov"
@@ -2070,162 +2162,182 @@ msgstr "upgradovať balíčky"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "vyžiadať/overiť všetky balíčky"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "režim rpm checksig"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "požiadavka/overenie balíčkov vlastniacich súbor"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "požiadavka/overenie balíčkov v skupine"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "požiadavka/overenie súboru balíčka"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "požiadavka/overenie balíčkov s identifikátorom balíčka"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "požiadavka/overenie balíčkov identifikátorom hlavičky"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "režim požiadavok"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "požiadavka/overenie inštancie hlavičky"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "požiadavka/overenie balíčkov z inštalačnej transakcie"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "požiadavka pre balíčky aktivované balíčkom"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "režim kontroly"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "požiadavka/overenie balíčkov vyžadujúcich závislosť"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "požiadavka/overenie balíčkov poskytujúcich závislosť"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "požiadavka/overenie balíčkov vyžadujúcich závislosť"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "požiadavka/overenie balíčkov vyžadujúcich závislosť"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "požiadavka/overenie balíčkov vyžadujúcich závislosť"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "požiadavka/overenie balíčkov vyžadujúcich závislosť"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "neseparovať argumenty"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "nespracovávať nebalíčkové súbory ako zoznamy"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "zobraziť všetky konfiguračné súbory"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "zobraziť všetky súbory s dokumentáciou"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "zobraziť základné informácie o balíku"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "zobraziť súbory v balíku"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "vynechať %%ghost súbory"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "zobraziiť stav daných súborov"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "nekontrolovať veľkosť súborov"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "nekontrolovať cesty symbolických linkov"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "nekontrolovať vlastníka súborov"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "nekontrolovať skupinu súborov"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "nekontrolovať čas zmeny súborov"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "nekontrolovať režim súborov"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "nekontrolovať možnosti súborov"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "nekontrolovať bezpečnostné kontexty súboru"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "nekontorlovať súbory v balíčku"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "nekontrolovať závislosti balíčka"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "nespúšťať kontrolné skripty"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Chýbajúce funkcie rpmlib pre %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "očakáva sa balíček so zdrojovým kódom, nájdený bol binárny\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "balíček so zdrojovými kódmi neobsahuje .spec súbor\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "rozbaľovanie archívu zlyhalo %s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " pre súbor "
@@ -2300,97 +2412,117 @@ msgstr "žiadny z balíčkov sa nezhoduje s %s: %s\n"
msgid "no package requires %s\n"
msgstr "žiadny z balíkov nevyžaduje %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "žiadny z balíkov nevyžaduje %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "žiadny z balíkov nespúšťa %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "žiadny z balíkov nevyžaduje %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "žiadny z balíkov nevyžaduje %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "žiadny z balíkov neposkytuje %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "súbor %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "súbor %s nie je vlastnený žiadnym balíkom\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "chybné číslo balíku: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "záznam %u nie je možné čítať\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "balík %s nie je nainštalovaný\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "neznáma značka: \"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: kľúč %d import zlyhal.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: kľúč %d nie je verejný obrnený kľúč.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: importné čítanie zlyhalo(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: Nezmeniteľná oblasť hlavičky nemôže byť čítaná. Poškodený balíček?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread zlyhalo: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NIE JE V PORIADKU"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "V PORIADKU"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (CHÝBAJÚCE KĽÚČE):"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (NEDÔVERUJE SA KĽÚČOM: "
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: otvorenie zlyhalo: %s\n"
@@ -2415,144 +2547,195 @@ msgstr "Nie je možné zmeniť koreňový adresár: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Nie je možné obnoviť koreňový adresár: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NIE"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "ÁNO"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "PreReq:, Provides:, a Obsoletes: verzie pre podporu závislostí."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr "názvy súborov uložené ako (dirName,baseName,dirIndex), nie ako cesta."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "payload balíčka môže byť komprimovaný pomocou bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "payload balíčka môže byť komprimovaný pomocou xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "payload balíčka môže byť komprimovaný pomocou lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "súbory payloadu balíčka majú predponu \"./\"."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "názov-verzia-vydanie balíčka nie je implicitne sprostredkované."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "značky hlavičky sú vždy zoradené po nahratí."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "interpreter skriptletov môže použiť argumenty z hlavičky."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "hardlinkovaný súbor môže byť inštalovaný bez toho, aby bol kompletný."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "skriptlety balíčka môžu pristupovať k databáze rpm pri inštalácii."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "interná podpora pre lua skripty."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "prehľad algoritmu súboru je nastaviteľný v každom balíčku"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "podpora pre schopnosti súboru POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "skriptlety balíčka môžu byť rozbalené počas inštalácie."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "neoverovať závislosti balíka"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Vyžadovaná verzia"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "Neplatná závislosť"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Neukončené %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "Neplatná závislosť"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "používateľ %s neexistuje - použije sa root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "skupina %s neexistuje - použije sa root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Chybné magické číslo"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Chybná/nečitateľná hlavička"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Priveľká hlavička"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Neznámy typ súboru"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Prehľad sa nezhoduje"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Interná chyba"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Súbor z archívu nie je v hlavičke"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " zlyhalo - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "otvorenie %s zlyhalo: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: nie je balíček rpm (alebo balíček manifestu)\n"
@@ -2584,42 +2767,42 @@ msgstr "Zlyhané závislosti:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: nie je balíček rpm (alebo balíček manifestu): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s nie je možné nainštalovať\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Prenáša sa %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "preskakuje sa %s - transfer zlyhal\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "balíček %s nie je premiestniteľný\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "chyba pri čítaní zo súboru %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" špecifikuje viacero balíčkov:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "nie je možné otvoriť %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Inštaluje sa %s\n"
@@ -2645,12 +2828,12 @@ msgstr "čítanie zlyhalo: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "nie je balíček rpm\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "nie je možné vytvoriť %s zámok na %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "čaká sa na %s zámok na %s\n"
@@ -2666,9 +2849,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Zlyhalo vyriešenie symbolu %s: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Zásuvný modul %s nenačítaný\n"
+msgstr ""
#: lib/rpmplugins.c:199
#, c-format
@@ -2809,60 +2992,79 @@ msgstr "chýba architektúra pre %s na %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "zlá možnosť '%s' na %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Neznámy systém: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Prosím kontaktujte %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Nie je možné otvoriť %s pre čítanie: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "Nie je možné obnoviť aktuálny priečinok: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "nie je zabudovaná podpora pre skriptlety <lua>\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Nie je možné vytvoriť dočasný súbor pre %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Nie je možné duplikovať popisovač súboru: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Nie je možné prečítať ikonu %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Nie je možné obnoviť koreňový adresár: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite zlyhalo: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s skriptlet zlyhal, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s skriplet zlahal, signál %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s skriplet zlyhal, návratový kód: %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Neznámy formát"
@@ -2874,127 +3076,146 @@ msgstr "inštalovať"
msgid "erase"
msgstr "zmazať"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "nie je možné otvoriť databázu balíčkov v %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "nadbytočná '(' v popise balíčka: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "chýbajúca '(' v popise balíčka: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "chýbajúca ')' v popise balíčka: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: čítanie verejného kľúča zlyhalo.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "transakcia"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(nie je OpenPGP podpis)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Nie je možné znova načítať hlavičku podpisu.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Hlavička"
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 digest:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "SHA1 digest v hlavičke:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Hlavička"
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "preskočené"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "zlyhané"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "chýba %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Nesplené závislosti pre %s:\n"
@@ -3068,219 +3289,219 @@ msgstr "iterátor poľa použitý s poľami inej veľkosti"
msgid "Generating %d missing index(es), please wait...\n"
msgstr "Generuje sa %d chýbajúcich indexov, prosím čakajte...\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "nenastavená dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: preskakuje sa"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "chyba(%d) ukladania záznamu #%d do %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec zlyhal: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp zlyhal: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: preskakuje sa"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: poškodená hlavička #%u získaná -- preskakuje sa.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: nie je možné čítať hlavičku na 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "nebola nastavená žiadna dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "zlyhanie pri vytváraní priečinka %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "hlavička #%u v databázy je zlá -- preskakuje sa.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "nie je možné pridať záznam pôvodne na %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "zlyhalo znovuzostavenie databázy: pôvodná databáza zostáva na mieste\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "nepodarilo sa nahradiť starú databázu novou!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "nahradiť súbory v %s súbormi z %s pre obnovenie"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "nepodarilo sa odstrániť adresár %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "nerozpoznaný db parameter: \"%s\" ignorovaný.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s má neplatnú číselnú hodnotu, preskakuje sa\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s má príliš veľkú alebo príliš malú long hodnotu, preskakuje sa\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s má príliš veľkú alebo príliš malú int hodnotu, preskakuje sa\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "nie je možné získaž zámok %s na %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "zdieľaný"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "výhradný"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "neplatný typ indexu %x v %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "chyba(%d) získaných \"%s\" záznamov z %s indexu: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "chyba(%d) pri ukladaní záznamu \"%s\" do %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "chyba(%d) v odstraňovaní záznamu \"%s\" z %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "chyba(%d) pridania hlavičky #%d záznamu\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "chyba(%d) odstránenia hlavičky #%d záznamu\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "chyba(%d) pri alokácii novej inštancii balíčka\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "nerozpoznaný db parameter: \"%s\" ignorovaný.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s má neplatnú číselnú hodnotu, preskakuje sa\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s má príliš veľkú alebo príliš malú long hodnotu, preskakuje sa\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s má príliš veľkú alebo príliš malú int hodnotu, preskakuje sa\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(prázdne)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(prázdne)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Makro %%%s má neukončené parametre\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Makro %%%s má neukončené telo\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Makro %%%s má neprípustné meno (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Makro %%%s má prázdné telo\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Zlyhalo vyhodnotenie makra %%%s\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Makro %%%s má nedovolené meno (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Neznáma možnosť %c v %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3288,22 +3509,22 @@ msgstr ""
"Príliž veľa úrovní rekurzie v rozbaľovaní makra. Zrejme je to spôsobené "
"vyhlásením rekurzívneho makra.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Neukončené %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Po %% nasleduje nespracovateľné makro\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktívnych %d prázdnych %d\n"
@@ -3323,31 +3544,31 @@ msgstr "Súbor %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Súbor %s je menší než %u bytov\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "vytvorenie priečinka zlyhalo"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "neplatná syntax v lua skriptlete: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "nesprávna syntax v lua skripte: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua skript zlyhal: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "neplatná syntax v súbore lua: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "obslúženie lua zlyhalo: %s\n"
@@ -3356,19 +3577,19 @@ msgstr "obslúženie lua zlyhalo: %s\n"
msgid "[none]"
msgstr "[žiadne]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(žiadna chyba)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "fatálna chyba: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "chyba: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "varovanie: "
@@ -3377,101 +3598,159 @@ msgstr "varovanie: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "alokácia pamäti (%u bajtov) vrátila NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, ID kľúča %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(žiadne)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "chyba pri vytvárané dočasného súboru %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "chyba pri vytvárané dočasného súboru %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "chyba pri vytvárané dočasného súboru %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "zlyhanie pri vytváraní priečinka %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite zlyhalo: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush zlyhal: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Nie je možné vytvoriť rúru pre podpísanie: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Nie je možné spustiť %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: otvorenie zlyhalo: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Nie je možné otvoriť súbor %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Nie je možné otvoriť %%files súbor %s: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "spustenie gpg zlyhalo (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg zlyhal pri zápise podpisu\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "nie je možné prečítať podpis\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature zlyhalo: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature zlyhalo: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "vykonanie zlyhalo\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp zlyhal\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "vykonanie zlyhalo\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "vykonanie zlyhalo\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s už obsahuje rovnaký podpis, preskakuje sa\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature zlyhalo: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s už obsahuje rovnaký podpis, preskakuje sa\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature zlyhalo: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp zlyhal\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead zlyhalo: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "nahradenie %s zlyhalo: %s\n"
@@ -3485,84 +3764,23 @@ msgstr "%s: čítanie zoznamu zlyhalo: %s\n"
msgid "don't verify header+payload signature"
msgstr "neoverovať podpis hlavičky a payloadu"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Nie je možné zapísať payload do %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Nie je možné čítať payload z %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Nie je možné otvoriť dočasný súbor.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Nie je možné otvoriť cieľ pre podpísanie %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Nie je možné prečítať hlavičku z %s: %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Nie je možné zapísať hlavičku do %s: %s\n"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "nevykonať žiadne kolekcie akcií"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr ""
-#~ "Nezmeniteľná oblasť hlavičky nemôže byť čítaná. Poškodený balíček?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Zlyhalo dekódovanie politiky pre %s\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Zlyhalo vytvorenie dočasného súboru pre %s: %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Zlyhalo zapísanie %s politiky do súboru %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Zlyhalo vytvorenie obsluhy semanage\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Zlyhalo pripojenie k politike obsluhy\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Zlyhalo začatie transakcie politiky: %s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "Zlyhalo odstránenie dočasnej politky súboru %s: %s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Zlyhala inštalácia modulu politiky: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Zlyhalo odstránenie modulu politiky: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Zlyhal proces forku: %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Zlyhalo spustenie %s: %s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s nebol ukončený v poriadku\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Konverzia %s na dlhý integer zlyhala.\n"
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s zlyhal s exit kódom %i\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Zadajte helo:"
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Zlyhalo odoslanie zmien politiky\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Heslo je v poriadku.\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Zlyhalo rozbalenie cesty restorecon"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr "Chybne zadané heslo, alebo expirovaný kľúč gpg\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Zlyhalo preznačkovanie súborového systému. Súbory môžu mať nesprávne "
-#~ "značky\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Chybný vlastník/skupina: %s\n"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Zlyhalo znovunačítanie kontextu súboru. Súbory môžu mať nesprávne značky\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "riadok %d: Neplatný znak v: %s\n"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Zlyhalo rozbalenie politiky z %s\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Nie je možné vytvoriť rúru pre podpísanie: %m"
diff --git a/po/sl.gmo b/po/sl.gmo
index 2b59339d..d59be44a 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 9360cb55..c19927c5 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Slovenian (http://www.transifex.com/projects/p/rpm/language/"
+"Language-Team: Slovenian (http://www.transifex.com/rpm-team/rpm/language/"
"sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
@@ -81,8 +81,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -102,7 +102,7 @@ msgstr "nepričakovana oblika poizvedbe"
msgid "unexpected query source"
msgstr "nepričakovan izvor poizvedbe"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "izbran sme biti le en glavni način"
@@ -202,7 +202,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "argumenti izbire --root (-r) se morajo začeti z /"
@@ -222,201 +222,243 @@ msgstr "argumenti za poizvedbo niso podani"
msgid "no arguments given for verify"
msgstr "argumenti za preverjanje niso podani"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr ""
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr ""
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "brez preverjanja datotek v paketu"
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr ""
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr ""
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "brez upoštevanja vrhnjega imenika izgradnje"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+msgid "run build in current directory"
+msgstr ""
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "po zaključku drevo imenikov v katerih smo pakete gradili odstrani"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "brez izvajanja katerekoli od stopenj izgradnje"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "brez izvajanja katerekoli od stopenj izgradnje"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "po zaključku naj se izvorna koda izbriše"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "po zaključku odstrani datoteko s specifikacijami"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "preskok naravnost na določeno stopnjo (samo za c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "brez upoštevanja strojnega okolja ciljnega sistema"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Datoteke s specifikacijami %s ni možno odpreti: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr ""
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Datoteke s specifikacijami %s ni možno odpreti: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr ""
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr ""
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr ""
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr ""
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Izgradnja za ciljna strojna okolja: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Izgradnja za ciljni sistem %s\n"
@@ -465,50 +507,64 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr ""
-#: rpmsign.c:35
-msgid "Signature options:"
+#: rpmsign.c:36
+msgid "sign package(s) files"
msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
+#: rpmsign.c:39
+msgid "<key>"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Vnesite pristopno geslo: "
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:47
+msgid "Signature options:"
+msgstr ""
+
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Pristopno geslo je pravo.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
+msgstr ""
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix se sme uporabiti le pri namestitvi"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches sme biti podan le ob odstranitvi paketa"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -525,7 +581,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "uporabi naslednjo obliko poizvedbe"
@@ -623,218 +679,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr ""
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr ""
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr ""
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr ""
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr ""
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr ""
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr ""
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr ""
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Neobstoječ lastnik/skupina: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -853,89 +909,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Iskanje kanoničnega imena gostitelja je bilo neuspešno: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr ""
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Ni možno odpreti %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Ni možno odpreti %s: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: branje Fread je bilo neuspešno: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Zapisano: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Neuspešno ustvarjanje izhodne datoteke za paket %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "ni možno ustvariti %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -986,19 +1043,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr ""
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1053,142 +1110,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr ""
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "vrstica %d: Napačno število %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "datoteka %s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1198,161 +1259,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr ""
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr ""
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Ni možno odpreti %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1423,287 +1516,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr ""
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr ""
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "poizvedba po datoteki spec. %s je bila neuspešna, razčlemba ni možna\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(ni število)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr ""
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr ""
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1924,7 +2006,7 @@ msgstr "obnovi podatkovno zbirko, a ne spreminjaj datotečnega sistema"
msgid "do not verify package dependencies"
msgstr "brez preverjanja soodvisnosti paketa"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2047,162 +2129,178 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr ""
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr ""
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr ""
+
+#: lib/poptQV.c:107
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr ""
+
+#: lib/poptQV.c:109
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr ""
+
+#: lib/poptQV.c:111
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr ""
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "izpis vseh nastavitvene datoteke"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "izpis vseh dokumentacijske datoteke"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "iznos osnovnih podatkov o datoteki"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "izpis seznama datotek v paketu"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "izpis stanja seznama datotek"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "brez preverjanja datotek v paketu"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " za datoteko "
@@ -2277,96 +2375,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr "noben paket ne potrebuje %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "noben paket ne potrebuje %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "noben paket ne proži %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "noben paket ne potrebuje %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "noben paket ne potrebuje %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "noben paket ne nudi %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "datoteka %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "datoteka %s ni del nobenega paketa\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "neveljavna številka paketa: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "paket %s ni nameščen\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: branje Fread je bilo neuspešno: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NI DOBRO"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "V REDU"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (MANJKAJOČI KLJUČI:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (NEPREVERJENI KLJUČI:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: odpiranje je bilo neuspešno: %s\n"
@@ -2391,144 +2509,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr ""
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "brez preverjanja soodvisnosti paketa"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Napačno magično število"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Poškodovana/neberljiva glava"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Glava je predolga"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Neznan tip datoteke"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Notranja napaka"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " neuspešno - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "odpiranje %s je bilo neuspešno: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2560,42 +2726,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s ni možno namestiti\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Prenašanje %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "napaka pri branju iz datoteke %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "ni možno odpreti %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Nameščanje %s\n"
@@ -2621,12 +2787,12 @@ msgstr ""
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2784,60 +2950,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr ""
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Neznan sistem: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Datoteke s specifikacijami %s ni možno odpreti: %s\n"
+
+#: lib/rpmscript.c:361
+#, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr ""
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: pisanje Fwrite je bilo neuspešno: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2849,127 +3034,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr ""
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
+msgstr ""
+
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3043,242 +3247,242 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "dbpath ni nastavljena"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "zamenjava stare podatkovne zbirke z novo je bila neuspešna!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "neuspešna odstranitev imenika %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr ""
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s ima neveljavno številčno vrednost, prezrto\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s ima preveliko ali premajhno dolgo (long) vrednost, prezrto\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr ""
+"%s ima preveliko ali premajhno vrednost malega (small) celega\n"
+"števila, prezrto\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "skupno"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "izključujoče"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s ima neveljavno številčno vrednost, prezrto\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s ima preveliko ali premajhno dolgo (long) vrednost, prezrto\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr ""
-"%s ima preveliko ali premajhno vrednost malega (small) celega\n"
-"števila, prezrto\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(prazni)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(prazni)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr ""
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktivni %d prazni %d\n"
@@ -3298,31 +3502,31 @@ msgstr ""
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3331,19 +3535,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr ""
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "usodna napaka: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "napaka: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "opozorilo: "
@@ -3352,101 +3556,159 @@ msgstr "opozorilo: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "alokacija pomnilnika (%u bajtov) vrnjeno NIČ.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "napaka pri branju iz datoteke %s\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "napaka pri branju iz datoteke %s\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "neuspešna odstranitev imenika %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: pisanje Fwrite je bilo neuspešno: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: odpiranje je bilo neuspešno: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Ni možno odpreti %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Ni možno odpreti %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature je bilo neuspešno: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmWriteSignature je bilo neuspešno: %s\n"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "izvajanje je bilo neuspešno\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "izvajanje je bilo neuspešno\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "izvajanje je bilo neuspešno\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature je bilo neuspešno: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead je bil neuspešen: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3459,3 +3721,12 @@ msgstr ""
#: tools/rpmgraph.c:220
msgid "don't verify header+payload signature"
msgstr ""
+
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Vnesite pristopno geslo: "
+
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Pristopno geslo je pravo.\n"
+
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Neobstoječ lastnik/skupina: %s\n"
diff --git a/po/sr.gmo b/po/sr.gmo
index 401d25ad..533a14d2 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index ba0a7f7c..255c0b73 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,11 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Serbian (http://www.transifex.com/projects/p/rpm/language/"
-"sr/)\n"
+"Language-Team: Serbian (http://www.transifex.com/rpm-team/rpm/language/sr/)\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -81,8 +80,8 @@ msgstr "Опције провере (са -V или --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Опције инсталације/надградње/брисања:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Заједничке опције за све rpm режиме и извршне програме:"
@@ -102,7 +101,7 @@ msgstr "неочекиван облик упита"
msgid "unexpected query source"
msgstr "неочекивани извор упита"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "само један главни режим сме бити наведен"
@@ -208,7 +207,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "аргументи за --root (-r) морају почети знаком /"
@@ -228,204 +227,252 @@ msgstr "нема задатих аргумената за упит"
msgid "no arguments given for verify"
msgstr "нема задатих аргумената за проверу"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot је већ наведен, занемарујем %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"направи кроз %prep (распаковани извори и примењене закрпе) из <specfile>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "направи кроз %build (%prep, онда компилирај) из <specfile>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "направи кроз %install (%prep, %build, затим инсталирај) из <specfile>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "провери %files одељак из <specfile>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "направи изворне и бинарне пакете из <specfile>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "направи бинарне пакете само из <specfile>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "направи изворне пакете само из <specfile>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"направи кроз %prep (распаковани извори и примењене закрпе) из <specfile>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<source package>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "направи кроз %build (%prep, онда компилирај) из <specfile>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"направи кроз %install (%prep, %build, затим инсталирај) из <source package>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "провери %files одељак из <specfile>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "направи бинарни пакет из <source package>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "направи бинарни пакет из <source package>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "направи изворне пакете само из <specfile>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"направи кроз %prep (распаковани извори и примењене закрпе) из <tarball>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "направи кроз %build (%prep, онда компилирај) из <tarball>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "направи кроз %install (%prep, %build, онда инсталирај) из <tarball>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "провери %files одељак из <tarball>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "направи изворне и бинарне пакете из <tarball>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "направи бинарне пакете само из <tarball>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "направи изворне пакете само из <tarball>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "направи бинарни пакет из <source package>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<source package>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"направи кроз %install (%prep, %build, затим инсталирај) из <source package>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "премости корен прављења"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "неуспело креирање директоријума"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "уклони стабло прављења по завршетку"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "занемари ExcludeArch: упутства из датотеке спецификације"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "отклони грешке у машини стања датотека"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "немој извршити ниједну фазу прављења"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "немој проверавати зависности прављења"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "немој извршити ниједну фазу прављења"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "не прихватај i18N msgstr ниске из датотеке спецификације"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "уклони изворе по завршетку"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "уклони датотеку спецификације по завршетку"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "прескочи право до одређене фазе (само за c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "премости циљну платформу"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Опције прављења уз [ <specfile> | <tarball> | <source package> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Неуспело прављење зависности:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Не могу да отворим датотеку спецификације %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Неуспело отварање tar цеви: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Не могу да отворим датотеку спецификације %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Неуспело читање датотеке спецификације из %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Неуспела промена имена %s у %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "stat није успео %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Датотека %s није обична датотека.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Датотека %s не личи на датотеку спецификације.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Правим циљне платформе: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Правим за циљ %s\n"
@@ -475,50 +522,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "нема задатих аргумената"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "потпиши пакет(е) (истоветно са --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "обриши потписе пакета"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "инсталирај пакет(е)"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Опције потписа:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Не могу да извршим %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Морате поставити „%%_gpg_name“ у макро датотеци\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Унесите лозинку: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Лозинка је добра.\n"
-
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix може бити употребљена само при инсталацији нових пакета"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches може бити наведена само током брисања пакета"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -535,7 +597,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "користи следећи облик упита"
@@ -636,201 +698,201 @@ msgstr "&& и || нису подржани за стрингове\n"
msgid "syntax error in expression\n"
msgstr "синтаксна грешка у изразу\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Недостаје „(“ у %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Недостаје „)“ у %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Неисправан %s знак: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Недостаје %s у %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Размак који није празан следи %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Лоша синтакса: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Лоша спецификација режима: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Лоша спецификација режима директоријума: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Неисправна могућност: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Није уграђена подршка за могућност датотеке\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Датотека мора почети са „/“: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Непознат алгоритам %u за сажимање датотека, враћам се на MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Датотека наведена двапут: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symlink тачке за BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Датотека није пронађена: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: не могу да учитам непознату ознаку (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: неуспело читање јавног кључа.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: јавни кључ није ојачан.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Испред датотеке је потребно да стоји „/“: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Датотека није пронађена поклапањем: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Не могу да отворим %%files датотеку %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "ред: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Датотека није пронађена поклапањем: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Лоша датотека: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Лош власник/група: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Проверавам за незапаковане датотеке: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -839,17 +901,17 @@ msgstr ""
"Пронађене су инсталиране (али незапаковане) датотеке:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Бинарне датотеке зависне од архитектуре у noarch пакету\n"
@@ -868,89 +930,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: ред: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Није могуће утврдити назив домаћина: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Не могу да поново учитам заглавље потписа.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Непозната компресија товара: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Не могу да направим непроменљиву област заглавља.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Не могу да отворим %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Не могу да запишем пакет: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Не могу да упишем привремено заглавље\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Лоши CSA подаци\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Не могу да отворим %%files датотеку %s: %m\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread није успело: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Записано: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Извршавам „%s“:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Извршавање „%s“ није успело.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Неуспела провера пакета „%s“.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Не могу да направим име излазне датотеке за пакет %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "не могу да направим %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "ред %d: други %s\n"
@@ -1001,19 +1064,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "ред %d: Грешка при тумачењу %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "ред %d: Лоша опција %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "ред %d: Превише имена: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "ред %d: Пакет не постоји: %s\n"
@@ -1068,142 +1131,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Архитектура је изостављена: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Архитектура није уврштена: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS је изостављен: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS није уврштен: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s поље мора бити присутно у пакету: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Удвојене %s ставке у пакету: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Не могу да отворим икону %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Не могу да прочитам икону %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Непозната врста иконе: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "ред %d: Ознака прихвата само један жетон: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "ред %d: други %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: ред: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "ред %d: Лоше обликована ознака: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "ред %d: Празна ознака: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "ред %d: Префикси се не смеју завршавати са „/“: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "ред %d: Docdir мора почети са „/“: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "ред %d: Поље епохе мора бити број без предзнака: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "ред %d: Лоши %s: квалификатори: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "ред %d: Лош облик за BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "ред %d: Само noarch подпакети су подржани: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Интерна грешка: Лажна ознака %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Лоша спецификација пакета: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Пакет већ постоји: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "ред %d: Непозната ознака: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} не може бити празно\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} не може бити „/“\n"
@@ -1213,161 +1280,193 @@ msgstr "%%{buildroot} не може бити „/“\n"
msgid "Bad source: %s: %s\n"
msgstr "Лош извор: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Нема закрпе број %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch без одговарајуће „Patch:“ ознаке\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Нема извора број %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Нема ознаке „Source:“ у датотеци спецификације\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Грешка у тумачењу %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "ред %d: Лош аргумент за %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "ред %d: Лоша %%setup опција %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Неисправан број закрпе %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "ред %d: други %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "ред %d: окидачи морају имати --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "ред %d: Грешка при тумачењу %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "ред %d: интерна скрипта се мора завршити са „>“: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "ред %d: скрипта програма мора почети са „/“: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "ред %d: Други %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "ред %d: неподржана интерна скрипта: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "ред %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Не могу да отворим %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Добио %%else без %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Добио %%endif без %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Нису пронађене усаглашене архитектуре за прављење\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Пакет нема %%description: %s\n"
@@ -1438,287 +1537,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Не могу да направим цев за %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Не могу да извршим %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Не могу да одвојим %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Пребацивање %s у дуги цео број није успело.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) није успело: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load није успело: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Препознавање датотеке „%s“ није успело: режим %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Проналазак %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Неуспело тражење %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "упит на датотеком спецификације %s није успео, не могу да протумачим\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s је Делта RPM и не може се директно инсталирати\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Неподржан терет (%s) у пакету %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "пакет %s је већ додат, прескачем %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "пакет %s је већ додат, замењујем са %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(није број)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(није base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(неисправна врста)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(није blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(неисправна xml врста)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(није OpenPGP потпис)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s сачувано као %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s направљено као %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1939,7 +2027,7 @@ msgstr "ажурирај базу података, али немој мењат
msgid "do not verify package dependencies"
msgstr "немој проверавати зависности пакета"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2061,162 +2149,182 @@ msgstr "надгради пакет(е)"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "испитај/провери све пакете"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "rpm checksig режим"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "испитај/провери пакет(е) које поседују датотеку"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "испитај/провери пакет(е) у групи"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "испитај/провери датотеку пакета"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "испитај/провери пакет(е) са идентификатором пакета"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "испитај/провери пакет(е) са идентификатором заглавља"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "режим rpm упита"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "испитај/провери инстанцу заглавља"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "испитај/провери пакет(е) из трансакције инсталације"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "испитај пакет(е) које је активирао овај пакет"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "режим rpm провере"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "испитај/провери пакет(е) који захтевају зависности"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "испитај/провери пакет(е) који пружају зависности"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "испитај/провери пакет(е) који захтевају зависности"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "испитај/провери пакет(е) који захтевају зависности"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "испитај/провери пакет(е) који захтевају зависности"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "испитај/провери пакет(е) који захтевају зависности"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "немој преклапати аргументе"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "немој обрађивати датотеке које нису пакети као манифесте"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "испиши све датотеке подешавања"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "испиши све датотеке документације"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "избаци основне податке о датотеци"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "испиши датотеке у пакету"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "прескочи %%ghost датотеке"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "прикажи стања наведених датотека"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "немој проверавати величину датотека"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "немој проверавати путање симболичких веза датотека"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "немој проверавати власника датотека"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "немој проверавати групу датотека"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "немој проверавати време мењања датотека"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "немој проверавати режим приступа датотека"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "немој проверавати могућности датотека"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "немој проверавати безбедносне контексте датотека"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "немој проверавати датотеке у пакету"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "немој проверавати зависности пакета"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "немој извршити скрипту(е) провере"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "очекиван је изворни пакет, пронађен је бинарни\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "изворни пакет не садржи .spec датотеку\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "распакивање архиве није успело %s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " на датотеци "
@@ -2291,96 +2399,116 @@ msgstr "ниједан пакет не одговара %s: %s\n"
msgid "no package requires %s\n"
msgstr "ниједан пакет не захтева %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "ниједан пакет не захтева %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "ниједан пакет не активира %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "ниједан пакет не захтева %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "ниједан пакет не захтева %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "ниједан пакет не пружа %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "датотека %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "датотека %s не припада ниједном пакету\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "неисправан број пакета: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "пакет %s није инсталиран\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "непозната ознака: „%s“\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: увозно читање није успело(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr "%s: Непромењива регија заглавља се не може ишчитати. Оштећен пакет?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread није успело: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "НИЈЕ УРЕДУ"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "УРЕДУ"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (НЕДОСТАЈУЋИ КЉУЧЕВИ:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (НЕПОУЗДАНИ КЉУЧЕВИ:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: отварање није успело: %s\n"
@@ -2405,146 +2533,194 @@ msgstr "Не могу да променим коренски директори
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "НЕ "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "ДА"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "Неопходне:, Обезбеђене:, и Застареле: верзије подршке зависности."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"име(на) датотеке сачувано као (називДиректоријума,основноИме,"
"индексДиректоријума) пар, не као путања."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "товар пакета може бити компримован користећи bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "товар пакета може бити компримован користећи lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "датотека(е) товара пакета има префикс „./“."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "назив пакета-верзија-издање није имплицитно наведено."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "ознаке заглавља се увек сортирају након учитавања."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "преводилац скриптице може користити аргументе заглавља."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "датотека чврсте везе може бити инсталирана иако није потпуна."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "скриптица пакета може приступити rpm бази података током инсталације."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "унутрашња подршка за скрипте lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "подршка за POSIX.1e могућности датотека"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "немој проверавати зависности пакета"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Неограничено %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "корисник %s не постоји - користим root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "група %s не постоји - користим root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Лош magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Лоше/нечитљиво заглавље"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Превелика величина заглавља"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Непозната врста датотеке"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Интерна грешка"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Датотека архиве није у заглављу"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " неуспело - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "отварање %s није успело: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: није rpm пакет (или манифест пакета)\n"
@@ -2576,42 +2752,42 @@ msgstr "Неуспеле зависности:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: није rpm пакет (или манифест пакета): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s се не може инсталирати\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Прибављам %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "прескачем %s - неуспео пренос\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "пакет %s се не може премештати\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "грешка при читању из датотеке %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "„%s“ одређује више пакета:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "не могу да отворим %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Инсталирам %s\n"
@@ -2637,12 +2813,12 @@ msgstr "неуспело читање: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2801,60 +2977,79 @@ msgstr "недостаје архитектура за %s на %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "лоша опција „%s“ код %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Непознати систем: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Молим вас контактирајте %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Не могу да отворим %s за читање: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "није уграђена подршка <lua> скриптица\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Не могу да направим привремену датотеку за %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Не могу да удвојим описника датотеке: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Не могу да прочитам икону %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Не могу да прочитам икону %s: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite није успело: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s скриптица није успела, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s скриптица није успела, сигнал %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s скриптица није успела, излазни статус %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Непознат облик"
@@ -2866,127 +3061,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "не могу да отворим Packages базу података у %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "сувишна „(“ у ознаци пакета: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "недостаје „(“ у ознаци пакета: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "недостаје „)“ у ознаци пакета: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: неуспело читање јавног кључа.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(није OpenPGP потпис)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Не могу да поново учитам заглавље потписа.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Заглавље "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 сажетак:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "SHA1 сажетак заглавља:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Заглавље "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "недостаје %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Незадовољене зависности за %s:\n"
@@ -3060,242 +3274,242 @@ msgstr "показивач низа коришћен са низовима ра
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "није постављен dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: прескачем"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "грешка(%d) при записивању слога #%d у %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec није успео: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp није успео: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: прескачем"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: оштећено заглавље #%u враћено -- прескачем.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: не могу да прочитам заглавље на 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "није постављен dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "неуспело креирање директоријума %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "заглавље #%u у бази податак је лоше -- прескачем.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "не могу да додам слог првобитно на %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"неуспело поновно прављење базе података: основна база података је остала на "
"месту\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "неуспела замена старе базе података са новом базом података!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "замени датотеке у %s са датотекама из %s да вратиш у претходно стање"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "неуспело уклањање директоријума %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "није препозната опција базе података: „%s“ занемарено.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s има неправилну бројчану вредност, прескочено\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s има превелику или премалу long вредност, прескочено\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s има превелику или премалу целобројну вредност, прескочено\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "не могу да добијем %s катанац на %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "дељено"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "ексклузивно"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "грешка(%d) при складиштењу слога „%s“ у %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "грешка(%d) при уклањању слога „%s“ из %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "грешка(%d) при заузимању новог примерка пакета\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "није препозната опција базе података: „%s“ занемарено.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s има неправилну бројчану вредност, прескочено\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s има превелику или премалу long вредност, прескочено\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s има превелику или премалу целобројну вредност, прескочено\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(празно)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(празно)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Макро %%%s има незавршене опције\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Макро %%%s има незавршено тело\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Макро %%%s има неправилно име (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Макро %%%s има празно тело\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Макро %%%s није могао да се прошири\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Макро %%%s има неправилно име (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Непозната опција %c у %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Неограничено %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "%% је праћена са макроом кога није могуће рашчланити\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== активно %d празно %d\n"
@@ -3315,31 +3529,31 @@ msgstr "Датотека %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Датотека %s је мања од %u бајтова\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "неуспело креирање директоријума"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "неправилна синтакса у lua скриптици: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "неправилна синтакса у lua скрипти: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua скрипта није успела: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "неправилна синтакса у lua датотеци: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua удица није успела: %s\n"
@@ -3348,19 +3562,19 @@ msgstr "lua удица није успела: %s\n"
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(без грешке)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "кобна грешка: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "грешка: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "упозорење: "
@@ -3369,101 +3583,159 @@ msgstr "упозорење: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "алокација меморије (%u бајта) је вратила НАЛ.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "грешка при прављењу привремене датотеке %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "грешка при прављењу привремене датотеке %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "грешка при прављењу привремене датотеке %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "неуспело креирање директоријума %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite није успело: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush није успело: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Не могу да направим цев за потписивање: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Не могу да извршим %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: отварање није успело: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Не могу да извршим %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Не могу да отворим %%files датотеку %s: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "неуспело gpg извршавање (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg није успео да запише потпис\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "не могу да прочитам потпис\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature није успело: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature није успело: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "неуспело извршавање\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp није успело\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "неуспело извршавање\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "неуспело извршавање\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature није успело: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature није успело: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp није успело\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead није успело: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3477,23 +3749,17 @@ msgstr "%s: неуспело читање манифеста: %s\n"
msgid "don't verify header+payload signature"
msgstr "немој проверавати потпис заглавља+товара"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Не могу да упишем товар у %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Не могу да прочитам товар из %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Не могу да отворим temp датотеку.\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Пребацивање %s у дуги цео број није успело.\n"
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Не могу да отворим sigtarget %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Унесите лозинку: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Не могу да прочитам заглавље из %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Лозинка је добра.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Не могу да упишем заглавље у %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Лош власник/група: %s\n"
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr "Непромењива регија заглавља се не може ишчитати. Оштећен пакет?\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Не могу да направим цев за потписивање: %m"
diff --git a/po/sr@latin.gmo b/po/sr@latin.gmo
index 64d34518..717c9658 100644
--- a/po/sr@latin.gmo
+++ b/po/sr@latin.gmo
Binary files differ
diff --git a/po/sr@latin.po b/po/sr@latin.po
index 0d39455a..a79b90f4 100644
--- a/po/sr@latin.po
+++ b/po/sr@latin.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/rpm/"
+"Language-Team: Serbian (Latin) (http://www.transifex.com/rpm-team/rpm/"
"language/sr@latin/)\n"
"Language: sr@latin\n"
"MIME-Version: 1.0\n"
@@ -81,8 +81,8 @@ msgstr "Opcije provere (sa -V ili --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "Opcije instalacije/nadgradnje/brisanja:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Zajedničke opcije za sve rpm režime i izvršne programe:"
@@ -102,7 +102,7 @@ msgstr "neočekivan oblik upita"
msgid "unexpected query source"
msgstr "neočekivani izvor upita"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "samo jedan glavni režim sme biti naveden"
@@ -208,7 +208,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "argumenti za --root (-r) moraju početi znakom /"
@@ -228,204 +228,252 @@ msgstr "nema zadatih argumenata za upit"
msgid "no arguments given for verify"
msgstr "nema zadatih argumenata za proveru"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot je već naveden, zanemarujem %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"napravi kroz %prep (raspakovani izvori i primenjene zakrpe) iz <specfile>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "napravi kroz %build (%prep, onda kompiliraj) iz <specfile>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "napravi kroz %install (%prep, %build, zatim instaliraj) iz <specfile>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "proveri %files odeljak iz <specfile>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "napravi izvorne i binarne pakete iz <specfile>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "napravi binarne pakete samo iz <specfile>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "napravi izvorne pakete samo iz <specfile>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"napravi kroz %prep (raspakovani izvori i primenjene zakrpe) iz <specfile>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<source package>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "napravi kroz %build (%prep, onda kompiliraj) iz <specfile>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"napravi kroz %install (%prep, %build, zatim instaliraj) iz <source package>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "proveri %files odeljak iz <specfile>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "napravi binarni paket iz <source package>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "napravi binarni paket iz <source package>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "napravi izvorne pakete samo iz <specfile>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"napravi kroz %prep (raspakovani izvori i primenjene zakrpe) iz <tarball>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "napravi kroz %build (%prep, onda kompiliraj) iz <tarball>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "napravi kroz %install (%prep, %build, onda instaliraj) iz <tarball>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "proveri %files odeljak iz <tarball>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "napravi izvorne i binarne pakete iz <tarball>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "napravi binarne pakete samo iz <tarball>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "napravi izvorne pakete samo iz <tarball>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "napravi binarni paket iz <source package>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<source package>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"napravi kroz %install (%prep, %build, zatim instaliraj) iz <source package>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "premosti koren pravljenja"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "neuspelo kreiranje direktorijuma"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "ukloni stablo pravljenja po završetku"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "zanemari ExcludeArch: uputstva iz datoteke specifikacije"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "otkloni greške u mašini stanja datoteka"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "nemoj izvršiti nijednu fazu pravljenja"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "nemoj proveravati zavisnosti pravljenja"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "nemoj izvršiti nijednu fazu pravljenja"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "ne prihvataj i18N msgstr niske iz datoteke specifikacije"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "ukloni izvore po završetku"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "ukloni datoteku specifikacije po završetku"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "preskoči pravo do određene faze (samo za c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "premosti ciljnu platformu"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Opcije pravljenja uz [ <specfile> | <tarball> | <source package> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Neuspelo pravljenje zavisnosti:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Ne mogu da otvorim datoteku specifikacije %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Neuspelo otvaranje tar cevi: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Ne mogu da otvorim datoteku specifikacije %s: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Neuspelo čitanje datoteke specifikacije iz %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Neuspela promena imena %s u %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "stat nije uspeo %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Datoteka %s nije obična datoteka.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Datoteka %s ne liči na datoteku specifikacije.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Pravim ciljne platforme: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Pravim za cilj %s\n"
@@ -476,50 +524,65 @@ msgstr ""
msgid "Keyring options:"
msgstr ""
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "nema zadatih argumenata"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "potpiši paket(e) (istovetno sa --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "obriši potpise paketa"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "instaliraj paket(e)"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Opcije potpisa:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Ne mogu da izvršim %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Morate postaviti „%%_gpg_name“ u makro datoteci\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Unesite lozinku: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Lozinka je dobra.\n"
-
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix može biti upotrebljena samo pri instalaciji novih paketa"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches može biti navedena samo tokom brisanja paketa"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -536,7 +599,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "koristi sledeći oblik upita"
@@ -637,201 +700,201 @@ msgstr "&& i || nisu podržani za stringove\n"
msgid "syntax error in expression\n"
msgstr "sintaksna greška u izrazu\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Nedostaje „(“ u %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Nedostaje „)“ u %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Neispravan %s znak: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Nedostaje %s u %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Razmak koji nije prazan sledi %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Loša sintaksa: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Loša specifikacija režima: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Loša specifikacija režima direktorijuma: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Neispravna mogućnost: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Nije ugrađena podrška za mogućnost datoteke\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Datoteka mora početi sa „/“: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Nepoznat algoritam %u za sažimanje datoteka, vraćam se na MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Datoteka navedena dvaput: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symlink tačke za BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Datoteka nije pronađena: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: ne mogu da učitam nepoznatu oznaku (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: neuspelo čitanje javnog ključa.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: javni ključ nije ojačan.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Ispred datoteke je potrebno da stoji „/“: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Datoteka nije pronađena poklapanjem: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Ne mogu da otvorim %%files datoteku %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "red: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Datoteka nije pronađena poklapanjem: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Loša datoteka: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Loš vlasnik/grupa: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Proveravam za nezapakovane datoteke: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -840,17 +903,17 @@ msgstr ""
"Pronađene su instalirane (ali nezapakovane) datoteke:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Binarne datoteke zavisne od arhitekture u noarch paketu\n"
@@ -869,89 +932,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: red: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Nije moguće utvrditi naziv domaćina: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Ne mogu da ponovo učitam zaglavlje potpisa.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Nepoznata kompresija tovara: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Ne mogu da napravim nepromenljivu oblast zaglavlja.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Ne mogu da otvorim %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Ne mogu da zapišem paket: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Ne mogu da upišem privremeno zaglavlje\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Loši CSA podaci\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Ne mogu da otvorim %%files datoteku %s: %m\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread nije uspelo: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Zapisano: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Izvršavam „%s“:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Izvršavanje „%s“ nije uspelo.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Neuspela provera paketa „%s“.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Ne mogu da napravim ime izlazne datoteke za paket %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "ne mogu da napravim %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "red %d: drugi %s\n"
@@ -1002,19 +1066,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "red %d: Greška pri tumačenju %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "red %d: Loša opcija %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "red %d: Previše imena: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "red %d: Paket ne postoji: %s\n"
@@ -1069,142 +1133,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Arhitektura je izostavljena: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Arhitektura nije uvrštena: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS je izostavljen: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS nije uvršten: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s polje mora biti prisutno u paketu: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Udvojene %s stavke u paketu: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Ne mogu da otvorim ikonu %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Ne mogu da pročitam ikonu %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Nepoznata vrsta ikone: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "red %d: Oznaka prihvata samo jedan žeton: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "red %d: drugi %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: red: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "red %d: Loše oblikovana oznaka: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "red %d: Prazna oznaka: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "red %d: Prefiksi se ne smeju završavati sa „/“: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "red %d: Docdir mora početi sa „/“: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "red %d: Polje epohe mora biti broj bez predznaka: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "red %d: Loši %s: kvalifikatori: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "red %d: Loš oblik za BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "red %d: Samo noarch podpaketi su podržani: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Interna greška: Lažna oznaka %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Loša specifikacija paketa: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Paket već postoji: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "red %d: Nepoznata oznaka: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} ne može biti prazno\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} ne može biti „/“\n"
@@ -1214,161 +1282,193 @@ msgstr "%%{buildroot} ne može biti „/“\n"
msgid "Bad source: %s: %s\n"
msgstr "Loš izvor: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Nema zakrpe broj %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch bez odgovarajuće „Patch:“ oznake\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Nema izvora broj %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Nema oznake „Source:“ u datoteci specifikacije\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Greška u tumačenju %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "red %d: Loš argument za %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "red %d: Loša %%setup opcija %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Neispravan broj zakrpe %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "red %d: drugi %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "red %d: okidači moraju imati --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "red %d: Greška pri tumačenju %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "red %d: interna skripta se mora završiti sa „>“: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "red %d: skripta programa mora početi sa „/“: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "red %d: Drugi %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "red %d: nepodržana interna skripta: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "red %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Ne mogu da otvorim %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Dobio %%else bez %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Dobio %%endif bez %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Nisu pronađene usaglašene arhitekture za pravljenje\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Paket nema %%description: %s\n"
@@ -1439,287 +1539,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Ne mogu da napravim cev za %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Ne mogu da izvršim %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Ne mogu da odvojim %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Prebacivanje %s u dugi ceo broj nije uspelo.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) nije uspelo: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load nije uspelo: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Prepoznavanje datoteke „%s“ nije uspelo: režim %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Pronalazak %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Neuspelo traženje %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "upit na datotekom specifikacije %s nije uspeo, ne mogu da protumačim\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s je Delta RPM i ne može se direktno instalirati\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Nepodržan teret (%s) u paketu %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "paket %s je već dodat, preskačem %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "paket %s je već dodat, zamenjujem sa %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(nije broj)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(nije base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(neispravna vrsta)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(nije blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(neispravna xml vrsta)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(nije OpenPGP potpis)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s sačuvano kao %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s napravljeno kao %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1941,7 +2030,7 @@ msgstr "ažuriraj bazu podataka, ali nemoj menjati sistem datoteka"
msgid "do not verify package dependencies"
msgstr "nemoj proveravati zavisnosti paketa"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2063,162 +2152,182 @@ msgstr "nadgradi paket(e)"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "ispitaj/proveri sve pakete"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "rpm checksig režim"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "ispitaj/proveri paket(e) koje poseduju datoteku"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "ispitaj/proveri paket(e) u grupi"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "ispitaj/proveri datoteku paketa"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "ispitaj/proveri paket(e) sa identifikatorom paketa"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "ispitaj/proveri paket(e) sa identifikatorom zaglavlja"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "režim rpm upita"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "ispitaj/proveri instancu zaglavlja"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "ispitaj/proveri paket(e) iz transakcije instalacije"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "ispitaj paket(e) koje je aktivirao ovaj paket"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "režim rpm provere"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "ispitaj/proveri paket(e) koji zahtevaju zavisnosti"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "ispitaj/proveri paket(e) koji pružaju zavisnosti"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "ispitaj/proveri paket(e) koji zahtevaju zavisnosti"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "ispitaj/proveri paket(e) koji zahtevaju zavisnosti"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "ispitaj/proveri paket(e) koji zahtevaju zavisnosti"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "ispitaj/proveri paket(e) koji zahtevaju zavisnosti"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "nemoj preklapati argumente"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "nemoj obrađivati datoteke koje nisu paketi kao manifeste"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "ispiši sve datoteke podešavanja"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "ispiši sve datoteke dokumentacije"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "izbaci osnovne podatke o datoteci"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "ispiši datoteke u paketu"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "preskoči %%ghost datoteke"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "prikaži stanja navedenih datoteka"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "nemoj proveravati veličinu datoteka"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "nemoj proveravati putanje simboličkih veza datoteka"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "nemoj proveravati vlasnika datoteka"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "nemoj proveravati grupu datoteka"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "nemoj proveravati vreme menjanja datoteka"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "nemoj proveravati režim pristupa datoteka"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "nemoj proveravati mogućnosti datoteka"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "nemoj proveravati bezbednosne kontekste datoteka"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "nemoj proveravati datoteke u paketu"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "nemoj proveravati zavisnosti paketa"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "nemoj izvršiti skriptu(e) provere"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "očekivan je izvorni paket, pronađen je binarni\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "izvorni paket ne sadrži .spec datoteku\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "raspakivanje arhive nije uspelo %s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " na datoteci "
@@ -2293,97 +2402,117 @@ msgstr "nijedan paket ne odgovara %s: %s\n"
msgid "no package requires %s\n"
msgstr "nijedan paket ne zahteva %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "nijedan paket ne zahteva %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "nijedan paket ne aktivira %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "nijedan paket ne zahteva %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "nijedan paket ne zahteva %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "nijedan paket ne pruža %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "datoteka %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "datoteka %s ne pripada nijednom paketu\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "neispravan broj paketa: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "paket %s nije instaliran\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "nepoznata oznaka: „%s“\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: uvozno čitanje nije uspelo(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: Nepromenjiva regija zaglavlja se ne može iščitati. Oštećen paket?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread nije uspelo: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "NIJE UREDU"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "UREDU"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (NEDOSTAJUĆI KLJUČEVI:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (NEPOUZDANI KLJUČEVI:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: otvaranje nije uspelo: %s\n"
@@ -2408,146 +2537,194 @@ msgstr "Ne mogu da promenim korenski direktorijum: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NE "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "DA"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "Neophodne:, Obezbeđene:, i Zastarele: verzije podrške zavisnosti."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"ime(na) datoteke sačuvano kao (nazivDirektorijuma,osnovnoIme,"
"indeksDirektorijuma) par, ne kao putanja."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "tovar paketa može biti komprimovan koristeći bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "tovar paketa može biti komprimovan koristeći lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "datoteka(e) tovara paketa ima prefiks „./“."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "naziv paketa-verzija-izdanje nije implicitno navedeno."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "oznake zaglavlja se uvek sortiraju nakon učitavanja."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "prevodilac skriptice može koristiti argumente zaglavlja."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "datoteka čvrste veze može biti instalirana iako nije potpuna."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "skriptica paketa može pristupiti rpm bazi podataka tokom instalacije."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "unutrašnja podrška za skripte lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "podrška za POSIX.1e mogućnosti datoteka"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "nemoj proveravati zavisnosti paketa"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Neograničeno %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "korisnik %s ne postoji - koristim root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "grupa %s ne postoji - koristim root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Loš magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Loše/nečitljivo zaglavlje"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Prevelika veličina zaglavlja"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Nepoznata vrsta datoteke"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Interna greška"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Datoteka arhive nije u zaglavlju"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " neuspelo - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "otvaranje %s nije uspelo: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: nije rpm paket (ili manifest paketa)\n"
@@ -2579,42 +2756,42 @@ msgstr "Neuspele zavisnosti:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: nije rpm paket (ili manifest paketa): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s se ne može instalirati\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Pribavljam %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "preskačem %s - neuspeo prenos\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "paket %s se ne može premeštati\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "greška pri čitanju iz datoteke %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "„%s“ određuje više paketa:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "ne mogu da otvorim %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Instaliram %s\n"
@@ -2640,12 +2817,12 @@ msgstr "neuspelo čitanje: %s (%d)\n"
msgid "not an rpm package\n"
msgstr ""
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2804,60 +2981,79 @@ msgstr "nedostaje arhitektura za %s na %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "loša opcija „%s“ kod %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Nepoznati sistem: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Molim vas kontaktirajte %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Ne mogu da otvorim %s za čitanje: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "nije ugrađena podrška <lua> skriptica\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Ne mogu da napravim privremenu datoteku za %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Ne mogu da udvojim opisnika datoteke: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Ne mogu da pročitam ikonu %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Ne mogu da pročitam ikonu %s: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite nije uspelo: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s skriptica nije uspela, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s skriptica nije uspela, signal %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s skriptica nije uspela, izlazni status %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Nepoznat oblik"
@@ -2869,127 +3065,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "ne mogu da otvorim Packages bazu podataka u %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "suvišna „(“ u oznaci paketa: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "nedostaje „(“ u oznaci paketa: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "nedostaje „)“ u oznaci paketa: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: neuspelo čitanje javnog ključa.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(nije OpenPGP potpis)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Ne mogu da ponovo učitam zaglavlje potpisa.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Zaglavlje "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 sažetak:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "SHA1 sažetak zaglavlja:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Zaglavlje "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "nedostaje %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Nezadovoljene zavisnosti za %s:\n"
@@ -3063,242 +3278,242 @@ msgstr "pokazivač niza korišćen sa nizovima različitih veličina"
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "nije postavljen dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: preskačem"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "greška(%d) pri zapisivanju sloga #%d u %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec nije uspeo: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp nije uspeo: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: preskačem"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: oštećeno zaglavlje #%u vraćeno -- preskačem.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: ne mogu da pročitam zaglavlje na 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "nije postavljen dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "neuspelo kreiranje direktorijuma %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "zaglavlje #%u u bazi podatak je loše -- preskačem.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "ne mogu da dodam slog prvobitno na %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"neuspelo ponovno pravljenje baze podataka: osnovna baza podataka je ostala "
"na mestu\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "neuspela zamena stare baze podataka sa novom bazom podataka!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "zameni datoteke u %s sa datotekama iz %s da vratiš u prethodno stanje"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "neuspelo uklanjanje direktorijuma %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "nije prepoznata opcija baze podataka: „%s“ zanemareno.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s ima nepravilnu brojčanu vrednost, preskočeno\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s ima preveliku ili premalu long vrednost, preskočeno\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s ima preveliku ili premalu celobrojnu vrednost, preskočeno\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "ne mogu da dobijem %s katanac na %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "deljeno"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "ekskluzivno"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "greška(%d) pri skladištenju sloga „%s“ u %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "greška(%d) pri uklanjanju sloga „%s“ iz %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "greška(%d) pri zauzimanju novog primerka paketa\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "nije prepoznata opcija baze podataka: „%s“ zanemareno.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s ima nepravilnu brojčanu vrednost, preskočeno\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s ima preveliku ili premalu long vrednost, preskočeno\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s ima preveliku ili premalu celobrojnu vrednost, preskočeno\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(prazno)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(prazno)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Makro %%%s ima nezavršene opcije\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Makro %%%s ima nezavršeno telo\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Makro %%%s ima nepravilno ime (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Makro %%%s ima prazno telo\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Makro %%%s nije mogao da se proširi\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Makro %%%s ima nepravilno ime (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Nepoznata opcija %c u %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Neograničeno %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "%% je praćena sa makroom koga nije moguće raščlaniti\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktivno %d prazno %d\n"
@@ -3318,31 +3533,31 @@ msgstr "Datoteka %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Datoteka %s je manja od %u bajtova\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "neuspelo kreiranje direktorijuma"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "nepravilna sintaksa u lua skriptici: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "nepravilna sintaksa u lua skripti: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua skripta nije uspela: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "nepravilna sintaksa u lua datoteci: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua udica nije uspela: %s\n"
@@ -3351,19 +3566,19 @@ msgstr "lua udica nije uspela: %s\n"
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(bez greške)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "kobna greška: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "greška: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "upozorenje: "
@@ -3372,101 +3587,159 @@ msgstr "upozorenje: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "alokacija memorije (%u bajta) je vratila NAL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "greška pri pravljenju privremene datoteke %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "greška pri pravljenju privremene datoteke %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "greška pri pravljenju privremene datoteke %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "neuspelo kreiranje direktorijuma %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite nije uspelo: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush nije uspelo: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Ne mogu da napravim cev za potpisivanje: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Ne mogu da izvršim %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: otvaranje nije uspelo: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Ne mogu da izvršim %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Ne mogu da otvorim %%files datoteku %s: %m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "neuspelo gpg izvršavanje (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg nije uspeo da zapiše potpis\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "ne mogu da pročitam potpis\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature nije uspelo: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature nije uspelo: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "neuspelo izvršavanje\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp nije uspelo\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "neuspelo izvršavanje\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "neuspelo izvršavanje\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature nije uspelo: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature nije uspelo: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp nije uspelo\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead nije uspelo: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3480,23 +3753,17 @@ msgstr "%s: neuspelo čitanje manifesta: %s\n"
msgid "don't verify header+payload signature"
msgstr "nemoj proveravati potpis zaglavlja+tovara"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Ne mogu da upišem tovar u %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Ne mogu da pročitam tovar iz %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Ne mogu da otvorim temp datoteku.\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Prebacivanje %s u dugi ceo broj nije uspelo.\n"
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Ne mogu da otvorim sigtarget %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Unesite lozinku: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Ne mogu da pročitam zaglavlje iz %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Lozinka je dobra.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Ne mogu da upišem zaglavlje u %s: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Loš vlasnik/grupa: %s\n"
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr "Nepromenjiva regija zaglavlja se ne može iščitati. Oštećen paket?\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Ne mogu da napravim cev za potpisivanje: %m"
diff --git a/po/sv.gmo b/po/sv.gmo
index a3b646d0..7f095d20 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 3fd9d727..2f2dd21a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -3,17 +3,16 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Göran Uddeborg <goeran@uddeborg.se>, 2011
# Göran Uddeborg <goeran@uddeborg.se>, 2011,2013
+# Göran Uddeborg <goeran@uddeborg.se>, 2011,2013,2015
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
-"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Swedish (http://www.transifex.com/projects/p/rpm/language/"
-"sv/)\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-08-13 10:40+0000\n"
+"Last-Translator: Lubos Kardos <kardos.lubos@gmail.com>\n"
+"Language-Team: Swedish (http://www.transifex.com/rpm-team/rpm/language/sv/)\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -80,10 +79,10 @@ msgstr "Verifieringsflaggor (med -V eller --verify):"
#: rpmqv.c:57
msgid "Install/Upgrade/Erase options:"
-msgstr "Installations-/Uppdaterings-/Raderingsflaggor"
+msgstr "Installations-/Uppdaterings-/Raderingsflaggor:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Gemensamma flaggor för alla rpm-lägen och binärer:"
@@ -103,7 +102,7 @@ msgstr "oväntat frågeformat"
msgid "unexpected query source"
msgstr "oväntad frågekälla"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "enbart ett huvudläge kan anges"
@@ -210,7 +209,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr "--test kan enbart användas vid paketinstallation och -radering"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "argument till --root (-r) måste börja med /"
@@ -230,207 +229,255 @@ msgstr "inga parametrar angivna för fråga"
msgid "no arguments given for verify"
msgstr "inga parametrar angivna för verifiering"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot redan angivet, ignorerar %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"bygg till %prep (packa upp källkod samt applicera patchar) från <specfil>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfil>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "bygg till och med %build (%prep, kompilera sedan) från <specfil>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"bygg till och med %install (%prep, %build, installera sedan) från <specfil>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "verifiera %files-sektionen i <specfil>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "bygg käll- och binärpaket från <specfil>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "bygg endast binärpaket från <specfil>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "bygg endast källpaket från <specfil>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"bygg till %prep (packa upp källkod samt applicera patchar) från <specfil>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<källpaket>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "bygg till och med %build (%prep, kompilera sedan) från <specfil>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"bygg till och med %install (%prep, %build, installera sedan) från <källpaket>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "verifiera %files-sektionen i <specfil>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "bygg binärpaket från <källpaket>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "bygg binärpaket från <källpaket>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "bygg endast källpaket från <specfil>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"bygg till och med %prep (packa upp källkod samt applicera patchar) från <tar-"
"arkiv>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tar-arkiv>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "bygg till och med %build (%prep, kompilera sedan) från <tar-arkiv>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"bygg till och med %install (%prep, %build, installera sedan) från <tar-arkiv>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "verifiera %files-sektionen från <tar-arkiv>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "bygg käll- och binärpaket från <tar-arkiv>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "bygg endast binärpaket från <tar-arkiv>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "bygg endast källpaket från <tar-arkiv>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "bygg binärpaket från <källpaket>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<källpaket>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"bygg till och med %install (%prep, %build, installera sedan) från <källpaket>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "åsidosätt byggrot"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Det går inte öppna aktuell katalog: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "ta bort byggträd efteråt"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ignorera ExcludeArch:-direktiv från specfil"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "felsök filtillståndsmaskin"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "utför inga steg i byggnationen"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "verifiera inte byggberoenden"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr "generera pakethuvd(en) kompatibla med (äldre) rpm-v3-paketering"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "utför inte %clean-steget i byggnationen"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "utför inte %clean-steget i byggnationen"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "utför inte %check-steget i byggnationen"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
-msgstr "acceptera inte översatta ”msgstr” från specfilen"
+msgstr "acceptera inte i18N-msgstr:er från specfilen"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "ta bort källkod efteråt"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "ta bort specfil efteråt"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "gå direkt till angivet steg (endast för c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "åsidosätt målplattform"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Byggflaggor med [ <specfil> | <tar-arkiv> | <källpaket> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Ouppfyllda byggberoenden:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Kan inte öppna specfilen %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Kunde inte öppna ”tar”-rör: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Mer än en fil på en rad: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Kunde inte läsa specfil från %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Kunde inte byta namn på %s till %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "kunde inte ta status på %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Filen %s är inte en vanlig fil.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Filen %s tycks inte vara en specfil.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Bygger målplattformar: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Bygger för målet %s\n"
@@ -449,11 +496,11 @@ msgstr "verifiera databasfiler"
#: rpmdb.c:32
msgid "export database to stdout header list"
-msgstr ""
+msgstr "exportera databasen till standard ut huvudlista"
#: rpmdb.c:35
msgid "import database from stdin header list"
-msgstr ""
+msgstr "importera databasen från standard in huvudlista"
#: rpmdb.c:42
msgid "Database options:"
@@ -479,49 +526,64 @@ msgstr "lista nycklar från RPM-nyckelringen"
msgid "Keyring options:"
msgstr "Nyckelringsflaggor:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "inga argument angivna"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "signera paket"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "signera paket (detsamma som --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "tag bort paketsignaturer"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "signera paket"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Signaturflaggor:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Kunde inte köra %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Du måste sätta ”%%_gpg_name” i din makrofil\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Ange lösenfras: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Lösenfrasen är ok.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "Kontrollen av lösenfrasen misslyckades eller gpg-nyckeln har gått ut\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix kan endast användas när nya paket installeras"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches kan enbart användas när paket raderas"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -539,7 +601,7 @@ msgstr "arbeta på binära rpm:er som genereras av spec (standard)"
msgid "operate on source rpm generated by spec"
msgstr "arbeta på käll-rpm genererad av spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "använd följande frågeformat"
@@ -640,201 +702,201 @@ msgstr "&& och || stöds inte för strängar\n"
msgid "syntax error in expression\n"
msgstr "syntaxfel i uttryck\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "”(” saknas i %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "”)” saknas i %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Ogiltigt %s-element: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "%s saknas i %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Annat än blanktecken följer på %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Felaktig syntax: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Felaktig rättighetsspecifikation: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Felaktig specifikation av katalogrättigheter: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "Ovanlig lokallängd: ”%s” i %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Duplicerad lokal %s i %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Ogiltig förmåga (capability): %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Stöd för filförmågor (capability) är inte inbyggt\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Filnamn måste börja med ”/”: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Okänd filkontrollsummealgoritm %u, faller tillbaka på MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Filen uppräknad två gånger: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "läsning av symlänk %s misslyckades: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Symbolisk länk pekar på BuildRoot: %s → %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
-msgstr ""
+msgstr "Sökvägen är utanför buildroot: %s\n"
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Katalogen hittades inte: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Filen hittades inte: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
-msgstr ""
+msgstr "Inte en katalog: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: kan inte läsa okänd tagg (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: läsning av publik nyckel misslyckades.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: inte en publik nyckel med skal.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: misslyckades att koda\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Filen behöver inledande ”/”: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "%%dev-matchning inte tillåten: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "Hittade ingen katalog vid matchningen: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Hittade ingen fil vid matchningen: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Kunde inte öppna %%files-fil %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "rad: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
-msgstr ""
+msgstr "Tom %%files-fil %s\n"
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Fel vid läsning av %%files-fil %s: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "ogiltigt _docdir_fmt: %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Hittade ingen fil vid matchningen: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "Kan inte blanda special %s med andra former: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Mer än en fil på en rad: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Felaktig fil: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Felaktig ägare/grupp: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Letar efter opackade fil(er): %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -843,17 +905,17 @@ msgstr ""
"Installerade (men opaketerade) filer funna:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Bearberar filer: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr "Binärers arkitektur (%d) matchar inte paketarkitekturen (%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Arkitekturberoende binärfiler i noarch-paket\n"
@@ -872,89 +934,90 @@ msgstr "misslyckades skapa arkiv: %s\n"
msgid "Could not open %s file: %s\n"
msgstr "Kunde inte öppna %s-fil: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: rad: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Kunde inte kanonisera värdnamn: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Kan inte läsa om signaturhuvud.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Okänd lastkomprimering: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Kan inte skapa oföränderlig huvudregion.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Kunde inte öppna %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Kunde inte skriva paket: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Kan inte skriva temporärhuvud\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Felaktig CSA-data\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Kunde inte öppna %s-fil: %s\n"
+msgstr "Kunde inte söka i filen %s: %s\n"
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "misslyckades skapa arkiv vid filen %s: %s\n"
+msgstr "Fread misslyckades på filen %s: %s\n"
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Skrev: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Kör ”%s”:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Körning av ”%s” misslyckades.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Paketkontroll ”%s” misslyckades.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Kunde inte generera utfilnamn för paketet %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "kan inte skapa %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "rad %d: andra %s\n"
@@ -997,7 +1060,7 @@ msgstr "ingen beskrivning i %%changelog\n"
#: build/parseChangelog.c:237
#, c-format
msgid "line %d: second %%changelog\n"
-msgstr ""
+msgstr "rad %d: andra %%changelog\n"
#: build/parseDescription.c:32
#, c-format
@@ -1005,19 +1068,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "rad %d: Fel i tolkning av %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "rad %d: otillåten flagga %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "rad %d: För många namn: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "rad %d: Paketet existerar inte: %s\n"
@@ -1030,7 +1093,7 @@ msgstr "rad %d: Fel i tolkning av %%files: %s\n"
#: build/parseFiles.c:76
#, c-format
msgid "line %d: second %%files\n"
-msgstr ""
+msgstr "rad %d: andra %%files\n"
#: build/parsePolicies.c:32
#, c-format
@@ -1072,142 +1135,147 @@ msgstr "Hämtar %s till %s\n"
msgid "Couldn't download %s\n"
msgstr "Kunde inte hämta %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Arkitekturen är utesluten: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Arkitekturen är inte medtagen: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS är uteslutet: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS är inte medtaget: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s-fält måste finnas med i paketet: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Dubbla %s-poster i paketet: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Kan inte öppna ikon %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Kan inte läsa ikon %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Okänd ikontyp: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "rad %d: Taggen tar endast ett värde: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "rad %d: Otillåtet tecken ”%c” i: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "rad %d: Otillåtet tecken i: %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "rad %d: Otillåten sekvens ”..” i: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "rad %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: rad: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "rad %d: Felaktig tagg: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "rad %d: Tom tagg: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "rad %d: Prefix får inte sluta med ”/”: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "rad %d: Docdir måste börja med ”/”: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "rad %d: Epoch-fält måste vara ett teckenlöst tal: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "rad %d: Felaktigt %s: bestämningar: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "rad %d: Felaktigt BuildArchitecture-format: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "rad %d: Endast noarch-underpaket stöds: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Internt fel: felaktig tagg %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "rad %d: %s är föråldrad: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Felaktig paketangivelse %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Paketet existerar redan: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "rad %d: Okänd tagg: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} fick inte vara tom\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} kan inte vara ”/”\n"
@@ -1217,161 +1285,193 @@ msgstr "%%{buildroot} kan inte vara ”/”\n"
msgid "Bad source: %s: %s\n"
msgstr "Dålig källa: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Inget patch-nummer %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch utan motsvarande ”Patch:”-tagg\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Inget källkodsnummer %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Ingen ”Source:”-tagg i spec-filen\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Fel i tolkning av %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "rad %d: Felaktigt argument till %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "rad %d: Felaktig %%setup-flagga %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Felaktigt patch-nummer %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "rad %d: andra %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr "Beroenden måste börja alfanumeriskt, med ”_” eller med ”/”"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "Filnamn med version inte tillåtet"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Version krävs"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "ogiltigt beroende"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Version krävs"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "rad %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "rad %d: utlösare måste ha --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "rad %d: Fel vid tolkning av %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "rad %d: internt skript måste sluta med ”>”: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "rad %d: skriptprogram måste börja med ”/”: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr "rad %d: argument till tolken tillåts inte i utlösare: %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "rad %d: En andra %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "rad %d: ej stött internt skript: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr "rad %d: argument till tolken tillåts inte i utlösare: %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "rad %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Kan inte öppna %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d: Argument förväntades för %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "rad %d: Oavslutat %%if\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "rad %d: oavslutat makro eller felaktig fortsättning på rad\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: felaktigt %%if-villkor\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Fick ett %%else utan något %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Fick ett %%endif utan något %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d: felformaterad %%include-sats\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Hittade inga kompatibla arkitekturer att bygga\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Paketet har ingen %%description: %s\n"
@@ -1443,292 +1543,281 @@ msgstr "För många argument på rad: %s\n"
msgid "Processing policies: %s\n"
msgstr "Bearbetning policyer: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Ignorerar ogiltigt reguttr %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Kunde inte öppna rör för %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Kunde inte köra %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Kunde inte grena (fork) %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s misslyckades: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "misslyckades med att skriva all data till %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
-msgstr ""
+msgstr "felaktig operator"
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
-msgstr ""
+msgstr "felaktigt format"
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
-msgstr ""
-
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Konvertering av %s till långt heltal misslyckades.\n"
+msgstr "felaktigt beroende (%s): %s\n"
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "Tom filklassificerare\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Inga filattribut konfigurerade\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) misslyckades: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load misslyckades: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Igenkänning av filen ”%s” misslyckades: läge %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Letar efter %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Misslyckades med att hitta %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "fråga av specfil %s misslyckades, kan inte tolka\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s är en delta-RPM och kan inte installeras direkt\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Ej stödd last (%s) i paket %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "paket %s var redan tillagt, hoppar över %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "paket %s är redan tillagt, ersätter med %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(inte ett tal)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %d %b %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(inte base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(felaktig typ)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(inte en klick)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(felaktig xml-typ)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(inte en OpenPGP-signatur)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Ogiltig tidpunkt %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normal"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "ersatt"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "inte installerad"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "nätdelad"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "fel färg"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "saknas"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(okänd)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(inte en sträng)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s sparades som %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s skapades som %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: borttagande misslyckades: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "katalog"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "fil"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
-msgstr ""
+msgstr "tagg[%d]: FEL, tagg %d typ %d position %d antal %d"
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
-msgstr ""
+msgstr "hvd SHA1: FEL, ej hex"
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
-msgstr ""
+msgstr "hvd RSA: FEL, ej binär"
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
+msgstr "hvd DSA: FEL, ej binär"
+
+#: lib/package.c:276
+msgid "region: no tags"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
-msgstr ""
+msgstr "regiontagg: FEL, tagg %d typ %d position %d antal %d"
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
-msgstr ""
+msgstr "regionposition: FEL, tagg %d typ %d position %d antal %d"
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
-msgstr ""
+msgstr "regionavslutning: FEL, tagg %d typ %d position %d antal %d"
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
-msgstr ""
+msgstr "regionstorlek: FEL, ril(%d) > il(%d)"
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
-msgstr ""
+msgstr "klickstorlek(%d): FEL, 8 + 16 * il(%d) + dl(%d)"
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
-msgstr ""
+msgstr "hvdstorlek(%d): FEL, läsning returnerade %d"
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
-msgstr ""
+msgstr "hvdmagi: FEL"
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
-msgstr ""
+msgstr "hvdtaggar: FEL, antal taggar(%d) utanför intervall"
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
-msgstr ""
+msgstr "hvddata: FEL, antal byte(%d) utanför intervall"
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
-msgstr ""
+msgstr "hvdklick(%zd): FEL, läsning returnerade %d"
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
-msgstr ""
-
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
+msgstr "hvdlast: FEL"
#: lib/poptALL.c:145
#, c-format
msgid ""
"%s: error: more than one --pipe specified (incompatible popt aliases?)\n"
-msgstr ""
+msgstr "%s: fel: mer än en --pipe angiven (inkompatibla popt-alias?)\n"
#: lib/poptALL.c:175
msgid "predefine MACRO with value EXPR"
@@ -1744,11 +1833,11 @@ msgstr "definiera MAKRO till värdet UTTR"
#: lib/poptALL.c:181
msgid "undefine MACRO"
-msgstr ""
+msgstr "odefinierat MAKRO"
#: lib/poptALL.c:182
msgid "MACRO"
-msgstr ""
+msgstr "MAKRO"
#: lib/poptALL.c:184
msgid "print macro expansion of EXPR"
@@ -1768,7 +1857,7 @@ msgstr "<FIL:...>"
#: lib/poptALL.c:193
msgid "don't enable any plugins"
-msgstr ""
+msgstr "aktivera inga insticksmoduler"
#: lib/poptALL.c:196
msgid "don't verify package digest(s)"
@@ -1945,7 +2034,7 @@ msgstr "uppdatera databasen, men ändra inte filsystemet"
msgid "do not verify package dependencies"
msgstr "verifiera inte paketberoenden"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "verifiera inte kontrollsummor av filer"
@@ -1988,12 +2077,12 @@ msgstr "utför inte (eventuellt) %%postun-skript"
#: lib/poptI.c:207
#, c-format
msgid "do not execute %%pretrans scriptlet (if any)"
-msgstr ""
+msgstr "utför inte (eventuellt) %%pretrans-skript"
#: lib/poptI.c:210
#, c-format
msgid "do not execute %%posttrans scriptlet (if any)"
-msgstr ""
+msgstr "utför inte (eventuellt) %%posttrans-skript"
#: lib/poptI.c:213
msgid "do not execute any scriptlet(s) triggered by this package"
@@ -2065,164 +2154,184 @@ msgstr "uppgradera paket"
#: lib/poptI.c:254
msgid "reinstall package(s)"
-msgstr ""
+msgstr "ominstallera paket"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "fråga/verifiera alla paket"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "rpm signaturkontrolläge"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "fråga/verifiera paket som äger fil"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "fråga/verifiera paket i grupp"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "fråga/verifiera en paketfil"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "fråga/verifiera paket som med paketidentifierare"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "fråga/verifiera paket med huvudidentifierare"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm frågeläge"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "fråga/verifiera en huvudinstans"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "fråga/verifiera paket från installationstransaktion"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "fråga paket utlösta av paketet"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm verifieringsläge"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "fråga/verifiera paket som behöver ett beroende"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "fråga/verifiera paket som tillhandahåller ett beroende"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "fråga/verifiera paket som behöver ett beroende"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "fråga/verifiera paket som behöver ett beroende"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "fråga/verifiera paket som behöver ett beroende"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "fråga/verifiera paket som behöver ett beroende"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "mönstermatcha inte argument"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "behandla inte icke-paket-filer som förteckningar"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "lista alla konfigurationsfiler"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "lista alla dokumentationsfiler"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
-msgstr ""
+msgstr "lista alla licensfiler"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "visa filinformation"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "lista filer i paketet"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "hoppa över %%ghost-filer"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "visa tillstånd för de listade filerna"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "verifiera inte storlekar på filer"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "verifiera inte sökvägen i symboliska länkar"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "verifiera inte ägare till filer"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "verifiera inte grupper till filer"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "verifiera inte modifikationstiden för filer"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "verifiera inte rättigheter för filer"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "verifiera inte förmågor (capabilities) på filer"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "verifiera inte filsäkerhetskontexter"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "verifiera inte filerna i paketet"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "verifiera inte paketberoenden"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "utför inte verifieringsskript"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Saknade rpmlib-funktioner för %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "källpaket förväntades, fann binärpaket\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "källpaket innehåller ingen .spec-fil\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "uppackning av arkiv misslyckades%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " vid fil "
@@ -2297,96 +2406,116 @@ msgstr "inga paket matchar %s: %s\n"
msgid "no package requires %s\n"
msgstr "inget paket behöver %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "inget paket behöver %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "inga paketutlösare %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "inget paket behöver %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "inget paket behöver %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "inget paket tillhandahåller %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "fil %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "filen %s tillhör inget paket\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "felaktigt paketnummer: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "post %u kunde inte läsas\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "paket %s är inte installerat\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "okänd tagg: ”%s”\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: import av nyckeln %d misslyckades.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: nyckeln %d är inte en bepansrad publik nyckel.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: importläsning misslyckades(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s: headerRead misslyckades: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr "%s: Oföränderlig huvudregion kunde inte läsas. Trasigt paket?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread misslyckades: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "EJ OK"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (SAKNADE NYCKLAR:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (EJ BETRODDA NYCKLAR:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: open misslyckades: %s\n"
@@ -2411,144 +2540,195 @@ msgstr "Kunde inte ändra rotkatalog: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Det går inte att återställa root-katalogen: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "NEJ "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "JA"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "PreReq:, Provides:, and Obsoletes:-beroenden stödjer versioner."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr "filnamn lagrade som (katNamn,basNam,katIndex)-tupel, inte som sökväg."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "paketlasten kan komprimeras med bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "paketets nyttolast kan komprimeras med xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "paketlasten kan komprimeras med lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "paketlastfiler har ”./”-prefix."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "paketets namn-version-utgåva tillhandahålls inte implicit."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "huvudtaggar sorteras alltid efter att ha lästs in."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "skriptinterpretatorn kan använda argument från huvudet."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "en hårdlänkad filuppsättning får installeras utan att vara komplett."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "paketskript kan komma åt rpm-databasen under installation."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "internt stöd för lua-skript."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "kontrollsummealgoritm för filer kan konfigureras per paket"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "stöd för filförmågor (capabilities) enligt POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "paketskript kan utökas vid installationstillfället."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "beroendejämförelser stödjer versioner med tilde."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
+msgstr "stöd filer större än 4 GB"
+
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "verifiera inte paketberoenden"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Version krävs"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "ogiltigt beroende"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Oavslutad %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "ogiltigt beroende"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "användare %s finns inte - använder root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "grupp %s finns inte - använder root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Felaktigt magiskt tal"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Felaktigt/oläsbart huvud"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Huvudstorleken för stor"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "Filen är för stor att arkivera"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Okänd filtyp"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
-msgstr ""
+msgstr "Saknade filer"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Kontrollsumman stämmer inte"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Internt fel"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Ingen arkivfilen i huvud"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " misslyckades - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
-msgstr ""
+msgstr "%s: (fel 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "misslyckades med att öppna %s: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: inte ett rpm-paket (eller paketspecifikation)\n"
@@ -2580,42 +2760,42 @@ msgstr "Ouppfyllda beroenden:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: inte ett rpm-paket (eller paketspecifikation): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s kan inte installeras\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Hämtar %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "hoppar över %s - överföring misslyckades\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "paket %s är inte relokerbart\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "fel vid läsning från fil %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "”%s” anger flera paket:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "kan inte öppna %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Installerar %s\n"
@@ -2641,12 +2821,12 @@ msgstr "läsning misslyckades: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "inte ett rpm-paket\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "det går inte att skapa %s-lås på %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "väntar på %s-lås på %s\n"
@@ -2662,9 +2842,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Misslyckades med att lösa upp symbolen %s: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Insticksmodulen %s är inte inläst\n"
+msgstr "Insticksmodulen %%__%s_%s är inte konfigurerad\n"
#: lib/rpmplugins.c:199
#, c-format
@@ -2804,60 +2984,79 @@ msgstr "arkitektur saknas för %s vid %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "okänd flagga ”%s” vid %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "Misslyckades att läsa extra vektor, /proc inte monterat?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Okänt system: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Var god kontakta %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Kan inte öppna %s för läsning: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "Det går inte att återställa aktuell katalog: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "<lua>-skriptstöd är inte inbyggt\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Kunde inte skapa temporärfil för %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Kunde inte duplicera filidentifierare: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Kan inte läsa ikon %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Det går inte att återställa root-katalogen: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite misslyckades: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s-skript misslyckades, waitpid(%d) rk %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s-skript misslyckades, signal %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s-skript misslyckades, slutstatus %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Okänt format"
@@ -2869,127 +3068,146 @@ msgstr "installera"
msgid "erase"
msgstr "radera"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "kan inte öppna paketdatabas i %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "överflödigt ”(” i paketetikett: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "”(” saknas i etikett: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "”)” saknas i paketetikett: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: misslyckades att läsa publik nyckel.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "transaktion"
-#: lib/signature.c:74
+#: lib/signature.c:78
#, c-format
-msgid "sigh size(%d): BAD, read returned %d"
+msgid "%s tag %u: BAD, invalid size %u"
msgstr ""
-#: lib/signature.c:79
-msgid "sigh magic: BAD"
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(inte en OpenPGP-signatur)"
+
+#: lib/signature.c:160
+#, c-format
+msgid "sigh size(%d): BAD, read returned %d"
+msgstr "sighstorlek(%d): FEL, läsning returnerade %d"
+
+#: lib/signature.c:165
+msgid "sigh magic: BAD"
+msgstr "sighmagi: FEL"
+
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
-msgstr ""
+msgstr "sightaggar: FEL, antal taggar(%d) utanför intervall"
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
-msgstr ""
+msgstr "sighdata: FEL, antal byte(%d) itanför intevall"
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
-msgstr ""
+msgstr "sighklick(%d): FEL, läsning returnerade %d"
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
-msgstr ""
+msgstr "sightagg[%d]: FEL, tagg %d typ %d position %d antal %d"
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
-msgstr ""
+msgstr "sighlast: FEL"
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
-msgstr ""
+msgstr "sighutfyllnad(%zd): FEL, läste %zd byte"
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
-msgstr ""
+msgstr "sigh sigSize(%zd): FEL, fstat(2) misslyckades"
+
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Kan inte läsa om signaturhuvud.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Huvud "
-#: lib/signature.c:235
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5-summa:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Huvudets SHA1-summa:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Huvud "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
-msgstr ""
+msgstr "Verifiera signatur: FELAKTIGA PARAMETRAR (%d %p %d %p %p)"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "hoppade över"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "misslyckades"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
-msgstr ""
+msgstr "Dubblerat användarnamn eller UID för användaren %s\n"
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
-msgstr ""
+msgstr "Dubblerat gruppnamn eller GID för gruppen %s\n"
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
-msgstr ""
+msgstr "inget tillstånd"
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
-msgstr ""
+msgstr "okänt tillstånd"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "saknas %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Ouppfyllda beroenden för %s:\n"
@@ -3063,219 +3281,219 @@ msgstr "vektoriterator använd med vektor av annan storlek"
msgid "Generating %d missing index(es), please wait...\n"
msgstr "Genererar %d saknade index, vänta …\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
-msgstr ""
+msgstr "kan inte öppna %s-indexet med %s - %s (%d)\n"
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "ingen dbpath har satts\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: hoppar över"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "fel(%d) när post nr. %d sparades i %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec misslyckades: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp misslyckades: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: hoppar över"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: skadat huvud nr. %u hämtat -- hoppar över.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: kan inte läsa huvud vid 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "ingen dbpath har satts"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "misslyckades att skapa katalogen %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "huvud nr. %u i databasen är felaktigt -- hoppar över.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "kan inte lägga till post ursprungligen vid %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "kunde inte bygga om databasen: orginaldatabasen finns kvar\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "kunde inte ersätta gammal databas med ny databas!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "byt ut filer i %s med filer från %s för att återställa"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "kunde inte ta bort katalogen %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
-msgstr ""
+msgstr "%s-fel(%d) från %s: %s\n"
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
-msgstr ""
+msgstr "%s-fel(%d): %s\n"
+
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "okänd db-flagga: ”%s” ignorerad\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s har ett ogiltigt numeriskt värde, hoppar över\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s har för stort eller för litet ”long”-värde, hoppar över\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s har för stort eller för litet heltalsvärde, hoppar över\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "kan inte få %s lås på %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "delat"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "uteslutande"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "ogiltig indextyp %x på %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "fel(%d) när ”%s”-poster hämtades från %s-indexet: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "fel(%d) när post ”%s” sparades i %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "fel(%d) när post ”%s” togs bort från %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "fel(%d) vid tillägg av post för huvud nr. %d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "fel(%d) tar bort post för huvud nr. %d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "fel(%d) vid allokering av ny paketinstans\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "okänd db-flagga: ”%s” ignorerad\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s har ogiltigt ogiltigt numeriskt värde, hoppar över\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s har för stort eller för litet ”long”-värde, hoppar över\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s har för stort eller för litet heltalsvärde, hoppar över\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(tom)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(tom)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
-msgstr "Makro %%%s har oavslutade flaggor\n"
+msgstr "Makrot %%%s har oavslutade flaggor\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
-msgstr "Makro %%%s har oavslutad kropp\n"
+msgstr "Makrot %%%s har oavslutad kropp\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
-msgstr "Makro %%%s har otillåtet namn (%%define)\n"
+msgstr "Makrot %%%s har otillåtet namn (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
-msgstr "makro %%%s har tom kropp\n"
+msgstr "Makrot %%%s har tom kropp\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
-msgstr ""
+msgstr "Makrot %%%s måste ha blanksteg före kroppen\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Makro %%%s misslyckades att expandera\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
-msgstr "Makro %%%s har otillåtet namn (%%undefine)\n"
+msgstr "Makrot %%%s har ett otillåtet namn (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
-msgstr ""
+msgstr "Makrot %%%s definierat men inte använt i sin räckvidd\n"
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Okänd flagga %c i %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3283,22 +3501,22 @@ msgstr ""
"Alltför många nivåer av rekursion i en makroexpansion. Det beror sannolikt "
"på en rekursiv makrodeklaration.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Oavslutad %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Ett %% följs av ett makro som inte kan tolkas\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
-msgstr ""
+msgstr "misslyckades med att läsa in makrofilen %s"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== aktiva %d tomma %d\n"
@@ -3318,31 +3536,31 @@ msgstr "Fil %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Filen %s är mindre än %u byte\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "misslyckades att skapa katalog"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "felaktig syntax i lua-skript: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "felaktig syntax i lua-skript: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua-skript misslyckades: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "felaktig syntax i lua-fil: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua-hake misslyckades: %s\n"
@@ -3351,19 +3569,19 @@ msgstr "lua-hake misslyckades: %s\n"
msgid "[none]"
msgstr "[ingen]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(inget fel)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "ödesdigert fel: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "fel: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "varning: "
@@ -3372,101 +3590,159 @@ msgstr "varning: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "minnesallokering (%u byte) returnerade NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, nyckel-ID %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(ingen)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "fel när tämporärfil %s skapades: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "fel när tämporärfil %s skapades: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "fel när tämporärfil %s skapades: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "misslyckades att skapa katalogen %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite misslyckades: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush misslyckades: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "PGP-signaturen stödjs inte\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "PGP-hash-algoritm %u stödjs inte\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "PGP-publik nyckelalgoritm %u stödjs inte\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Det gick inte att skapa ett rör för signering: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Kunde inte köra %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
-msgstr "%s: open misslyckades: %s\n"
+msgid "Fopen failed\n"
+msgstr "fdopen misslyckades\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Kunde inte öppna %s-fil: %s\n"
+msgstr "Kunde inte skriva till ett rör\n"
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Kunde inte öppna %%files-fil %s: %m\n"
+msgstr "Kunde inte läsa från filen %s: %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg exec misslyckades (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg kunde inte skriva signatur\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "kan inte läsa signaturen\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature misslyckades: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature misslyckades: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: headerRead misslyckades: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp misslyckades\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "fdopen misslyckades\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: headerRead misslyckades: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s innehåller redan en identisk signatur, hoppar över\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature misslyckades: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "Kan inte signera RPM-v3-paket\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s innehåller redan en identisk signatur, hoppar över\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature misslyckades: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp misslyckades\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead misslyckades: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "misslyckades med att ersätta %s: %s\n"
@@ -3480,82 +3756,30 @@ msgstr "%s: läsning av paketlista misslyckades: %s\n"
msgid "don't verify header+payload signature"
msgstr "verifiera inte huvud+lastsignatur"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Kan inte skriva last till %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Kan inte läsa last från %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Kan inte öppna temporär fil.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Kan inte läsa signaturen %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Kan inte läsa huvud från %s: %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Kan inte skriva huvud till %s: %s\n"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "utför inte några samlingsåtgärder"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr "Oföränderlig huvudregion kunde inte läsas. Trasigt paket?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Misslyckades med att avkoda policy för %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Konvertering av %s till långt heltal misslyckades.\n"
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Misslyckades med att skapa temporär fil för %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Ange lösenfras: "
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Misslyckades med att skriva %s-policy för att filen %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Lösenfrasen är ok.\n"
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Misslyckades med att skapa semanage-handtag\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Misslyckades att ansluta till policyhanterare\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Misslyckades med att börja policytransaktion: %s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "Misslyckades att ta bort den tillfälliga policyfilen %s: %s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Misslyckades att installera policymodul: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Misslyckades att ta bort policymodul: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Misslyckades med att grena process: %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Misslyckades med att köra %s: %s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s avslutades onormalt\n"
-
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s misslyckades med slutstatus %i\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr ""
+#~ "Kontrollen av lösenfrasen misslyckades eller gpg-nyckeln har gått ut\n"
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Misslyckades med att fastställa policyförändringar\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Felaktig ägare/grupp: %s\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Misslyckades med att expandera restorecon-sökväg"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "rad %d: Otillåtet tecken i: %s\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Misslyckades med etikettera om filsystemet. Filer kan vara felmärkta\n"
+#~ msgid "%s has unverifiable signature"
+#~ msgstr "%s har en okontrollerbar signatur"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Misslyckades med att ladda om filkontexter. Filer kan vara felmärkta\n"
+#~ msgid "Fread failed: %s"
+#~ msgstr "Fread misslyckades: %s"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Misslyckades att extrahera policy från %s\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Det gick inte att skapa ett rör för signering: %m"
diff --git a/po/te.gmo b/po/te.gmo
index b04257ce..a23df4f4 100644
--- a/po/te.gmo
+++ b/po/te.gmo
Binary files differ
diff --git a/po/te.po b/po/te.po
index e74b9070..a87df762 100644
--- a/po/te.po
+++ b/po/te.po
@@ -9,11 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Telugu (http://www.transifex.com/projects/p/rpm/language/"
-"te/)\n"
+"Language-Team: Telugu (http://www.transifex.com/rpm-team/rpm/language/te/)\n"
"Language: te\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -82,8 +81,8 @@ msgstr ""
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr ""
@@ -103,7 +102,7 @@ msgstr ""
msgid "unexpected query source"
msgstr ""
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr ""
@@ -203,7 +202,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
@@ -223,201 +222,243 @@ msgstr ""
msgid "no arguments given for verify"
msgstr ""
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr ""
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr ""
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr ""
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr ""
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr ""
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr ""
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<వనరు ప్యాకేజీ>"
+
+#: rpmbuild.c:165
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+
+#: rpmbuild.c:171
+#, c-format
+msgid "verify %files section from <source package>"
+msgstr ""
+
+#: rpmbuild.c:174
+msgid "build source and binary packages from <source package>"
+msgstr ""
+
+#: rpmbuild.c:177
+msgid "build binary package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:180
+msgid "build source package only from <source package>"
+msgstr ""
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr ""
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr ""
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr ""
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr ""
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr ""
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr ""
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<వనరు ప్యాకేజీ>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
+#: rpmbuild.c:213
+msgid "override build root"
msgstr ""
-#: rpmbuild.c:171
-msgid "override build root"
+#: rpmbuild.c:215
+msgid "run build in current directory"
msgstr ""
-#: rpmbuild.c:173
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr ""
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr ""
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr ""
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr ""
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, c-format
+msgid "do not execute %prep stage of the build"
+msgstr ""
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr ""
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "అయిన తరువాత వనరులను తీసివేయి"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr ""
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr ""
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr ""
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr ""
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr ""
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr ""
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr ""
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr ""
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr ""
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr ""
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr ""
@@ -466,48 +507,60 @@ msgstr ""
msgid "Keyring options:"
msgstr "కీరింగ్ ఐచ్ఛికాలు:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr ""
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "ప్యాకేజీ సంతకాలను తొలగించు"
-#: rpmsign.c:35
-msgid "Signature options:"
-msgstr "సంతకం ఐచ్ఛికాలు:"
+#: rpmsign.c:36
+msgid "sign package(s) files"
+msgstr ""
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
+#: rpmsign.c:39
+msgid "<key>"
msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:47
+msgid "Signature options:"
+msgstr "సంతకం ఐచ్ఛికాలు:"
+
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr ""
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
+
+#: rpmsign.c:82
+msgid "--fskpass may only be specified when signing files"
+msgstr ""
+
+#: rpmsign.c:126
+msgid "--fskpath may only be specified when signing files"
msgstr ""
#: rpmspec.c:26
@@ -526,7 +579,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr ""
@@ -627,218 +680,218 @@ msgstr ""
msgid "syntax error in expression\n"
msgstr ""
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr ""
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr ""
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr ""
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr ""
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr ""
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr ""
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr ""
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr ""
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr ""
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "ఫైలు కనపడలేదు: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr ""
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr ""
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
+#: build/files.c:1616
#, c-format
-msgid "File not found by glob: %s\n"
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "వరుస: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr ""
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "చెడ్డ ఫైలు: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr ""
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr ""
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -857,89 +910,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr ""
-#: build/pack.c:174
-#, c-format
-msgid "Could not canonicalize hostname: %s\n"
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
msgstr ""
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
+#: build/pack.c:183
+#, c-format
+msgid "Could not canonicalize hostname: %s\n"
msgstr ""
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr ""
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr ""
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
#, c-format
msgid "Could not seek in file %s: %s\n"
msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "చెడ్డ ఫైలు: %s: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr ""
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr ""
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr ""
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr ""
@@ -990,19 +1044,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr ""
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr ""
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr ""
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr ""
@@ -1057,142 +1111,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr ""
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr ""
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr ""
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr ""
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr ""
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr ""
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "ఫైల్ %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr ""
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr ""
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr ""
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr ""
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr ""
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr ""
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr ""
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1202,161 +1260,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "చెడ్డ వనరు: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr ""
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr ""
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr ""
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr ""
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr ""
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr ""
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr ""
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr ""
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr ""
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr ""
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr ""
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr ""
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr ""
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr ""
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr ""
@@ -1427,287 +1517,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr ""
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr ""
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr ""
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr ""
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr ""
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr ""
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr ""
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr ""
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr ""
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr ""
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr ""
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr ""
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr ""
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr ""
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr ""
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr ""
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr ""
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1925,7 +2004,7 @@ msgstr ""
msgid "do not verify package dependencies"
msgstr ""
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2045,162 +2124,178 @@ msgstr ""
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr ""
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr ""
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr ""
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr ""
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr ""
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr ""
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr ""
+
+#: lib/poptQV.c:107
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr ""
+
+#: lib/poptQV.c:109
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr ""
+
+#: lib/poptQV.c:111
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr ""
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "అన్ని స్వరూపణం ఫైళ్ళను జాబితాగా చూపు"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr ""
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr ""
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr ""
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr ""
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr ""
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr ""
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr ""
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr ""
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr ""
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr ""
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr ""
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr ""
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr ""
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr ""
@@ -2275,96 +2370,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr ""
-#: lib/query.c:391
+#: lib/query.c:390
+#, c-format
+msgid "no package recommends %s\n"
+msgstr ""
+
+#: lib/query.c:397
+#, c-format
+msgid "no package suggests %s\n"
+msgstr ""
+
+#: lib/query.c:404
+#, c-format
+msgid "no package supplements %s\n"
+msgstr ""
+
+#: lib/query.c:411
+#, c-format
+msgid "no package enhances %s\n"
+msgstr ""
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr ""
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "ఫైల్ %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr ""
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr ""
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr ""
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr ""
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr ""
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ""
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr ""
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ""
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr ""
@@ -2389,144 +2504,191 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr ""
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr ""
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+msgid "support for rich dependencies."
+msgstr ""
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr ""
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr ""
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr ""
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr ""
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "తెలియని ఫైల్ రకం"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr ""
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr ""
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr ""
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2558,42 +2720,42 @@ msgstr ""
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr ""
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr ""
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr ""
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr ""
@@ -2619,12 +2781,12 @@ msgstr ""
msgid "not an rpm package\n"
msgstr "rpm ప్యాకేజీ కాదు\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2782,60 +2944,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr ""
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr ""
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, c-format
+msgid "Unable to reset nice value: %s"
+msgstr ""
+
+#: lib/rpmscript.c:361
+#, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr ""
+
+#: lib/rpmscript.c:389
+#, c-format
+msgid "Fwrite failed: %s"
+msgstr ""
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr ""
@@ -2847,127 +3028,146 @@ msgstr ""
msgid "erase"
msgstr ""
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr ""
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr ""
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
-msgid "MD5 digest:"
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
msgstr ""
-#: lib/signature.c:274
-msgid "Header SHA1 digest:"
+#: lib/signature.c:445
+msgid "Header "
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
+#: lib/signature.c:464
+msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:357
+#: lib/signature.c:467
+msgid "Header SHA1 digest:"
+msgstr ""
+
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr ""
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr ""
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3041,240 +3241,240 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr ""
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr ""
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr ""
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr ""
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr ""
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr ""
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
#, c-format
-msgid "cannot get %s lock on %s/%s\n"
+msgid "unrecognized db option: \"%s\" ignored.\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "shared"
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:594
-msgid "exclusive"
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:337
#, c-format
-msgid "invalid index type %x on %s/%s\n"
+msgid "%s has too large or too small integer value, skipped\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:797
#, c-format
-msgid "error(%d) getting \"%s\" records from %s index: %s\n"
+msgid "cannot get %s lock on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:904
-#, c-format
-msgid "error(%d) storing record \"%s\" into %s\n"
+#: lib/backend/db3.c:799
+msgid "shared"
msgstr ""
-#: lib/backend/db3.c:912
-#, c-format
-msgid "error(%d) removing record \"%s\" from %s\n"
+#: lib/backend/db3.c:799
+msgid "exclusive"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:881
#, c-format
-msgid "error(%d) adding header #%d record\n"
+msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1070
#, c-format
-msgid "error(%d) removing header #%d record\n"
+msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1100
#, c-format
-msgid "error(%d) allocating new package instance\n"
+msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:145
+#: lib/backend/db3.c:1108
#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
+msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/dbconfig.c:182
+#: lib/backend/db3.c:1210
#, c-format
-msgid "%s has invalid numeric value, skipped\n"
+msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:191
+#: lib/backend/db3.c:1219
#, c-format
-msgid "%s has too large or too small long value, skipped\n"
+msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/dbconfig.c:200
+#: lib/backend/db3.c:1274
#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
+msgid "error(%d) allocating new package instance\n"
msgstr ""
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr ""
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr ""
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr ""
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr ""
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr ""
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr ""
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr ""
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr ""
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr ""
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr ""
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr ""
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr ""
@@ -3294,31 +3494,31 @@ msgstr "ఫైల్ %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr ""
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3327,19 +3527,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr ""
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr ""
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr ""
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr ""
@@ -3348,99 +3548,153 @@ msgstr ""
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:66
+#, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, c-format
+msgid "error delete directory %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
-msgid "fdopen failed\n"
+#: sign/rpmgensig.c:287
+msgid "Fopen failed\n"
msgstr ""
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "చెడ్డ ఫైలు: %s: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr ""
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr ""
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+msgid "generateSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:543
+msgid "rpmReadSignature failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+msgid "headerReload failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+msgid "copyFile failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:621
+msgid "headerWrite failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
diff --git a/po/tr.gmo b/po/tr.gmo
index d748ea89..2a6bb869 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index d5738f8d..95e50c42 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -3,16 +3,16 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Muhammet Kara <muhammet.k@gmail.com>, 2011-2012,2014
+# Muhammet Kara <muhammetk@gmail.com>, 2011-2012,2014
+# Muhammet Kara <muhammetk@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-05-28 17:29+0000\n"
-"Last-Translator: Muhammet Kara <muhammet.k@gmail.com>\n"
-"Language-Team: Turkish (http://www.transifex.com/projects/p/rpm/language/"
-"tr/)\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-12-10 15:08+0000\n"
+"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/rpm-team/rpm/language/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -82,8 +82,8 @@ msgstr "Denetleme seçenekleri (-V ya da --verify ile)"
msgid "Install/Upgrade/Erase options:"
msgstr "Kurma/Güncelleme/Kaldırma seçenekleri:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Tüm rpm kipleri ve yürütülebilir dosyaları için ortak seçenekler:"
@@ -103,7 +103,7 @@ msgstr "beklenmeyen sorgulama biçemi"
msgid "unexpected query source"
msgstr "beklenmeyen sorgulama kaynağı"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "sadece bir ana kip belirtilebilir"
@@ -210,7 +210,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "--root (-r) ile verilenler '/' ile başlamalı"
@@ -230,215 +230,265 @@ msgstr "sorgulama için hiç argüman belirtilmedi"
msgid "no arguments given for verify"
msgstr "denetleme için hiç argüman belirtilmedi"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot zaten belirtilmiş, %s yoksayılıyor\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"<specDosyası>ndan %prep adımı sayesinde oluşturulur (kaynak paketi açılır "
"ve yamalar uygulanır)"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specDosyası>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
"<specDosyası>ndan %build adımı sayesinde oluşturulur (%prep, sonra da "
"derlenir)"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"<specDosyası>ndan %install adımı sayesinde oluşturulur (%prep, %build, sonra "
"da kurulum)"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "<specDosyası>ndan %files bölümünü denetler"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "kaynak ve çalıştırılabilir paketleri <specDosyası>ndan oluşturur"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "çalıştırılabilir paketi sadece <specDosyası>ndan oluşturur"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "kaynak paketi sadece <specDosyası>ndan oluşturur"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"<specDosyası>ndan %prep adımı sayesinde oluşturulur (kaynak paketi açılır "
+"ve yamalar uygulanır)"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<kaynak paketi>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+"<specDosyası>ndan %build adımı sayesinde oluşturulur (%prep, sonra da "
+"derlenir)"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"<kaynak paketi>nden %install adımı sayesinde oluşturulur (%prep, %build, "
+"sonra da kurulur)"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "<specDosyası>ndan %files bölümünü denetler"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "çalıştırılabilir paketi <kaynak paketi>nden oluşturur"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "çalıştırılabilir paketi <kaynak paketi>nden oluşturur"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "kaynak paketi sadece <specDosyası>ndan oluşturur"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"<tarpaketi>nden %prep adımı sayesinde oluşturulur (kaynak paketi açılır ve "
"yamalar uygulanır)"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarPaketi>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
"<tarPaketi>nden %build adımı sayesinde oluşturulur (%prep, sonra da derleme)"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"<tarpaketi>nden %install adımı sayesinde oluşturulur (%prep, %build, sonra "
"da kurulur)"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "<tarpaketi>nden %files bölümünü denetler"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "kaynak ve çalıştırılabilir paketleri <tarpaketi>nden oluşturur"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "çalıştırılabilir paketi sadece <tarpaketi>nden oluşturur"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "kaynak paketi sadece <tarpaketi>nden oluşturur"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "çalıştırılabilir paketi <kaynak paketi>nden oluşturur"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<kaynak paketi>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"<kaynak paketi>nden %install adımı sayesinde oluşturulur (%prep, %build, "
-"sonra da kurulur)"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "build root'a zorlar"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+msgid "run build in current directory"
+msgstr ""
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "işlem sonunda paket oluşturma ağacını siler"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "spec dosyasındaki ExcludeArch: yönergeleri yoksayılıyor"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "hata ayıklama dosyası durum motoru"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "oluşumun herhangi bir adımı icra edilmez"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr ""
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "oluşumun herhangi bir adımı icra edilmez"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "spec dosyası içindeki i18n msgstr'leri kabul edilmez"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "işlem sonunda kaynakları siler"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "işlem sonunda spec dosyasını siler"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "doğrudan belirtilen adıma atlar (sadece c ve i için)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "hedef platforma zorlar"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"[ <specDosyası> | <tarPaketi> | <kaynakPaketi> ] ile paketleme seçenekleri:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr ""
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "%s spec dosyası açılamadı: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "tar veriyolu açılamadı: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "%s spec dosyası açılamadı: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "%s paketinden spec dosyası okunamadı\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "%s %s olarak değiştirilemedi: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "%s durum bilgileri alınamadı: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "%s bir normal bir dosya değil.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "%s bir spec dosyası gibi görünmüyor.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Hedef platformlar derleniyor: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "%s için derleniyor\n"
@@ -487,50 +537,65 @@ msgstr ""
msgid "Keyring options:"
msgstr "Anahtarlık seçenekleri:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr ""
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "paket(ler)i imzala"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr ""
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "paket imzalarını sil"
-#: rpmsign.c:35
-msgid "Signature options:"
-msgstr "İmza seçenekleri:"
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "paket(ler)i imzala"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
+#: rpmsign.c:38
+msgid "use file signing key <key>"
msgstr ""
-#: rpmsign.c:118
-#, c-format
-msgid "You must set \"%%_gpg_name\" in your macro file\n"
-msgstr "Makro dosyanızda \"%%_pgp_name\" tanımlanmış olmalı\n"
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Anahtar parolasını girin: "
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
-#: rpmsign.c:127
+#: rpmsign.c:47
+msgid "Signature options:"
+msgstr "İmza seçenekleri:"
+
+#: rpmsign.c:65
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Anahtar parolası doğru.\n"
+msgid "You must set \"%%_gpg_name\" in your macro file\n"
+msgstr "Makro dosyanızda \"%%_pgp_name\" tanımlanmış olmalı\n"
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix sadece yeni paketlerin kurulması sırasında kullanılabilir"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches sadece paket kurulumu sırasında kullanılabilir"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -547,7 +612,7 @@ msgstr ""
msgid "operate on source rpm generated by spec"
msgstr ""
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "izleyen sorgulama biçimini kullanır"
@@ -648,218 +713,218 @@ msgstr "&& ve || dizgelerde desteklenmez\n"
msgid "syntax error in expression\n"
msgstr "ifadede sözdizimi hatası\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "%s içinde '(' yok: %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "%s içinde ')' yok: (%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Andaç %s geçersiz: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr ""
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "%s() boşluksuz yazılmış: %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Sözdizimi hatası: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "mode spec hatalı: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "dirmode spec hatalı: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Geçersiz yeterlilik: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr ""
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Dosya \"/\" ile başlamalı: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Dosya iki kere gösterildi: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Sembolik bağ BuildRoot gösteriyor: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Dosya bulunamadı: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr "Dizin değil: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr ""
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: genel anahtar okuması başarısız oldu.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr ""
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: kodlama başarısız oldu\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Dosya \"/\" ile içermeli: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Dosya glob tarafından bulunamadı: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "satır: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Dosya glob tarafından bulunamadı: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Dosya hatalı: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Kullanıcı/grup hatalı: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr ""
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
"%s"
msgstr ""
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Dosyalar işleniyor: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr ""
@@ -878,89 +943,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: satır: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Böyle bir makina yok: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "İmza başlığı yeniden yüklenemedi.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr ""
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "%s açılamadı: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "paket yazılamadı: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr ""
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "CSA verisi geçersiz\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "%s açılamadı: %s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s: Fread başarısız: %s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Yazıldı: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "\"%s\" yürütülüyor:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "\"%s\"in yürütülmesi başarısız oldu.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr ""
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "%s paket dosyası için çıktı dosya adı üretilemedi: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "%s dosyası oluşturulamıyor: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "%d satır: %s saniye\n"
@@ -1011,19 +1077,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "satır %d: %%description ayrıştırılırken hata: %s \n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "satır %d: %s seçeneği hatalı: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "satır %d: İsim sayısı fazla: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "satır %d: Paket yok: %s\n"
@@ -1078,142 +1144,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Mimari dışlandı: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Mimari içerilmedi: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "OS dışlandı: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "OS içerilmedi: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "Pakette %s alan mevcut olmalı: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Pakette %s girdi tekrarlanmış: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "%s kısayol simgesi açılamadı: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "%s kısayol simgesi okunamadı: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "bilinmeyen kısayol simgesi türü: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "satır %d: Etiket sadece tek dizgecik alır: %s\n"
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "%d satır: %s saniye\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: satır: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "satır %d: Etiket bozuk: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "satır %d: Etiket boş: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "satır %d: Önekler \"/\" ile bitemez: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "satır %d: Docdir '/' ile başlamalı: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "satır %d: %s hatalı: niteleyiciler: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "satır %d: BuildArchitecture biçimi hatalı: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "İçsel hata: %d etiketi sahte\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Paket özellikleri hatalı: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Paket zaten var: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "satır %d: Bilinmeyen etiket: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1223,161 +1293,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "Kaynak hatalı: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr ""
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr ""
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr ""
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "%%setup çözümlenirken hata: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "satır %d: %%setup argumanı hatalı: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "satır %d: %%setup seçeneği %s hatalı: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Geçersiz yama numarası %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "satır %d: %%prep saniye\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "satır %d: tetikleyiciler -- içermeli: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "satır %d: %s çözümlenirken hata oluştu: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "satır %d: içsel betik '>' ile bitmeli: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "satır %d: betik programı '/' ile başlamalı: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "satır %d: %s saniye\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "satır %d: desteklenmeyen içsel betik: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "satır %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "%s açılamadı: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: %%if'siz bir %%else alındı\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: %%if'siz bir %%endif alındı\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Kurgulamak için uyumlu mimari yok\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Paket %%description içermiyor: %s\n"
@@ -1448,287 +1550,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr ""
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "%s icra edilemedi: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "%s ayrılamadı: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr ""
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr ""
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr ""
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr ""
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr ""
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr ""
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr ""
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr ""
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "%s bulunamadı:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "%s spec dosyasının sorgulanması başarısız, çözümlenemiyor\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr ""
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(bir sayı değil)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %d %b %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(base64 değil)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(geçersiz tür)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr ""
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(geçersiz xml türü)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(OpenPGP imzası değil)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "normal"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr ""
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "kurulmamış"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr ""
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "yanlış renk"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "eksik"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(bilinmiyor)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(dizge değil)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s %s olarak kaydedildi\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s %s olarak oluşturuldu\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "dizin"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "dosya"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1948,7 +2039,7 @@ msgstr "veri tabanını günceller, ama dosya sistemini değiştirmez"
msgid "do not verify package dependencies"
msgstr "paket bağımlılıklarını denetlemez"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr ""
@@ -2070,162 +2161,182 @@ msgstr "paket günceller"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "tüm paketleri sorgular/doğrular"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr ""
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "dosyayı içeren paketleri sorgular/denetler"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "gruptaki paketleri sorgular/denetler"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr ""
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm sorgulama kipi"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr ""
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "paket tarafından tetiklenen paketleri sorgular"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm denetleme kipi"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "bir bağımlılık gerektiren paketleri sorgular/denetler"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "bir bağımlılığı sağlayan paketleri sorgular/denetler"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "bir bağımlılık gerektiren paketleri sorgular/denetler"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "bir bağımlılık gerektiren paketleri sorgular/denetler"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "bir bağımlılık gerektiren paketleri sorgular/denetler"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "bir bağımlılık gerektiren paketleri sorgular/denetler"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr ""
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr ""
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "tüm yapılandırma dosyalarını listeler"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "tüm belgeleme dosyalarını gösterir"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "temel dosya bilgilerini gösterir"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "paketteki dosyaları gösterir"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "%%ghost dosyaları atlanır"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "listelenmiş dosyaların durumunu gösterir"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "dosyaların uzunlukları doğrulanmaz"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "dosyaların sembolik bağ dosya yolları doğrulanmaz"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "dosyaların sahipleri doğrulanmaz"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "dosyaların grupları doğrulanmaz"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "dosyaların değişiklik zamanları doğrulanmaz"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "dosyaların kipleri doğrulanmaz"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr ""
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "paketteki dosyalar doğrulanamaz"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "paket bağımlılıkları doğrulanmaz"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr ""
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "kaynak paketi gerekirken çalıştırılabilir paketi bulundu\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "kaynak paketi .spec dosyası içermiyor\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "arşiv paketi açılırken başarısız%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " dosyada "
@@ -2300,96 +2411,116 @@ msgstr ""
msgid "no package requires %s\n"
msgstr "%s gerektiren paket yok\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "%s gerektiren paket yok\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "%s tetikleyen paket yok\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "%s gerektiren paket yok\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "%s gerektiren paket yok\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "%s sağlayan paket yok\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "dosya %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "%s dosyası, hiç bir pakete ait değil\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "geçersiz paket numarası: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "%s paketi kurulu değil\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr ""
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread başarısız: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "TAMAM DEĞİL"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "Tamam"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (EKSİK ANAHTARLAR:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (GÜVENCESİZ ANAHTARLAR:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: açılamadı: %s\n"
@@ -2414,144 +2545,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "HAYIR "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "EVET"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr ""
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr ""
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr ""
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr ""
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "lua betikleri için dahili destek."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "paket bağımlılıklarını denetlemez"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "%c sonlandırılmamış: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "kullanıcı %s yok - root kullanılacak\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "grup %s yok - root kullanılacak\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Magic hatalı"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Hatalı/okunamayan başlık"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Başlık çok uzun"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
-msgstr ""
+msgstr "Dosya arşiv için çok büyük"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Bilinmeyen dosya türü"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr ""
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "İç hata"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr ""
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " başarısız - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "%s açılamadı: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2583,42 +2762,42 @@ msgstr "Sağlanamayan bağımlılıklar:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr ""
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s yüklenemedi\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "%s alınıyor\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "%s atlanıyor - aktarım başarısız\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr ""
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "%s dosyasından okuma hatalı\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr ""
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "%s açılamadı: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "%s kuruluyor\n"
@@ -2644,12 +2823,12 @@ msgstr "okuma başarısız: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "rpm paketi değil\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2807,60 +2986,79 @@ msgstr "%s için %s:%d'de eksik mimari\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "seçenek '%s' (%s:%d) de hatalı\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Bilinmeyen sistem: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr ""
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr ""
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "%s kısayol simgesi okunamadı: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "%s kısayol simgesi okunamadı: %s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite başarısız: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Bilinmeyen biçim"
@@ -2872,127 +3070,146 @@ msgstr "kur"
msgid "erase"
msgstr "sil"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "%s de Paket veritabanı açılamadı\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr ""
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr ""
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(OpenPGP imzası değil)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "İmza başlığı yeniden yüklenemedi.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Başlık"
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr ""
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr ""
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Başlık"
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "atlandı"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "başarısız oldu"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr "bilinmeyen durum"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "eksik %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3066,242 +3283,242 @@ msgstr ""
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "belirtilmiş bir dbpath değeri yok\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr ""
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr ""
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: 0x%x de başlık okunamadı\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "belirtilmiş bir dbpath yok"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "kayıt özgün olarak %u e eklenemedi\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"veritabanı yeniden oluşturulamadı: mevcut veritabanı değişmeden\n"
"yerinde bırakıldı\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "eski veritabanının yenisiyle değiştirilirmesi başarısız!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "kurtarmak için %s içindeki dosyalar %s deki dosyalarla değiştiriliyor"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "%s dizininin silinmesi başarısız: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "tanınmayan db seçeneği: \"%s\" yoksayıldı\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s geçersiz sayısal değer içeriyor, atlandı\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s ya çok büyük ya da çok küçük 'long' değer içeriyor, atlandı\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s ya çok büyük ya da çok küçük 'integer' değer içeriyor, atlandı\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "%s kilit %s/%s'den alınamadı\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "paylaşımlı"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "bağdaşık"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "yeni paket örneğini tutma hatası(%d)\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "tanınmayan db seçeneği: \"%s\" yoksayıldı\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s geçersiz sayısal değer içeriyor, atlandı\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s ya çok büyük ya da çok küçük 'long' değer içeriyor, atlandı\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s ya çok büyük ya da çok küçük 'integer' değer içeriyor, atlandı\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(boş)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(boş)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "%%%s makrosunu seçenekleri sonlandırılmamış\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "%%%s makrosunun gövdesi sonlandırılmamış\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "%%%s makrosunun ismi kuraldışı (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "%%%s makrosu boş\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "%%%s makrosu genişletmede başarısız\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "%%%s makrosunun ismi kuraldışı (%%define)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "%c seçeneği %s(%s) de anlaşılamadı\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "%c sonlandırılmamış: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Bir ayrıştırılamayan makro tarafından bir %% izlendi\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr "makro dosyası %s'in yüklenmesi başarısız oldu"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== %d etkin %d boş\n"
@@ -3321,31 +3538,31 @@ msgstr "%s dosyası: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "%s dosyası %u bayttan küçük\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr ""
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3354,19 +3571,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(hata yok)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "ölümcül hata: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "hata: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "uyarı: "
@@ -3375,101 +3592,159 @@ msgstr "uyarı: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "bellek ayrılırken (%u bayt) NULL döndü.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr ""
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "%s dosyasından okuma hatalı\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "%s dosyasından okuma hatalı\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "%s dizininin silinmesi başarısız: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite başarısız: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Desteklenmeyen PGP imzası\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
+msgid "Could not exec %s: %s\n"
msgstr ""
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s: açılamadı: %s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "%s açılamadı: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "%s açılamadı: %s\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr ""
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "imzanın yazılması sırasında gpg hata verdi\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "imza okunamadı\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: rpmWriteSignature başarısız: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmWriteSignature başarısız: %s\n"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "icra başarısız\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr ""
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "icra başarısız\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "icra başarısız\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr ""
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "RPM v3 paketleri imzalanamıyor\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: rpmWriteSignature başarısız: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr ""
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: writeLead başarısız: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3483,20 +3758,11 @@ msgstr ""
msgid "don't verify header+payload signature"
msgstr ""
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "%s'e payload yazılamadı: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "%s'den payload okunamadı: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Geçici dosya açılamadı.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "sigtarget %s açılamadı: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Anahtar parolasını girin: "
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "%s'den başlık okunamadı: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Anahtar parolası doğru.\n"
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "%s'e başlık yazılamadı: %s\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Kullanıcı/grup hatalı: %s\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 690473ae..c7cee12d 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 451660cb..edbb694e 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,10 +8,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 12:06+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 12:23+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
-"Language-Team: Ukrainian (http://www.transifex.com/projects/p/rpm/language/"
+"Language-Team: Ukrainian (http://www.transifex.com/rpm-team/rpm/language/"
"uk/)\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
@@ -82,8 +82,8 @@ msgstr "Перевірити параметри (за допомогою -V аб
msgid "Install/Upgrade/Erase options:"
msgstr "Параметри встановлення/оновлення/вилучення:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Загальні параметри для всіх режимів та виконуваних файлів rpm:"
@@ -103,7 +103,7 @@ msgstr "неочікуваний формат запитів"
msgid "unexpected query source"
msgstr "неочікуване джерело запиту"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "можна визначати лише один основний режим"
@@ -217,7 +217,7 @@ msgid "--test may only be specified during package installation and erasure"
msgstr ""
"--test можна вказувати лише під час встановлення або вилучення пакунків"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "аргументи параметра --root (-r) мають починатися символом /"
@@ -237,214 +237,264 @@ msgstr "не вказано аргументів запиту"
msgid "no arguments given for verify"
msgstr "не вказано аргументів перевірки"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot вже вказано, ігноруємо %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"виконати команди аж до %prep (розпакувати коди і накласти латки) з <файла "
"специфікації>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<файл специфікації>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
"виконати аж до команди %build (%prep, потім збирання) з <файла специфікації>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"виконати аж до команди %install (%prep, %build, потім встановити) з <файла "
"специфікації>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "перевірити розділ %files з <файла специфікації>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "зібрати пакунки з кодами та бінарними файлами за <файлом специфікації>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "зібрати за <файлом специфікації> лише пакунок з бінарними файлами"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "зібрати за <файлом специфікації> лише пакунок з кодами"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"виконати команди аж до %prep (розпакувати коди і накласти латки) з <файла "
+"специфікації>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<пакунок з кодами>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+"виконати аж до команди %build (%prep, потім збирання) з <файла специфікації>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"виконати аж до команди %install (%prep, %build, потім встановити) з <пакунка "
+"з кодами>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "перевірити розділ %files з <файла специфікації>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "зібрати за <пакунком з кодами> пакунок з бінарними файлами"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "зібрати за <пакунком з кодами> пакунок з бінарними файлами"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "зібрати за <файлом специфікації> лише пакунок з кодами"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"виконати команди аж до %prep (розпакувати коди і накласти латки) з <архіву "
"tar>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<архів tar>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "виконати аж до команди %build (%prep, потім збирання) з <архіву tar>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"виконати аж до команди %install (%prep, %build, потім встановити) з <архіву "
"tar>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "перевірити розділ %files з <архіву tar>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "зібрати пакунки з кодами та бінарними файлами за <архівом tar>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "зібрати за <архівом tar> лише пакунок з бінарними файлами"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "зібрати за <архівом tar> лише пакунок з кодами"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "зібрати за <пакунком з кодами> пакунок з бінарними файлами"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<пакунок з кодами>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"виконати аж до команди %install (%prep, %build, потім встановити) з <пакунка "
-"з кодами>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "перевизначити кореневий каталог збирання"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Не вдалося відкрити поточний каталог: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "вилучити ієрархію каталогу збирання після завершення збирання"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "ігнорування ExcludeArch: настанови з файла специфікації"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "зневаджування кінцевого автомата файлів"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "не виконувати жодного з кроків збирання"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "не перевіряти залежності збирання"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
"створити заголовки пакунків, сумісні з (застарілим) пакуванням версій rpm 3"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "не виконувати етапу %clean збирання"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "не виконувати етапу %clean збирання"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "не виконувати етапу %check збирання"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "не приймати рядки перекладів з файла специфікації"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "вилучити коди після збирання"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "вилучити файл специфікації після збирання"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "перейти одразу до вказаного кроку (лише для c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "перевизначити платформу призначення"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
"Параметри збирання з [ <файл spec> | <архів tar> | <пакунок з кодами> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Не вдалося зібрати залежності:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Не вдалося відкрити файл spec %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Не вдалося відкрити канал tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Декілька файлів у одному рядку: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Не вдалося прочитати файл spec з %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Не вдалося перейменувати %s на %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "не вдалося отримати дані за допомогою stat з %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Файл %s не є звичайним файлом.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "Здається, файл %s не є файлом spec.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Збирання для таких платформ: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Збирання для %s\n"
@@ -495,50 +545,65 @@ msgstr "показати список ключів зі сховища ключ
msgid "Keyring options:"
msgstr "Параметри сховища ключів:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "не вказано жодних параметрів"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "підписати пакунки"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "підписати пакунки (тотожне до --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "вилучити підписи пакунка"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "підписати пакунки"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Параметри підписування:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Не вдалося виконати %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Вам слід встановити значення \"%%_gpg_name\" у вашому файлі макросу\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Введіть пароль: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Пароль підтверджено.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
msgstr ""
-"Не вдалося пройти перевірку паролем або строк дії ключа gpg вичерпано\n"
+"--prefix можна використовувати, лише під час встановлення нових пакунків"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches можна вказувати лише під час встановлення пакунків"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -556,7 +621,7 @@ msgstr "обробити бінарні rpm, створені на основі
msgid "operate on source rpm generated by spec"
msgstr "обробити srpm, створені на основі spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "використовувати вказаний нижче формат запиту"
@@ -657,203 +722,203 @@ msgstr "&& і || не підтримуються для рядків\n"
msgid "syntax error in expression\n"
msgstr "синтаксична помилка у виразі\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Не вистачає «(» у %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Не вистачає «)» у %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Некоректний елемент %s: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Не вистачає %s у %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "За %s() вказано непробільне значення: %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Помилковий синтаксис: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Помилкові права доступу: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Помилкові права доступу до каталогу: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "Незвичайна довжина locale: «%s» у %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Дублювання locale %s у %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Некоректний мандат: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Підтримку мандатів на файли не було зібрано\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Назва файла має починатися з «/»: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
"Невідомий алгоритм обчислення контрольної суми файла %u, буде використано "
"MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Файл вказано двічі: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "під час спроби читання символічного посилання %s сталася помилка: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "Символічне посилання вказує на BuildRoot: %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr "Шлях поза межами кореневої теки збирання: %s\n"
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Не знайдено каталогу: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Файл не знайдено: %s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr "Не є каталогом: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: не вдалося завантажити невідомий теґ (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: невдала спроба читання відкритого ключа.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: не є захищеним відкритим ключем.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: не вдалося закодувати\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Назва файла має починатися з «/»: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "Не можна використовувати glob %%dev: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "Каталог не знайдено glob: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "У glob файла не виявлено: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Не вдалося відкрити файл %%files %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "рядок: %s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr "Порожній файл %%files %s\n"
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Помилка під час спроби читання файла %%files %s: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "некоректний формат каталогу документації %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "У glob файла не виявлено: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "Не можна змішувати спеціальний %s з іншими формами: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Декілька файлів у одному рядку: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Помилковий файл: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Помилкові дані щодо власника/групи: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Пошук незапакованих файлів: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -862,19 +927,19 @@ msgstr ""
"Виявлено встановлені (але не запаковані) файли:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Обробка файлів: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
"Архітектура виконуваних файлів (%d) не збігається з архітектурою пакунка "
"(%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Виявлено залежні від архітектури бінарні файли у пакунку noarch\n"
@@ -893,89 +958,90 @@ msgstr "спроба створення архіву зазнала невдач
msgid "Could not open %s file: %s\n"
msgstr "Не вдалося відкрити файл %s: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: рядок: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Не вдалося привести до канонічної форми назву вузла: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Не вдалося перезавантажити заголовок підпису.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Невідомий спосіб стиснення вмісту: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Не вдалося створити незмінну область заголовка.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Не вдалося відкрити %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Не вдалося записати пакунок: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Не вдалося записати тимчасовий заголовок\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Помилкові дані CSA\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Не вдалося відкрити файл %s: %s\n"
+msgstr "Не вдалося виконати позиціювання у файлі %s: %s\n"
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "спроба створення архіву зазнала невдачі на файлі %s: %s\n"
+msgstr "Помилка fread у файлі %s: %s\n"
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Записано: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Виконання «%s»:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Спроба виконання «%s» зазнала невдачі.\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Спроба перевірки пакунка «%s» зазнала невдачі.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Не вдалося створити назву файла виведених даних для пакунка %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "не вдалося створити %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "рядок %d: друге %s\n"
@@ -1026,19 +1092,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "рядок %d: помилка під час обробки %%description: %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "рядок %d: помилковий параметр %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "рядок %d: забагато назв: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "рядок %d: пакунка не існує: %s\n"
@@ -1093,142 +1159,147 @@ msgstr "Звантаження %s до %s\n"
msgid "Couldn't download %s\n"
msgstr "Не вдалося звантажити %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Виключено архітектуру: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Не включено архітектуру: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "Виключено ОС: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "Не включено ОС: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "У пакунку має бути поле %s: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Дублювання записів %s у пакунку: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Не вдалося відкрити піктограму %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Не вдалося прочитати піктограму %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Невідомий тип піктограми: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "рядок %d: у тезі має бути лише один елемент: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "рядок %d: некоректний символ «%c» у: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "рядок %d: некоректний символ у: %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "рядок %d: некоректна послідовність «..» у: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "рядок %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: рядок: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "рядок %d: помилковий теґ: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "рядок %d: порожній теґ: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "рядок %d: префікси не повинні завершуватися на «/»: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "рядок %d: запис Docdir має починатися з «/»: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "рядок %d: у полі Epoch має бути вказано ціле невід’ємне число: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "рядок %d: помилкове значення %s: специфікатори: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "рядок %d: помилковий формат BuildArchitecture: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "рядок %d: передбачено підтримку лише підпакунків типу noarch: %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Внутрішня помилка: зайвий теґ %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "рядок %d: %s вважається застарілим: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Помилкова специфікація пакунка: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Пакунок вже існує: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "рядок %d: невідомий теґ: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} не може бути порожнім\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} не може приймати значення «/»\n"
@@ -1238,164 +1309,198 @@ msgstr "%%{buildroot} не може приймати значення «/»\n"
msgid "Bad source: %s: %s\n"
msgstr "Помилкове джерело: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Латки з номером %u не існує\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch без відповідного теґу \"Patch:\"\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Джерела з номером %u не існує\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "У файлі spec немає теґу \"Source:\"\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Помилка під час обробки %%setup: %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "рядок %d: помилковий аргумент %%setup: %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "рядок %d: помилковий параметр %%setup %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Некоректний номер латки %s: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "рядок %d: друге %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr "записи залежностей мають починатися з букви, числа, «_» або «/»"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "не можна використовувати версії у назвах файлів"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Слід вказати версію"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "некоректна залежність"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Слід вказати версію"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "рядок %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "рядок %d: у записах перемикачів має бути --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "рядок %d: помилка під час обробки %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr ""
"рядок %d: запис вбудованого скрипту має завершуватися символом «>»: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "рядок %d: програма скрипту має починатися з символу «/»: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+"рядок %d: у перемикачах не можна використовувати аргументи інтерпретатора: "
+"%s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "рядок %d: друге %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "рядок %d: непідтримуваний вбудований скрипт: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
"рядок %d: у перемикачах не можна використовувати аргументи інтерпретатора: "
"%s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "рядок %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Не вдалося відкрити %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d: мало бути вказано аргумент для %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "рядок %d: незавершена команда %%if\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "рядок %d: незавершений макрос або помилкове продовження рядка\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: помилкова умова %%if\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: вказано %%else без %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: вказано %%endif без %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d: помилкове форматування інструкції %%include\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Не знайдено сумісних архітектур для збирання\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "У пакунка немає поля %%description: %s\n"
@@ -1468,290 +1573,279 @@ msgstr "Забагато аргументів у рядку: %s\n"
msgid "Processing policies: %s\n"
msgstr "Обробка правил: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Ігноруємо некоректний формальний вираз %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Не вдалося створити канал для %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Не вдалося виконати %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Не вдалося розгалуження %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "Помилка %s: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "Не вдалося записати всі дані до %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr "помилковий оператор"
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr "помилковий формат"
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr "некоректна залежність (%s): %s\n"
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Невдала спроба перетворення %s у формат long integer.\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "Порожній класифікатор файла\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Не вказано атрибутів файла\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "помилка magic_open(0x%x): %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "помилка magic_load: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Спроба розпізнавання файла «%s» зазнала невдачі: режим %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Пошук %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Не вдалося знайти %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr ""
"спроба опитування файла специфікації %s зазнала невдачі, не вдалося "
"обробити\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
"%s належить до типу Delta RPM, його не можна встановлювати безпосередньо\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Непідтримуваний вміст (%s) у пакунку %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "пакунок %s вже було додано, пропускаємо %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "пакунок %s вже було додано, замінюємо на %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(не є числом)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(не є base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(некоректний тип)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(не є бінарним об’єктом)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(некоректний тип xml)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(не є підписом OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Некоректна дата %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "звичайний"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "замінено"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "не встановлено"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "мережевий"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "помилковий колір"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "немає"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(невідомо)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(не є рядком)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s збережено як %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s створено як %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: спроба вилучення зазнала невдачі: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "каталог"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "файл"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr "%s підписано непридатним до перевірки підписом"
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr "теґ[%d]: ПОМИЛКА, теґ %d тип %d зміщення %d лічильник %d"
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr "SHA1 заголовка: ПОМИЛКА, не є шістнадцятковою"
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr "RSA заголовка: ПОМИЛКА, не є двійковою"
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr "DSA заголовка: ПОМИЛКА, не є двійковою"
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr "мітка області: BAD, мітка %d тип %d відступ %d кількість %d"
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr "зміщення ділянки: ПОМИЛКА, теґ %d тип %d зміщення %d к-ть %d"
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr "залишок ділянки: ПОМИЛКА, теґ %d тип %d зміщення %d к-ть %d"
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr "розмір ділянки: ПОМИЛКА, ril(%d) > il(%d)"
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr "розмір бінарного об’єкта (%d): ПОМИЛКА, 8 + 16 * il(%d) + dl(%d)"
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr "розмір заголовка(%d): ПОМИЛКА, read повернуто %d"
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr "magic заголовка: ПОМИЛКА"
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr "теґи заголовка: ПОМИЛКА, кількість теґів(%d) перевищує максимальну"
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr "дані заголовка: ПОМИЛКА, кількість байтів(%d) перевищує максимальну"
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr "бінарний елемент заголовка(%zd): ПОМИЛКА, read повернуто %d"
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr "завантаження заголовка: ПОМИЛКА"
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr "Помилка fread: %s"
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1798,7 +1892,7 @@ msgstr "<ФАЙЛ:...>"
#: lib/poptALL.c:193
msgid "don't enable any plugins"
-msgstr ""
+msgstr "не вмикати жодних додатків"
#: lib/poptALL.c:196
msgid "don't verify package digest(s)"
@@ -1977,7 +2071,7 @@ msgstr "оновити базу даних, але не вносити змін
msgid "do not verify package dependencies"
msgstr "не перевіряти залежностей пакунків"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "не перевіряти контрольних сум файлів"
@@ -2099,162 +2193,182 @@ msgstr "оновити пакунки"
msgid "reinstall package(s)"
msgstr "перевстановити пакунки"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "опитати/перевірити всі пакунки"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "режим перевірки підписів"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "опитати/перевірити пакунки, до яких належить файл"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "опитати/перевірити пакунки з групи"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "опитати/перевірити файл пакунка"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "опитати/перевірити пакунки за ідентифікатором пакунка"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "опитати/перевірити пакунки за ідентифікатором заголовка"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "режим опитування rpm"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "опитати/перевірити екземпляр заголовка"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "опитати/перевірити пакунки з операції зі встановлення"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "опитати пакунки, які пов’язано з пакунком"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "режим перевірки rpm"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "опитати/перевірити пакунки, яким потрібні залежні пакунки"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "опитати/перевірити пакунки, які надають файли залежностей"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "опитати/перевірити пакунки, яким потрібні залежні пакунки"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "опитати/перевірити пакунки, яким потрібні залежні пакунки"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "опитати/перевірити пакунки, яким потрібні залежні пакунки"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "опитати/перевірити пакунки, яким потрібні залежні пакунки"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "не збирати аргументи разом"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "не обробляти не запаковані файли як маніфести"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "показати список всіх файлів налаштувань"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "показати список всіх файлів документації"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr "показати список усіх файлів ліцензування"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "створити дамп основних даних щодо файлів"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "показати список файлів у пакунку"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "пропускати файли %%ghost"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "показати стан файлів зі списку"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "не перевіряти розмірів файлів"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "не перевіряти шляхи символічних посилань на файли"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "не перевіряти власників файлів"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "не перевіряти групу власників файлів"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "не перевіряти час зміни файлів"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "не перевіряти права доступу до файлів"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "не перевіряти можливості файлів"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "не перевіряти контексти безпеки файла"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "не перевіряти файли у пакунку"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "не перевіряти залежності пакунків"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "не виконувати скриптів перевірки"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Для %s можливості rpmlib є недостатніми:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "слід було вказати пакунок з кодами, вказано бінарний пакунок\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "у пакунку з кодами не міститься файла .spec\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "спроба розпакування архіву завершилася невдало%s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " на файлі "
@@ -2330,97 +2444,117 @@ msgstr "жодне з пакунків не відповідає ключу %s:
msgid "no package requires %s\n"
msgstr "жоден з пакунків не потребує %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "жоден з пакунків не потребує %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "жоден з пакунків не перемикає %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "жоден з пакунків не потребує %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "жоден з пакунків не потребує %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "жоден з пакунків не надає %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "файл %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "файл %s не належить до жодного з пакунків\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "некоректний номер пакунка: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "не вдалося прочитати запис %u\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "пакунок %s не встановлено\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "невідомий теґ: «%s»\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: спроба імпортування ключа %d завершилася невдало.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s: ключ %d не є захищеним відкритим ключем.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: помилка читання під час імпортування(%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s: помилка headerRead: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
"%s: не вдалося прочитати незмінну ділянку заголовка. Пакунок пошкоджено?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: помилка fread: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "ПОМИЛКА"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "Гаразд"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (НЕ ВИСТАЧАЄ КЛЮЧІВ:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (НЕНАДІЙНІ КЛЮЧІ:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: помилка відкриття: %s\n"
@@ -2445,150 +2579,201 @@ msgstr "Не вдалося змінити кореневий каталог: %m
msgid "Unable to restore root directory: %m\n"
msgstr "Не вдалося відновити кореневий каталог: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "НІ "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "ТАК"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "PreReq:, Provides: і Obsoletes: підтримка версій залежностей."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"назви файлів збережено як кортеж (dirName,baseName,dirIndex), а не як шлях."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "вміст пакунка може бути стиснуто за допомогою bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "вміст пакунка може бути стиснуто за допомогою xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "вміст пакунка може бути стиснуто за допомогою lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "файли вмісту пакунка мають префікс «./»."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "назва-версія-випуск пакунка не надаються автоматично."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "теґи заголовка завжди впорядковуються після завантаження."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
"інтерпретатор допоміжних скриптів може використовувати аргументи з заголовка."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "підтримується часткове встановлення набору жорстких посилань пакунка."
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"допоміжні скрипти пакунка можуть отримувати доступ до бази даних rpm під час "
"встановлення."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "вбудована підтримка скриптів lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
"алгоритм обчислення контрольних сум може бути вибрано для кожного з пакунків "
"окремо"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "підтримка мандатів файлів POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "допоміжні скрипти пакунка може бути розширено під час встановлення."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "порівнянням залежностей підтримується запис версій з тильдою."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr "підтримка файлів, розмір яких перевищує 4 ГБ"
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "не перевіряти залежностей пакунків"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Слід вказати версію"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "некоректна залежність"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "Не закрито %c: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "некоректна залежність"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "запису користувача %s не існує, — використовуємо root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "запису групи %s не існує, — використовуємо root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Помилкове значення magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Помилковий/Непридатний до читання заголовок"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Розмір заголовка занадто великий"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "Файл є занадто великим для архівування"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Невідомий тип файла"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr "Не вистачає файлів"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Невідповідність контрольних сум"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Внутрішня помилка"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Файла архіву не вказано у заголовку"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " помилка - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr "%s: (помилка 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "помилка відкриття %s: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: не є пакунком rpm (або маніфестом пакунка)\n"
@@ -2620,42 +2805,42 @@ msgstr "Помилкові залежності:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: не є пакунком rpm (або маніфестом пакунка): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s не можна встановити\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Отримання %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "пропускаємо %s — помилка отримання\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "пакунок %s не придатний до переміщення\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "помилка читання з файла %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "«%s» задає декілька пакунків:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "не вдалося відкрити %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Встановлення %s\n"
@@ -2681,12 +2866,12 @@ msgstr "помилка читання: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "не є пакунком rpm\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr "не вдалося створити блокування %s для %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "очікування на блокування %s на %s\n"
@@ -2702,9 +2887,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Спроба визначення символу %s завершилася невдало: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Модуль %s не завантажено\n"
+msgstr "Додаток %%__%s_%s не налаштовано\n"
#: lib/rpmplugins.c:199
#, c-format
@@ -2845,62 +3030,81 @@ msgstr "не вистачає архітектури для %s у %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "помилковий параметр «%s» у %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "Не вдалося прочитати допоміжний вектор, /proc не змонтовано?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Невідома система: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Будь ласка, зв’яжіться з %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Не вдалося відкрити %s для читання: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "Не вдалося відновити поточний каталог: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
"підтримку допоміжних скриптів мовою <lua> не було передбачено під час "
"збирання\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Не вдалося створити тимчасовий файл для %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Не вдалося здублювати дескриптор файла: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Не вдалося прочитати піктограму %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Не вдалося відновити кореневий каталог: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: помилка Fwrite: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "помилка допоміжного скрипту %s, очікування pid (%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "помилка допоміжного скрипту %s, сигнал %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "помилка допоміжного скрипту %s, стан виходу %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Невідомий формат"
@@ -2912,127 +3116,146 @@ msgstr "встановити"
msgid "erase"
msgstr "вилучити"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "не вдалося відкрити базу даних Packages у %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "зайвий символ «(» у мітці пакунка: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "не вистачає «(» у мітці пакунка: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "не вистачає «)» у мітці пакунка: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "%s: спроба читання відкритого ключа завершилася невдало.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "операція"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(не є підписом OpenPGP)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr "розмір sigh(%d): ПОМИЛКА, read повернуто %d"
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr "sigh magic: ПОМИЛКА"
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr "мітки sigh: ПОМИЛКА, кількість міток (%d) перевищує максимальну"
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr "дані sigh: ПОМИЛКА, кількість байтів (%d) перевищує максимальну"
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr "бінарний об’єкт sigh (%d): ПОМИЛКА, read повернуто %d"
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr "теґ sigh[%d]: ПОМИЛКА, теґ %d тип %d зміщення %d к-ть %d"
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr "завантаження sigh: ПОМИЛКА"
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr "pad sigh (%zd): ПОМИЛКА, прочитано %zd байтів"
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr "sigSize sigh (%zd): ПОМИЛКА, помилка fstat(2)"
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Не вдалося перезавантажити заголовок підпису.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Заголовок "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "Сума MD5:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Сума SHA1 заголовка:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Заголовок "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr "Перевірка підпису: ПОМИЛКОВІ ПАРАМЕТРИ (%d %p %d %p %p)"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "пропущено"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "невдача"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
-msgstr ""
+msgstr "Дублювання імені користувача або UID для користувача %s\n"
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
-msgstr ""
+msgstr "Дублювання назви групи або GID для групи %s\n"
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr "немає стану"
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr "невідомий стан"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "не вистачає %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Незадоволені залежності для %s:\n"
@@ -3106,222 +3329,222 @@ msgstr "ітератор масиву використано з двома ма
msgid "Generating %d missing index(es), please wait...\n"
msgstr "Створення %d пропущених покажчиків, будь ласка, зачекайте…\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr "не вдалося відкрити покажчик %s за допомогою %s — %s (%d)\n"
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "не було встановлено шляху dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: пропущено"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "помилка (%d) збереження запису №%d до %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: помилка regexec: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: помилка regcomp: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: пропущено"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: отримано пошкоджений заголовок №%u — пропущено.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: не вдалося прочитати заголовок за адресою 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "не було встановлено шляху dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "не вдалося створити каталог %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "заголовок №%u у базі даних є помилковим — пропущено.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "не вдалося додати запис з початковим розташуванням у %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"не вдалося перебудувати базу даних: початкова база даних залишається на "
"місці\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "не вдалося замінити стару базу даних новою!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "замінити файли у %s файлами з %s для відновлення"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "не вдалося вилучити каталог %s: %s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr "%s помилка (%d), повідомлено %s: %s\n"
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr "%s помилка (%d): %s\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "невідомий параметр db: «%s» проігноровано.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s має некоректне числове значення, пропущено\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr ""
+"%s має занадто велике або занадто мале довге ціле значення, пропущено\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s має занадто велике або занадто мале ціле значення, пропущено\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "не вдалося отримати блокування %s на %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "спільний"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "ексклюзивний"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "некоректний тип покажчика %x у %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "помилка(%d) отримання записів «%s» з покажчика %s: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "помилка (%d) під час спроби збереження запису «%s» до %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "помилка (%d) під час спроби вилучення запису «%s» з %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "помилка (%d) під час додавання запису заголовка №%d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "помилка (%d) під час вилучення запису заголовка №%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "помилка (%d) розподілу нового екземпляра пакунка\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "невідомий параметр db: «%s» проігноровано.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s має некоректне числове значення, пропущено\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr ""
-"%s має занадто велике або занадто мале довге ціле значення, пропущено\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s має занадто велике або занадто мале ціле значення, пропущено\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(порожньо)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(порожньо)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Запис параметрів макросу %%%s не завершено\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Запис макросу %%%s не завершено\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Макрос %%%s має некоректну назву (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Тіло макросу %%%s є порожнім\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr "У макросі %%%s мало бути використано пробіл перед текстом макросу\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Не вдалося розгорнути макрос %%%s\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Макрос %%%s має некоректну назву (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr "Макрос %%%s визначено, але не використано у області видимості\n"
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Невідомий параметр %c у %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3329,22 +3552,22 @@ msgstr ""
"Забагато рівнів вкладеності у макросі. Ймовірно, це викликано рекурсивним "
"оголошенням макросу.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "Не закрито %c: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "За %% вказано непридатний до обробки макрос\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr "не вдалося завантажити файл макросу %s"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "=================== активних %d порожніх %d\n"
@@ -3364,31 +3587,31 @@ msgstr "Файл %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Розмір файла %s є меншим за %u байтів\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "не вдалося створити каталог"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "некоректний синтаксис у допоміжному скрипті lua: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "некоректний синтаксис у скрипті lua: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "помилка скрипту lua: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "некоректний синтаксис у файлі lua: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "помилка виклику lua: %s\n"
@@ -3397,19 +3620,19 @@ msgstr "помилка виклику lua: %s\n"
msgid "[none]"
msgstr "[нічого]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(без помилок)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "критична помилка: "
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "помилка: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "попередження: "
@@ -3419,101 +3642,159 @@ msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr ""
"у відповідь на спробу отримання області пам’яті (%u байтів) повернуто NULL.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, ід. ключа %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(нічого)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "помилка під час створення тимчасового файла %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "помилка під час створення тимчасового файла %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "помилка під час створення тимчасового файла %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "не вдалося створити каталог %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: помилка Fwrite: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: помилка Fflush: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Непідтримуваний підпис PGP\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "Непідтримуваний алгоритм хешування PGP, %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "Непідтримуваний алгоритм обчислення відкритого ключа PGP, %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Не вдалося створити канал для підписування: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Не вдалося виконати %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
-msgstr "%s: помилка відкриття: %s\n"
+msgid "Fopen failed\n"
+msgstr "помилка fdopen\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Не вдалося відкрити файл %s: %s\n"
+msgstr "Не вдалося виконати запис до каналу\n"
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Не вдалося відкрити файл %%files %s: %m\n"
+msgstr "Не вдалося виконати читання з файла %s: %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "помилка виконання gpg (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg не вдалося записати підпис\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "не вдалося прочитати підпис\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: помилка rpmWriteSignature: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: помилка rpmReadSignature: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: помилка headerRead: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "помилка rpmMkTemp\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "помилка fdopen\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: помилка headerRead: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s вже містить ідентичний підпис, пропускаємо\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: помилка rpmReadSignature: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "Підписування пакунків RPM версії 3 неможливе\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s вже містить ідентичний підпис, пропускаємо\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: помилка rpmWriteSignature: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "помилка rpmMkTemp\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: помилка writeLead: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "спроба заміни %s зазнала невдачі: %s\n"
@@ -3527,88 +3808,30 @@ msgstr "%s: помилка читання маніфесту: %s\n"
msgid "don't verify header+payload signature"
msgstr "не перевіряти підпис заголовка та вмісту"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Не вдалося записати вміст до %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Не вдалося прочитати вміст з %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Не вдалося відкрити файл тимчасових даних.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Не вдалося відкрити ціль підписування %s: %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Невдала спроба перетворення %s у формат long integer.\n"
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Не вдалося прочитати заголовок з %s: %s\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Введіть пароль: "
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Не вдалося записати заголовок до %s: %s\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Пароль підтверджено.\n"
-#~ msgid "do not perform any collection actions"
-#~ msgstr "не виконувати жодних дій зі збірками"
-
-#~ msgid "Failed to expand %%__%s_%s macro\n"
-#~ msgstr "Не вдалося розгорнути макрос %%__%s_%s\n"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
#~ msgstr ""
-#~ "Не вдалося прочитати незмінну ділянку заголовка. Пакунок пошкоджено?\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Не вдалося розкодувати правила для %s\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Не вдалося створити тимчасовий файл для %s: %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Не вдалося виконати запису правил %s до файла %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Не вдалося створити обробник semanage\n"
+#~ "Не вдалося пройти перевірку паролем або строк дії ключа gpg вичерпано\n"
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Не вдалося встановити зв’язок з обробником правил\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Помилкові дані щодо власника/групи: %s\n"
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Не вдалося розпочати дію над правилами: %s\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "рядок %d: некоректний символ у: %s\n"
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "Не вдалося вилучити тимчасовий файл правил %s: %s\n"
+#~ msgid "%s has unverifiable signature"
+#~ msgstr "%s підписано непридатним до перевірки підписом"
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Не вдалося встановити модуль правил: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Не вдалося вилучити модуль правил: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Не вдалося створити відгалуження процесу: %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Не вдалося виконати %s: %s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "Аварійне завершення %s\n"
-
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "Помилка %s з кодом завершення %i\n"
-
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Не вдалося внести зміни до правил\n"
-
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Не вдалося розгорнути шлях макрос restorecon"
-
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Не вдалося змінити мітки у файловій системі. Файли може бути позначено "
-#~ "помилковими мітками.\n"
-
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Не вдалося перезавантажити контексти файлів. Файли може бути позначено "
-#~ "помилковими мітками.\n"
+#~ msgid "Fread failed: %s"
+#~ msgstr "Помилка fread: %s"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Не вдалося видобути правила з %s\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Не вдалося створити канал для підписування: %m"
diff --git a/po/vi.gmo b/po/vi.gmo
index 4d17c67e..c89f6a44 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index e142a095..40618cbf 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,26 +1,23 @@
-# Vietnamese translations for rmp package
-# Bản dịch tiếng Việt cho gói rmp phiên bản 4.
-# This file is distributed under the same license as the rmp package.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2013-2014.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2015
msgid ""
msgstr ""
-"Project-Id-Version: rpm-4\n"
+"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-05-15 07:49+0700\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-08-21 08:30+0000\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
-"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"Language-Team: Vietnamese (http://www.transifex.com/rpm-team/rpm/language/"
+"vi/)\n"
"Language: vi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.5.5\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Poedit-Language: Vietnamese\n"
-"X-Poedit-Country: VIET NAM\n"
-"X-Poedit-SourceCharset: utf-8\n"
#: cliutils.c:21 lib/poptI.c:29
#, c-format
@@ -68,7 +65,7 @@ msgstr "gặp lỗi khi đọc phần đầu từ gói\n"
#: rpm2archive.c:111 rpm2cpio.c:83
#, c-format
msgid "cannot re-open payload: %s\n"
-msgstr "không thể mở lại trọng tải: %s\n"
+msgstr "không thể mở lại phần trọng tải: %s\n"
#: rpmqv.c:41
msgid "Query/Verify package selection options:"
@@ -84,10 +81,10 @@ msgstr "Tùy chọn kiểm tra (với -V hoặc --verify):"
#: rpmqv.c:57
msgid "Install/Upgrade/Erase options:"
-msgstr "Tùy chọn cho Cài-đặt/Nâng-cấp/Xoá:"
+msgstr "Tùy chọn cho Cài-đặt/Nâng-cấp/Xóa:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "Các tùy chọn chung với mọi chế độ và tập tin thực hiện được kiểu rpm:"
@@ -107,7 +104,7 @@ msgstr "gặp định dạng truy vấn bất thường"
msgid "unexpected query source"
msgstr "gặp nguồn truy vấn bất thường"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "chỉ có thể đưa ra một chế độ chính"
@@ -117,19 +114,19 @@ msgstr "chỉ có cài đặt và nâng cấp là có thể ép buộc"
#: rpmqv.c:156
msgid "files may only be relocated during package installation"
-msgstr "chỉ có thể định vị lại tập tin trong khi cài đặt gói"
+msgstr "chỉ có thể tái định vị tập tin trong khi cài đặt gói"
#: rpmqv.c:159
msgid "cannot use --prefix with --relocate or --excludepath"
msgstr ""
-"không cho phép dùng tùy chọn “--prefix” (tiền tố) với “--relocate” (định vị "
-"lại) hoặc “--excludepath” (loại trừ đường dẫn)"
+"không cho phép dùng tùy chọn “--prefix” (tiền tố) cùng với “--relocate” (tái "
+"định vị) hoặc “--excludepath” (loại trừ đường dẫn)"
#: rpmqv.c:162
msgid ""
"--relocate and --excludepath may only be used when installing new packages"
msgstr ""
-"tùy chọn “--relocate” (định vị lại) và --excludepath (loại trừ đường dẫn) "
+"tùy chọn “--relocate” (tái định vị) và --excludepath (loại trừ đường dẫn) "
"chỉ có thể được dùng khi cài đặt gói mới"
#: rpmqv.c:165
@@ -144,13 +141,13 @@ msgstr "đối số cho “--prefix” (tiền tố) phải bắt đầu với d
msgid ""
"--hash (-h) may only be specified during package installation and erasure"
msgstr ""
-"tùy chọn --hash (-h) chỉ có thể được chỉ ra trong khi cài đặt và xoá gói"
+"tùy chọn --hash (-h) chỉ có thể được chỉ ra trong khi cài đặt và xóa gói"
#: rpmqv.c:175
msgid "--percent may only be specified during package installation and erasure"
msgstr ""
"tùy chọn “--percent” (phần trăm) chỉ có thể được chỉ ra trong khi cài đặt và "
-"xoá gói"
+"xóa gói"
#: rpmqv.c:179
msgid "--replacepkgs may only be specified during package installation"
@@ -161,8 +158,8 @@ msgstr ""
#: rpmqv.c:183
msgid "--excludedocs may only be specified during package installation"
msgstr ""
-"tùy chọn “--excludedocs” (loại trừ các tài liệu) chỉ có thể được chỉ ra "
-"trong khi cài đặt gói"
+"tùy chọn “--excludedocs” (loại bỏ các tài liệu) chỉ có thể được chỉ ra trong "
+"khi cài đặt gói"
#: rpmqv.c:187
msgid "--includedocs may only be specified during package installation"
@@ -173,7 +170,7 @@ msgstr ""
#: rpmqv.c:191
msgid "only one of --excludedocs and --includedocs may be specified"
msgstr ""
-"có thể chỉ ra chỉ một trong hai tùy chọn “-excludedocs” (loại trừ các tài "
+"có thể chỉ ra chỉ một trong hai tùy chọn “-excludedocs” (loại bỏ các tài "
"liệu) và “-includedocs” (bao gồm các tài liệu)"
#: rpmqv.c:195
@@ -196,7 +193,7 @@ msgstr "--ignoresize chỉ được chỉ ra trong quá trình cài đặt"
msgid "--allmatches may only be specified during package erasure"
msgstr ""
"tùy chọn “--allmatches” (mọi sự tương ứng) chỉ có thể được chỉ ra trong khi "
-"xoá gói"
+"xóa gói"
#: rpmqv.c:212
msgid "--allfiles may only be specified during package installation"
@@ -208,23 +205,23 @@ msgstr ""
msgid "--justdb may only be specified during package installation and erasure"
msgstr ""
"tùy chọn “--justdb” (chỉ cơ sở dữ liệu) chỉ có thể được chỉ ra trong khi cài "
-"đặt và xoá gói"
+"đặt và xóa gói"
#: rpmqv.c:222
msgid ""
"script disabling options may only be specified during package installation "
"and erasure"
msgstr ""
-"các tùy chọn vô hiệu hoá văn lệnh chỉ có thể được chỉ ra trong khi cài đặt "
-"và xoá gói"
+"các tùy chọn vô hiệu hóa văn lệnh chỉ có thể được chỉ ra trong khi cài đặt "
+"và xóa gói"
#: rpmqv.c:227
msgid ""
"trigger disabling options may only be specified during package installation "
"and erasure"
msgstr ""
-"các tùy chọn vô hiệu hoá bộ gây nên chỉ có thể được chỉ ra trong khi cài đặt "
-"và xoá gói"
+"các tùy chọn vô hiệu hóa bộ gây nên chỉ có thể được chỉ ra trong khi cài đặt "
+"và xóa gói"
#: rpmqv.c:231
msgid ""
@@ -235,16 +232,16 @@ msgstr "--nodeps chỉ được chỉ ra trong quá trình cài đặt, tẩy ha
#: rpmqv.c:235
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-"tùy chọn “--test” (kiểm tra) chỉ có thể được chỉ ra trong khi cài đặt và xoá "
+"tùy chọn “--test” (kiểm tra) chỉ có thể được chỉ ra trong khi cài đặt và xóa "
"gói"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "đối số của “--root” (-r) phải bắt đầu với dấu sổ chéo “/”"
#: rpmqv.c:257
msgid "no packages given for erase"
-msgstr "chưa đưa ra gói cần xoá"
+msgstr "chưa đưa ra gói cần xóa"
#: rpmqv.c:291
msgid "no packages given for install"
@@ -258,215 +255,266 @@ msgstr "chưa đưa ra đối số để truy vấn"
msgid "no arguments given for verify"
msgstr "chưa đưa ra đối số để xác nhận"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "gốc-biên-dịch đã được chỉ ra rồi, bỏ qua %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr ""
"xây dựng qua %prep (chuẩn bị: mở gói nguồn và áp dụng những miếng vá) từ "
"<tập_tin_đặc_tả>"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<tập_tin_đặc_tả>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr ""
"xây dựng qua %build (xây dựng: %prep [chuẳn bị], sau đó biên dịch) từ "
"<tập_tin_đặc_tả>"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr ""
"xây dựng qua %install (cài đặt: %prep [chuẩn bị], %build [xây dựng], sau đó "
"cài đặt) từ <tập_tin_đặc_tả>"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "thẩm tra phần tập tin (%files) từ <tập_tin_đặc_tả>"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "xây dựng các gói kiểu nguồn và nhị phân từ <tập_tin_đặc_tả>"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "xây dựng gói chỉ gói nhị phân từ <tập_tin_đặc_tả>"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "xây dựng chỉ gói nguồn từ <tập_tin_đặc_tả>"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr ""
+"xây dựng qua %prep (chuẩn bị: mở gói nguồn và áp dụng những miếng vá) từ "
+"<tập_tin_đặc_tả>"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<gói nguồn>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr ""
+"xây dựng qua %build (xây dựng: %prep [chuẳn bị], sau đó biên dịch) từ "
+"<tập_tin_đặc_tả>"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr ""
+"xây dựng qua %install (cài đặt: %prep [chuẩn bị], %build [xây dựng], sau đó "
+"cài đặt) từ <gói nguồn>"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "thẩm tra phần tập tin (%files) từ <tập_tin_đặc_tả>"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "xây dựng gói nhị phân từ <gói nguồn>"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "xây dựng gói nhị phân từ <gói nguồn>"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "xây dựng chỉ gói nguồn từ <tập_tin_đặc_tả>"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr ""
"xây dựng qua %prep (chuẩn bị: giải nén các nguồn và áp dụng các đắp vá) từ "
"<kho_tar>"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<kho_tar>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr ""
"xây dựng qua %build (xây dựng: %prep [chuẩn bị], sau đó biên dịch) từ "
"<kho_tar>"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr ""
"xây dựng qua %install (cài đặt: %prep [chuẩn bị], %build [xây dựng], sau đó "
"cài đặt) từ <kho_tar>"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "xác nhận phần tập tin (%files) từ <kho_tar>"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "xây dựng các gói kiểu nguồn và nhị phân từ <kho_tar>"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "xây dựng chỉ gói nhị phân từ <kho_tar>"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "xây dựng chỉ gói nguồn từ <kho_tar>"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "xây dựng gói nhị phân từ <gói nguồn>"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<gói nguồn>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr ""
-"xây dựng qua %install (cài đặt: %prep [chuẩn bị], %build [xây dựng], sau đó "
-"cài đặt) từ <gói nguồn>"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "đè lên gốc biên dịch"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "Không thể mở thư mục làm việc hiện thời: %m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "làm xong thì gỡ bỏ cây xây dựng"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "bỏ qua ExcludeArch: các chỉ thị từ tập tin spec"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "gõ lỗi tập tin máy trạng thái"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "không thực thi bất kỳ giai đoạn nào của việc xây dựng"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "không xác nhận quan hệ phụ thuộc khi xây dựng"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr "tạo phần đầu gói tương thích với gói rmp phiên bản 3 kiểu cũ"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "không thể thực thi bước %clean để biên dịch"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "không thể thực thi bước %clean để biên dịch"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "không thể thực thi bước %check để biên dịch"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "không chấp nhận chuỗi đã dịch i18n từ tập tin đặc tả"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "làm xong thì cũng gỡ bỏ các nguồn"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "làm xong thì cũng gỡ bỏ tập tin đặc tả"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "bỏ qua thẳng tới giai đoạn định rõ (chỉ cho c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "có quyền cao hơn nền tảng đích"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "Tùy chọn xây dựng với [ <tập_tin_đặc_tả> | <kho_tar> | <gói nguồn> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "Gặp lỗi khi xây dựng các thành phần phụ thuộc:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "Không thể mở tập tin đặc tả %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "Gặp lỗi khi mở đường ống tar: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "Nhiều hơn một tập tin mỗi dòng: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "Lỗi đọc tập tin đặc tả từ %s\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "Lỗi thay đổi tên %s thành %s: %m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "lỗi lấy trạng thái về %s: %m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "Tập tin %s không phải là một tập tin thường.\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
-msgstr "Tập tin %s không hình như tập tin đặc tả.\n"
+msgstr "Tập tin %s hình như không phải là tập tin đặc tả.\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "Đang xây dựng các nền tảng đích: %s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "Đang xây dựng cho nền tảng đích %s\n"
@@ -487,11 +535,11 @@ msgstr "thẩm tra các tập tin cơ sở dữ liệu"
#: rpmdb.c:32
msgid "export database to stdout header list"
-msgstr ""
+msgstr "xuất cơ sở dữ liệu ra danh sách phần đầu đầu ra tiêu chuẩn"
#: rpmdb.c:35
msgid "import database from stdin header list"
-msgstr ""
+msgstr "nhập cơ sở dữ liệu từ danh sách phần đầu đầu vào tiêu chuẩn"
#: rpmdb.c:42
msgid "Database options:"
@@ -503,7 +551,7 @@ msgstr "thẩm tra (các) chữ ký của gói"
#: rpmkeys.c:26
msgid "import an armored public key"
-msgstr "nhập một khoá công bọc sắt"
+msgstr "nhập một khóa công dạng văn bản"
#: rpmkeys.c:28
msgid "don't import, but tell if it would work or not"
@@ -517,49 +565,66 @@ msgstr "liệt kê các khóa từ chùm chìa khóa RPM"
msgid "Keyring options:"
msgstr "Tùy chọn chùm chìa khóa:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "chưa đưa ra đối số"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "ký (các) gói"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "ký tên gói (đồng nhất tới --addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
-msgstr "xoá chữ ký của gói"
+msgstr "xóa chữ ký của gói"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "ký (các) gói"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "Tùy chọn chữ ký:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "Không thể thực hiện %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "Bạn phải đặt \"%%_gpg_name\" trong tập tin vĩ lệnh\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "Gõ cụm từ mật khẩu: "
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "Cụm từ mật khẩu đúng.\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "Gặp lỗi khi phân tích cú pháp hay khóa gpg đã hết hạn\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "tùy chọn “--prefix” (tiền tố) chỉ có thể được dùng khi cài đặt gói mới"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr ""
+"tùy chọn “--allmatches” (mọi sự tương ứng) chỉ có thể được chỉ ra trong khi "
+"xóa gói"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -577,7 +642,7 @@ msgstr "thao tác trên gói nhị phân rpm được tạo bởi spec (mặc đ
msgid "operate on source rpm generated by spec"
msgstr "thao tác trên gói nguồn rpm được tạo bởi spec"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "dùng định dạng truy vấn theo đây"
@@ -678,201 +743,201 @@ msgstr "&& và || không được hỗ trợ cho chuỗi\n"
msgid "syntax error in expression\n"
msgstr "gặp lỗi cú pháp trong biểu thức\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "Thiếu dấu ngoặc mở “(” trong %s %s\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "Thiếu dấu ngoặc đóng “)” trong %s(%s\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "Hiệu bài %s không hợp lệ: %s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "Thiếu %s trong %s %s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "Không có khoảng trắng theo sau %s(): %s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "Cú pháp sai: %s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "Đặc tả chế độ sai: %s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "Đặc tả dirmode (chế độ thư mục) sai: %s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "Chiều dài miền địa phương không bình thường “%s” trong %%lang(%s)\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "Miền địa phương trùng %s trong %%lang(%s)\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "Dung lượng không hợp lệ: %s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "Hỗ trợ dung lượng tập tin không được biên dịch sẵn\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "Tập tin phải bắt đầu bằng dấu sổ chéo “/”: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "Không hiểu thuật toán băm tập tin %u, quay lại dùng MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "Tập tin được liệt kê hai lần: %s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "gặp lỗi khi đọc liên kết mềm “%s”: %s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
-msgstr "Liên kết tượng trưng chỉ tới BuildRoot (gốc xây dựng): %s -> %s\n"
+msgstr "Liên kết mềm chỉ tới BuildRoot (gốc xây dựng): %s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
-msgstr ""
+msgstr "Đường dẫn nằm ngoài buildroot (gốc xây dựng): %s\n"
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "Không tìm thấy thư mục: %s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "Không tìm thấy tập tin: %s\n"
-#: build/files.c:1273
-#, fuzzy, c-format
+#: build/files.c:1323
+#, c-format
msgid "Not a directory: %s\n"
-msgstr "gặp lỗi khi tạo thư mục %s: %s\n"
+msgstr "Không phải là một thư mục: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: không thể nạp thẻ bất thường (%d).\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
-msgstr "%s: lỗi đọc khoá công.\n"
+msgstr "%s: gặp lỗi khi đọc khóa công.\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
-msgstr "%s: không phải là khoá công bọc sắt.\n"
+msgstr "%s: không phải là khóa công dạng văn bản.\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s: gặp lỗi khi giải mã\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "Tập tin cần có dấu sổ chéo “/” đi trước: %s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "không cho phép %%dev glob: %s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "Glob (chức năng mở rộng mẫu khi tìm kiếm) không tìm thấy thư mục: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "Glob (chức năng mở rộng mẫu khi tìm kiếm) không tìm thấy tập tin: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "Không thể mở tập tin %%files %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "dòng: %s\n"
-#: build/files.c:1619
-#, fuzzy, c-format
+#: build/files.c:1674
+#, c-format
msgid "Empty %%files file %s\n"
-msgstr "Phân loại tập tin trống rỗng\n"
+msgstr "Tập tin %%files trống rỗng %s\n"
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "Gặp lỗi khi đang đọc tập tin %%files %s: %m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "_docdir_fmt không hợp lệ %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "Glob (chức năng mở rộng mẫu khi tìm kiếm) không tìm thấy tập tin: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr "Không thể trộn lẫn %s đặc biệt với dạng khác: %s\n"
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "Nhiều hơn một tập tin mỗi dòng: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "Tập tin sai: %s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "Chủ/nhóm sai: %s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "Đang kiểm tra có tập tin chưa đóng gói: %s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -881,17 +946,17 @@ msgstr ""
"Tìm thấy tập tin đã cài đặt (nhưng chưa đóng gói):\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "Đang xử lý tập tin: %s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr "Kiến trúc nhị phân (%d) không khớp với kiến trúc gói (%d).\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "Nhị phân phụ thuộc kiến trúc trong gói không phụ thuộc kiến trúc\n"
@@ -910,89 +975,90 @@ msgstr "tiến trình tạo kho nén bị lỗi: %s\n"
msgid "Could not open %s file: %s\n"
msgstr "Không thể mở tập tin %s: %s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: dòng: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "Không thể làm hợp quy tắc tên máy: %s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "Không thể nạp lại phần đầu chữ ký.\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "Không thể nén phần trọng tải: %s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "Không thể tạo vùng đầu không thể thay đổi được.\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "Không thể mở %s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "Không thể ghi gói: %s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "Không thể ghi phần đầu tạm\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "Dữ liệu CSA sai\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "Không thể mở tập tin %s: %s\n"
+msgstr "Không thể di chuyển vị trí đọc trong tập tin %s: %s\n"
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s bị lỗi ở tập tin %s: %s\n"
+msgstr "gặp lỗi khi fread ở tập tin %s: %s\n"
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "Đã ghi: %s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "Thực hiện %s:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "Việc thực hiện %s bị lỗi\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "Gặp lỗi khi kiểm tra “%s”.\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "Không thể tạo tên tập tin kết xuất cho gói %s: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "không thể tạo %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "dòng %d: %s thứ hai\n"
@@ -1033,9 +1099,9 @@ msgid "no description in %%changelog\n"
msgstr "không có mô tả trong bản ghi thay đổi (%%changelog)\n"
#: build/parseChangelog.c:237
-#, fuzzy, c-format
+#, c-format
msgid "line %d: second %%changelog\n"
-msgstr "dòng %d: chuẩn bị (%%prep) thứ hai\n"
+msgstr "dòng %d: %%changelog thứ hai\n"
#: build/parseDescription.c:32
#, c-format
@@ -1043,19 +1109,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "dòng %d: Gặp lỗi khi phân tích mô tả (%%description): %s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "dòng %d: Tùy chọn sai %s: %s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "dòng %d: Quá nhiều tên: %s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "dòng %d: Gói không tồn tại: %s\n"
@@ -1066,9 +1132,9 @@ msgid "line %d: Error parsing %%files: %s\n"
msgstr "dòng %d: Gặp lỗi khi phân tích tập tin (%%files): %s\n"
#: build/parseFiles.c:76
-#, fuzzy, c-format
+#, c-format
msgid "line %d: second %%files\n"
-msgstr "dòng %d: %s thứ hai\n"
+msgstr "dòng %d: %%files thứ hai\n"
#: build/parsePolicies.c:32
#, c-format
@@ -1110,143 +1176,148 @@ msgstr "Đang tải %s về %s\n"
msgid "Couldn't download %s\n"
msgstr "Không thể tải về %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "Kiến trúc bị loại trừ: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "Kiến trúc không được bao gồm: %s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "Hệ điều hành bị loại trừ: %s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "Hệ điều hành không được bao gồm: %s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "Trường %s phải nằm trong gói: %s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "Mục nhập %s trùng trong gói: %s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "Không thể mở biểu tượng %s: %s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "Không thể đọc biểu tượng %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "Không hỗ trợ kiểu biểu tượng: %s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "dòng %d: Thẻ chấp nhận chỉ một hiệu bài: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "dòng %d: Ký tự không hợp lệ “%c” trong: %s\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "dòng %d: Ký tự không hợp lệ trong: %s\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "dòng %d: Chuỗi ký tự không hợp lệ \"..\" trong: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "dòng %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: dòng: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "dòng %d: Thẻ dạng sai: %s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "dòng %d: Thẻ rỗng: %s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "dòng %d: Tiền tố không nên kết thúc với dấu sổ chéo “/”: %s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr ""
"dòng %d: Docdir (thư mục tài liệu) phải bắt đầu với dấu sổ chéo “/”: %s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "dòng %d: trường Epoch (Kỷ nguyên) phải là con số không dấu: %s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "dòng %d: %s sai: điều kiện: %s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "dòng %d: định dạng BuildArchitecture (kiến trúc xây dựng) sai: %s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "dòng %d: Chỉ hỗ trợ gói phụ kiểu “noarch” (không có kiến trúc): %s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "Lỗi nội bộ: Thẻ giả %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "dòng %d: không tán thành %s: %s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "Đặc tả gói sai: %s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "Gói đã sẵn có: %s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "dòng %d: Không rõ thẻ: %s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} không thể là rỗng\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} không thể là \"/\"\n"
@@ -1256,164 +1327,196 @@ msgstr "%%{buildroot} không thể là \"/\"\n"
msgid "Bad source: %s: %s\n"
msgstr "Nguồn sai: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "Không có miếng và số %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%patch mà không có thẻ \"Patch:\" tương ứng\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "Không có số nguồn %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "Không có thẻ \"Source:\" trong tập tin đặc tả\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "Lỗi phân tích thiết lập (%%setup): %s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "dòng %d: Đối số sai tới thiết lập (%%setup): %s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "dòng %d: Tùy chọn thiết lập (%%setup) sai %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "Miếng và sô %s không hợp lệ: %s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "dòng %d: chuẩn bị (%%prep) thứ hai\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
"Các thẻ bài về quan hệ phụ thuộc phải bắt đầu với chữ cái, chữ số, dấu gạch "
"dưới “_” hoặc dấu sổ chéo “/”"
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "Không cho phép tên tập tin đặt phiên bản"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "Yêu cầu phiên bản"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "phần phụ thuộc không hợp lệ"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "Yêu cầu phiên bản"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "dòng %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "dòng %d: các bẫy phải có --: %s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "dòng %d: Lỗi phân tích %s: %s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "dòng %d: văn lệnh nội tại phải kết thúc bằng “>”: %s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr ""
"dòng %d: Chương trình đặt văn lệnh phải bắt đầu với dấu sổ chéo “/”: %s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, fuzzy, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr "dòng %d: phiên dịch tham số không được phép trong bẫy: %s\n"
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "dòng %d: %s thứ hai\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "dòng %d: văn lệnh nội bộ không được hỗ trợ: %s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr "dòng %d: phiên dịch tham số không được phép trong bẫy: %s\n"
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "dòng %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "Không thể mở %s: %s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr "%s:%d: Cần đối số cho %s\n"
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "dòng %d: Chưa đóng %%if\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr "dòng %d: chưa đóng vĩ lệnh hoặc dòng kéo dài sai\n"
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr "%s:%d: điều kiện %%if sai\n"
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d: Có một toán tử %%else (nếu không) mà không có %%if (nếu)\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d: Có một toán tử %%endif (kết thúc nếu) mà không có %%if (nếu)\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr "%s:%d: câu lệnh bao gồm (%%include) sai dạng\n"
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "Không tìm thấy kiến trúc tương thích để xây dựng\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "Gói không có mô tả (%%description): %s\n"
@@ -1486,298 +1589,282 @@ msgstr "Quá nhiều đối số trong dòng: %s\n"
msgid "Processing policies: %s\n"
msgstr "Thực hiện các chính sách: %s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "Bỏ qua biểu thức chính quy không hợp lệ %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "Không thể tạo ống dẫn cho %s: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "Không thể thực hiện %s: %s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "Không thể tạo tiến trình con %s: %s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s bị lỗi: %x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "gặp lỗi khi toàn bộ dữ liệu vào %s: %s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
-msgstr ""
+msgstr "thao tác sai"
-#: build/rpmfc.c:473
-#, fuzzy
+#: build/rpmfc.c:483
msgid "bad format"
-msgstr "định dạng thẻ trống"
+msgstr "định dạng sai"
-#: build/rpmfc.c:539
-#, fuzzy, c-format
-msgid "invalid dependency (%s): %s\n"
-msgstr "phần phụ thuộc không hợp lệ"
-
-#: build/rpmfc.c:845
+#: build/rpmfc.c:548
#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "Việc chuyển đổi %s sang số nguyên dài gặp lỗi.\n"
+msgid "invalid dependency (%s): %s\n"
+msgstr "phần phụ thuộc không hợp lệ (%s): %s\n"
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "Phân loại tập tin trống rỗng\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "Chưa có các thuộc tính tập tin được cấu hình\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) bị lỗi: %s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load gặp lỗi: %s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "Gặp lỗi khi chấp nhận tập tin \"%s\": chế độ %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "Đang tìm %s: %s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "Gặp lỗi khi tìm %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "lỗi truy vấn tập tin đặc tả %s nên không phân tích được\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s là một Delta RPM và không thể được cài đặt trực tiếp\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr "Không hỗ trợ phần tải (%s) trong gói %s\n"
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "gói %s đã được thêm vào nên bỏ qua %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "gói %s đã được thêm vào nên thay thế bằng %s\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(không phải con số)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %d %b %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(không phải base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(kiểu không hợp lệ)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(không phải blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(kiểu XML không hợp lệ)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(không phải chữ ký OpenPGP)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "Ngày không hợp lệ %u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "thông thường"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "đã thay thế"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "chưa cài đặt"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "chia sẻ qua mạng"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "màu sai"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "thiếu"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(không hiểu)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(không phải chuỗi)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s được lưu dạng %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s được tạo dạng %s\n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: gặp lỗi khi gỡ bỏ: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "thư mục"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "tập tin"
-#: lib/package.c:156
-#, fuzzy, c-format
-msgid "%s has unverifiable signature"
-msgstr "đang bỏ qua %s với chữ ký không thể thầm tra được\n"
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
-#, fuzzy, c-format
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
+#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
-msgstr "thẻ [%d]: SAI, thẻ %d kiểu %d bù %d số lượng %d\n"
+msgstr "thẻ [%d]: SAI, thẻ %d kiểu %d bù %d số lượng %d"
-#: lib/package.c:204
-#, fuzzy
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
-msgstr "hdr SHA1: SAI, không phải thập lục\n"
+msgstr "hdr SHA1: SAI, không phải thập lục"
-#: lib/package.c:216
-#, fuzzy
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
-msgstr "hdr RSA: SAI, không phải nhị phân\n"
+msgstr "hdr RSA: SAI, không phải nhị phân"
-#: lib/package.c:226
-#, fuzzy
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
-msgstr "hdr DSA: SAI, không phải nhị phân\n"
+msgstr "hdr DSA: SAI, không phải nhị phân"
-#: lib/package.c:315
-#, fuzzy, c-format
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
+#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
-msgstr "thẻ vùng: SAI, thẻ %d kiểu %d bù %d số lượng %d\n"
+msgstr "thẻ vùng: SAI, thẻ %d kiểu %d bù %d số lượng %d"
-#: lib/package.c:324
-#, fuzzy, c-format
+#: lib/package.c:309
+#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
-msgstr "bù vùng: SAI, thẻ %d kiểu %d bù %d số lượng %d\n"
+msgstr "bù vùng: SAI, thẻ %d kiểu %d bù %d số lượng %d"
-#: lib/package.c:343
-#, fuzzy, c-format
+#: lib/package.c:328
+#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
-msgstr "vùng theo đuôi: SAI, thẻ %d kiểu %d bù %d số lượng %d\n"
+msgstr "vùng theo đuôi: SAI, thẻ %d kiểu %d bù %d số lượng %d"
-#: lib/package.c:352
-#, fuzzy, c-format
+#: lib/package.c:337
+#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
-msgstr "kích cỡ vùng: SAI, ril(%d) > il(%d)\n"
+msgstr "kích cỡ vùng: SAI, ril(%d) > il(%d)"
-#: lib/package.c:383
-#, fuzzy, c-format
+#: lib/package.c:368
+#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
-msgstr "kích cỡ blob (%d): SAI, 8 + 16 * il(%d) + dl(%d)\n"
+msgstr "kích cỡ blob (%d): SAI, 8 + 16 * il(%d) + dl(%d)"
-#: lib/package.c:460
-#, fuzzy, c-format
+#: lib/package.c:445
+#, c-format
msgid "hdr size(%d): BAD, read returned %d"
-msgstr "kích cỡ hdr (%d): SAI, hàm đọc đã trả về %d\n"
+msgstr "kích cỡ hdr (%d): SAI, hàm đọc đã trả về %d"
-#: lib/package.c:464
-#, fuzzy
+#: lib/package.c:449
msgid "hdr magic: BAD"
-msgstr "ma thuật hdr: SAI\n"
+msgstr "ma thuật hdr: SAI"
-#: lib/package.c:469
-#, fuzzy, c-format
+#: lib/package.c:454
+#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
-msgstr "thẻ hdr: SAI, tổng số thẻ (%d) ở ngoài phạm vi\n"
+msgstr "thẻ hdr: SAI, tổng số thẻ (%d) ở ngoài phạm vi"
-#: lib/package.c:475
-#, fuzzy, c-format
+#: lib/package.c:460
+#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
-msgstr "dữ liệu hdr: SAI, tổng số byte (%d) ở ngoài phạm vi\n"
+msgstr "dữ liệu hdr: SAI, tổng số byte (%d) ở ngoài phạm vi"
-#: lib/package.c:485
-#, fuzzy, c-format
+#: lib/package.c:470
+#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
-msgstr "hdr blob(%zd): SAI, việc đọc trả về %d\n"
+msgstr "hdr blob(%zd): SAI, việc đọc trả về %d"
-#: lib/package.c:498
-#, fuzzy
+#: lib/package.c:483
msgid "hdr load: BAD"
-msgstr "nạp hdr: SAI\n"
-
-#: lib/package.c:650
-#, fuzzy, c-format
-msgid "Fread failed: %s"
-msgstr "%s: Fread bị lỗi: %s\n"
+msgstr "tải hdr: SAI"
#: lib/poptALL.c:145
#, c-format
msgid ""
"%s: error: more than one --pipe specified (incompatible popt aliases?)\n"
msgstr ""
+"%s: lỗi: đã cho nhiều hơn một --pipe (bí danh popt không tương thích?)\n"
#: lib/poptALL.c:175
msgid "predefine MACRO with value EXPR"
@@ -1809,15 +1896,15 @@ msgstr "“B_THỨC”"
#: lib/poptALL.c:187 lib/poptALL.c:206
msgid "read <FILE:...> instead of default file(s)"
-msgstr "đọc <TẬP TIN:...> thay cho (những) tập tin mặc định"
+msgstr "đọc <TẬP TIN:…> thay cho (những) tập tin mặc định"
#: lib/poptALL.c:188 lib/poptALL.c:207
msgid "<FILE:...>"
-msgstr "<TẬP-TIN:...>"
+msgstr "<TẬP-TIN:…>"
#: lib/poptALL.c:193
msgid "don't enable any plugins"
-msgstr ""
+msgstr "không thể bật bất kỳ phần bổ xung nào"
#: lib/poptALL.c:196
msgid "don't verify package digest(s)"
@@ -1829,7 +1916,7 @@ msgstr "không thẩm tra phần đầu cơ sở dữ liệu khi tìm được"
#: lib/poptALL.c:200
msgid "don't verify package signature(s)"
-msgstr "không thẩm tra chữ ký gói"
+msgstr "không xác minh chữ ký gói"
#: lib/poptALL.c:203
msgid "send stdout to CMD"
@@ -1841,7 +1928,7 @@ msgstr "LỆNH"
#: lib/poptALL.c:209
msgid "use ROOT as top level directory"
-msgstr "dùng GỐC là thư mục cấp đầu"
+msgstr "dùng GỐC là thư mục cấp cao nhất"
#: lib/poptALL.c:210
msgid "ROOT"
@@ -1894,15 +1981,15 @@ msgstr "đường dẫn loại trừ phải bắt đầu với dấu sổ chéo
#: lib/poptI.c:64
msgid "relocations must begin with a /"
-msgstr "sự định vị lại phải bắt đầu với dấu sổ chéo “/”"
+msgstr "sự tái định vị phải bắt đầu với dấu sổ chéo “/”"
#: lib/poptI.c:67
msgid "relocations must contain a ="
-msgstr "sự định vị lại phải chứa một dấu bằng “=”"
+msgstr "sự tái định vị phải chứa một dấu bằng “=”"
#: lib/poptI.c:70
msgid "relocations must have a / following the ="
-msgstr "sự định vị lại phải có một dấu sổ chéo “/” theo sau dấu bằng “=”"
+msgstr "sự tái định vị phải có một dấu sổ chéo “/” theo sau dấu bằng “=”"
#: lib/poptI.c:114
msgid "install all files, even configurations which might otherwise be skipped"
@@ -1920,7 +2007,7 @@ msgstr ""
#: lib/poptI.c:123
msgid "relocate files in non-relocatable package"
-msgstr "định vị lại các tập tin trong gói không thể định vị lại"
+msgstr "tái định vị các tập tin trong gói không thể tái định vị"
#: lib/poptI.c:127
msgid "print dependency loops as warning"
@@ -1928,7 +2015,7 @@ msgstr "in dạng cảnh báo các vòng lặp của quan hệ phụ thuộc"
#: lib/poptI.c:131
msgid "erase (uninstall) package"
-msgstr "xoá (gỡ bỏ) gói"
+msgstr "xóa (gỡ bỏ) gói"
#: lib/poptI.c:131
msgid "<package>+"
@@ -1944,11 +2031,11 @@ msgstr "không cài đặt tài liệu hướng dẫn"
#: lib/poptI.c:139
msgid "skip files with leading component <path> "
-msgstr "bỏ qua các tập tin với bộ phận hướng dẫn <đường dẫn>"
+msgstr "bỏ qua các tập tin với bộ phận hướng dẫn <đường_dẫn>"
#: lib/poptI.c:140
msgid "<path>"
-msgstr "<đường dẫn>"
+msgstr "<đường_dẫn>"
#: lib/poptI.c:143
msgid "short hand for --replacepkgs --replacefiles"
@@ -1994,7 +2081,7 @@ msgstr "cập nhật cơ sở dữ liệu, mà không sửa đổi hệ thống
msgid "do not verify package dependencies"
msgstr "không thẩm tra quan hệ phụ thuộc giữa các gói"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "không thẩm tra mã băm của tập tin"
@@ -2035,14 +2122,14 @@ msgid "do not execute %%postun scriptlet (if any)"
msgstr "không thực hiện văn lệnh nhỏ %%postun (nếu có)"
#: lib/poptI.c:207
-#, fuzzy, c-format
+#, c-format
msgid "do not execute %%pretrans scriptlet (if any)"
-msgstr "không thực hiện văn lệnh nhỏ %%preun (nếu có)"
+msgstr "không thực hiện văn lệnh nhỏ %%pretrans (nếu có)"
#: lib/poptI.c:210
-#, fuzzy, c-format
+#, c-format
msgid "do not execute %%posttrans scriptlet (if any)"
-msgstr "không thực hiện văn lệnh nhỏ %%postun (nếu có)"
+msgstr "không thực hiện văn lệnh nhỏ %%postrans (nếu có)"
#: lib/poptI.c:213
msgid "do not execute any scriptlet(s) triggered by this package"
@@ -2062,12 +2149,12 @@ msgstr "không chạy bất kỳ văn lệnh nhỏ cài đặt đã kích hoạt
#: lib/poptI.c:222
#, c-format
msgid "do not execute any %%triggerun scriptlet(s)"
-msgstr "không chạy bất kỳ văn lệnh nhỏ xoá đã kích hoạt (%%triggerun)"
+msgstr "không chạy bất kỳ văn lệnh nhỏ xóa đã kích hoạt (%%triggerun)"
#: lib/poptI.c:225
#, c-format
msgid "do not execute any %%triggerpostun scriptlet(s)"
-msgstr "không chạy bất kỳ vi văn lệnh xoá cuối đã kích hoạt (%%triggerpostun)"
+msgstr "không chạy bất kỳ vi văn lệnh xóa cuối đã kích hoạt (%%triggerpostun)"
#: lib/poptI.c:229
msgid ""
@@ -2083,7 +2170,7 @@ msgstr "in ra phần trăm trong khi cài đặt gói"
#: lib/poptI.c:235
msgid "relocate the package to <dir>, if relocatable"
-msgstr "có thể định vị lại thì chuyển gói vào <thư_mục>"
+msgstr "có thể tái định vị thì chuyển gói vào <thư_mục>"
#: lib/poptI.c:236
msgid "<dir>"
@@ -2091,7 +2178,7 @@ msgstr "<th.mục>"
#: lib/poptI.c:238
msgid "relocate files from path <old> to <new>"
-msgstr "định vị lại các tập tin từ đường dẫn <cũ> tới <mới>"
+msgstr "tái định vị các tập tin từ đường dẫn <cũ> tới <mới>"
#: lib/poptI.c:239
msgid "<old>=<new>"
@@ -2114,166 +2201,185 @@ msgid "upgrade package(s)"
msgstr "nâng cấp gói"
#: lib/poptI.c:254
-#, fuzzy
msgid "reinstall package(s)"
-msgstr "cài đặt gói"
+msgstr "cài đặt lại (các) gói"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "truy vấn/thẩm tra mọi gói"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "chế độ kiểm tra chữ ký RPM"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "truy vấn/thẩm tra (những) gói nào sở hữu tập tin"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "truy vấn/thẩm tra (các) gói trong nhóm"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "truy vấn/thẩm tra một tập tin gói"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
-msgstr "truy vấn/thẩm tra (các) gói với đồ nhận diện gói"
+msgstr "truy vấn/thẩm tra (các) gói với định danh gói"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
-msgstr "truy vấn/thẩm tra (các) gói với đồ nhận diện phần đầu"
+msgstr "truy vấn/thẩm tra (các) gói với định danh phần đầu"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "chế độ truy vấn RPM"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "truy vấn/thẩm tra một phần đầu cụ thể"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "truy vấn/thẩm tra (các) gói từ giao dịch cài đặt"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "truy vấn (các) gói được gói kích hoạt"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "chế độ thẩm tra RPM"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "truy vấn/thẩm tra (các) gói mà cần thiết quan hệ phụ thuộc"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "truy vấn/thẩm tra (các) gói mà thỏa một quan hệ phụ thuộc"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "truy vấn/thẩm tra (các) gói mà cần thiết quan hệ phụ thuộc"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "truy vấn/thẩm tra (các) gói mà cần thiết quan hệ phụ thuộc"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "truy vấn/thẩm tra (các) gói mà cần thiết quan hệ phụ thuộc"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "truy vấn/thẩm tra (các) gói mà cần thiết quan hệ phụ thuộc"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "không glob đối số"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "không xử lý dạng bản kê tập tin không phải gói "
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "liệt kê mọi tập tin cấu hình"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "liệt kê mọi tập tin tài liệu hướng dẫn"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr "liệt kê mọi tập tin giấy phép"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "đổ thông tin tập tin cơ bản"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "liệt kê các tập tin trong gói"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "bỏ qua các tập tin ma (%%ghost)"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "hiển thị các tình trạng của những tập tin đã liệt kê"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "không thẩm tra kích cỡ của tập tin"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
-msgstr "không thẩm tra đường dẫn liên kết tượng trưng của tập tin"
+msgstr "không thẩm tra đường dẫn liên kết mềm của tập tin"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "không thẩm tra người sở hữu tập tin"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "không thẩm tra nhóm của tập tin"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "không thẩm tra thời gian sửa đổi của tập tin"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "không thẩm tra chế độ của tập tin"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "không thể thẩm tra kích cỡ của các tập tin"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "không thẩm tra ngữ cảnh bảo mật của tập tin"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "không thẩm tra các tập tin trong gói"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "không thẩm tra các quan hệ phụ thuộc của gói"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "không chạy văn lệnh thẩm tra"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr "Thiếu tính năng rpmlib cho %s:\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "cần gói nguồn còn tìm thấy gói nhị phân\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "gói nguồn không chứa tập tin đặc tả\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "lỗi giải nén kho %s%s: %s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " ở tập tin"
@@ -2348,99 +2454,119 @@ msgstr "không có gói tương ứng với %s: %s\n"
msgid "no package requires %s\n"
msgstr "không có gói cần thiết %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "không có gói cần thiết %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "không có bộ gây nên gói %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "không có gói cần thiết %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "không có gói cần thiết %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "không có gói cung cấp %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "tập tin %s: %s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "tập tin %s không được bất kỳ gói sở hưu\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "số thứ tự gói không hợp lệ: %s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "không thể đọc mục ghi %u\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "chưa cài đặt gói %s\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "không hiểu thẻ: “%s”\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: gặp lỗi khi nhập khóa %d.\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
-msgstr "%s: khóa %d không phải là khoá công dạng văn bản.\n"
+msgstr "%s: khóa %d không phải là khóa công dạng văn bản.\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s: lỗi đọc khi nhập (%d).\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s: gặp lỗi khi headerRead: %s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr "%s: Vùng phần đầu không thay đổi không thể đọc được. Gói đã hỏng?\n"
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s: Fread bị lỗi: %s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "KHÔNG_ĐƯỢC"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "OK"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
-msgstr " (KHOÁ BỊ THIẾU:"
+msgstr " (KHÓA BỊ THIẾU:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
-msgstr " (KHOÁ KHÔNG TIN CẬY:"
+msgstr " (KHÓA KHÔNG TIN CẬY:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
-msgstr "%s: lỗi mở: %s\n"
+msgstr "%s: gặp lỗi khi mở: %s\n"
#: lib/rpmchroot.c:43
#, c-format
@@ -2462,151 +2588,201 @@ msgstr "Không thể chuyển đổi thư mục gốc: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "Không thể phục hồi thư mục gốc: %m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "KHÔNG "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "CÓ"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
"Cả kiểu quan hệ phụ thuộc PreReq: (điều kiện tiên quyết), Provides: (cung "
"cấp) và Obsoletes: (làm cũ) đều hỗ trợ phiên bản."
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
"tên tập tin được cất giữ dạng một đối tượng dữ liệu đa thành phần (dirName,"
"baseName,dirIndex), không phải dạng đường dẫn."
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "trọng tải của gói có thể được nén bằng bzip2."
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "trọng tải gói cũng có thể được nén bằng xz."
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "trọng tải gói cũng có thể được nén bằng lzma."
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "tập tin trọng tải gói có tiền tố “./”."
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "không cung cấp dứt khoát tên-phiên_bản-bản_phát_hành của gói."
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "các thẻ của phần đầu luôn được sắp xếp sau khi được nạp."
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "bộ phiên dịch vi văn lệnh có thể sử dụng các đối số từ phần đầu."
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr ""
"một bộ tập tin đường liên kết cứng chưa hoàn toàn cũng có thể được cài đặt"
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr ""
"vi văn lệnh của gói cũng có thể truy cập cơ sở dữ liệu RPM trong khi cài đặt."
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "bản thân có hỗ trợ văn lệnh lua."
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr "thuật toán băm tập tin là có phụ thuộc vào cấu hình từng gói"
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr "hỗ trợ cho dung lượng tập tin POSIX.1e"
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr "scriptlets gói có thể được khai triển lúc cài đặt."
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr "hỗ trợ so sánh phiên bản phụ thuộc với dấu sóng ~."
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
+msgstr "Hỗ trợ các tập tin lớn hơn 4GB"
+
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "không thẩm tra quan hệ phụ thuộc giữa các gói"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "Yêu cầu phiên bản"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "phần phụ thuộc không hợp lệ"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "%c chưa chấm dứt: %s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "phần phụ thuộc không hợp lệ"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "người dùng %s không tồn tại nên dùng người chủ (root)\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "nhóm %s không tồn tại nên dùng người chủ (root)\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Ma thuật sai"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "Phần đầu sai hoặc không đọc được"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "Kích cỡ phần đầu quá lớn "
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "Tập tin quá lớn để nén"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "Không rõ kiểu tập tin"
-#: lib/rpmfi.c:2155
-#, fuzzy
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
-msgstr "Thiếu liên kết cứng"
+msgstr "Thiếu các tập tin"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "Mã băm tập tin không khớp"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "Lỗi nội bộ"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "Tập tin kho lưu không phải trong phần đầu"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " bị lỗi — "
-#: lib/rpmfi.c:2169
-#, fuzzy, c-format
+#: lib/rpmfi.c:2277
+#, c-format
msgid "%s: (error 0x%x)"
-msgstr "(lỗi 0x%x)"
+msgstr "%s: (lỗi 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "lỗi mở %s: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: không phải là gói rpm (hoặc manifest gói)\n"
@@ -2614,20 +2790,20 @@ msgstr "%s: không phải là gói rpm (hoặc manifest gói)\n"
#: lib/rpminstall.c:141
#, c-format
msgid "Updating / installing...\n"
-msgstr "Đang cài đặt hay nâng cấp...\n"
+msgstr "Đang cài đặt hay nâng cấp…\n"
#: lib/rpminstall.c:143
#, c-format
msgid "Cleaning up / removing...\n"
-msgstr "Đang xóa bỏ hay tẩy các đặc quyền...\n"
+msgstr "Đang dọn dẹp hoặc gỡ bỏ…\n"
#: lib/rpminstall.c:192
msgid "Preparing..."
-msgstr "Đang chuẩn bị..."
+msgstr "Đang chuẩn bị…"
#: lib/rpminstall.c:194
msgid "Preparing packages..."
-msgstr "Đang chuẩn bị các gói..."
+msgstr "Đang chuẩn bị các gói…"
#: lib/rpminstall.c:270 tools/rpmgraph.c:168
msgid "Failed dependencies:\n"
@@ -2638,42 +2814,42 @@ msgstr "Quan hệ phụ thuộc bị lỗi:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: không phải là gói rpm (hoặc manifest gói): %s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s không thể được cài đặt\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "Đang lấy %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "bỏ qua %s - bộ truyền gặp lỗi\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
-msgstr "không thể định vị lại gói %s\n"
+msgstr "không thể tái định vị gói %s\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "gặp lỗi khi đọc từ tập tin %s\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "“%s” chỉ định nhiều gói:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "không thể mở %s: %s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "Đang cài đặt %s\n"
@@ -2699,15 +2875,15 @@ msgstr "gặp lỗi khi đọc: %s (%d)\n"
msgid "not an rpm package\n"
msgstr "không phải là gói rpm\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
-msgstr "không thể tạo khoá %s trên %s (%s)\n"
+msgstr "không thể tạo khóa %s trên %s (%s)\n"
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
-msgstr "đang đợi %s khoá %s\n"
+msgstr "đang đợi %s khóa %s\n"
#: lib/rpmplugins.c:65
#, c-format
@@ -2720,9 +2896,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "Gặp lỗi khi phân giải ký hiệu %s: %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "Phần bổ xung %s chưa được tải\n"
+msgstr "Chưa cấu hình phần bổ xung %%__%s_%s\n"
#: lib/rpmplugins.c:199
#, c-format
@@ -2751,7 +2927,7 @@ msgstr "gói %s đã được cài đặt"
#: lib/rpmprob.c:125
#, c-format
msgid "path %s in package %s is not relocatable"
-msgstr "không thể định vị lại đường dẫn %s trong gói %s"
+msgstr "không thể tái định vị đường dẫn %s trong gói %s"
#: lib/rpmprob.c:130
#, c-format
@@ -2862,60 +3038,79 @@ msgstr "thiếu kiến trúc cho %s tại %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "tùy chọn sai “%s” tại %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "Gặp lỗi khi đọc véc tơ bổ trợ, /proc đã gắn chưa?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "Không hiểu hệ thống: %s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "Hãy liên lạc %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "Không thể mở %s để đọc: %m.\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "Không thể phục hồi thư mục hiện tại: %m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "chưa hỗ trợ <lua> scriptlet dựng sẵn\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "Không thể tạo tập tin tạm cho %s: %s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr "Không thể nhân bản bộ mô tả tập tin: %s: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "Không thể đọc biểu tượng %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "Không thể phục hồi thư mục gốc: %m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite bị lỗi: %s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s scriptlet gặp lỗi, waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s scriptlet gặp lỗi, tín hiệu %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s scriptlet gặp lỗi, trạng thái thoát %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "Không hiểu định dạng"
@@ -2927,131 +3122,146 @@ msgstr "cài đặt"
msgid "erase"
msgstr "tẩy"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "không thể mở cơ sở dữ liệu Gói trong %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "thừa “(” trong nhãn gói: %s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "thiếu “(” trong nhãn gói: %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "thiếu “)” trong nhãn gói: %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
-msgstr "%s: gặp lỗi khi đọc khoá công khai.\n"
+msgstr "%s: gặp lỗi khi đọc khóa công khai.\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "giao dịch"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(không phải chữ ký OpenPGP)"
+
+#: lib/signature.c:160
+#, c-format
msgid "sigh size(%d): BAD, read returned %d"
-msgstr "kích cỡ sigh (%d): SAI, hàm đọc đã trả về %d\n"
+msgstr "kích cỡ sigh (%d): SAI, hàm đọc đã trả về %d"
-#: lib/signature.c:79
-#, fuzzy
+#: lib/signature.c:165
msgid "sigh magic: BAD"
-msgstr "ma thuật sigh: SAI\n"
+msgstr "ma thuật sigh: SAI"
-#: lib/signature.c:85
-#, fuzzy, c-format
+#: lib/signature.c:171
+#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
-msgstr "thẻ sigh: SAI, tổng số thẻ (%d) ở ngoài phạm vi\n"
+msgstr "thẻ sigh: SAI, tổng số thẻ (%d) ở ngoài phạm vi"
-#: lib/signature.c:91
-#, fuzzy, c-format
+#: lib/signature.c:177
+#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
-msgstr "dữ liệu sigh: SAI, tổng số byte (%d) ở ngoài phạm vi\n"
+msgstr "dữ liệu sigh: SAI, tổng số byte (%d) ở ngoài phạm vi"
-#: lib/signature.c:106
-#, fuzzy, c-format
+#: lib/signature.c:192
+#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
-msgstr "sigh blob(%d): SAI, hàm đọc đã trả về %d\n"
+msgstr "sigh blob(%d): SAI, hàm đọc đã trả về %d"
-#: lib/signature.c:123
-#, fuzzy, c-format
+#: lib/signature.c:209
+#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
-msgstr "thẻ sigh [%d]: SAI, thẻ %d kiểu %d bù %d số lượng %d\n"
+msgstr "thẻ sigh [%d]: SAI, thẻ %d kiểu %d bù %d số lượng %d"
-#: lib/signature.c:133
-#, fuzzy
+#: lib/signature.c:219
msgid "sigh load: BAD"
-msgstr "phần tải sigh: SAI\n"
+msgstr "phần tải sigh: SAI"
-#: lib/signature.c:147
-#, fuzzy, c-format
+#: lib/signature.c:233
+#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
-msgstr "đệm sigh(%zd): SAI, đọc %zd byte\n"
+msgstr "đệm sigh(%zd): SAI, đọc %zd byte"
-#: lib/signature.c:163
-#, fuzzy, c-format
+#: lib/signature.c:249
+#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
-msgstr "sigh sigSize(%zd): SAI, hàm fstat(2) gặp lỗi\n"
+msgstr "sigh sigSize(%zd): SAI, hàm fstat(2) gặp lỗi"
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "Không thể nạp lại phần đầu chữ ký.\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "Phần đầu"
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "Mã băm MD5:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "Mã băm SHA1 phần đầu:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "Phần đầu"
-
-#: lib/signature.c:357
-#, fuzzy, c-format
+#: lib/signature.c:486
+#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
-msgstr "Xác minh chữ ký: CÁC ĐỐI SỐ SAI (%d %p %d %p %p)\n"
+msgstr "Xác minh chữ ký: CÁC ĐỐI SỐ SAI (%d %p %d %p %p)"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "bị bỏ qua"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "gặp lỗi"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
-msgstr ""
+msgstr "Trùng tài khoản hoặc mã số người dùng cho tài khoản %s\n"
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
-msgstr ""
+msgstr "Trùng tên nhóm hoặc mã số nhóm cho nhóm %s\n"
-#: lib/verify.c:371
-#, fuzzy
+#: lib/verify.c:377
msgid "no state"
-msgstr "(không có tình trạng)"
+msgstr "không có tình trạng"
-#: lib/verify.c:373
-#, fuzzy
+#: lib/verify.c:379
msgid "unknown state"
-msgstr "thẻ không rõ"
+msgstr "trạng thái không rõ"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "thiếu %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "Quan hệ phụ thuộc chưa thỏa đối với %s:\n"
@@ -3123,223 +3333,224 @@ msgstr "đồ lặp lại mảng được sử dụng với các mảng có kíc
#: lib/rpmdb.c:71
#, c-format
msgid "Generating %d missing index(es), please wait...\n"
-msgstr "Đang tạo %d thiếu mục lục, vui lòng chờ...\n"
+msgstr "Đang tạo %d thiếu mục lục, vui lòng chờ…\n"
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
-#, fuzzy, c-format
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
+#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
-msgstr "không thể mở bảng mục lục %s dùng db%d - %s (%d)\n"
+msgstr "không thể mở bảng mục lục %s dùng %s - %s (%d)\n"
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "chưa đặt đường dẫn cơ sở dữ liệu (dbpath)\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader: bỏ qua"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "gặp lỗi (%d) khi lưu bản ghi #%d vào %s\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec (thực hiện biểu thức chính quy) bị lỗi: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp bị lỗi: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator: bỏ qua"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb: nhận được phần đầu bị hỏng #%u -- bỏ qua.\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s: không thể đọc phần đầu ở 0x%x\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "chưa đặt đường dẫn cơ sở dữ liệu (dbpath)"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "gặp lỗi khi tạo thư mục %s: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "phần đầu #%u trong cơ sở dữ liệu là sai -- bỏ qua.\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "không thể thêm bản ghi nguyên gốc tại %u\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr ""
"gặp lỗi khi xây dựng lại cơ sở dữ liệu: cơ sỏ dữ liệu nguyên gốc được giữ "
"lại để thay thế\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "gặp lỗi khi thay thế cơ sở dữ liệu cũ bằng cái mới!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "thay thế các tập tin trong %s bằng các tập tin từ %s để phục hồi"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "gặp lỗi khi xóa thư mục %s: %s\n"
-#: lib/backend/db3.c:36
-#, fuzzy, c-format
+#: lib/backend/db3.c:96
+#, c-format
msgid "%s error(%d) from %s: %s\n"
-msgstr "db%d lỗi(%d) từ %s: %s\n"
+msgstr "%s lỗi(%d) từ %s: %s\n"
-#: lib/backend/db3.c:39
-#, fuzzy, c-format
+#: lib/backend/db3.c:99
+#, c-format
msgid "%s error(%d): %s\n"
-msgstr "db%d lỗi(%d): %s\n"
+msgstr "%s lỗi(%d): %s\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "không nhận ra tùy chọn cơ sở dữ liệu “%s” nên bỏ qua.\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s có giá trị thuộc số không hợp lệ nên bỏ qua\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s có giá trị dài quá lớn hoặc quá nhỏ nên bỏ qua\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s có giá trị nguyên quá lớn hoặc quá nhỏ nên bỏ qua\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
-msgstr "không thể lấy khoá %s ở %s/%s\n"
+msgstr "không thể lấy khóa %s ở %s/%s\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "chung"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "độc quyền"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "kiểu bảng mục mục không hợp lệ %x trên %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr "gặp lỗi (%d) khi lấy bản ghi \"%s\" từ chỉ mục %s: %s\n"
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "gặp lỗi (%d) khi ghi bản ghi %s vào %s\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "Gặp lỗi (%d) khi gỡ bỏ bản ghi “%s” ra khỏi %s\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr "lỗi (%d) khi thêm bản ghi phần đầu #%d\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr "lỗi (%d) khi gỡ bỏ bản ghi phần đầu #%d\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "lỗi (%d) phân bỏ minh dụ gói mới\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "không nhận ra tùy chọn cơ sở dữ liệu “%s” nên bỏ qua.\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s có giá trị thuộc số không hợp lệ nên bỏ qua\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s có giá trị dài quá lớn hoặc quá nhỏ nên bỏ qua\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s có giá trị nguyên quá lớn hoặc quá nhỏ nên bỏ qua\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s (trống)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s (trống)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "Vĩ lệnh %%%s có tùy chọn chưa chấm dứt\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "Vĩ lệnh %%%s có thân chưa chấm dứt\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "Vĩ lệnh %%%s có tên không hợp lệ (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "Vĩ lệnh %%%s có thân rỗng\n"
-#: rpmio/macro.c:573
-#, fuzzy, c-format
+#: rpmio/macro.c:574
+#, c-format
msgid "Macro %%%s needs whitespace before body\n"
-msgstr "Vĩ lệnh %%%s có thân rỗng\n"
+msgstr "Vĩ lệnh %%%s cần có dấu cách trước phần thân\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "Vĩ lệnh %%%s không mở rộng được\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "Vĩ lệnh %%%s có tên không hợp lệ (%%undefine)\n"
-#: rpmio/macro.c:645
-#, fuzzy, c-format
+#: rpmio/macro.c:647
+#, c-format
msgid "Macro %%%s defined but not used within scope\n"
-msgstr "Vĩ lệnh %%%s không mở rộng được\n"
+msgstr ""
+"Vĩ lệnh %%%s được định nghĩa nhưng lại không được dùng trong phạm vi của nó\n"
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "Không hiểu tùy chọn %c trong %s(%s)\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
@@ -3347,22 +3558,22 @@ msgstr ""
"Quá nhiều mức đệ quy trong khai triển vĩ lệnh. Nó giống như là có nguyên "
"nhân bởi khai báo vĩ lệnh đệ quy.\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "%c chưa chấm dứt: %s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "Một dấu %% đi trước một vĩ lệnh không thể phân tích được\n"
-#: rpmio/macro.c:1101
-#, fuzzy, c-format
+#: rpmio/macro.c:1106
+#, c-format
msgid "failed to load macro file %s"
-msgstr "Gặp lỗi khi đọc tập tin chính sách: %s\n"
+msgstr "gặp lỗi khi tải tập tin vĩ lệnh %s"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== hoạt động %d trống %d\n"
@@ -3382,31 +3593,31 @@ msgstr "Tập tin %s: %s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "Tập tin %s nhỏ hơn %u byte\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "gặp lỗi khi tạo thư mục"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "có lỗi cú pháp trong lua scriptlet: %s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "cú pháp không hợp lệ trong văn lệnh lua: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "gặp lỗi khi thực thi văn lệnh lua: %s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "cú pháp không hợp lệ trong tập tin Lua: %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "Lỗi kích hoạt khả năng Lua: %s\n"
@@ -3415,19 +3626,19 @@ msgstr "Lỗi kích hoạt khả năng Lua: %s\n"
msgid "[none]"
msgstr "[không có]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(không có lỗi)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "lỗi nghiêm trọng:"
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "lỗi: "
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "cảnh báo: "
@@ -3436,101 +3647,159 @@ msgstr "cảnh báo: "
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "cấp phát bộ nhớ (%u byte) trở về VÔ GIÁ TRỊ.\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, Mã số khóa %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(không có)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "gặp lỗi khi đang tạo tập tin tạm thời %s: %m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "gặp lỗi khi đang tạo tập tin tạm thời %s: %m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "gặp lỗi khi đang tạo tập tin tạm thời %s: %m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "gặp lỗi khi tạo thư mục %s: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite bị lỗi: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush bị lỗi: %s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "Không hỗ trợ ký bằng GPG\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "Không hỗ trợ thuật toán băm PGP %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "Không hỗ trợ thuật toán khóa công PGP %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "Không thể tạo ống dẫn để ký: %m"
+msgid "Could not exec %s: %s\n"
+msgstr "Không thể thực hiện %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
-msgstr "%s: lỗi mở: %s\n"
+msgid "Fopen failed\n"
+msgstr "fdopen bị lỗi\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "Không thể mở tập tin %s: %s\n"
+msgstr "Không thể ghi ra đường ống\n"
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "Không thể mở tập tin %%files %s: %m\n"
+msgstr "Không thể đọc từ tập tin %s: %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "lỗi thực hiện gpg (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "gpg không ghi được chữ ký\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "không thể đọc chữ ký\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s: gặp lỗi khi rpmWriteSignature: %s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s: rpmReadSignature gặp lỗi: %s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s: gặp lỗi khi headerRead: %s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "gặp lỗi khi rpmMkTemp\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "fdopen bị lỗi\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s: gặp lỗi khi headerRead: %s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s đã sẵn chứa chữ ký định danh nên bỏ qua\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s: rpmReadSignature gặp lỗi: %s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "Không thể ký gói RPM v3\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s đã sẵn chứa chữ ký định danh nên bỏ qua\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s: gặp lỗi khi rpmWriteSignature: %s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "gặp lỗi khi rpmMkTemp\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s: Gặp lỗi khi writeLead: %s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "gặp lỗi khi thay thế %s: %s\n"
@@ -3544,117 +3813,29 @@ msgstr "%s: gặp lỗi khi đọc manifest: %s\n"
msgid "don't verify header+payload signature"
msgstr "không nên thẩm tra chữ ký phần_đầu+trọng_tải"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "Không thể ghi trọng tải vào %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "Không thể đọc trọng tải từ %s: %s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "Không thể mở tập tin tạm thời.\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "Không thể mở sigtarget (đích chữ ký) %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "Không thể đọc được phần đầu từ %s: %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "Không thể ghi phần đầu thành %s: %s\n"
-
-#~ msgid "line %d: Second description\n"
-#~ msgstr "dòng %d: Phần mô tả thứ hai\n"
-
-#~ msgid "skipping %s %s with unverifiable signature\n"
-#~ msgstr "đang bỏ qua %s %s với chữ ký không thể thầm tra được\n"
-
-#~ msgid "%s: No signature available\n"
-#~ msgstr "%s: Không có sẵn chữ ký\n"
-
-#~ msgid "%s: headerRead failed: %s"
-#~ msgstr "%s: headerRead gặp lỗi: %s"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "không thực hiện bất kỳ hành động thu thập nào"
-
-#~ msgid "%s failed: %s\n"
-#~ msgstr "%s bị lỗi: %s\n"
-
-#~ msgid "Failed to expand %%__%s_%s macro\n"
-#~ msgstr "Gặp lỗi khi mở rộng vĩ lệnh %%__%s_%s\n"
-
-#~ msgid "Failed to resolve %s plugin symbol %s: %s\n"
-#~ msgstr "Gặp lỗi khi phân giải phần bổ xung %s ký hiệu %s: %s\n"
-
-#~ msgid "Immutable header region could not be read. Corrupted package?\n"
-#~ msgstr "Không thể đọc được vùng phần đầu không thay đổi. Gói hỏng?\n"
-
-#~ msgid "error(%d:%s) getting next key from %s index\n"
-#~ msgstr "lỗi(%d:%s) đang lấy khóa kế từ mục lục %s\n"
-
-#~ msgid "error(%d) setting \"%s\" records from %s index\n"
-#~ msgstr "gặp lỗi (%d) khi đặt bản ghi \"%s\" từ chỉ mục %s\n"
-
-#~ msgid "error(%d) getting \"%s\" records from %s index\n"
-#~ msgstr "gặp lỗi (%d) khi lấy bản ghi “%s” từ bảng mục lục %s\n"
-
-#~ msgid "error(%d) storing record %s into %s\n"
-#~ msgstr "gặp lỗi (%d) khi lưu bản ghi %s vào %s\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "Gặp lỗi khi giải mã chính sách cho %s\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "Gặp lỗi khi tạo tạo tập tin tạm cho %s: %s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "Gặp lỗi khi ghi chính sách %s vào tập tin %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "Gặp lỗi khi tạo bộ tiếp hợp xử lý semanage\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "Gặp lỗi khi kết nối đến bộ tiếp hợp xử lý chính sách\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "Gặp lỗi khi bắt đầu giao dịch chính sách: %s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "Gặp lỗi khi gỡ bỏ tập tin chính sách tạm thời %s: %s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "Gặp lỗi khi cài đặt mô-đun chính sách: %s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "Gặp lỗi khi gỡ bỏ mô-đun chính sách: %s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "Gặp lỗi khi rẽ nhánh tiến trình: %s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "Gặp lỗi khi thực thi %s: %s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "Việc chuyển đổi %s sang số nguyên dài gặp lỗi.\n"
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s đã chấm dứt bất thường\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "Gõ cụm từ mật khẩu: "
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s gặp lỗi với mã thoát là %i\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "Cụm từ mật khẩu đúng.\n"
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "Gặp lỗi khi chuyển giao các thay đổi chính sách\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr "Gặp lỗi khi phân tích cú pháp hay khóa gpg đã hết hạn\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "Gặp lỗi khi khai triển đường dẫn “restorecon”"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "Chủ/nhóm sai: %s\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr ""
-#~ "Gặp lỗi đánh nhãn lại hệ thống tập tin. Tập tin có lẽ đã thiếu nhãn\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "dòng %d: Ký tự không hợp lệ trong: %s\n"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr "Gặp lỗi khi tải lại nội dung tập tin. Tập tin có lẽ đã thiếu nhãn\n"
+#~ msgid "%s has unverifiable signature"
+#~ msgstr "%s có chữ ký không thể xác minh tra được"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "Gặp lỗi khi rút trích chính sách từ %s\n"
+#~ msgid "Fread failed: %s"
+#~ msgstr "Fread bị lỗi: %s"
-#~ msgid "Macro %%%s (%s) was not used below level %d\n"
-#~ msgstr "Vĩ lệnh %%%s (%s) không sử dụng được dưới mức %d\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "Không thể tạo ống dẫn để ký: %m"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 90c355c0..577d83df 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 8cd993c6..a395cea4 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -4,20 +4,25 @@
#
# Translators:
# Christopher Meng <cickumqt@gmail.com>, 2012-2013
+# dongfengweixia88616b04c28344fa <dongfengweixiao@gmail.com>, 2012
# dongfengweixiao <dongfengweixiao@gmail.com>, 2013-2014
# dongfengweixiao <dongfengweixiao@gmail.com>, 2012
# Tommy He <lovenemesis@gmail.com>, 2012
# Mike Manilone <zhtx10@gmail.com>, 2011
+# Ma Kai <crtmike@gmail.com>, 2011
+# qingxianhao <qinghao1@foxmail.com>, 2012
# qingxianhao <qinghao1@foxmail.com>, 2012
# Tiansworld <tiansworld@fedoraproject.org>, 2013
+# Tommy He <lovenemesis@gmail.com>, 2012
+# 白铭骢 <jeffbaichina@members.fsf.org>, 2015
msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-10 01:15+0000\n"
-"Last-Translator: dongfengweixiao <dongfengweixiao@gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/rpm/"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2015-08-23 16:38+0000\n"
+"Last-Translator: 白铭骢 <jeffbaichina@members.fsf.org>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/rpm-team/rpm/"
"language/zh_CN/)\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
@@ -87,8 +92,8 @@ msgstr "验证选项(用 -V 或 --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "安装/升级/擦除选项:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "所有 rpm 模式和可执行文件的通用选项:"
@@ -108,7 +113,7 @@ msgstr "意外的查询格式"
msgid "unexpected query source"
msgstr "意外的查询源"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "仅能指定一个主模式"
@@ -208,7 +213,7 @@ msgstr "--nodeps 只能在软件包安装、擦除和检验时指定"
msgid "--test may only be specified during package installation and erasure"
msgstr "--test 只能在软件包安装和擦除时指定"
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "--root (-r) 的参数必须以 / 开头"
@@ -228,201 +233,248 @@ msgstr "未给出要查询的参数"
msgid "no arguments given for verify"
msgstr "未给出要检验的参数"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot 已经指定,忽略 %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr "依据 <specfile> 从 %prep (解压缩源代码并应用补丁) 开始构建"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "依据 <specfile> 从 %build (%prep 之后编译) 开始构建"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "依据 <specfile> 从 %install (%prep、%build 后安装) 开始构建"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "依据 <specfile> 检验 %files 区域"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "依据 <specfile> 构建源代码和二进制软件包"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "依据 <specfile> 构建二进制软件包"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "依据 <specfile> 构建源代码软件包"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr "依据 <specfile> 从 %prep (解压缩源代码并应用补丁) 开始构建"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<source package>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "依据 <specfile> 从 %build (%prep 之后编译) 开始构建"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr "依据 <source package> 从 %install (%prep、%build 然后安装)开始构建"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "依据 <specfile> 检验 %files 区域"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "依据 <source package> 构建二进制软件包"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "依据 <source package> 构建二进制软件包"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "依据 <specfile> 构建源代码软件包"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr "依据 <tarball> 从 %prep (解压源代码并应用补丁)开始构建"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "依据 <tarball> 从 %build (%prep,之后编译)开始构建"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "依据 <tarball> 从 %install (%prep、%build 然后安装)开始构建"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "依据 <tarball> 检验 %files 区域"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "依据 <tarball> 构建源代码和二进制软件包"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "依据 <tarball> 构建二进制软件包"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "依据 <tarball> 构建源代码软件包"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "依据 <source package> 构建二进制软件包"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<source package>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr "依据 <source package> 从 %install (%prep、%build 然后安装)开始构建"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "重载构建根路径"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "无法打开当前目录:%m\n"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "完成后移除构建树"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "忽略 spec 文件中的 ExcludeArch 规则"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "除错文件状态机"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "不执行任何构建步骤 "
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "不检验构建依赖"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr "生成和 rpm v3 包管理(旧版本)兼容的软件包头"
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr "构建过程中不执行 %clean 步骤"
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "构建过程中不执行 %clean 步骤"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr "构建过程中不执行 %check 步骤"
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "不接受来自 specfile 的 i18N 字符串信息"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "完成时移除源代码"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "完成时移除 specfile"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "直接跳转到指定步骤 (仅限 c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "重载目标平台"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "适用于 [ <specfile> | <tarball> | <source package> ] 的构建选项:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "构建依赖失败:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "无法打开 spec 文件 %s: %s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "打开 tar 管道失败: %m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "一行中有多个文件: %s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "从 %s 读取 spec 文件失败\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "重命名 %s 为 %s 时失败:%m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "stat %s 失败:%m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "文件 %s 不是常规文件。\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "文件 %s 不像是 spec 文件。\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "构建目标平台:%s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "为目标%s构建\n"
@@ -441,11 +493,11 @@ msgstr "校验数据库文件"
#: rpmdb.c:32
msgid "export database to stdout header list"
-msgstr ""
+msgstr "将数据库导出到标准输出头列表"
#: rpmdb.c:35
msgid "import database from stdin header list"
-msgstr ""
+msgstr "从标准输入头列表导入数据库"
#: rpmdb.c:42
msgid "Database options:"
@@ -471,49 +523,64 @@ msgstr "列出RPM密钥环中的密钥"
msgid "Keyring options:"
msgstr "密钥环选项:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "没有指定参数"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "签名包"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "签名包(同--addsign)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "删除软件包签名"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "签名包"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "签名选项:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "无法exec %s: %s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "你必须在你的宏文件中设置 \"%%_gpg_name\" \n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "输入密码:"
-
-#: rpmsign.c:127
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "密码正确。\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
+msgstr ""
-#: rpmsign.c:133
-#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
-msgstr "密码检查失败或者 gpg 密钥过期\n"
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix 只能在安装新软件包时使用"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches 只能在软件包擦除时指定"
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
@@ -531,7 +598,7 @@ msgstr "操纵 spec 生成的二进制 rpm 包(缺省值)"
msgid "operate on source rpm generated by spec"
msgstr "操纵 spec 生成的源 rpm 包"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "使用这种格式打印信息"
@@ -632,201 +699,201 @@ msgstr "&& 和 || 不支持字符串\n"
msgid "syntax error in expression\n"
msgstr "表达式语法错误\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "%s %s 中丢失 '(' \n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "%s(%s 中丢失 ')'\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "无效的 %s 令牌:%s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "%2$s %3$s 中丢失 %1$s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "%s() 后有非空白字符:%s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "语法错误:%s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "spec 文件权限不好:%s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "spec 目录权限不好:%s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr "异常的 locale 长度:\"%s\" 在%%lang(%s) 中\n"
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr "重复的 locale %s 在%%lang(%s) 中\n"
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "无效的 capability:%s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "无内建文件capability 支持\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "文件必须以 \"/\" 开头: %s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr "未知的文件摘要算法 %u, 回退到MD5\n"
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "被列出两次的文件:%s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr "读取符号连接 %s 失败:%s\n"
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "符号链接指向了 BuildRoot:%s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
-msgstr ""
+msgstr "路径在 buildroot 之外: %s\n"
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr "没有找到目录:%s\n"
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "没有找到文件:%s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
-msgstr ""
+msgstr "此路径不是一个目录: %s\n"
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s: 无法加载未知标签(%d)。\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s: 公钥读取失败。\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s: 不是带装甲的(armored)公钥。\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s:编码失败\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "文件需要 \"/\" 开头:%s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr "%%dev glob 不被允许:%s\n"
-#: build/files.c:1565
-#, c-format
-msgid "Directory not found by glob: %s\n"
+#: build/files.c:1614
+#, fuzzy, c-format
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr "目录未找到,所用 glob: %s\n"
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "文件未找到,所用 glob: %s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "无法打开 %%files 文件 %s: %m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "行:%s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
-msgstr ""
+msgstr "空 %%file 文件 %s\n"
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr "读取 %%files 文件 %s 失败:%m\n"
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr "illegal _docdir_fmt %s: %s\n"
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "文件未找到,所用 glob: %s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr "一行中有多个文件: %s\n"
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "坏文件:%s: %s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "坏的属主/群组:%s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "检查未打包文件:%s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -835,17 +902,17 @@ msgstr ""
"发现已安装(但未打包的)文件:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "处理文件:%s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr "二进制架构 (%d) 和软件包构架 (%d)不匹配。\n"
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "noarch 软件包中有架构相关的二进制文件\n"
@@ -864,89 +931,90 @@ msgstr "创建归档失败: %s\n"
msgid "Could not open %s file: %s\n"
msgstr "不能打开文件 %s:%s\n"
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: 行: %s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "无法正规化主机名:%s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "无法重载签名头。\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr "未知的净负荷压缩:%s\n"
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "无法创建不可改变的头区。\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "无法打开%s: %s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "无法写入软件包:%s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "无法写入临时头\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "不合法的CSA数据\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "不能打开文件 %s:%s\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "对此文件创建归档失败 %s:%s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "已写至:%s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "正在执行 \"%s\":\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr " \"%s\" 执行失败。\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "软件包检查 \"%s\" 失败。\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "无法为软件包 %s 生成输出文件名: %s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "无法创建 %s: %s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "行 %d:第二个 %s\n"
@@ -989,7 +1057,7 @@ msgstr "%%changelog 中没有描述\n"
#: build/parseChangelog.c:237
#, c-format
msgid "line %d: second %%changelog\n"
-msgstr ""
+msgstr "行 %d: 第二个 %%changelog\n"
#: build/parseDescription.c:32
#, c-format
@@ -997,19 +1065,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "行 %d:解析 %%description 时发生错误:%s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "行 %d:错误的选项 %s:%s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "列 %d:过多的名称:%s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "行 %d:套件不存在:%s\n"
@@ -1022,7 +1090,7 @@ msgstr "行 %d:解析 %%files 时发生错误:%s\n"
#: build/parseFiles.c:76
#, c-format
msgid "line %d: second %%files\n"
-msgstr ""
+msgstr "行 %d: 第二个 %%files\n"
#: build/parsePolicies.c:32
#, c-format
@@ -1064,142 +1132,147 @@ msgstr "下载 %s 到 %s 中\n"
msgid "Couldn't download %s\n"
msgstr "无法下载 %s\n"
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "系统结构被排除了: %s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "不包含体系统结构:%s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "被排除的操作系統:%s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "操作系统未包含:%s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s 字段必须在软件包中存在:%s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "%s 條目在软件包中重复:%s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "无法打开图标 %s:%s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "无法读取图标 %s: %s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "未知的图标格式:%s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "行 %d:标签只需要一个令牌: %s\n"
-#: build/parsePreamble.c:616
-#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
+#: build/parsePreamble.c:621
+#, fuzzy, c-format
+msgid "Illegal char '%c' (0x%x)"
msgstr "行 %d:非法的字符 '%c' 在: %s 中\n"
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
-msgstr "行 %d:非法的字符在: %s 中\n"
-
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+#, fuzzy
+msgid "Illegal sequence \"..\""
msgstr "行 %d:非法序列 \"..\" in: %s\n"
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "行 %d: %s: %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: 行: %s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "行 %d:有缺陷的标签:%s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "行 %d:空的标签:%s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "行 %d:前缀不能以 “/” 结尾:%s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "行 %d:Docdir 必须以 “/\" 開頭:%s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr "行 %d::Epoch field 必须是无符号数:%s\n"
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "行 %d:错误的 %s:限定符:%s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "行 %d:错误的 BuildArchitecture 格式:%s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr "行 %d:只能支持noarch的子包:%s\n"
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "内部错误:虚假标签 %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr "行 %d: %s 不建议使用:%s\n"
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "有问题的软件包规范:%s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "软件包已存在:%s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "行 %d:未知标签:%s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr "%%{buildroot} 不能为空\n"
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr "%%{buildroot} 不能为 \"/\"\n"
@@ -1209,161 +1282,193 @@ msgstr "%%{buildroot} 不能为 \"/\"\n"
msgid "Bad source: %s: %s\n"
msgstr "问题来源: %s: %s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "没有 %u 补丁\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr "%%补丁 没有对应的 \"Patch:\" 标记\n"
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "没有 %u 源码\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "spec文件内不存在 \"Source:\" 标签\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "解析 %%setup 时发生错误:%s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "行 %d:%%setup 中存在坏的参数:%s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "行 %d:错误的 %%setup 选项 %s: %s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "无效的补丁编号 %s:%s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "行 %d:第二个 %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr "不允许的版本控制命名"
-#: build/parseReqs.c:172
-msgid "Version required"
-msgstr "版本要求"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
+msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr "无效的依赖"
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr "版本要求"
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr "行 %d: %s: %s\n"
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "列 %d:触发器必须包含有 --:%s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "列 %d:解析 %s 时发生错误:%s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "行 %d:内部脚本必須以 “>” 結尾:%s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "行 %d:脚本程序必须以 “/” 开头:%s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "列 %d:第二个 %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "行 %d:不支持的内部脚本:%s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "行 %d: %s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "不能打开 %s:%s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr "行 %d: Unclosed %%if\n"
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d:有一个 %%else 没有对应的 %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d:有一个 %%endif 没有对应的 %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "没有找到可供构建的兼容构架\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "软件包没有 %%description:%s\n"
@@ -1434,287 +1539,276 @@ msgstr "此行存在过多参数:%s\n"
msgid "Processing policies: %s\n"
msgstr "处理策略:%s\n"
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr "忽略无效的正则表达式 %s\n"
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "无法为 %s建立管道: %m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "无法执行%s:%s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "无法抽取分支 %s:%s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s 失败:%x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "无法写入所有的数据到 %s:%s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr "错误的操作"
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr "错误的格式"
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "%s 转换到长整型失败。\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr "空文件分类\n"
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "没有配置文件属性\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) 失败:%s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load 失败:%s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "文件 \"%s\" 辨识失败: 模式 %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "正在查找 %s:%s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "查找 %s 失败:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "查询 spec 文件 %s 失败,无法解析\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr "%s 是一个 Delta RPM 并且无法直接被安装。\n"
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "软件包 %s 已被加入,跳过 %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "软件包 %s 已被加入,以 %s 替换\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(不是数字)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%a %b %d %Y"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(非base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(无效类型)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(非blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(无效的xml 类型)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(不是OpenPGP 签名)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr "无效日期%u"
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "正常"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "已被替换"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "未安装"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "网络共享"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "错误颜色"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "丢失"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(未知)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(不是字符串)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s 已另存为 %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s 已建立为 %s \n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr "%s %s: 移除失败: %s\n"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr "目录"
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr "文件"
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr "Fread 失败: %s"
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1934,7 +2028,7 @@ msgstr "更新数据库,但不修改文件系统"
msgid "do not verify package dependencies"
msgstr "不验证软件包依赖"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "不验证文件摘要"
@@ -2054,162 +2148,182 @@ msgstr "升级软件包"
msgid "reinstall package(s)"
msgstr "重新安装软件包"
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "查询/验证所有软件包"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "rpm 检查签名模式"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "查询/验证文件属于的软件包"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "查询/验证组中的软件包"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "查询/验证一个软件包"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr ""
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr ""
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm 查询模式"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "查询/验证头的实例"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr ""
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr ""
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm 校验模式"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr ""
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "查询/验证提供相关依赖的软件包"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "查询/验证提供相关依赖的软件包"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "查询/验证提供相关依赖的软件包"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "查询/验证提供相关依赖的软件包"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "查询/验证提供相关依赖的软件包"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "不使用 glob 参数"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "不把非软件包文件作为清单处理"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "列出所有配置文件"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "列出所有程序文档"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr "列出所有许可证文件"
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "转储基本文件信息"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "列出软件包中的文件"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "跳过%%ghost 文件"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "显示列出文件的状态"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "不验证文件大小"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "不验证符号连接路径"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "不验证文件所有者"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "不验证文件组信息"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "不验证文件修改时间"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "不验证文件模式"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr "不验证文件兼容性"
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "不验证文件安全上下文"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "不验证软件包中文件"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "不验证包依赖"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "不执行验证脚本"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr " %s 缺失rpmlib的特性\n"
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "期望源代码包,但找到二进制包\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "源代码包中没有找到 .spec 文件\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "解压压缩文件 %s%s 失败:%s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " 在文件"
@@ -2284,96 +2398,116 @@ msgstr "没有软件包和 %s 匹配:%s\n"
msgid "no package requires %s\n"
msgstr "没有软件包需要 %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "没有软件包需要 %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "没有软件包触发器 %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "没有软件包需要 %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "没有软件包需要 %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "没有软件包提供 %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "文件 %s:%s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "文件 %s 不属于任何软件包\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "无效的软件包编号:%s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr "记录 %u 不能读取\n"
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "未安装软件包 %s \n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "未知标签:\"%s\"\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr "%s: 密钥 %d 导入失败。\n"
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr "%s:公钥 %d 不受到保护。\n"
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr ""
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr "%s:headerRead 函数执行失败:%s\n"
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s:Fread 函数执行失败:%s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "不正确"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "确定"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (丢失的密钥:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (不受信任的密钥:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s: 打开失败:%s\n"
@@ -2398,144 +2532,195 @@ msgstr "无法更改根目录: %m\n"
msgid "Unable to restore root directory: %m\n"
msgstr "无法恢复根目录:%m\n"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "否"
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "是"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr ""
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr ""
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "软件包净负荷可以使用 bzip2 压缩。"
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr "软件包净负荷可以使用 xz 压缩。"
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr "软件包净负荷可以使用 lzma 压缩。"
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "软件包净负荷有\"./\" 前缀。"
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "软件包 name-version-release 没有隐含地提供。"
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "头标签总是排序后被加载。"
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr ""
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "硬链接文件集没有被完整的安装。"
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "软件包脚本在安装过程中允许访问 rpm 数据库。"
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "lua 脚本的内部支持"
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr "支持超过 4G 的文件"
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "不验证软件包依赖"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+#, fuzzy
+msgid "Name required"
+msgstr "版本要求"
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+#, fuzzy
+msgid "Empty rich dependency"
+msgstr "无效的依赖"
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "未结束的 %c:%s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+#, fuzzy
+msgid "Junk after rich dependency"
+msgstr "无效的依赖"
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "用户%s 不存在 - 使用root\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "群组%s 不存在 - 使用root\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "Bad magic"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "错误/不可读的 头部"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "头部太大"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr "对于压缩文件来说文件太大了"
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "未知文件类型"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr "丢失文件"
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "摘要不匹配"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "内部错误"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "在头中不存在归档"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " 失败 - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
-msgstr ""
+msgstr "%s: (错误 0x%x)"
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "打开 %s 失败: %s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr "%s: 不是 rpm 软件包 (或者没有 manifest 文件)\n"
@@ -2567,42 +2752,42 @@ msgstr "依赖检测失败:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s: 不是 rpm 软件包 (或者没有manifest):%s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "不能安装 %s \n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "获取%s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr "跳过 %s - 传输失败\n"
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "软件包 %s 不能重定位\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "文件 %s 读取错误\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "\"%s\" 指定多个软件包:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "无法打开 %s:%s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "正在安装 %s\n"
@@ -2628,12 +2813,12 @@ msgstr "读取失败:%s (%d)\n"
msgid "not an rpm package\n"
msgstr "不是一个 rpm 软件包\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr "正在等候 %s 锁定 %s\n"
@@ -2649,9 +2834,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr "解析符号 %s 失败 : %s\n"
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "%s 插件未载入\n"
+msgstr "插件 %%__%s_%s 未配置\n"
#: lib/rpmplugins.c:199
#, c-format
@@ -2744,7 +2929,7 @@ msgstr "在 %s:%d 处丢失构架名称\n"
#: lib/rpmrc.c:370
#, c-format
msgid "Incomplete data line at %s:%d\n"
-msgstr ""
+msgstr "不完整的资料行于 %s:%d\n"
#: lib/rpmrc.c:375
#, c-format
@@ -2791,60 +2976,79 @@ msgstr ""
msgid "bad option '%s' at %s:%d\n"
msgstr "坏的选项 “%s” 位于 %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr "读取辅助载体失败, 是 /proc 没有挂载么?\n"
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "未知系统:%s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "请联系 %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "不能打开 %s 供读取:%m。\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr "无法恢复当前目录:%m"
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr "<lua> 脚本支持未内建\n"
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr "无法建立临时文件赖存储%s:%s\n"
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
-msgstr ""
+msgstr "无法复制文件描述: %s: %s\n"
+
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "无法读取图标 %s: %s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "无法恢复根目录:%m\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite 失败: %s\n"
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr "%s 脚本执行失败,waitpid(%d) rc %d: %s\n"
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr "%s 脚本执行失败,捕捉到信号: %d\n"
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr "%s 脚本执行失败,退出状态码为 %d\n"
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "未知格式"
@@ -2856,127 +3060,146 @@ msgstr "安裝"
msgid "erase"
msgstr "删除"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "无法从 %s 打开软件包数据库\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "額外的“(”存在于软件包标签中:%s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "丢失“(”在软件包标签 %s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "丢失“)”在软件包标签 %s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr "读出公钥失败:%s\n"
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "事务"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(不是OpenPGP 签名)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr "sigh 载入: BAD"
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr "sigh sigSize(%zd): BAD, fstat(2) 失败"
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "无法重载签名头。\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "头"
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 摘要:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "头 SHA1 摘要:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "头"
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr "验证签名:错误的参数 (%d %p %d %p %p)"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "已跳过"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "已失败"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
-msgstr ""
+msgstr "用户 %s 存在重复的用户名或 UID\n"
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
-msgstr ""
+msgstr "用户组 %s 存在重复的组名或 GID\n"
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr "没有状态"
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr "未知状态"
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "遗漏 %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr "未满足的依赖关系 %s:\n"
@@ -3007,7 +3230,7 @@ msgstr "未知标签"
#: lib/headerfmt.c:413
msgid "] expected at end of array"
-msgstr ""
+msgstr "] 预期于数组结尾"
#: lib/headerfmt.c:425
msgid "unexpected ]"
@@ -3019,7 +3242,7 @@ msgstr "未预期的 }"
#: lib/headerfmt.c:491
msgid "? expected in expression"
-msgstr ""
+msgstr "? 预期于表达式中"
#: lib/headerfmt.c:498
msgid "{ expected after ? in expression"
@@ -3039,7 +3262,7 @@ msgstr ""
#: lib/headerfmt.c:558
msgid "| expected at end of expression"
-msgstr ""
+msgstr "| 预期于表达式结尾"
#: lib/headerfmt.c:735
msgid "array iterator used with different sized arrays"
@@ -3050,240 +3273,242 @@ msgstr "使用不同大小数组的数组的迭代器"
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "没有设置 dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader:跳过"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr ""
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr "%s: regexec 函数执行失败: %s\n"
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr "%s: regcomp 函数执行失败: %s\n"
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator:跳过"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
-msgstr ""
+msgstr "rpmdb: 获取到损坏表头 #%u -- 跳过此项。\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s:无法读取位于 0x%x 的表头\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "没有设置 dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr "無法建立 %s 目录: %s\n"
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr ""
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "无法加入原本位于 %u 的记录\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "重建数据库失败:原始数据库仍保持原状\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "用新的数据库取代旧的数据库失败!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "用 %2$s 文件取代 %1$s 文件來恢复"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "移除目录失败 %s:%s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr "%s 错误(%d) 源自 %s: %s\n"
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr "%s 错误(%d): %s\n"
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "无法识别的数据库选项:\"%s\" 已忽略。\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s 有无效的数值,忽略\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s 有过大或者是过小的 long 数值,忽略\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s 有过大或者是过小的整数值,忽略\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "无法取得 %s 位于 %s/%s 的锁定\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "已共享"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "排他"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr "无效的索引类型 %x 于 %s/%s\n"
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr ""
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr ""
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
+"添加表头 #%d 记录时出错 (%d)\n"
+"\n"
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
-msgstr ""
+msgstr "移除表头 #%d 记录时出错 (%d)\n"
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
-msgstr ""
-
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "无法识别的数据库选项:\"%s\" 已忽略。\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s 有无效的数值,忽略\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s 有过大或者是过小的 long 数值,忽略\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s 有过大或者是过小的整数值,忽略\n"
+msgstr "在分配新软件包进程时出错 (%d)\n"
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(清空)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(清空)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "宏 %%%s 具有未结束的选项\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "宏 %%%s 主体未结束\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "宏 %%%s 中存在无效的名称 (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "宏 %%%s 中存在空内容\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr "宏 %%%s 在结构之前需要空格\n"
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "宏 %%%s 展开失败\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "宏 %%%s 中存在无效的名称 (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr "宏 %%%s 已经定义但是没有使用\n"
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "在 %2$s(%3$s) 中存在未知的选项 %1$c\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr "宏扩展中存在太多层的递归。这有可能是由宏的递归声明引起的。\n"
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "未结束的 %c:%s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "在一个不可解析的宏之之后跟着 %%\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr "载入宏文件 %s 失败"
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== 作用中 %d 清空 %d\n"
@@ -3303,31 +3528,31 @@ msgstr "文件 %s:%s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "文件 %s 小于 %u 字节\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "创建目录失败"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr "lua 脚本中存在无效的语法:%s\n"
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr "lua 脚本中存在无效的语法: %s\n"
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua 脚本执行失败:%s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "lua文件中存在无效的语法 %s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr "lua hook 执行失败:%s\n"
@@ -3336,19 +3561,19 @@ msgstr "lua hook 执行失败:%s\n"
msgid "[none]"
msgstr "[无]"
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(没有错误)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "致命错误:"
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "错误:"
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "警告:"
@@ -3357,101 +3582,159 @@ msgstr "警告:"
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "内在分配 (%u 字节) 返回 NULL。\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr "V%d %s/%s %s, 密钥 ID %s"
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(无)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "临时文件创建失败 %s:%m\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "临时文件创建失败 %s:%m\n"
+
+#: sign/rpmgensig.c:87
+#, fuzzy, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr "临时文件创建失败 %s:%m\n"
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "無法建立 %s 目录: %s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite 失败: %s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr "%s: Fflush 失败:%s\n"
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr "不支持的 PGP 签名\n"
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr "不支持的 PGP hash 算法 %u\n"
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr "不支持的 PGP 公钥算法 %u\n"
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "无法创建签名用的管道:%m"
+msgid "Could not exec %s: %s\n"
+msgstr "无法exec %s: %s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
-msgstr "%s: 打开失败:%s\n"
+msgid "Fopen failed\n"
+msgstr "fdopen 失败\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "不能打开文件 %s:%s\n"
+msgstr "无法写入到管道\n"
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "无法打开 %%files 文件 %s: %m\n"
+msgstr "无法从文件 %s 读取: %s\n"
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg 执行失败 (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "写入签名时 gpg 验证失败\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "无法读取签名\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s:rpmWriteSignature 失败:%s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s:rpmReadSignature 函数执行失败:%s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "%s:headerRead 函数执行失败:%s\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp 失败\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "fdopen 失败\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "%s:headerRead 函数执行失败:%s\n"
+
+#: sign/rpmgensig.c:651
+#, fuzzy, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr "%s 已经包含了相同的签名,跳过\n"
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s:rpmReadSignature 函数执行失败:%s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr "无法对 RPM v3 版本的软件包签名\n"
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr "%s 已经包含了相同的签名,跳过\n"
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s:rpmWriteSignature 失败:%s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp 失败\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s:writeLead 失败:%s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr "替换 %s 失败:%s\n"
@@ -3465,77 +3748,26 @@ msgstr "%s:读取 manifest 文件失败:%s\n"
msgid "don't verify header+payload signature"
msgstr "不验证报头+净负荷签名"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "无法写入净负荷到 %s: %s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "无法从 %s 读取净负荷:%s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "无法打开临时文件。\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "无法打开签名目标 %s: %s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "无法从 %s 获取头: %s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "无法将头写入 %s: %s\n"
-
-#~ msgid "do not perform any collection actions"
-#~ msgstr "请不要执行任何动作集"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "无法为 %s 解码策略\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "无法为 %s 建立临时文件:%s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "无法写入 %s 策略到文件 %s\n"
-
-#~ msgid "Failed to create semanage handle\n"
-#~ msgstr "无法创建semanage的句柄\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "无法连接到策略处理程序\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "无法开始事务策略:%s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "移除临时策略文件失败 %s:%s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "安装失败的策略模块:%s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "删除失败的策略模块:%s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "无法分支程序:%s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "无法执行 %s:%s\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "%s 转换到长整型失败。\n"
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s 异常终止\n"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "输入密码:"
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s 已失败,退出代码 %i\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "密码正确。\n"
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "无法提交策略变化\n"
+#~ msgid "Pass phrase check failed or gpg key expired\n"
+#~ msgstr "密码检查失败或者 gpg 密钥过期\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "无法扩大 restorecon 路径"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "坏的属主/群组:%s\n"
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr "无法重新标记文件系统。文件可能标签有误\n"
+#~ msgid "line %d: Illegal char in: %s\n"
+#~ msgstr "行 %d:非法的字符在: %s 中\n"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr "无法重载文件环境。文件可能标签有误\n"
+#~ msgid "Fread failed: %s"
+#~ msgstr "Fread 失败: %s"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "无法从 %s 提取策略\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "无法创建签名用的管道:%m"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 40d3aadc..673ddaa0 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 2ee54608..4e4742a8 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -9,10 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: RPM\n"
"Report-Msgid-Bugs-To: rpm-maint@lists.rpm.org\n"
-"POT-Creation-Date: 2016-11-03 10:01+0200\n"
-"PO-Revision-Date: 2014-04-07 10:19+0000\n"
+"POT-Creation-Date: 2016-10-20 15:22+0300\n"
+"PO-Revision-Date: 2014-06-25 10:40+0000\n"
"Last-Translator: pmatilai <pmatilai@laiskiainen.org>\n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/rpm/"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/rpm-team/rpm/"
"language/zh_TW/)\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
@@ -82,8 +82,8 @@ msgstr "校驗選項 (使用 -V 或 --verify):"
msgid "Install/Upgrade/Erase options:"
msgstr "安裝/升級/抹除選項:"
-#: rpmqv.c:64 rpmbuild.c:223 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:37 rpmspec.c:48
-#: tools/rpmdeps.c:32 tools/rpmgraph.c:222
+#: rpmqv.c:64 rpmbuild.c:269 rpmdb.c:44 rpmkeys.c:42 rpmsign.c:49 rpmspec.c:48
+#: tools/rpmdeps.c:44 tools/rpmgraph.c:222
msgid "Common options for all rpm modes and executables:"
msgstr "用於所有 rpm 模式和可執行檔案的共同選項:"
@@ -103,7 +103,7 @@ msgstr "不可預料的查詢格式"
msgid "unexpected query source"
msgstr "不可預料的查詢來源"
-#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:169
+#: rpmqv.c:143 rpmdb.c:126 rpmkeys.c:82 rpmsign.c:141
msgid "only one major mode may be specified"
msgstr "只能指定一個主要工作模式"
@@ -203,7 +203,7 @@ msgstr ""
msgid "--test may only be specified during package installation and erasure"
msgstr ""
-#: rpmqv.c:240 rpmbuild.c:550
+#: rpmqv.c:240 rpmbuild.c:615
msgid "arguments to --root (-r) must begin with a /"
msgstr "--root (-r) 的引數必須以「/」開頭"
@@ -223,201 +223,248 @@ msgstr "沒有給定查詢引數"
msgid "no arguments given for verify"
msgstr "沒有給定校驗引數"
-#: rpmbuild.c:99
+#: rpmbuild.c:115
#, c-format
msgid "buildroot already specified, ignoring %s\n"
msgstr "buildroot 已被指定,忽略 %s\n"
-#: rpmbuild.c:120
+#: rpmbuild.c:140
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
msgstr "從 <specfile> 透過 %prep (解包源碼並套用修補程式) 來建置"
-#: rpmbuild.c:121 rpmbuild.c:124 rpmbuild.c:127 rpmbuild.c:130 rpmbuild.c:133
-#: rpmbuild.c:136 rpmbuild.c:139
+#: rpmbuild.c:141 rpmbuild.c:144 rpmbuild.c:147 rpmbuild.c:150 rpmbuild.c:153
+#: rpmbuild.c:156 rpmbuild.c:159
msgid "<specfile>"
msgstr "<specfile>"
-#: rpmbuild.c:123
+#: rpmbuild.c:143
msgid "build through %build (%prep, then compile) from <specfile>"
msgstr "從 <specfile> 透過 %build (%prep,然後編譯) 來建置"
-#: rpmbuild.c:126
+#: rpmbuild.c:146
msgid "build through %install (%prep, %build, then install) from <specfile>"
msgstr "從 <specfile> 透過 %install (%prep,%build,然後安裝) 來建置"
-#: rpmbuild.c:129
+#: rpmbuild.c:149
#, c-format
msgid "verify %files section from <specfile>"
msgstr "從 <specfile> 驗證 %files 區段"
-#: rpmbuild.c:132
+#: rpmbuild.c:152
msgid "build source and binary packages from <specfile>"
msgstr "根據 <specfile> 建置源碼套件與二進位套件"
-#: rpmbuild.c:135
+#: rpmbuild.c:155
msgid "build binary package only from <specfile>"
msgstr "根據 <specfile> 只建置二進位套件"
-#: rpmbuild.c:138
+#: rpmbuild.c:158
msgid "build source package only from <specfile>"
msgstr "根據 <specfile> 只建置源碼套件"
-#: rpmbuild.c:142
+#: rpmbuild.c:162
+#, fuzzy, c-format
+msgid ""
+"build through %prep (unpack sources and apply patches) from <source package>"
+msgstr "從 <specfile> 透過 %prep (解包源碼並套用修補程式) 來建置"
+
+#: rpmbuild.c:163 rpmbuild.c:166 rpmbuild.c:169 rpmbuild.c:172 rpmbuild.c:175
+#: rpmbuild.c:178 rpmbuild.c:181 rpmbuild.c:207 rpmbuild.c:210
+msgid "<source package>"
+msgstr "<source package>"
+
+#: rpmbuild.c:165
+#, fuzzy
+msgid "build through %build (%prep, then compile) from <source package>"
+msgstr "從 <specfile> 透過 %build (%prep,然後編譯) 來建置"
+
+#: rpmbuild.c:168 rpmbuild.c:209
+msgid ""
+"build through %install (%prep, %build, then install) from <source package>"
+msgstr "從 <source package> 透過 %install (%prep,%build,然後安裝) 來建置"
+
+#: rpmbuild.c:171
+#, fuzzy, c-format
+msgid "verify %files section from <source package>"
+msgstr "從 <specfile> 驗證 %files 區段"
+
+#: rpmbuild.c:174
+#, fuzzy
+msgid "build source and binary packages from <source package>"
+msgstr "從 <source package> 中建置二進位套件"
+
+#: rpmbuild.c:177
+#, fuzzy
+msgid "build binary package only from <source package>"
+msgstr "從 <source package> 中建置二進位套件"
+
+#: rpmbuild.c:180
+#, fuzzy
+msgid "build source package only from <source package>"
+msgstr "根據 <specfile> 只建置源碼套件"
+
+#: rpmbuild.c:184
#, c-format
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
msgstr "從 <tarball> 透過 %prep (解包源碼和套用修補檔) 來建置"
-#: rpmbuild.c:143 rpmbuild.c:146 rpmbuild.c:149 rpmbuild.c:152 rpmbuild.c:155
-#: rpmbuild.c:158 rpmbuild.c:161
+#: rpmbuild.c:185 rpmbuild.c:188 rpmbuild.c:191 rpmbuild.c:194 rpmbuild.c:197
+#: rpmbuild.c:200 rpmbuild.c:203
msgid "<tarball>"
msgstr "<tarball>"
-#: rpmbuild.c:145
+#: rpmbuild.c:187
msgid "build through %build (%prep, then compile) from <tarball>"
msgstr "從 <tarball> 透過 %build (%prep,然後編譯) 來建置"
-#: rpmbuild.c:148
+#: rpmbuild.c:190
msgid "build through %install (%prep, %build, then install) from <tarball>"
msgstr "從 <tarball> 透過 %install (%prep,%build,然後安裝) 來建置"
-#: rpmbuild.c:151
+#: rpmbuild.c:193
#, c-format
msgid "verify %files section from <tarball>"
msgstr "從 <tarball> 驗證 %files 區段"
-#: rpmbuild.c:154
+#: rpmbuild.c:196
msgid "build source and binary packages from <tarball>"
msgstr "從 <tarball> 中建置源碼套件與二進位套件"
-#: rpmbuild.c:157
+#: rpmbuild.c:199
msgid "build binary package only from <tarball>"
msgstr "從 <tarball> 中只建置二進位套件"
-#: rpmbuild.c:160
+#: rpmbuild.c:202
msgid "build source package only from <tarball>"
msgstr "從 <tarball> 中只建置源碼套件"
-#: rpmbuild.c:164
+#: rpmbuild.c:206
msgid "build binary package from <source package>"
msgstr "從 <source package> 中建置二進位套件"
-#: rpmbuild.c:165 rpmbuild.c:168
-msgid "<source package>"
-msgstr "<source package>"
-
-#: rpmbuild.c:167
-msgid ""
-"build through %install (%prep, %build, then install) from <source package>"
-msgstr "從 <source package> 透過 %install (%prep,%build,然後安裝) 來建置"
-
-#: rpmbuild.c:171
+#: rpmbuild.c:213
msgid "override build root"
msgstr "強制覆寫建置根目錄"
-#: rpmbuild.c:173
+#: rpmbuild.c:215
+#, fuzzy
+msgid "run build in current directory"
+msgstr "無法建立目錄"
+
+#: rpmbuild.c:217
msgid "remove build tree when done"
msgstr "完成後移除建置樹"
-#: rpmbuild.c:175
+#: rpmbuild.c:219
msgid "ignore ExcludeArch: directives from spec file"
msgstr "忽略 ExcludeArch:根據規格檔的指示"
-#: rpmbuild.c:177
+#: rpmbuild.c:221
msgid "debug file state machine"
msgstr "除錯檔案狀態機器"
-#: rpmbuild.c:179
+#: rpmbuild.c:223
msgid "do not execute any stages of the build"
msgstr "不執行建置程序裡的任何步驟"
-#: rpmbuild.c:181
+#: rpmbuild.c:225
msgid "do not verify build dependencies"
msgstr "不校驗建置相依關係"
-#: rpmbuild.c:183
+#: rpmbuild.c:227
msgid "generate package header(s) compatible with (legacy) rpm v3 packaging"
msgstr ""
-#: rpmbuild.c:187
+#: rpmbuild.c:231
#, c-format
msgid "do not execute %clean stage of the build"
msgstr ""
-#: rpmbuild.c:189
+#: rpmbuild.c:233
+#, fuzzy, c-format
+msgid "do not execute %prep stage of the build"
+msgstr "不執行建置程序裡的任何步驟"
+
+#: rpmbuild.c:235
#, c-format
msgid "do not execute %check stage of the build"
msgstr ""
-#: rpmbuild.c:192
+#: rpmbuild.c:238
msgid "do not accept i18N msgstr's from specfile"
msgstr "不接受來自規格檔的 i18N msgstr"
-#: rpmbuild.c:194
+#: rpmbuild.c:240
msgid "remove sources when done"
msgstr "完成後移除源碼檔案"
-#: rpmbuild.c:196
+#: rpmbuild.c:242
msgid "remove specfile when done"
msgstr "完成後移除規格檔"
-#: rpmbuild.c:198
+#: rpmbuild.c:244
msgid "skip straight to specified stage (only for c,i)"
msgstr "直接跳到指定的階段 (只有用於 c,i)"
-#: rpmbuild.c:200 rpmspec.c:34
+#: rpmbuild.c:246 rpmspec.c:34
msgid "override target platform"
msgstr "無視目標平臺"
-#: rpmbuild.c:217
+#: rpmbuild.c:263
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr "組建選項中使用 [ <specfile> | <tarball> | <source package> ]:"
-#: rpmbuild.c:237
+#: rpmbuild.c:283
msgid "Failed build dependencies:\n"
msgstr "相依性建置失敗:\n"
-#: rpmbuild.c:255
+#: rpmbuild.c:301
#, c-format
msgid "Unable to open spec file %s: %s\n"
msgstr "無法開啟 %s 規格檔:%s\n"
-#: rpmbuild.c:317
+#: rpmbuild.c:364
#, c-format
msgid "Failed to open tar pipe: %m\n"
msgstr "無法開啟 tar 導管:%m\n"
-#: rpmbuild.c:336
+#: rpmbuild.c:379
+#, fuzzy, c-format
+msgid "Found more than one spec file in %s\n"
+msgstr "無法開啟 %s 規格檔:%s\n"
+
+#: rpmbuild.c:390
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr "無法從 %s 讀取規格檔\n"
-#: rpmbuild.c:348
+#: rpmbuild.c:402
#, c-format
msgid "Failed to rename %s to %s: %m\n"
msgstr "無法將 %s 重新命名為 %s:%m\n"
-#: rpmbuild.c:419
+#: rpmbuild.c:480
#, c-format
msgid "failed to stat %s: %m\n"
msgstr "無法檢視 %s 的狀態:%m\n"
-#: rpmbuild.c:423
+#: rpmbuild.c:484
#, c-format
msgid "File %s is not a regular file.\n"
msgstr "%s 不是通常的檔案。\n"
-#: rpmbuild.c:430
+#: rpmbuild.c:491
#, c-format
msgid "File %s does not appear to be a specfile.\n"
msgstr "%s 似乎不是規格檔。\n"
-#: rpmbuild.c:496
+#: rpmbuild.c:557
#, c-format
msgid "Building target platforms: %s\n"
msgstr "建置目標平台:%s\n"
-#: rpmbuild.c:504
+#: rpmbuild.c:565
#, c-format
msgid "Building for target %s\n"
msgstr "建置目標 %s\n"
@@ -466,50 +513,65 @@ msgstr "列出 RPM 鑰匙圈的金鑰"
msgid "Keyring options:"
msgstr "鑰匙圈選項:"
-#: rpmkeys.c:64 rpmsign.c:154
+#: rpmkeys.c:64 rpmsign.c:122
msgid "no arguments given"
msgstr "沒有指定引數"
-#: rpmsign.c:25
+#: rpmsign.c:30
msgid "sign package(s)"
msgstr "簽署套件"
-#: rpmsign.c:27
+#: rpmsign.c:32
msgid "sign package(s) (identical to --addsign)"
msgstr "簽署套件 (與 --addsign 含義相同)"
-#: rpmsign.c:29
+#: rpmsign.c:34
msgid "delete package signatures"
msgstr "刪除套件簽署"
-#: rpmsign.c:35
+#: rpmsign.c:36
+#, fuzzy
+msgid "sign package(s) files"
+msgstr "簽署套件"
+
+#: rpmsign.c:38
+msgid "use file signing key <key>"
+msgstr ""
+
+#: rpmsign.c:39
+msgid "<key>"
+msgstr ""
+
+#: rpmsign.c:41
+msgid "prompt for file signing key password"
+msgstr ""
+
+#: rpmsign.c:47
msgid "Signature options:"
msgstr "簽署選項:"
-#: rpmsign.c:93 sign/rpmgensig.c:233
-#, c-format
-msgid "Could not exec %s: %s\n"
-msgstr "無法執行 %s:%s\n"
-
-#: rpmsign.c:118
+#: rpmsign.c:65
#, c-format
msgid "You must set \"%%_gpg_name\" in your macro file\n"
msgstr "您必須在您的巨集檔案中設定「%%_gpg_name」\n"
-#: rpmsign.c:123
-msgid "Enter pass phrase: "
-msgstr "輸入通關密語: "
-
-#: rpmsign.c:127
-#, c-format
-msgid "Pass phrase is good.\n"
-msgstr "通關密語良好。\n"
-
-#: rpmsign.c:133
+#: rpmsign.c:76
#, c-format
-msgid "Pass phrase check failed or gpg key expired\n"
+msgid ""
+"You must set \"$$_file_signing_key\" in your macro file or on the command "
+"line with --fskpath\n"
msgstr ""
+#: rpmsign.c:82
+#, fuzzy
+msgid "--fskpass may only be specified when signing files"
+msgstr "--prefix 只能在安裝新軟體時使用"
+
+#: rpmsign.c:126
+#, fuzzy
+msgid "--fskpath may only be specified when signing files"
+msgstr "--allmatches 只能在套件抹除時指定"
+
#: rpmspec.c:26
msgid "parse spec file(s) to stdout"
msgstr ""
@@ -526,7 +588,7 @@ msgstr "操作透過規格所建立的二進位 rpm (預設)"
msgid "operate on source rpm generated by spec"
msgstr "操作透過規格所建立的源碼 rpm"
-#: rpmspec.c:36 lib/poptQV.c:192
+#: rpmspec.c:36 lib/poptQV.c:208
msgid "use the following query format"
msgstr "使用以下的查詢格式"
@@ -627,201 +689,201 @@ msgstr "字串不支援 && 和 ||\n"
msgid "syntax error in expression\n"
msgstr "表述式中有語法錯誤\n"
-#: build/files.c:282 build/files.c:455 build/files.c:669
+#: build/files.c:307 build/files.c:481 build/files.c:695
#, c-format
msgid "Missing '(' in %s %s\n"
msgstr "在 %s %s 中有遺漏的「(」\n"
-#: build/files.c:292 build/files.c:591 build/files.c:679 build/files.c:738
+#: build/files.c:317 build/files.c:617 build/files.c:705 build/files.c:764
#, c-format
msgid "Missing ')' in %s(%s\n"
msgstr "在 %s(%s 中有遺漏的「)」\n"
-#: build/files.c:317 build/files.c:610
+#: build/files.c:342 build/files.c:636
#, c-format
msgid "Invalid %s token: %s\n"
msgstr "無效的 %s 符記:%s\n"
-#: build/files.c:424
+#: build/files.c:449
#, c-format
msgid "Missing %s in %s %s\n"
msgstr "在 %2$s %3$s 中有缺失的 %1$s\n"
-#: build/files.c:470
+#: build/files.c:496
#, c-format
msgid "Non-white space follows %s(): %s\n"
msgstr "%s() 之後有非空白空格:%s\n"
-#: build/files.c:506
+#: build/files.c:532
#, c-format
msgid "Bad syntax: %s(%s)\n"
msgstr "不良語法:%s(%s)\n"
-#: build/files.c:515
+#: build/files.c:541
#, c-format
msgid "Bad mode spec: %s(%s)\n"
msgstr "不良模式規格:%s(%s)\n"
-#: build/files.c:527
+#: build/files.c:553
#, c-format
msgid "Bad dirmode spec: %s(%s)\n"
msgstr "不良 dirmode 規格:%s(%s)\n"
-#: build/files.c:631
+#: build/files.c:657
#, c-format
msgid "Unusual locale length: \"%s\" in %%lang(%s)\n"
msgstr ""
-#: build/files.c:638
+#: build/files.c:664
#, c-format
msgid "Duplicate locale %s in %%lang(%s)\n"
msgstr ""
-#: build/files.c:753
+#: build/files.c:779
#, c-format
msgid "Invalid capability: %s\n"
msgstr "無效的功能:%s\n"
-#: build/files.c:763
+#: build/files.c:789
msgid "File capability support not built in\n"
msgstr "檔案功能支援未內建於\n"
-#: build/files.c:812
+#: build/files.c:839
#, c-format
msgid "File must begin with \"/\": %s\n"
msgstr "檔案必須以「/」開頭:%s\n"
-#: build/files.c:929
+#: build/files.c:955
#, c-format
msgid "Unknown file digest algorithm %u, falling back to MD5\n"
msgstr ""
-#: build/files.c:955
+#: build/files.c:1005
#, c-format
msgid "File listed twice: %s\n"
msgstr "曾列出兩次的檔案:%s\n"
-#: build/files.c:1070
+#: build/files.c:1120
#, c-format
msgid "reading symlink %s failed: %s\n"
msgstr ""
-#: build/files.c:1078
+#: build/files.c:1128
#, c-format
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr "指向 BuildRoot 的符號連結:%s -> %s\n"
-#: build/files.c:1220
+#: build/files.c:1270
#, c-format
msgid "Path is outside buildroot: %s\n"
msgstr ""
-#: build/files.c:1260
+#: build/files.c:1310
#, c-format
msgid "Directory not found: %s\n"
msgstr ""
-#: build/files.c:1261
+#: build/files.c:1311 lib/rpminstall.c:445
#, c-format
msgid "File not found: %s\n"
msgstr "找不到檔案:%s\n"
-#: build/files.c:1273
+#: build/files.c:1323
#, c-format
msgid "Not a directory: %s\n"
msgstr ""
-#: build/files.c:1464
+#: build/files.c:1514
#, c-format
msgid "%s: can't load unknown tag (%d).\n"
msgstr "%s:無法呼叫不明的標籤 (%d)。\n"
-#: build/files.c:1470
+#: build/files.c:1520
#, c-format
msgid "%s: public key read failed.\n"
msgstr "%s:公鑰讀入失敗。\n"
-#: build/files.c:1474
+#: build/files.c:1524
#, c-format
msgid "%s: not an armored public key.\n"
msgstr "%s:不是一個受保護的公鑰。\n"
-#: build/files.c:1483
+#: build/files.c:1533
#, c-format
msgid "%s: failed to encode\n"
msgstr "%s:編碼失敗\n"
-#: build/files.c:1528
+#: build/files.c:1578
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr "檔案需要以「/」開頭:%s\n"
-#: build/files.c:1552
+#: build/files.c:1602
#, c-format
msgid "%%dev glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1565
+#: build/files.c:1614
#, c-format
-msgid "Directory not found by glob: %s\n"
+msgid "Directory not found by glob: %s. Trying without globbing.\n"
msgstr ""
-#: build/files.c:1566 lib/rpminstall.c:428
-#, c-format
-msgid "File not found by glob: %s\n"
+#: build/files.c:1616
+#, fuzzy, c-format
+msgid "File not found by glob: %s. Trying without globbing.\n"
msgstr "透過 glob 解析找不到檔案:%s\n"
-#: build/files.c:1603
+#: build/files.c:1651
#, c-format
msgid "Could not open %%files file %s: %m\n"
msgstr "無法開啟 %%files 檔案 %s:%m\n"
-#: build/files.c:1611
+#: build/files.c:1662
#, c-format
msgid "line: %s\n"
msgstr "列:%s\n"
-#: build/files.c:1619
+#: build/files.c:1674
#, c-format
msgid "Empty %%files file %s\n"
msgstr ""
-#: build/files.c:1622
+#: build/files.c:1680
#, c-format
msgid "Error reading %%files file %s: %m\n"
msgstr ""
-#: build/files.c:1644
+#: build/files.c:1703
#, c-format
msgid "illegal _docdir_fmt %s: %s\n"
msgstr ""
-#: build/files.c:1806
+#: build/files.c:1823 lib/rpminstall.c:447
+#, c-format
+msgid "File not found by glob: %s\n"
+msgstr "透過 glob 解析找不到檔案:%s\n"
+
+#: build/files.c:1922
#, c-format
msgid "Can't mix special %s with other forms: %s\n"
msgstr ""
-#: build/files.c:1823
+#: build/files.c:1938
#, c-format
msgid "More than one file on a line: %s\n"
msgstr ""
-#: build/files.c:1953
+#: build/files.c:2068
#, c-format
msgid "Bad file: %s: %s\n"
msgstr "不良檔案:%s:%s\n"
-#: build/files.c:1978 build/parsePrep.c:33
-#, c-format
-msgid "Bad owner/group: %s\n"
-msgstr "不良擁有者/群組:%s\n"
-
-#: build/files.c:2011
+#: build/files.c:2136
#, c-format
msgid "Checking for unpackaged file(s): %s\n"
msgstr "正在檢查未打包的檔案:%s\n"
-#: build/files.c:2024
+#: build/files.c:2149
#, c-format
msgid ""
"Installed (but unpackaged) file(s) found:\n"
@@ -830,17 +892,17 @@ msgstr ""
"找到已安裝 (但未打包) 的檔案:\n"
"%s"
-#: build/files.c:2055
+#: build/files.c:2180
#, c-format
msgid "Processing files: %s\n"
msgstr "正在處理檔案:%s\n"
-#: build/files.c:2069
+#: build/files.c:2194
#, c-format
msgid "Binaries arch (%d) not matching the package arch (%d).\n"
msgstr ""
-#: build/files.c:2075
+#: build/files.c:2200
msgid "Arch dependent binaries in noarch package\n"
msgstr "noarch 套件中有架構依賴二進位檔\n"
@@ -859,89 +921,90 @@ msgstr ""
msgid "Could not open %s file: %s\n"
msgstr ""
-#: build/pack.c:136
+#: build/pack.c:137
#, c-format
msgid "%s: line: %s\n"
msgstr "%s: 列:%s\n"
-#: build/pack.c:174
+#: build/pack.c:176
+msgid "The _buildhost macro is too long\n"
+msgstr ""
+
+#: build/pack.c:183
#, c-format
msgid "Could not canonicalize hostname: %s\n"
msgstr "無法標準化主機名稱:%s\n"
-#: build/pack.c:351
-msgid "Unable to reload signature header.\n"
-msgstr "無法重新載入簽署表頭。\n"
-
-#: build/pack.c:424
+#: build/pack.c:366
#, c-format
msgid "Unknown payload compression: %s\n"
msgstr ""
-#: build/pack.c:463
+#: build/pack.c:415
msgid "Unable to create immutable header region.\n"
msgstr "無法建立不可變的表頭區域。\n"
-#: build/pack.c:471
+#: build/pack.c:423
#, c-format
msgid "Could not open %s: %s\n"
msgstr "無法開啟 %s:%s\n"
-#: build/pack.c:483
+#: build/pack.c:435
#, c-format
msgid "Unable to write package: %s\n"
msgstr "無法寫入套件:%s\n"
-#: build/pack.c:507
+#: build/pack.c:459
msgid "Unable to write temp header\n"
msgstr "無法寫入臨時表頭\n"
-#: build/pack.c:516
+#: build/pack.c:468
msgid "Bad CSA data\n"
msgstr "不良 CSA 資料\n"
-#: build/pack.c:527 build/pack.c:546 sign/rpmgensig.c:268 sign/rpmgensig.c:599
-#: sign/rpmgensig.c:634
-#, fuzzy, c-format
+#: build/pack.c:479 build/pack.c:498 sign/rpmgensig.c:292 sign/rpmgensig.c:512
+#: sign/rpmgensig.c:535 sign/rpmgensig.c:609 sign/rpmgensig.c:629
+#: sign/rpmgensig.c:785 sign/rpmgensig.c:820
+#, c-format
msgid "Could not seek in file %s: %s\n"
-msgstr "無法開啟 %%files 檔案 %s:%m\n"
+msgstr ""
-#: build/pack.c:538
-#, fuzzy, c-format
+#: build/pack.c:490
+#, c-format
msgid "Fread failed in file %s: %s\n"
-msgstr "%s:Fread 失敗:%s\n"
+msgstr ""
-#: build/pack.c:572
+#: build/pack.c:524
#, c-format
msgid "Wrote: %s\n"
msgstr "已寫入:%s\n"
-#: build/pack.c:591
+#: build/pack.c:543
#, c-format
msgid "Executing \"%s\":\n"
msgstr "正在執行「%s」:\n"
-#: build/pack.c:594
+#: build/pack.c:546
#, c-format
msgid "Execution of \"%s\" failed.\n"
msgstr "「%s」執行失敗。\n"
-#: build/pack.c:598
+#: build/pack.c:550
#, c-format
msgid "Package check \"%s\" failed.\n"
msgstr "套件檢查「%s」失敗。\n"
-#: build/pack.c:645
+#: build/pack.c:597
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr "無法產生套件 %s 的檔案名稱輸出:%s\n"
-#: build/pack.c:662
+#: build/pack.c:614
#, c-format
msgid "cannot create %s: %s\n"
msgstr "無法建立 %s:%s\n"
-#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:678
+#: build/parseBuildInstallClean.c:35 build/parsePreamble.c:686
#, c-format
msgid "line %d: second %s\n"
msgstr "列 %d:第二個 %s\n"
@@ -992,19 +1055,19 @@ msgid "line %d: Error parsing %%description: %s\n"
msgstr "列 %d:解析 %%description 時發生錯誤:%s\n"
#: build/parseDescription.c:45 build/parseFiles.c:46 build/parsePolicies.c:45
-#: build/parseScript.c:232
+#: build/parseScript.c:306
#, c-format
msgid "line %d: Bad option %s: %s\n"
msgstr "列 %d:不良選項 %s:%s\n"
#: build/parseDescription.c:56 build/parseFiles.c:57 build/parsePolicies.c:55
-#: build/parseScript.c:243
+#: build/parseScript.c:317
#, c-format
msgid "line %d: Too many names: %s\n"
msgstr "列 %d:過多名稱:%s\n"
#: build/parseDescription.c:64 build/parseFiles.c:65 build/parsePolicies.c:62
-#: build/parseScript.c:251
+#: build/parseScript.c:325
#, c-format
msgid "line %d: Package does not exist: %s\n"
msgstr "列 %d:套件不存在:%s\n"
@@ -1059,142 +1122,146 @@ msgstr ""
msgid "Couldn't download %s\n"
msgstr ""
-#: build/parsePreamble.c:434
+#: build/parsePreamble.c:439
#, c-format
msgid "Architecture is excluded: %s\n"
msgstr "被排除的架構:%s\n"
-#: build/parsePreamble.c:439
+#: build/parsePreamble.c:444
#, c-format
msgid "Architecture is not included: %s\n"
msgstr "未包含的架構:%s\n"
-#: build/parsePreamble.c:444
+#: build/parsePreamble.c:449
#, c-format
msgid "OS is excluded: %s\n"
msgstr "被排除的作業系統:%s\n"
-#: build/parsePreamble.c:449
+#: build/parsePreamble.c:454
#, c-format
msgid "OS is not included: %s\n"
msgstr "未包含的作業系統:%s\n"
-#: build/parsePreamble.c:475
+#: build/parsePreamble.c:480
#, c-format
msgid "%s field must be present in package: %s\n"
msgstr "%s 欄位必須出現於套件中:%s\n"
-#: build/parsePreamble.c:498
+#: build/parsePreamble.c:503
#, c-format
msgid "Duplicate %s entries in package: %s\n"
msgstr "套件中有重複的 %s 條目:%s\n"
-#: build/parsePreamble.c:556
+#: build/parsePreamble.c:561
#, c-format
msgid "Unable to open icon %s: %s\n"
msgstr "無法開啟圖示 %s:%s\n"
-#: build/parsePreamble.c:572
+#: build/parsePreamble.c:577
#, c-format
msgid "Unable to read icon %s: %s\n"
msgstr "無法讀取圖示 %s:%s\n"
-#: build/parsePreamble.c:582
+#: build/parsePreamble.c:587
#, c-format
msgid "Unknown icon type: %s\n"
msgstr "不明的圖示類型:%s\n"
-#: build/parsePreamble.c:596
+#: build/parsePreamble.c:601
#, c-format
msgid "line %d: Tag takes single token only: %s\n"
msgstr "列 %d:標籤只需單一符記:%s\n"
-#: build/parsePreamble.c:616
+#: build/parsePreamble.c:621
#, c-format
-msgid "line %d: Illegal char '%c' in: %s\n"
-msgstr ""
-
-#: build/parsePreamble.c:619
-#, c-format
-msgid "line %d: Illegal char in: %s\n"
+msgid "Illegal char '%c' (0x%x)"
msgstr ""
#: build/parsePreamble.c:625
-#, c-format
-msgid "line %d: Illegal sequence \"..\" in: %s\n"
+msgid "Illegal sequence \"..\""
msgstr ""
-#: build/parsePreamble.c:710
+#: build/parsePreamble.c:630
+#, fuzzy, c-format
+msgid "line %d: %s in: %s\n"
+msgstr "列 %d:第二個 %s\n"
+
+#: build/parsePreamble.c:633
+#, fuzzy, c-format
+msgid "%s in: %s\n"
+msgstr "%s: 列:%s\n"
+
+#: build/parsePreamble.c:718
#, c-format
msgid "line %d: Malformed tag: %s\n"
msgstr "列 %d:格式不良的標籤:%s\n"
-#: build/parsePreamble.c:718
+#: build/parsePreamble.c:726
#, c-format
msgid "line %d: Empty tag: %s\n"
msgstr "列 %d:空的標籤:%s\n"
-#: build/parsePreamble.c:779
+#: build/parsePreamble.c:787
#, c-format
msgid "line %d: Prefixes must not end with \"/\": %s\n"
msgstr "列 %d:前綴不能以「/」結尾:%s\n"
-#: build/parsePreamble.c:791
+#: build/parsePreamble.c:799
#, c-format
msgid "line %d: Docdir must begin with '/': %s\n"
msgstr "列 %d:Docdir 必須以「/」開頭:%s\n"
-#: build/parsePreamble.c:804
+#: build/parsePreamble.c:812
#, c-format
msgid "line %d: Epoch field must be an unsigned number: %s\n"
msgstr ""
-#: build/parsePreamble.c:841
+#: build/parsePreamble.c:849
#, c-format
msgid "line %d: Bad %s: qualifiers: %s\n"
msgstr "列 %d:不良 %s:修飾詞:%s\n"
-#: build/parsePreamble.c:875
+#: build/parsePreamble.c:883
#, c-format
msgid "line %d: Bad BuildArchitecture format: %s\n"
msgstr "列 %d:不良 BuildArchitecture 格式:%s\n"
-#: build/parsePreamble.c:885
+#: build/parsePreamble.c:893
#, c-format
msgid "line %d: Only noarch subpackages are supported: %s\n"
msgstr ""
-#: build/parsePreamble.c:897
+#: build/parsePreamble.c:908
#, c-format
msgid "Internal error: Bogus tag %d\n"
msgstr "內部錯誤:假造的標籤 %d\n"
-#: build/parsePreamble.c:985
+#: build/parsePreamble.c:997
#, c-format
msgid "line %d: %s is deprecated: %s\n"
msgstr ""
-#: build/parsePreamble.c:1046
+#: build/parsePreamble.c:1058
#, c-format
msgid "Bad package specification: %s\n"
msgstr "不良套件規格:%s\n"
-#: build/parsePreamble.c:1055
+#: build/parsePreamble.c:1067
#, c-format
msgid "Package already exists: %s\n"
msgstr "套件已經存在:%s\n"
-#: build/parsePreamble.c:1090
+#: build/parsePreamble.c:1102
#, c-format
msgid "line %d: Unknown tag: %s\n"
msgstr "列 %d:未知標籤:%s\n"
-#: build/parsePreamble.c:1122
+#: build/parsePreamble.c:1134
#, c-format
msgid "%%{buildroot} couldn't be empty\n"
msgstr ""
-#: build/parsePreamble.c:1126
+#: build/parsePreamble.c:1138
#, c-format
msgid "%%{buildroot} can not be \"/\"\n"
msgstr ""
@@ -1204,161 +1271,193 @@ msgstr ""
msgid "Bad source: %s: %s\n"
msgstr "不良源碼:%s:%s\n"
-#: build/parsePrep.c:73
+#: build/parsePrep.c:70
#, c-format
msgid "No patch number %u\n"
msgstr "沒有修補編號 %u\n"
-#: build/parsePrep.c:75
+#: build/parsePrep.c:72
#, c-format
msgid "%%patch without corresponding \"Patch:\" tag\n"
msgstr ""
-#: build/parsePrep.c:152
+#: build/parsePrep.c:155
#, c-format
msgid "No source number %u\n"
msgstr "沒有源碼編號 %u\n"
-#: build/parsePrep.c:154
+#: build/parsePrep.c:157
msgid "No \"Source:\" tag in the spec file\n"
msgstr "規格檔內無「Source:」標籤\n"
-#: build/parsePrep.c:261
+#: build/parsePrep.c:265
#, c-format
msgid "Error parsing %%setup: %s\n"
msgstr "解析 %%setup 時發生錯誤:%s\n"
-#: build/parsePrep.c:272
+#: build/parsePrep.c:276
#, c-format
msgid "line %d: Bad arg to %%setup: %s\n"
msgstr "列 %d:%%setup 中出現不良引數:%s\n"
-#: build/parsePrep.c:287
+#: build/parsePrep.c:291
#, c-format
msgid "line %d: Bad %%setup option %s: %s\n"
msgstr "列 %d:不良 %%setup 選項 %s:%s\n"
-#: build/parsePrep.c:446
+#: build/parsePrep.c:459
#, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s: %s\n"
-#: build/parsePrep.c:459
+#: build/parsePrep.c:472
#, c-format
msgid "Invalid patch number %s: %s\n"
msgstr "無效的修補編號 %s:%s\n"
-#: build/parsePrep.c:486
+#: build/parsePrep.c:499
#, c-format
msgid "line %d: second %%prep\n"
msgstr "列 %d:第二個 %%prep\n"
-#: build/parseReqs.c:130
+#: build/parseReqs.c:52
msgid "Dependency tokens must begin with alpha-numeric, '_' or '/'"
msgstr ""
-#: build/parseReqs.c:155
+#: build/parseReqs.c:57
msgid "Versioned file name not permitted"
msgstr ""
-#: build/parseReqs.c:172
-msgid "Version required"
+#: build/parseReqs.c:230
+msgid "No rich dependencies allowed for this type"
msgstr ""
-#: build/parseReqs.c:188
+#: build/parseReqs.c:240 build/parseReqs.c:315
msgid "invalid dependency"
msgstr ""
-#: build/parseReqs.c:205
+#: build/parseReqs.c:275 lib/rpmds.c:1438
+msgid "Version required"
+msgstr ""
+
+#: build/parseReqs.c:291
+msgid "Only absolute paths are allowed in file triggers"
+msgstr ""
+
+#: build/parseReqs.c:304
+msgid "Trigger fired by the same package is already defined in spec file"
+msgstr ""
+
+#: build/parseReqs.c:332
#, c-format
msgid "line %d: %s: %s\n"
msgstr ""
-#: build/parseScript.c:192
+#: build/parseScript.c:256
#, c-format
msgid "line %d: triggers must have --: %s\n"
msgstr "列 %d:觸發器必須包含 --:%s\n"
-#: build/parseScript.c:202 build/parseScript.c:265
+#: build/parseScript.c:266 build/parseScript.c:339
#, c-format
msgid "line %d: Error parsing %s: %s\n"
msgstr "列 %d:解析 %s 時發生錯誤:%s\n"
-#: build/parseScript.c:214
+#: build/parseScript.c:278
#, c-format
msgid "line %d: internal script must end with '>': %s\n"
msgstr "列 %d:內部指令稿必須以「>」結尾:%s\n"
-#: build/parseScript.c:220
+#: build/parseScript.c:284
#, c-format
msgid "line %d: script program must begin with '/': %s\n"
msgstr "列 %d:指令稿程式必須以「/」開頭:%s\n"
-#: build/parseScript.c:258
+#: build/parseScript.c:298
+#, c-format
+msgid "line %d: Priorities are allowed only for file triggers : %s\n"
+msgstr ""
+
+#: build/parseScript.c:332
#, c-format
msgid "line %d: Second %s\n"
msgstr "列 %d:第二個 %s\n"
-#: build/parseScript.c:300
+#: build/parseScript.c:374
#, c-format
msgid "line %d: unsupported internal script: %s\n"
msgstr "列 %d:不支援的內部指令稿:%s\n"
-#: build/parseScript.c:317
+#: build/parseScript.c:392
#, c-format
msgid "line %d: interpreter arguments not allowed in triggers: %s\n"
msgstr ""
-#: build/parseSpec.c:212
+#: build/parseSpec.c:185
#, c-format
msgid "line %d: %s\n"
msgstr "列 %d:%s\n"
-#: build/parseSpec.c:255
+#: build/parseSpec.c:211
+#, c-format
+msgid "Macro expanded in comment on line %d: %s\n"
+msgstr ""
+
+#: build/parseSpec.c:312
#, c-format
msgid "Unable to open %s: %s\n"
msgstr "無法開啟 %s:%s\n"
-#: build/parseSpec.c:289
+#: build/parseSpec.c:346
#, c-format
msgid "%s:%d: Argument expected for %s\n"
msgstr ""
-#: build/parseSpec.c:311
+#: build/parseSpec.c:368
#, c-format
msgid "line %d: Unclosed %%if\n"
msgstr ""
-#: build/parseSpec.c:316
+#: build/parseSpec.c:373
#, c-format
msgid "line %d: unclosed macro or bad line continuation\n"
msgstr ""
-#: build/parseSpec.c:358
+#: build/parseSpec.c:415
#, c-format
msgid "%s:%d: bad %%if condition\n"
msgstr ""
-#: build/parseSpec.c:366
+#: build/parseSpec.c:423
#, c-format
msgid "%s:%d: Got a %%else with no %%if\n"
msgstr "%s:%d:有個 %%else 沒有對應 %%if\n"
-#: build/parseSpec.c:377
+#: build/parseSpec.c:434
#, c-format
msgid "%s:%d: Got a %%endif with no %%if\n"
msgstr "%s:%d:有個 %%endif 沒有對應 %%if\n"
-#: build/parseSpec.c:395
+#: build/parseSpec.c:452
#, c-format
msgid "%s:%d: malformed %%include statement\n"
msgstr ""
-#: build/parseSpec.c:678
+#: build/parseSpec.c:637
+#, c-format
+msgid "encoding %s not supported by system\n"
+msgstr ""
+
+#: build/parseSpec.c:666
+#, c-format
+msgid "Package %s: invalid %s encoding in %s: %s - %s\n"
+msgstr ""
+
+#: build/parseSpec.c:811
msgid "No compatible architectures found for build\n"
msgstr "找不到可供建置的相容架構\n"
-#: build/parseSpec.c:712
+#: build/parseSpec.c:845
#, c-format
msgid "Package has no %%description: %s\n"
msgstr "套件沒有 %%description:%s\n"
@@ -1429,287 +1528,276 @@ msgstr ""
msgid "Processing policies: %s\n"
msgstr ""
-#: build/rpmfc.c:109
+#: build/rpmfc.c:119
#, c-format
msgid "Ignoring invalid regex %s\n"
msgstr ""
-#: build/rpmfc.c:206
+#: build/rpmfc.c:216
#, c-format
msgid "Couldn't create pipe for %s: %m\n"
msgstr "無法為 %s 建立導管:%m\n"
-#: build/rpmfc.c:231
+#: build/rpmfc.c:241
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr "無法執行 %s:%s\n"
-#: build/rpmfc.c:236 lib/rpmscript.c:297
+#: build/rpmfc.c:246 lib/rpmscript.c:330
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr "無法分支 %s:%s\n"
-#: build/rpmfc.c:319
+#: build/rpmfc.c:329
#, c-format
msgid "%s failed: %x\n"
msgstr "%s 失敗:%x\n"
-#: build/rpmfc.c:323
+#: build/rpmfc.c:333
#, c-format
msgid "failed to write all data to %s: %s\n"
msgstr "無法寫入所有資料至 %s:%s\n"
-#: build/rpmfc.c:454
+#: build/rpmfc.c:464
msgid "bad operator"
msgstr ""
-#: build/rpmfc.c:473
+#: build/rpmfc.c:483
msgid "bad format"
msgstr ""
-#: build/rpmfc.c:539
+#: build/rpmfc.c:548
#, c-format
msgid "invalid dependency (%s): %s\n"
msgstr ""
-#: build/rpmfc.c:845
-#, c-format
-msgid "Conversion of %s to long integer failed.\n"
-msgstr "%s 轉換至 long integer 失敗。\n"
-
-#: build/rpmfc.c:915
+#: build/rpmfc.c:1009
msgid "Empty file classifier\n"
msgstr ""
-#: build/rpmfc.c:924
+#: build/rpmfc.c:1018
msgid "No file attributes configured\n"
msgstr "無設定檔案特性\n"
-#: build/rpmfc.c:944
+#: build/rpmfc.c:1037
#, c-format
msgid "magic_open(0x%x) failed: %s\n"
msgstr "magic_open(0x%x) 失敗:%s\n"
-#: build/rpmfc.c:950
+#: build/rpmfc.c:1043
#, c-format
msgid "magic_load failed: %s\n"
msgstr "magic_load 失敗:%s\n"
-#: build/rpmfc.c:992
+#: build/rpmfc.c:1085
#, c-format
msgid "Recognition of file \"%s\" failed: mode %06o %s\n"
msgstr "檔案「%s」辨識失敗:模式 %06o %s\n"
-#: build/rpmfc.c:1196
+#: build/rpmfc.c:1286
#, c-format
msgid "Finding %s: %s\n"
msgstr "正在尋找 %s:%s\n"
-#: build/rpmfc.c:1205 build/rpmfc.c:1214
+#: build/rpmfc.c:1295 build/rpmfc.c:1304
#, c-format
msgid "Failed to find %s:\n"
msgstr "找不到 %s:\n"
-#: build/spec.c:434
+#: build/spec.c:451
#, c-format
msgid "query of specfile %s failed, can't parse\n"
msgstr "%s 規格檔查詢失敗,無法剖析\n"
-#: lib/depends.c:89
+#: lib/depends.c:91
#, c-format
msgid "%s is a Delta RPM and cannot be directly installed\n"
msgstr ""
-#: lib/depends.c:93
+#: lib/depends.c:95
#, c-format
msgid "Unsupported payload (%s) in package %s\n"
msgstr ""
-#: lib/depends.c:372
+#: lib/depends.c:375
#, c-format
msgid "package %s was already added, skipping %s\n"
msgstr "套件 %s 已被加入,跳過 %s\n"
-#: lib/depends.c:373
+#: lib/depends.c:376
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr "套件 %s 已被加入,以 %s 替換\n"
-#: lib/formats.c:68 lib/formats.c:104 lib/formats.c:186 lib/formats.c:212
-#: lib/formats.c:265 lib/formats.c:283 lib/formats.c:476 lib/formats.c:509
-#: lib/formats.c:547
+#: lib/formats.c:68 lib/formats.c:105 lib/formats.c:187 lib/formats.c:213
+#: lib/formats.c:266 lib/formats.c:284 lib/formats.c:477 lib/formats.c:510
+#: lib/formats.c:548
msgid "(not a number)"
msgstr "(不是數字)"
-#: lib/formats.c:128
+#: lib/formats.c:129
#, c-format
msgid "%c"
msgstr "%c"
-#: lib/formats.c:138
+#: lib/formats.c:139
msgid "%a %b %d %Y"
msgstr "%Y %b %d %a"
-#: lib/formats.c:317
+#: lib/formats.c:318
msgid "(not base64)"
msgstr "(不是 base64)"
-#: lib/formats.c:329
+#: lib/formats.c:330
msgid "(invalid type)"
msgstr "(無效型態)"
-#: lib/formats.c:352 lib/formats.c:432
+#: lib/formats.c:353 lib/formats.c:433
msgid "(not a blob)"
msgstr "(不是 blob)"
-#: lib/formats.c:387
+#: lib/formats.c:388
msgid "(invalid xml type)"
msgstr "(無效 xml 類型)"
-#: lib/formats.c:437
+#: lib/formats.c:438
msgid "(not an OpenPGP signature)"
msgstr "(不是個 OpenPGP 簽署)"
-#: lib/formats.c:449
+#: lib/formats.c:450
#, c-format
msgid "Invalid date %u"
msgstr ""
-#: lib/formats.c:515
+#: lib/formats.c:516
msgid "normal"
msgstr "一般"
-#: lib/formats.c:518 lib/verify.c:369
+#: lib/formats.c:519 lib/verify.c:375
msgid "replaced"
msgstr "已替換"
-#: lib/formats.c:521 lib/verify.c:363
+#: lib/formats.c:522 lib/verify.c:369
msgid "not installed"
msgstr "未安裝"
-#: lib/formats.c:524 lib/verify.c:365
+#: lib/formats.c:525 lib/verify.c:371
msgid "net shared"
msgstr "已網路分享"
-#: lib/formats.c:527 lib/verify.c:367
+#: lib/formats.c:528 lib/verify.c:373
msgid "wrong color"
msgstr "錯誤色彩"
-#: lib/formats.c:530
+#: lib/formats.c:531
msgid "missing"
msgstr "遺失"
-#: lib/formats.c:533
+#: lib/formats.c:534
msgid "(unknown)"
msgstr "(未知)"
-#: lib/formats.c:568
+#: lib/formats.c:569
msgid "(not a string)"
msgstr "(不是字串)"
-#: lib/fsm.c:709
+#: lib/fsm.c:710
#, c-format
msgid "%s saved as %s\n"
msgstr "%s 已被另存為 %s\n"
-#: lib/fsm.c:761
+#: lib/fsm.c:762
#, c-format
msgid "%s created as %s\n"
msgstr "%s 已建立為 %s \n"
-#: lib/fsm.c:1034
+#: lib/fsm.c:1035
#, c-format
msgid "%s %s: remove failed: %s\n"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "directory"
msgstr ""
-#: lib/fsm.c:1035
+#: lib/fsm.c:1036
msgid "file"
msgstr ""
-#: lib/package.c:156
-#, c-format
-msgid "%s has unverifiable signature"
-msgstr ""
-
-#: lib/package.c:184 lib/package.c:299 lib/package.c:406
+#: lib/package.c:174 lib/package.c:284 lib/package.c:391
#, c-format
msgid "tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:204
+#: lib/package.c:194
msgid "hdr SHA1: BAD, not hex"
msgstr ""
-#: lib/package.c:216
+#: lib/package.c:206
msgid "hdr RSA: BAD, not binary"
msgstr ""
-#: lib/package.c:226
+#: lib/package.c:216
msgid "hdr DSA: BAD, not binary"
msgstr ""
-#: lib/package.c:315
+#: lib/package.c:276
+msgid "region: no tags"
+msgstr ""
+
+#: lib/package.c:300
#, c-format
msgid "region tag: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:324
+#: lib/package.c:309
#, c-format
msgid "region offset: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:343
+#: lib/package.c:328
#, c-format
msgid "region trailer: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/package.c:352
+#: lib/package.c:337
#, c-format
msgid "region size: BAD, ril(%d) > il(%d)"
msgstr ""
-#: lib/package.c:383
+#: lib/package.c:368
#, c-format
msgid "blob size(%d): BAD, 8 + 16 * il(%d) + dl(%d)"
msgstr ""
-#: lib/package.c:460
+#: lib/package.c:445
#, c-format
msgid "hdr size(%d): BAD, read returned %d"
msgstr ""
-#: lib/package.c:464
+#: lib/package.c:449
msgid "hdr magic: BAD"
msgstr ""
-#: lib/package.c:469
+#: lib/package.c:454
#, c-format
msgid "hdr tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/package.c:475
+#: lib/package.c:460
#, c-format
msgid "hdr data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/package.c:485
+#: lib/package.c:470
#, c-format
msgid "hdr blob(%zd): BAD, read returned %d"
msgstr ""
-#: lib/package.c:498
+#: lib/package.c:483
msgid "hdr load: BAD"
msgstr ""
-#: lib/package.c:650
-#, c-format
-msgid "Fread failed: %s"
-msgstr ""
-
#: lib/poptALL.c:145
#, c-format
msgid ""
@@ -1929,7 +2017,7 @@ msgstr "更新資料庫,但不修改檔案系統"
msgid "do not verify package dependencies"
msgstr "不校驗套件相依性"
-#: lib/poptI.c:179 lib/poptQV.c:207 lib/poptQV.c:209
+#: lib/poptI.c:179 lib/poptQV.c:223 lib/poptQV.c:225
msgid "don't verify digest of files"
msgstr "不要校驗檔案的摘要"
@@ -2049,162 +2137,182 @@ msgstr "升級套件"
msgid "reinstall package(s)"
msgstr ""
-#: lib/poptQV.c:67
+#: lib/poptQV.c:75
msgid "query/verify all packages"
msgstr "查詢/校驗所有套件"
-#: lib/poptQV.c:69
+#: lib/poptQV.c:77
msgid "rpm checksig mode"
msgstr "rpm 檢查簽署模式"
-#: lib/poptQV.c:71
+#: lib/poptQV.c:79
msgid "query/verify package(s) owning file"
msgstr "查詢/校驗套件擁有的檔案"
-#: lib/poptQV.c:73
+#: lib/poptQV.c:81
msgid "query/verify package(s) in group"
msgstr "查詢/校驗套件所屬的群組"
-#: lib/poptQV.c:75
+#: lib/poptQV.c:83
msgid "query/verify a package file"
msgstr "查詢/校驗一個套件檔案"
-#: lib/poptQV.c:78
+#: lib/poptQV.c:86
msgid "query/verify package(s) with package identifier"
msgstr "以套件的識別符查詢/校驗套件"
-#: lib/poptQV.c:80
+#: lib/poptQV.c:88
msgid "query/verify package(s) with header identifier"
msgstr "以表頭識別符查詢/校驗套件"
-#: lib/poptQV.c:83
+#: lib/poptQV.c:91
msgid "rpm query mode"
msgstr "rpm 查詢模式"
-#: lib/poptQV.c:85
+#: lib/poptQV.c:93
msgid "query/verify a header instance"
msgstr "查詢/驗證表頭實體"
-#: lib/poptQV.c:87
+#: lib/poptQV.c:95
msgid "query/verify package(s) from install transaction"
msgstr "從安裝處理事項查詢/驗證套件"
-#: lib/poptQV.c:89
+#: lib/poptQV.c:97
msgid "query the package(s) triggered by the package"
msgstr "查詢套件所觸發的套件"
-#: lib/poptQV.c:91
+#: lib/poptQV.c:99
msgid "rpm verify mode"
msgstr "rpm 校驗模式"
-#: lib/poptQV.c:93
+#: lib/poptQV.c:101
msgid "query/verify the package(s) which require a dependency"
msgstr "查詢/校驗需要某些相依套件的套件"
-#: lib/poptQV.c:95
+#: lib/poptQV.c:103
msgid "query/verify the package(s) which provide a dependency"
msgstr "查詢/校驗提供某些相依套件的套件"
-#: lib/poptQV.c:98
+#: lib/poptQV.c:105
+#, fuzzy
+msgid "query/verify the package(s) which recommends a dependency"
+msgstr "查詢/校驗需要某些相依套件的套件"
+
+#: lib/poptQV.c:107
+#, fuzzy
+msgid "query/verify the package(s) which suggests a dependency"
+msgstr "查詢/校驗需要某些相依套件的套件"
+
+#: lib/poptQV.c:109
+#, fuzzy
+msgid "query/verify the package(s) which supplements a dependency"
+msgstr "查詢/校驗需要某些相依套件的套件"
+
+#: lib/poptQV.c:111
+#, fuzzy
+msgid "query/verify the package(s) which enhances a dependency"
+msgstr "查詢/校驗需要某些相依套件的套件"
+
+#: lib/poptQV.c:114
msgid "do not glob arguments"
msgstr "不以 glob 解析引數"
-#: lib/poptQV.c:100
+#: lib/poptQV.c:116
msgid "do not process non-package files as manifests"
msgstr "不以 manifest 處理非套件檔案"
-#: lib/poptQV.c:172
+#: lib/poptQV.c:188
msgid "list all configuration files"
msgstr "列出所有組態檔案"
-#: lib/poptQV.c:174
+#: lib/poptQV.c:190
msgid "list all documentation files"
msgstr "列出所有文件檔案"
-#: lib/poptQV.c:176
+#: lib/poptQV.c:192
msgid "list all license files"
msgstr ""
-#: lib/poptQV.c:178
+#: lib/poptQV.c:194
msgid "dump basic file information"
msgstr "傾印基本檔案資訊"
-#: lib/poptQV.c:182
+#: lib/poptQV.c:198
msgid "list files in package"
msgstr "列出套件內的檔案"
-#: lib/poptQV.c:187
+#: lib/poptQV.c:203
#, c-format
msgid "skip %%ghost files"
msgstr "略過 %%ghost 檔案"
-#: lib/poptQV.c:194
+#: lib/poptQV.c:210
msgid "display the states of the listed files"
msgstr "顯示列出的檔案的狀態"
-#: lib/poptQV.c:212
+#: lib/poptQV.c:228
msgid "don't verify size of files"
msgstr "不校驗檔案大小"
-#: lib/poptQV.c:215
+#: lib/poptQV.c:231
msgid "don't verify symlink path of files"
msgstr "不校驗檔案的符號連結路徑"
-#: lib/poptQV.c:218
+#: lib/poptQV.c:234
msgid "don't verify owner of files"
msgstr "不校驗檔案的擁有者"
-#: lib/poptQV.c:221
+#: lib/poptQV.c:237
msgid "don't verify group of files"
msgstr "不校驗檔案的群組"
-#: lib/poptQV.c:224
+#: lib/poptQV.c:240
msgid "don't verify modification time of files"
msgstr "不校驗檔案的修改時間"
-#: lib/poptQV.c:227 lib/poptQV.c:230
+#: lib/poptQV.c:243 lib/poptQV.c:246
msgid "don't verify mode of files"
msgstr "不校驗檔案的模式"
-#: lib/poptQV.c:233
+#: lib/poptQV.c:249
msgid "don't verify capabilities of files"
msgstr ""
-#: lib/poptQV.c:236
+#: lib/poptQV.c:252
msgid "don't verify file security contexts"
msgstr "不校驗檔案的安全情境"
-#: lib/poptQV.c:238
+#: lib/poptQV.c:254
msgid "don't verify files in package"
msgstr "不校驗套件內的檔案"
-#: lib/poptQV.c:240 tools/rpmgraph.c:218
+#: lib/poptQV.c:256 tools/rpmgraph.c:218
msgid "don't verify package dependencies"
msgstr "不校驗套件的相依關係"
-#: lib/poptQV.c:243 lib/poptQV.c:246
+#: lib/poptQV.c:259 lib/poptQV.c:262
msgid "don't execute verify script(s)"
msgstr "不執行校驗指令稿"
-#: lib/psm.c:144
+#: lib/psm.c:146
#, c-format
msgid "Missing rpmlib features for %s:\n"
msgstr ""
-#: lib/psm.c:181
+#: lib/psm.c:183
msgid "source package expected, binary found\n"
msgstr "預期是源碼套件,但卻找到二進位套件\n"
-#: lib/psm.c:192
+#: lib/psm.c:194
msgid "source package contains no .spec file\n"
msgstr "源碼套件內未包含 .spec 檔案\n"
-#: lib/psm.c:677
+#: lib/psm.c:605
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr "解包封存檔失敗 %s%s:%s\n"
-#: lib/psm.c:678
+#: lib/psm.c:606
msgid " on file "
msgstr " 於檔案 "
@@ -2279,96 +2387,116 @@ msgstr "沒有套件符合 %s:%s\n"
msgid "no package requires %s\n"
msgstr "沒有套件需要 %s\n"
-#: lib/query.c:391
+#: lib/query.c:390
+#, fuzzy, c-format
+msgid "no package recommends %s\n"
+msgstr "沒有套件需要 %s\n"
+
+#: lib/query.c:397
+#, fuzzy, c-format
+msgid "no package suggests %s\n"
+msgstr "沒有套件會觸發 %s\n"
+
+#: lib/query.c:404
+#, fuzzy, c-format
+msgid "no package supplements %s\n"
+msgstr "沒有套件需要 %s\n"
+
+#: lib/query.c:411
+#, fuzzy, c-format
+msgid "no package enhances %s\n"
+msgstr "沒有套件需要 %s\n"
+
+#: lib/query.c:419
#, c-format
msgid "no package provides %s\n"
msgstr "沒有套件提供 %s\n"
-#: lib/query.c:423
+#: lib/query.c:451
#, c-format
msgid "file %s: %s\n"
msgstr "檔案 %s:%s\n"
-#: lib/query.c:426
+#: lib/query.c:454
#, c-format
msgid "file %s is not owned by any package\n"
msgstr "檔案 %s 不被任何套件擁有\n"
-#: lib/query.c:437
+#: lib/query.c:465
#, c-format
msgid "invalid package number: %s\n"
msgstr "無效的套件編號:%s\n"
-#: lib/query.c:444
+#: lib/query.c:472
#, c-format
msgid "record %u could not be read\n"
msgstr ""
-#: lib/query.c:457 lib/rpminstall.c:662
+#: lib/query.c:485 lib/rpminstall.c:682
#, c-format
msgid "package %s is not installed\n"
msgstr "套件 %s 尚未安裝\n"
-#: lib/query.c:491
+#: lib/query.c:519
#, c-format
msgid "unknown tag: \"%s\"\n"
msgstr "未知的標籤:「%s」\n"
-#: lib/rpmchecksig.c:44
+#: lib/rpmchecksig.c:49 lib/rpmchecksig.c:57
#, c-format
msgid "%s: key %d import failed.\n"
msgstr ""
-#: lib/rpmchecksig.c:48
+#: lib/rpmchecksig.c:65
#, c-format
msgid "%s: key %d not an armored public key.\n"
msgstr ""
-#: lib/rpmchecksig.c:93
+#: lib/rpmchecksig.c:110
#, c-format
msgid "%s: import read failed(%d).\n"
msgstr "%s:匯入時讀取失敗(%d)。\n"
-#: lib/rpmchecksig.c:119 sign/rpmgensig.c:509
+#: lib/rpmchecksig.c:136 sign/rpmgensig.c:709
#, c-format
msgid "%s: headerRead failed: %s\n"
msgstr ""
-#: lib/rpmchecksig.c:128
+#: lib/rpmchecksig.c:145
#, c-format
msgid "%s: Immutable header region could not be read. Corrupted package?\n"
msgstr ""
-#: lib/rpmchecksig.c:140 sign/rpmgensig.c:113
+#: lib/rpmchecksig.c:157 sign/rpmgensig.c:177
#, c-format
msgid "%s: Fread failed: %s\n"
msgstr "%s:Fread 失敗:%s\n"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "NOT OK"
msgstr "不正確"
-#: lib/rpmchecksig.c:373
+#: lib/rpmchecksig.c:335
msgid "OK"
msgstr "正確"
-#: lib/rpmchecksig.c:375
+#: lib/rpmchecksig.c:337
msgid " (MISSING KEYS:"
msgstr " (遺失的金鑰:"
-#: lib/rpmchecksig.c:377
+#: lib/rpmchecksig.c:339
msgid ") "
msgstr ") "
-#: lib/rpmchecksig.c:378
+#: lib/rpmchecksig.c:340
msgid " (UNTRUSTED KEYS:"
msgstr " (未受信任的金鑰:"
-#: lib/rpmchecksig.c:380
+#: lib/rpmchecksig.c:342
msgid ")"
msgstr ")"
-#: lib/rpmchecksig.c:423 sign/rpmgensig.c:73
+#: lib/rpmchecksig.c:385 sign/rpmgensig.c:138
#, c-format
msgid "%s: open failed: %s\n"
msgstr "%s:開啟失敗:%s\n"
@@ -2393,144 +2521,192 @@ msgstr ""
msgid "Unable to restore root directory: %m\n"
msgstr ""
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "NO "
msgstr "否 "
-#: lib/rpmds.c:678
+#: lib/rpmds.c:726
msgid "YES"
msgstr "是"
-#: lib/rpmds.c:1155
+#: lib/rpmds.c:1203
msgid "PreReq:, Provides:, and Obsoletes: dependencies support versions."
msgstr "PreReq:、Provides:、以及 Obsoletes: 相依性支援版本。"
-#: lib/rpmds.c:1158
+#: lib/rpmds.c:1206
msgid "file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path."
msgstr "檔案名稱儲存為 (dirName、baseName、dirIndex) 字組,而非路徑。"
-#: lib/rpmds.c:1162
+#: lib/rpmds.c:1210
msgid "package payload can be compressed using bzip2."
msgstr "套件酬載可以使用 bzip2 壓縮。"
-#: lib/rpmds.c:1167
+#: lib/rpmds.c:1215
msgid "package payload can be compressed using xz."
msgstr ""
-#: lib/rpmds.c:1170
+#: lib/rpmds.c:1218
msgid "package payload can be compressed using lzma."
msgstr ""
-#: lib/rpmds.c:1174
+#: lib/rpmds.c:1222
msgid "package payload file(s) have \"./\" prefix."
msgstr "套件酬載檔案有「./」前綴。"
-#: lib/rpmds.c:1177
+#: lib/rpmds.c:1225
msgid "package name-version-release is not implicitly provided."
msgstr "套件的「名稱-版本-發行編號」沒有隱含性地提供。"
-#: lib/rpmds.c:1180
+#: lib/rpmds.c:1228
msgid "header tags are always sorted after being loaded."
msgstr "表頭標籤總在載入之後排序。"
-#: lib/rpmds.c:1183
+#: lib/rpmds.c:1231
msgid "the scriptlet interpreter can use arguments from header."
msgstr "指令稿片段解譯器可以使用來自表頭的引數。"
-#: lib/rpmds.c:1186
+#: lib/rpmds.c:1234
msgid "a hardlink file set may be installed without being complete."
msgstr "硬鏈結檔案組也許沒有被完整安裝。"
-#: lib/rpmds.c:1189
+#: lib/rpmds.c:1237
msgid "package scriptlets may access the rpm database while installing."
msgstr "套件指令稿片段在安裝過程中可以存取 rpm 資料庫。"
-#: lib/rpmds.c:1193
+#: lib/rpmds.c:1241
msgid "internal support for lua scripts."
msgstr "lua 指令稿的內部支援。"
-#: lib/rpmds.c:1197
+#: lib/rpmds.c:1245
msgid "file digest algorithm is per package configurable"
msgstr ""
-#: lib/rpmds.c:1201
+#: lib/rpmds.c:1249
msgid "support for POSIX.1e file capabilities"
msgstr ""
-#: lib/rpmds.c:1205
+#: lib/rpmds.c:1253
msgid "package scriptlets can be expanded at install time."
msgstr ""
-#: lib/rpmds.c:1208
+#: lib/rpmds.c:1256
msgid "dependency comparison supports versions with tilde."
msgstr ""
-#: lib/rpmds.c:1211
+#: lib/rpmds.c:1259
msgid "support files larger than 4GB"
msgstr ""
-#: lib/rpmfi.c:789
+#: lib/rpmds.c:1262
+#, fuzzy
+msgid "support for rich dependencies."
+msgstr "不校驗套件相依性"
+
+#: lib/rpmds.c:1384
+#, c-format
+msgid "Unknown rich dependency op '%.*s'"
+msgstr ""
+
+#: lib/rpmds.c:1419
+msgid "Name required"
+msgstr ""
+
+#: lib/rpmds.c:1456
+msgid "Rich dependency does not start with '('"
+msgstr ""
+
+#: lib/rpmds.c:1464
+msgid "Missing argument to rich dependency op"
+msgstr ""
+
+#: lib/rpmds.c:1466
+msgid "Empty rich dependency"
+msgstr ""
+
+#: lib/rpmds.c:1480
+#, fuzzy, c-format
+msgid "Unterminated rich dependency: %s"
+msgstr "未終結的 %c:%s\n"
+
+#: lib/rpmds.c:1492
+msgid "Cannot chain different ops"
+msgstr ""
+
+#: lib/rpmds.c:1497
+msgid "Can only chain AND and OR ops"
+msgstr ""
+
+#: lib/rpmds.c:1587
+msgid "Junk after rich dependency"
+msgstr ""
+
+#: lib/rpmfi.c:813
#, c-format
msgid "user %s does not exist - using root\n"
msgstr "使用者 %s 不存在 - 現使用 root 代替\n"
-#: lib/rpmfi.c:796
+#: lib/rpmfi.c:820
#, c-format
msgid "group %s does not exist - using root\n"
msgstr "群組 %s 不存在 - 現使用 root 代替\n"
-#: lib/rpmfi.c:2128
+#: lib/rpmfi.c:2236
msgid "Bad magic"
msgstr "不良魔法數字"
-#: lib/rpmfi.c:2129
+#: lib/rpmfi.c:2237
msgid "Bad/unreadable header"
msgstr "不良或無法讀取的表頭"
-#: lib/rpmfi.c:2152
+#: lib/rpmfi.c:2260
msgid "Header size too big"
msgstr "表頭大小過大"
-#: lib/rpmfi.c:2153
+#: lib/rpmfi.c:2261
msgid "File too large for archive"
msgstr ""
-#: lib/rpmfi.c:2154
+#: lib/rpmfi.c:2262
msgid "Unknown file type"
msgstr "未知檔案類型"
-#: lib/rpmfi.c:2155
+#: lib/rpmfi.c:2263
msgid "Missing file(s)"
msgstr ""
-#: lib/rpmfi.c:2156
+#: lib/rpmfi.c:2264
msgid "Digest mismatch"
msgstr "摘要不符"
-#: lib/rpmfi.c:2157
+#: lib/rpmfi.c:2265
msgid "Internal error"
msgstr "內部錯誤"
-#: lib/rpmfi.c:2158
+#: lib/rpmfi.c:2266
msgid "Archive file not in header"
msgstr "在表頭中沒有封存檔"
-#: lib/rpmfi.c:2166
+#: lib/rpmfi.c:2274
msgid " failed - "
msgstr " 失敗 - "
-#: lib/rpmfi.c:2169
+#: lib/rpmfi.c:2277
#, c-format
msgid "%s: (error 0x%x)"
msgstr ""
-#: lib/rpmgi.c:49 lib/rpminstall.c:115 lib/rpminstall.c:308
+#: lib/rpmgi.c:55 lib/rpminstall.c:115 lib/rpminstall.c:308
#: lib/rpminstall.c:339 tools/rpmgraph.c:92 tools/rpmgraph.c:129
#, c-format
msgid "open of %s failed: %s\n"
msgstr "開啟 %s 失敗:%s\n"
-#: lib/rpmgi.c:136
+#: lib/rpmgi.c:144
+#, c-format
+msgid "Max level of manifest recursion exceeded: %s\n"
+msgstr ""
+
+#: lib/rpmgi.c:155
#, c-format
msgid "%s: not an rpm package (or package manifest)\n"
msgstr ""
@@ -2562,42 +2738,42 @@ msgstr "相依關係失敗:\n"
msgid "%s: not an rpm package (or package manifest): %s\n"
msgstr "%s:不是 rpm 套件 (或套件 manifest):%s\n"
-#: lib/rpminstall.c:359 lib/rpminstall.c:724 tools/rpmgraph.c:112
+#: lib/rpminstall.c:359 lib/rpminstall.c:744 tools/rpmgraph.c:112
#, c-format
msgid "%s cannot be installed\n"
msgstr "%s 無法安裝\n"
-#: lib/rpminstall.c:466
+#: lib/rpminstall.c:486
#, c-format
msgid "Retrieving %s\n"
msgstr "正在擷取 %s\n"
-#: lib/rpminstall.c:478
+#: lib/rpminstall.c:498
#, c-format
msgid "skipping %s - transfer failed\n"
msgstr ""
-#: lib/rpminstall.c:544
+#: lib/rpminstall.c:564
#, c-format
msgid "package %s is not relocatable\n"
msgstr "套件 %s 不能重新分配位置\n"
-#: lib/rpminstall.c:575
+#: lib/rpminstall.c:595
#, c-format
msgid "error reading from file %s\n"
msgstr "讀取檔案 %s 時發生錯誤\n"
-#: lib/rpminstall.c:669
+#: lib/rpminstall.c:689
#, c-format
msgid "\"%s\" specifies multiple packages:\n"
msgstr "「%s」指定多個套件:\n"
-#: lib/rpminstall.c:708
+#: lib/rpminstall.c:728
#, c-format
msgid "cannot open %s: %s\n"
msgstr "無法開啟 %s:%s\n"
-#: lib/rpminstall.c:714
+#: lib/rpminstall.c:734
#, c-format
msgid "Installing %s\n"
msgstr "正在安裝 %s\n"
@@ -2623,12 +2799,12 @@ msgstr "讀取失敗:%s (%d)\n"
msgid "not an rpm package\n"
msgstr "並非 rpm 套件\n"
-#: lib/rpmlock.c:118 lib/rpmlock.c:136
+#: lib/rpmlock.c:118 lib/rpmlock.c:137
#, c-format
msgid "can't create %s lock on %s (%s)\n"
msgstr ""
-#: lib/rpmlock.c:131
+#: lib/rpmlock.c:132
#, c-format
msgid "waiting for %s lock on %s\n"
msgstr ""
@@ -2644,9 +2820,9 @@ msgid "Failed to resolve symbol %s: %s\n"
msgstr ""
#: lib/rpmplugins.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Plugin %%__%s_%s not configured\n"
-msgstr "%s 插件未載入\n"
+msgstr ""
#: lib/rpmplugins.c:199
#, c-format
@@ -2786,60 +2962,79 @@ msgstr "%s 遺漏架構位於 %s:%d\n"
msgid "bad option '%s' at %s:%d\n"
msgstr "不良選項「%s」位於 %s:%d\n"
-#: lib/rpmrc.c:959
+#: lib/rpmrc.c:964
msgid "Failed to read auxiliary vector, /proc not mounted?\n"
msgstr ""
-#: lib/rpmrc.c:1400
+#: lib/rpmrc.c:1451
#, c-format
msgid "Unknown system: %s\n"
msgstr "未知系統:%s\n"
-#: lib/rpmrc.c:1402
+#: lib/rpmrc.c:1453
#, c-format
msgid "Please contact %s\n"
msgstr "請聯絡 %s\n"
-#: lib/rpmrc.c:1535
+#: lib/rpmrc.c:1586
#, c-format
msgid "Unable to open %s for reading: %m.\n"
msgstr "無法開啟 %s 以供讀取:%m。\n"
-#: lib/rpmscript.c:122
+#: lib/rpmscript.c:137
+msgid "No exec() called after fork() in lua scriptlet\n"
+msgstr ""
+
+#: lib/rpmscript.c:142
#, c-format
msgid "Unable to restore current directory: %m"
msgstr ""
-#: lib/rpmscript.c:133
+#: lib/rpmscript.c:153
msgid "<lua> scriptlet support not built in\n"
msgstr ""
-#: lib/rpmscript.c:263
+#: lib/rpmscript.c:282
#, c-format
msgid "Couldn't create temporary file for %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:290
+#: lib/rpmscript.c:317
#, c-format
msgid "Couldn't duplicate file descriptor: %s: %s\n"
msgstr ""
-#: lib/rpmscript.c:320
+#: lib/rpmscript.c:350
+#, fuzzy, c-format
+msgid "Unable to reset nice value: %s"
+msgstr "無法讀取圖示 %s:%s\n"
+
+#: lib/rpmscript.c:361
+#, fuzzy, c-format
+msgid "Unable to reset I/O priority: %s"
+msgstr "無法讀取圖示 %s:%s\n"
+
+#: lib/rpmscript.c:389
+#, fuzzy, c-format
+msgid "Fwrite failed: %s"
+msgstr "%s: Fwrite 失敗:%s\n"
+
+#: lib/rpmscript.c:407
#, c-format
msgid "%s scriptlet failed, waitpid(%d) rc %d: %s\n"
msgstr ""
-#: lib/rpmscript.c:324
+#: lib/rpmscript.c:411
#, c-format
msgid "%s scriptlet failed, signal %d\n"
msgstr ""
-#: lib/rpmscript.c:327
+#: lib/rpmscript.c:414
#, c-format
msgid "%s scriptlet failed, exit status %d\n"
msgstr ""
-#: lib/rpmtd.c:258
+#: lib/rpmtd.c:263
msgid "Unknown format"
msgstr "未知格式"
@@ -2851,127 +3046,146 @@ msgstr "安裝"
msgid "erase"
msgstr "抹除"
-#: lib/rpmts.c:98
+#: lib/rpmts.c:99
#, c-format
msgid "cannot open Packages database in %s\n"
msgstr "無法開啟套件資料庫 %s\n"
-#: lib/rpmts.c:197
+#: lib/rpmts.c:198
#, c-format
msgid "extra '(' in package label: %s\n"
msgstr "額外的「(」存在於套件標籤中:%s\n"
-#: lib/rpmts.c:215
+#: lib/rpmts.c:216
#, c-format
msgid "missing '(' in package label: %s\n"
msgstr "套件標籤遺漏「(」:%s\n"
-#: lib/rpmts.c:223
+#: lib/rpmts.c:224
#, c-format
msgid "missing ')' in package label: %s\n"
msgstr "套件標籤遺漏「)」:%s\n"
-#: lib/rpmts.c:279
+#: lib/rpmts.c:283
#, c-format
msgid "%s: reading of public key failed.\n"
msgstr ""
-#: lib/rpmts.c:1062
+#: lib/rpmts.c:1139
msgid "transaction"
msgstr "處理事項"
-#: lib/signature.c:74
+#: lib/signature.c:78
+#, c-format
+msgid "%s tag %u: BAD, invalid size %u"
+msgstr ""
+
+#: lib/signature.c:84
+#, c-format
+msgid "%s tag %u: BAD, invalid type %u"
+msgstr ""
+
+#: lib/signature.c:91
+#, fuzzy, c-format
+msgid "%s tag %u: BAD, invalid OpenPGP signature"
+msgstr "(不是個 OpenPGP 簽署)"
+
+#: lib/signature.c:160
#, c-format
msgid "sigh size(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:79
+#: lib/signature.c:165
msgid "sigh magic: BAD"
msgstr ""
-#: lib/signature.c:85
+#: lib/signature.c:171
#, c-format
msgid "sigh tags: BAD, no. of tags(%d) out of range"
msgstr ""
-#: lib/signature.c:91
+#: lib/signature.c:177
#, c-format
msgid "sigh data: BAD, no. of bytes(%d) out of range"
msgstr ""
-#: lib/signature.c:106
+#: lib/signature.c:192
#, c-format
msgid "sigh blob(%d): BAD, read returned %d"
msgstr ""
-#: lib/signature.c:123
+#: lib/signature.c:209
#, c-format
msgid "sigh tag[%d]: BAD, tag %d type %d offset %d count %d"
msgstr ""
-#: lib/signature.c:133
+#: lib/signature.c:219
msgid "sigh load: BAD"
msgstr ""
-#: lib/signature.c:147
+#: lib/signature.c:233
#, c-format
msgid "sigh pad(%zd): BAD, read %zd bytes"
msgstr ""
-#: lib/signature.c:163
+#: lib/signature.c:249
#, c-format
msgid "sigh sigSize(%zd): BAD, fstat(2) failed"
msgstr ""
-#: lib/signature.c:235
+#: lib/signature.c:369
+msgid "Unable to reload signature header.\n"
+msgstr "無法重新載入簽署表頭。\n"
+
+#: lib/signature.c:445
+msgid "Header "
+msgstr "表頭 "
+
+#: lib/signature.c:464
msgid "MD5 digest:"
msgstr "MD5 摘要:"
-#: lib/signature.c:274
+#: lib/signature.c:467
msgid "Header SHA1 digest:"
msgstr "表頭 SHA1 摘要:"
-#: lib/signature.c:316
-msgid "Header "
-msgstr "表頭 "
-
-#: lib/signature.c:357
+#: lib/signature.c:486
#, c-format
msgid "Verify signature: BAD PARAMETERS (%d %p %d %p %p)"
msgstr ""
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "skipped"
msgstr "已跳過"
-#: lib/transaction.c:1344
+#: lib/transaction.c:1364
msgid "failed"
msgstr "已失敗"
-#: lib/verify.c:251
+#: lib/verify.c:257
#, c-format
msgid "Duplicate username or UID for user %s\n"
msgstr ""
-#: lib/verify.c:272
+#: lib/verify.c:278
#, c-format
msgid "Duplicate groupname or GID for group %s\n"
msgstr ""
-#: lib/verify.c:371
+#: lib/verify.c:377
msgid "no state"
msgstr ""
-#: lib/verify.c:373
+#: lib/verify.c:379
msgid "unknown state"
msgstr ""
-#: lib/verify.c:424
+#: lib/verify.c:430
#, c-format
msgid "missing %c %s"
msgstr "遺漏 %c %s"
-#: lib/verify.c:476
+#: lib/verify.c:482
#, c-format
msgid "Unsatisfied dependencies for %s:\n"
msgstr ""
@@ -3045,240 +3259,240 @@ msgstr "用於不同大小陣列的陣列迭代器"
msgid "Generating %d missing index(es), please wait...\n"
msgstr ""
-#: lib/rpmdb.c:160 lib/rpmdb.c:206
+#: lib/rpmdb.c:166 lib/rpmdb.c:212
#, c-format
msgid "cannot open %s index using %s - %s (%d)\n"
msgstr ""
-#: lib/rpmdb.c:499
+#: lib/rpmdb.c:529
msgid "no dbpath has been set\n"
msgstr "尚未設定 dbpath\n"
-#: lib/rpmdb.c:1013
+#: lib/rpmdb.c:1046
msgid "miFreeHeader: skipping"
msgstr "miFreeHeader:跳過"
-#: lib/rpmdb.c:1028
+#: lib/rpmdb.c:1064
#, c-format
msgid "error(%d) storing record #%d into %s\n"
msgstr "儲存記錄 #%2$d 到 %3$s 時發生錯誤(%1$d)\n"
-#: lib/rpmdb.c:1121
+#: lib/rpmdb.c:1176
#, c-format
msgid "%s: regexec failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1302
+#: lib/rpmdb.c:1357
#, c-format
msgid "%s: regcomp failed: %s\n"
msgstr ""
-#: lib/rpmdb.c:1465
+#: lib/rpmdb.c:1520
msgid "rpmdbNextIterator: skipping"
msgstr "rpmdbNextIterator:跳過"
-#: lib/rpmdb.c:1550
+#: lib/rpmdb.c:1607
#, c-format
msgid "rpmdb: damaged header #%u retrieved -- skipping.\n"
msgstr "rpmdb:已擷取損壞的表頭 #%u -- 跳過。\n"
-#: lib/rpmdb.c:1998
+#: lib/rpmdb.c:2140
#, c-format
msgid "%s: cannot read header at 0x%x\n"
msgstr "%s:無法讀取位於 0x%x 的表頭\n"
-#: lib/rpmdb.c:2298
+#: lib/rpmdb.c:2575
msgid "no dbpath has been set"
msgstr "尚未設定 dbpath"
-#: lib/rpmdb.c:2316
+#: lib/rpmdb.c:2593
#, c-format
msgid "failed to create directory %s: %s\n"
msgstr ""
-#: lib/rpmdb.c:2350
+#: lib/rpmdb.c:2627
#, c-format
msgid "header #%u in the database is bad -- skipping.\n"
msgstr "在資料庫中有不良的表頭 #%u -- 跳過。\n"
-#: lib/rpmdb.c:2363
+#: lib/rpmdb.c:2640
#, c-format
msgid "cannot add record originally at %u\n"
msgstr "無法加入原本位於 %u 的記錄\n"
-#: lib/rpmdb.c:2379
+#: lib/rpmdb.c:2656
msgid "failed to rebuild database: original database remains in place\n"
msgstr "重建資料庫時失敗:原來的資料庫保持原狀\n"
-#: lib/rpmdb.c:2387
+#: lib/rpmdb.c:2664
msgid "failed to replace old database with new database!\n"
msgstr "以新的資料庫取代舊的資料庫時失敗!\n"
-#: lib/rpmdb.c:2389
+#: lib/rpmdb.c:2666
#, c-format
msgid "replace files in %s with files from %s to recover"
msgstr "以 %2$s 的檔案取代 %1$s 的檔案來復原"
-#: lib/rpmdb.c:2400
+#: lib/rpmdb.c:2677
#, c-format
msgid "failed to remove directory %s: %s\n"
msgstr "移除目錄時失敗 %s:%s\n"
-#: lib/backend/db3.c:36
+#: lib/backend/db3.c:96
#, c-format
msgid "%s error(%d) from %s: %s\n"
msgstr ""
-#: lib/backend/db3.c:39
+#: lib/backend/db3.c:99
#, c-format
msgid "%s error(%d): %s\n"
msgstr ""
-#: lib/backend/db3.c:592
+#: lib/backend/db3.c:282
+#, c-format
+msgid "unrecognized db option: \"%s\" ignored.\n"
+msgstr "無法辨識的資料庫選項:「%s」 已忽略。\n"
+
+#: lib/backend/db3.c:319
+#, c-format
+msgid "%s has invalid numeric value, skipped\n"
+msgstr "%s 有無效的數值,略過\n"
+
+#: lib/backend/db3.c:328
+#, c-format
+msgid "%s has too large or too small long value, skipped\n"
+msgstr "%s 有過大或過小的 long 數值,略過\n"
+
+#: lib/backend/db3.c:337
+#, c-format
+msgid "%s has too large or too small integer value, skipped\n"
+msgstr "%s 有過大或過小的整數值,略過\n"
+
+#: lib/backend/db3.c:797
#, c-format
msgid "cannot get %s lock on %s/%s\n"
msgstr "無法取得 %s 於 %s/%s 的鎖定\n"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "shared"
msgstr "已共享"
-#: lib/backend/db3.c:594
+#: lib/backend/db3.c:799
msgid "exclusive"
msgstr "排他"
-#: lib/backend/db3.c:674
+#: lib/backend/db3.c:881
#, c-format
msgid "invalid index type %x on %s/%s\n"
msgstr ""
-#: lib/backend/db3.c:874
+#: lib/backend/db3.c:1070
#, c-format
msgid "error(%d) getting \"%s\" records from %s index: %s\n"
msgstr ""
-#: lib/backend/db3.c:904
+#: lib/backend/db3.c:1100
#, c-format
msgid "error(%d) storing record \"%s\" into %s\n"
msgstr "儲存記錄「%2$s」到 %3$s 時發生錯誤(%1$d)\n"
-#: lib/backend/db3.c:912
+#: lib/backend/db3.c:1108
#, c-format
msgid "error(%d) removing record \"%s\" from %s\n"
msgstr "從 %3$s 移除記錄「%2$s」時發生錯誤(%1$d)\n"
-#: lib/backend/db3.c:996
+#: lib/backend/db3.c:1210
#, c-format
msgid "error(%d) adding header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1008
+#: lib/backend/db3.c:1219
#, c-format
msgid "error(%d) removing header #%d record\n"
msgstr ""
-#: lib/backend/db3.c:1067
+#: lib/backend/db3.c:1274
#, c-format
msgid "error(%d) allocating new package instance\n"
msgstr "分配新套件實體時發生錯誤(%d)\n"
-#: lib/backend/dbconfig.c:145
-#, c-format
-msgid "unrecognized db option: \"%s\" ignored.\n"
-msgstr "無法辨識的資料庫選項:「%s」 已忽略。\n"
-
-#: lib/backend/dbconfig.c:182
-#, c-format
-msgid "%s has invalid numeric value, skipped\n"
-msgstr "%s 有無效的數值,略過\n"
-
-#: lib/backend/dbconfig.c:191
-#, c-format
-msgid "%s has too large or too small long value, skipped\n"
-msgstr "%s 有過大或過小的 long 數值,略過\n"
-
-#: lib/backend/dbconfig.c:200
-#, c-format
-msgid "%s has too large or too small integer value, skipped\n"
-msgstr "%s 有過大或過小的整數值,略過\n"
-
-#: rpmio/macro.c:282
+#: rpmio/macro.c:283
#, c-format
msgid "%3d>%*s(empty)"
msgstr "%3d>%*s(清空)"
-#: rpmio/macro.c:323
+#: rpmio/macro.c:324
#, c-format
msgid "%3d<%*s(empty)\n"
msgstr "%3d<%*s(清空)\n"
-#: rpmio/macro.c:494
+#: rpmio/macro.c:495
#, c-format
msgid "Macro %%%s has unterminated opts\n"
msgstr "巨集 %%%s 具有未終結的選項\n"
-#: rpmio/macro.c:506 rpmio/macro.c:544
+#: rpmio/macro.c:507 rpmio/macro.c:545
#, c-format
msgid "Macro %%%s has unterminated body\n"
msgstr "巨集 %%%s 具有未終結的主體\n"
-#: rpmio/macro.c:563
+#: rpmio/macro.c:564
#, c-format
msgid "Macro %%%s has illegal name (%%define)\n"
msgstr "巨集 %%%s 具有無效的名稱 (%%define)\n"
-#: rpmio/macro.c:568
+#: rpmio/macro.c:569
#, c-format
msgid "Macro %%%s has empty body\n"
msgstr "巨集 %%%s 具有空的主體\n"
-#: rpmio/macro.c:573
+#: rpmio/macro.c:574
#, c-format
msgid "Macro %%%s needs whitespace before body\n"
msgstr ""
-#: rpmio/macro.c:577
+#: rpmio/macro.c:578
#, c-format
msgid "Macro %%%s failed to expand\n"
msgstr "巨集 %%%s 展開時失敗\n"
-#: rpmio/macro.c:616
+#: rpmio/macro.c:617
#, c-format
msgid "Macro %%%s has illegal name (%%undefine)\n"
msgstr "巨集 %%%s 具有無效的名稱 (%%undefine)\n"
-#: rpmio/macro.c:645
+#: rpmio/macro.c:647
#, c-format
msgid "Macro %%%s defined but not used within scope\n"
msgstr ""
-#: rpmio/macro.c:728
+#: rpmio/macro.c:730
#, c-format
msgid "Unknown option %c in %s(%s)\n"
msgstr "在 %2$s(%3$s) 中有未知的選項 %1$c\n"
-#: rpmio/macro.c:958
+#: rpmio/macro.c:963
msgid ""
"Too many levels of recursion in macro expansion. It is likely caused by "
"recursive macro declaration.\n"
msgstr ""
-#: rpmio/macro.c:1027 rpmio/macro.c:1044
+#: rpmio/macro.c:1032 rpmio/macro.c:1049
#, c-format
msgid "Unterminated %c: %s\n"
msgstr "未終結的 %c:%s\n"
-#: rpmio/macro.c:1085
+#: rpmio/macro.c:1090
#, c-format
msgid "A %% is followed by an unparseable macro\n"
msgstr "在無法解析的巨集之後跟著一個 %%\n"
-#: rpmio/macro.c:1101
+#: rpmio/macro.c:1106
#, c-format
msgid "failed to load macro file %s"
msgstr ""
-#: rpmio/macro.c:1483
+#: rpmio/macro.c:1510
#, c-format
msgid "======================== active %d empty %d\n"
msgstr "======================== 作用中 %d 清空 %d\n"
@@ -3298,31 +3512,31 @@ msgstr "檔案 %s:%s\n"
msgid "File %s is smaller than %u bytes\n"
msgstr "檔案 %s 小於 %u 位元組\n"
-#: rpmio/rpmfileutil.c:600
+#: rpmio/rpmfileutil.c:601
msgid "failed to create directory"
msgstr "無法建立目錄"
-#: rpmio/rpmlua.c:514
+#: rpmio/rpmlua.c:523
#, c-format
msgid "invalid syntax in lua scriptlet: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:532
+#: rpmio/rpmlua.c:541
#, c-format
msgid "invalid syntax in lua script: %s\n"
msgstr ""
-#: rpmio/rpmlua.c:537 rpmio/rpmlua.c:556
+#: rpmio/rpmlua.c:546 rpmio/rpmlua.c:565
#, c-format
msgid "lua script failed: %s\n"
msgstr "lua 指令稿失敗:%s\n"
-#: rpmio/rpmlua.c:551
+#: rpmio/rpmlua.c:560
#, c-format
msgid "invalid syntax in lua file: %s\n"
msgstr "lua 檔案內有無效語法:%s\n"
-#: rpmio/rpmlua.c:727
+#: rpmio/rpmlua.c:746
#, c-format
msgid "lua hook failed: %s\n"
msgstr ""
@@ -3331,19 +3545,19 @@ msgstr ""
msgid "[none]"
msgstr ""
-#: rpmio/rpmlog.c:76
+#: rpmio/rpmlog.c:80
msgid "(no error)"
msgstr "(無錯誤)"
-#: rpmio/rpmlog.c:201 rpmio/rpmlog.c:202 rpmio/rpmlog.c:203
+#: rpmio/rpmlog.c:222 rpmio/rpmlog.c:223 rpmio/rpmlog.c:224
msgid "fatal error: "
msgstr "嚴重錯誤:"
-#: rpmio/rpmlog.c:204
+#: rpmio/rpmlog.c:225
msgid "error: "
msgstr "錯誤:"
-#: rpmio/rpmlog.c:205
+#: rpmio/rpmlog.c:226
msgid "warning: "
msgstr "警告:"
@@ -3352,101 +3566,159 @@ msgstr "警告:"
msgid "memory alloc (%u bytes) returned NULL.\n"
msgstr "記憶體配置 (%u 位元組) 回傳 NULL。\n"
-#: rpmio/rpmpgp.c:1016
+#: rpmio/rpmpgp.c:627 rpmio/rpmpgp.c:715 rpmio/rpmpgp.c:782
+#, c-format
+msgid "Unsupported version of key: V%d\n"
+msgstr ""
+
+#: rpmio/rpmpgp.c:1081
#, c-format
msgid "V%d %s/%s %s, key ID %s"
msgstr ""
-#: rpmio/rpmpgp.c:1024
+#: rpmio/rpmpgp.c:1089
msgid "(none)"
msgstr "(無)"
-#: sign/rpmgensig.c:107
+#: sign/rpmgensig.c:58
+#, fuzzy, c-format
+msgid "error creating temp directory %s: %m\n"
+msgstr "讀取檔案 %s 時發生錯誤\n"
+
+#: sign/rpmgensig.c:66
+#, fuzzy, c-format
+msgid "error creating fifo %s: %m\n"
+msgstr "讀取檔案 %s 時發生錯誤\n"
+
+#: sign/rpmgensig.c:87
+#, c-format
+msgid "error delete fifo %s: %m\n"
+msgstr ""
+
+#: sign/rpmgensig.c:95
+#, fuzzy, c-format
+msgid "error delete directory %s: %m\n"
+msgstr "移除目錄時失敗 %s:%s\n"
+
+#: sign/rpmgensig.c:171
#, c-format
msgid "%s: Fwrite failed: %s\n"
msgstr "%s: Fwrite 失敗:%s\n"
-#: sign/rpmgensig.c:117
+#: sign/rpmgensig.c:181
#, c-format
msgid "%s: Fflush failed: %s\n"
msgstr ""
-#: sign/rpmgensig.c:145
+#: sign/rpmgensig.c:207
msgid "Unsupported PGP signature\n"
msgstr ""
-#: sign/rpmgensig.c:151
+#: sign/rpmgensig.c:213
#, c-format
msgid "Unsupported PGP hash algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:164
+#: sign/rpmgensig.c:226
#, c-format
msgid "Unsupported PGP pubkey algorithm %u\n"
msgstr ""
-#: sign/rpmgensig.c:199 sign/rpmgensig.c:205
+#: sign/rpmgensig.c:277
#, c-format
-msgid "Couldn't create pipe for signing: %m"
-msgstr "無法建立簽署用的導管:%m"
+msgid "Could not exec %s: %s\n"
+msgstr "無法執行 %s:%s\n"
-#: sign/rpmgensig.c:248 sign/rpmgensig.c:262
+#: sign/rpmgensig.c:287
#, fuzzy
-msgid "fdopen failed\n"
+msgid "Fopen failed\n"
msgstr "%s:開啟失敗:%s\n"
-#: sign/rpmgensig.c:254 sign/rpmgensig.c:278
-#, fuzzy
+#: sign/rpmgensig.c:302
msgid "Could not write to pipe\n"
-msgstr "無法執行 %s:%s\n"
+msgstr ""
-#: sign/rpmgensig.c:285
-#, fuzzy, c-format
+#: sign/rpmgensig.c:309
+#, c-format
msgid "Could not read from file %s: %s\n"
-msgstr "無法開啟 %%files 檔案 %s:%m\n"
+msgstr ""
-#: sign/rpmgensig.c:295
+#: sign/rpmgensig.c:319
#, c-format
msgid "gpg exec failed (%d)\n"
msgstr "gpg 執行失敗 (%d)\n"
-#: sign/rpmgensig.c:345
+#: sign/rpmgensig.c:361
msgid "gpg failed to write signature\n"
msgstr "寫入簽署時 gpg 失敗\n"
-#: sign/rpmgensig.c:362
+#: sign/rpmgensig.c:378
msgid "unable to read the signature\n"
msgstr "無法讀取簽名\n"
-#: sign/rpmgensig.c:501
+#: sign/rpmgensig.c:529
+#, fuzzy
+msgid "generateSignature failed\n"
+msgstr "%s:rpmWriteSignature 失敗:%s\n"
+
+#: sign/rpmgensig.c:543
+#, fuzzy
+msgid "rpmReadSignature failed\n"
+msgstr "%s:rpmReadSignature 失敗:%s"
+
+#: sign/rpmgensig.c:570
+msgid "missing libimaevm\n"
+msgstr ""
+
+#: sign/rpmgensig.c:589
+#, fuzzy
+msgid "headerReload failed\n"
+msgstr "執行失敗\n"
+
+#: sign/rpmgensig.c:596 sign/rpmgensig.c:801
+msgid "rpmMkTemp failed\n"
+msgstr "rpmMkTemp 失敗\n"
+
+#: sign/rpmgensig.c:603 sign/rpmgensig.c:635
+#, fuzzy
+msgid "copyFile failed\n"
+msgstr "執行失敗\n"
+
+#: sign/rpmgensig.c:621
+#, fuzzy
+msgid "headerWrite failed\n"
+msgstr "執行失敗\n"
+
+#: sign/rpmgensig.c:651
+#, c-format
+msgid "%s already contains identical file signatures\n"
+msgstr ""
+
+#: sign/rpmgensig.c:701
#, c-format
msgid "%s: rpmReadSignature failed: %s"
msgstr "%s:rpmReadSignature 失敗:%s"
-#: sign/rpmgensig.c:515
+#: sign/rpmgensig.c:715
msgid "Cannot sign RPM v3 packages\n"
msgstr ""
-#: sign/rpmgensig.c:557
+#: sign/rpmgensig.c:743
#, c-format
msgid "%s already contains identical signature, skipping\n"
msgstr ""
-#: sign/rpmgensig.c:605 sign/rpmgensig.c:628
+#: sign/rpmgensig.c:791 sign/rpmgensig.c:814
#, c-format
msgid "%s: rpmWriteSignature failed: %s\n"
msgstr "%s:rpmWriteSignature 失敗:%s\n"
-#: sign/rpmgensig.c:615
-msgid "rpmMkTemp failed\n"
-msgstr "rpmMkTemp 失敗\n"
-
-#: sign/rpmgensig.c:622
+#: sign/rpmgensig.c:808
#, c-format
msgid "%s: writeLead failed: %s\n"
msgstr "%s:writeLead 失敗:%s\n"
-#: sign/rpmgensig.c:647
+#: sign/rpmgensig.c:833
#, c-format
msgid "replacing %s failed: %s\n"
msgstr ""
@@ -3460,71 +3732,17 @@ msgstr "%s:讀取清單失敗:%s\n"
msgid "don't verify header+payload signature"
msgstr "不驗證表頭+酬載簽署"
-#~ msgid "Unable to write payload to %s: %s\n"
-#~ msgstr "無法寫入酬載到 %s:%s\n"
-
-#~ msgid "Unable to read payload from %s: %s\n"
-#~ msgstr "無法從 %s 讀取酬載:%s\n"
-
-#~ msgid "Unable to open temp file.\n"
-#~ msgstr "無法開啟暫時檔案。\n"
-
-#~ msgid "Unable to open sigtarget %s: %s\n"
-#~ msgstr "無法開啟簽署目標 %s:%s\n"
-
-#~ msgid "Unable to read header from %s: %s\n"
-#~ msgstr "無法讀取 %s 的表頭:%s\n"
-
-#~ msgid "Unable to write header to %s: %s\n"
-#~ msgstr "無法寫入 %s 的表頭:%s\n"
-
-#~ msgid "Failed to decode policy for %s\n"
-#~ msgstr "無法解碼 %s 的方針\n"
-
-#~ msgid "Failed to create temporary file for %s: %s\n"
-#~ msgstr "無法為 %s 建立暫存檔:%s\n"
-
-#~ msgid "Failed to write %s policy to file %s\n"
-#~ msgstr "無法寫入 %s 方針至檔案 %s\n"
-
-#~ msgid "Failed to connect to policy handler\n"
-#~ msgstr "無法連接至方針處理器\n"
-
-#~ msgid "Failed to begin policy transaction: %s\n"
-#~ msgstr "無法開始方針處理事項:%s\n"
-
-#~ msgid "Failed to remove temporary policy file %s: %s\n"
-#~ msgstr "無法移除暫存方針檔 %s:%s\n"
-
-#~ msgid "Failed to install policy module: %s (%s)\n"
-#~ msgstr "無法安裝方針模組:%s (%s)\n"
-
-#~ msgid "Failed to remove policy module: %s\n"
-#~ msgstr "無法移除方針模組:%s\n"
-
-#~ msgid "Failed to fork process: %s\n"
-#~ msgstr "無法分支程序:%s\n"
-
-#~ msgid "Failed to execute %s: %s\n"
-#~ msgstr "無法執行 %s:%s\n"
-
-#~ msgid "%s terminated abnormally\n"
-#~ msgstr "%s 已異常終止\n"
-
-#~ msgid "%s failed with exit code %i\n"
-#~ msgstr "%s 已失敗並伴隨代碼 %i\n"
-
-#~ msgid "Failed to commit policy changes\n"
-#~ msgstr "無法提交方針變更\n"
+#~ msgid "Conversion of %s to long integer failed.\n"
+#~ msgstr "%s 轉換至 long integer 失敗。\n"
-#~ msgid "Failed to expand restorecon path"
-#~ msgstr "無法擴展 restorecon 路徑"
+#~ msgid "Enter pass phrase: "
+#~ msgstr "輸入通關密語: "
-#~ msgid "Failed to relabel filesystem. Files may be mislabeled\n"
-#~ msgstr "無法將檔案系統重新標籤。檔案可能標籤有誤\n"
+#~ msgid "Pass phrase is good.\n"
+#~ msgstr "通關密語良好。\n"
-#~ msgid "Failed to reload file contexts. Files may be mislabeled\n"
-#~ msgstr "無法重新載入檔案情境。檔案可能標籤有誤\n"
+#~ msgid "Bad owner/group: %s\n"
+#~ msgstr "不良擁有者/群組:%s\n"
-#~ msgid "Failed to extract policy from %s\n"
-#~ msgstr "無法從 %s 抽出方針\n"
+#~ msgid "Couldn't create pipe for signing: %m"
+#~ msgstr "無法建立簽署用的導管:%m"
diff --git a/python/header-py.c b/python/header-py.c
index a8470ee3..63167d9e 100644
--- a/python/header-py.c
+++ b/python/header-py.c
@@ -347,31 +347,31 @@ static PyObject * hdr_reduce(hdrObject *s)
static struct PyMethodDef hdr_methods[] = {
{"keys", (PyCFunction) hdrKeyList, METH_NOARGS,
- NULL },
+ "hdr.keys() -- Return a list of the header's rpm tags (int RPMTAG_*)." },
{"unload", (PyCFunction) hdrUnload, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "hdr.unload(legacyHeader=False) -- Return binary representation\nof the header." },
{"expandFilelist", (PyCFunction) hdrExpandFilelist,METH_NOARGS,
- NULL },
+ "DEPRECATED -- Use hdr.convert() instead." },
{"compressFilelist",(PyCFunction) hdrCompressFilelist,METH_NOARGS,
- NULL },
+ "DEPRECATED -- Use hdr.convert() instead." },
{"fullFilelist", (PyCFunction) hdrFullFilelist, METH_NOARGS,
- NULL },
+ "DEPRECATED -- Obsolete method."},
{"convert", (PyCFunction) hdrConvert, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "hdr.convert(op=-1) -- Convert header - See HEADERCONV_*\nfor possible values of op."},
{"format", (PyCFunction) hdrFormat, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "hdr.format(format) -- Expand a query string with the header data.\n\nSee rpm -q for syntax." },
{"sprintf", (PyCFunction) hdrFormat, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "Alias for .format()." },
{"isSource", (PyCFunction)hdrIsSource, METH_NOARGS,
- NULL },
+ "hdr.isSource() -- Return if header describes a source package." },
{"write", (PyCFunction)hdrWrite, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "hdr.write(file, magic=True) -- Write header to file." },
{"dsOfHeader", (PyCFunction)hdr_dsOfHeader, METH_NOARGS,
- NULL},
+ "hdr.dsOfHeader() -- Return dependency set with the header's NEVR."},
{"dsFromHeader", (PyCFunction)hdr_dsFromHeader, METH_VARARGS|METH_KEYWORDS,
- NULL},
+ "hdr.dsFromHeader(to=RPMTAG_REQUIRENAME, flags=None)\nGet dependency set from header. to must be one of the NAME tags\nbelonging to a dependency:\n'Providename', 'Requirename', 'Obsoletename', 'Conflictname',\n'Triggername', 'Recommendname', 'Suggestname', 'Supplementname',\n'Enhancename' or one of the corresponding RPMTAG_*NAME constants." },
{"fiFromHeader", (PyCFunction)hdr_fiFromHeader, METH_VARARGS|METH_KEYWORDS,
- NULL},
+ "hdr.fiFromHeader() -- Return rpm.fi object containing the file\nmeta data from the header.\n\nDEPRECATED - Use rpm.files(hdr) instead."},
{"__reduce__", (PyCFunction)hdr_reduce, METH_NOARGS,
NULL},
@@ -680,7 +680,56 @@ static PySequenceMethods hdr_as_sequence = {
};
static char hdr_doc[] =
-"";
+ "A header object represents an RPM package header.\n"
+ "\n"
+ "All RPM packages have headers that provide metadata for the package.\n"
+ "Header objects can be returned by database queries or loaded from a\n"
+ "binary package on disk.\n"
+ "\n"
+ "The ts.hdrFromFdno() function returns the package header from a\n"
+ "package on disk, verifying package signatures and digests of the\n"
+ "package while reading.\n"
+ "\n"
+ "Note: The older method rpm.headerFromPackage() which has been replaced\n"
+ "by ts.hdrFromFdno() used to return a (hdr, isSource) tuple.\n"
+ "\n"
+ "If you need to distinguish source/binary headers, do:\n"
+ "\n"
+ " import os, rpm\n"
+ "\n"
+ " ts = rpm.TransactionSet()\n"
+ " fdno = os.open('/tmp/foo-1.0-1.i386.rpm', os.O_RDONLY)\n"
+ " hdr = ts.hdrFromFdno(fdno)\n"
+ " os.close(fdno)\n"
+ " if hdr[rpm.RPMTAG_SOURCEPACKAGE]:\n"
+ " print 'header is from a source package'\n"
+ " else:\n"
+ " print 'header is from a binary package'\n"
+ "\n"
+ "The Python interface to the header data is quite elegant. It\n"
+ "presents the data in a dictionary form. We'll take the header we\n"
+ "just loaded and access the data within it:\n"
+ "\n"
+ " print hdr[rpm.RPMTAG_NAME]\n"
+ " print hdr[rpm.RPMTAG_VERSION]\n"
+ " print hdr[rpm.RPMTAG_RELEASE]\n"
+ "\n"
+ "in the case of our 'foo-1.0-1.i386.rpm' package, this code would\n"
+ "output:\n"
+ " foo\n"
+ " 1.0\n"
+ " 1\n"
+ "\n"
+ "You make also access the header data by string name:\n"
+ "\n"
+ " print hdr['name']\n"
+ " print hdr['version']\n"
+ " print hdr['release']\n"
+ "\n"
+ "This method of access is a teensy bit slower because the name must be\n"
+ "translated into the tag number dynamically. You also must make sure\n"
+ "the strings in header lookups don't get translated, or the lookups\n"
+ "will fail.\n";
PyTypeObject hdr_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
diff --git a/python/rpm/__init__.py b/python/rpm/__init__.py
index 196be3c4..cddf349e 100644
--- a/python/rpm/__init__.py
+++ b/python/rpm/__init__.py
@@ -2,10 +2,39 @@ r"""RPM Module
This module enables you to manipulate rpms and the rpm database.
+The rpm base module provides the main starting point for
+accessing RPM from Python. For most usage, call
+the TransactionSet method to get a transaction set (rpmts).
+
+For example:
+ import rpm
+ ts = rpm.TransactionSet()
+
+The transaction set will open the RPM database as needed, so
+in most cases, you do not need to explicitly open the
+database. The transaction set is the workhorse of RPM.
+
+You can open another RPM database, such as one that holds
+all packages for a given Linux distribution, to provide
+packages used to solve dependencies. To do this, use
+the following code:
+
+rpm.addMacro('_dbpath', '/path/to/alternate/database')
+solvets = rpm.TransactionSet()
+solvets.openDB()
+rpm.delMacro('_dbpath')
+
+# Open default database
+ts = rpm.TransactionSet()
+
+This code gives you access to two RPM databases through
+two transaction sets (rpmts): ts is a transaction set
+associated with the default RPM database and solvets
+is a transaction set tied to an alternate database, which
+is very useful for resolving dependencies.
"""
import warnings
-import os
from rpm._rpm import *
from rpm.transaction import *
import rpm._rpm as _rpm
@@ -32,10 +61,13 @@ except ImportError:
# backwards compatibility + give the same class both ways
ts = TransactionSet
+
def headerLoad(*args, **kwds):
+ """DEPRECATED! Use rpm.hdr() instead."""
warnings.warn("Use rpm.hdr() instead.", DeprecationWarning, stacklevel=2)
return hdr(*args, **kwds)
+
def _doHeaderListFromFD(rpm_fd, retrofit):
hlist = []
while 1:
@@ -49,18 +81,22 @@ def _doHeaderListFromFD(rpm_fd, retrofit):
return hlist
-def readHeaderListFromFD(file_desc, retrofit = True):
+
+def readHeaderListFromFD(file_desc, retrofit=True):
if not isinstance(file_desc, fd):
file_desc = fd(file_desc)
return _doHeaderListFromFD(file_desc, retrofit)
-
-def readHeaderListFromFile(path, retrofit = True):
+
+
+def readHeaderListFromFile(path, retrofit=True):
f = fd(path)
hlist = _doHeaderListFromFD(f, retrofit)
f.close()
return hlist
-
+
+
def readHeaderFromFD(file_desc):
+ """Return (header, pos_before_hdr)"""
if not isinstance(file_desc, fd):
file_desc = fd(file_desc)
try:
@@ -72,7 +108,9 @@ def readHeaderFromFD(file_desc):
return (h, offset)
+
def signalsCaught(siglist):
+ """Returns True if any of the signals was caught."""
caught = []
for sig in siglist:
if signalCaught(sig):
@@ -80,5 +118,11 @@ def signalsCaught(siglist):
return caught
-def dsSingle(TagN, N, EVR = "", Flags = RPMSENSE_ANY):
+
+def dsSingle(TagN, N, EVR="", Flags=RPMSENSE_ANY):
+ """
+ Creates a single entry dependency set (ds)
+
+ dsSingle(RPMTAG_CONFLICTNAME, "rpm") correspons to "Conflicts: rpm"
+ """
return ds((N, Flags, EVR), TagN)
diff --git a/python/rpm/transaction.py b/python/rpm/transaction.py
index db7ca67e..ebb41aea 100644
--- a/python/rpm/transaction.py
+++ b/python/rpm/transaction.py
@@ -9,6 +9,7 @@ if sys.version_info[0] == 3:
else:
_string_types = basestring,
+
# TODO: migrate relevant documentation from C-side
class TransactionSet(TransactionSetCore):
_probFilter = 0
@@ -17,7 +18,7 @@ class TransactionSet(TransactionSetCore):
oval = getattr(self, attr)
setattr(self, attr, val)
return oval
-
+
def setVSFlags(self, flags):
return self._wrapSetGet('_vsflags', flags)
@@ -37,8 +38,8 @@ class TransactionSet(TransactionSetCore):
return self._wrapSetGet('_probFilter', ignoreSet)
def parseSpec(self, specfile):
- import _rpmb
- return _rpmb.spec(specfile)
+ import rpm._rpmb
+ return rpm._rpmb.spec(specfile)
def getKeys(self):
keys = []
@@ -64,7 +65,7 @@ class TransactionSet(TransactionSetCore):
def addInstall(self, item, key, how="u"):
header = self._f2hdr(item)
- if not how in ['u', 'i']:
+ if how not in ['u', 'i']:
raise ValueError('how argument must be "u" or "i"')
upgrade = (how == "u")
@@ -138,14 +139,18 @@ class TransactionSet(TransactionSetCore):
needflags = rpm.RPMSENSE_ANY
if len(needs) == 3:
needop = needs[1]
- if needop.find('<') >= 0: needflags |= rpm.RPMSENSE_LESS
- if needop.find('=') >= 0: needflags |= rpm.RPMSENSE_EQUAL
- if needop.find('>') >= 0: needflags |= rpm.RPMSENSE_GREATER
+ if needop.find('<') >= 0:
+ needflags |= rpm.RPMSENSE_LESS
+ if needop.find('=') >= 0:
+ needflags |= rpm.RPMSENSE_EQUAL
+ if needop.find('>') >= 0:
+ needflags |= rpm.RPMSENSE_GREATER
needver = needs[2]
else:
needver = ""
- res.append(((n, v, r),(needname,needver),needflags,sense,p.key))
+ res.append(((n, v, r),
+ (needname, needver), needflags, sense, p.key))
return res
diff --git a/python/rpmarchive-py.c b/python/rpmarchive-py.c
index d61a896f..53a078a4 100644
--- a/python/rpmarchive-py.c
+++ b/python/rpmarchive-py.c
@@ -178,24 +178,29 @@ static PyObject *rpmarchive_writeto(rpmarchiveObject *s,
static struct PyMethodDef rpmarchive_methods[] = {
{ "tell", (PyCFunction)rpmarchive_tell, METH_NOARGS,
- NULL },
+ "archive.tell() -- Return current position in archive." },
{ "close", (PyCFunction)rpmarchive_close, METH_NOARGS,
- NULL },
+ "archive.close() -- Close archive and do final consistency checks."},
{ "read", (PyCFunction)rpmarchive_read, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "archive.read(size=None) -- Read next size bytes from current file.\n\n"
+ "Returns bytes\n"},
{ "write", (PyCFunction)rpmarchive_write, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "archive.write(buffer) -- Write buffer to current file." },
{ "readto", (PyCFunction)rpmarchive_readto, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "archive.readto(fd, nodigest=None) -- Read content of fd\n"
+ "and write as content of the current file to archive." },
{ "writeto", (PyCFunction)rpmarchive_writeto,METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "archive.writeto(fd) -- Write content of current file in archive\n to fd." },
{ "hascontent", (PyCFunction)rpmarchive_has_content, METH_NOARGS,
- NULL },
+ "archive.hascontent() -- Return if current file has a content.\n\n"
+ "Returns false for non regular and all but one of hardlinked files."},
{ NULL, NULL, 0, NULL }
};
static char rpmarchive_doc[] =
-"";
+"Gives access to the payload of an rpm package.\n\n"
+"Is returned by .archive() method of an rpm.files instance.\n"
+"All methods can raise an IOError exception.";
static PyObject *rpmarchive_iternext(rpmarchiveObject *s)
{
diff --git a/python/rpmds-py.c b/python/rpmds-py.c
index 19ea6f53..d5157317 100644
--- a/python/rpmds-py.c
+++ b/python/rpmds-py.c
@@ -190,39 +190,41 @@ static struct PyMethodDef rpmds_methods[] = {
{"Count", (PyCFunction)rpmds_Count, METH_NOARGS,
"Deprecated, use len(ds) instead.\n" },
{"Ix", (PyCFunction)rpmds_Ix, METH_NOARGS,
- "ds.Ix -> Ix - Return current element index.\n" },
+ "ds.Ix -> Ix -- Return current element index.\n" },
{"DNEVR", (PyCFunction)rpmds_DNEVR, METH_NOARGS,
- "ds.DNEVR -> DNEVR - Return current DNEVR.\n" },
+ "ds.DNEVR -> DNEVR -- Return current DNEVR.\n" },
{"N", (PyCFunction)rpmds_N, METH_NOARGS,
- "ds.N -> N - Return current N.\n" },
+ "ds.N -> N -- Return current N.\n" },
{"EVR", (PyCFunction)rpmds_EVR, METH_NOARGS,
- "ds.EVR -> EVR - Return current EVR.\n" },
+ "ds.EVR -> EVR -- Return current EVR.\n" },
{"Flags", (PyCFunction)rpmds_Flags, METH_NOARGS,
- "ds.Flags -> Flags - Return current Flags.\n" },
+ "ds.Flags -> Flags -- Return current Flags.\n" },
{"TagN", (PyCFunction)rpmds_TagN, METH_NOARGS,
- "ds.TagN -> TagN - Return current TagN.\n" },
+ "ds.TagN -> TagN -- Return TagN (RPMTAG_*NAME)\n\n"
+ "the type of all dependencies in this set.\n" },
{"Color", (PyCFunction)rpmds_Color, METH_NOARGS,
- "ds.Color -> Color - Return current Color.\n" },
+ "ds.Color -> Color -- Return current Color.\n" },
{"SetNoPromote",(PyCFunction)rpmds_SetNoPromote, METH_VARARGS|METH_KEYWORDS,
- NULL},
+ "ds.SetNoPromote(noPromote) -- Set noPromote for this instance.\n\n"
+ "If True non existing epochs are no longer equal to an epoch of 0."},
{"Notify", (PyCFunction)rpmds_Notify, METH_VARARGS|METH_KEYWORDS,
- NULL},
+ "ds.Notify(location, returnCode) -- Print debug info message\n\n if debugging is enabled."},
{"Sort", (PyCFunction)rpmds_Sort, METH_NOARGS,
NULL},
{"Find", (PyCFunction)rpmds_Find, METH_O,
- NULL},
+ "ds.find(other_ds) -- Return index of other_ds in ds"},
{"Merge", (PyCFunction)rpmds_Merge, METH_O,
NULL},
{"Search", (PyCFunction)rpmds_Search, METH_O,
"ds.Search(element) -> matching ds index (-1 on failure)\n\
-- Check that element dependency range overlaps some member of ds.\n\
-The current index in ds is positioned at overlapping member upon success.\n" },
+Check that element dependency range overlaps some member of ds.\n\
+The current index in ds is positioned at overlapping member." },
{"Rpmlib", (PyCFunction)rpmds_Rpmlib, METH_VARARGS|METH_KEYWORDS|METH_STATIC,
- "ds.Rpmlib -> nds - Return internal rpmlib dependency set.\n"},
+ "ds.Rpmlib -> nds -- Return internal rpmlib dependency set.\n"},
{"Compare", (PyCFunction)rpmds_Compare, METH_O,
- NULL},
+ "ds.compare(other) -- Compare current entries of self and other.\n\nReturns True if the entries match each other, False otherwise"},
{"Instance", (PyCFunction)rpmds_Instance, METH_NOARGS,
- NULL},
+ "ds.Instance() -- Return rpmdb key of corresponding package or 0."},
{NULL, NULL} /* sentinel */
};
@@ -346,7 +348,11 @@ static PyObject * rpmds_new(PyTypeObject * subtype, PyObject *args, PyObject *kw
}
static char rpmds_doc[] =
-"";
+ "rpm.ds (dependendcy set) gives a more convenient access to dependencies\n\n"
+ "It can hold multiple entries of Name Flags and EVR.\n"
+ "It typically represents all dependencies of one kind of a package\n"
+ "e.g. all Requires or all Conflicts.\n"
+ ;
PyTypeObject rpmds_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
diff --git a/python/rpmfi-py.c b/python/rpmfi-py.c
index be80f4df..cf1b016d 100644
--- a/python/rpmfi-py.c
+++ b/python/rpmfi-py.c
@@ -238,51 +238,51 @@ rpmfi_iternext(rpmfiObject * s)
static struct PyMethodDef rpmfi_methods[] = {
{"FC", (PyCFunction)rpmfi_FC, METH_NOARGS,
- NULL},
+ "fi.FC() -- Return number of files entries."},
{"FX", (PyCFunction)rpmfi_FX, METH_NOARGS,
- NULL},
+ "fi.FX() -- Return current position of the iterator."},
{"DC", (PyCFunction)rpmfi_DC, METH_NOARGS,
- NULL},
+ "fi.DC() --Return number of directory entries."},
{"DX", (PyCFunction)rpmfi_DX, METH_NOARGS,
- NULL},
+ "fi.DX() -- Return number of directory entry matching current file."},
{"BN", (PyCFunction)rpmfi_BN, METH_NOARGS,
- NULL},
+ "fi.BN() -- Return base name of current file."},
{"DN", (PyCFunction)rpmfi_DN, METH_NOARGS,
- NULL},
+ "fi.DN() -- Return directory name of the current file."},
{"FN", (PyCFunction)rpmfi_FN, METH_NOARGS,
- NULL},
+ "fi.FN() -- Return the name/path of the current file."},
{"FindFN", (PyCFunction)rpmfi_FindFN, METH_VARARGS|METH_KEYWORDS,
- NULL},
+ "fi.FindFN(pathname) -- Return entry number of given pathname.\n\nReturn -1 if file is not found.\nLeading '.' in the given name is stripped before the search."},
{"FFlags", (PyCFunction)rpmfi_FFlags, METH_NOARGS,
- NULL},
+ "fi.FFlags() -- Return the flags of the current file."},
{"VFlags", (PyCFunction)rpmfi_VFlags, METH_NOARGS,
- NULL},
+ "fi.VFlags() -- Return the verify flags of the current file.\n\nSee RPMVERIFY_* (in rpmvf.h)"},
{"FMode", (PyCFunction)rpmfi_FMode, METH_NOARGS,
- NULL},
+ "fi.FMode() -- Return the mode flags of the current file."},
{"FState", (PyCFunction)rpmfi_FState, METH_NOARGS,
- NULL},
+ "fi.FState() -- Return the file state of the current file."},
{"MD5", (PyCFunction)rpmfi_Digest, METH_NOARGS,
- NULL},
+ "fi.() -- Return the checksum of the current file.\n\nDEPRECATED! Use fi.Digest instead!"},
{"Digest", (PyCFunction)rpmfi_Digest, METH_NOARGS,
- NULL},
+ "fi.() -- Return the checksum of the current file."},
{"FLink", (PyCFunction)rpmfi_FLink, METH_NOARGS,
- NULL},
+ "fi.() -- Return the link target of the current file.\n\nFor soft links only."},
{"FSize", (PyCFunction)rpmfi_FSize, METH_NOARGS,
- NULL},
+ "fi.() -- Return the size of the current file."},
{"FRdev", (PyCFunction)rpmfi_FRdev, METH_NOARGS,
- NULL},
+ "fi.() -- Return the device number of the current file.\n\nFor device files only."},
{"FMtime", (PyCFunction)rpmfi_FMtime, METH_NOARGS,
- NULL},
+ "fi.() -- Return the modification time of the current file."},
{"FUser", (PyCFunction)rpmfi_FUser, METH_NOARGS,
- NULL},
+ "fi.() -- Return the user name owning the current file."},
{"FGroup", (PyCFunction)rpmfi_FGroup, METH_NOARGS,
- NULL},
+ "fi.() -- Return the group name of the current file."},
{"FColor", (PyCFunction)rpmfi_FColor, METH_NOARGS,
- NULL},
+ "fi.() -- Return the color of the current file.\n\n2 for 64 bit binaries\n1 for 32 bit binaries\n0 for everything else"},
{"FClass", (PyCFunction)rpmfi_FClass, METH_NOARGS,
- NULL},
+ "fi.() -- Return the classification of the current file."},
{"FLinks", (PyCFunction)rpmfi_FLinks, METH_NOARGS,
- NULL},
+ "fi.() -- Return the number of hardlinks pointing to of the\ncurrent file."},
{NULL, NULL} /* sentinel */
};
@@ -354,7 +354,11 @@ static PyObject * rpmfi_new(PyTypeObject * subtype, PyObject *args, PyObject *kw
}
static char rpmfi_doc[] =
-"";
+"File iterator\n\n"
+"DEPRECATED! This old API mixes storing and iterating over the meta data\n"
+"of the files of a package. Use rpm.files and rpm.file data types as a\n"
+"much cleaner API.\n\n"
+"Iteration returns a tuple of\n(FN, FSize, FMode, FMtime, FFlags, FRdev, FInode, FNlink, FState,\n VFlags, FUser, FGroup, Digest)";
PyTypeObject rpmfi_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
diff --git a/python/rpmfiles-py.c b/python/rpmfiles-py.c
index 782d201f..beb1da9c 100644
--- a/python/rpmfiles-py.c
+++ b/python/rpmfiles-py.c
@@ -25,7 +25,8 @@ static void rpmfile_dealloc(rpmfileObject * s)
}
static char rpmfile_doc[] =
-"";
+ "Gives access to the meta data of a single file.\n\n"
+ "Instances of this class are only available through an rpm.files object.";
static PyObject *rpmfile_fx(rpmfileObject *s)
{
@@ -216,32 +217,56 @@ static PyObject *rpmfile_matches(rpmfileObject *s, PyObject *o)
}
static PyGetSetDef rpmfile_getseters[] = {
- { "fx", (getter) rpmfile_fx, NULL, NULL },
- { "dx", (getter) rpmfile_dx, NULL, NULL },
- { "name", (getter) rpmfile_name, NULL, NULL },
+ { "fx", (getter) rpmfile_fx, NULL,
+ "index in header and rpm.files object" },
+ { "dx", (getter) rpmfile_dx, NULL,
+ "index of dirname entry" },
+ { "name", (getter) rpmfile_name, NULL,
+ "file name (path)" },
{ "basename", (getter) rpmfile_basename, NULL, NULL },
{ "dirname", (getter) rpmfile_dirname, NULL, NULL },
- { "orig_name", (getter) rpmfile_orig_name, NULL, NULL },
- { "orig_basename", (getter) rpmfile_orig_basename, NULL, NULL },
- { "orig_dirname", (getter) rpmfile_orig_dirname, NULL, NULL },
- { "mode", (getter) rpmfile_mode, NULL, NULL },
- { "mtime", (getter) rpmfile_mtime, NULL, NULL },
- { "size", (getter) rpmfile_size, NULL, NULL },
- { "rdev", (getter) rpmfile_rdev, NULL, NULL },
- { "inode", (getter) rpmfile_inode, NULL, NULL },
- { "fflags", (getter) rpmfile_fflags, NULL, NULL },
- { "vflags", (getter) rpmfile_vflags, NULL, NULL },
- { "linkto", (getter) rpmfile_linkto, NULL, NULL },
- { "color", (getter) rpmfile_color, NULL, NULL },
- { "nlink", (getter) rpmfile_nlink, NULL, NULL },
- { "links", (getter) rpmfile_links, NULL, NULL },
- { "user", (getter) rpmfile_user, NULL, NULL },
- { "group", (getter) rpmfile_group, NULL, NULL },
- { "digest", (getter) rpmfile_digest, NULL, NULL },
- { "class", (getter) rpmfile_class, NULL, NULL },
- { "state", (getter) rpmfile_state, NULL, NULL },
- { "langs", (getter) rpmfile_langs, NULL, NULL },
- { "caps", (getter) rpmfile_caps, NULL, NULL },
+ { "orig_name", (getter) rpmfile_orig_name, NULL,
+ "original file name (may differ due to relocation)" },
+ { "orig_basename", (getter) rpmfile_orig_basename, NULL,
+ "original base name (may differ due to relocation)" },
+ { "orig_dirname", (getter) rpmfile_orig_dirname, NULL,
+ "original dir name (may differ due to relocation)" },
+ { "mode", (getter) rpmfile_mode, NULL,
+ "mode flags / unix permissions" },
+ { "mtime", (getter) rpmfile_mtime, NULL,
+ "modification time (in unix time)" },
+ { "size", (getter) rpmfile_size, NULL,
+ "file size" },
+ { "rdev", (getter) rpmfile_rdev, NULL,
+ "device number - for device files only" },
+ { "inode", (getter) rpmfile_inode, NULL,
+ "inode number - contains fake, data used to identify hard liked files" },
+ { "fflags", (getter) rpmfile_fflags, NULL,
+ "file flags - see RPMFILE_* constants" },
+ { "vflags", (getter) rpmfile_vflags, NULL,
+ "verification flags - see RPMVERIFY_* (in rpmvf.h)" },
+ { "linkto", (getter) rpmfile_linkto, NULL,
+ "link target - symlinks only" },
+ { "color", (getter) rpmfile_color, NULL,
+ "file color - 2 for 64 bit binaries, 1 for 32 bit binaries, 0 else" },
+ { "nlink", (getter) rpmfile_nlink, NULL,
+ "number of hardlinks pointing to the same content as this file" },
+ { "links", (getter) rpmfile_links, NULL,
+ "list of file indexes that are hardlinked with this file" },
+ { "user", (getter) rpmfile_user, NULL,
+ "user name owning this file" },
+ { "group", (getter) rpmfile_group, NULL,
+ "group name owning this file" },
+ { "digest", (getter) rpmfile_digest, NULL,
+ "check sum of file content" },
+ { "class", (getter) rpmfile_class, NULL,
+ "classfication of file content based on libmagic/file(1)" },
+ { "state", (getter) rpmfile_state, NULL,
+ "file state - see RPMFILE_STATE_* constants" },
+ { "langs", (getter) rpmfile_langs, NULL,
+ "language the file provides (typically for doc files)" },
+ { "caps", (getter) rpmfile_caps, NULL,
+ "file capabilities" },
{ NULL, NULL, NULL, NULL }
};
@@ -484,15 +509,26 @@ static PyMappingMethods rpmfiles_as_mapping = {
static struct PyMethodDef rpmfiles_methods[] = {
{ "archive", (PyCFunction) rpmfiles_archive, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "files.archive(fd, write=False) -- Return a rpm.archive object\n\n"
+ "Args:\n"
+ " fd : File to read from or write to.\n"
+ " write : True to get an archive writer, False for an archive reader"},
{ "find", (PyCFunction) rpmfiles_find, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "files.find(filename, orig=False) -- Return index of given file name.\n\n"
+ " Return -1 if file is not found.\n"
+ " Leading \".\" in filename is ignored."},
{ NULL, NULL, 0, NULL }
};
static char rpmfiles_doc[] =
-"";
-
+ "rpm.files(hdr, tag=RPMTAG_BASENAMES, flags=None, pool=None)\n\n"
+ "Stores the meta data of a package's files.\n\n"
+ "Args:\n"
+ "\thdr: The header object to get the data from.\n"
+ "\tflags : Controls which data to store and whether to create\n\t\tcopies or use the data from the header.\n\t\tBy default all data is copied.\n\t\tSee RPMFI_* constants in rpmfiles.h.\n"
+ "\tpool : rpm.strpool object to store the strings in.\n\t\tLeave empty to use global pool.\n"
+ "\ttag : Obsolete. Leave alone!\n\n"
+ "rpm.files is basically a sequence of rpm.file objects.\nNote that this is a read only data structure. To write file data you\nhave to write it directly into aheader object.";
PyTypeObject rpmfiles_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
diff --git a/python/rpmmi-py.c b/python/rpmmi-py.c
index e581b27c..0e275757 100644
--- a/python/rpmmi-py.c
+++ b/python/rpmmi-py.c
@@ -36,20 +36,20 @@
* \code
* import rpm
* ts = rpm.TransactionSet()
- * mi = ts.dbMatch('name', "kernel")
+ * mi = ts.dbMatch('name', 'kernel')
* for h in mi:
- * print "%s-%s-%s" % (h['name'], h['version'], h['release'])
+ * print '%s-%s-%s' % (h['name'], h['version'], h['release'])
* \endcode
*
* Finally, here's an example that retrieves all packages whose name
- * matches the glob expression "XFree*":
+ * matches the glob expression 'XFree*':
* \code
* import rpm
* ts = rpm.TransactionSet()
* mi = ts.dbMatch()
- * mi.pattern('name', rpm.RPMMIRE_GLOB, "XFree*")
+ * mi.pattern('name', rpm.RPMMIRE_GLOB, 'XFree*')
* for h in mi:
- * print "%s-%s-%s" % (h['name'], h['version'], h['release'])
+ * print '%s-%s-%s' % (h['name'], h['version'], h['release'])
* \endcode
*
*/
@@ -114,7 +114,7 @@ rpmmi_Pattern(rpmmiObject * s, PyObject * args, PyObject * kwds)
static struct PyMethodDef rpmmi_methods[] = {
{"instance", (PyCFunction) rpmmi_Instance, METH_NOARGS,
- NULL },
+ "mi.instance() -- Return the number (db key) of the current header."},
{"count", (PyCFunction) rpmmi_Count, METH_NOARGS,
"Deprecated, use len(mi) instead.\n" },
{"pattern", (PyCFunction) rpmmi_Pattern, METH_VARARGS|METH_KEYWORDS,
@@ -162,7 +162,40 @@ static PyNumberMethods rpmmi_as_number = {
};
static char rpmmi_doc[] =
-"";
+ "rpm.mi match iterator object represents the result of a\n"
+ " database query.\n"
+ "\n"
+ "Instances of the rpm.mi object provide access to headers that match\n"
+ "certain criteria. Typically, a primary index is accessed to find\n"
+ "a set of headers that contain a key, and each header is returned\n"
+ "serially.\n"
+ "\n"
+ "To obtain a rpm.mi object to query the database used by a transaction,\n"
+ "the ts.match(tag,key,len) method is used.\n"
+ "\n"
+ "Here's an example that prints the name of all installed packages:\n"
+ " import rpm\n"
+ " ts = rpm.TransactionSet()\n"
+ " for h in ts.dbMatch():\n"
+ " print h['name']\n"
+ "\n"
+ "Here's a more typical example that uses the Name index to retrieve\n"
+ "all installed kernel(s):\n"
+ " import rpm\n"
+ " ts = rpm.TransactionSet()\n"
+ " mi = ts.dbMatch('name', 'kernel')\n"
+ " for h in mi:\n"
+ " print '%s-%s-%s' % (h['name'], h['version'], h['release'])\n"
+ "\n"
+ "Finally, here's an example that retrieves all packages whose name\n"
+ "matches the glob expression 'XFree*':\n"
+ " import rpm\n"
+ " ts = rpm.TransactionSet()\n"
+ " mi = ts.dbMatch()\n"
+ " mi.pattern('name', rpm.RPMMIRE_GLOB, 'XFree*')\n"
+ " for h in mi:\n"
+ " print '%s-%s-%s' % (h['name'], h['version'], h['release'])\n"
+;
PyTypeObject rpmmi_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
diff --git a/python/rpmmodule.c b/python/rpmmodule.c
index 4e6fe278..e3c65d3e 100644
--- a/python/rpmmodule.c
+++ b/python/rpmmodule.c
@@ -134,43 +134,76 @@ static PyObject * reloadConfig(PyObject * self, PyObject * args, PyObject *kwds)
return PyBool_FromLong(rc == 0);
}
+static PyObject * setInterruptSafety(PyObject * self, PyObject * args, PyObject *kwds)
+{
+ int on = 1;
+ PyObject * obj;
+ char * kwlist[] = { "on", NULL };
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O", kwlist, &obj))
+ return NULL;
+ if (obj) {
+ on = PyObject_IsTrue(obj);
+ }
+ rpmsqSetInterruptSafety(on);
+ Py_RETURN_NONE;
+}
+
static PyMethodDef rpmModuleMethods[] = {
{ "addMacro", (PyCFunction) rpmmacro_AddMacro, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "addMacro(macro, value)\n"
+ },
{ "delMacro", (PyCFunction) rpmmacro_DelMacro, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "delMacro(macro)\n"
+ },
{ "expandMacro", (PyCFunction) rpmmacro_ExpandMacro, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "expandMacro(string, numeric=False) -- expands a string containing macros\n\n"
+ "Returns an int if numeric is True. 'Y' or 'y' returns 1,\n'N' or 'n' returns 0\nAn undefined macro returns 0."},
{ "archscore", (PyCFunction) archScore, METH_O,
- NULL },
+ "archscore(archname) -- How well does an architecture fit on this machine\n\n"
+ "0 for non matching arch names\n1 for best arch\nhigher numbers for less fitting arches\n(e.g. 2 for \"i586\" on an i686 machine)" },
{ "signalCaught", (PyCFunction) signalCaught, METH_O,
- NULL },
+ "signalCaught(signo) -- Returns True if signal was caught." },
{ "checkSignals", (PyCFunction) checkSignals, METH_NOARGS,
- NULL },
+ "checkSignals() -- Check for and exit on termination signals."},
{ "mergeHeaderListFromFD", (PyCFunction) rpmMergeHeadersFromFD, METH_VARARGS|METH_KEYWORDS,
NULL },
{ "log", (PyCFunction) doLog, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "log(level, msg) -- Write msg to log if level is selected to be logged.\n\n"
+ "level must be one of the RPMLOG_* constants."},
{ "setLogFile", (PyCFunction) setLogFile, METH_O,
- NULL },
+ "setLogFile(file) -- set file to write log messages to or None." },
{ "versionCompare", (PyCFunction) versionCompare, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "versionCompare(version0, version1) -- compares two version strings\n\n"
+ "Returns 1 if version0 > version1\n"
+ "Returns 0 if version0 == version1\n"
+ "Returns -1 if version0 < version1\n"},
{ "labelCompare", (PyCFunction) labelCompare, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "labelCompare(version0, version1) -- as versionCompare()\n\n"
+ "but arguments are tuples of of strings for (epoch, version, release)"},
{ "setVerbosity", (PyCFunction) setVerbosity, METH_O,
- NULL },
+ "setVerbosity(level) -- Set log level. See RPMLOG_* constants." },
{ "setEpochPromote", (PyCFunction) setEpochPromote, METH_O,
- NULL },
+ "setEpochPromote(bool) -- Set if no epoch shall be treated as epoch 0" },
{ "setStats", (PyCFunction) setStats, METH_O,
- NULL },
+ "setStats(bool) -- Set if timing stats are printed after a transaction."},
{ "reloadConfig", (PyCFunction) reloadConfig, METH_VARARGS|METH_KEYWORDS,
- NULL },
-
+ "readloadConfig(path=None) -- Read config file.\n\nSet all macros and settings accordingly."},
+
+ { "setInterruptSafety", (PyCFunction) setInterruptSafety,
+ METH_VARARGS|METH_KEYWORDS,
+ "setInterruptSafety(on=True) -- Set if various signals get intercepted.\n\n"
+ "By default, librpm will trap various unix signals (like SIGINT and\n"
+ "SIGTERM), in order to avoid process exit while locks are held or\n"
+ "a transaction is being performed.\n\n"
+ "If this is not the desired behaviour it's recommended to call this\n"
+ "once only at process startup because currently signal handlers will\n"
+ "not be retroactively applied if a database is open."
+ },
{ NULL }
} ;
@@ -182,8 +215,7 @@ static void rpm_exithook(void)
rpmdbCheckTerminate(1);
}
-static char rpm__doc__[] =
-"";
+static char rpm__doc__[] = "";
/*
* Add rpm tag dictionaries to the module
@@ -479,6 +511,7 @@ static int initModule(PyObject *m)
REGISTER_ENUM(RPMCALLBACK_SCRIPT_START);
REGISTER_ENUM(RPMCALLBACK_SCRIPT_STOP);
REGISTER_ENUM(RPMCALLBACK_INST_STOP);
+ REGISTER_ENUM(RPMCALLBACK_ELEM_PROGRESS);
REGISTER_ENUM(RPMPROB_BADARCH);
REGISTER_ENUM(RPMPROB_BADOS);
diff --git a/python/rpmsmodule.c b/python/rpmsmodule.c
index a8289b5f..0601353b 100644
--- a/python/rpmsmodule.c
+++ b/python/rpmsmodule.c
@@ -8,19 +8,18 @@ static char rpms__doc__[] =
static PyObject * addSign(PyObject * self, PyObject * args, PyObject *kwds)
{
const char *path = NULL;
- const char *passPhrase = NULL;
- char * kwlist[] = { "path", "passPhrase", "keyid", "hashalgo", NULL };
+ char * kwlist[] = { "path", "keyid", "hashalgo", NULL };
struct rpmSignArgs sig, *sigp = NULL;
memset(&sig, 0, sizeof(sig));
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss|si", kwlist,
- &path, &passPhrase, &sig.keyid, &sig.hashalgo))
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|si", kwlist,
+ &path, &sig.keyid, &sig.hashalgo))
return NULL;
if (sig.keyid || sig.hashalgo)
sigp = &sig;
- return PyBool_FromLong(rpmPkgSign(path, sigp, passPhrase) == 0);
+ return PyBool_FromLong(rpmPkgSign(path, sigp) == 0);
}
static PyObject * delSign(PyObject * self, PyObject * args, PyObject *kwds)
diff --git a/python/rpmte-py.c b/python/rpmte-py.c
index d67f0a5e..6936e757 100644
--- a/python/rpmte-py.c
+++ b/python/rpmte-py.c
@@ -204,58 +204,49 @@ rpmte_Files(rpmteObject * s, PyObject * args, PyObject * kwds)
}
static struct PyMethodDef rpmte_methods[] = {
{"Type", (PyCFunction)rpmte_TEType, METH_NOARGS,
-"te.Type() -> Type\n\
-- Return element type (rpm.TR_ADDED | rpm.TR_REMOVED).\n" },
+ "te.Type() -- Return element type (rpm.TR_ADDED | rpm.TR_REMOVED).\n" },
{"N", (PyCFunction)rpmte_N, METH_NOARGS,
-"te.N() -> N\n\
-- Return element name.\n" },
+ "te.N() -- Return element name.\n" },
{"E", (PyCFunction)rpmte_E, METH_NOARGS,
-"te.E() -> E\n\
-- Return element epoch.\n" },
+ "te.E() -- Return element epoch.\n" },
{"V", (PyCFunction)rpmte_V, METH_NOARGS,
-"te.V() -> V\n\
-- Return element version.\n" },
+ "te.V() -- Return element version.\n" },
{"R", (PyCFunction)rpmte_R, METH_NOARGS,
-"te.R() -> R\n\
-- Return element release.\n" },
+ "te.R() -- Return element release.\n" },
{"A", (PyCFunction)rpmte_A, METH_NOARGS,
-"te.A() -> A\n\
-- Return element arch.\n" },
+ "te.A() -- Return element arch.\n" },
{"O", (PyCFunction)rpmte_O, METH_NOARGS,
-"te.O() -> O\n\
-- Return element os.\n" },
+ "te.O() -- Return element os.\n" },
{"NEVR", (PyCFunction)rpmte_NEVR, METH_NOARGS,
-"te.NEVR() -> NEVR\n\
-- Return element name-[epoch:]version-release.\n" },
+ "te.NEVR() -- Return element name-[epoch:]version-release.\n" },
{"NEVRA", (PyCFunction)rpmte_NEVRA, METH_NOARGS,
-"te.NEVRA() -> NEVRA\n\
-- Return element name-[epoch:]version-release.arch\n" },
+ "te.NEVRA() -- Return element name-[epoch:]version-release.arch\n" },
{"Color",(PyCFunction)rpmte_Color, METH_NOARGS,
- NULL},
+ "te.Color() -- Return package color bits."},
{"PkgFileSize",(PyCFunction)rpmte_PkgFileSize, METH_NOARGS,
- NULL},
+ "te.PkgFileSize() -- Return no. of bytes in package file (approx)."},
{"Parent", (PyCFunction)rpmte_Parent, METH_NOARGS,
- NULL},
+ "te.Parent() -- Return the parent element index."},
{"Problems",(PyCFunction)rpmte_Problems, METH_NOARGS,
- NULL},
+ "te.Problems() -- Return problems associated with this element."},
/* {"DependsOnKey",(PyCFunction)rpmte_DependsOnKey, METH_NOARGS,
NULL}, */
{"DBOffset",(PyCFunction)rpmte_DBOffset, METH_NOARGS,
- NULL},
+ "te.DBOffset() -- Return the Package's database instance number.\n\nTR_REMOVED only"},
{"Failed", (PyCFunction)rpmte_Failed, METH_NOARGS,
- NULL},
+ "te.Failed() -- Return if there are any related errors."},
{"Key", (PyCFunction)rpmte_Key, METH_NOARGS,
- NULL},
+ "te.Key() -- Return the associated opaque key aka user data\n\
+ as passed e.g. as data arg ts.addInstall()"},
{"DS", (PyCFunction)rpmte_DS, METH_VARARGS|METH_KEYWORDS,
-"te.DS(TagN) -> DS\n\
-- Return the TagN dependency set (or None). TagN is one of\n\
- 'Providename', 'Requirename', 'Obsoletename', 'Conflictname'\n" },
+"te.DS(TagN) -- Return the TagN dependency set (or None).\n\
+ TagN is one of 'Providename', 'Requirename', 'Obsoletename',\n\
+ 'Conflictname', 'Triggername', 'Recommendname', 'Suggestname',\n\
+ 'Supplementname', 'Enhancename'" },
{"FI", (PyCFunction)rpmte_FI, METH_VARARGS|METH_KEYWORDS,
-"te.FI(TagN) -> FI\n\
-- Return file info iterator of element. Deprecated, use .Files() instead.\n" },
+"te.FI(TagN) -- Return file info iterator of element.\n\n DEPRECATED! Use .Files() instead.\n" },
{"Files", (PyCFunction)rpmte_Files, METH_NOARGS,
-"te.Files() -> files\n\
-- Return file info set of element.\n" },
+"te.Files() -- Return file info set of element.\n" },
{NULL, NULL} /* sentinel */
};
diff --git a/python/rpmts-py.c b/python/rpmts-py.c
index 5d90fedf..d5029b56 100644
--- a/python/rpmts-py.c
+++ b/python/rpmts-py.c
@@ -691,15 +691,55 @@ exit:
static struct PyMethodDef rpmts_methods[] = {
{"addInstall", (PyCFunction) rpmts_AddInstall, METH_VARARGS,
- NULL },
+ "ts.addInstall(hdr, data, mode) -- Add transaction element(s)\n"
+ "representing an installation or update of a package.\n\n"
+ "Args:\n"
+ " hdr : the header to be added\n"
+ " data : user data that will be passed to the transaction callback\n\t\tduring transaction execution\n"
+ " mode : optional argument that specifies if this package should be\n\t\tinstalled ('i'), upgraded ('u')"},
{"addReinstall", (PyCFunction) rpmts_AddReinstall, METH_VARARGS,
- NULL },
+ "ts.addReinstall(hdr, data) -- Adds transaction elements\nrepresenting a reinstall of an already installed package.\n\nSee addInstall for details."},
{"addErase", (PyCFunction) rpmts_AddErase, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "addErase(name) -- Add a transaction element representing an erase\nof an installed package.\n\n"
+ " name: the package name to be erased"},
{"check", (PyCFunction) rpmts_Check, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "ts.check( )-- Perform a dependency check on the transaction set.\n"
+ " After headers have been added to a transaction set,\n"
+ " a dependencycheck can be performed to make sure that\n"
+ " all package dependencies are satisfied.\n"
+ "Return None If there are no unresolved dependencies\n"
+ " Otherwise a list of complex tuples is returned,\n"
+ " one tuple per unresolved dependency, with\n"
+ "The format of the dependency tuple is:\n"
+ " ((packageName, packageVersion, packageRelease),\n"
+ " (reqName, reqVersion),\n"
+ " needsFlags,\n"
+ " suggestedPackage,\n"
+ " sense)\n"
+ " packageName, packageVersion, packageRelease are the name,\n"
+ " version, and release of the package that has the unresolved\n"
+ " dependency or conflict.\n"
+ " The reqName and reqVersion are the name and version of the\n"
+ " requirement or conflict.\n"
+ " The needsFlags is a bitfield that describes the versioned\n"
+ " nature of a requirement or conflict. The constants\n"
+ " rpm.RPMSENSE_LESS, rpm.RPMSENSE_GREATER, and\n"
+ " rpm.RPMSENSE_EQUAL can be logical ANDed with the needsFlags\n"
+ " to get versioned dependency information.\n"
+ " suggestedPackage is a tuple if the dependency check was aware\n"
+ " of a package that solves this dependency problem when the\n"
+ " dependency check was run. Packages that are added to the\n"
+ " transaction set as \"available\" are examined during the\n"
+ " dependency check as possible dependency solvers. The tuple\n"
+ " contains two values, (header, suggestedName). These are set to\n"
+ " the header of the suggested package and its name, respectively.\n"
+ " If there is no known package to solve the dependency problem,\n"
+ " suggestedPackage is None.\n"
+ " The constants rpm.RPMDEP_SENSE_CONFLICTS and\n"
+ " rpm.RPMDEP_SENSE_REQUIRES are set to show a dependency as a\n"
+ " requirement or a conflict.\n"},
{"order", (PyCFunction) rpmts_Order, METH_NOARGS,
- NULL },
+ "ts.order() Do a topological sort of added element relations." },
{"problems", (PyCFunction) rpmts_Problems, METH_NOARGS,
"ts.problems() -> ps\n\
- Return current problem set.\n" },
@@ -708,18 +748,18 @@ static struct PyMethodDef rpmts_methods[] = {
- Run a transaction set, returning list of problems found.\n\
Note: The callback may not be None.\n" },
{"clean", (PyCFunction) rpmts_Clean, METH_NOARGS,
- NULL },
+ "ts.clean()-- Free memory needed only for dependency checks\nand ordering. Should not be needed in normal operation." },
{"clear", (PyCFunction) rpmts_Clear, METH_NOARGS,
"ts.clear() -> None\n\
Remove all elements from the transaction set\n" },
{"openDB", (PyCFunction) rpmts_OpenDB, METH_NOARGS,
-"ts.openDB() -> None\n\
-- Open the default transaction rpmdb.\n\
- Note: The transaction rpmdb is lazily opened, so ts.openDB() is seldom needed.\n" },
+"ts.openDB() -> None -- Open the default transaction rpmdb.\n\n\
+ Note: The transaction rpmdb is lazily opened,\n so ts.openDB() is seldom needed.\n" },
{"closeDB", (PyCFunction) rpmts_CloseDB, METH_NOARGS,
"ts.closeDB() -> None\n\
- Close the default transaction rpmdb.\n\
- Note: ts.closeDB() disables lazy opens, and should hardly ever be used.\n" },
+ Note: ts.closeDB() disables lazy opens,\n\
+ and should hardly ever be used.\n" },
{"initDB", (PyCFunction) rpmts_InitDB, METH_NOARGS,
"ts.initDB() -> None\n\
- Initialize the default transaction rpmdb.\n\
@@ -734,15 +774,21 @@ Remove all elements from the transaction set\n" },
"ts.hdrFromFdno(fdno) -> hdr\n\
- Read a package header from a file descriptor.\n" },
{"hdrCheck", (PyCFunction) rpmts_HdrCheck, METH_O,
- NULL },
+ "ts.hdrCheck(hdrblob) -- Check header consistency,\nperforming headerGetEntry() the hard way.\n\n"
+ "Sanity checks on the header are performed while looking for a\n"
+ "header-only digest or signature to verify the blob. If found,\n"
+ "the digest or signature is verified.\n\n"
+ "\thdrblob : unloaded header blob\n"
+ "Return tuple (int status, message string)"},
{"pgpPrtPkts", (PyCFunction) rpmts_PgpPrtPkts, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "pgpPrtPkts(octets) -- Print/parse a OpenPGP packet(s).\n\nReturn 0 on success." },
{"pgpImportPubkey", (PyCFunction) rpmts_PgpImportPubkey, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "pgpImportPubkey(pubkey) -- Import public key packet." },
{"getKeyring", (PyCFunction) rpmts_getKeyring, METH_VARARGS|METH_KEYWORDS,
- NULL },
+ "ts.getKeyring(autoload=False) -- Return key ring object." },
{"setKeyring", (PyCFunction) rpmts_setKeyring, METH_O,
- NULL },
+ "ts.setKeyring(keyring) -- Set key ring used for checking signatures\n\n"
+ "Pass None for an empty key ring." },
{"dbMatch", (PyCFunction) rpmts_Match, METH_VARARGS|METH_KEYWORDS,
"ts.dbMatch([TagN, [key]]) -> mi\n\
- Create a match iterator for the default transaction rpmdb.\n" },
@@ -880,13 +926,38 @@ static PyObject *rpmts_get_vsflags(rpmtsObject *s, void *closure)
}
static char rpmts_doc[] =
-"";
+ "A python rpm.ts object represents an RPM transaction set.\n"
+ "\n"
+ "The transaction set is the workhorse of RPM. It performs the\n"
+ "installation and upgrade of packages. The rpm.ts object is\n"
+ "instantiated by the TransactionSet function in the rpm module.\n"
+ "\n"
+ "The TransactionSet function takes two optional arguments. The first\n"
+ "argument is the root path. The second is the verify signature disable\n"
+ "flags, a set of the following bits:\n"
+ "\n"
+ "- rpm.RPMVSF_NOHDRCHK if set, don't check rpmdb headers\n"
+ "- rpm.RPMVSF_NEEDPAYLOAD if not set, check header+payload\n"
+ " (if possible)\n"
+ "- rpm.RPMVSF_NOSHA1HEADER if set, don't check header SHA1 digest\n"
+ "- rpm.RPMVSF_NODSAHEADER if set, don't check header DSA signature\n"
+ "- rpm.RPMVSF_NOMD5 if set, don't check header+payload MD5 digest\n"
+ "- rpm.RPMVSF_NODSA if set, don't check header+payload DSA signature\n"
+ "- rpm.RPMVSF_NORSA if set, don't check header+payload RSA signature\n"
+ "\n"
+ "For convenience, there are the following masks:\n"
+ "- rpm._RPMVSF_NODIGESTS if set, don't check digest(s).\n"
+ "- rpm._RPMVSF_NOSIGNATURES if set, don't check signature(s).\n\n"
+ "The transaction set offers an read only iterable interface for the\ntransaction elements added by the .addInstall(), .addErase() and\n.addReinstall() methods.";
static PyGetSetDef rpmts_getseters[] = {
/* only provide a setter until we have rpmfd wrappings */
- {"scriptFd", NULL, (setter)rpmts_set_scriptFd, NULL },
- {"tid", (getter)rpmts_get_tid, NULL, NULL },
- {"rootDir", (getter)rpmts_get_rootDir, NULL, NULL },
+ {"scriptFd", NULL, (setter)rpmts_set_scriptFd,
+ "write only, file descriptor the output of script gets written to." },
+ {"tid", (getter)rpmts_get_tid, NULL,
+ "read only, current transaction id, i.e. transaction time stamp."},
+ {"rootDir", (getter)rpmts_get_rootDir, NULL,
+ "read only, directory rpm treats as root of the file system." },
{"_color", (getter)rpmts_get_color, (setter)rpmts_set_color, NULL},
{"_prefcolor", (getter)rpmts_get_prefcolor, (setter)rpmts_set_prefcolor, NULL},
{"_flags", (getter)rpmts_get_flags, (setter)rpmts_set_flags, NULL},
diff --git a/python/spec-py.c b/python/spec-py.c
index 564e37f3..f710f5c8 100644
--- a/python/spec-py.c
+++ b/python/spec-py.c
@@ -47,17 +47,47 @@ struct specPkgObject_s {
rpmSpecPkg pkg;
};
+static PyObject *pkgGetSection(rpmSpecPkg pkg, int section)
+{
+ char *sect = rpmSpecPkgGetSection(pkg, section);
+ if (sect != NULL) {
+ PyObject *ps = PyBytes_FromString(sect);
+ free(sect);
+ if (ps != NULL)
+ return ps;
+ }
+ Py_RETURN_NONE;
+}
+
static char specPkg_doc[] =
-"";
+"Package data parsed from spec file.";
static PyObject * specpkg_get_header(specPkgObject *s, void *closure)
{
return makeHeader(rpmSpecPkgHeader(s->pkg));
}
+static PyObject * specpkg_get_fileFile(specPkgObject *s, void *closure)
+{
+ return pkgGetSection(s->pkg, RPMBUILD_FILE_FILE);
+}
+
+static PyObject * specpkg_get_fileList(specPkgObject *s, void *closure)
+{
+ return pkgGetSection(s->pkg, RPMBUILD_FILE_LIST);
+}
+
+static PyObject * specpkg_get_policyList(specPkgObject *s, void *closure)
+{
+ return pkgGetSection(s->pkg, RPMBUILD_POLICY);
+}
+
static PyGetSetDef specpkg_getseters[] = {
- { "header", (getter) specpkg_get_header, NULL, NULL },
- { NULL } /* sentinel */
+ { "header", (getter) specpkg_get_header, NULL, NULL },
+ { "fileFile", (getter) specpkg_get_fileFile, NULL, NULL },
+ { "fileList", (getter) specpkg_get_fileList, NULL, NULL },
+ { "policyList", (getter) specpkg_get_policyList, NULL, NULL },
+ { NULL } /* sentinel */
};
PyTypeObject specPkg_Type = {
diff --git a/rpm.am b/rpm.am
index beedfe35..1f43ad8a 100644
--- a/rpm.am
+++ b/rpm.am
@@ -7,4 +7,4 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
diff --git a/rpm2archive.c b/rpm2archive.c
index 63d64d94..5cbb36a8 100644
--- a/rpm2archive.c
+++ b/rpm2archive.c
@@ -161,6 +161,11 @@ static int process_package(rpmts ts, char * filename)
write_file_content(a, buf, fi);
}
}
+ /* End of iteration is not an error */
+ if (rc == RPMERR_ITER_END) {
+ rc = 0;
+ }
+
_free(hardlink);
Fclose(gzdi); /* XXX gzdi == fdi */
diff --git a/rpmbuild.c b/rpmbuild.c
index e0a68232..5d4b2077 100644
--- a/rpmbuild.c
+++ b/rpmbuild.c
@@ -28,9 +28,10 @@ static struct rpmBuildArguments_s rpmBTArgs;
#define POPT_NOBUILD -1017
#define POPT_RMSPEC -1019
#define POPT_NODIRTOKENS -1020
+#define POPT_BUILDINPLACE -1021
-#define POPT_REBUILD 0x4220
-#define POPT_RECOMPILE 0x4320
+#define POPT_REBUILD 0x4262 /* Bb */
+#define POPT_RECOMPILE 0x4369 /* Ci */
#define POPT_BA 0x6261
#define POPT_BB 0x6262
#define POPT_BC 0x6263
@@ -38,6 +39,13 @@ static struct rpmBuildArguments_s rpmBTArgs;
#define POPT_BL 0x626c
#define POPT_BP 0x6270
#define POPT_BS 0x6273
+#define POPT_RA 0x4261
+#define POPT_RB 0x4262
+#define POPT_RC 0x4263
+#define POPT_RI 0x4269
+#define POPT_RL 0x426c
+#define POPT_RP 0x4270
+#define POPT_RS 0x4273
#define POPT_TA 0x7461
#define POPT_TB 0x7462
#define POPT_TC 0x7463
@@ -55,6 +63,7 @@ static char buildMode = 0; /*!< Build mode (one of "btBC") */
static char buildChar = 0; /*!< Build stage (one of "abcilps ") */
static rpmBuildFlags nobuildAmount = 0; /*!< Build stage disablers */
static ARGV_t build_targets = NULL; /*!< Target platform(s) */
+static int buildInPlace = 0; /*!< from --build-in-place */
static void buildArgCallback( poptContext con,
enum poptCallbackReason reason,
@@ -73,6 +82,13 @@ static void buildArgCallback( poptContext con,
case POPT_BL:
case POPT_BP:
case POPT_BS:
+ case POPT_RA:
+ /* case POPT_RB: same value as POPT_REBUILD */
+ case POPT_RC:
+ case POPT_RI:
+ case POPT_RL:
+ case POPT_RP:
+ case POPT_RS:
case POPT_TA:
case POPT_TB:
case POPT_TC:
@@ -109,6 +125,10 @@ static void buildArgCallback( poptContext con,
spec_flags |= RPMSPEC_FORCE;
break;
+ case POPT_BUILDINPLACE:
+ rpmDefineMacro(NULL, "_build_in_place 1", 0);
+ buildInPlace = 1;
+ break;
}
}
@@ -138,6 +158,28 @@ static struct poptOption rpmBuildPoptTable[] = {
N_("build source package only from <specfile>"),
N_("<specfile>") },
+ { "rp", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_RP,
+ N_("build through %prep (unpack sources and apply patches) from <source package>"),
+ N_("<source package>") },
+ { "rc", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_RC,
+ N_("build through %build (%prep, then compile) from <source package>"),
+ N_("<source package>") },
+ { "ri", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_RI,
+ N_("build through %install (%prep, %build, then install) from <source package>"),
+ N_("<source package>") },
+ { "rl", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_RL,
+ N_("verify %files section from <source package>"),
+ N_("<source package>") },
+ { "ra", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_RA,
+ N_("build source and binary packages from <source package>"),
+ N_("<source package>") },
+ { "rb", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_RB,
+ N_("build binary package only from <source package>"),
+ N_("<source package>") },
+ { "rs", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_RS,
+ N_("build source package only from <source package>"),
+ N_("<source package>") },
+
{ "tp", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_TP,
N_("build through %prep (unpack sources and apply patches) from <tarball>"),
N_("<tarball>") },
@@ -169,6 +211,8 @@ static struct poptOption rpmBuildPoptTable[] = {
{ "buildroot", '\0', POPT_ARG_STRING, 0, POPT_BUILDROOT,
N_("override build root"), "DIRECTORY" },
+ { "build-in-place", '\0', 0, 0, POPT_BUILDINPLACE,
+ N_("run build in current directory"), NULL },
{ "clean", '\0', 0, 0, POPT_RMBUILD,
N_("remove build tree when done"), NULL},
{ "force", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, RPMCLI_POPT_FORCE,
@@ -185,6 +229,8 @@ static struct poptOption rpmBuildPoptTable[] = {
{ "noclean", '\0', POPT_BIT_SET, &nobuildAmount, RPMBUILD_CLEAN,
N_("do not execute %clean stage of the build"), NULL },
+ { "noprep", '\0', POPT_BIT_SET, &nobuildAmount, RPMBUILD_PREP,
+ N_("do not execute %prep stage of the build"), NULL },
{ "nocheck", '\0', POPT_BIT_SET, &nobuildAmount, RPMBUILD_CHECK,
N_("do not execute %check stage of the build"), NULL },
@@ -308,9 +354,10 @@ static char * getTarSpec(const char *arg)
for (spec = tryspec; *spec != NULL; spec++) {
FILE *fp;
char *cmd;
+ int specfiles = 0;
cmd = rpmExpand("%{uncompress: ", arg, "} | ",
- "%{__tar} xOvf - --wildcards ", *spec,
+ "%{__tar} xOvof - --wildcards ", *spec,
" 2>&1 > ", tmpSpecFile, NULL);
if (!(fp = popen(cmd, "r"))) {
@@ -319,12 +366,19 @@ static char * getTarSpec(const char *arg)
char *fok;
for (;;) {
fok = fgets(tarbuf, sizeof(tarbuf) - 1, fp);
+ if (!fok) break;
/* tar sometimes prints "tar: Record size = 16" messages */
- if (!fok || strncmp(fok, "tar: ", 5) != 0)
- break;
+ if (strstr(fok, "tar: ")) {
+ continue;
+ }
+ specfiles++;
}
pclose(fp);
- gotspec = (fok != NULL) && isSpecFile(tmpSpecFile);
+ gotspec = (specfiles == 1) && isSpecFile(tmpSpecFile);
+ if (specfiles > 1) {
+ rpmlog(RPMLOG_ERR, _("Found more than one spec file in %s\n"), arg);
+ goto exit;
+ }
}
if (!gotspec)
@@ -373,6 +427,13 @@ static int buildForTarget(rpmts ts, const char * arg, BTA_t ba)
int justRm = ((buildAmount & ~(RPMBUILD_RMSOURCE|RPMBUILD_RMSPEC)) == 0);
rpmSpecFlags specFlags = spec_flags;
+ /* Override default BUILD value for _builddir */
+ if (buildInPlace) {
+ char *cwd = rpmGetCwd();
+ addMacro(NULL, "_builddir", NULL, cwd, 0);
+ free(cwd);
+ }
+
if (ba->buildRootOverride)
buildRootURL = rpmGenPath(NULL, ba->buildRootOverride, NULL);
@@ -505,6 +566,10 @@ static int build(rpmts ts, const char * arg, BTA_t ba, const char * rcfile)
/* Read in configuration for target. */
rpmFreeMacros(NULL);
+ if (buildInPlace) {
+ /* Need to redefine this after freeing all the macros */
+ rpmDefineMacro(NULL, "_build_in_place 1", 0);
+ }
rpmFreeRpmrc();
(void) rpmReadConfigFiles(rcfile, *target);
rc = buildForTarget(ts, arg, ba);
@@ -558,16 +623,46 @@ int main(int argc, char *argv[])
ts = rpmtsCreate();
(void) rpmtsSetRootDir(ts, rpmcliRootDir);
+
+ switch (buildChar) {
+ case 'a':
+ ba->buildAmount |= RPMBUILD_PACKAGESOURCE;
+ case 'b':
+ ba->buildAmount |= RPMBUILD_PACKAGEBINARY;
+ ba->buildAmount |= RPMBUILD_CLEAN;
+ if ((buildChar == 'b') && shortCircuit)
+ break;
+ case 'i':
+ ba->buildAmount |= RPMBUILD_INSTALL;
+ ba->buildAmount |= RPMBUILD_CHECK;
+ if ((buildChar == 'i') && shortCircuit)
+ break;
+ case 'c':
+ ba->buildAmount |= RPMBUILD_BUILD;
+ if ((buildChar == 'c') && shortCircuit)
+ break;
+ case 'p':
+ ba->buildAmount |= RPMBUILD_PREP;
+ break;
+ case 'l':
+ ba->buildAmount |= RPMBUILD_FILECHECK;
+ break;
+ case 's':
+ ba->buildAmount |= RPMBUILD_PACKAGESOURCE;
+ break;
+ }
+ ba->buildAmount &= ~(nobuildAmount);
+
switch (bigMode) {
case MODE_REBUILD:
case MODE_RECOMPILE:
- ba->buildAmount =
- RPMBUILD_PREP | RPMBUILD_BUILD | RPMBUILD_INSTALL | RPMBUILD_CHECK;
- if (bigMode == MODE_REBUILD) {
- ba->buildAmount |= RPMBUILD_PACKAGEBINARY;
+ if (bigMode == MODE_REBUILD &&
+ buildChar != 'p' &&
+ buildChar != 'c' &&
+ buildChar != 'i' &&
+ buildChar != 'l') {
ba->buildAmount |= RPMBUILD_RMSOURCE;
ba->buildAmount |= RPMBUILD_RMSPEC;
- ba->buildAmount |= RPMBUILD_CLEAN;
ba->buildAmount |= RPMBUILD_RMBUILD;
}
ba->buildAmount &= ~(nobuildAmount);
@@ -590,35 +685,6 @@ int main(int argc, char *argv[])
break;
case MODE_BUILD:
case MODE_TARBUILD:
- switch (buildChar) {
- case 'a':
- ba->buildAmount |= RPMBUILD_PACKAGESOURCE;
- case 'b':
- ba->buildAmount |= RPMBUILD_PACKAGEBINARY;
- ba->buildAmount |= RPMBUILD_CLEAN;
- if ((buildChar == 'b') && shortCircuit)
- break;
- case 'i':
- ba->buildAmount |= RPMBUILD_INSTALL;
- ba->buildAmount |= RPMBUILD_CHECK;
- if ((buildChar == 'i') && shortCircuit)
- break;
- case 'c':
- ba->buildAmount |= RPMBUILD_BUILD;
- if ((buildChar == 'c') && shortCircuit)
- break;
- case 'p':
- ba->buildAmount |= RPMBUILD_PREP;
- break;
-
- case 'l':
- ba->buildAmount |= RPMBUILD_FILECHECK;
- break;
- case 's':
- ba->buildAmount |= RPMBUILD_PACKAGESOURCE;
- break;
- }
- ba->buildAmount &= ~(nobuildAmount);
while ((pkg = poptGetArg(optCon))) {
ba->rootdir = rpmcliRootDir;
diff --git a/rpmio/Makefile.in b/rpmio/Makefile.in
index 50689f9f..3707b03e 100644
--- a/rpmio/Makefile.in
+++ b/rpmio/Makefile.in
@@ -473,7 +473,7 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \
-I$(top_builddir)/include/ @WITH_NSS_INCLUDE@ \
@WITH_BEECRYPT_INCLUDE@ @WITH_POPT_INCLUDE@ \
diff --git a/rpmio/base64.c b/rpmio/base64.c
index 60e67d44..4424aabb 100644
--- a/rpmio/base64.c
+++ b/rpmio/base64.c
@@ -104,7 +104,7 @@ static int base64_decode_value(unsigned char value_in)
{
static const int decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51};
value_in -= 43;
- if (value_in > sizeof(decoding)/sizeof(int))
+ if (value_in >= sizeof(decoding)/sizeof(int))
return -1;
return decoding[value_in];
}
diff --git a/rpmio/macro.c b/rpmio/macro.c
index 1d9bd1c9..0c009ea2 100644
--- a/rpmio/macro.c
+++ b/rpmio/macro.c
@@ -57,6 +57,7 @@ struct rpmMacroEntry_s {
struct rpmMacroContext_s {
rpmMacroEntry *tab; /*!< Macro entry table (array of pointers). */
int n; /*!< No. of macros. */
+ unsigned int defcnt; /*!< Non-global define tracking */
pthread_mutex_t lock;
pthread_mutexattr_t lockattr;
};
@@ -185,7 +186,7 @@ findEntry(rpmMacroContext mc, const char *name, size_t namelen, size_t *pos)
* fgets(3) analogue that reads \ continuations. Last newline always trimmed.
* @param buf input buffer
* @param size inbut buffer size (bytes)
- * @param fd file handle
+ * @param f file handle
* @return buffer, or NULL on end-of-file
*/
static char *
@@ -627,6 +628,7 @@ exit:
/**
* Free parsed arguments for parameterized macro.
* @param mb macro expansion state
+ * @param delete
*/
static void
freeArgs(MacroBuf mb, int delete)
@@ -913,11 +915,13 @@ doFoo(MacroBuf mb, int negate, const char * f, size_t fn,
* The main macro recursion loop.
* @param mb macro expansion state
* @param src string to expand
+ * @param slen length of string buffer
* @return 0 on success, 1 on failure
*/
static int
expandMacro(MacroBuf mb, const char *src, size_t slen)
{
+ rpmMacroContext mc = mb->mc;
rpmMacroEntry *mep;
rpmMacroEntry me;
const char *s = src, *se;
@@ -930,6 +934,7 @@ expandMacro(MacroBuf mb, const char *src, size_t slen)
const char * lastc;
int chkexist;
char *source = NULL;
+ unsigned int prevcnt = mc->defcnt;
/*
* Always make a (terminated) copy of the source string.
@@ -988,7 +993,7 @@ expandMacro(MacroBuf mb, const char *src, size_t slen)
chkexist = 0;
switch ((c = *s)) {
default: /* %name substitution */
- while (strchr("!?", *s) != NULL) {
+ while (*s != '\0' && strchr("!?", *s) != NULL) {
switch(*s++) {
case '!':
negate = ((negate + 1) % 2);
@@ -1268,8 +1273,8 @@ expandMacro(MacroBuf mb, const char *src, size_t slen)
}
mb->buf[mb->tpos] = '\0';
- /* Warn on unused macros, but only on error/tracing as its very expesive */
- if (rc != 0 || mb->expand_trace)
+ /* Warn on unused non-global macros */
+ if (prevcnt != mc->defcnt)
freeArgs(mb, 0);
mb->depth--;
if (rc != 0 || mb->expand_trace)
@@ -1367,6 +1372,10 @@ static void pushMacro(rpmMacroContext mc,
/* push over previous definition */
me->prev = *mep;
*mep = me;
+
+ /* Track for non-global definitions */
+ if (level > 0)
+ mc->defcnt++;
}
static void popMacro(rpmMacroContext mc, const char * n)
@@ -1462,6 +1471,24 @@ int expandMacros(void * spec, rpmMacroContext mc, char * sbuf, size_t slen)
return rc;
}
+int rpmExpandMacros(rpmMacroContext mc, const char * sbuf, char ** obuf, int flags)
+{
+ char *target = NULL;
+ int rc;
+
+ mc = rpmmctxAcquire(mc);
+ rc = doExpandMacros(mc, sbuf, &target);
+ rpmmctxRelease(mc);
+
+ if (rc) {
+ free(target);
+ return -1;
+ } else {
+ *obuf = target;
+ return 1;
+ }
+}
+
void
rpmDumpMacroTable(rpmMacroContext mc, FILE * fp)
{
diff --git a/rpmio/rpmfileutil.c b/rpmio/rpmfileutil.c
index 5ea2f094..40d619c2 100644
--- a/rpmio/rpmfileutil.c
+++ b/rpmio/rpmfileutil.c
@@ -339,7 +339,8 @@ int rpmFileIsCompressed(const char * file, rpmCompressedMagic * compressed)
rc = 0;
- if ((magic[0] == 'B') && (magic[1] == 'Z')) {
+ if ((magic[0] == 'B') && (magic[1] == 'Z') &&
+ (magic[2] == 'h')) {
*compressed = COMPRESSED_BZIP2;
} else if ((magic[0] == 'P') && (magic[1] == 'K') &&
(((magic[2] == 3) && (magic[3] == 4)) ||
diff --git a/rpmio/rpmglob.c b/rpmio/rpmglob.c
index 4fc106da..66f838cd 100644
--- a/rpmio/rpmglob.c
+++ b/rpmio/rpmglob.c
@@ -124,30 +124,15 @@ static inline const char *next_brace_sub(const char *begin)
unsigned int depth = 0;
const char *cp = begin;
- while (1) {
- if (depth == 0) {
- if (*cp != ',' && *cp != '}' && *cp != '\0') {
- if (*cp == '{')
- ++depth;
- ++cp;
- continue;
- }
- } else {
- while (*cp != '\0' && (*cp != '}' || depth > 0)) {
- if (*cp == '}')
- --depth;
- ++cp;
- }
- if (*cp == '\0')
- /* An incorrectly terminated brace expression. */
- return NULL;
+ while (*cp != '\0') {
+ if ((*cp == '}' && depth-- == 0) || (*cp == ',' && depth == 0))
+ break;
- continue;
- }
- break;
+ if (*cp++ == '{')
+ depth++;
}
- return cp;
+ return *cp != '\0' ? cp : NULL;
}
static int __glob_pattern_p(const char *pattern, int quote);
@@ -649,7 +634,7 @@ static int prefix_array(const char *dirname, char **array, size_t n)
static int __glob_pattern_p(const char *pattern, int quote)
{
register const char *p;
- int open = 0;
+ int openBrackets = 0;
for (p = pattern; *p != '\0'; ++p)
switch (*p) {
@@ -663,11 +648,11 @@ static int __glob_pattern_p(const char *pattern, int quote)
break;
case '[':
- open = 1;
+ openBrackets = 1;
break;
case ']':
- if (open)
+ if (openBrackets)
return 1;
break;
}
@@ -844,6 +829,8 @@ int rpmGlob(const char * patterns, int * argcPtr, ARGV_t * argvPtr)
int i, j;
int rc;
+ gflags |= GLOB_BRACE;
+
if (home != NULL && strlen(home) > 0)
gflags |= GLOB_TILDE;
@@ -966,5 +953,32 @@ exit:
int rpmIsGlob(const char * pattern, int quote)
{
- return __glob_pattern_p(pattern, quote);
+ if(!__glob_pattern_p(pattern, quote)) {
+
+ const char *begin;
+ const char *next;
+ const char *rest;
+
+ begin = strchr(pattern, '{');
+ if (begin == NULL)
+ return 0;
+ /*
+ * Find the first sub-pattern and at the same time find the
+ * rest after the closing brace.
+ */
+ next = next_brace_sub(begin + 1);
+ if (next == NULL)
+ return 0;
+
+ /* Now find the end of the whole brace expression. */
+ rest = next;
+ while (*rest != '}') {
+ rest = next_brace_sub(rest + 1);
+ if (rest == NULL)
+ return 0;
+ }
+ /* Now we can be sure that brace expression is well-foermed. */
+ }
+
+ return 1;
}
diff --git a/rpmio/rpmio.c b/rpmio/rpmio.c
index 70551e04..625b0636 100644
--- a/rpmio/rpmio.c
+++ b/rpmio/rpmio.c
@@ -723,7 +723,7 @@ typedef struct lzfile {
static LZFILE *lzopen_internal(const char *mode, int fd, int xz)
{
- int level = 7; /* Use XZ's default compression level if unspecified */
+ int level = LZMA_PRESET_DEFAULT;
int encoding = 0;
FILE *fp;
LZFILE *lzfile;
diff --git a/rpmio/rpmkeyring.c b/rpmio/rpmkeyring.c
index 368a1ec1..ac3e3bc5 100644
--- a/rpmio/rpmkeyring.c
+++ b/rpmio/rpmkeyring.c
@@ -152,6 +152,38 @@ exit:
return key;
}
+rpmPubkey *rpmGetSubkeys(rpmPubkey mainkey, int *count)
+{
+ rpmPubkey *subkeys = NULL;
+ pgpDigParams *pgpsubkeys = NULL;
+ int pgpsubkeysCount = 0;
+ int i;
+
+ if (mainkey && !pgpPrtParamsSubkeys(mainkey->pkt, mainkey->pktlen,
+ mainkey->pgpkey, &pgpsubkeys, &pgpsubkeysCount)) {
+
+ subkeys = xmalloc(pgpsubkeysCount * sizeof(*subkeys));
+
+ for (i = 0; i < pgpsubkeysCount; i++) {
+ rpmPubkey subkey = xcalloc(1, sizeof(*subkey));
+ subkeys[i] = subkey;
+
+ /* Packets with all subkeys already stored in main key */
+ subkey->pkt = NULL;
+ subkey->pktlen = 0;
+
+ subkey->pgpkey = pgpsubkeys[i];
+ memcpy(subkey->keyid, pgpsubkeys[i]->signid, sizeof(subkey->keyid));
+ subkey->nrefs = 1;
+ pthread_rwlock_init(&subkey->lock, NULL);
+ }
+ free(pgpsubkeys);
+ }
+ *count = pgpsubkeysCount;
+
+ return subkeys;
+}
+
rpmPubkey rpmPubkeyFree(rpmPubkey key)
{
if (key == NULL)
@@ -222,6 +254,16 @@ char * rpmPubkeyBase64(rpmPubkey key)
return enc;
}
+pgpDigParams rpmPubkeyPgpDigParams(rpmPubkey key)
+{
+ pgpDigParams params= NULL;
+
+ if (key) {
+ params = key->pgpkey;
+ }
+ return params;
+}
+
static rpmPubkey findbySig(rpmKeyring keyring, pgpDigParams sig)
{
rpmPubkey key = NULL;
diff --git a/rpmio/rpmkeyring.h b/rpmio/rpmkeyring.h
index 9fcab5fe..f9e2f59f 100644
--- a/rpmio/rpmkeyring.h
+++ b/rpmio/rpmkeyring.h
@@ -65,6 +65,14 @@ rpmKeyring rpmKeyringLink(rpmKeyring keyring);
rpmPubkey rpmPubkeyNew(const uint8_t *pkt, size_t pktlen);
/** \ingroup rpmkeyring
+ * Return array of subkeys belonging to maikey
+ * param mainkey main rpmPubkey
+ * param count count of returned subkeys
+ * @return an array of subkey's handles
+ */
+rpmPubkey *rpmGetSubkeys(rpmPubkey mainkey, int *count);
+
+/** \ingroup rpmkeyring
* Create a new rpmPubkey from ASCII-armored pubkey file
* @param filename Path to pubkey file
* @return new pubkey handle
@@ -99,6 +107,13 @@ pgpDig rpmPubkeyDig(rpmPubkey key);
*/
char * rpmPubkeyBase64(rpmPubkey key);
+/** \ingroup rpmkeyring
+ * Return pgp params of key
+ * @param key Pubkey
+ * @return pgp params, NULL on error
+ */
+pgpDigParams rpmPubkeyPgpDigParams(rpmPubkey key);
+
#ifdef __cplusplus
}
#endif
diff --git a/rpmio/rpmlog.c b/rpmio/rpmlog.c
index 3ed07b7d..43ae36f3 100644
--- a/rpmio/rpmlog.c
+++ b/rpmio/rpmlog.c
@@ -6,6 +6,7 @@
#include <stdarg.h>
#include <stdlib.h>
#include <pthread.h>
+#include <errno.h>
#include <rpm/rpmlog.h>
#include "debug.h"
@@ -33,27 +34,31 @@ static rpmlogCtx rpmlogCtxAcquire(int write)
RPMLOG_UPTO(RPMLOG_NOTICE),
0, NULL, NULL, NULL, NULL };
rpmlogCtx ctx = &_globalCtx;
+ int xx;
- /* XXX: errors should be handled */
+ /* XXX Silently failing is bad, but we can't very well use log here... */
if (write)
- pthread_rwlock_wrlock(&ctx->lock);
+ xx = pthread_rwlock_wrlock(&ctx->lock);
else
- pthread_rwlock_rdlock(&ctx->lock);
+ xx = pthread_rwlock_rdlock(&ctx->lock);
- return ctx;
+ return (xx == 0) ? ctx : NULL;
}
/* Release log context */
static rpmlogCtx rpmlogCtxRelease(rpmlogCtx ctx)
{
- pthread_rwlock_unlock(&ctx->lock);
+ if (ctx)
+ pthread_rwlock_unlock(&ctx->lock);
return NULL;
}
int rpmlogGetNrecs(void)
{
rpmlogCtx ctx = rpmlogCtxAcquire(0);
- int nrecs = ctx->nrecs;
+ int nrecs = -1;
+ if (ctx)
+ nrecs = ctx->nrecs;
rpmlogCtxRelease(ctx);
return nrecs;
}
@@ -63,20 +68,19 @@ int rpmlogCode(void)
int code = -1;
rpmlogCtx ctx = rpmlogCtxAcquire(0);
- if (ctx->recs != NULL && ctx->nrecs > 0)
+ if (ctx && ctx->recs != NULL && ctx->nrecs > 0)
code = ctx->recs[ctx->nrecs-1].code;
rpmlogCtxRelease(ctx);
return code;
}
-/* XXX: This is not thread-safe, we should return a malloced copy */
const char * rpmlogMessage(void)
{
const char *msg = _("(no error)");
rpmlogCtx ctx = rpmlogCtxAcquire(0);
- if (ctx->recs != NULL && ctx->nrecs > 0)
+ if (ctx && ctx->recs != NULL && ctx->nrecs > 0)
msg = ctx->recs[ctx->nrecs-1].message;
rpmlogCtxRelease(ctx);
@@ -85,20 +89,21 @@ const char * rpmlogMessage(void)
const char * rpmlogRecMessage(rpmlogRec rec)
{
- assert(rec != NULL);
- return (rec->message);
+ return (rec != NULL) ? rec->message : NULL;
}
rpmlogLvl rpmlogRecPriority(rpmlogRec rec)
{
- assert(rec != NULL);
- return (rec->pri);
+ return (rec != NULL) ? rec->pri : (rpmlogLvl)-1;
}
void rpmlogPrint(FILE *f)
{
rpmlogCtx ctx = rpmlogCtxAcquire(0);
+ if (ctx == NULL)
+ return;
+
if (f == NULL)
f = stderr;
@@ -115,6 +120,9 @@ void rpmlogClose (void)
{
rpmlogCtx ctx = rpmlogCtxAcquire(1);
+ if (ctx == NULL)
+ return;
+
for (int i = 0; i < ctx->nrecs; i++) {
rpmlogRec rec = ctx->recs + i;
rec->message = _free(rec->message);
@@ -136,11 +144,14 @@ static unsigned rpmlogFacility = RPMLOG_USER;
int rpmlogSetMask (int mask)
{
- rpmlogCtx ctx = rpmlogCtxAcquire(1);
+ rpmlogCtx ctx = rpmlogCtxAcquire(mask ? 1 : 0);
- int omask = ctx->mask;
- if (mask)
- ctx->mask = mask;
+ int omask = -1;
+ if (ctx) {
+ omask = ctx->mask;
+ if (mask)
+ ctx->mask = mask;
+ }
rpmlogCtxRelease(ctx);
return omask;
@@ -150,22 +161,25 @@ rpmlogCallback rpmlogSetCallback(rpmlogCallback cb, rpmlogCallbackData data)
{
rpmlogCtx ctx = rpmlogCtxAcquire(1);
- rpmlogCallback ocb = ctx->cbfunc;
- ctx->cbfunc = cb;
- ctx->cbdata = data;
+ rpmlogCallback ocb = NULL;
+ if (ctx) {
+ ocb = ctx->cbfunc;
+ ctx->cbfunc = cb;
+ ctx->cbdata = data;
+ }
rpmlogCtxRelease(ctx);
return ocb;
}
-static int rpmlogDefault(rpmlogCtx ctx, rpmlogRec rec)
+static int rpmlogDefault(FILE *stdlog, rpmlogRec rec)
{
- FILE *msgout = (ctx->stdlog ? ctx->stdlog : stderr);
+ FILE *msgout = (stdlog ? stdlog : stderr);
switch (rec->pri) {
case RPMLOG_INFO:
case RPMLOG_NOTICE:
- msgout = (ctx->stdlog ? ctx->stdlog : stdout);
+ msgout = (stdlog ? stdlog : stdout);
break;
case RPMLOG_EMERG:
case RPMLOG_ALERT:
@@ -177,10 +191,14 @@ static int rpmlogDefault(rpmlogCtx ctx, rpmlogRec rec)
break;
}
- (void) fputs(rpmlogLevelPrefix(rec->pri), msgout);
+ if (fputs(rpmlogLevelPrefix(rec->pri), msgout) == EOF && errno != EPIPE)
+ perror("Error occurred during writing of a log message");
- (void) fputs(rec->message, msgout);
- (void) fflush(msgout);
+ if (fputs(rec->message, msgout) == EOF && errno != EPIPE)
+ perror("Error occurred during writing of a log message");
+
+ if (fflush(msgout) == EOF && errno != EPIPE)
+ perror("Error occurred during writing of a log message");
return (rec->pri <= RPMLOG_CRIT ? RPMLOG_EXIT : 0);
}
@@ -190,8 +208,11 @@ FILE * rpmlogSetFile(FILE * fp)
{
rpmlogCtx ctx = rpmlogCtxAcquire(1);
- FILE * ofp = ctx->stdlog;
- ctx->stdlog = fp;
+ FILE * ofp = NULL;
+ if (ctx) {
+ ofp = ctx->stdlog;
+ ctx->stdlog = fp;
+ }
rpmlogCtxRelease(ctx);
return ofp;
@@ -218,10 +239,19 @@ const char * rpmlogLevelPrefix(rpmlogLvl pri)
/* FIX: rpmlogMsgPrefix[] dependent, not unqualified */
/* FIX: rpmlogMsgPrefix[] may be NULL */
-static void dolog(rpmlogCtx ctx, struct rpmlogRec_s *rec, int saverec)
+static void dolog(struct rpmlogRec_s *rec, int saverec)
{
+ static pthread_mutex_t serialize = PTHREAD_MUTEX_INITIALIZER;
+
int cbrc = RPMLOG_DEFAULT;
int needexit = 0;
+ FILE *clog = NULL;
+ rpmlogCallbackData *cbdata = NULL;
+ rpmlogCallback cbfunc = NULL;
+ rpmlogCtx ctx = rpmlogCtxAcquire(saverec);
+
+ if (ctx == NULL)
+ return;
/* Save copy of all messages at warning (or below == "more important"). */
if (saverec) {
@@ -233,19 +263,30 @@ static void dolog(rpmlogCtx ctx, struct rpmlogRec_s *rec, int saverec)
ctx->recs[ctx->nrecs+1].message = NULL;
ctx->nrecs++;
}
-
- if (ctx->cbfunc) {
- cbrc = ctx->cbfunc(rec, ctx->cbdata);
- needexit += cbrc & RPMLOG_EXIT;
- }
-
- if (cbrc & RPMLOG_DEFAULT) {
- cbrc = rpmlogDefault(ctx, rec);
- needexit += cbrc & RPMLOG_EXIT;
+ cbfunc = ctx->cbfunc;
+ cbdata = ctx->cbdata;
+ clog = ctx->stdlog;
+
+ /* Free the context for callback and actual log output */
+ ctx = rpmlogCtxRelease(ctx);
+
+ /* Always serialize callback and output to avoid interleaved messages. */
+ if (pthread_mutex_lock(&serialize) == 0) {
+ if (cbfunc) {
+ cbrc = cbfunc(rec, cbdata);
+ needexit += cbrc & RPMLOG_EXIT;
+ }
+
+ if (cbrc & RPMLOG_DEFAULT) {
+ cbrc = rpmlogDefault(clog, rec);
+ needexit += cbrc & RPMLOG_EXIT;
+ }
+ pthread_mutex_unlock(&serialize);
}
if (needexit)
exit(EXIT_FAILURE);
+
}
void rpmlog (int code, const char *fmt, ...)
@@ -256,10 +297,8 @@ void rpmlog (int code, const char *fmt, ...)
va_list ap;
int n;
- rpmlogCtx ctx = rpmlogCtxAcquire(saverec);
-
- if ((mask & ctx->mask) == 0)
- goto exit;
+ if ((mask & rpmlogSetMask(0)) == 0)
+ return;
va_start(ap, fmt);
n = vsnprintf(NULL, 0, fmt, ap);
@@ -278,12 +317,9 @@ void rpmlog (int code, const char *fmt, ...)
rec.pri = pri;
rec.message = msg;
- dolog(ctx, &rec, saverec);
+ dolog(&rec, saverec);
free(msg);
}
-
-exit:
- rpmlogCtxRelease(ctx);
}
diff --git a/rpmio/rpmlua.c b/rpmio/rpmlua.c
index 02b3b5fb..681472c8 100644
--- a/rpmio/rpmlua.c
+++ b/rpmio/rpmlua.c
@@ -60,6 +60,9 @@ struct rpmluapb_s {
static rpmlua globalLuaState = NULL;
+static char *(*nextFileFunc)(void *) = NULL;
+static void *nextFileFuncParam = NULL;
+
static int luaopen_rpm(lua_State *L);
static int rpm_print(lua_State *L);
@@ -212,6 +215,12 @@ static int pushvar(lua_State *L, rpmluavType type, void *value)
return ret;
}
+void rpmluaSetNextFileFunc(char *(*func)(void *), void *funcParam)
+{
+ nextFileFunc = func;
+ nextFileFuncParam = funcParam;
+}
+
void rpmluaSetVar(rpmlua _lua, rpmluav var)
{
INITSTATE(_lua, lua);
@@ -685,6 +694,16 @@ static int rpm_interactive(lua_State *L)
return 0;
}
+static int rpm_next_file(lua_State *L)
+{
+ if (nextFileFunc)
+ lua_pushstring(L, nextFileFunc(nextFileFuncParam));
+ else
+ lua_pushstring(L, NULL);
+
+ return 1;
+}
+
typedef struct rpmluaHookData_s {
lua_State *L;
int funcRef;
@@ -876,6 +895,7 @@ static const luaL_Reg rpmlib[] = {
{"unregister", rpm_unregister},
{"call", rpm_call},
{"interactive", rpm_interactive},
+ {"next_file", rpm_next_file},
{NULL, NULL}
};
diff --git a/rpmio/rpmlua.h b/rpmio/rpmlua.h
index 7298ed57..935b892b 100644
--- a/rpmio/rpmlua.h
+++ b/rpmio/rpmlua.h
@@ -62,6 +62,8 @@ void rpmluaSetData(rpmlua lua, const char *key, const void *data);
char *rpmluaPopPrintBuffer(rpmlua lua);
void rpmluaPushPrintBuffer(rpmlua lua);
+void rpmluaSetNextFileFunc(char *(*func)(void *), void *funcParam);
+
void rpmluaGetVar(rpmlua lua, rpmluav var);
void rpmluaSetVar(rpmlua lua, rpmluav var);
void rpmluaDelVar(rpmlua lua, const char *key, ...);
diff --git a/rpmio/rpmmacro.h b/rpmio/rpmmacro.h
index 765c78c6..8027f98c 100644
--- a/rpmio/rpmmacro.h
+++ b/rpmio/rpmmacro.h
@@ -66,6 +66,17 @@ int expandMacros (void * spec, rpmMacroContext mc,
size_t slen);
/** \ingroup rpmmacro
+ * Expand macro into buffer.
+ * @param mc macro context (NULL uses global context).
+ * @param sbuf input macro to expand
+ * @param obuf macro expansion (malloc'ed)
+ * @param flags flags (currently unused)
+ * @return negative on failure
+ */
+int rpmExpandMacros (rpmMacroContext mc, const char * sbuf,
+ char ** obuf, int flags);
+
+/** \ingroup rpmmacro
* Add macro to context.
* @deprecated Use rpmDefineMacro().
* @param mc macro context (NULL uses global context).
diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c
index 58932226..9b31bc9b 100644
--- a/rpmio/rpmpgp.c
+++ b/rpmio/rpmpgp.c
@@ -624,6 +624,7 @@ static int pgpPrtSig(pgpTag tag, const uint8_t *h, size_t hlen,
rc = pgpPrtSigParams(tag, v->pubkey_algo, v->sigtype, p, h, hlen, _digp);
} break;
default:
+ rpmlog(RPMLOG_WARNING, _("Unsupported version of key: V%d\n"), h[0]);
rc = 1;
break;
}
@@ -668,7 +669,9 @@ static int pgpPrtPubkeyParams(uint8_t pubkey_algo,
rc = 0;
/* We can't handle more than one key at a time */
- if (rc == 0 && keyp->alg == NULL && keyp->tag == PGPTAG_PUBLIC_KEY)
+ if (rc == 0 && keyp->alg == NULL && (keyp->tag == PGPTAG_PUBLIC_KEY ||
+ keyp->tag == PGPTAG_PUBLIC_SUBKEY))
+
keyp->alg = keyalg;
else
pgpDigAlgFree(keyalg);
@@ -697,7 +700,8 @@ static int pgpPrtKey(pgpTag tag, const uint8_t *h, size_t hlen,
fprintf(stderr, " %-24.24s(0x%08x)", ctime(&t), (unsigned)t);
pgpPrtNL();
- if (_digp->tag == tag) {
+ /* If _digp->hash is not NULL then signature is already loaded */
+ if (_digp->hash == NULL) {
_digp->version = v->version;
memcpy(_digp->time, v->time, sizeof(_digp->time));
_digp->pubkey_algo = v->pubkey_algo;
@@ -707,6 +711,8 @@ static int pgpPrtKey(pgpTag tag, const uint8_t *h, size_t hlen,
rc = pgpPrtPubkeyParams(v->pubkey_algo, p, h, hlen, _digp);
}
} break;
+ default:
+ rpmlog(RPMLOG_WARNING, _("Unsupported version of key: V%d\n"), h[0]);
}
return rc;
}
@@ -772,6 +778,8 @@ static int getFingerprint(const uint8_t *h, size_t hlen, pgpKeyID_t keyid)
}
} break;
+ default:
+ rpmlog(RPMLOG_WARNING, _("Unsupported version of key: V%d\n"), h[0]);
}
return rc;
}
@@ -983,6 +991,63 @@ int pgpPrtParams(const uint8_t * pkts, size_t pktlen, unsigned int pkttype,
return rc;
}
+int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen,
+ pgpDigParams mainkey, pgpDigParams **subkeys,
+ int *subkeysCount)
+{
+ const uint8_t *p = pkts;
+ const uint8_t *pend = pkts + pktlen;
+ pgpDigParams *digps = NULL;
+ int count = 0;
+ int alloced = 10;
+ struct pgpPkt pkt;
+ int rc, i;
+
+ digps = xmalloc(alloced * sizeof(*digps));
+
+ while (p < pend) {
+ if (decodePkt(p, (pend - p), &pkt))
+ break;
+
+ p += (pkt.body - pkt.head) + pkt.blen;
+
+ if (pkt.tag == PGPTAG_PUBLIC_SUBKEY) {
+ if (count == alloced) {
+ alloced <<= 1;
+ digps = xrealloc(digps, alloced * sizeof(*digps));
+ }
+
+ digps[count] = xcalloc(1, sizeof(**digps));
+ digps[count]->tag = PGPTAG_PUBLIC_SUBKEY;
+ /* Copy UID from main key to subkey */
+ digps[count]->userid = xstrdup(mainkey->userid);
+
+ if(getFingerprint(pkt.body, pkt.blen, digps[count]->signid)) {
+ pgpDigParamsFree(digps[count]);
+ continue;
+ }
+
+ if(pgpPrtKey(pkt.tag, pkt.body, pkt.blen, digps[count])) {
+ pgpDigParamsFree(digps[count]);
+ continue;
+ }
+ count++;
+ }
+ }
+ rc = (p == pend) ? 0 : -1;
+
+ if (rc == 0) {
+ *subkeys = xrealloc(digps, count * sizeof(*digps));
+ *subkeysCount = count;
+ } else {
+ for (i = 0; i < count; i++)
+ pgpDigParamsFree(digps[i]);
+ free(digps);
+ }
+
+ return rc;
+}
+
int pgpPrtPkts(const uint8_t * pkts, size_t pktlen, pgpDig dig, int printing)
{
int rc;
@@ -1238,6 +1303,29 @@ pgpArmor pgpParsePkts(const char *armor, uint8_t ** pkt, size_t * pktlen)
return ec;
}
+int pgpPubKeyCertLen(const uint8_t *pkts, size_t pktslen, size_t *certlen)
+{
+ const uint8_t *p = pkts;
+ const uint8_t *pend = pkts + pktslen;
+ struct pgpPkt pkt;
+
+ while (p < pend) {
+ if (decodePkt(p, (pend - p), &pkt))
+ return -1;
+
+ if (pkt.tag == PGPTAG_PUBLIC_KEY && pkts != p) {
+ *certlen = p - pkts;
+ return 0;
+ }
+
+ p += (pkt.body - pkt.head) + pkt.blen;
+ }
+
+ *certlen = pktslen;
+
+ return 0;
+}
+
char * pgpArmorWrap(int atype, const unsigned char * s, size_t ns)
{
char *buf = NULL, *val = NULL;
diff --git a/rpmio/rpmpgp.h b/rpmio/rpmpgp.h
index 4264434e..718fb5be 100644
--- a/rpmio/rpmpgp.h
+++ b/rpmio/rpmpgp.h
@@ -1000,6 +1000,18 @@ int pgpPrtParams(const uint8_t *pkts, size_t pktlen, unsigned int pkttype,
pgpDigParams * ret);
/** \ingroup rpmpgp
+ * Parse subkey parameters from OpenPGP packet(s).
+ * @param pkts OpenPGP packet(s)
+ * @param pktlen OpenPGP packet(s) length (no. of bytes)
+ * @param mainkey parameters of main key
+ * @param subkeys array of subkey parameters (alloced)
+ * @param subkeysCount count of subkeys
+ * @return -1 on error, 0 on success
+ */
+int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen,
+ pgpDigParams mainkey, pgpDigParams **subkeys,
+ int *subkeysCount);
+/** \ingroup rpmpgp
* Print/parse a OpenPGP packet(s).
* @param pkts OpenPGP packet(s)
* @param pktlen OpenPGP packet(s) length (no. of bytes)
@@ -1028,6 +1040,20 @@ pgpArmor pgpReadPkts(const char * fn, uint8_t ** pkt, size_t * pktlen);
pgpArmor pgpParsePkts(const char *armor, uint8_t ** pkt, size_t * pktlen);
/** \ingroup rpmpgp
+ * Return a length of the first public key certificate in a buffer given
+ * by pkts that contains one or more certificates. A public key certificate
+ * consits of packets like Public key packet, User ID packet and so on.
+ * In a buffer every certificate starts with Public key packet and it ends
+ * with the start of the next certificate or with the end of the buffer.
+ *
+ * @param pkts pointer to a buffer with certificates
+ * @param pktslen length of the buffer with certificates
+ * @param certlen length of the first certificate in the buffer
+ * @return 0 on success
+ */
+int pgpPubKeyCertLen(const uint8_t *pkts, size_t pktslen, size_t *certlen);
+
+/** \ingroup rpmpgp
* Wrap a OpenPGP packets in ascii armor for transport.
* @param atype type of armor
* @param s binary pkt data
diff --git a/rpmio/rpmsq.c b/rpmio/rpmsq.c
index bfd4db00..8515a0eb 100644
--- a/rpmio/rpmsq.c
+++ b/rpmio/rpmsq.c
@@ -16,6 +16,7 @@
#include "debug.h"
+static int disableInterruptSafety;
static sigset_t rpmsqCaught;
typedef struct rpmsig_s * rpmsig;
@@ -70,6 +71,9 @@ int rpmsqEnable(int signum, rpmsqAction_t handler)
rpmsig tbl;
int ret = -1;
+ if (disableInterruptSafety)
+ return 0;
+
for (tbl = rpmsigTbl; tbl->signum >= 0; tbl++) {
if (tblsignum != tbl->signum)
continue;
@@ -112,3 +116,25 @@ int rpmsqEnable(int signum, rpmsqAction_t handler)
return ret;
}
+
+/** \ingroup rpmio
+ *
+ * By default, librpm will trap various unix signals such as SIGINT and SIGTERM,
+ * in order to avoid process exit while locks are held or a transaction is being
+ * performed. However, there exist tools that operate on non-running roots (traditionally
+ * build systems such as mock), as well as deployment tools such as rpm-ostree.
+ *
+ * These tools are more robust against interruption - typically they
+ * will just throw away the partially constructed root. This function
+ * is designed for use by those tools, so an operator can happily
+ * press Control-C.
+ *
+ * It's recommended to call this once only at process startup if this
+ * behavior is desired (and to then avoid using librpm against "live"
+ * databases), because currently signal handlers will not be retroactively
+ * applied if a database is open.
+ */
+void rpmsqSetInterruptSafety(int on)
+{
+ disableInterruptSafety = !on;
+}
diff --git a/rpmio/rpmsq.h b/rpmio/rpmsq.h
index 00a1a72c..22bfcc56 100644
--- a/rpmio/rpmsq.h
+++ b/rpmio/rpmsq.h
@@ -52,6 +52,8 @@ void rpmsqAction(int signum);
*/
int rpmsqEnable(int signum, rpmsqAction_t handler);
+void rpmsqSetInterruptSafety(int on);
+
#ifdef __cplusplus
}
#endif
diff --git a/rpmpopt.in b/rpmpopt.in
index 036ab4e3..fc88da01 100644
--- a/rpmpopt.in
+++ b/rpmpopt.in
@@ -115,8 +115,16 @@ rpm alias --triggerscripts --qf '\
rpm alias --triggers --triggerscripts \
--POPTdesc=$"list trigger scriptlets from package(s)"
+rpm alias --filetriggerscripts --qf '\
+[filetrigger%{FILETRIGGERTYPE} scriptlet (using %{FILETRIGGERSCRIPTPROG}) -- \
+%{FILETRIGGERCONDS}\n%{FILETRIGGERSCRIPTS}\n]\
+[transfiletrigger%{TRANSFILETRIGGERTYPE} scriptlet (using %{TRANSFILETRIGGERSCRIPTPROG}) -- \
+%{TRANSFILETRIGGERCONDS}\n%{TRANSFILETRIGGERSCRIPTS}\n]'
+rpm alias --filetriggers --filetriggerscripts \
+ --POPTdesc=$"list filetrigger scriptlets from package(s)"
+
rpm alias --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NVRA} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \
- --pipe "sort -r -n | sed 's,^[0-9]\+ ,,' | awk '{printf(\"%-45s %-s\n\", $1, substr($0,length($1)+2))}' " \
+ --pipe "LC_NUMERIC=C sort -r -n | sed 's,^[0-9]\+ ,,' | awk '{printf(\"%-45s %-s\n\", $1, substr($0,length($1)+2))}' " \
--POPTdesc=$"list package(s) by install time, most recent first"
rpm alias --dupes --qf '%|SOURCERPM?{%{name}.%{arch}}:{%|ARCH?{%{name}}:{%{name}-%{version}}|}|\n' --pipe "sort | uniq -d" \
@@ -162,6 +170,7 @@ rpm alias --httpproxy --define '_httpproxy !#:+'
rpm exec --addsign rpmsign --addsign
rpm exec --delsign rpmsign --delsign
rpm exec --resign rpmsign --resign
+#rpm exec --signfiles rpmsign --signfiles
rpm exec --checksig rpmkeys --checksig
rpm exec -K rpmkeys --checksig
rpm exec --import rpmkeys --import
@@ -187,8 +196,8 @@ rpmbuild alias --buildpolicy --define '__os_install_post %{_rpmconfigdir}/brp-!#
--POPTargs=$"<policy>"
# Minimally preserve rpmbuild's --sign functionality
rpmbuild alias --sign \
- --pipe "grep '.*: .*\.rpm$'|cut -d: -f2|xargs -r rpm --addsign" \
- --POPTdesc=$"generate GPG signature"
+ --pipe 'rpm --addsign `grep ".*: .*\.rpm$"|cut -d: -f2` < "/dev/"`ps -p $$ -o tty | tail -n 1`' \
+ --POPTdesc=$"generate GPG signature (deprecated, use command rpmsign instead)"
rpmsign alias --key-id --define '_gpg_name !#:+' \
--POPTdesc=$"key id/name to sign with" \
diff --git a/rpmrc.in b/rpmrc.in
index 20b531a8..abc08fc3 100644
--- a/rpmrc.in
+++ b/rpmrc.in
@@ -59,6 +59,13 @@ optflags: hppa2.0 -O2 -g -mpa-risc-1-0
optflags: mips -O2 -g
optflags: mipsel -O2 -g
+optflags: mips64 -O2 -g
+optflags: mips64el -O2 -g
+
+optflags: mipsr6 -O2 -g
+optflags: mipsr6el -O2 -g
+optflags: mips64r6 -O2 -g
+optflags: mips64r6el -O2 -g
optflags: armv3l -O2 -g -march=armv3
optflags: armv4b -O2 -g -march=armv4
@@ -92,6 +99,8 @@ optflags: sh4a -O2 -g -mieee
optflags: aarch64 -O2 -g
+optflags: riscv64 -O2 -g
+
#############################################################
# Architecture colors
@@ -114,6 +123,16 @@ archcolor: armv5tejl 1
archcolor: armv6l 1
archcolor: armv7l 1
+archcolor: mips 1
+archcolor: mipsel 1
+archcolor: mips64 2
+archcolor: mips64el 2
+
+archcolor: mipsr6 1
+archcolor: mipsr6el 1
+archcolor: mips64r6 2
+archcolor: mips64r6el 2
+
archcolor: m68k 1
archcolor: m68kmint 1
@@ -130,6 +149,8 @@ archcolor: sh4 1
archcolor: aarch64 2
+archcolor: riscv64 2
+
#############################################################
# Canonical arch names and numbers
@@ -167,6 +188,7 @@ arch_canon: sparcv9: sparcv9 3
arch_canon: sparcv9v: sparcv9v 3
# This is really a place holder for MIPS.
arch_canon: mips: mips 4
+arch_canon: mipsel: mipsel 4
arch_canon: ppc: ppc 5
arch_canon: ppc8260: ppc8260 5
@@ -180,7 +202,8 @@ arch_canon: IP: sgi 7
arch_canon: rs6000: rs6000 8
arch_canon: ia64: ia64 9
-arch_canon: mipsel: mipsel 11
+arch_canon: mips64: mips64 11
+arch_canon: mips64el: mips64el 11
arch_canon: armv3l: armv3l 12
arch_canon: armv4b: armv4b 12
@@ -219,6 +242,14 @@ arch_canon: sh4a: sh4a 17
arch_canon: xtensa: xtensa 18
arch_canon: aarch64: aarch64 19
+arch_canon: mipsr6: mipsr6 20
+arch_canon: mipsr6el: mipsr6el 20
+arch_canon: mips64r6: mips64r6 21
+arch_canon: mips64r6el: mips64r6el 21
+
+arch_canon: riscv: riscv64 22
+arch_canon: riscv64: riscv64 22
+
#############################################################
# Canonical OS names and numbers
@@ -309,6 +340,16 @@ buildarchtranslate: armv7l: armv7l
buildarchtranslate: armv7hl: armv7hl
buildarchtranslate: armv7hnl: armv7hnl
+buildarchtranslate: mips: mips
+buildarchtranslate: mipsel: mipsel
+buildarchtranslate: mips64: mips64
+buildarchtranslate: mips64el: mips64el
+
+buildarchtranslate: mipsr6: mipsr6
+buildarchtranslate: mipsr6el: mipsr6el
+buildarchtranslate: mips64r6: mips64r6
+buildarchtranslate: mips64r6el: mips64r6el
+
buildarchtranslate: m68k: m68k
buildarchtranslate: atarist: m68kmint
@@ -334,6 +375,9 @@ buildarchtranslate: sh4a: sh4
buildarchtranslate: aarch64: aarch64
+buildarchtranslate: riscv: riscv64
+buildarchtranslate: riscv64: riscv64
+
#############################################################
# Architecture compatibility
@@ -387,6 +431,13 @@ arch_compat: sparc: noarch
arch_compat: mips: noarch
arch_compat: mipsel: noarch
+arch_compat: mips64: mips
+arch_compat: mips64el: mipsel
+
+arch_compat: mipsr6: noarch
+arch_compat: mipsr6el: noarch
+arch_compat: mips64r6: mipsr6
+arch_compat: mips64r6el: mipsr6el
arch_compat: hppa2.0: hppa1.2
arch_compat: hppa1.2: hppa1.1
@@ -432,6 +483,9 @@ arch_compat: sh4a: sh4
arch_compat: aarch64: noarch
+arch_compat: riscv: noarch
+arch_compat: riscv64: noarch
+
os_compat: IRIX64: IRIX
os_compat: solaris2.7: solaris2.3 solaris2.4 solaris2.5 solaris2.6
os_compat: solaris2.6: solaris2.3 solaris2.4 solaris2.5
@@ -465,6 +519,9 @@ buildarch_compat: ia64: noarch
buildarch_compat: aarch64: noarch
+buildarch_compat: riscv: noarch
+buildarch_compat: riscv64: noarch
+
buildarch_compat: athlon: i686
buildarch_compat: geode: i586
buildarch_compat: pentium4: pentium3
@@ -508,6 +565,13 @@ buildarch_compat: ppc64p7: ppc64
buildarch_compat: mips: noarch
buildarch_compat: mipsel: noarch
+buildarch_compat: mips64: noarch
+buildarch_compat: mips64el: noarch
+
+buildarch_compat: mipsr6: noarch
+buildarch_compat: mipsr6el: noarch
+buildarch_compat: mips64r6: noarch
+buildarch_compat: mips64r6el: noarch
buildarch_compat: armv4b: noarch
buildarch_compat: armv7l: armv6l
diff --git a/rpmsign.c b/rpmsign.c
index b8e55983..7f48d985 100644
--- a/rpmsign.c
+++ b/rpmsign.c
@@ -6,6 +6,7 @@
#include <rpm/rpmcli.h>
#include <rpm/rpmsign.h>
#include "cliutils.h"
+#include "lib/rpmsignfiles.h"
#include "debug.h"
#if !defined(__GLIBC__) && !defined(__APPLE__)
@@ -20,6 +21,10 @@ enum modes {
static int mode = 0;
+static int signfiles = 0, fskpass = 0;
+static char * fileSigningKey = NULL;
+static char * fileSigningKeyPassword = NULL;
+
static struct poptOption signOptsTable[] = {
{ "addsign", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_ADDSIGN,
N_("sign package(s)"), NULL },
@@ -27,6 +32,13 @@ static struct poptOption signOptsTable[] = {
N_("sign package(s) (identical to --addsign)"), NULL },
{ "delsign", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_DELSIGN,
N_("delete package signatures"), NULL },
+ { "signfiles", '\0', POPT_ARG_NONE, &signfiles, 0,
+ N_("sign package(s) files"), NULL},
+ { "fskpath", '\0', POPT_ARG_STRING, &fileSigningKey, 0,
+ N_("use file signing key <key>"),
+ N_("<key>") },
+ { "fskpass", '\0', POPT_ARG_NONE, &fskpass, 0,
+ N_("prompt for file signing key password"), NULL},
POPT_TABLEEND
};
@@ -41,96 +53,52 @@ static struct poptOption optionsTable[] = {
POPT_TABLEEND
};
-static int checkPassPhrase(const char * passPhrase)
-{
- int passPhrasePipe[2];
- int pid, status;
- int rc = -1;
- int xx;
-
- if (passPhrase == NULL)
- return -1;
-
- passPhrasePipe[0] = passPhrasePipe[1] = 0;
- if (pipe(passPhrasePipe))
- return -1;
-
- pid = fork();
- if (pid < 0) {
- close(passPhrasePipe[0]);
- close(passPhrasePipe[1]);
- return -1;
- }
-
- if (pid == 0) {
- char * cmd, * gpg_path;
- char *const *av;
- int fdno;
-
- close(STDIN_FILENO);
- close(STDOUT_FILENO);
- close(passPhrasePipe[1]);
- if ((fdno = open("/dev/null", O_RDONLY)) != STDIN_FILENO) {
- xx = dup2(fdno, STDIN_FILENO);
- close(fdno);
- }
- if ((fdno = open("/dev/null", O_WRONLY)) != STDOUT_FILENO) {
- xx = dup2(fdno, STDOUT_FILENO);
- close(fdno);
- }
- xx = dup2(passPhrasePipe[0], 3);
-
- unsetenv("MALLOC_CHECK_");
- gpg_path = rpmExpand("%{?_gpg_path}", NULL);
-
- if (!rstreq(gpg_path, ""))
- setenv("GNUPGHOME", gpg_path, 1);
-
- cmd = rpmExpand("%{?__gpg_check_password_cmd}", NULL);
- rc = poptParseArgvString(cmd, NULL, (const char ***)&av);
- if (xx >= 0 && rc == 0) {
- rc = execve(av[0], av+1, environ);
- fprintf(stderr, _("Could not exec %s: %s\n"), "gpg",
- strerror(errno));
- }
- _exit(EXIT_FAILURE);
- }
-
- close(passPhrasePipe[0]);
- xx = write(passPhrasePipe[1], passPhrase, strlen(passPhrase));
- xx = write(passPhrasePipe[1], "\n", 1);
- close(passPhrasePipe[1]);
-
- if (xx >= 0 && waitpid(pid, &status, 0) >= 0)
- rc = (WIFEXITED(status) && WEXITSTATUS(status) == 0) ? 0 : 1;
-
- return rc;
-}
-
/* TODO: permit overriding macro setup on the command line */
static int doSign(poptContext optCon)
{
int rc = EXIT_FAILURE;
char * passPhrase = NULL;
char * name = rpmExpand("%{?_gpg_name}", NULL);
+ struct rpmSignArgs sig = {NULL, 0, 0};
if (rstreq(name, "")) {
fprintf(stderr, _("You must set \"%%_gpg_name\" in your macro file\n"));
goto exit;
}
- /* XXX FIXME: eliminate obsolete getpass() usage */
- passPhrase = getpass(_("Enter pass phrase: "));
- passPhrase = (passPhrase != NULL) ? rstrdup(passPhrase) : NULL;
- if (checkPassPhrase(passPhrase) == 0) {
- const char *arg;
- fprintf(stderr, _("Pass phrase is good.\n"));
- rc = 0;
- while ((arg = poptGetArg(optCon)) != NULL) {
- rc += rpmPkgSign(arg, NULL, passPhrase);
+ if (fileSigningKey) {
+ addMacro(NULL, "_file_signing_key", NULL, fileSigningKey, RMIL_GLOBAL);
+ }
+
+ if (signfiles) {
+ const char *key = rpmExpand("%{?_file_signing_key}", NULL);
+ if (rstreq(key, "")) {
+ fprintf(stderr, _("You must set \"$$_file_signing_key\" in your macro file or on the command line with --fskpath\n"));
+ goto exit;
+ }
+
+ if (fskpass) {
+#ifndef WITH_IMAEVM
+ argerror(_("--fskpass may only be specified when signing files"));
+#else
+ fileSigningKeyPassword = get_fskpass();
+#endif
+ }
+
+ addMacro(NULL, "_file_signing_key_password", NULL,
+ fileSigningKeyPassword, RMIL_CMDLINE);
+ if (fileSigningKeyPassword) {
+ memset(fileSigningKeyPassword, 0, strlen(fileSigningKeyPassword));
+ free(fileSigningKeyPassword);
}
- } else {
- fprintf(stderr, _("Pass phrase check failed or gpg key expired\n"));
+
+ sig.signfiles = 1;
+ }
+
+ const char *arg;
+ rc = 0;
+ while ((arg = poptGetArg(optCon)) != NULL) {
+ rc += rpmPkgSign(arg, &sig);
}
exit:
@@ -154,6 +122,10 @@ int main(int argc, char *argv[])
argerror(_("no arguments given"));
}
+ if (fileSigningKey && !signfiles) {
+ argerror(_("--fskpath may only be specified when signing files"));
+ }
+
switch (mode) {
case MODE_ADDSIGN:
case MODE_RESIGN:
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 3c804a44..036105d6 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -11,12 +11,11 @@ EXTRA_DIST = \
check-files check-prereqs \
check-buildroot check-rpaths check-rpaths-worker \
find-debuginfo.sh find-lang.sh \
- perldeps.pl perl.prov perl.req pythondeps.sh osgideps.pl \
+ perl.prov perl.req pythondeps.sh \
rpmdb_loadcvt rpm.daily rpm.log rpm.supp rpm2cpio.sh \
- tcl.req tgpg vpkg-provides.sh \
+ tgpg vpkg-provides.sh \
find-requires find-provides \
find-requires.php find-provides.php \
- find-php-provides find-php-requires \
mono-find-requires mono-find-provides \
ocaml-find-requires.sh ocaml-find-provides.sh \
pkgconfigdeps.sh libtooldeps.sh appdata.prov \
@@ -31,12 +30,12 @@ rpmconfig_SCRIPTS = \
check-files check-prereqs \
check-buildroot check-rpaths check-rpaths-worker \
find-lang.sh find-requires find-provides \
- perl.prov perl.req perldeps.pl pythondeps.sh osgideps.pl \
+ perl.prov perl.req pythondeps.sh \
mono-find-requires mono-find-provides \
pkgconfigdeps.sh libtooldeps.sh \
ocaml-find-requires.sh ocaml-find-provides.sh \
fontconfig.prov desktop-file.prov script.req \
- rpmdb_loadcvt rpm2cpio.sh tcl.req tgpg
+ rpmdb_loadcvt rpm2cpio.sh tgpg
rpmconfig_DATA = \
rpm.daily rpm.log rpm.supp \
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
index 1a6c8556..3b598bcc 100644
--- a/scripts/Makefile.in
+++ b/scripts/Makefile.in
@@ -403,7 +403,7 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
CLEANFILES =
EXTRA_DIST = \
brp-compress brp-python-bytecompile brp-java-gcjcompile \
@@ -412,12 +412,11 @@ EXTRA_DIST = \
check-files check-prereqs \
check-buildroot check-rpaths check-rpaths-worker \
find-debuginfo.sh find-lang.sh \
- perldeps.pl perl.prov perl.req pythondeps.sh osgideps.pl \
+ perl.prov perl.req pythondeps.sh \
rpmdb_loadcvt rpm.daily rpm.log rpm.supp rpm2cpio.sh \
- tcl.req tgpg vpkg-provides.sh \
+ tgpg vpkg-provides.sh \
find-requires find-provides \
find-requires.php find-provides.php \
- find-php-provides find-php-requires \
mono-find-requires mono-find-provides \
ocaml-find-requires.sh ocaml-find-provides.sh \
pkgconfigdeps.sh libtooldeps.sh appdata.prov \
@@ -432,12 +431,12 @@ rpmconfig_SCRIPTS = \
check-files check-prereqs \
check-buildroot check-rpaths check-rpaths-worker \
find-lang.sh find-requires find-provides \
- perl.prov perl.req perldeps.pl pythondeps.sh osgideps.pl \
+ perl.prov perl.req pythondeps.sh \
mono-find-requires mono-find-provides \
pkgconfigdeps.sh libtooldeps.sh \
ocaml-find-requires.sh ocaml-find-provides.sh \
fontconfig.prov desktop-file.prov script.req \
- rpmdb_loadcvt rpm2cpio.sh tcl.req tgpg
+ rpmdb_loadcvt rpm2cpio.sh tgpg
rpmconfig_DATA = \
rpm.daily rpm.log rpm.supp \
diff --git a/scripts/brp-compress b/scripts/brp-compress
index 247779e3..71fed552 100755
--- a/scripts/brp-compress
+++ b/scripts/brp-compress
@@ -8,8 +8,8 @@ fi
cd "$RPM_BUILD_ROOT"
# Compress man pages
-COMPRESS="gzip -9 -n"
-COMPRESS_EXT=.gz
+COMPRESS=${COMPRESS:-gzip -9 -n}
+COMPRESS_EXT=${COMPRESS_EXT:-.gz}
for d in ./usr/man/man* ./usr/man/*/man* ./usr/info \
./usr/share/man/man* ./usr/share/man/*/man* ./usr/share/info \
diff --git a/scripts/brp-python-bytecompile b/scripts/brp-python-bytecompile
index 39fca605..838f23d9 100644
--- a/scripts/brp-python-bytecompile
+++ b/scripts/brp-python-bytecompile
@@ -20,6 +20,35 @@ if [ -z "$depth" -o "$depth" -le "1" ]; then
exit 0
fi
+function python_bytecompile()
+{
+ local options=$1
+ local python_binary=$2
+ local exclude=$3
+ local python_libdir=$4
+ local depth=$5
+ local real_libdir=$6
+
+cat << EOF | $python_binary $options
+import compileall, sys, os, re
+
+python_libdir = "$python_libdir"
+depth = $depth
+real_libdir = "$real_libdir"
+build_root = "$RPM_BUILD_ROOT"
+exclude = r"$exclude"
+
+class Filter:
+ def search(self, path):
+ ret = not os.path.realpath(path).startswith(build_root)
+ if exclude:
+ ret = ret or re.search(exclude, path)
+ return ret
+
+sys.exit(not compileall.compile_dir(python_libdir, depth, real_libdir, force=1, rx=Filter(), quiet=1))
+EOF
+}
+
# .pyc/.pyo files embed a "magic" value, identifying the ABI version of Python
# bytecode that they are for.
#
@@ -41,14 +70,14 @@ do
echo "Bytecompiling .py files below $python_libdir using $python_binary"
# Generate normal (.pyc) byte-compiled files.
- $python_binary -c 'import compileall, sys; sys.exit(not compileall.compile_dir("'"$python_libdir"'", '"$depth"', "'"$real_libdir"'", force=1, quiet=1))'
+ python_bytecompile "" "$python_binary" "" "$python_libdir" "$depth" "$real_libdir"
if [ $? -ne 0 -a 0$errors_terminate -ne 0 ]; then
# One or more of the files had a syntax error
exit 1
fi
# Generate optimized (.pyo) byte-compiled files.
- $python_binary -O -c 'import compileall, sys; sys.exit(not compileall.compile_dir("'"$python_libdir"'", '"$depth"', "'"$real_libdir"'", force=1, quiet=1))'
+ python_bytecompile "-O" "$python_binary" "" "$python_libdir" "$depth" "$real_libdir"
if [ $? -ne 0 -a 0$errors_terminate -ne 0 ]; then
# One or more of the files had a syntax error
exit 1
@@ -60,14 +89,14 @@ done
# implementation:
# Generate normal (.pyc) byte-compiled files.
-$default_python -c 'import compileall, re, sys; sys.exit (not compileall.compile_dir("'"$RPM_BUILD_ROOT"'", '"$depth"', "/", 1, re.compile(r"'"/bin/|/sbin/|/usr/lib(64)?/python[0-9]\.[0-9]"'"), quiet=1))'
+python_bytecompile "" $default_python "/bin/|/sbin/|/usr/lib(64)?/python[0-9]\.[0-9]|/usr/share/doc" "$RPM_BUILD_ROOT" "$depth" "/"
if [ $? -ne 0 -a 0$errors_terminate -ne 0 ]; then
# One or more of the files had a syntax error
exit 1
fi
# Generate optimized (.pyo) byte-compiled files.
-$default_python -O -c 'import compileall, re, sys; sys.exit(not compileall.compile_dir("'"$RPM_BUILD_ROOT"'", '"$depth"', "/", 1, re.compile(r"'"/bin/|/sbin/|/usr/lib(64)?/python[0-9]\.[0-9]"'"), quiet=1))' > /dev/null
+python_bytecompile "-O" $default_python "/bin/|/sbin/|/usr/lib(64)?/python[0-9]\.[0-9]|/usr/share/doc" "$RPM_BUILD_ROOT" "$depth" "/"
if [ $? -ne 0 -a 0$errors_terminate -ne 0 ]; then
# One or more of the files had a syntax error
exit 1
diff --git a/scripts/brp-strip b/scripts/brp-strip
index 2e99d1e6..5e645669 100755
--- a/scripts/brp-strip
+++ b/scripts/brp-strip
@@ -15,6 +15,6 @@ esac
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
grep -v ' shared object,' | \
- sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
+ sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p'`; do
$STRIP -g "$f" || :
done
diff --git a/scripts/brp-strip-comment-note b/scripts/brp-strip-comment-note
index 323c0410..833ac78e 100755
--- a/scripts/brp-strip-comment-note
+++ b/scripts/brp-strip-comment-note
@@ -16,7 +16,7 @@ esac
# for already stripped elf files in the build root
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
- sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped/\1/p'`; do
+ sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped.*/\1/p'`; do
note="-R .note"
if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \
grep ALLOC >/dev/null; then
diff --git a/scripts/brp-strip-shared b/scripts/brp-strip-shared
index e06ee4bf..51d10d5b 100644
--- a/scripts/brp-strip-shared
+++ b/scripts/brp-strip-shared
@@ -20,6 +20,6 @@ esac
for f in `find "$RPM_BUILD_ROOT" -type f -a -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
grep ' shared object,' | \
- sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
+ sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p'`; do
$STRIP --strip-unneeded "$f"
done
diff --git a/scripts/check-rpaths-worker b/scripts/check-rpaths-worker
index 7ea4fb48..7ea8643f 100755
--- a/scripts/check-rpaths-worker
+++ b/scripts/check-rpaths-worker
@@ -59,7 +59,7 @@ function showHint()
*
* Examples:
* - to ignore standard and empty RPATHs, execute 'rpmbuild' like
-* \$ QA_RPATHS=\$[ 0x0001|0x0010 ] rpmbuild my-package.src.rpm
+* \$ QA_RPATHS=\$(( 0x0001|0x0010 )) rpmbuild my-package.src.rpm
* - to check existing files, set \$RPM_BUILD_ROOT and execute check-rpaths like
* \$ RPM_BUILD_ROOT=<top-dir> /usr/lib/rpm/check-rpaths
*
diff --git a/scripts/find-debuginfo.sh b/scripts/find-debuginfo.sh
index 57449f74..a70ef3c9 100644
--- a/scripts/find-debuginfo.sh
+++ b/scripts/find-debuginfo.sh
@@ -2,12 +2,14 @@
#find-debuginfo.sh - automagically generate debug info and file list
#for inclusion in an rpm spec file.
#
-# Usage: find-debuginfo.sh [--strict-build-id] [-g] [-r]
+# Usage: find-debuginfo.sh [--strict-build-id] [-g] [-r] [-m]
# [-o debugfiles.list]
+# [--run-dwz] [--dwz-low-mem-die-limit N]
+# [--dwz-max-die-limit N]
# [[-l filelist]... [-p 'pattern'] -o debuginfo.list]
# [builddir]
#
-# The -g flag says to use strip -g instead of full strip on DSOs.
+# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
# The --strict-build-id flag says to exit with failure status if
# any ELF binary processed fails to contain a build-id note.
# The -r flag says to use eu-strip --reloc-debug-sections.
@@ -20,18 +22,33 @@
# The -p argument is an grep -E -style regexp matching the a file name,
# and must not use anchors (^ or $).
#
+# The --run-dwz flag instructs find-debuginfo.sh to run the dwz utility
+# if available, and --dwz-low-mem-die-limit and --dwz-max-die-limit
+# provide detailed limits. See dwz(1) -l and -L option for details.
+#
# All file names in switches are relative to builddir (. if not given).
#
-# With -g arg, pass it to strip on libraries.
+# Figure out where we are installed so we can call other helper scripts.
+lib_rpm_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# With -g arg, pass it to strip on libraries or executables.
strip_g=false
# with -r arg, pass --reloc-debug-sections to eu-strip.
strip_r=false
+# with -m arg, add minimal debuginfo to binary.
+include_minidebug=false
+
# Barf on missing build IDs.
strict=false
+# DWZ parameters.
+run_dwz=false
+dwz_low_mem_die_limit=
+dwz_max_die_limit=
+
BUILDDIR=.
out=debugfiles.list
nout=0
@@ -40,9 +57,23 @@ while [ $# -gt 0 ]; do
--strict-build-id)
strict=true
;;
+ --run-dwz)
+ run_dwz=true
+ ;;
+ --dwz-low-mem-die-limit)
+ dwz_low_mem_die_limit=$2
+ shift
+ ;;
+ --dwz-max-die-limit)
+ dwz_max_die_limit=$2
+ shift
+ ;;
-g)
strip_g=true
;;
+ -m)
+ include_minidebug=true
+ ;;
-o)
if [ -z "${lists[$nout]}" -a -z "${ptns[$nout]}" ]; then
out=$2
@@ -86,10 +117,12 @@ done
LISTFILE="$BUILDDIR/$out"
SOURCEFILE="$BUILDDIR/debugsources.list"
LINKSFILE="$BUILDDIR/debuglinks.list"
+ELFBINSFILE="$BUILDDIR/elfbins.list"
> "$SOURCEFILE"
> "$LISTFILE"
> "$LINKSFILE"
+> "$ELFBINSFILE"
debugdir="${RPM_BUILD_ROOT}/usr/lib/debug"
@@ -100,11 +133,49 @@ strip_to_debug()
$strip_r && r=--reloc-debug-sections
$strip_g && case "$(file -bi "$2")" in
application/x-sharedlib*) g=-g ;;
+ application/x-executable*) g=-g ;;
esac
eu-strip --remove-comment $r $g -f "$1" "$2" || exit
chmod 444 "$1" || exit
}
+add_minidebug()
+{
+ local debuginfo="$1"
+ local binary="$2"
+
+ local dynsyms=`mktemp`
+ local funcsyms=`mktemp`
+ local keep_symbols=`mktemp`
+ local mini_debuginfo=`mktemp`
+
+ # In the minisymtab we don't need the .debug_ sections (already removed
+ # by -S) but also not any other non-allocated PROGBITS or NOTE sections.
+ # List and remove them explicitly. We do want to keep the allocated,
+ # symbol and NOBITS sections so cannot use --keep-only because that is
+ # too agressive. Field $2 is the section name, $3 is the section type
+ # and $8 are the section flags.
+ local remove_sections=`readelf -W -S "$debuginfo" | awk '{ if (index($2,".debug_") != 1 && ($3 == "PROGBITS" || $3 == "NOTE") && index($8,"A") == 0) printf "--remove-section "$2" " }'`
+
+ # Extract the dynamic symbols from the main binary, there is no need to also have these
+ # in the normal symbol table
+ nm -D "$binary" --format=posix --defined-only | awk '{ print $1 }' | sort > "$dynsyms"
+ # Extract all the text (i.e. function) symbols from the debuginfo
+ # Use format sysv to make sure we can match against the actual ELF FUNC
+ # symbol type. The binutils nm posix format symbol type chars are
+ # ambigous for architectures that might use function descriptors.
+ nm "$debuginfo" --format=sysv --defined-only | awk -F \| '{ if ($4 ~ "FUNC") print $1 }' | sort > "$funcsyms"
+ # Keep all the function symbols not already in the dynamic symbol table
+ comm -13 "$dynsyms" "$funcsyms" > "$keep_symbols"
+ # Copy the full debuginfo, keeping only a minumal set of symbols and removing some unnecessary sections
+ objcopy -S $remove_sections --keep-symbols="$keep_symbols" "$debuginfo" "$mini_debuginfo" &> /dev/null
+ #Inject the compressed data into the .gnu_debugdata section of the original binary
+ xz "$mini_debuginfo"
+ mini_debuginfo="${mini_debuginfo}.xz"
+ objcopy --add-section .gnu_debugdata="$mini_debuginfo" "$binary"
+ rm -f "$dynsyms" "$funcsyms" "$keep_symbols" "$mini_debuginfo"
+}
+
# Make a relative symlink to $1 called $3$2
shopt -s extglob
link_relative()
@@ -205,7 +276,7 @@ $strict || strict_error=WARNING
find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
\( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
-print |
-file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' |
+file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped.*/\1/p' |
xargs --no-run-if-empty stat -c '%h %D_%i %n' |
while read nlinks inum f; do
get_debugfn "$f"
@@ -231,7 +302,7 @@ while read nlinks inum f; do
fi
echo "extracting debug info from $f"
- id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
+ id=$(${lib_rpm_dir}/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
-i -l "$SOURCEFILE" "$f") || exit
if [ $nlinks -gt 1 ]; then
eval linkedid_$inum=\$id
@@ -241,7 +312,7 @@ while read nlinks inum f; do
$strict && exit 2
fi
- [ -x /usr/bin/gdb-add-index ] && /usr/bin/gdb-add-index "$f" > /dev/null 2>&1
+ [ type gdb-add-index >/dev/null 2>&1 && gdb-add-index "$f" > /dev/null 2>&1
# A binary already copied into /usr/lib/debug doesn't get stripped,
# just has its file names collected and adjusted.
@@ -260,12 +331,53 @@ while read nlinks inum f; do
chmod u-w "$f"
fi
+ # strip -g implies we have full symtab, don't add mini symtab in that case.
+ $strip_g || ($include_minidebug && add_minidebug "${debugfn}" "$f")
+
+ echo "./${f#$RPM_BUILD_ROOT}" >> "$ELFBINSFILE"
+
if [ -n "$id" ]; then
make_id_link "$id" "$dn/$(basename $f)"
make_id_link "$id" "/usr/lib/debug$dn/$bn" .debug
fi
done || exit
+# Invoke the DWARF Compressor utility.
+if $run_dwz && type dwz >/dev/null 2>&1 \
+ && [ -d "${RPM_BUILD_ROOT}/usr/lib/debug" ]; then
+ dwz_files="`cd "${RPM_BUILD_ROOT}/usr/lib/debug"; find -type f -name \*.debug`"
+ if [ -n "${dwz_files}" ]; then
+ dwz_multifile_name="${RPM_PACKAGE_NAME}-${RPM_PACKAGE_VERSION}-${RPM_PACKAGE_RELEASE}.${RPM_ARCH}"
+ dwz_multifile_suffix=
+ dwz_multifile_idx=0
+ while [ -f "${RPM_BUILD_ROOT}/usr/lib/debug/.dwz/${dwz_multifile_name}${dwz_multifile_suffix}" ]; do
+ let ++dwz_multifile_idx
+ dwz_multifile_suffix=".${dwz_multifile_idx}"
+ done
+ dwz_multfile_name="${dwz_multifile_name}${dwz_multifile_suffix}"
+ dwz_opts="-h -q -r -m .dwz/${dwz_multifile_name}"
+ mkdir -p "${RPM_BUILD_ROOT}/usr/lib/debug/.dwz"
+ [ -n "${dwz_low_mem_die_limit}" ] \
+ && dwz_opts="${dwz_opts} -l ${dwz_low_mem_die_limit}"
+ [ -n "${dwz_max_die_limit}" ] \
+ && dwz_opts="${dwz_opts} -L ${dwz_max_die_limit}"
+ ( cd "${RPM_BUILD_ROOT}/usr/lib/debug" && dwz $dwz_opts $dwz_files )
+ # Remove .dwz directory if empty
+ rmdir "${RPM_BUILD_ROOT}/usr/lib/debug/.dwz" 2>/dev/null
+ if [ -f "${RPM_BUILD_ROOT}/usr/lib/debug/.dwz/${dwz_multifile_name}" ]; then
+ id="`readelf -Wn "${RPM_BUILD_ROOT}/usr/lib/debug/.dwz/${dwz_multifile_name}" \
+ 2>/dev/null | sed -n 's/^ Build ID: \([0-9a-f]\+\)/\1/p'`"
+ [ -n "$id" ] \
+ && make_id_link "$id" "/usr/lib/debug/.dwz/${dwz_multifile_name}" .debug
+ fi
+
+ # dwz invalidates .gnu_debuglink CRC32 in the main files.
+ cat "$ELFBINSFILE" |
+ (cd "$RPM_BUILD_ROOT"; \
+ xargs -d '\n' ${lib_rpm_dir}/sepdebugcrcfix usr/lib/debug)
+ fi
+fi
+
# For each symlink whose target has a .debug file,
# make a .debug symlink to that file.
find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*" -type l -print |
diff --git a/scripts/find-lang.sh b/scripts/find-lang.sh
index 315d4915..c1177e34 100755
--- a/scripts/find-lang.sh
+++ b/scripts/find-lang.sh
@@ -11,6 +11,8 @@
#in tact and are included with any redistribution of this file or any
#work based on this file.
+# 2011-11-16 Per Øyvind Karlsen <peroyvind@mandriva.org>
+# * add support for HTML files (from Mandriva)
# 2004-06-20 Arkadiusz Miśkiewicz <arekm@pld-linux.org>
# * merge PLD changes, kde, all-name (mkochano,pascalek@PLD)
# 1999-10-19 Artur Frysiak <wiget@pld-linux.org>
@@ -31,8 +33,10 @@ PACKAGE_NAME.lang unless \$3 is given in which case output is written
to \$3.
Additional options:
--with-gnome find GNOME help files
+ --with-mate find MATE help files
--with-kde find KDE help files
--with-qt find Qt translation files
+ --with-html find HTML files
--with-man find localized man pages
--all-name match all package/domain names
--without-mo do not find locale files
@@ -55,9 +59,11 @@ fi
shift
GNOME=#
+MATE=#
KDE=#
QT=#
MAN=#
+HTML=#
MO=
MO_NAME=$NAME.lang
ALL_NAME=#
@@ -69,6 +75,10 @@ while test $# -gt 0 ; do
GNOME=
shift
;;
+ --with-mate )
+ MATE=
+ shift
+ ;;
--with-kde )
KDE=
shift
@@ -81,6 +91,10 @@ while test $# -gt 0 ; do
MAN=
shift
;;
+ --with-html )
+ HTML=
+ shift
+ ;;
--without-mo )
MO=#
shift
@@ -141,6 +155,34 @@ s:^[^%].*::
s:%lang(C) ::
/^$/d' >> $MO_NAME
+find $TOP_DIR -type d|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$MATE"'s:\(.*/mate/help/'"$NAME"'$\):%dir \1:
+'"$NO_ALL_NAME$MATE"'s:\(.*/mate/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/.\+\)::
+'"$NO_ALL_NAME$MATE"'s:\(.*/mate/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) \1\2:
+'"$ALL_NAME$MATE"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+$\):%dir \1:
+'"$ALL_NAME$MATE"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\)::
+'"$ALL_NAME$GNOME"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2:
+s:%lang(.*) .*/mate/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*::
+s:^\([^%].*\)::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+
+find "$TOP_DIR" -type d|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$MATE"'s:\(.*/omf/'"$NAME"'$\):%dir \1:
+'"$ALL_NAME$MATE"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+$\):%dir \1:
+s:^\([^%].*\)::
+/^$/d' >> $MO_NAME
+
+find "$TOP_DIR" -type f|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$MATE"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\)\.omf\):%lang(\2) \1:
+'"$ALL_NAME$MATE"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
+s:^[^%].*::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+
KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null`
if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then
find "$TOP_DIR$KDE3_HTML" -type d|sed '
@@ -167,6 +209,16 @@ s:%lang(C) ::
/^$/d' >> $MO_NAME
fi
+find "$TOP_DIR" -type d|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\)::
+'"$NO_ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3:
+'"$ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
+'"$ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
+s:^\([^%].*\)::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$QT"'s:\(.*/'"$NAME"'_\([a-zA-Z]\{2\}\([_@].*\)\?\)\.qm$\):%lang(\2) \1:
@@ -186,7 +238,7 @@ s:^\([^%].*\)::
s:%lang(C) ::
/^$/d' >> $MO_NAME
-find "$TOP_DIR" -type f -o -type l|sed '
+find "$TOP_DIR" -type f -o -type l|sed -r 's/\.(bz2|gz|xz|lzma|Z)$//g' | sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*:
s:^\([^%].*\)::
diff --git a/scripts/find-php-provides b/scripts/find-php-provides
deleted file mode 100644
index 02e0c42e..00000000
--- a/scripts/find-php-provides
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-cd `rpm --eval %{_builddir}`
-
-filelist=`sed "s/['\"]/\\\&/g"`
-if [ -f __rpm_noautoprovfiles ] ; then
- for i in `cat __rpm_noautoprovfiles`; do
- filelist=`echo $filelist | sed "s![[:space:]]*$i[[:space:]]*!!g"`
- done
-fi
-
-
-echo $filelist|/usr/lib/rpm/find-provides
-provides_php=`echo $filelist | xargs /usr/lib/rpm/php.prov`
-if [ -f __rpm_noautoprov ] ; then
- for i in `cat __rpm_noautoprov`; do
- provides_php=`echo $provides_php | sed "s!\<$i[[:space:]]*!!g"`
- done
-fi
-
-echo "$provides_php"
diff --git a/scripts/find-php-requires b/scripts/find-php-requires
deleted file mode 100644
index 9d081510..00000000
--- a/scripts/find-php-requires
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-cd `rpm --eval %{_builddir}`
-
-filelist=`sed "s/['\"]/\\\&/g"`
-if [ -f __rpm_noautoreqfiles ] ; then
- for i in `cat __rpm_noautoreqfiles`; do
- filelist=`echo $filelist | sed "s![[:space:]]*$i[[:space:]]*!!g"`
- done
-fi
-
-requires="`echo $filelist | /usr/lib/rpm/find-requires`"
-requires_php="`echo $filelist | xargs /usr/lib/rpm/php.req`"
-
-if [ -f __rpm_noautoreq ] ; then
- for i in `cat __rpm_noautoreq`; do
- requires_php=`echo $requires_php | sed "s!\<$i[[:space:]]*!!g"`
- done
-fi
-
-requires_php_t="$requires_php"
-if [ -f __rpm_noautoreqdep ] ; then
- for i in `cat __rpm_noautoreqdep`; do
- requires_php_t=`echo $requires_php_t | sed "s!\<$i[[:space:]]*!!g"`
- done
-fi
-
-requires_mod="`LC_ALL=C rpm -q --whatprovides --qf "%{NAME}\n" $requires_php_t 2>/dev/null`"
-echo "$requires
-$requires_php
-$requires_mod"| grep -v "no package provides" | sort -u
diff --git a/scripts/find-provides b/scripts/find-provides
index c5cf93b3..817f5ee0 100755
--- a/scripts/find-provides
+++ b/scripts/find-provides
@@ -1,3 +1,3 @@
#!/bin/sh
-/usr/lib/rpm/rpmdeps --provides
+/usr/lib/rpm/rpmdeps --define="_use_internal_dependency_generator 1" --provides
diff --git a/scripts/find-requires b/scripts/find-requires
index 9d192dd9..fa5bc88e 100755
--- a/scripts/find-requires
+++ b/scripts/find-requires
@@ -1,3 +1,3 @@
#!/bin/sh
-/usr/lib/rpm/rpmdeps --requires
+/usr/lib/rpm/rpmdeps --define="_use_internal_dependency_generator 1" --requires
diff --git a/scripts/gendiff b/scripts/gendiff
index d9b0c214..a8cd1209 100644
--- a/scripts/gendiff
+++ b/scripts/gendiff
@@ -14,11 +14,8 @@ find $1 \( -name "*$2" -o -name ".*$2" \) -print | sort |
while read f; do
U="${GENDIFF_DIFF_ARGS}"
[ "`basename $f`" = "ChangeLog$2" ] && U="${GENDIFF_DIFF_CHANGELOG_ARGS}"
- diffcmd="${DIFF} ${U} /dev/null ${f%$2}"
-# ${DIFF} ${U} $f `echo $f | sed s/$2\$//`
- if [ -r "$f" ]; then
- diffcmd="${DIFF} ${U} ${f} ${f%$2}"
- fi
- echo "${diffcmd}"
- ${diffcmd}
+ F=/dev/null
+ [ -r "${f}" ] && F="${f}"
+ echo "${DIFF} ${U} ${F} ${f%$2}"
+ ${DIFF} ${U} "${F}" "${f%$2}"
done
diff --git a/scripts/osgideps.pl b/scripts/osgideps.pl
deleted file mode 100644
index ab92b656..00000000
--- a/scripts/osgideps.pl
+++ /dev/null
@@ -1,388 +0,0 @@
-#!/usr/bin/perl
-#
-# osgideps.pl -- Analyze dependencies of OSGi bundles.
-#
-# Kyu Lee (initial idea)
-# Alphonse Van Assche <alcapcom@fedoraproject.org> (current maintainer)
-#
-# $Id: osgideps.pl,v 1.0 2009/06/08 12:12:12 mej Exp $
-
-use Getopt::Long;
-use File::Temp qw/ tempdir /;
-use threads;
-use Thread::Queue;
-
-$MANIFEST_NAME = "META-INF/MANIFEST.MF";
-
-# parse options
-my ( $show_provides, $show_requires, $show_system_bundles, $debug );
-my $result = GetOptions(
- "provides" => \$show_provides,
- "requires" => \$show_requires,
- "system" => \$show_system_bundles,
- "debug" => \$debug
-);
-exit(1) if ( not $result );
-
-# run selected function
-@allfiles = <STDIN>;
-if ($show_provides) {
- getProvides(@allfiles);
-}
-if ($show_requires) {
- getRequires(@allfiles);
-}
-if ($show_system_bundles) {
- getSystemBundles(@allfiles);
-}
-exit(0);
-
-# this function print provides of OSGi aware files
-sub getProvides {
-
- my $queue = Thread::Queue->new;
- foreach $file (@_) {
- $queue->enqueue($file);
- }
-
- my @workers;
- push @workers, threads->create('getProvidesWorker');
- push @workers, threads->create('getProvidesWorker');
- push @workers, threads->create('getProvidesWorker');
- push @workers, threads->create('getProvidesWorker');
-
- map { $_->join } @workers;
-
- sub getProvidesWorker {
- while ( my $file = $queue->dequeue_nb ) {
- chomp($file);
- # we don't follow symlinks for provides
- next if ( -f $file && -r _ && -l _ );
- $file =~ s/[^[:print:]]//g;
- if ( $file =~ m/$MANIFEST_NAME$/ || $file =~ m/\.jar$/ ) {
- if ( $file =~ m/\.jar$/ ) {
- if ( `zipinfo -1 $file 2> /dev/null | grep -e \^$MANIFEST_NAME` eq "$MANIFEST_NAME\n" ) {
- # extract MANIFEST.MF file from jar to temporary directory
- $tmpdir = tempdir( CLEANUP => 1 );
- `unzip -d $tmpdir -qqo $file $MANIFEST_NAME`;
- open( MANIFEST, "$tmpdir/$MANIFEST_NAME" );
- }
- } else {
- open( MANIFEST, "$file" );
- }
- my $bundleName = "";
- my $version = "";
- # parse Bundle-SymbolicName, Bundle-Version and Export-Package attributes
- while (<MANIFEST>) {
- # get rid of non-print chars (some manifest files contain weird chars)
- s/[^[:print]]//g;
- if ( m/(^(Bundle-SymbolicName): )(.*)$/ ) {
- $bundleName = "$3" . "\n";
- while (<MANIFEST>) {
- if ( m/^[[:upper:]][[:alpha:]]+-[[:upper:]][[:alpha:]]+: .*/ ) {
- $len = length $_;
- seek MANIFEST, $len * -1, 1;
- last;
- }
- $bundleName .= "$_";
- }
- $bundleName =~ s/\s+//g;
- $bundleName =~ s/;.*//g;
- }
- if ( m/(^Bundle-Version: )(.*)/ ) {
- $version = $2;
- }
- if ( m/(^(Export-Package): )(.*)$/ ) {
- my $bunlist = "$3" . "\n";
- while (<MANIFEST>) {
- if ( m/^[[:upper:]][[:alpha:]]+-[[:upper:]][[:alpha:]]+: .*/ ) {
- $len = length $_;
- seek MANIFEST, $len * -1, 1;
- last;
- }
- $bunlist .= "$_";
- }
- push @bundlelist, parsePkgString($bunlist, $file);
- }
- }
-
- # skip this jar if no bundle name exists
- if ( !$bundleName eq "" ) {
- if ( !$version eq "" ) {
- $version = parseVersion($version);
- push @bundlelist, { FILE => "$file", NAME => "$bundleName", VERSION => "$version" };
- } else {
- push @bundlelist, { FILE => "$file", NAME => "$bundleName", VERSION => "" };
- }
- }
- `rm -rf $tmpdir`;
- }
- }
- if ( !$debug ) { @bundlelist = prepareOSGiBundlesList(@bundlelist); }
- $list = "";
- for $bundle (@bundlelist) {
- if ( !$debug ) {
- $list .= "osgi(" . $bundle->{NAME} . ")" . $bundle->{VERSION} . "\n";
- } else {
- $list .= $bundle->{FILE} . " osgi(" . $bundle->{NAME} . ")" . $bundle->{VERSION} . "\n";
- }
- }
- print $list;
- }
-}
-
-# this function print requires of OSGi aware files
-sub getRequires {
-
- my $queue = Thread::Queue->new;
- foreach $file (@_) {
- $queue->enqueue($file);
- }
-
- my @workers;
- push @workers, threads->create('getRequiresWorker');
- push @workers, threads->create('getRequiresWorker');
- push @workers, threads->create('getRequiresWorker');
- push @workers, threads->create('getRequiresWorker');
-
- map { $_->join } @workers;
-
- sub getRequiresWorker {
- while ( my $file = $queue->dequeue_nb ) {
- next if ( -f $file && -r _ );
- $file =~ s/[^[:print:]]//g;
- if ( $file =~ m/$MANIFEST_NAME$/ || $file =~ m/\.jar$/ ) {
- # we explicitly requires symlinked jars
- # _that_reside_outside_the_package_
- if (-l $file) {
- $exist = 0;
- $lnksrc = `readlink -qen $file`;
- foreach $exfile ( @allfiles ) {
- $exfile =~ s/[^[:print:]]//g;
- if ( $lnksrc =~ m/$exfile$/ ) {
- $exist = 1;
- last;
- }
- }
- print "$lnksrc\n" if (!$exist);
- next;
- }
-
- if ( $file =~ m/\.jar$/ ) {
- if ( `zipinfo -1 $file 2> /dev/null | grep -e \^$MANIFEST_NAME` eq "$MANIFEST_NAME\n" ) {
- # extract MANIFEST.MF file from jar to temporary directory
- $tmpdir = tempdir( CLEANUP => 1 );
- `unzip -d $tmpdir -qqo $file $MANIFEST_NAME`;
- open( MANIFEST, "$tmpdir/$MANIFEST_NAME" );
- }
- } else {
- open( MANIFEST, "$file" );
- }
- while (<MANIFEST>) {
- if ( m/(^(Require-Bundle|Import-Package): )(.*)$/ ) {
- my $bunlist = "$3" . "\n";
- while (<MANIFEST>) {
- if (m/^[[:upper:]][[:alpha:]]+-[[:upper:]][[:alpha:]]+: .*/ ) {
- $len = length $_;
- seek MANIFEST, $len * -1, 1;
- last;
- }
- $bunlist .= "$_";
- }
- push @bundlelist, parsePkgString($bunlist, $file);
- }
- # we also explicitly require symlinked jars define by
- # Bundle-ClassPath attribut
- if ( m/(^(Bundle-ClassPath): )(.*)$/ ) {
- $bunclp = "$3" . "\n";
- while (<MANIFEST>) {
- if ( m/^[[:upper:]][[:alpha:]]+-[[:upper:]][[:alpha:]]+: .*/ ) {
- $len = length $_;
- seek MANIFEST, $len * -1, 1;
- last;
- }
- $bunclp .= "$_";
- }
- $bunclp =~ s/\ //g;
- $bunclp =~ s/\n//g;
- $bunclp =~ s/[^[:print:]]//g;
- $dir = `dirname $file`;
- $dir =~ s/\n//g;
- @jars = split /,/, $bunclp;
- for $jarfile (@jars) {
- $jarfile = "$dir\/\.\.\/$jarfile";
- $jarfile = readlink $jarfile;
- if ( !$jarfile eq "" ) {
- print "$jarfile" . "\n";
- }
- }
- }
- }
- `rm -rf $tmpdir`;
- }
- }
- if ( !$debug ) { @bundlelist = prepareOSGiBundlesList(@bundlelist); }
- $list = "";
- for $bundle (@bundlelist) {
- # replace '=' by '>=' because qualifiers are set on provides
- # but not on requires.
- $bundle->{VERSION} =~ s/\ =/\ >=/g;
- if ( !$debug ) {
- $list .= "osgi(" . $bundle->{NAME} . ")" . $bundle->{VERSION} . "\n";
- } else {
- $list .= $bundle->{FILE} . " osgi(" . $bundle->{NAME} . ")" . $bundle->{VERSION} . "\n";
- }
- }
- print $list;
- }
-}
-
-# this function print system bundles of OSGi profile files.
-sub getSystemBundles {
- foreach $file (@_) {
- if ( ! -f $file || ! -r _ ) {
- print "'$file' file not found or cannot be read!";
- next;
- } else {
- open( PROFILE, "$file" );
- while (<PROFILE>) {
- if ( $file =~ m/\.profile$/ ) {
- if (m/(^(org\.osgi\.framework\.system\.packages)[=|\ ]+)(.*)$/) {
- $syspkgs = "$3" . "\n";
- while (<PROFILE>) {
- if (m/^[a-z]/) {
- $len = length $_;
- seek MANIFEST, $len * -1, 1;
- last;
- }
- $syspkgs .= "$_";
- }
- $syspkgs =~ s/\s+//g;
- $syspkgs =~ s/\\//g;
- @bundles = split /,/, $syspkgs;
- foreach $bundle (@bundles) {
- print "osgi(" . $bundle . ")\n";
- }
- }
- }
- }
- }
- }
-}
-
-sub parsePkgString {
- my $bunstr = $_[0];
- my $file = $_[1];
- my @return;
- $bunstr =~ s/ //g;
- $bunstr =~ s/\n//g;
- $bunstr =~ s/[^[:print:]]//g;
- $bunstr =~ s/("[[:alnum:]|\-|\_|\.|\(|\)|\[|\]]+)(,)([[:alnum:]|\-|\_|\.|\(|\)|\[|\]]+")/$1 $3/g;
- # remove uses bundle from Export-Package attribute
- $bunstr =~ s/uses:="[[:alnum:]|\-|\_|\.|\(|\)|\[|\]|,]+"//g;
- # remove optional dependencies
- $bunstr =~ s/,.*;resolution:=optional//g;
- # remove x-friends
- $bunstr =~ s/;x-friends:="[[:alnum:]|\-|\_|\.|\(|\)|\[|\]|,]+"//g;
- # remove signatures
- $bunstr =~ s/Name:.*SHA1-Digest:.*//g;
- @reqcomp = split /,/, $bunstr;
- foreach $reqelement (@reqcomp) {
- @reqelementfrmnt = split /;/, $reqelement;
- $name = "";
- $version = "";
- $name = $reqelementfrmnt[0];
- $name =~ s/\"//g;
- # ignoring OSGi 'system.bundle'
- next if ( $name =~ m/^system\.bundle$/ );
- for $i ( 1 .. $#reqelementfrmnt ) {
- if ( $reqelementfrmnt[$i] =~ m/(^(bundle-|)version=")(.*)(")/ ) {
- $version = $3;
- last;
- }
- }
- $version = parseVersion($version);
- push @return, { FILE => "$file", NAME => "$name", VERSION => "$version" };
- }
- return @return;
-}
-
-sub parseVersion {
- my $ver = $_[0];
- if ( $ver eq "" ) { return ""; }
- if ( $ver =~ m/(^[\[|\(])(.+)\ (.+)([\]|\)]$)/ ) {
- if ( $1 eq "\[" ) {
- $ver = " >= $2";
- } else {
- $ver = " > $2";
- }
- } else {
- $ver = " = $ver";
- }
- # we always return a full OSGi version to be able to match 1.0
- # and 1.0.0 as equal in RPM.
- ( $major, $minor, $micro, $qualifier ) = split( '\.', $ver );
- if ( !defined($minor) || !$minor ) {
- $minor = 0;
- }
- if ( !defined($micro) || !$micro ) {
- $micro = 0;
- }
- if ( !defined($qualifier) || !$qualifier ) {
- $qualifier = "";
- } else {
- $qualifier = "." . $qualifier;
- }
- $ver = $major . "." . $minor . "." . $micro . $qualifier;
- return $ver;
-}
-
-# this function put the max version on each bundles to be able to remove
-# duplicate deps with 'sort -u' command.
-sub prepareOSGiBundlesList {
- foreach $bundle (@_) {
- foreach $cmp (@_) {
- if ( $bundle->{NAME} eq $cmp->{NAME} ) {
- $result = compareVersion( $bundle->{VERSION}, $cmp->{VERSION} );
- if ( $result < 0 ) {
- $bundle->{VERSION} = $cmp->{VERSION};
- }
- }
- }
- }
- return @_;
-}
-
-# this function returns a negative integer, zero, or a positive integer if
-# $ver1 is less than, equal to, or greater than $ver2.
-#
-# REMEMBER: we mimic org.osgi.framework.Version#compareTo method but
-# *at this time* we don't take care of the qualifier part of the version.
-sub compareVersion {
- my $ver1 = $_[0];
- my $ver2 = $_[1];
-
- $ver1 = "0.0.0" if ( $ver1 eq "" );
- $ver2 = "0.0.0" if ( $ver2 eq "" );
-
- $ver1 =~ m/([0-9]+)(\.)([0-9]+)(\.)([0-9]+)/;
- $major1 = $1;
- $minor1 = $3;
- $micro1 = $5;
-
- $ver2 =~ m/([0-9]+)(\.)([0-9]+)(\.)([0-9]+)/;
- $major2 = $1;
- $minor2 = $3;
- $micro2 = $5;
-
- $result = $major1 - $major2;
- return $result if ( $result != 0 );
-
- $result = $minor1 - $minor2;
- return $result if ( $result != 0 );
-
- $result = $micro1 - $micro2;
- return $result if ( $result != 0 );
-
- return $result;
-}
diff --git a/scripts/perl.prov b/scripts/perl.prov
index af373289..a476a51c 100755
--- a/scripts/perl.prov
+++ b/scripts/perl.prov
@@ -47,6 +47,7 @@
if ("@ARGV") {
foreach (@ARGV) {
+ next if !/\.pm$/;
process_file($_);
}
} else {
@@ -55,6 +56,7 @@ if ("@ARGV") {
# contents of the file.
foreach (<>) {
+ next if !/\.pm$/;
process_file($_);
}
}
@@ -114,7 +116,7 @@ sub process_file {
$inover = 0;
}
- if ($incomment || $inover) {
+ if ($incomment || $inover || m/^\s*#/) {
next;
}
@@ -164,7 +166,7 @@ sub process_file {
if (m/\$Revision: (\d+[.0-9]+)/) {
$version = $1;
- } elsif (m/['"]?(\d+[.0-9]+)['"]?/) {
+ } elsif (m/=\s*['"]?(\d+[._0-9]+)['"]?/) {
# look for a static number hard coded in the script
diff --git a/scripts/perl.req b/scripts/perl.req
index 04f822ca..6e53c917 100755
--- a/scripts/perl.req
+++ b/scripts/perl.req
@@ -165,8 +165,8 @@ sub process_file {
#
if ( m/print(\s+|\s+\S+\s+)\<\<(.*)/g ) {
my $tag = $2;
- $tag =~ s/^\s*['"]//; # strip off leading space and quote
- $tag =~ s/["']\s*;\s*$//; # strip off trailing quote and space and semicolon
+ $tag =~ s/^\s*['"]?//; # strip off leading space and quote
+ $tag =~ s/["']?\s*;\s*$//; # strip off trailing quote and space and semicolon
while (<FILE>) {
chomp;
( $_ eq $tag ) && last;
@@ -174,6 +174,19 @@ sub process_file {
$_ = <FILE>;
}
+ # Skip multiline print and assign statements
+ if ( m/\$\S+\s*=\s*(")([^"\\]|(\\.))*$/ ||
+ m/\$\S+\s*=\s*(')([^'\\]|(\\.))*$/ ||
+ m/print\s+(")([^"\\]|(\\.))*$/ ||
+ m/print\s+(')([^'\\]|(\\.))*$/ ) {
+
+ my $quote = $1;
+ while (<FILE>) {
+ m/^([^\\$quote]|(\\.))*$quote/ && last;
+ }
+ $_ = <FILE>;
+ }
+
if (
# ouch could be in a eval, perhaps we do not want these since we catch
diff --git a/scripts/perldeps.pl b/scripts/perldeps.pl
deleted file mode 100755
index bffad674..00000000
--- a/scripts/perldeps.pl
+++ /dev/null
@@ -1,1116 +0,0 @@
-#!/usr/bin/perl -Tw
-#
-# perldeps.pl -- Analyze dependencies of Perl packages
-#
-# Michael Jennings
-# 7 November 2005
-#
-# $Id: perldeps.pl,v 1.6 2006/04/04 20:12:03 mej Exp $
-#
-
-use strict;
-use Config;
-use File::Basename;
-use File::Find;
-use Getopt::Long;
-use POSIX;
-
-############### Debugging stolen from Mezzanine::Util ###############
-my $DEBUG = 0;
-
-# Debugging output
-sub
-dprintf(@)
-{
- my ($f, $l, $s, $format);
- my @params = @_;
-
- return if (! $DEBUG);
- $format = shift @params;
- if (!scalar(@params)) {
- return dprint($format);
- }
- (undef, undef, undef, $s) = caller(1);
- if (!defined($s)) {
- $s = "MAIN";
- }
- (undef, $f, $l) = caller(0);
- $f =~ s/^.*\/([^\/]+)$/$1/;
- $s =~ s/^\w+:://g;
- $s .= "()" if ($s =~ /^\w+$/);
- $f = "" if (!defined($f));
- $l = "" if (!defined($l));
- $format = "" if (!defined($format));
- for (my $i = 0; $i < scalar(@params); $i++) {
- if (!defined($params[$i])) {
- $params[$i] = "<undef>";
- }
- }
- printf("[$f/$l/$s] $format", @params);
-}
-
-sub
-dprint(@)
-{
- my ($f, $l, $s);
- my @params = @_;
-
- return if (! $DEBUG);
- (undef, undef, undef, $s) = caller(1);
- if (!defined($s)) {
- $s = "MAIN";
- }
- (undef, $f, $l) = caller(0);
- $f =~ s/^.*\/([^\/]+)$/$1/;
- $s =~ s/\w+:://g;
- $s .= "()" if ($s =~ /^\w+$/);
- $f = "" if (!defined($f));
- $l = "" if (!defined($l));
- $s = "" if (!defined($s));
- for (my $i = 0; $i < scalar(@params); $i++) {
- if (!defined($params[$i])) {
- $params[$i] = "<undef>";
- }
- }
- print "[$f/$l/$s] ", @params;
-}
-
-############### Module::ScanDeps Code ###############
-use constant dl_ext => ".$Config{dlext}";
-use constant lib_ext => $Config{lib_ext};
-use constant is_insensitive_fs => (
- -s $0
- and (-s lc($0) || -1) == (-s uc($0) || -1)
- and (-s lc($0) || -1) == -s $0
-);
-
-my $CurrentPackage = '';
-my $SeenTk;
-
-# Pre-loaded module dependencies
-my %Preload = (
- 'AnyDBM_File.pm' => [qw( SDBM_File.pm )],
- 'Authen/SASL.pm' => 'sub',
- 'Bio/AlignIO.pm' => 'sub',
- 'Bio/Assembly/IO.pm' => 'sub',
- 'Bio/Biblio/IO.pm' => 'sub',
- 'Bio/ClusterIO.pm' => 'sub',
- 'Bio/CodonUsage/IO.pm' => 'sub',
- 'Bio/DB/Biblio.pm' => 'sub',
- 'Bio/DB/Flat.pm' => 'sub',
- 'Bio/DB/GFF.pm' => 'sub',
- 'Bio/DB/Taxonomy.pm' => 'sub',
- 'Bio/Graphics/Glyph.pm' => 'sub',
- 'Bio/MapIO.pm' => 'sub',
- 'Bio/Matrix/IO.pm' => 'sub',
- 'Bio/Matrix/PSM/IO.pm' => 'sub',
- 'Bio/OntologyIO.pm' => 'sub',
- 'Bio/PopGen/IO.pm' => 'sub',
- 'Bio/Restriction/IO.pm' => 'sub',
- 'Bio/Root/IO.pm' => 'sub',
- 'Bio/SearchIO.pm' => 'sub',
- 'Bio/SeqIO.pm' => 'sub',
- 'Bio/Structure/IO.pm' => 'sub',
- 'Bio/TreeIO.pm' => 'sub',
- 'Bio/LiveSeq/IO.pm' => 'sub',
- 'Bio/Variation/IO.pm' => 'sub',
- 'Crypt/Random.pm' => sub {
- _glob_in_inc('Crypt/Random/Provider', 1);
- },
- 'Crypt/Random/Generator.pm' => sub {
- _glob_in_inc('Crypt/Random/Provider', 1);
- },
- 'DBI.pm' => sub {
- grep !/\bProxy\b/, _glob_in_inc('DBD', 1);
- },
- 'DBIx/SearchBuilder.pm' => 'sub',
- 'DBIx/ReportBuilder.pm' => 'sub',
- 'Device/ParallelPort.pm' => 'sub',
- 'Device/SerialPort.pm' => [ qw(
- termios.ph asm/termios.ph sys/termiox.ph sys/termios.ph sys/ttycom.ph
- ) ],
- 'ExtUtils/MakeMaker.pm' => sub {
- grep /\bMM_/, _glob_in_inc('ExtUtils', 1);
- },
- 'File/Basename.pm' => [qw( re.pm )],
- 'File/Spec.pm' => sub {
- require File::Spec;
- map { my $name = $_; $name =~ s!::!/!g; "$name.pm" } @File::Spec::ISA;
- },
- 'HTTP/Message.pm' => [ qw(
- URI/URL.pm URI.pm
- ) ],
- 'IO.pm' => [ qw(
- IO/Handle.pm IO/Seekable.pm IO/File.pm
- IO/Pipe.pm IO/Socket.pm IO/Dir.pm
- ) ],
- 'IO/Socket.pm' => [qw( IO/Socket/UNIX.pm )],
- 'LWP/UserAgent.pm' => [ qw(
- URI/URL.pm URI/http.pm LWP/Protocol/http.pm
- LWP/Protocol/https.pm
- ), _glob_in_inc("LWP/Authen", 1) ],
- 'Locale/Maketext/Lexicon.pm' => 'sub',
- 'Locale/Maketext/GutsLoader.pm' => [qw( Locale/Maketext/Guts.pm )],
- 'Mail/Audit.pm' => 'sub',
- 'Math/BigInt.pm' => 'sub',
- 'Math/BigFloat.pm' => 'sub',
- 'Module/Build.pm' => 'sub',
- 'Module/Pluggable.pm' => sub {
- _glob_in_inc("$CurrentPackage/Plugin", 1);
- },
- 'MIME/Decoder.pm' => 'sub',
- 'Net/DNS/RR.pm' => 'sub',
- 'Net/FTP.pm' => 'sub',
- 'Net/SSH/Perl.pm' => 'sub',
- 'PDF/API2/Resource/Font.pm' => 'sub',
- 'PDF/API2/Basic/TTF/Font.pm' => sub {
- _glob_in_inc('PDF/API2/Basic/TTF', 1);
- },
- 'PDF/Writer.pm' => 'sub',
- 'POE' => [ qw(
- POE/Kernel.pm POE/Session.pm
- ) ],
- 'POE/Kernel.pm' => [
- map "POE/Resource/$_.pm", qw(
- Aliases Events Extrefs FileHandles
- SIDs Sessions Signals Statistics
- )
- ],
- 'Parse/AFP.pm' => 'sub',
- 'Parse/Binary.pm' => 'sub',
- 'Regexp/Common.pm' => 'sub',
- 'SOAP/Lite.pm' => sub {
- (($] >= 5.008 ? ('utf8.pm') : ()), _glob_in_inc('SOAP/Transport', 1));
- },
- 'SQL/Parser.pm' => sub {
- _glob_in_inc('SQL/Dialects', 1);
- },
- 'SVN/Core.pm' => sub {
- _glob_in_inc('SVN', 1),
- map "auto/SVN/$_->{name}", _glob_in_inc('auto/SVN'),
- },
- 'SVK/Command.pm' => sub {
- _glob_in_inc('SVK', 1);
- },
- 'SerialJunk.pm' => [ qw(
- termios.ph asm/termios.ph sys/termiox.ph sys/termios.ph sys/ttycom.ph
- ) ],
- 'Template.pm' => 'sub',
- 'Term/ReadLine.pm' => 'sub',
- 'Tk.pm' => sub {
- $SeenTk = 1;
- qw( Tk/FileSelect.pm Encode/Unicode.pm );
- },
- 'Tk/Balloon.pm' => [qw( Tk/balArrow.xbm )],
- 'Tk/BrowseEntry.pm' => [qw( Tk/cbxarrow.xbm Tk/arrowdownwin.xbm )],
- 'Tk/ColorEditor.pm' => [qw( Tk/ColorEdit.xpm )],
- 'Tk/FBox.pm' => [qw( Tk/folder.xpm Tk/file.xpm )],
- 'Tk/Toplevel.pm' => [qw( Tk/Wm.pm )],
- 'URI.pm' => sub {
- grep !/.\b[_A-Z]/, _glob_in_inc('URI', 1);
- },
- 'Win32/EventLog.pm' => [qw( Win32/IPC.pm )],
- 'Win32/Exe.pm' => 'sub',
- 'Win32/TieRegistry.pm' => [qw( Win32API/Registry.pm )],
- 'Win32/SystemInfo.pm' => [qw( Win32/cpuspd.dll )],
- 'XML/Parser.pm' => sub {
- _glob_in_inc('XML/Parser/Style', 1),
- _glob_in_inc('XML/Parser/Encodings', 1),
- },
- 'XML/Parser/Expat.pm' => sub {
- ($] >= 5.008) ? ('utf8.pm') : ();
- },
- 'XML/SAX.pm' => [qw( XML/SAX/ParserDetails.ini ) ],
- 'XMLRPC/Lite.pm' => sub {
- _glob_in_inc('XMLRPC/Transport', 1),;
- },
- 'diagnostics.pm' => sub {
- _find_in_inc('Pod/perldiag.pod')
- ? 'Pod/perldiag.pl'
- : 'pod/perldiag.pod';
- },
- 'utf8.pm' => [
- 'utf8_heavy.pl', do {
- my $dir = 'unicore';
- my @subdirs = qw( To );
- my @files = map "$dir/lib/$_->{name}", _glob_in_inc("$dir/lib");
-
- if (@files) {
- # 5.8.x
- push @files, (map "$dir/$_.pl", qw( Exact Canonical ));
- }
- else {
- # 5.6.x
- $dir = 'unicode';
- @files = map "$dir/Is/$_->{name}", _glob_in_inc("$dir/Is")
- or return;
- push @subdirs, 'In';
- }
-
- foreach my $subdir (@subdirs) {
- foreach (_glob_in_inc("$dir/$subdir")) {
- push @files, "$dir/$subdir/$_->{name}";
- }
- }
- @files;
- }
- ],
- 'charnames.pm' => [
- _find_in_inc('unicore/Name.pl') ? 'unicore/Name.pl' : 'unicode/Name.pl'
- ],
-);
-
-my $Keys = 'files|keys|recurse|rv|skip|first|execute|compile';
-sub scan_deps {
- my %args = (
- rv => {},
- (@_ and $_[0] =~ /^(?:$Keys)$/o) ? @_ : (files => [@_], recurse => 1)
- );
-
- scan_deps_static(\%args);
-
- if ($args{execute} or $args{compile}) {
- scan_deps_runtime(
- rv => $args{rv},
- files => $args{files},
- execute => $args{execute},
- compile => $args{compile},
- skip => $args{skip}
- );
- }
-
- return ($args{rv});
-}
-
-sub scan_deps_static {
- my ($args) = @_;
- my ($files, $keys, $recurse, $rv, $skip, $first, $execute, $compile) =
- @$args{qw( files keys recurse rv skip first execute compile )};
-
- $rv ||= {};
- $skip ||= {};
-
- foreach my $file (@{$files}) {
- my $key = shift @{$keys};
- next if $skip->{$file}++;
- next if is_insensitive_fs()
- and $file ne lc($file) and $skip->{lc($file)}++;
-
- local *FH;
- open FH, $file or die "Cannot open $file: $!";
-
- $SeenTk = 0;
-
- # Line-by-line scanning
- LINE:
- while (<FH>) {
- chomp(my $line = $_);
- foreach my $pm (scan_line($line)) {
- last LINE if $pm eq '__END__';
-
- if ($pm eq '__POD__') {
- while (<FH>) { last if (/^=cut/) }
- next LINE;
- }
-
- $pm = 'CGI/Apache.pm' if /^Apache(?:\.pm)$/;
-
- add_deps(
- used_by => $key,
- rv => $rv,
- modules => [$pm],
- skip => $skip
- );
-
- my $preload = $Preload{$pm} or next;
- if ($preload eq 'sub') {
- $pm =~ s/\.p[mh]$//i;
- $preload = [ _glob_in_inc($pm, 1) ];
- }
- elsif (UNIVERSAL::isa($preload, 'CODE')) {
- $preload = [ $preload->($pm) ];
- }
-
- add_deps(
- used_by => $key,
- rv => $rv,
- modules => $preload,
- skip => $skip
- );
- }
- }
- close FH;
-
- # }}}
- }
-
- # Top-level recursion handling {{{
- while ($recurse) {
- my $count = keys %$rv;
- my @files = sort grep -T $_->{file}, values %$rv;
- scan_deps_static({
- files => [ map $_->{file}, @files ],
- keys => [ map $_->{key}, @files ],
- rv => $rv,
- skip => $skip,
- recurse => 0,
- }) or ($args->{_deep} and return);
- last if $count == keys %$rv;
- }
-
- # }}}
-
- return $rv;
-}
-
-sub scan_deps_runtime {
- my %args = (
- perl => $^X,
- rv => {},
- (@_ and $_[0] =~ /^(?:$Keys)$/o) ? @_ : (files => [@_], recurse => 1)
- );
- my ($files, $rv, $execute, $compile, $skip, $perl) =
- @args{qw( files rv execute compile skip perl )};
-
- $files = (ref($files)) ? $files : [$files];
-
- my ($inchash, $incarray, $dl_shared_objects) = ({}, [], []);
- if ($compile) {
- my $file;
-
- foreach $file (@$files) {
- ($inchash, $dl_shared_objects, $incarray) = ({}, [], []);
- _compile($perl, $file, $inchash, $dl_shared_objects, $incarray);
-
- my $rv_sub = _make_rv($inchash, $dl_shared_objects, $incarray);
- _merge_rv($rv_sub, $rv);
- }
- }
- elsif ($execute) {
- my $excarray = (ref($execute)) ? $execute : [@$files];
- my $exc;
- my $first_flag = 1;
- foreach $exc (@$excarray) {
- ($inchash, $dl_shared_objects, $incarray) = ({}, [], []);
- _execute(
- $perl, $exc, $inchash, $dl_shared_objects, $incarray,
- $first_flag
- );
- $first_flag = 0;
- }
-
- my $rv_sub = _make_rv($inchash, $dl_shared_objects, $incarray);
- _merge_rv($rv_sub, $rv);
- }
-
- return ($rv);
-}
-
-sub scan_line {
- my $line = shift;
- my %found;
-
- return '__END__' if $line =~ /^__(?:END|DATA)__$/;
- return '__POD__' if $line =~ /^=\w/;
-
- $line =~ s/\s*#.*$//;
- $line =~ s/[\\\/]+/\//g;
-
- foreach (split(/;/, $line)) {
- if (/^\s*package\s+(\w+);/) {
- $CurrentPackage = $1;
- $CurrentPackage =~ s{::}{/}g;
- return;
- }
- return if /^\s*(use|require)\s+[\d\._]+/;
-
- if (my ($libs) = /\b(?:use\s+lib\s+|(?:unshift|push)\W+\@INC\W+)(.+)/)
- {
- my $archname =
- defined($Config{archname}) ? $Config{archname} : '';
- my $ver = defined($Config{version}) ? $Config{version} : '';
- foreach (grep(/\w/, split(/["';() ]/, $libs))) {
- unshift(@INC, "$_/$ver") if -d "$_/$ver";
- unshift(@INC, "$_/$archname") if -d "$_/$archname";
- unshift(@INC, "$_/$ver/$archname") if -d "$_/$ver/$archname";
- }
- next;
- }
-
- $found{$_}++ for scan_chunk($_);
- }
-
- return sort keys %found;
-}
-
-sub scan_chunk {
- my $chunk = shift;
-
- # Module name extraction heuristics {{{
- my $module = eval {
- $_ = $chunk;
-
- return [ 'base.pm',
- map { s{::}{/}g; "$_.pm" }
- grep { length and !/^q[qw]?$/ } split(/[^\w:]+/, $1) ]
- if /^\s* use \s+ base \s+ (.*)/sx;
-
- return [ 'Class/Autouse.pm',
- map { s{::}{/}g; "$_.pm" }
- grep { length and !/^:|^q[qw]?$/ } split(/[^\w:]+/, $1) ]
- if /^\s* use \s+ Class::Autouse \s+ (.*)/sx
- or /^\s* Class::Autouse \s* -> \s* autouse \s* (.*)/sx;
-
- return [ 'POE.pm',
- map { s{::}{/}g; "POE/$_.pm" }
- grep { length and !/^q[qw]?$/ } split(/[^\w:]+/, $1) ]
- if /^\s* use \s+ POE \s+ (.*)/sx;
-
- return [ 'encoding.pm',
- map { _find_encoding($_) }
- grep { length and !/^q[qw]?$/ } split(/[^\w:]+/, $1) ]
- if /^\s* use \s+ encoding \s+ (.*)/sx;
-
- return $1 if /(?:^|\s)(?:use|no|require)\s+([\w:\.\-\\\/\"\']+)/;
- return $1
- if /(?:^|\s)(?:use|no|require)\s+\(\s*([\w:\.\-\\\/\"\']+)\s*\)/;
-
- if ( s/(?:^|\s)eval\s+\"([^\"]+)\"/$1/
- or s/(?:^|\s)eval\s*\(\s*\"([^\"]+)\"\s*\)/$1/)
- {
- return $1 if /(?:^|\s)(?:use|no|require)\s+([\w:\.\-\\\/\"\']*)/;
- }
-
- return "File/Glob.pm" if /<[^>]*[^\$\w>][^>]*>/;
- return "DBD/$1.pm" if /\b[Dd][Bb][Ii]:(\w+):/;
- if (/(?:(:encoding)|\b(?:en|de)code)\(\s*['"]?([-\w]+)/) {
- my $mod = _find_encoding($2);
- return [ 'PerlIO.pm', $mod ] if $1 and $mod;
- return $mod if $mod;
- }
- return $1 if /(?:^|\s)(?:do|require)\s+[^"]*"(.*?)"/;
- return $1 if /(?:^|\s)(?:do|require)\s+[^']*'(.*?)'/;
- return $1 if /[^\$]\b([\w:]+)->\w/ and $1 ne 'Tk';
- return $1 if /\b(\w[\w:]*)::\w+\(/;
-
- if ($SeenTk) {
- my @modules;
- while (/->\s*([A-Z]\w+)/g) {
- push @modules, "Tk/$1.pm";
- }
- while (/->\s*Scrolled\W+([A-Z]\w+)/g) {
- push @modules, "Tk/$1.pm";
- push @modules, "Tk/Scrollbar.pm";
- }
- return \@modules;
- }
- return;
- };
-
- # }}}
-
- return unless defined($module);
- return wantarray ? @$module : $module->[0] if ref($module);
-
- $module =~ s/^['"]//;
- return unless $module =~ /^\w/;
-
- $module =~ s/\W+$//;
- $module =~ s/::/\//g;
- return if $module =~ /^(?:[\d\._]+|'.*[^']|".*[^"])$/;
-
- $module .= ".pm" unless $module =~ /\./;
- return $module;
-}
-
-sub _find_encoding {
- return unless $] >= 5.008 and eval { require Encode; %Encode::ExtModule };
-
- my $mod = $Encode::ExtModule{ Encode::find_encoding($_[0])->name }
- or return;
- $mod =~ s{::}{/}g;
- return "$mod.pm";
-}
-
-sub _add_info {
- my ($rv, $module, $file, $used_by, $type) = @_;
- return unless defined($module) and defined($file);
-
- $rv->{$module} ||= {
- file => $file,
- key => $module,
- type => $type,
- };
-
- push @{ $rv->{$module}{used_by} }, $used_by
- if defined($used_by)
- and $used_by ne $module
- and !grep { $_ eq $used_by } @{ $rv->{$module}{used_by} };
-}
-
-sub add_deps {
- my %args =
- ((@_ and $_[0] =~ /^(?:modules|rv|used_by)$/)
- ? @_
- : (rv => (ref($_[0]) ? shift(@_) : undef), modules => [@_]));
-
- my $rv = $args{rv} || {};
- my $skip = $args{skip} || {};
- my $used_by = $args{used_by};
-
- foreach my $module (@{ $args{modules} }) {
- next if exists $rv->{$module};
-
- my $file = _find_in_inc($module) or next;
- next if $skip->{$file};
- next if is_insensitive_fs() and $skip->{lc($file)};
-
- my $type = 'module';
- $type = 'data' unless $file =~ /\.p[mh]$/i;
- _add_info($rv, $module, $file, $used_by, $type);
-
- if ($module =~ /(.*?([^\/]*))\.p[mh]$/i) {
- my ($path, $basename) = ($1, $2);
-
- foreach (_glob_in_inc("auto/$path")) {
- next if $skip->{$_->{file}};
- next if is_insensitive_fs() and $skip->{lc($_->{file})};
- next if $_->{file} =~ m{\bauto/$path/.*/}; # weed out subdirs
- next if $_->{name} =~ m/(?:^|\/)\.(?:exists|packlist)$/;
- my $ext = lc($1) if $_->{name} =~ /(\.[^.]+)$/;
- next if $ext eq lc(lib_ext());
- my $type = 'shared' if $ext eq lc(dl_ext());
- $type = 'autoload' if $ext eq '.ix' or $ext eq '.al';
- $type ||= 'data';
-
- _add_info($rv, "auto/$path/$_->{name}", $_->{file}, $module,
- $type);
- }
- }
- }
-
- return $rv;
-}
-
-sub _find_in_inc {
- my $file = shift;
-
- # absolute file names
- return $file if -f $file;
-
- foreach my $dir (grep !/\bBSDPAN\b/, @INC) {
- return "$dir/$file" if -f "$dir/$file";
- }
- return;
-}
-
-sub _glob_in_inc {
- my $subdir = shift;
- my $pm_only = shift;
- my @files;
-
- require File::Find;
-
- foreach my $dir (map "$_/$subdir", grep !/\bBSDPAN\b/, @INC) {
- next unless -d $dir;
- File::Find::find({
- "wanted" => sub {
- my $name = $File::Find::name;
- $name =~ s!^\Q$dir\E/!!;
- return if $pm_only and lc($name) !~ /\.p[mh]$/i;
- push @files, $pm_only
- ? "$subdir/$name"
- : { file => $File::Find::name,
- name => $name,
- }
- if -f;
- },
- "untaint" => 1,
- "untaint_skip" => 1,
- "untaint_pattern" => qr|^([-+@\w./]+)$|
- }, $dir
- );
- }
-
- return @files;
-}
-
-# App::Packer compatibility functions
-
-sub new {
- my ($class, $self) = @_;
- return bless($self ||= {}, $class);
-}
-
-sub set_file {
- my $self = shift;
- foreach my $script (@_) {
- my $basename = $script;
- $basename =~ s/.*\///;
- $self->{main} = {
- key => $basename,
- file => $script,
- };
- }
-}
-
-sub set_options {
- my $self = shift;
- my %args = @_;
- foreach my $module (@{ $args{add_modules} }) {
- $module =~ s/::/\//g;
- $module .= '.pm' unless $module =~ /\.p[mh]$/i;
- my $file = _find_in_inc($module) or next;
- $self->{files}{$module} = $file;
- }
-}
-
-sub calculate_info {
- my $self = shift;
- my $rv = scan_deps(
- keys => [ $self->{main}{key}, sort keys %{ $self->{files} }, ],
- files => [ $self->{main}{file},
- map { $self->{files}{$_} } sort keys %{ $self->{files} },
- ],
- recurse => 1,
- );
-
- my $info = {
- main => { file => $self->{main}{file},
- store_as => $self->{main}{key},
- },
- };
-
- my %cache = ($self->{main}{key} => $info->{main});
- foreach my $key (sort keys %{ $self->{files} }) {
- my $file = $self->{files}{$key};
-
- $cache{$key} = $info->{modules}{$key} = {
- file => $file,
- store_as => $key,
- used_by => [ $self->{main}{key} ],
- };
- }
-
- foreach my $key (sort keys %{$rv}) {
- my $val = $rv->{$key};
- if ($cache{ $val->{key} }) {
- push @{ $info->{ $val->{type} }->{ $val->{key} }->{used_by} },
- @{ $val->{used_by} };
- }
- else {
- $cache{ $val->{key} } = $info->{ $val->{type} }->{ $val->{key} } =
- { file => $val->{file},
- store_as => $val->{key},
- used_by => $val->{used_by},
- };
- }
- }
-
- $self->{info} = { main => $info->{main} };
-
- foreach my $type (sort keys %{$info}) {
- next if $type eq 'main';
-
- my @val;
- if (UNIVERSAL::isa($info->{$type}, 'HASH')) {
- foreach my $val (sort values %{ $info->{$type} }) {
- @{ $val->{used_by} } = map $cache{$_} || "!!$_!!",
- @{ $val->{used_by} };
- push @val, $val;
- }
- }
-
- $type = 'modules' if $type eq 'module';
- $self->{info}{$type} = \@val;
- }
-}
-
-sub get_files {
- my $self = shift;
- return $self->{info};
-}
-
-# scan_deps_runtime utility functions
-
-sub _compile {
- my ($perl, $file, $inchash, $dl_shared_objects, $incarray) = @_;
-
- my $fname = File::Temp::mktemp("$file.XXXXXX");
- my $fhin = FileHandle->new($file) or die "Couldn't open $file\n";
- my $fhout = FileHandle->new("> $fname") or die "Couldn't open $fname\n";
-
- my $line = do { local $/; <$fhin> };
- $line =~ s/use Module::ScanDeps::DataFeed.*?\n//sg;
- $line =~ s/^(.*?)((?:[\r\n]+__(?:DATA|END)__[\r\n]+)|$)/
-use Module::ScanDeps::DataFeed '$fname.out';
-sub {
-$1
-}
-$2/s;
- $fhout->print($line);
- $fhout->close;
- $fhin->close;
-
- system($perl, $fname);
-
- _extract_info("$fname.out", $inchash, $dl_shared_objects, $incarray);
- unlink("$fname");
- unlink("$fname.out");
-}
-
-sub _execute {
- my ($perl, $file, $inchash, $dl_shared_objects, $incarray, $firstflag) = @_;
-
- $DB::single = $DB::single = 1;
-
- my $fname = _abs_path(File::Temp::mktemp("$file.XXXXXX"));
- my $fhin = FileHandle->new($file) or die "Couldn't open $file";
- my $fhout = FileHandle->new("> $fname") or die "Couldn't open $fname";
-
- my $line = do { local $/; <$fhin> };
- $line =~ s/use Module::ScanDeps::DataFeed.*?\n//sg;
- $line = "use Module::ScanDeps::DataFeed '$fname.out';\n" . $line;
- $fhout->print($line);
- $fhout->close;
- $fhin->close;
-
- File::Path::rmtree( ['_Inline'], 0, 1); # XXX hack
- system($perl, $fname) == 0 or die "SYSTEM ERROR in executing $file: $?";
-
- _extract_info("$fname.out", $inchash, $dl_shared_objects, $incarray);
- unlink("$fname");
- unlink("$fname.out");
-}
-
-sub _make_rv {
- my ($inchash, $dl_shared_objects, $inc_array) = @_;
-
- my $rv = {};
- my @newinc = map(quotemeta($_), @$inc_array);
- my $inc = join('|', sort { length($b) <=> length($a) } @newinc);
-
- require File::Spec;
-
- my $key;
- foreach $key (keys(%$inchash)) {
- my $newkey = $key;
- $newkey =~ s"^(?:(?:$inc)/?)""sg if File::Spec->file_name_is_absolute($newkey);
-
- $rv->{$newkey} = {
- 'used_by' => [],
- 'file' => $inchash->{$key},
- 'type' => _gettype($inchash->{$key}),
- 'key' => $key
- };
- }
-
- my $dl_file;
- foreach $dl_file (@$dl_shared_objects) {
- my $key = $dl_file;
- $key =~ s"^(?:(?:$inc)/?)""s;
-
- $rv->{$key} = {
- 'used_by' => [],
- 'file' => $dl_file,
- 'type' => 'shared',
- 'key' => $key
- };
- }
-
- return $rv;
-}
-
-sub _extract_info {
- my ($fname, $inchash, $dl_shared_objects, $incarray) = @_;
-
- use vars qw(%inchash @dl_shared_objects @incarray);
- my $fh = FileHandle->new($fname) or die "Couldn't open $fname";
- my $line = do { local $/; <$fh> };
- $fh->close;
-
- eval $line;
-
- $inchash->{$_} = $inchash{$_} for keys %inchash;
- @$dl_shared_objects = @dl_shared_objects;
- @$incarray = @incarray;
-}
-
-sub _gettype {
- my $name = shift;
- my $dlext = quotemeta(dl_ext());
-
- return 'autoload' if $name =~ /(?:\.ix|\.al|\.bs)$/i;
- return 'module' if $name =~ /\.p[mh]$/i;
- return 'shared' if $name =~ /\.$dlext$/i;
- return 'data';
-}
-
-sub _merge_rv {
- my ($rv_sub, $rv) = @_;
-
- my $key;
- foreach $key (keys(%$rv_sub)) {
- my %mark;
- if ($rv->{$key} and _not_dup($key, $rv, $rv_sub)) {
- warn "different modules for file: $key: were found" .
- "(using the version) after the '=>': ".
- "$rv->{$key}{file} => $rv_sub->{$key}{file}\n";
-
- $rv->{$key}{used_by} = [
- grep (!$mark{$_}++,
- @{ $rv->{$key}{used_by} },
- @{ $rv_sub->{$key}{used_by} })
- ];
- @{ $rv->{$key}{used_by} } = grep length, @{ $rv->{$key}{used_by} };
- $rv->{$key}{file} = $rv_sub->{$key}{file};
- }
- elsif ($rv->{$key}) {
- $rv->{$key}{used_by} = [
- grep (!$mark{$_}++,
- @{ $rv->{$key}{used_by} },
- @{ $rv_sub->{$key}{used_by} })
- ];
- @{ $rv->{$key}{used_by} } = grep length, @{ $rv->{$key}{used_by} };
- }
- else {
- $rv->{$key} = {
- used_by => [ @{ $rv_sub->{$key}{used_by} } ],
- file => $rv_sub->{$key}{file},
- key => $rv_sub->{$key}{key},
- type => $rv_sub->{$key}{type}
- };
-
- @{ $rv->{$key}{used_by} } = grep length, @{ $rv->{$key}{used_by} };
- }
- }
-}
-
-sub _not_dup {
- my ($key, $rv1, $rv2) = @_;
- (_abs_path($rv1->{$key}{file}) ne _abs_path($rv2->{$key}{file}));
-}
-
-sub _abs_path {
- return join(
- '/',
- Cwd::abs_path(File::Basename::dirname($_[0])),
- File::Basename::basename($_[0]),
- );
-}
-
-#####################################################
-### Actual perldeps.pl code starts here.
-
-# Print usage information
-sub
-print_usage_info($)
-{
- my $code = shift || 0;
- my ($leader, $underbar);
-
- print "\n";
- $leader = "$0 Usage Information";
- $underbar = $leader;
- $underbar =~ s/./-/g;
- print "$leader\n$underbar\n";
- print "\n";
- print " Syntax: $0 [ options ] [ path(s)/file(s) ]\n";
- print "\n";
- print " -h --help Show this usage information\n";
- print " -v --version Show version and copyright\n";
- print " -d --debug Turn on debugging\n";
- print " -p --provides Find things provided by path(s)/file(s)\n";
- print " -r --requires Find things required by path(s)/file(s)\n";
- #print " \n";
- print "\nNOTE: Path(s)/file(s) can also be specified on STDIN. Default is \@INC.\n\n";
- exit($code);
-}
-
-# Locate perl modules (*.pm) in given locations.
-sub
-find_perl_modules(@)
-{
- my @locations = @_;
- my %modules;
-
- foreach my $loc (@locations) {
- if (-f $loc) {
- # It's a file. Assume it's a Perl module.
- #print "Found module: $loc.\n";
- $modules{$loc} = 1;
- } elsif (-d $loc) {
- my @tmp;
-
- # Recurse the directory tree looking for all modules inside it.
- &File::Find::find({
- "wanted" => sub {
- if ((-s _) && (substr($File::Find::fullname, -3, 3) eq ".pm")) {
- push @tmp, $File::Find::fullname;
- }
- },
- "follow_fast" => 1,
- "no_chdir" => 1,
- "untaint" => 1,
- "untaint_skip" => 1,
- "untaint_pattern" => qr|^([-+@\w./]+)$|
- }, $loc);
-
- # @tmp is now a list with all non-empty *.pm files in and under $loc.
- # Untaint and save in %modules hash.
- foreach my $module (@tmp) {
- if ($module =~ /^([-+@\w.\/]+)$/) {
- $modules{$1} = 1;
- #print "Found module: $1\n";
- }
- }
- } else {
- # Something wicked this way comes.
- print STDERR "$0: Error: Don't know what to do with location \"$loc\"\n";
- }
- }
- return keys(%modules);
-}
-
-# Generate an RPM-style "Provides:" list for the given modules.
-sub
-find_provides(@)
-{
- my @modules = @_;
- my @prov;
-
- foreach my $mod (@modules) {
- my (@contents, @pkgs);
- my $mod_path;
- local *MOD;
-
- $mod_path = dirname($mod);
- if (!open(MOD, $mod)) {
- warn "Unable to read module $mod -- $!\n";
- next;
- }
- @contents = <MOD>;
- if (!close(MOD)) {
- warn "Unable to close module $mod -- $!\n";
- }
-
- if (!scalar(grep { $_ eq $mod_path } @INC)) {
- push @INC, $mod_path;
- }
- foreach my $line (grep { $_ =~ /^\s*package\s+/ } @contents) {
- if ($line =~ /^\s*package\s+([^\;\s]+)\s*\;/) {
- push @pkgs, $1;
- }
- }
-
- # Now we have a list of packages. Load up the modules and get their versions.
- foreach my $pkg (@pkgs) {
- my $ret;
- local ($SIG{"__WARN__"}, $SIG{"__DIE__"});
-
- # Make sure eval() can't display warnings/errors.
- $SIG{"__DIE__"} = $SIG{"__WARN__"} = sub {0;};
- $ret = eval("no strict ('vars', 'subs', 'refs'); use $pkg (); return $pkg->VERSION || 0.0;");
- if ($@) {
- dprint "Unable to parse version number from $pkg -- $@. Assuming 0.\n";
- $ret = 0;
- }
-
- if (! $ret) {
- $ret = 0;
- }
- push @prov, "perl($pkg) = $ret";
- }
- }
- printf("Provides: %s\n", join(", ", sort(@prov)));
-}
-
-# Generate an RPM-style "Requires:" list for the given modules.
-sub
-find_requires(@)
-{
- my @modules = @_;
- my @reqs;
- my $reqs;
-
- $reqs = &scan_deps("files" => \@modules, "recurse" => 0);
- foreach my $key (grep { $reqs->{$_}{"type"} eq "module" } sort(keys(%{$reqs}))) {
- if (substr($key, -3, 3) eq ".pm") {
- $key = substr($key, 0, -3);
- }
- $key =~ s!/!::!g;
- push @reqs, "perl($key)";
- }
- printf("Requires: %s\n", join(", ", @reqs));
-}
-
-sub
-main()
-{
- my $VERSION = '1.0';
- my (@locations, @modules);
- my %OPTION;
-
- # For taint checks
- delete @ENV{("IFS", "CDPATH", "ENV", "BASH_ENV")};
- $ENV{"PATH"} = "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/ucb";
- foreach my $shell ("/bin/bash", "/usr/bin/ksh", "/bin/ksh", "/bin/sh", "/sbin/sh") {
- if (-f $shell) {
- $ENV{"SHELL"} = $shell;
- last;
- }
- }
-
- $ENV{"LANG"} = "C" if (! $ENV{"LANG"});
- umask 022;
- select STDERR; $| = 1;
- select STDOUT; $| = 1;
-
- Getopt::Long::Configure("no_getopt_compat", "bundling", "no_ignore_case");
- Getopt::Long::GetOptions(\%OPTION, "debug|d!", "help|h", "version|v", "provides|p", "requires|r");
-
- # Post-parse the options stuff
- select STDOUT; $| = 1;
- if ($OPTION{"version"}) {
- # Do not edit this variable. It is updated automatically by CVS when you commit
- my $rcs_info = 'CVS Revision $Revision: 1.6 $ created on $Date: 2006/04/04 20:12:03 $ by $Author: mej $ ';
-
- $rcs_info =~ s/\$\s*Revision: (\S+) \$/$1/;
- $rcs_info =~ s/\$\s*Date: (\S+) (\S+) \$/$1 at $2/;
- $rcs_info =~ s/\$\s*Author: (\S+) \$ /$1/;
- print "\n";
- print "perldeps.pl $VERSION by Michael Jennings <mej\@eterm.org>\n";
- print "Copyright (c) 2005-2006, Michael Jennings\n";
- print " ($rcs_info)\n";
- print "\n";
- return 0;
- } elsif ($OPTION{"help"}) {
- &print_usage_info(0); # Never returns
- }
-
- push @locations, @ARGV;
- if (!scalar(@ARGV) && !(-t STDIN)) {
- @locations = <STDIN>;
- }
- if (!scalar(@locations)) {
- @locations = @INC;
- }
-
- if (!($OPTION{"provides"} || $OPTION{"requires"})) {
- &print_usage_info(-1); # Never returns
- }
-
- # Catch bogus warning messages like "A thread exited while 2 threads were running"
- $SIG{"__DIE__"} = $SIG{"__WARN__"} = sub {0;};
-
- @modules = &find_perl_modules(@locations);
- if ($OPTION{"provides"}) {
- &find_provides(@modules);
- }
- if ($OPTION{"requires"}) {
- &find_requires(@modules);
- }
- return 0;
-}
-
-exit &main();
diff --git a/scripts/tcl.req b/scripts/tcl.req
deleted file mode 100644
index 43c5920c..00000000
--- a/scripts/tcl.req
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/perl
-
-# tcl.req - a simple makedepends like script for tcl.
-
-# I plan to rewrite this in C so that perl is not required by RPM at
-# build time.
-
-# by Ken Estes Mail.com kestes@staff.mail.com
-
-use File::Basename;
-
-if ("@ARGV") {
- foreach (@ARGV) {
- process_file($_);
- }
-} else {
-
- # notice we are passed a list of filenames NOT as common in unix the
- # contents of the file.
-
- foreach (<>) {
- process_file($_);
- }
-}
-
-
-foreach $module (sort keys %require) {
- print "tcl($module)\n";
-}
-
-exit 0;
-
-
-
-sub process_file {
-
- my ($file) = @_;
- chomp $file;
-
- open(FILE, "<$file")||
- die("$0: Could not open file: '$file' : $!\n");
-
- while (<FILE>) {
-
- # Each keyword can appear multiple times. Don't
- # bother with datastructures to store these strings,
- # if we need to print it print it now.
-
- if ( m/^\s*\$RPM_Requires\s*=\s*["'](.*)['"]/i) {
- foreach $_ (spit(/\s+/, $1)) {
- print "$_\n";
- }
- }
-
- s/\#.*//;
-
- # Each keyword can appear multiple times. Don't
- # bother with datastructures to store these strings,
- # if we need to print it print it now.
-
- if ( m/^\s*\$RPM_Requires\s*=\s*["'](.*)['"]/i) {
- foreach $_ (spit(/\s+/, $1))
- print "$_\n";
- }
-
-
-# we wish to capture these source statements:
-
-# source "$PATH/lib/util.tcl"
-# source "comconf.tcl"
-# if {[catch {source $env(CONTROL_PANEL_LIB_DIR)/bindings.tcl}] != 0} {
-
- # quick check to see if the complex regexps could possibly match.
- # This should speed things up.
-
- (m/source/) || next;
-
- # note we include parethesis and '$' and '\' in the pattern
-
- if (
- (m!source\s+([\'\"])?([0-9A-Za-z/._\-\\\(\)\$]+)!)
- ) {
-
- my ($module) = $2;
-
- # If there is some interpolation of variables,
- # see if taking the basename will give us the filename.
-
- ($module =~ m/\$/) &&
- ($module = basename($module));
-
- ($module =~ m/\$/) ||
- ($require{$module}=1);
- }
- }
-
- close(FILE)||
- die("$0: Could not close file: '$file' : $!\n");
-
- return ;
-}
diff --git a/sign/Makefile.in b/sign/Makefile.in
index 052b8f12..535b8510 100644
--- a/sign/Makefile.in
+++ b/sign/Makefile.in
@@ -451,7 +451,7 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \
-I$(top_builddir)/include/ @WITH_NSS_INCLUDE@ \
@WITH_POPT_INCLUDE@ -I$(top_srcdir)/misc
diff --git a/sign/rpmgensig.c b/sign/rpmgensig.c
index 0bd14e37..169b5245 100644
--- a/sign/rpmgensig.c
+++ b/sign/rpmgensig.c
@@ -8,6 +8,7 @@
#include <errno.h>
#include <sys/wait.h>
#include <popt.h>
+#include <libgen.h>
#include <rpm/rpmlib.h> /* RPMSIGTAG & related */
#include <rpm/rpmmacro.h>
@@ -16,9 +17,11 @@
#include <rpm/rpmfileutil.h> /* rpmMkTemp() */
#include <rpm/rpmlog.h>
#include <rpm/rpmstring.h>
+#include <rpmio/rpmio_internal.h>
#include "lib/rpmlead.h"
#include "lib/signature.h"
+#include "lib/rpmsignfiles.h"
#include "debug.h"
@@ -33,6 +36,68 @@ typedef struct sigTarget_s {
rpm_loff_t size;
} *sigTarget;
+/*
+ * There is no function for creating unique temporary fifos so create
+ * unique temporary directory and then create fifo in it.
+ */
+static char *mkTempFifo(void)
+{
+ char *tmppath = NULL, *tmpdir = NULL, *fifofn = NULL;
+ mode_t mode;
+
+ tmppath = rpmExpand("%{_tmppath}", NULL);
+ if (rpmioMkpath(tmppath, 0755, (uid_t) -1, (gid_t) -1))
+ goto exit;
+
+
+ tmpdir = rpmGetPath(tmppath, "/rpm-tmp.XXXXXX", NULL);
+ mode = umask(0077);
+ tmpdir = mkdtemp(tmpdir);
+ umask(mode);
+ if (tmpdir == NULL) {
+ rpmlog(RPMLOG_ERR, _("error creating temp directory %s: %m\n"),
+ tmpdir);
+ tmpdir = _free(tmpdir);
+ goto exit;
+ }
+
+ fifofn = rpmGetPath(tmpdir, "/fifo", NULL);
+ if (mkfifo(fifofn, 0600) == -1) {
+ rpmlog(RPMLOG_ERR, _("error creating fifo %s: %m\n"), fifofn);
+ fifofn = _free(fifofn);
+ }
+
+exit:
+ if (fifofn == NULL && tmpdir != NULL)
+ unlink(tmpdir);
+
+ free(tmppath);
+ free(tmpdir);
+
+ return fifofn;
+}
+
+/* Delete fifo and then temporary directory in which it was located */
+static int rpmRmTempFifo(const char *fn)
+{
+ int rc = 0;
+ char *dfn = NULL, *dir = NULL;
+
+ if ((rc = unlink(fn)) != 0) {
+ rpmlog(RPMLOG_ERR, _("error delete fifo %s: %m\n"), fn);
+ return rc;
+ }
+
+ dfn = xstrdup(fn);
+ dir = dirname(dfn);
+
+ if ((rc = rmdir(dir)) != 0)
+ rpmlog(RPMLOG_ERR, _("error delete directory %s: %m\n"), dir);
+ free(dfn);
+
+ return rc;
+}
+
static int closeFile(FD_t *fdp)
{
if (fdp == NULL || *fdp == NULL)
@@ -88,6 +153,10 @@ static int manageFile(FD_t *fdp, const char *fn, int flags)
/**
* Copy header+payload, calculating digest(s) on the fly.
+ * @param sfdp source file
+ * @param sfnp source path
+ * @param tfdp destination file
+ * @param tfnp destination path
*/
static int copyFile(FD_t *sfdp, const char *sfnp,
FD_t *tfdp, const char *tfnp)
@@ -96,11 +165,6 @@ static int copyFile(FD_t *sfdp, const char *sfnp,
ssize_t count;
int rc = 1;
- if (manageFile(sfdp, sfnp, O_RDONLY))
- goto exit;
- if (manageFile(tfdp, tfnp, O_WRONLY|O_CREAT|O_TRUNC))
- goto exit;
-
while ((count = Fread(buf, sizeof(buf[0]), sizeof(buf), *sfdp)) > 0)
{
if (Fwrite(buf, sizeof(buf[0]), count, *tfdp) != count) {
@@ -121,8 +185,6 @@ static int copyFile(FD_t *sfdp, const char *sfnp,
rc = 0;
exit:
- if (*sfdp) (void) closeFile(sfdp);
- if (*tfdp) (void) closeFile(tfdp);
return rc;
}
@@ -182,31 +244,20 @@ exit:
return rc;
}
-static int runGPG(sigTarget sigt, const char *sigfile, const char * passPhrase)
+static int runGPG(sigTarget sigt, const char *sigfile)
{
int pid = 0, status;
- int inpipe[2];
- int inpipe2[2];
- FILE * fpipe = NULL;
+ FD_t fnamedPipe = NULL;
+ char *namedPipeName = NULL;
unsigned char buf[BUFSIZ];
ssize_t count;
ssize_t wantCount;
rpm_loff_t size;
int rc = 1; /* assume failure */
- inpipe[0] = inpipe[1] = 0;
- if (pipe(inpipe) < 0) {
- rpmlog(RPMLOG_ERR, _("Couldn't create pipe for signing: %m"));
- goto exit;
- }
-
- inpipe2[0] = inpipe2[1] = 0;
- if (pipe(inpipe2) < 0) {
- rpmlog(RPMLOG_ERR, _("Couldn't create pipe for signing: %m"));
- goto exit;
- }
+ namedPipeName = mkTempFifo();
- addMacro(NULL, "__plaintext_filename", NULL, "-", -1);
+ addMacro(NULL, "__plaintext_filename", NULL, namedPipeName, -1);
addMacro(NULL, "__signature_filename", NULL, sigfile, -1);
if (!(pid = fork())) {
@@ -214,15 +265,8 @@ static int runGPG(sigTarget sigt, const char *sigfile, const char * passPhrase)
char *cmd = NULL;
const char *gpg_path = rpmExpand("%{?_gpg_path}", NULL);
- (void) dup2(inpipe[0], 3);
- (void) close(inpipe[1]);
-
- (void) dup2(inpipe2[0], STDIN_FILENO);
- (void) close(inpipe2[1]);
-
if (gpg_path && *gpg_path != '\0')
(void) setenv("GNUPGHOME", gpg_path, 1);
- (void) setenv("LC_ALL", "C", 1);
unsetenv("MALLOC_CHECK_");
cmd = rpmExpand("%{?__gpg_sign_cmd}", NULL);
@@ -238,31 +282,11 @@ static int runGPG(sigTarget sigt, const char *sigfile, const char * passPhrase)
delMacro(NULL, "__plaintext_filename");
delMacro(NULL, "__signature_filename");
- (void) close(inpipe[0]);
- inpipe[0] = 0;
- (void) close(inpipe2[0]);
- inpipe2[0] = 0;
-
- fpipe = fdopen(inpipe[1], "w");
- if (!fpipe) {
- rpmlog(RPMLOG_ERR, _("fdopen failed\n"));
- goto exit;
- }
- inpipe[1] = 0;
-
- if (fprintf(fpipe, "%s\n", (passPhrase ? passPhrase : "")) < 0) {
- rpmlog(RPMLOG_ERR, _("Could not write to pipe\n"));
+ fnamedPipe = Fopen(namedPipeName, "w");
+ if (!fnamedPipe) {
+ rpmlog(RPMLOG_ERR, _("Fopen failed\n"));
goto exit;
}
- (void) fclose(fpipe);
- fpipe = NULL;
-
- fpipe = fdopen(inpipe2[1], "w");
- if (!fpipe) {
- rpmlog(RPMLOG_ERR, _("fdopen failed\n"));
- goto exit;
- }
- inpipe2[1] = 0;
if (Fseek(sigt->fd, sigt->start, SEEK_SET) < 0) {
rpmlog(RPMLOG_ERR, _("Could not seek in file %s: %s\n"),
@@ -273,8 +297,8 @@ static int runGPG(sigTarget sigt, const char *sigfile, const char * passPhrase)
size = sigt->size;
wantCount = size < sizeof(buf) ? size : sizeof(buf);
while ((count = Fread(buf, sizeof(buf[0]), wantCount, sigt->fd)) > 0) {
- fwrite(buf, sizeof(buf[0]), count, fpipe);
- if (ferror(fpipe)) {
+ Fwrite(buf, sizeof(buf[0]), count, fnamedPipe);
+ if (Ferror(fnamedPipe)) {
rpmlog(RPMLOG_ERR, _("Could not write to pipe\n"));
goto exit;
}
@@ -286,8 +310,8 @@ static int runGPG(sigTarget sigt, const char *sigfile, const char * passPhrase)
sigt->fileName, Fstrerror(sigt->fd));
goto exit;
}
- fclose(fpipe);
- fpipe = NULL;
+ Fclose(fnamedPipe);
+ fnamedPipe = NULL;
(void) waitpid(pid, &status, 0);
pid = 0;
@@ -298,24 +322,17 @@ static int runGPG(sigTarget sigt, const char *sigfile, const char * passPhrase)
}
exit:
- if (fpipe)
- fclose(fpipe);
-
- if (inpipe[0])
- close(inpipe[0]);
- if (inpipe[1])
- close(inpipe[1]);
-
- if (inpipe2[0])
- close(inpipe[0]);
-
- if (inpipe2[1])
- close(inpipe[1]);
+ if (fnamedPipe)
+ Fclose(fnamedPipe);
if (pid)
waitpid(pid, &status, 0);
+ if (namedPipeName) {
+ rpmRmTempFifo(namedPipeName);
+ free(namedPipeName);
+ }
return rc;
}
@@ -328,8 +345,7 @@ exit:
* @param passPhrase private key pass phrase
* @return 0 on success, 1 on failure
*/
-static int makeGPGSignature(Header sigh, int ishdr, sigTarget sigt,
- const char * passPhrase)
+static int makeGPGSignature(Header sigh, int ishdr, sigTarget sigt)
{
char * sigfile = rstrscat(NULL, sigt->fileName, ".sig", NULL);
struct stat st;
@@ -337,7 +353,7 @@ static int makeGPGSignature(Header sigh, int ishdr, sigTarget sigt,
size_t pktlen = 0;
int rc = 1; /* assume failure */
- if (runGPG(sigt, sigfile, passPhrase))
+ if (runGPG(sigt, sigfile))
goto exit;
if (stat(sigfile, &st)) {
@@ -376,16 +392,15 @@ exit:
return rc;
}
-static int rpmGenSignature(Header sigh, sigTarget sigt1, sigTarget sigt2,
- const char * passPhrase)
+static int rpmGenSignature(Header sigh, sigTarget sigt1, sigTarget sigt2)
{
int ret;
- ret = makeGPGSignature(sigh, 0, sigt1, passPhrase);
+ ret = makeGPGSignature(sigh, 0, sigt1);
if (ret)
goto exit;
- ret = makeGPGSignature(sigh, 1, sigt2, passPhrase);
+ ret = makeGPGSignature(sigh, 1, sigt2);
if (ret)
goto exit;
exit:
@@ -431,8 +446,7 @@ static int sameSignature(rpmTagVal sigtag, Header h1, Header h2)
return (rc == 0);
}
-static int replaceSignature(Header sigh, sigTarget sigt1, sigTarget sigt2,
- const char *passPhrase)
+static int replaceSignature(Header sigh, sigTarget sigt1, sigTarget sigt2)
{
/* Grab a copy of the header so we can compare the result */
Header oldsigh = headerCopy(sigh);
@@ -445,7 +459,7 @@ static int replaceSignature(Header sigh, sigTarget sigt1, sigTarget sigt2,
* rpmGenSignature() internals parse the actual signing result and
* adds appropriate tags for DSA/RSA.
*/
- if (rpmGenSignature(sigh, sigt1, sigt2, passPhrase) == 0) {
+ if (rpmGenSignature(sigh, sigt1, sigt2) == 0) {
/* Lets see what we got and whether its the same signature as before */
rpmTagVal sigtag = headerIsEntry(sigh, RPMSIGTAG_DSA) ?
RPMSIGTAG_DSA : RPMSIGTAG_RSA;
@@ -458,14 +472,200 @@ static int replaceSignature(Header sigh, sigTarget sigt1, sigTarget sigt2,
return rc;
}
+static void unloadImmutableRegion(Header *hdrp, rpmTagVal tag)
+{
+ struct rpmtd_s copytd, td;
+ rpmtd utd = &td;
+ Header nh;
+ Header oh;
+ HeaderIterator hi;
+
+ if (headerGet(*hdrp, tag, utd, HEADERGET_DEFAULT)) {
+ nh = headerNew();
+ oh = headerCopyLoad(utd->data);
+ hi = headerInitIterator(oh);
+
+ while (headerNext(hi, &copytd)) {
+ if (copytd.data)
+ headerPut(nh, &copytd, HEADERPUT_DEFAULT);
+ rpmtdFreeData(&copytd);
+ }
+
+ headerFreeIterator(hi);
+ headerFree(oh);
+ rpmtdFreeData(utd);
+ headerFree(*hdrp);
+ *hdrp = headerLink(nh);
+ headerFree(nh);
+ }
+}
+
+static rpmRC replaceSigDigests(FD_t fd, const char *rpm, Header *sigp,
+ off_t sigStart, off_t sigTargetSize,
+ char *SHA1, uint8_t *MD5)
+{
+ off_t archiveSize;
+ rpmRC rc = RPMRC_OK;
+
+ if (Fseek(fd, sigStart, SEEK_SET) < 0) {
+ rc = RPMRC_FAIL;
+ rpmlog(RPMLOG_ERR, _("Could not seek in file %s: %s\n"),
+ rpm, Fstrerror(fd));
+ goto exit;
+ }
+
+ /* Get payload size from signature tag */
+ archiveSize = headerGetNumber(*sigp, RPMSIGTAG_PAYLOADSIZE);
+ if (!archiveSize) {
+ archiveSize = headerGetNumber(*sigp, RPMSIGTAG_LONGARCHIVESIZE);
+ }
+
+ /* Set reserved space to 0 */
+ addMacro(NULL, "__gpg_reserved_space", NULL, 0, RMIL_GLOBAL);
+
+ /* Replace old digests in sigh */
+ rc = rpmGenerateSignature(SHA1, MD5, sigTargetSize, archiveSize, fd);
+ if (rc != RPMRC_OK) {
+ rpmlog(RPMLOG_ERR, _("generateSignature failed\n"));
+ goto exit;
+ }
+
+ if (Fseek(fd, sigStart, SEEK_SET) < 0) {
+ rc = RPMRC_FAIL;
+ rpmlog(RPMLOG_ERR, _("Could not seek in file %s: %s\n"),
+ rpm, Fstrerror(fd));
+ goto exit;
+ }
+
+ headerFree(*sigp);
+ rc = rpmReadSignature(fd, sigp, RPMSIGTYPE_HEADERSIG, NULL);
+ if (rc != RPMRC_OK) {
+ rpmlog(RPMLOG_ERR, _("rpmReadSignature failed\n"));
+ goto exit;
+ }
+
+exit:
+ return rc;
+}
+
+static rpmRC includeFileSignatures(FD_t fd, const char *rpm,
+ Header *sigp, Header *hdrp,
+ off_t sigStart, off_t headerStart)
+{
+ FD_t ofd = NULL;
+ char *trpm = NULL;
+ const char *key;
+ char *keypass;
+ char *SHA1 = NULL;
+ uint8_t *MD5 = NULL;
+ size_t sha1len;
+ size_t md5len;
+ off_t sigTargetSize;
+ rpmRC rc = RPMRC_OK;
+ struct rpmtd_s osigtd;
+ char *o_sha1 = NULL;
+ uint8_t o_md5[16];
+
+#ifndef WITH_IMAEVM
+ rpmlog(RPMLOG_ERR, _("missing libimaevm\n"));
+ return RPMRC_FAIL;
+#endif
+ unloadImmutableRegion(hdrp, RPMTAG_HEADERIMMUTABLE);
+
+ key = rpmExpand("%{?_file_signing_key}", NULL);
+
+ keypass = rpmExpand("%{_file_signing_key_password}", NULL);
+ if (rstreq(keypass, ""))
+ keypass = NULL;
+
+ rc = rpmSignFiles(*hdrp, key, keypass);
+ if (rc != RPMRC_OK) {
+ goto exit;
+ }
+
+ *hdrp = headerReload(*hdrp, RPMTAG_HEADERIMMUTABLE);
+ if (*hdrp == NULL) {
+ rc = RPMRC_FAIL;
+ rpmlog(RPMLOG_ERR, _("headerReload failed\n"));
+ goto exit;
+ }
+
+ ofd = rpmMkTempFile(NULL, &trpm);
+ if (ofd == NULL || Ferror(ofd)) {
+ rc = RPMRC_FAIL;
+ rpmlog(RPMLOG_ERR, _("rpmMkTemp failed\n"));
+ goto exit;
+ }
+
+ /* Copy archive to temp file */
+ if (copyFile(&fd, rpm, &ofd, trpm)) {
+ rc = RPMRC_FAIL;
+ rpmlog(RPMLOG_ERR, _("copyFile failed\n"));
+ goto exit;
+ }
+
+ if (Fseek(fd, headerStart, SEEK_SET) < 0) {
+ rc = RPMRC_FAIL;
+ rpmlog(RPMLOG_ERR, _("Could not seek in file %s: %s\n"),
+ rpm, Fstrerror(fd));
+ goto exit;
+ }
+
+ /* Start MD5 calculation */
+ fdInitDigest(fd, PGPHASHALGO_MD5, 0);
+
+ /* Write header to rpm and recalculate SHA1 */
+ fdInitDigest(fd, PGPHASHALGO_SHA1, 0);
+ rc = headerWrite(fd, *hdrp, HEADER_MAGIC_YES);
+ if (rc != RPMRC_OK) {
+ rpmlog(RPMLOG_ERR, _("headerWrite failed\n"));
+ goto exit;
+ }
+ fdFiniDigest(fd, PGPHASHALGO_SHA1, (void **)&SHA1, &sha1len, 1);
+
+ /* Copy archive from temp file */
+ if (Fseek(ofd, 0, SEEK_SET) < 0) {
+ rc = RPMRC_FAIL;
+ rpmlog(RPMLOG_ERR, _("Could not seek in file %s: %s\n"),
+ rpm, Fstrerror(fd));
+ goto exit;
+ }
+ if (copyFile(&ofd, trpm, &fd, rpm)) {
+ rc = RPMRC_FAIL;
+ rpmlog(RPMLOG_ERR, _("copyFile failed\n"));
+ goto exit;
+ }
+ unlink(trpm);
+
+ sigTargetSize = Ftell(fd) - headerStart;
+ fdFiniDigest(fd, PGPHASHALGO_MD5, (void **)&MD5, &md5len, 0);
+
+ if (headerGet(*sigp, RPMSIGTAG_MD5, &osigtd, HEADERGET_DEFAULT))
+ memcpy(o_md5, osigtd.data, 16);
+
+ if (headerGet(*sigp, RPMSIGTAG_SHA1, &osigtd, HEADERGET_DEFAULT))
+ o_sha1 = xstrdup(osigtd.data);
+
+ if (memcmp(MD5, o_md5, md5len) == 0 && strcmp(SHA1, o_sha1) == 0)
+ rpmlog(RPMLOG_WARNING,
+ _("%s already contains identical file signatures\n"),
+ rpm);
+ else
+ replaceSigDigests(fd, rpm, sigp, sigStart, sigTargetSize, SHA1, MD5);
+
+exit:
+if (ofd) (void) closeFile(&ofd);
+ return rc;
+}
+
/** \ingroup rpmcli
* Create/modify elements in signature header.
* @param rpm path to package
* @param deleting adding or deleting signature?
- * @param passPhrase passPhrase (ignored when deleting)
+ * @param signfiles sign files if non-zero
* @return 0 on success, -1 on error
*/
-static int rpmSign(const char *rpm, int deleting, const char *passPhrase)
+static int rpmSign(const char *rpm, int deleting, int signfiles)
{
FD_t fd = NULL;
FD_t ofd = NULL;
@@ -516,25 +716,11 @@ static int rpmSign(const char *rpm, int deleting, const char *passPhrase)
goto exit;
}
- /* Dump the immutable region (if present). */
- if (headerGet(sigh, RPMTAG_HEADERSIGNATURES, &utd, HEADERGET_DEFAULT)) {
- struct rpmtd_s copytd;
- Header nh = headerNew();
- Header oh = headerCopyLoad(utd.data);
- HeaderIterator hi = headerInitIterator(oh);
- while (headerNext(hi, &copytd)) {
- if (copytd.data)
- headerPut(nh, &copytd, HEADERPUT_DEFAULT);
- rpmtdFreeData(&copytd);
- }
- headerFreeIterator(hi);
- headerFree(oh);
- rpmtdFreeData(&utd);
-
- headerFree(sigh);
- sigh = headerLink(nh);
- headerFree(nh);
+ if (signfiles) {
+ includeFileSignatures(fd, rpm, &sigh, &h, sigStart, headerStart);
}
+
+ unloadImmutableRegion(&sigh, RPMTAG_HEADERSIGNATURES);
origSigSize = headerSizeof(sigh, HEADER_MAGIC_YES);
if (deleting) { /* Nuke all the signature tags. */
@@ -550,7 +736,7 @@ static int rpmSign(const char *rpm, int deleting, const char *passPhrase)
sigt2 = sigt1;
sigt2.size = headerSizeof(h, HEADER_MAGIC_YES);
- res = replaceSignature(sigh, &sigt1, &sigt2, passPhrase);
+ res = replaceSignature(sigh, &sigt1, &sigt2);
if (res != 0) {
if (res == 1) {
rpmlog(RPMLOG_WARNING,
@@ -667,8 +853,7 @@ exit:
return res;
}
-int rpmPkgSign(const char *path,
- const struct rpmSignArgs * args, const char *passPhrase)
+int rpmPkgSign(const char *path, const struct rpmSignArgs * args)
{
int rc;
@@ -684,7 +869,7 @@ int rpmPkgSign(const char *path,
}
}
- rc = rpmSign(path, 0, passPhrase);
+ rc = rpmSign(path, 0, args ? args->signfiles : 0);
if (args) {
if (args->hashalgo) {
@@ -700,5 +885,5 @@ int rpmPkgSign(const char *path,
int rpmPkgDelSign(const char *path)
{
- return rpmSign(path, 1, NULL);
+ return rpmSign(path, 1, 0);
}
diff --git a/sign/rpmsign.h b/sign/rpmsign.h
index 15b3e0fe..0f9c94f3 100644
--- a/sign/rpmsign.h
+++ b/sign/rpmsign.h
@@ -11,6 +11,7 @@ extern "C" {
struct rpmSignArgs {
char *keyid;
pgpHashAlgo hashalgo;
+ int signfiles;
/* ... what else? */
};
@@ -18,11 +19,9 @@ struct rpmSignArgs {
* Sign a package
* @param path path to package
* @param args signing parameters (or NULL for defaults)
- * @param passPhrase passphrase for the signing key
* @return 0 on success
*/
-int rpmPkgSign(const char *path,
- const struct rpmSignArgs * args, const char *passPhrase);
+int rpmPkgSign(const char *path, const struct rpmSignArgs * args);
/** \ingroup rpmsign
* Delete signature(s) from a package
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 57a44506..7a5cc654 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -37,6 +37,8 @@ EXTRA_DIST += $(TESTSUITE_AT)
EXTRA_DIST += data/SPECS/attrtest.spec
EXTRA_DIST += data/SPECS/hello.spec
EXTRA_DIST += data/SPECS/hello-script.spec
+EXTRA_DIST += data/SPECS/hello2.spec
+EXTRA_DIST += data/SPECS/hello2-suid.spec
EXTRA_DIST += data/SPECS/foo.spec
EXTRA_DIST += data/SPECS/globtest.spec
EXTRA_DIST += data/SPECS/versiontest.spec
@@ -52,6 +54,9 @@ EXTRA_DIST += data/SPECS/scripts.spec
EXTRA_DIST += data/SPECS/selfconflict.spec
EXTRA_DIST += data/SPECS/replacetest.spec
EXTRA_DIST += data/SPECS/triggers.spec
+EXTRA_DIST += data/SPECS/filetriggers.spec
+EXTRA_DIST += data/SPECS/prefixtest.spec
+EXTRA_DIST += data/SPECS/testdoc.spec
EXTRA_DIST += data/SOURCES/hello-1.0-modernize.patch
EXTRA_DIST += data/SOURCES/hello-1.0.tar.gz
EXTRA_DIST += data/SOURCES/hello-2.0.tar.gz
@@ -107,7 +112,7 @@ testing$(bindir)/rpmbuild: ../rpmbuild
for node in stdin stderr stdout null; do ln -s /dev/$${node} testing/dev/$${node}; done
for cf in hosts resolv.conf passwd shadow group gshadow mtab fstab; do [ -f /etc/$${cf} ] && ln -s /etc/$${cf} testing/etc/$${cf}; done
ln -s ../$(bindir) testing/usr/bin
- for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file mktemp cut sort diff touch; do p=`which $${prog}`; ln -s $${p} testing/$${p}; done
+ for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file ionice mktemp nice cut sort diff touch; do p=`which $${prog}`; ln -s $${p} testing/$${p}; done
for d in /proc /sys /selinux /etc/selinux; do if [ -d $${d} ]; then ln -s $${d} testing/$${d}; fi; done
(cd testing/magic && file -C)
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 8e1c2306..cc25e856 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -368,10 +368,11 @@ rpmlibexecdir = $(prefix)/lib/rpm
rpmconfigdir = $(prefix)/lib/rpm
# Libtool version (current-revision-age) for all our libraries
-rpm_version_info = 6:1:3
+rpm_version_info = 7:0:0
EXTRA_DIST = local.at $(TESTSUITE) $(TESTSUITE_AT) \
data/SPECS/attrtest.spec data/SPECS/hello.spec \
- data/SPECS/hello-script.spec data/SPECS/foo.spec \
+ data/SPECS/hello-script.spec data/SPECS/hello2.spec \
+ data/SPECS/hello2-suid.spec data/SPECS/foo.spec \
data/SPECS/globtest.spec data/SPECS/versiontest.spec \
data/SPECS/conflicttest.spec data/SPECS/configtest.spec \
data/SPECS/flangtest.spec data/SPECS/hlinktest.spec \
@@ -379,7 +380,8 @@ EXTRA_DIST = local.at $(TESTSUITE) $(TESTSUITE_AT) \
data/SPECS/verifyscript.spec data/SPECS/fakeshell.spec \
data/SPECS/scripts.spec data/SPECS/selfconflict.spec \
data/SPECS/replacetest.spec data/SPECS/triggers.spec \
- data/SOURCES/hello-1.0-modernize.patch \
+ data/SPECS/filetriggers.spec data/SPECS/prefixtest.spec \
+ data/SPECS/testdoc.spec data/SOURCES/hello-1.0-modernize.patch \
data/SOURCES/hello-1.0.tar.gz data/SOURCES/hello-2.0.tar.gz \
data/RPMS/foo-1.0-1.noarch.rpm data/RPMS/hello-1.0-1.i386.rpm \
data/RPMS/hello-1.0-1.ppc64.rpm data/RPMS/hello-2.0-1.i686.rpm \
@@ -634,7 +636,7 @@ testing$(bindir)/rpmbuild: ../rpmbuild
for node in stdin stderr stdout null; do ln -s /dev/$${node} testing/dev/$${node}; done
for cf in hosts resolv.conf passwd shadow group gshadow mtab fstab; do [ -f /etc/$${cf} ] && ln -s /etc/$${cf} testing/etc/$${cf}; done
ln -s ../$(bindir) testing/usr/bin
- for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file mktemp cut sort diff touch; do p=`which $${prog}`; ln -s $${p} testing/$${p}; done
+ for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file ionice mktemp nice cut sort diff touch; do p=`which $${prog}`; ln -s $${p} testing/$${p}; done
for d in /proc /sys /selinux /etc/selinux; do if [ -d $${d} ]; then ln -s $${d} testing/$${d}; fi; done
(cd testing/magic && file -C)
diff --git a/tests/data/SPECS/filetriggers.spec b/tests/data/SPECS/filetriggers.spec
new file mode 100644
index 00000000..b1dc3d5d
--- /dev/null
+++ b/tests/data/SPECS/filetriggers.spec
@@ -0,0 +1,95 @@
+Name: filetriggers
+Version: 1.0
+Release: 1
+Summary: Testing file triggers
+
+Group: testing
+License: GPL
+BuildArch: noarch
+
+
+%description
+%{summary}
+
+
+%filetriggerin -- /usr/bin
+echo "filetriggerin(/usr/bin*):"
+cat
+echo
+
+%filetriggerun -- /usr/bin
+echo "filetriggerun(/usr/bin*):"
+cat
+echo
+
+%filetriggerpostun -- /usr/bin
+echo "filetriggerpostun(/usr/bin*):"
+cat
+echo
+
+%transfiletriggerin -- /usr/bin
+echo "transfiletriggerin(/usr/bin*):"
+cat
+echo
+
+%transfiletriggerun -- /usr/bin
+echo "transfiletriggerun(/usr/bin*):"
+cat
+echo
+
+%transfiletriggerpostun -- /usr/bin
+echo "transfiletriggerpostun(/usr/bin*):"
+cat
+echo
+
+%filetriggerin -p <lua> -- /usr/bin
+print("filetriggerin(/usr/bin*)<lua>:")
+a = rpm.next_file()
+while a do
+ print(a)
+ a = rpm.next_file()
+end
+print("")
+io.flush()
+
+%filetriggerin -- /foo
+echo "filetriggerin(/foo*):"
+cat
+echo
+
+%filetriggerun -- /foo
+echo "filetriggerun(/foo*):"
+cat
+echo
+
+%filetriggerpostun -- /foo
+echo "filetriggerpostun(/foo*):"
+cat
+echo
+
+%transfiletriggerin -- /foo
+echo "transfiletriggerin(/foo*):"
+cat
+echo
+
+%transfiletriggerun -- /foo
+echo "transfiletriggerun(/foo*):"
+cat
+echo
+
+%transfiletriggerpostun -- /foo
+echo "transfiletriggerpostun(/foo*):"
+cat
+echo
+
+%filetriggerin -p <lua> -- /foo
+print("filetriggerin(/foo*)<lua>:")
+a = rpm.next_file()
+while a do
+ print(a)
+ a = rpm.next_file()
+end
+print("")
+io.flush()
+
+%files
diff --git a/tests/data/SPECS/hello2-suid.spec b/tests/data/SPECS/hello2-suid.spec
new file mode 100644
index 00000000..32bdce1f
--- /dev/null
+++ b/tests/data/SPECS/hello2-suid.spec
@@ -0,0 +1,67 @@
+Summary: hello2 -- double hello, world rpm
+Name: hello2
+Version: 1.0
+Release: 1
+Group: Utilities
+License: GPL
+Distribution: RPM test suite.
+Vendor: Red Hat Software
+Packager: Red Hat Software <bugs@redhat.com>
+URL: http://www.redhat.com
+Source0: hello-1.0.tar.gz
+Patch0: hello-1.0-modernize.patch
+Excludearch: lsi
+Excludeos: cpm
+Provides: hi
+Conflicts: goodbye
+Obsoletes: howdy
+Prefix: /usr
+
+%description
+Simple rpm demonstration.
+
+%prep
+%setup -q -n hello-1.0
+%patch0 -p1 -b .modernize
+
+%build
+make CFLAGS="-g -O1"
+mv hello hello2
+make CFLAGS="-g -O2 -D_FORTIFY_SOURCE=2"
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/local/bin
+# Note explicit install hello as suid
+install -m 4755 hello $RPM_BUILD_ROOT/usr/local/bin
+install -m 755 hello2 $RPM_BUILD_ROOT/usr/local/bin
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%pre
+
+%post
+
+%preun
+
+%postun
+
+%files
+# Note we don't set any attrs. We expect the suid flag to have been picked up.
+/usr/local/bin/hello
+/usr/local/bin/hello2
+%defattr(-,root,root)
+%doc FAQ
+#%readme README
+#%license COPYING
+
+%changelog
+* Tue Jun 14 2016 Mark Wielaard <mjw@redhat.com>
+- Make hello (implicit) suid
+
+* Wed May 18 2016 Mark Wielaard <mjw@redhat.com>
+- Add hello2 for dwz testing support.
+
+* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com>
+- create.
diff --git a/tests/data/SPECS/hello2.spec b/tests/data/SPECS/hello2.spec
new file mode 100644
index 00000000..01777af5
--- /dev/null
+++ b/tests/data/SPECS/hello2.spec
@@ -0,0 +1,62 @@
+Summary: hello2 -- double hello, world rpm
+Name: hello2
+Version: 1.0
+Release: 1
+Group: Utilities
+License: GPL
+Distribution: RPM test suite.
+Vendor: Red Hat Software
+Packager: Red Hat Software <bugs@redhat.com>
+URL: http://www.redhat.com
+Source0: hello-1.0.tar.gz
+Patch0: hello-1.0-modernize.patch
+Excludearch: lsi
+Excludeos: cpm
+Provides: hi
+Conflicts: goodbye
+Obsoletes: howdy
+Prefix: /usr
+
+%description
+Simple rpm demonstration.
+
+%prep
+%setup -q -n hello-1.0
+%patch0 -p1 -b .modernize
+
+%build
+make CFLAGS="-g -O1"
+mv hello hello2
+make CFLAGS="-g -O2 -D_FORTIFY_SOURCE=2"
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/local/bin
+make DESTDIR=$RPM_BUILD_ROOT install
+cp hello2 $RPM_BUILD_ROOT/usr/local/bin/
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%pre
+
+%post
+
+%preun
+
+%postun
+
+%files
+%defattr(-,root,root)
+%doc FAQ
+#%readme README
+#%license COPYING
+%attr(0751,root,root) /usr/local/bin/hello
+%attr(0751,root,root) /usr/local/bin/hello2
+
+%changelog
+* Wed May 18 2016 Mark Wielaard <mjw@redhat.com>
+- Add hello2 for dwz testing support.
+
+* Tue Oct 20 1998 Jeff Johnson <jbj@redhat.com>
+- create.
diff --git a/tests/data/SPECS/prefixtest.spec b/tests/data/SPECS/prefixtest.spec
new file mode 100644
index 00000000..004e353f
--- /dev/null
+++ b/tests/data/SPECS/prefixtest.spec
@@ -0,0 +1,42 @@
+Name: prefixtest
+Version: 1.0
+Release: 1
+Summary: Testing file glob behavior
+Group: Testing
+License: GPL
+BuildArch: noarch
+RemovePathPostfixes: g:f
+
+%description
+%{summary}
+
+%define testdir /opt/%{name}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+mkdir -p $RPM_BUILD_ROOT/%{testdir}
+echo "foo" > $RPM_BUILD_ROOT/%{testdir}/weird%%name
+for f in bif baf zab zeb zib; do
+ echo "$f" > $RPM_BUILD_ROOT/%{testdir}/$f
+done
+for f in bing bang bong; do
+ mkdir -p $RPM_BUILD_ROOT/%{testdir}/$f
+done
+mkdir -p $RPM_BUILD_ROOT/%{testdir}/foo
+for f in one two three; do
+ echo "$f" > $RPM_BUILD_ROOT/%{testdir}/foo/$f
+done
+
+ln -s %{testdir}/zab $RPM_BUILD_ROOT/%{testdir}/linkgood
+ln -s %{testdir}/zub $RPM_BUILD_ROOT/%{testdir}/linkbad
+
+%files
+%defattr(-,root,root,-)
+%{testdir}/b??
+%{testdir}/weird?name
+%{testdir}/z*
+%{testdir}/l*
+%{testdir}/b*g/
+%dir %{testdir}/foo
+%{testdir}/foo/*
diff --git a/tests/data/SPECS/testdoc.spec b/tests/data/SPECS/testdoc.spec
new file mode 100644
index 00000000..7cdfb743
--- /dev/null
+++ b/tests/data/SPECS/testdoc.spec
@@ -0,0 +1,32 @@
+Summary: testdoc
+Name: testdoc
+Version: 1.0
+Release: 1
+Group: Utilities
+License: GPLv2+
+Distribution: RPM test suite.
+BuildArch: noarch
+
+%description
+Package for testing rpm install option "--excludedocs".
+
+%install
+mkdir -p %{buildroot}%{_datadir}/testdoc
+echo "nodoc" > %{buildroot}%{_datadir}/testdoc/nodoc
+
+mkdir -p %{buildroot}%{_docdir}/testdoc
+echo "doc1" > %{buildroot}%{_docdir}/testdoc/documentation1
+echo "doc2" > %{buildroot}%{_docdir}/testdoc/documentation2
+
+mkdir -p %{buildroot}%{_docdir}/testdoc/examples
+echo "example1" > %{buildroot}%{_docdir}/testdoc/examples/example1
+echo "example2" > %{buildroot}%{_docdir}/testdoc/examples/example2
+
+%files
+%{_datadir}/testdoc/nodoc
+%dir %{_docdir}/testdoc
+%doc %{_docdir}/testdoc/documentation1
+%doc %{_docdir}/testdoc/documentation2
+%dir %{_docdir}/testdoc/examples
+%doc %{_docdir}/testdoc/examples/example1
+%doc %{_docdir}/testdoc/examples/example2
diff --git a/tests/package.m4 b/tests/package.m4
index ca88f06f..1960009f 100644
--- a/tests/package.m4
+++ b/tests/package.m4
@@ -1,6 +1,6 @@
# Signature of the current package.
m4_define([AT_PACKAGE_NAME], [rpm])
m4_define([AT_PACKAGE_TARNAME], [rpm])
-m4_define([AT_PACKAGE_VERSION], [4.12.0.2])
-m4_define([AT_PACKAGE_STRING], [rpm 4.12.0.2])
+m4_define([AT_PACKAGE_VERSION], [4.13.0])
+m4_define([AT_PACKAGE_STRING], [rpm 4.13.0])
m4_define([AT_PACKAGE_BUGREPORT], [rpm-maint@lists.rpm.org])
diff --git a/tests/rpmbuild.at b/tests/rpmbuild.at
index 8da4d655..1531700e 100644
--- a/tests/rpmbuild.at
+++ b/tests/rpmbuild.at
@@ -188,6 +188,39 @@ lrwxrwxrwx /opt/globtest/linkgood
[])
AT_CLEANUP
+AT_SETUP([rpmbuild prefixpostfix])
+AT_KEYWORDS([build])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+rm -rf ${TOPDIR}
+
+runroot rpmbuild -bb --quiet \
+ /data/SPECS/prefixtest.spec
+runroot rpm -qp \
+ --qf "[[%{filemodes:perms} %{filenames}\n]]" \
+ /build/RPMS/noarch/prefixtest-1.0-1.noarch.rpm
+],
+[0],
+[-rw-r--r-- /opt/prefixtest/ba
+drwxr-xr-x /opt/prefixtest/ban
+-rw-r--r-- /opt/prefixtest/bi
+drwxr-xr-x /opt/prefixtest/bin
+drwxr-xr-x /opt/prefixtest/bon
+drwxr-xr-x /opt/prefixtest/foo
+-rw-r--r-- /opt/prefixtest/foo/one
+-rw-r--r-- /opt/prefixtest/foo/three
+-rw-r--r-- /opt/prefixtest/foo/two
+lrwxrwxrwx /opt/prefixtest/linkbad
+lrwxrwxrwx /opt/prefixtest/linkgood
+-rw-r--r-- /opt/prefixtest/weird%name
+-rw-r--r-- /opt/prefixtest/zab
+-rw-r--r-- /opt/prefixtest/zeb
+-rw-r--r-- /opt/prefixtest/zib
+],
+[])
+AT_CLEANUP
+
# ------------------------------
# Check if weak and reverse requires can be built
AT_SETUP([Weak and reverse requires])
@@ -271,3 +304,231 @@ runroot rpm2cpio \
[],
[])
AT_CLEANUP
+
+# ------------------------------
+# Check if rpmbuild creates the minisymtab section in the main hello binary
+AT_SETUP([rpmbuild debuginfo minisymtab])
+AT_KEYWORDS([build] [debuginfo])
+AT_CHECK([
+rm -rf ${TOPDIR}
+
+# Use macros.debug to generate a debuginfo package.
+export CFLAGS="-g"
+run rpmbuild --quiet \
+ --macros=${abs_top_builddir}/macros:${top_srcdir}/macros.debug \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+# Extract the main package and inspect the hello binary
+# It should contain .gnu_debugdata, but not the full .symtab
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu
+test -f ./usr/local/bin/hello || exit 1
+readelf -S ./usr/local/bin/hello |\
+ grep -q .gnu_debugdata; test $? == 0 || exit 1
+readelf -S ./usr/local/bin/hello \
+ | grep -q .symtab; test $? == 1 || exit 1
+
+# And the opposite for the debuginfo package
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \
+ | grep -q .gnu_debugdata; test $? == 1 || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \
+ | grep -q .symtab; test $? == 0 || exit 1
+],
+[0],
+[],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Check if rpmbuild doesn't create the minisymtab section if we keep symtab
+# Some package might want to use strip -g to keep the symbol table and only
+# but the debug symbols/info in the debuginfo package.
+AT_SETUP([rpmbuild debuginfo minisymtab strip -g])
+AT_KEYWORDS([build] [debuginfo])
+AT_CHECK([
+rm -rf ${TOPDIR}
+
+# Use macros.debug to generate a debuginfo package.
+export CFLAGS="-g"
+run rpmbuild --quiet \
+ --macros=${abs_top_builddir}/macros:${top_srcdir}/macros.debug \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ --define="_find_debuginfo_opts -g" \
+ --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+# Extract the main package and inspect the hello binary
+# It should contain .symtab (because of strip -g), so doesn't .gnu_debugdata.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu
+test -f ./usr/local/bin/hello || exit 1
+readelf -S ./usr/local/bin/hello \
+ | grep -q .gnu_debugdata; test $? == 1 || exit 1
+readelf -S ./usr/local/bin/hello \
+ | grep -q .symtab; test $? == 0 || exit 1
+
+# The debuginfo package should contain neither. The .symtab is NOBITS.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \
+ | grep -q .gnu_debugdata; test $? == 1 || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \
+ | grep .symtab | grep -q NOBITS; test $? == 0 || exit 1
+],
+[0],
+[],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Check if rpmbuild runs dwz and generates a multi file that with shared
+# debuginfo. This is simply the hello example with one binary build twice
+# so dwz has enough slightly similar debug data.
+AT_SETUP([rpmbuild debuginfo dwz])
+AT_KEYWORDS([build] [debuginfo])
+AT_CHECK([
+rm -rf ${TOPDIR}
+AS_MKDIR_P(${TOPDIR}/SOURCES)
+
+cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \
+ --macros=${abs_top_builddir}/macros:${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:${top_srcdir}/macros.debug \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ -ba "${abs_srcdir}"/data/SPECS/hello2.spec
+
+# The debuginfo package should contain a .debug file for each binary
+# and a dwz multi file that contains the shared debuginfo between them.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello.debug || exit 1
+test -f ./usr/lib/debug/usr/local/bin/hello2.debug || exit 1
+test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1
+
+# Make sure the main package binaries contain the correct build-ids
+# linking them to the debug packages.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \
+ | cpio -diu
+id1=$(file ./usr/local/bin/hello | sed 's/.*, BuildID[.*]=\(.*\),.*/\1/')
+id2=$(file ./usr/local/bin/hello2 | sed 's/.*, BuildID[.*]=\(.*\),.*/\1/')
+id1debug=$(file ./usr/lib/debug/usr/local/bin/hello.debug \
+ | sed 's/.*, BuildID[.*]=\(.*\),.*/\1/')
+id2debug=$(file ./usr/lib/debug/usr/local/bin/hello2.debug \
+ | sed 's/.*, BuildID[.*]=\(.*\),.*/\1/')
+idmulti=$(file ./usr/lib/debug/.dwz/hello2-1.0-1.* \
+ | sed 's/.*, BuildID[.*]=\(.*\),.*/\1/')
+
+test "$id1" = "$id1debug" || exit 1
+test "$id2" = "$id2debug" || exit 1
+
+# The build-id files should link to the .debug files.
+id1file="./usr/lib/debug/.build-id/${id1:0:2}/${id1:2}"
+canonid1file=$(readlink -f ${id1file})
+canonfile1=$(readlink -f ./usr/local/bin/hello)
+canonid1debug=$(readlink -f ${id1file}.debug)
+canondebug1=$(readlink -f ./usr/lib/debug/usr/local/bin/hello.debug)
+
+test "$canonid1file" = "$canonfile1" || exit 1
+test "$canonid1debug" = "$canondebug1" || exit 1
+
+id2file="./usr/lib/debug/.build-id/${id2:0:2}/${id2:2}"
+canonid2file=$(readlink -f ${id1file})
+canonfile2=$(readlink -f ./usr/local/bin/hello)
+canonid2debug=$(readlink -f ${id1file}.debug)
+canondebug2=$(readlink -f ./usr/lib/debug/usr/local/bin/hello.debug)
+
+test "$canonid2file" = "$canonfile2" || exit 1
+test "$canonid2debug" = "$canondebug2" || exit 1
+
+# Both .debug files should point to the dwz multi file.
+# It would be nice to also test that they contain the correct dwz build-id
+# but that is a bit hard to grep out of the section data.
+multiref1=$(readelf --string-dump=.gnu_debugaltlink ./usr/lib/debug/usr/local/bin/hello.debug | grep '[ 0]' | cut -c13-)
+multiref2=$(readelf --string-dump=.gnu_debugaltlink ./usr/lib/debug/usr/local/bin/hello2.debug | grep '[ 0]' | cut -c13-)
+
+test "$multiref1" = "$multiref2" || exit 1
+
+canonmultiref=$(readlink -f $(dirname $canondebug1)/$multiref1)
+canonmultifile=$(readlink -f ./usr/lib/debug/.dwz/hello2-1.0-1.*)
+
+test "$canonmultiref" = "$canonmultifile" || exit 1
+],
+[0],
+[],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Check that old style gnu_debuglink CRC checksums are correct even after
+# using dwz to compress the debuginfo files.
+AT_SETUP([rpmbuild debuginfo dwz gnu_debuglink crc])
+AT_KEYWORDS([build] [debuginfo])
+AT_CHECK([
+rm -rf ${TOPDIR}
+AS_MKDIR_P(${TOPDIR}/SOURCES)
+
+# Build a package that
+cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \
+ --macros=${abs_top_builddir}/macros:${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:${top_srcdir}/macros.debug \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ -ba "${abs_srcdir}"/data/SPECS/hello2.spec
+
+# Unpack the main and debuginfo rpms so we can check binaries and .debug files.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \
+ | cpio -diu
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \
+ | cpio -diu
+
+# Check that dwz has ran and a multi file has been produced
+test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1
+
+# Run sepdbugcrcfix on the binaries, both should have correct CRC already.
+${abs_top_builddir}/sepdebugcrcfix ./usr/lib/debug \
+ ./usr/local/bin/hello ./usr/local/bin/hello2 | grep CRC32 | cut -f2 -d:
+],
+[0],
+[ Updated 0 CRC32s, 2 CRC32s did match.
+],
+[ignore])
+AT_CLEANUP
+
+# ------------------------------
+# Check that an implicit suid binary get included with the suid bit set.
+# We explicitly build with all debug.macros to test those helpers.
+AT_SETUP([rpmbuild implicit suid binary])
+AT_KEYWORDS([build] [debuginfo] [dwz] [suid])
+AT_CHECK([
+rm -rf ${TOPDIR}
+AS_MKDIR_P(${TOPDIR}/SOURCES)
+
+# Build a package that has some debuginfo
+cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ --macros=${abs_top_builddir}/macros:${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:${top_srcdir}/macros.debug \
+ -ba "${abs_srcdir}"/data/SPECS/hello2-suid.spec
+
+# Unpack rpm so we can check the included binaries.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \
+ | cpio -diu --quiet
+
+# List all binaries with suid bit set (should be one, hello).
+echo "suid:"
+find usr -executable -type f -perm /4000
+# List all binaries without suid bit set (should also be one, hello2).
+echo "no-suid:"
+find usr -executable -type f \! -perm /4000
+],
+[0],
+[suid:
+usr/local/bin/hello
+no-suid:
+usr/local/bin/hello2
+],
+[ignore])
+AT_CLEANUP
diff --git a/tests/rpmgeneral.at b/tests/rpmgeneral.at
index d6bb0825..22c483e3 100644
--- a/tests/rpmgeneral.at
+++ b/tests/rpmgeneral.at
@@ -78,6 +78,7 @@ DISTTAG
DISTURL
DSAHEADER
E
+ENCODING
ENHANCEFLAGS
ENHANCENAME
ENHANCENEVRS
@@ -112,8 +113,20 @@ FILENLINKS
FILEPROVIDE
FILERDEVS
FILEREQUIRE
+FILESIGNATURELENGTH
+FILESIGNATURES
FILESIZES
FILESTATES
+FILETRIGGERCONDS
+FILETRIGGERFLAGS
+FILETRIGGERINDEX
+FILETRIGGERNAME
+FILETRIGGERPRIORITIES
+FILETRIGGERSCRIPTFLAGS
+FILETRIGGERSCRIPTPROG
+FILETRIGGERSCRIPTS
+FILETRIGGERTYPE
+FILETRIGGERVERSION
FILEUSERNAME
FILEVERIFYFLAGS
FSCONTEXTS
@@ -247,6 +260,16 @@ SUPPLEMENTNAME
SUPPLEMENTNEVRS
SUPPLEMENTS
SUPPLEMENTVERSION
+TRANSFILETRIGGERCONDS
+TRANSFILETRIGGERFLAGS
+TRANSFILETRIGGERINDEX
+TRANSFILETRIGGERNAME
+TRANSFILETRIGGERPRIORITIES
+TRANSFILETRIGGERSCRIPTFLAGS
+TRANSFILETRIGGERSCRIPTPROG
+TRANSFILETRIGGERSCRIPTS
+TRANSFILETRIGGERTYPE
+TRANSFILETRIGGERVERSION
TRIGGERCONDS
TRIGGERFLAGS
TRIGGERINDEX
diff --git a/tests/rpmi.at b/tests/rpmi.at
index 5776ad1d..2fd7d5b5 100644
--- a/tests/rpmi.at
+++ b/tests/rpmi.at
@@ -320,3 +320,37 @@ runroot rpm -U --test --ignoreos --badreloc --relocate /usr=/opt \
[],
[])
AT_CLEANUP
+
+AT_SETUP([rpm -i with/without --excludedocs])
+AT_KEYWORDS([install excludedocs])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+runroot rpmbuild --quiet -bb /data/SPECS/testdoc.spec
+
+runroot rpm -i --excludedocs \
+ /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm
+
+RPM_DOCDIR=$(runroot rpm --eval '%_defaultdocdir')
+RPM_DATADIR=$(runroot rpm --eval '%_datadir')
+
+test ! -e ${RPMTEST}${RPM_DOCDIR}/testdoc || exit 1
+test -e ${RPMTEST}${RPM_DATADIR}/testdoc/nodoc || exit 1
+
+runroot rpm -e testdoc
+
+runroot rpm -i \
+ /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm
+test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/documentation1 || exit 1
+test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/documentation2 || exit 1
+test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/examples/example1 || exit 1
+test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/examples/example2 || exit 1
+test -e ${RPMTEST}${RPM_DATADIR}/testdoc/nodoc || exit 1
+
+runroot rpm -e testdoc
+],
+[0],
+[],
+[])
+AT_CLEANUP
diff --git a/tests/rpmpython.at b/tests/rpmpython.at
index 727835cf..949673bd 100644
--- a/tests/rpmpython.at
+++ b/tests/rpmpython.at
@@ -260,7 +260,7 @@ for h in ts.dbMatch('basenames', '/usr/share/doc/hello-2.0/FAQ'):
[])
RPMPY_CHECK([
ts = rpm.ts()
-for di in ts.dbIndex('obsoletes'):
+for di in sorted(ts.dbIndex('obsoletes')):
myprint(di)
],
[howdy
@@ -269,7 +269,7 @@ for di in ts.dbIndex('obsoletes'):
RPMPY_CHECK([
ts = rpm.ts()
-for di in ts.dbIndex('provides'):
+for di in sorted(ts.dbIndex('provides')):
myprint(di)
],
[foo
diff --git a/tests/rpmscript.at b/tests/rpmscript.at
index 319828c0..1ac7fcda 100644
--- a/tests/rpmscript.at
+++ b/tests/rpmscript.at
@@ -98,3 +98,173 @@ triggers-1.0-2 TRIGGERPOSTUN 1 0
],
[])
AT_CLEANUP
+
+AT_SETUP([basic file trigger scripts])
+AT_KEYWORDS([file trigger script])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+rm -rf "${TOPDIR}"
+
+runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec
+runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec
+runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec
+runroot rpmbuild --quiet -bb /data/SPECS/filetriggers.spec
+
+runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm
+runroot rpm -U /build/RPMS/noarch/filetriggers-1.0-1.noarch.rpm
+echo INSTALLATION
+runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \
+/build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm
+echo ERASE
+runroot rpm -e hello-script hlinktest
+],
+[0],
+[INSTALLATION
+filetriggerin(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerin(/foo*)<lua>:
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerin(/usr/bin*):
+/usr/bin/hello
+
+filetriggerin(/usr/bin*)<lua>:
+/usr/bin/hello
+
+transfiletriggerin(/usr/bin*):
+/usr/bin/hello
+
+transfiletriggerin(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+ERASE
+transfiletriggerun(/usr/bin*):
+/usr/bin/hello
+
+transfiletriggerun(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerun(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerpostun(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerun(/usr/bin*):
+/usr/bin/hello
+
+filetriggerpostun(/usr/bin*):
+/usr/bin/hello
+
+transfiletriggerpostun(/usr/bin*):
+
+transfiletriggerpostun(/foo*):
+
+],
+[])
+AT_CLEANUP
+
+#
+AT_SETUP([Proper reset of nice/ionice levels on scripts - only works as root!])
+AT_KEYWORDS([verify nice])
+AT_CHECK([
+AT_XFAIL_IF([test `whoami` != root ])
+RPMDB_CLEAR
+RPMDB_INIT
+rm -rf "${TOPDIR}"
+
+runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec
+runroot rpmbuild --quiet -bb --define "rel 1" /data/SPECS/scripts-nice-ionice.spec
+runroot rpmbuild --quiet -bb --define "rel 2" /data/SPECS/scripts-nice-ionice.spec
+
+runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -Vvp /build/RPMS/noarch/scripts-nice-ionice-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -U /build/RPMS/noarch/scripts-nice-ionice-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -U /build/RPMS/noarch/scripts-nice-ionice-1.0-2.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -Vv scripts-nice-ionice
+runroot nice -n 10 ionice -c3 rpm -e scripts-nice-ionice
+],
+[0],
+[scripts-nice-ionice-1.0-1 VERIFY 0
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 PRETRANS 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 PRE 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 POST 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 POSTTRANS 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 PRETRANS 2
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 PRE 2
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 POST 2
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 PREUN 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 POSTUN 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 POSTTRANS 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 VERIFY 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 PREUN 0
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 POSTUN 0
+Nice value is 0
+IOnice value is none: prio 4
+],
+[])
+AT_CLEANUP
diff --git a/tests/rpmtests b/tests/rpmtests
index f1b818bc..1ef373a4 100755
--- a/tests/rpmtests
+++ b/tests/rpmtests
@@ -623,257 +623,267 @@ at_help_all="1;rpmgeneral.at:22;rpm --version;basic;
29;rpmverify.at:7;dependency problems;verify;
30;rpmverify.at:32;files with no problems;verify;
31;rpmverify.at:48;files with no problems in verbose mode;verify;
-32;rpmverify.at:67;verify from db, with problems present;verify;
-33;rpmverify.at:89;verify from package, with problems present;verify;
-34;rpmverify.at:112;verifyscript failure;verify;
-35;rpmverify.at:129;verifyscript success;verify;
-36;rpmverify.at:148;shared file timestamp behavior;verify;
-37;rpmdb.at:23;rpm --initdb;rpmdb;
-38;rpmdb.at:36;rpm -qa;rpmdb query;
-39;rpmdb.at:49;rpm -q foo;rpmdb query;
-40;rpmdb.at:69;rpm -q foo-;rpmdb query;
-41;rpmdb.at:90;rpm -i *.noarch.rpm;rpmdb install;
-42;rpmdb.at:106;rpm -U --replacepkgs 1;rpmdb install;
-43;rpmdb.at:128;rpm -U --replacepkgs 2;rpmdb install;
-44;rpmdb.at:150;rpm --reinstall 1;rpmdb install;
-45;rpmdb.at:173;rpm -i --relocate=.. *.i386.rpm;rpmdb install;
-46;rpmdb.at:192;rpm -i --relocate=.. *.ppc64.rpm;rpmdb install;
-47;rpmdb.at:208;rpmdb --rebuilddb;rpmdb;
-48;rpmdb.at:234;rpm -U and verify status;install rpmdb query;
-49;rpmdb.at:257;rpm -U with _install_lang and verify status;install rpmdb query;
-50;rpmdb.at:283;rpm -U and verify files on disk;install rpmdb;
-51;rpmdb.at:304;rpm -e and verify files removed;install rpmdb;
-52;rpmi.at:23;rpm -U *.src.rpm;install;
-53;rpmi.at:38;rpm -i *.src.rpm;install;
-54;rpmi.at:54;rpm -i <nonexistent file>;install;
-55;rpmi.at:66;rpm -i --nomanifest <garbage text file>;install;
-56;rpmi.at:83;rpm -i <garbage text file;install;
-57;rpmi.at:102;rpm -U upgrade to newer;;
-58;rpmi.at:125;rpm -U upgrade to older;;
-59;rpmi.at:140;rpm -U --oldpackage downgrade;;
-60;rpmi.at:156;rpm -U two versions of same package 1;;
-61;rpmi.at:176;rpm -U two versions of same package 2;;
-62;rpmi.at:196;rpm -U obsoleted package 1;;
-63;rpmi.at:225;rpm -U obsoleted package 2;;
-64;rpmi.at:254;rpm -i two versions of same package;;
-65;rpmi.at:273;rpm -i identical versions of same package;;
-66;rpmi.at:291;rpm -U with invalid --relocate;install relocate;
-67;rpmi.at:308;rpm -U --badreloc with invalid --relocate;install relocate;
-68;rpmbuild.at:23;rpmbuild -ba *.spec;build;
-69;rpmbuild.at:41;rpmbuild --rebuild;build;
-70;rpmbuild.at:56;rpmbuild -tb <tar with bad spec>;build;
-71;rpmbuild.at:73;rpmbuild -tb;build;
-72;rpmbuild.at:88;rpmbuild %attr and %defattr;build;
-73;rpmbuild.at:128;rpmbuild hardlink;build;
-74;rpmbuild.at:159;rpmbuild glob;build;
-75;rpmbuild.at:193;Weak and reverse requires;build;
-76;rpmbuild.at:221;Build requires;build;
-77;rpmbuild.at:239;rpmspec query 1;build;
-78;rpmbuild.at:259;rpmbuild archive sanity;build;
-79;rpmscript.at:7;basic scripts and arguments;verify;
-80;rpmscript.at:44;basic trigger scripts and arguments;trigger script;
-81;rpmvercmp.at:13;rpmvercmp(1.0, 1.0) = 0;vercmp;
-82;rpmvercmp.at:14;rpmvercmp(1.0, 2.0) = -1;vercmp;
-83;rpmvercmp.at:15;rpmvercmp(2.0, 1.0) = 1;vercmp;
-84;rpmvercmp.at:17;rpmvercmp(2.0.1, 2.0.1) = 0;vercmp;
-85;rpmvercmp.at:18;rpmvercmp(2.0, 2.0.1) = -1;vercmp;
-86;rpmvercmp.at:19;rpmvercmp(2.0.1, 2.0) = 1;vercmp;
-87;rpmvercmp.at:21;rpmvercmp(2.0.1a, 2.0.1a) = 0;vercmp;
-88;rpmvercmp.at:22;rpmvercmp(2.0.1a, 2.0.1) = 1;vercmp;
-89;rpmvercmp.at:23;rpmvercmp(2.0.1, 2.0.1a) = -1;vercmp;
-90;rpmvercmp.at:25;rpmvercmp(5.5p1, 5.5p1) = 0;vercmp;
-91;rpmvercmp.at:26;rpmvercmp(5.5p1, 5.5p2) = -1;vercmp;
-92;rpmvercmp.at:27;rpmvercmp(5.5p2, 5.5p1) = 1;vercmp;
-93;rpmvercmp.at:29;rpmvercmp(5.5p10, 5.5p10) = 0;vercmp;
-94;rpmvercmp.at:30;rpmvercmp(5.5p1, 5.5p10) = -1;vercmp;
-95;rpmvercmp.at:31;rpmvercmp(5.5p10, 5.5p1) = 1;vercmp;
-96;rpmvercmp.at:33;rpmvercmp(10xyz, 10.1xyz) = -1;vercmp;
-97;rpmvercmp.at:34;rpmvercmp(10.1xyz, 10xyz) = 1;vercmp;
-98;rpmvercmp.at:36;rpmvercmp(xyz10, xyz10) = 0;vercmp;
-99;rpmvercmp.at:37;rpmvercmp(xyz10, xyz10.1) = -1;vercmp;
-100;rpmvercmp.at:38;rpmvercmp(xyz10.1, xyz10) = 1;vercmp;
-101;rpmvercmp.at:40;rpmvercmp(xyz.4, xyz.4) = 0;vercmp;
-102;rpmvercmp.at:41;rpmvercmp(xyz.4, 8) = -1;vercmp;
-103;rpmvercmp.at:42;rpmvercmp(8, xyz.4) = 1;vercmp;
-104;rpmvercmp.at:43;rpmvercmp(xyz.4, 2) = -1;vercmp;
-105;rpmvercmp.at:44;rpmvercmp(2, xyz.4) = 1;vercmp;
-106;rpmvercmp.at:46;rpmvercmp(5.5p2, 5.6p1) = -1;vercmp;
-107;rpmvercmp.at:47;rpmvercmp(5.6p1, 5.5p2) = 1;vercmp;
-108;rpmvercmp.at:49;rpmvercmp(5.6p1, 6.5p1) = -1;vercmp;
-109;rpmvercmp.at:50;rpmvercmp(6.5p1, 5.6p1) = 1;vercmp;
-110;rpmvercmp.at:52;rpmvercmp(6.0.rc1, 6.0) = 1;vercmp;
-111;rpmvercmp.at:53;rpmvercmp(6.0, 6.0.rc1) = -1;vercmp;
-112;rpmvercmp.at:55;rpmvercmp(10b2, 10a1) = 1;vercmp;
-113;rpmvercmp.at:56;rpmvercmp(10a2, 10b2) = -1;vercmp;
-114;rpmvercmp.at:58;rpmvercmp(1.0aa, 1.0aa) = 0;vercmp;
-115;rpmvercmp.at:59;rpmvercmp(1.0a, 1.0aa) = -1;vercmp;
-116;rpmvercmp.at:60;rpmvercmp(1.0aa, 1.0a) = 1;vercmp;
-117;rpmvercmp.at:62;rpmvercmp(10.0001, 10.0001) = 0;vercmp;
-118;rpmvercmp.at:63;rpmvercmp(10.0001, 10.1) = 0;vercmp;
-119;rpmvercmp.at:64;rpmvercmp(10.1, 10.0001) = 0;vercmp;
-120;rpmvercmp.at:65;rpmvercmp(10.0001, 10.0039) = -1;vercmp;
-121;rpmvercmp.at:66;rpmvercmp(10.0039, 10.0001) = 1;vercmp;
-122;rpmvercmp.at:68;rpmvercmp(4.999.9, 5.0) = -1;vercmp;
-123;rpmvercmp.at:69;rpmvercmp(5.0, 4.999.9) = 1;vercmp;
-124;rpmvercmp.at:71;rpmvercmp(20101121, 20101121) = 0;vercmp;
-125;rpmvercmp.at:72;rpmvercmp(20101121, 20101122) = -1;vercmp;
-126;rpmvercmp.at:73;rpmvercmp(20101122, 20101121) = 1;vercmp;
-127;rpmvercmp.at:75;rpmvercmp(2_0, 2_0) = 0;vercmp;
-128;rpmvercmp.at:76;rpmvercmp(2.0, 2_0) = 0;vercmp;
-129;rpmvercmp.at:77;rpmvercmp(2_0, 2.0) = 0;vercmp;
-130;rpmvercmp.at:80;rpmvercmp(a, a) = 0;vercmp;
-131;rpmvercmp.at:81;rpmvercmp(a+, a+) = 0;vercmp;
-132;rpmvercmp.at:82;rpmvercmp(a+, a_) = 0;vercmp;
-133;rpmvercmp.at:83;rpmvercmp(a_, a+) = 0;vercmp;
-134;rpmvercmp.at:84;rpmvercmp(+a, +a) = 0;vercmp;
-135;rpmvercmp.at:85;rpmvercmp(+a, _a) = 0;vercmp;
-136;rpmvercmp.at:86;rpmvercmp(_a, +a) = 0;vercmp;
-137;rpmvercmp.at:87;rpmvercmp(+_, +_) = 0;vercmp;
-138;rpmvercmp.at:88;rpmvercmp(_+, +_) = 0;vercmp;
-139;rpmvercmp.at:89;rpmvercmp(_+, _+) = 0;vercmp;
-140;rpmvercmp.at:90;rpmvercmp(+, _) = 0;vercmp;
-141;rpmvercmp.at:91;rpmvercmp(_, +) = 0;vercmp;
-142;rpmvercmp.at:94;rpmvercmp(1.0~rc1, 1.0~rc1) = 0;vercmp;
-143;rpmvercmp.at:95;rpmvercmp(1.0~rc1, 1.0) = -1;vercmp;
-144;rpmvercmp.at:96;rpmvercmp(1.0, 1.0~rc1) = 1;vercmp;
-145;rpmvercmp.at:97;rpmvercmp(1.0~rc1, 1.0~rc2) = -1;vercmp;
-146;rpmvercmp.at:98;rpmvercmp(1.0~rc2, 1.0~rc1) = 1;vercmp;
-147;rpmvercmp.at:99;rpmvercmp(1.0~rc1~git123, 1.0~rc1~git123) = 0;vercmp;
-148;rpmvercmp.at:100;rpmvercmp(1.0~rc1~git123, 1.0~rc1) = -1;vercmp;
-149;rpmvercmp.at:101;rpmvercmp(1.0~rc1, 1.0~rc1~git123) = 1;vercmp;
-150;rpmdeps.at:7;missing dependency;install;
-151;rpmdeps.at:30;cross-depending packages;install;
-152;rpmdeps.at:56;unsatisfied versioned require;install;
-153;rpmdeps.at:84;satisfied versioned require;install;
-154;rpmdeps.at:110;versioned conflict in transaction;install;
-155;rpmdeps.at:137;versioned conflict in database;install;
-156;rpmdeps.at:163;install and verify self-conflicting package;install;
-157;rpmdeps.at:185;explicit file conflicts;install;
-158;rpmdeps.at:224;erase to break dependencies;install;
-159;rpmdeps.at:252;erase to break colored file dependency;install;
-160;rpmdeps.at:281;erase on wrong-colored file dependency;install;
-161;rpmconflict.at:7;package with file conflict;install;
-162;rpmconflict.at:31;two packages with a conflicting file;install;
-163;rpmconflict.at:48;package with shareable file;install;
-164;rpmconflict.at:72;two packages with shareable file;install;
-165;rpmconflict.at:89;non-conflicting identical basenames;install;
-166;rpmconflict.at:107;conflicting identical basenames;install;
-167;rpmconflict.at:127;multilib elf conflict, prefer 64bit 1;install;
-168;rpmconflict.at:149;multilib elf conflict, prefer 64bit 2;install;
-169;rpmconflict.at:176;multilib elf conflict, prefer 64bit 3;install;
-170;rpmconflict.at:203;multilib elf conflict, prefer 32bit 1;install;
-171;rpmconflict.at:225;multilib elf conflict, prefer 32bit 2;install;
-172;rpmconflict.at:252;multilib elf conflict, prefer 32bit 3;install;
-173;rpmconflict.at:279;multilib elf vs non-elf file conflict 1;install;
-174;rpmconflict.at:300;multilib elf vs non-elf file conflict 2;install;
-175;rpmconflict.at:325;multilib elf vs non-elf file conflict 3;install;
-176;rpmconflict.at:351;replacing directory with symlink;install;
-177;rpmconflict.at:375;replacing symlink with directory;install;
-178;rpmconflict.at:400;real file with shared ghost;install;
-179;rpmreplace.at:4;upgrade to/from regular file;install;
-180;rpmreplace.at:40;upgrade regular file to/from broken link;install;
-181;rpmreplace.at:76;upgrade regular file to/from file link;install;
-182;rpmreplace.at:112;upgrade broken link to broken link;install;
-183;rpmreplace.at:145;upgrade file link to file link;install;
-184;rpmreplace.at:178;upgrade directory link to directory link;install;
-185;rpmreplace.at:211;upgrade regular file to directory;install;
-186;rpmreplace.at:242;upgrade broken link to directory;install;
-187;rpmreplace.at:273;upgrade file link to directory;install;
-188;rpmreplace.at:304;upgrade directory link to directory;install;
-189;rpmreplace.at:335;upgrade empty directory to empty directory;install;
-190;rpmreplace.at:363;upgrade empty directory to regular file;install;
-191;rpmreplace.at:392;upgrade locally symlinked directory;install;
-192;rpmreplace.at:424;upgrade empty directory to broken link;install;
-193;rpmreplace.at:453;upgrade empty directory to file link;install;
-194;rpmreplace.at:482;upgrade removed empty directory to file link;install;
-195;rpmreplace.at:512;upgrade replaced empty directory to file link;install;
-196;rpmreplace.at:542;upgrade empty directory to file link with pretrans;install;
-197;rpmconfig.at:6;install config on existiting file;install;
-198;rpmconfig.at:35;install config(noreplace) on existiting file;install;
-199;rpmconfig.at:64;install config on existiting identical file;install;
-200;rpmconfig.at:91;erase unchanged config;install;
-201;rpmconfig.at:117;erase changed config;install;
-202;rpmconfig.at:147;erase changed config(noreplace);install;
-203;rpmconfig.at:179;upgrade unchanged config;install;
-204;rpmconfig.at:209;upgrade modified config;install;
-205;rpmconfig.at:242;upgrade changing config;install;
-206;rpmconfig.at:272;upgrade changing, modified config 1;install;
-207;rpmconfig.at:308;upgrade changing, modified config 2;install;
-208;rpmconfig.at:343;upgrade unchanged config(noreplace);install;
-209;rpmconfig.at:375;upgrade modified config(noreplace);install;
-210;rpmconfig.at:409;upgrade changing config(noreplace);install;
-211;rpmconfig.at:440;upgrade changing, modified config(noreplace) 1;install;
-212;rpmconfig.at:477;upgrade changing, modified config(noreplace) 2;install;
-213;rpmconfig.at:512;upgrade unchanged shared config;install;
-214;rpmconfig.at:550;upgrade modified shared config;install;
-215;rpmconfig.at:590;upgrade changing shared config;install;
-216;rpmconfig.at:627;upgrade changing, modified shared config 1;install;
-217;rpmconfig.at:670;upgrade changing, modified shared config 2;install;
-218;rpmconfig.at:711;upgrade changing, modified shared config(noreplace) 1;install;
-219;rpmconfig.at:755;upgrade changing, modified shared config(noreplace) 2;install;
-220;rpmconfig.at:796;install/upgrade/erase ghost config;install;
-221;rpmconfig2.at:6;install config on existiting symlink;install;
-222;rpmconfig2.at:36;install config on existiting identical link;install;
-223;rpmconfig2.at:66;erase unchanged config link;install;
-224;rpmconfig2.at:93;erase changed config link;install;
-225;rpmconfig2.at:124;upgrade unchanged config link;install;
-226;rpmconfig2.at:156;upgrade modified config link;install;
-227;rpmconfig2.at:190;upgrade changing config link;install;
-228;rpmconfig2.at:221;upgrade changing, modified config link 1;install;
-229;rpmconfig2.at:258;upgrade changing, modified config link 2;install;
-230;rpmconfig2.at:294;upgrade unchanged config(noreplace) link;install;
-231;rpmconfig2.at:327;upgrade modified config(noreplace) link;install;
-232;rpmconfig2.at:362;upgrade changing config(noreplace) link;install;
-233;rpmconfig2.at:394;upgrade changing, modified config(noreplace) link 1;install;
-234;rpmconfig2.at:432;upgrade changing, modified config(noreplace) link 2;install;
-235;rpmconfig2.at:469;upgrade unchanged shared config link;install;
-236;rpmconfig2.at:508;upgrade modified shared config link;install;
-237;rpmconfig2.at:549;upgrade changing shared config link;install;
-238;rpmconfig2.at:587;upgrade changing, modified shared config link 1;install;
-239;rpmconfig2.at:631;upgrade changing, modified shared config link 2;install;
-240;rpmconfig2.at:673;upgrade changing, modified shared config(noreplace) link 1;install;
-241;rpmconfig2.at:718;upgrade changing, modified shared config(noreplace) link 2;install;
-242;rpmconfig3.at:6;upgrade config to/from non-config;install;
-243;rpmconfig3.at:44;upgrade modified config to/from non-config 1;install;
-244;rpmconfig3.at:88;upgrade modified config to/from non-config 2;install;
-245;rpmconfig3.at:129;upgrade config to/from config link;install;
-246;rpmconfig3.at:166;upgrade modified config to config link;install;
-247;rpmconfig3.at:206;upgrade modified config link to config;install;
-248;rpmconfig3.at:246;upgrade config to directory;install;
-249;rpmconfig3.at:278;upgrade modified config to directory;install;
-250;rpmmacro.at:6;simple rpm --eval;macros;
-251;rpmmacro.at:16;simple true conditional rpm --eval;macros;
-252;rpmmacro.at:26;simple false conditional rpm --eval;macros;
-253;rpmmacro.at:36;nested macro in name;macros;
-254;rpmmacro.at:46;parametrized macro 1;macros;
-255;rpmmacro.at:82;uncompress macro;macros;
-256;rpmmacro.at:94;basename macro;macros;
-257;rpmmacro.at:105;suffix macro;macros;
-258;rpmmacro.at:116;url2path macro;macros;
-259;rpmmacro.at:127;shell expansion;macros;
-260;rpmmacro.at:138;simple lua --eval;macros lua;
-261;rpmmacro.at:148;lua rpm extensions;macros lua;
-262;rpmmacro.at:158;lua posix extensions;macros lua;
-263;rpmmacro.at:169;lua script exit behavior;macros lua;
-264;rpmpython.at:6;module import;python;
-265;rpmpython.at:12;macro manipulation;python;
-266;rpmpython.at:35;basic rpmio;python;
-267;rpmpython.at:70;spec parse;python;
-268;rpmpython.at:85;basic header manipulation;python;
-269;rpmpython.at:110;invalid header data;python;
-270;rpmpython.at:129;reading a package file;python;
-271;rpmpython.at:137;add package to transaction;python;
-272;rpmpython.at:149;add bogus package to transaction 1;python;
-273;rpmpython.at:163;add bogus package to transaction 2;python;
-274;rpmpython.at:184;database iterators;python rpmdb;
-275;rpmpython.at:283;dependency sets 1;python;
-276;rpmpython.at:300;dependency sets 2;python;
-277;rpmpython.at:310;file info sets 1;python;
-278;rpmpython.at:327;string pool 1;python;
-279;rpmpython.at:342;string pool 2;python;
-280;rpmpython.at:360;archive 1;python;
-281;rpmpython.at:380;header unload;python;
-282;rpmdepmatch.at:4;provide - require pairs;python;
+32;rpmverify.at:67;directory replaced with a directory symlink;verify;
+33;rpmverify.at:89;verify from db, with problems present;verify;
+34;rpmverify.at:111;verify from package, with problems present;verify;
+35;rpmverify.at:134;verifyscript failure;verify;
+36;rpmverify.at:151;verifyscript success;verify;
+37;rpmverify.at:170;shared file timestamp behavior;verify;
+38;rpmdb.at:23;rpm --initdb;rpmdb;
+39;rpmdb.at:36;rpm -qa;rpmdb query;
+40;rpmdb.at:49;rpm -q foo;rpmdb query;
+41;rpmdb.at:69;rpm -q foo-;rpmdb query;
+42;rpmdb.at:90;rpm -i *.noarch.rpm;rpmdb install;
+43;rpmdb.at:106;rpm -U --replacepkgs 1;rpmdb install;
+44;rpmdb.at:128;rpm -U --replacepkgs 2;rpmdb install;
+45;rpmdb.at:150;rpm --reinstall 1;rpmdb install;
+46;rpmdb.at:173;rpm -i --relocate=.. *.i386.rpm;rpmdb install;
+47;rpmdb.at:192;rpm -i --relocate=.. *.ppc64.rpm;rpmdb install;
+48;rpmdb.at:208;rpmdb --rebuilddb;rpmdb;
+49;rpmdb.at:234;rpm -U and verify status;install rpmdb query;
+50;rpmdb.at:257;rpm -U with _install_lang and verify status;install rpmdb query;
+51;rpmdb.at:283;rpm -U and verify files on disk;install rpmdb;
+52;rpmdb.at:304;rpm -e and verify files removed;install rpmdb;
+53;rpmi.at:23;rpm -U *.src.rpm;install;
+54;rpmi.at:38;rpm -i *.src.rpm;install;
+55;rpmi.at:54;rpm -i <nonexistent file>;install;
+56;rpmi.at:66;rpm -i --nomanifest <garbage text file>;install;
+57;rpmi.at:83;rpm -i <garbage text file;install;
+58;rpmi.at:102;rpm -U upgrade to newer;;
+59;rpmi.at:125;rpm -U upgrade to older;;
+60;rpmi.at:140;rpm -U --oldpackage downgrade;;
+61;rpmi.at:156;rpm -U two versions of same package 1;;
+62;rpmi.at:176;rpm -U two versions of same package 2;;
+63;rpmi.at:196;rpm -U obsoleted package 1;;
+64;rpmi.at:225;rpm -U obsoleted package 2;;
+65;rpmi.at:254;rpm -i two versions of same package;;
+66;rpmi.at:273;rpm -i identical versions of same package;;
+67;rpmi.at:291;rpm -U with invalid --relocate;install relocate;
+68;rpmi.at:308;rpm -U --badreloc with invalid --relocate;install relocate;
+69;rpmi.at:324;rpm -i with/without --excludedocs;install excludedocs;
+70;rpmbuild.at:23;rpmbuild -ba *.spec;build;
+71;rpmbuild.at:41;rpmbuild --rebuild;build;
+72;rpmbuild.at:56;rpmbuild -tb <tar with bad spec>;build;
+73;rpmbuild.at:73;rpmbuild -tb;build;
+74;rpmbuild.at:88;rpmbuild %attr and %defattr;build;
+75;rpmbuild.at:128;rpmbuild hardlink;build;
+76;rpmbuild.at:159;rpmbuild glob;build;
+77;rpmbuild.at:191;rpmbuild prefixpostfix;build;
+78;rpmbuild.at:226;Weak and reverse requires;build;
+79;rpmbuild.at:254;Build requires;build;
+80;rpmbuild.at:272;rpmspec query 1;build;
+81;rpmbuild.at:292;rpmbuild archive sanity;build;
+82;rpmbuild.at:310;rpmbuild debuginfo minisymtab;build debuginfo;
+83;rpmbuild.at:349;rpmbuild debuginfo minisymtab strip -g;build debuginfo;
+84;rpmbuild.at:389;rpmbuild debuginfo dwz;build debuginfo;
+85;rpmbuild.at:466;rpmbuild debuginfo dwz gnu_debuglink crc;build debuginfo;
+86;rpmbuild.at:502;rpmbuild implicit suid binary;build debuginfo dwz suid;
+87;rpmscript.at:7;basic scripts and arguments;verify;
+88;rpmscript.at:44;basic trigger scripts and arguments;trigger script;
+89;rpmscript.at:102;basic file trigger scripts;file trigger script;
+90;rpmscript.at:206;Proper reset of nice/ionice levels on scripts - only works as root!;verify nice;
+91;rpmvercmp.at:13;rpmvercmp(1.0, 1.0) = 0;vercmp;
+92;rpmvercmp.at:14;rpmvercmp(1.0, 2.0) = -1;vercmp;
+93;rpmvercmp.at:15;rpmvercmp(2.0, 1.0) = 1;vercmp;
+94;rpmvercmp.at:17;rpmvercmp(2.0.1, 2.0.1) = 0;vercmp;
+95;rpmvercmp.at:18;rpmvercmp(2.0, 2.0.1) = -1;vercmp;
+96;rpmvercmp.at:19;rpmvercmp(2.0.1, 2.0) = 1;vercmp;
+97;rpmvercmp.at:21;rpmvercmp(2.0.1a, 2.0.1a) = 0;vercmp;
+98;rpmvercmp.at:22;rpmvercmp(2.0.1a, 2.0.1) = 1;vercmp;
+99;rpmvercmp.at:23;rpmvercmp(2.0.1, 2.0.1a) = -1;vercmp;
+100;rpmvercmp.at:25;rpmvercmp(5.5p1, 5.5p1) = 0;vercmp;
+101;rpmvercmp.at:26;rpmvercmp(5.5p1, 5.5p2) = -1;vercmp;
+102;rpmvercmp.at:27;rpmvercmp(5.5p2, 5.5p1) = 1;vercmp;
+103;rpmvercmp.at:29;rpmvercmp(5.5p10, 5.5p10) = 0;vercmp;
+104;rpmvercmp.at:30;rpmvercmp(5.5p1, 5.5p10) = -1;vercmp;
+105;rpmvercmp.at:31;rpmvercmp(5.5p10, 5.5p1) = 1;vercmp;
+106;rpmvercmp.at:33;rpmvercmp(10xyz, 10.1xyz) = -1;vercmp;
+107;rpmvercmp.at:34;rpmvercmp(10.1xyz, 10xyz) = 1;vercmp;
+108;rpmvercmp.at:36;rpmvercmp(xyz10, xyz10) = 0;vercmp;
+109;rpmvercmp.at:37;rpmvercmp(xyz10, xyz10.1) = -1;vercmp;
+110;rpmvercmp.at:38;rpmvercmp(xyz10.1, xyz10) = 1;vercmp;
+111;rpmvercmp.at:40;rpmvercmp(xyz.4, xyz.4) = 0;vercmp;
+112;rpmvercmp.at:41;rpmvercmp(xyz.4, 8) = -1;vercmp;
+113;rpmvercmp.at:42;rpmvercmp(8, xyz.4) = 1;vercmp;
+114;rpmvercmp.at:43;rpmvercmp(xyz.4, 2) = -1;vercmp;
+115;rpmvercmp.at:44;rpmvercmp(2, xyz.4) = 1;vercmp;
+116;rpmvercmp.at:46;rpmvercmp(5.5p2, 5.6p1) = -1;vercmp;
+117;rpmvercmp.at:47;rpmvercmp(5.6p1, 5.5p2) = 1;vercmp;
+118;rpmvercmp.at:49;rpmvercmp(5.6p1, 6.5p1) = -1;vercmp;
+119;rpmvercmp.at:50;rpmvercmp(6.5p1, 5.6p1) = 1;vercmp;
+120;rpmvercmp.at:52;rpmvercmp(6.0.rc1, 6.0) = 1;vercmp;
+121;rpmvercmp.at:53;rpmvercmp(6.0, 6.0.rc1) = -1;vercmp;
+122;rpmvercmp.at:55;rpmvercmp(10b2, 10a1) = 1;vercmp;
+123;rpmvercmp.at:56;rpmvercmp(10a2, 10b2) = -1;vercmp;
+124;rpmvercmp.at:58;rpmvercmp(1.0aa, 1.0aa) = 0;vercmp;
+125;rpmvercmp.at:59;rpmvercmp(1.0a, 1.0aa) = -1;vercmp;
+126;rpmvercmp.at:60;rpmvercmp(1.0aa, 1.0a) = 1;vercmp;
+127;rpmvercmp.at:62;rpmvercmp(10.0001, 10.0001) = 0;vercmp;
+128;rpmvercmp.at:63;rpmvercmp(10.0001, 10.1) = 0;vercmp;
+129;rpmvercmp.at:64;rpmvercmp(10.1, 10.0001) = 0;vercmp;
+130;rpmvercmp.at:65;rpmvercmp(10.0001, 10.0039) = -1;vercmp;
+131;rpmvercmp.at:66;rpmvercmp(10.0039, 10.0001) = 1;vercmp;
+132;rpmvercmp.at:68;rpmvercmp(4.999.9, 5.0) = -1;vercmp;
+133;rpmvercmp.at:69;rpmvercmp(5.0, 4.999.9) = 1;vercmp;
+134;rpmvercmp.at:71;rpmvercmp(20101121, 20101121) = 0;vercmp;
+135;rpmvercmp.at:72;rpmvercmp(20101121, 20101122) = -1;vercmp;
+136;rpmvercmp.at:73;rpmvercmp(20101122, 20101121) = 1;vercmp;
+137;rpmvercmp.at:75;rpmvercmp(2_0, 2_0) = 0;vercmp;
+138;rpmvercmp.at:76;rpmvercmp(2.0, 2_0) = 0;vercmp;
+139;rpmvercmp.at:77;rpmvercmp(2_0, 2.0) = 0;vercmp;
+140;rpmvercmp.at:80;rpmvercmp(a, a) = 0;vercmp;
+141;rpmvercmp.at:81;rpmvercmp(a+, a+) = 0;vercmp;
+142;rpmvercmp.at:82;rpmvercmp(a+, a_) = 0;vercmp;
+143;rpmvercmp.at:83;rpmvercmp(a_, a+) = 0;vercmp;
+144;rpmvercmp.at:84;rpmvercmp(+a, +a) = 0;vercmp;
+145;rpmvercmp.at:85;rpmvercmp(+a, _a) = 0;vercmp;
+146;rpmvercmp.at:86;rpmvercmp(_a, +a) = 0;vercmp;
+147;rpmvercmp.at:87;rpmvercmp(+_, +_) = 0;vercmp;
+148;rpmvercmp.at:88;rpmvercmp(_+, +_) = 0;vercmp;
+149;rpmvercmp.at:89;rpmvercmp(_+, _+) = 0;vercmp;
+150;rpmvercmp.at:90;rpmvercmp(+, _) = 0;vercmp;
+151;rpmvercmp.at:91;rpmvercmp(_, +) = 0;vercmp;
+152;rpmvercmp.at:94;rpmvercmp(1.0~rc1, 1.0~rc1) = 0;vercmp;
+153;rpmvercmp.at:95;rpmvercmp(1.0~rc1, 1.0) = -1;vercmp;
+154;rpmvercmp.at:96;rpmvercmp(1.0, 1.0~rc1) = 1;vercmp;
+155;rpmvercmp.at:97;rpmvercmp(1.0~rc1, 1.0~rc2) = -1;vercmp;
+156;rpmvercmp.at:98;rpmvercmp(1.0~rc2, 1.0~rc1) = 1;vercmp;
+157;rpmvercmp.at:99;rpmvercmp(1.0~rc1~git123, 1.0~rc1~git123) = 0;vercmp;
+158;rpmvercmp.at:100;rpmvercmp(1.0~rc1~git123, 1.0~rc1) = -1;vercmp;
+159;rpmvercmp.at:101;rpmvercmp(1.0~rc1, 1.0~rc1~git123) = 1;vercmp;
+160;rpmdeps.at:7;missing dependency;install;
+161;rpmdeps.at:30;cross-depending packages;install;
+162;rpmdeps.at:56;unsatisfied versioned require;install;
+163;rpmdeps.at:84;satisfied versioned require;install;
+164;rpmdeps.at:110;versioned conflict in transaction;install;
+165;rpmdeps.at:137;versioned conflict in database;install;
+166;rpmdeps.at:163;install and verify self-conflicting package;install;
+167;rpmdeps.at:185;explicit file conflicts;install;
+168;rpmdeps.at:224;erase to break dependencies;install;
+169;rpmdeps.at:252;erase to break colored file dependency;install;
+170;rpmdeps.at:281;erase on wrong-colored file dependency;install;
+171;rpmconflict.at:7;package with file conflict;install;
+172;rpmconflict.at:31;two packages with a conflicting file;install;
+173;rpmconflict.at:48;package with shareable file;install;
+174;rpmconflict.at:72;two packages with shareable file;install;
+175;rpmconflict.at:89;non-conflicting identical basenames;install;
+176;rpmconflict.at:107;conflicting identical basenames;install;
+177;rpmconflict.at:127;multilib elf conflict, prefer 64bit 1;install;
+178;rpmconflict.at:149;multilib elf conflict, prefer 64bit 2;install;
+179;rpmconflict.at:176;multilib elf conflict, prefer 64bit 3;install;
+180;rpmconflict.at:203;multilib elf conflict, prefer 32bit 1;install;
+181;rpmconflict.at:225;multilib elf conflict, prefer 32bit 2;install;
+182;rpmconflict.at:252;multilib elf conflict, prefer 32bit 3;install;
+183;rpmconflict.at:279;multilib elf vs non-elf file conflict 1;install;
+184;rpmconflict.at:300;multilib elf vs non-elf file conflict 2;install;
+185;rpmconflict.at:325;multilib elf vs non-elf file conflict 3;install;
+186;rpmconflict.at:351;replacing directory with symlink;install;
+187;rpmconflict.at:375;replacing symlink with directory;install;
+188;rpmconflict.at:400;real file with shared ghost;install;
+189;rpmreplace.at:4;upgrade to/from regular file;install;
+190;rpmreplace.at:40;upgrade regular file to/from broken link;install;
+191;rpmreplace.at:76;upgrade regular file to/from file link;install;
+192;rpmreplace.at:112;upgrade broken link to broken link;install;
+193;rpmreplace.at:145;upgrade file link to file link;install;
+194;rpmreplace.at:178;upgrade directory link to directory link;install;
+195;rpmreplace.at:211;upgrade regular file to directory;install;
+196;rpmreplace.at:242;upgrade broken link to directory;install;
+197;rpmreplace.at:273;upgrade file link to directory;install;
+198;rpmreplace.at:304;upgrade directory link to directory;install;
+199;rpmreplace.at:335;upgrade empty directory to empty directory;install;
+200;rpmreplace.at:363;upgrade empty directory to regular file;install;
+201;rpmreplace.at:392;upgrade locally symlinked directory;install;
+202;rpmreplace.at:424;upgrade empty directory to broken link;install;
+203;rpmreplace.at:453;upgrade empty directory to file link;install;
+204;rpmreplace.at:482;upgrade removed empty directory to file link;install;
+205;rpmreplace.at:512;upgrade replaced empty directory to file link;install;
+206;rpmreplace.at:542;upgrade empty directory to file link with pretrans;install;
+207;rpmconfig.at:6;install config on existiting file;install;
+208;rpmconfig.at:35;install config(noreplace) on existiting file;install;
+209;rpmconfig.at:64;install config on existiting identical file;install;
+210;rpmconfig.at:91;erase unchanged config;install;
+211;rpmconfig.at:117;erase changed config;install;
+212;rpmconfig.at:147;erase changed config(noreplace);install;
+213;rpmconfig.at:179;upgrade unchanged config;install;
+214;rpmconfig.at:209;upgrade modified config;install;
+215;rpmconfig.at:242;upgrade changing config;install;
+216;rpmconfig.at:272;upgrade changing, modified config 1;install;
+217;rpmconfig.at:308;upgrade changing, modified config 2;install;
+218;rpmconfig.at:343;upgrade unchanged config(noreplace);install;
+219;rpmconfig.at:375;upgrade modified config(noreplace);install;
+220;rpmconfig.at:409;upgrade changing config(noreplace);install;
+221;rpmconfig.at:440;upgrade changing, modified config(noreplace) 1;install;
+222;rpmconfig.at:477;upgrade changing, modified config(noreplace) 2;install;
+223;rpmconfig.at:512;upgrade unchanged shared config;install;
+224;rpmconfig.at:550;upgrade modified shared config;install;
+225;rpmconfig.at:590;upgrade changing shared config;install;
+226;rpmconfig.at:627;upgrade changing, modified shared config 1;install;
+227;rpmconfig.at:670;upgrade changing, modified shared config 2;install;
+228;rpmconfig.at:711;upgrade changing, modified shared config(noreplace) 1;install;
+229;rpmconfig.at:755;upgrade changing, modified shared config(noreplace) 2;install;
+230;rpmconfig.at:796;install/upgrade/erase ghost config;install;
+231;rpmconfig2.at:6;install config on existiting symlink;install;
+232;rpmconfig2.at:36;install config on existiting identical link;install;
+233;rpmconfig2.at:66;erase unchanged config link;install;
+234;rpmconfig2.at:93;erase changed config link;install;
+235;rpmconfig2.at:124;upgrade unchanged config link;install;
+236;rpmconfig2.at:156;upgrade modified config link;install;
+237;rpmconfig2.at:190;upgrade changing config link;install;
+238;rpmconfig2.at:221;upgrade changing, modified config link 1;install;
+239;rpmconfig2.at:258;upgrade changing, modified config link 2;install;
+240;rpmconfig2.at:294;upgrade unchanged config(noreplace) link;install;
+241;rpmconfig2.at:327;upgrade modified config(noreplace) link;install;
+242;rpmconfig2.at:362;upgrade changing config(noreplace) link;install;
+243;rpmconfig2.at:394;upgrade changing, modified config(noreplace) link 1;install;
+244;rpmconfig2.at:432;upgrade changing, modified config(noreplace) link 2;install;
+245;rpmconfig2.at:469;upgrade unchanged shared config link;install;
+246;rpmconfig2.at:508;upgrade modified shared config link;install;
+247;rpmconfig2.at:549;upgrade changing shared config link;install;
+248;rpmconfig2.at:587;upgrade changing, modified shared config link 1;install;
+249;rpmconfig2.at:631;upgrade changing, modified shared config link 2;install;
+250;rpmconfig2.at:673;upgrade changing, modified shared config(noreplace) link 1;install;
+251;rpmconfig2.at:718;upgrade changing, modified shared config(noreplace) link 2;install;
+252;rpmconfig3.at:6;upgrade config to/from non-config;install;
+253;rpmconfig3.at:44;upgrade modified config to/from non-config 1;install;
+254;rpmconfig3.at:88;upgrade modified config to/from non-config 2;install;
+255;rpmconfig3.at:129;upgrade config to/from config link;install;
+256;rpmconfig3.at:166;upgrade modified config to config link;install;
+257;rpmconfig3.at:206;upgrade modified config link to config;install;
+258;rpmconfig3.at:246;upgrade config to directory;install;
+259;rpmconfig3.at:278;upgrade modified config to directory;install;
+260;rpmmacro.at:6;simple rpm --eval;macros;
+261;rpmmacro.at:16;simple true conditional rpm --eval;macros;
+262;rpmmacro.at:26;simple false conditional rpm --eval;macros;
+263;rpmmacro.at:36;nested macro in name;macros;
+264;rpmmacro.at:46;parametrized macro 1;macros;
+265;rpmmacro.at:82;uncompress macro;macros;
+266;rpmmacro.at:94;basename macro;macros;
+267;rpmmacro.at:105;suffix macro;macros;
+268;rpmmacro.at:116;url2path macro;macros;
+269;rpmmacro.at:127;shell expansion;macros;
+270;rpmmacro.at:138;simple lua --eval;macros lua;
+271;rpmmacro.at:148;lua rpm extensions;macros lua;
+272;rpmmacro.at:158;lua posix extensions;macros lua;
+273;rpmmacro.at:169;lua script exit behavior;macros lua;
+274;rpmpython.at:6;module import;python;
+275;rpmpython.at:12;macro manipulation;python;
+276;rpmpython.at:35;basic rpmio;python;
+277;rpmpython.at:70;spec parse;python;
+278;rpmpython.at:85;basic header manipulation;python;
+279;rpmpython.at:110;invalid header data;python;
+280;rpmpython.at:129;reading a package file;python;
+281;rpmpython.at:137;add package to transaction;python;
+282;rpmpython.at:149;add bogus package to transaction 1;python;
+283;rpmpython.at:163;add bogus package to transaction 2;python;
+284;rpmpython.at:184;database iterators;python rpmdb;
+285;rpmpython.at:283;dependency sets 1;python;
+286;rpmpython.at:300;dependency sets 2;python;
+287;rpmpython.at:310;file info sets 1;python;
+288;rpmpython.at:327;string pool 1;python;
+289;rpmpython.at:342;string pool 2;python;
+290;rpmpython.at:360;archive 1;python;
+291;rpmpython.at:380;header unload;python;
+292;rpmdepmatch.at:4;provide - require pairs;python;
"
# List of the all the test groups.
at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
@@ -887,7 +897,7 @@ at_fn_validate_ranges ()
for at_grp
do
eval at_value=\$$at_grp
- if test $at_value -lt 1 || test $at_value -gt 282; then
+ if test $at_value -lt 1 || test $at_value -gt 292; then
$as_echo "invalid test group: $at_value" >&2
exit 1
fi
@@ -1185,7 +1195,7 @@ fi
# List of tests.
if $at_list_p; then
cat <<_ATEOF || at_write_fail=1
-rpm 4.12.0.2 test suite test groups:
+rpm 4.13.0 test suite test groups:
NUM: FILE-NAME:LINE TEST-GROUP-NAME
KEYWORDS
@@ -1226,7 +1236,7 @@ _ATEOF
exit $at_write_fail
fi
if $at_version_p; then
- $as_echo "$as_me (rpm 4.12.0.2)" &&
+ $as_echo "$as_me (rpm 4.13.0)" &&
cat <<\_ATEOF || at_write_fail=1
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1253,46 +1263,46 @@ at_banner_text_2="RPM queries"
# Category starts at test group 29.
at_banner_text_3="RPM verification"
# Banner 4. rpmdb.at:19
-# Category starts at test group 37.
+# Category starts at test group 38.
at_banner_text_4="RPM database access"
# Banner 5. rpmi.at:19
-# Category starts at test group 52.
+# Category starts at test group 53.
at_banner_text_5="RPM install tests"
# Banner 6. rpmbuild.at:19
-# Category starts at test group 68.
+# Category starts at test group 70.
at_banner_text_6="RPM build"
# Banner 7. rpmscript.at:3
-# Category starts at test group 79.
+# Category starts at test group 87.
at_banner_text_7="RPM scriptlets"
# Banner 8. rpmvercmp.at:11
-# Category starts at test group 81.
+# Category starts at test group 91.
at_banner_text_8="RPM version comparison"
# Banner 9. rpmdeps.at:3
-# Category starts at test group 150.
+# Category starts at test group 160.
at_banner_text_9="RPM dependencies"
# Banner 10. rpmconflict.at:3
-# Category starts at test group 161.
+# Category starts at test group 171.
at_banner_text_10="RPM implicit file conflicts"
# Banner 11. rpmreplace.at:2
-# Category starts at test group 179.
+# Category starts at test group 189.
at_banner_text_11="RPM file replacement"
# Banner 12. rpmconfig.at:3
-# Category starts at test group 197.
+# Category starts at test group 207.
at_banner_text_12="RPM config file behavior"
# Banner 13. rpmconfig2.at:3
-# Category starts at test group 221.
+# Category starts at test group 231.
at_banner_text_13="RPM config symlink behavior"
# Banner 14. rpmconfig3.at:3
-# Category starts at test group 242.
+# Category starts at test group 252.
at_banner_text_14="RPM config filetype changes"
# Banner 15. rpmmacro.at:3
-# Category starts at test group 250.
+# Category starts at test group 260.
at_banner_text_15="RPM macros"
# Banner 16. rpmpython.at:4
-# Category starts at test group 264.
+# Category starts at test group 274.
at_banner_text_16="Python bindings"
# Banner 17. rpmdepmatch.at:2
-# Category starts at test group 282.
+# Category starts at test group 292.
at_banner_text_17="RPM dependency matching"
# Take any -C into account.
@@ -1453,13 +1463,13 @@ fi
exec 5>>"$at_suite_log"
# Banners and logs.
-$as_echo "## ------------------------ ##
-## rpm 4.12.0.2 test suite. ##
-## ------------------------ ##"
+$as_echo "## ---------------------- ##
+## rpm 4.13.0 test suite. ##
+## ---------------------- ##"
{
- $as_echo "## ------------------------ ##
-## rpm 4.12.0.2 test suite. ##
-## ------------------------ ##"
+ $as_echo "## ---------------------- ##
+## rpm 4.13.0 test suite. ##
+## ---------------------- ##"
echo
$as_echo "$as_me: command line was:"
@@ -2302,7 +2312,7 @@ _ASBOX
$as_echo "Please send $at_msg and all information you think might help:
To: <rpm-maint@lists.rpm.org>
- Subject: [rpm 4.12.0.2] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
+ Subject: [rpm 4.13.0] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
You may investigate any problem if you feel able to do so, in which
case the test suite provides a good starting point. Its output may
@@ -2333,7 +2343,7 @@ at_fn_check_prepare_trace "rpmgeneral.at:24"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "RPM version 4.12.0.2
+echo >>"$at_stdout"; $as_echo "RPM version 4.13.0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rpmgeneral.at:24"
@@ -2362,7 +2372,7 @@ at_fn_check_prepare_trace "rpmgeneral.at:33"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "RPM version 4.12.0.2
+echo >>"$at_stdout"; $as_echo "RPM version 4.13.0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rpmgeneral.at:33"
@@ -2446,6 +2456,7 @@ DISTTAG
DISTURL
DSAHEADER
E
+ENCODING
ENHANCEFLAGS
ENHANCENAME
ENHANCENEVRS
@@ -2480,8 +2491,20 @@ FILENLINKS
FILEPROVIDE
FILERDEVS
FILEREQUIRE
+FILESIGNATURELENGTH
+FILESIGNATURES
FILESIZES
FILESTATES
+FILETRIGGERCONDS
+FILETRIGGERFLAGS
+FILETRIGGERINDEX
+FILETRIGGERNAME
+FILETRIGGERPRIORITIES
+FILETRIGGERSCRIPTFLAGS
+FILETRIGGERSCRIPTPROG
+FILETRIGGERSCRIPTS
+FILETRIGGERTYPE
+FILETRIGGERVERSION
FILEUSERNAME
FILEVERIFYFLAGS
FSCONTEXTS
@@ -2615,6 +2638,16 @@ SUPPLEMENTNAME
SUPPLEMENTNEVRS
SUPPLEMENTS
SUPPLEMENTVERSION
+TRANSFILETRIGGERCONDS
+TRANSFILETRIGGERFLAGS
+TRANSFILETRIGGERINDEX
+TRANSFILETRIGGERNAME
+TRANSFILETRIGGERPRIORITIES
+TRANSFILETRIGGERSCRIPTFLAGS
+TRANSFILETRIGGERSCRIPTPROG
+TRANSFILETRIGGERSCRIPTS
+TRANSFILETRIGGERTYPE
+TRANSFILETRIGGERVERSION
TRIGGERCONDS
TRIGGERFLAGS
TRIGGERINDEX
@@ -3777,7 +3810,7 @@ read at_status <"$at_status_file"
#AT_STOP_31
#AT_START_32
at_fn_group_banner 32 'rpmverify.at:67' \
- "verify from db, with problems present" " " 3
+ "directory replaced with a directory symlink" " " 3
at_xfail=no
(
$as_echo "32. $at_setup_line: testing $at_desc ..."
@@ -3795,13 +3828,72 @@ runroot rpm --initdb
runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \\
/data/RPMS/hello-1.0-1.i386.rpm
+mv \"\${RPMTEST}\"/usr/share/doc/hello-1.0 \"\${RPMTEST}\"/usr/share/doc/hello-1.0.orig
+ln -s hello-1.0.orig \"\${RPMTEST}\"/usr/share/doc/hello-1.0
+runroot rpm -Vva --nodeps --nouser --nogroup
+rm -rf \"\${RPMTEST}\"/usr/share/doc/
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:69"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
+
+
+runroot rpm --initdb
+
+
+runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \
+ /data/RPMS/hello-1.0-1.i386.rpm
+mv "${RPMTEST}"/usr/share/doc/hello-1.0 "${RPMTEST}"/usr/share/doc/hello-1.0.orig
+ln -s hello-1.0.orig "${RPMTEST}"/usr/share/doc/hello-1.0
+runroot rpm -Vva --nodeps --nouser --nogroup
+rm -rf "${RPMTEST}"/usr/share/doc/
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "......... /usr/local/bin/hello
+......... /usr/share/doc/hello-1.0
+......... d /usr/share/doc/hello-1.0/FAQ
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_32
+#AT_START_33
+at_fn_group_banner 33 'rpmverify.at:89' \
+ "verify from db, with problems present" " " 3
+at_xfail=no
+(
+ $as_echo "33. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmverify.at:91:
+
+rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
+
+
+runroot rpm --initdb
+
+
+runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \\
+ /data/RPMS/hello-1.0-1.i386.rpm
rm -f \"\${RPMTEST}\"/usr/share/doc/hello-1.0/FAQ
chmod u-x \"\${RPMTEST}\"/usr/local/bin/hello
dd if=/dev/zero of=\"\${RPMTEST}\"/usr/local/bin/hello \\
conv=notrunc bs=1 seek=5 count=6 2> /dev/null
runroot rpm -Va --nodeps --nouser --nogroup
"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:69"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:91"
( $at_check_trace;
rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
@@ -3826,7 +3918,7 @@ echo >>"$at_stdout"; $as_echo ".M5....T. /usr/local/bin/hello
missing d /usr/share/doc/hello-1.0/FAQ
" | \
$at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:69"
+at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:91"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -3834,18 +3926,18 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_32
-#AT_START_33
-at_fn_group_banner 33 'rpmverify.at:89' \
+#AT_STOP_33
+#AT_START_34
+at_fn_group_banner 34 'rpmverify.at:111' \
"verify from package, with problems present" " " 3
at_xfail=no
(
- $as_echo "33. $at_setup_line: testing $at_desc ..."
+ $as_echo "34. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
-$as_echo "$at_srcdir/rpmverify.at:91:
+$as_echo "$at_srcdir/rpmverify.at:113:
rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
@@ -3861,7 +3953,7 @@ dd if=/dev/zero of=\"\${RPMTEST}\"/usr/local/bin/hello \\
conv=notrunc bs=1 seek=5 count=6 2> /dev/null
runroot rpm -Vp --nodeps --nouser --nogroup /data/RPMS/hello-1.0-1.i386.rpm
"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:91"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:113"
( $at_check_trace;
rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
@@ -3886,7 +3978,7 @@ echo >>"$at_stdout"; $as_echo ".M5....T. /usr/local/bin/hello
missing d /usr/share/doc/hello-1.0/FAQ
" | \
$at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:91"
+at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -3894,18 +3986,18 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_33
-#AT_START_34
-at_fn_group_banner 34 'rpmverify.at:112' \
+#AT_STOP_34
+#AT_START_35
+at_fn_group_banner 35 'rpmverify.at:134' \
"verifyscript failure" " " 3
at_xfail=no
(
- $as_echo "34. $at_setup_line: testing $at_desc ..."
+ $as_echo "35. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
-$as_echo "$at_srcdir/rpmverify.at:114:
+$as_echo "$at_srcdir/rpmverify.at:136:
rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
@@ -3919,7 +4011,7 @@ runroot rpm -U --nodeps /build/RPMS/noarch/verifyscript-1.0-1.noarch.rpm
rm -f \"\${RPMTEST}\"/var/checkme
runroot rpm -V --nodeps verifyscript
"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:114"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:136"
( $at_check_trace;
rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
@@ -3939,7 +4031,7 @@ at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:114"
+at_fn_check_status 1 $at_status "$at_srcdir/rpmverify.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -3947,18 +4039,18 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_34
-#AT_START_35
-at_fn_group_banner 35 'rpmverify.at:129' \
+#AT_STOP_35
+#AT_START_36
+at_fn_group_banner 36 'rpmverify.at:151' \
"verifyscript success" " " 3
at_xfail=no
(
- $as_echo "35. $at_setup_line: testing $at_desc ..."
+ $as_echo "36. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
-$as_echo "$at_srcdir/rpmverify.at:131:
+$as_echo "$at_srcdir/rpmverify.at:153:
rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
@@ -3972,7 +4064,7 @@ runroot rpm -U --nodeps /build/RPMS/noarch/verifyscript-1.0-1.noarch.rpm
touch \"\${RPMTEST}\"/var/checkme
runroot rpm -V --nodeps verifyscript
"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:131"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:153"
( $at_check_trace;
rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
@@ -3992,7 +4084,7 @@ at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:131"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:153"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -4000,18 +4092,18 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_35
-#AT_START_36
-at_fn_group_banner 36 'rpmverify.at:148' \
+#AT_STOP_36
+#AT_START_37
+at_fn_group_banner 37 'rpmverify.at:170' \
"shared file timestamp behavior" " " 3
at_xfail=no
(
- $as_echo "36. $at_setup_line: testing $at_desc ..."
+ $as_echo "37. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
-$as_echo "$at_srcdir/rpmverify.at:150:
+$as_echo "$at_srcdir/rpmverify.at:172:
rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
@@ -4035,7 +4127,7 @@ runroot rpm -U --noorder /build/RPMS/noarch/conflictone-1.0-1.noarch.rpm /build/
runroot rpm -e conflicttwo
runroot rpm -Va --nouser --nogroup
"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:150"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmverify.at:172"
( $at_check_trace;
rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
@@ -4065,7 +4157,7 @@ at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:150"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmverify.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -4073,13 +4165,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_36
-#AT_START_37
-at_fn_group_banner 37 'rpmdb.at:23' \
+#AT_STOP_37
+#AT_START_38
+at_fn_group_banner 38 'rpmdb.at:23' \
"rpm --initdb" " " 4
at_xfail=no
(
- $as_echo "37. $at_setup_line: testing $at_desc ..."
+ $as_echo "38. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4114,13 +4206,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_37
-#AT_START_38
-at_fn_group_banner 38 'rpmdb.at:36' \
+#AT_STOP_38
+#AT_START_39
+at_fn_group_banner 39 'rpmdb.at:36' \
"rpm -qa" " " 4
at_xfail=no
(
- $as_echo "38. $at_setup_line: testing $at_desc ..."
+ $as_echo "39. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4159,13 +4251,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_38
-#AT_START_39
-at_fn_group_banner 39 'rpmdb.at:49' \
+#AT_STOP_39
+#AT_START_40
+at_fn_group_banner 40 'rpmdb.at:49' \
"rpm -q foo" " " 4
at_xfail=no
(
- $as_echo "39. $at_setup_line: testing $at_desc ..."
+ $as_echo "40. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4214,13 +4306,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_39
-#AT_START_40
-at_fn_group_banner 40 'rpmdb.at:69' \
+#AT_STOP_40
+#AT_START_41
+at_fn_group_banner 41 'rpmdb.at:69' \
"rpm -q foo-" " " 4
at_xfail=no
(
- $as_echo "40. $at_setup_line: testing $at_desc ..."
+ $as_echo "41. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4269,13 +4361,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_40
-#AT_START_41
-at_fn_group_banner 41 'rpmdb.at:90' \
+#AT_STOP_41
+#AT_START_42
+at_fn_group_banner 42 'rpmdb.at:90' \
"rpm -i *.noarch.rpm" " " 4
at_xfail=no
(
- $as_echo "41. $at_setup_line: testing $at_desc ..."
+ $as_echo "42. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4318,13 +4410,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_41
-#AT_START_42
-at_fn_group_banner 42 'rpmdb.at:106' \
+#AT_STOP_42
+#AT_START_43
+at_fn_group_banner 43 'rpmdb.at:106' \
"rpm -U --replacepkgs 1" " " 4
at_xfail=no
(
- $as_echo "42. $at_setup_line: testing $at_desc ..."
+ $as_echo "43. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4375,14 +4467,14 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_42
-#AT_START_43
-at_fn_group_banner 43 'rpmdb.at:128' \
+#AT_STOP_43
+#AT_START_44
+at_fn_group_banner 44 'rpmdb.at:128' \
"rpm -U --replacepkgs 2" " " 4
at_xfail=no
test $RPM_XFAIL -ne 0 && at_xfail=yes
(
- $as_echo "43. $at_setup_line: testing $at_desc ..."
+ $as_echo "44. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4434,13 +4526,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_43
-#AT_START_44
-at_fn_group_banner 44 'rpmdb.at:150' \
+#AT_STOP_44
+#AT_START_45
+at_fn_group_banner 45 'rpmdb.at:150' \
"rpm --reinstall 1" " " 4
at_xfail=no
(
- $as_echo "44. $at_setup_line: testing $at_desc ..."
+ $as_echo "45. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4490,13 +4582,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_44
-#AT_START_45
-at_fn_group_banner 45 'rpmdb.at:173' \
+#AT_STOP_45
+#AT_START_46
+at_fn_group_banner 46 'rpmdb.at:173' \
"rpm -i --relocate=.. *.i386.rpm" " " 4
at_xfail=no
(
- $as_echo "45. $at_setup_line: testing $at_desc ..."
+ $as_echo "46. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4540,13 +4632,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_45
-#AT_START_46
-at_fn_group_banner 46 'rpmdb.at:192' \
+#AT_STOP_46
+#AT_START_47
+at_fn_group_banner 47 'rpmdb.at:192' \
"rpm -i --relocate=.. *.ppc64.rpm" " " 4
at_xfail=no
(
- $as_echo "46. $at_setup_line: testing $at_desc ..."
+ $as_echo "47. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4590,13 +4682,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_46
-#AT_START_47
-at_fn_group_banner 47 'rpmdb.at:208' \
+#AT_STOP_47
+#AT_START_48
+at_fn_group_banner 48 'rpmdb.at:208' \
"rpmdb --rebuilddb" " " 4
at_xfail=no
(
- $as_echo "47. $at_setup_line: testing $at_desc ..."
+ $as_echo "48. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4653,13 +4745,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_47
-#AT_START_48
-at_fn_group_banner 48 'rpmdb.at:234' \
+#AT_STOP_48
+#AT_START_49
+at_fn_group_banner 49 'rpmdb.at:234' \
"rpm -U and verify status" " " 4
at_xfail=no
(
- $as_echo "48. $at_setup_line: testing $at_desc ..."
+ $as_echo "49. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4714,13 +4806,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_48
-#AT_START_49
-at_fn_group_banner 49 'rpmdb.at:257' \
+#AT_STOP_49
+#AT_START_50
+at_fn_group_banner 50 'rpmdb.at:257' \
"rpm -U with _install_lang and verify status" " " 4
at_xfail=no
(
- $as_echo "49. $at_setup_line: testing $at_desc ..."
+ $as_echo "50. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4776,13 +4868,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_49
-#AT_START_50
-at_fn_group_banner 50 'rpmdb.at:283' \
+#AT_STOP_50
+#AT_START_51
+at_fn_group_banner 51 'rpmdb.at:283' \
"rpm -U and verify files on disk" " " 4
at_xfail=no
(
- $as_echo "50. $at_setup_line: testing $at_desc ..."
+ $as_echo "51. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4831,13 +4923,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_50
-#AT_START_51
-at_fn_group_banner 51 'rpmdb.at:304' \
+#AT_STOP_51
+#AT_START_52
+at_fn_group_banner 52 'rpmdb.at:304' \
"rpm -e and verify files removed" " " 4
at_xfail=no
(
- $as_echo "51. $at_setup_line: testing $at_desc ..."
+ $as_echo "52. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4888,13 +4980,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_51
-#AT_START_52
-at_fn_group_banner 52 'rpmi.at:23' \
+#AT_STOP_52
+#AT_START_53
+at_fn_group_banner 53 'rpmi.at:23' \
"rpm -U *.src.rpm" " " 5
at_xfail=no
(
- $as_echo "52. $at_setup_line: testing $at_desc ..."
+ $as_echo "53. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4925,13 +5017,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_52
-#AT_START_53
-at_fn_group_banner 53 'rpmi.at:38' \
+#AT_STOP_53
+#AT_START_54
+at_fn_group_banner 54 'rpmi.at:38' \
"rpm -i *.src.rpm" " " 5
at_xfail=no
(
- $as_echo "53. $at_setup_line: testing $at_desc ..."
+ $as_echo "54. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4962,13 +5054,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_53
-#AT_START_54
-at_fn_group_banner 54 'rpmi.at:54' \
+#AT_STOP_54
+#AT_START_55
+at_fn_group_banner 55 'rpmi.at:54' \
"rpm -i <nonexistent file>" " " 5
at_xfail=no
(
- $as_echo "54. $at_setup_line: testing $at_desc ..."
+ $as_echo "55. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -4995,13 +5087,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_54
-#AT_START_55
-at_fn_group_banner 55 'rpmi.at:66' \
+#AT_STOP_55
+#AT_START_56
+at_fn_group_banner 56 'rpmi.at:66' \
"rpm -i --nomanifest <garbage text file>" " " 5
at_xfail=no
(
- $as_echo "55. $at_setup_line: testing $at_desc ..."
+ $as_echo "56. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5040,13 +5132,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_55
-#AT_START_56
-at_fn_group_banner 56 'rpmi.at:83' \
+#AT_STOP_56
+#AT_START_57
+at_fn_group_banner 57 'rpmi.at:83' \
"rpm -i <garbage text file" " " 5
at_xfail=no
(
- $as_echo "56. $at_setup_line: testing $at_desc ..."
+ $as_echo "57. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5085,13 +5177,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_56
-#AT_START_57
-at_fn_group_banner 57 'rpmi.at:102' \
+#AT_STOP_57
+#AT_START_58
+at_fn_group_banner 58 'rpmi.at:102' \
"rpm -U upgrade to newer" " " 5
at_xfail=no
(
- $as_echo "57. $at_setup_line: testing $at_desc ..."
+ $as_echo "58. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5149,13 +5241,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_57
-#AT_START_58
-at_fn_group_banner 58 'rpmi.at:125' \
+#AT_STOP_58
+#AT_START_59
+at_fn_group_banner 59 'rpmi.at:125' \
"rpm -U upgrade to older" " " 5
at_xfail=no
(
- $as_echo "58. $at_setup_line: testing $at_desc ..."
+ $as_echo "59. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5197,13 +5289,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_58
-#AT_START_59
-at_fn_group_banner 59 'rpmi.at:140' \
+#AT_STOP_59
+#AT_START_60
+at_fn_group_banner 60 'rpmi.at:140' \
"rpm -U --oldpackage downgrade" " " 5
at_xfail=no
(
- $as_echo "59. $at_setup_line: testing $at_desc ..."
+ $as_echo "60. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5247,13 +5339,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_59
-#AT_START_60
-at_fn_group_banner 60 'rpmi.at:156' \
+#AT_STOP_60
+#AT_START_61
+at_fn_group_banner 61 'rpmi.at:156' \
"rpm -U two versions of same package 1" " " 5
at_xfail=no
(
- $as_echo "60. $at_setup_line: testing $at_desc ..."
+ $as_echo "61. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5303,13 +5395,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_60
-#AT_START_61
-at_fn_group_banner 61 'rpmi.at:176' \
+#AT_STOP_61
+#AT_START_62
+at_fn_group_banner 62 'rpmi.at:176' \
"rpm -U two versions of same package 2" " " 5
at_xfail=no
(
- $as_echo "61. $at_setup_line: testing $at_desc ..."
+ $as_echo "62. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5359,13 +5451,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_61
-#AT_START_62
-at_fn_group_banner 62 'rpmi.at:196' \
+#AT_STOP_62
+#AT_START_63
+at_fn_group_banner 63 'rpmi.at:196' \
"rpm -U obsoleted package 1" " " 5
at_xfail=no
(
- $as_echo "62. $at_setup_line: testing $at_desc ..."
+ $as_echo "63. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5433,13 +5525,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_62
-#AT_START_63
-at_fn_group_banner 63 'rpmi.at:225' \
+#AT_STOP_63
+#AT_START_64
+at_fn_group_banner 64 'rpmi.at:225' \
"rpm -U obsoleted package 2" " " 5
at_xfail=no
(
- $as_echo "63. $at_setup_line: testing $at_desc ..."
+ $as_echo "64. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5507,13 +5599,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_63
-#AT_START_64
-at_fn_group_banner 64 'rpmi.at:254' \
+#AT_STOP_64
+#AT_START_65
+at_fn_group_banner 65 'rpmi.at:254' \
"rpm -i two versions of same package" " " 5
at_xfail=no
(
- $as_echo "64. $at_setup_line: testing $at_desc ..."
+ $as_echo "65. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5560,13 +5652,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_64
-#AT_START_65
-at_fn_group_banner 65 'rpmi.at:273' \
+#AT_STOP_65
+#AT_START_66
+at_fn_group_banner 66 'rpmi.at:273' \
"rpm -i identical versions of same package" " " 5
at_xfail=no
(
- $as_echo "65. $at_setup_line: testing $at_desc ..."
+ $as_echo "66. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
@@ -5612,13 +5704,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_65
-#AT_START_66
-at_fn_group_banner 66 'rpmi.at:291' \
+#AT_STOP_66
+#AT_START_67
+at_fn_group_banner 67 'rpmi.at:291' \
"rpm -U with invalid --relocate" " " 5
at_xfail=no
(
- $as_echo "66. $at_setup_line: testing $at_desc ..."
+ $as_echo "67. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5665,13 +5757,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_66
-#AT_START_67
-at_fn_group_banner 67 'rpmi.at:308' \
+#AT_STOP_67
+#AT_START_68
+at_fn_group_banner 68 'rpmi.at:308' \
"rpm -U --badreloc with invalid --relocate" " " 5
at_xfail=no
(
- $as_echo "67. $at_setup_line: testing $at_desc ..."
+ $as_echo "68. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5716,13 +5808,100 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_67
-#AT_START_68
-at_fn_group_banner 68 'rpmbuild.at:23' \
+#AT_STOP_68
+#AT_START_69
+at_fn_group_banner 69 'rpmi.at:324' \
+ "rpm -i with/without --excludedocs" " " 5
+at_xfail=no
+(
+ $as_echo "69. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmi.at:326:
+
+rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
+
+
+runroot rpm --initdb
+
+
+runroot rpmbuild --quiet -bb /data/SPECS/testdoc.spec
+
+runroot rpm -i --excludedocs \\
+ /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm
+
+RPM_DOCDIR=\$(runroot rpm --eval '%_defaultdocdir')
+RPM_DATADIR=\$(runroot rpm --eval '%_datadir')
+
+test ! -e \${RPMTEST}\${RPM_DOCDIR}/testdoc || exit 1
+test -e \${RPMTEST}\${RPM_DATADIR}/testdoc/nodoc || exit 1
+
+runroot rpm -e testdoc
+
+runroot rpm -i \\
+ /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm
+test -e \${RPMTEST}\${RPM_DOCDIR}/testdoc/documentation1 || exit 1
+test -e \${RPMTEST}\${RPM_DOCDIR}/testdoc/documentation2 || exit 1
+test -e \${RPMTEST}\${RPM_DOCDIR}/testdoc/examples/example1 || exit 1
+test -e \${RPMTEST}\${RPM_DOCDIR}/testdoc/examples/example2 || exit 1
+test -e \${RPMTEST}\${RPM_DATADIR}/testdoc/nodoc || exit 1
+
+runroot rpm -e testdoc
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmi.at:326"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
+
+
+runroot rpm --initdb
+
+
+runroot rpmbuild --quiet -bb /data/SPECS/testdoc.spec
+
+runroot rpm -i --excludedocs \
+ /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm
+
+RPM_DOCDIR=$(runroot rpm --eval '%_defaultdocdir')
+RPM_DATADIR=$(runroot rpm --eval '%_datadir')
+
+test ! -e ${RPMTEST}${RPM_DOCDIR}/testdoc || exit 1
+test -e ${RPMTEST}${RPM_DATADIR}/testdoc/nodoc || exit 1
+
+runroot rpm -e testdoc
+
+runroot rpm -i \
+ /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm
+test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/documentation1 || exit 1
+test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/documentation2 || exit 1
+test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/examples/example1 || exit 1
+test -e ${RPMTEST}${RPM_DOCDIR}/testdoc/examples/example2 || exit 1
+test -e ${RPMTEST}${RPM_DATADIR}/testdoc/nodoc || exit 1
+
+runroot rpm -e testdoc
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmi.at:326"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_69
+#AT_START_70
+at_fn_group_banner 70 'rpmbuild.at:23' \
"rpmbuild -ba *.spec" " " 6
at_xfail=no
(
- $as_echo "68. $at_setup_line: testing $at_desc ..."
+ $as_echo "70. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5759,13 +5938,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_68
-#AT_START_69
-at_fn_group_banner 69 'rpmbuild.at:41' \
+#AT_STOP_70
+#AT_START_71
+at_fn_group_banner 71 'rpmbuild.at:41' \
"rpmbuild --rebuild" " " 6
at_xfail=no
(
- $as_echo "69. $at_setup_line: testing $at_desc ..."
+ $as_echo "71. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5796,13 +5975,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_69
-#AT_START_70
-at_fn_group_banner 70 'rpmbuild.at:56' \
+#AT_STOP_71
+#AT_START_72
+at_fn_group_banner 72 'rpmbuild.at:56' \
"rpmbuild -tb <tar with bad spec>" " " 6
at_xfail=no
(
- $as_echo "70. $at_setup_line: testing $at_desc ..."
+ $as_echo "72. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5835,13 +6014,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_70
-#AT_START_71
-at_fn_group_banner 71 'rpmbuild.at:73' \
+#AT_STOP_72
+#AT_START_73
+at_fn_group_banner 73 'rpmbuild.at:73' \
"rpmbuild -tb" " " 6
at_xfail=no
(
- $as_echo "71. $at_setup_line: testing $at_desc ..."
+ $as_echo "73. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5872,13 +6051,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_71
-#AT_START_72
-at_fn_group_banner 72 'rpmbuild.at:88' \
+#AT_STOP_73
+#AT_START_74
+at_fn_group_banner 74 'rpmbuild.at:88' \
"rpmbuild %attr and %defattr" " " 6
at_xfail=no
(
- $as_echo "72. $at_setup_line: testing $at_desc ..."
+ $as_echo "74. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -5939,13 +6118,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_72
-#AT_START_73
-at_fn_group_banner 73 'rpmbuild.at:128' \
+#AT_STOP_74
+#AT_START_75
+at_fn_group_banner 75 'rpmbuild.at:128' \
"rpmbuild hardlink" " " 6
at_xfail=no
(
- $as_echo "73. $at_setup_line: testing $at_desc ..."
+ $as_echo "75. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6012,13 +6191,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_73
-#AT_START_74
-at_fn_group_banner 74 'rpmbuild.at:159' \
+#AT_STOP_75
+#AT_START_76
+at_fn_group_banner 76 'rpmbuild.at:159' \
"rpmbuild glob" " " 6
at_xfail=no
(
- $as_echo "74. $at_setup_line: testing $at_desc ..."
+ $as_echo "76. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6081,18 +6260,89 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_74
-#AT_START_75
-at_fn_group_banner 75 'rpmbuild.at:193' \
+#AT_STOP_76
+#AT_START_77
+at_fn_group_banner 77 'rpmbuild.at:191' \
+ "rpmbuild prefixpostfix" " " 6
+at_xfail=no
+(
+ $as_echo "77. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:193:
+
+rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
+
+
+runroot rpm --initdb
+
+rm -rf \${TOPDIR}
+
+runroot rpmbuild -bb --quiet \\
+ /data/SPECS/prefixtest.spec
+runroot rpm -qp \\
+ --qf \"[%{filemodes:perms} %{filenames}\\n]\" \\
+ /build/RPMS/noarch/prefixtest-1.0-1.noarch.rpm
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmbuild.at:193"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
+
+
+runroot rpm --initdb
+
+rm -rf ${TOPDIR}
+
+runroot rpmbuild -bb --quiet \
+ /data/SPECS/prefixtest.spec
+runroot rpm -qp \
+ --qf "[%{filemodes:perms} %{filenames}\n]" \
+ /build/RPMS/noarch/prefixtest-1.0-1.noarch.rpm
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-rw-r--r-- /opt/prefixtest/ba
+drwxr-xr-x /opt/prefixtest/ban
+-rw-r--r-- /opt/prefixtest/bi
+drwxr-xr-x /opt/prefixtest/bin
+drwxr-xr-x /opt/prefixtest/bon
+drwxr-xr-x /opt/prefixtest/foo
+-rw-r--r-- /opt/prefixtest/foo/one
+-rw-r--r-- /opt/prefixtest/foo/three
+-rw-r--r-- /opt/prefixtest/foo/two
+lrwxrwxrwx /opt/prefixtest/linkbad
+lrwxrwxrwx /opt/prefixtest/linkgood
+-rw-r--r-- /opt/prefixtest/weird%name
+-rw-r--r-- /opt/prefixtest/zab
+-rw-r--r-- /opt/prefixtest/zeb
+-rw-r--r-- /opt/prefixtest/zib
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:193"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_77
+#AT_START_78
+at_fn_group_banner 78 'rpmbuild.at:226' \
"Weak and reverse requires" " " 6
at_xfail=no
(
- $as_echo "75. $at_setup_line: testing $at_desc ..."
+ $as_echo "78. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
-$as_echo "$at_srcdir/rpmbuild.at:195:
+$as_echo "$at_srcdir/rpmbuild.at:228:
runroot rpmbuild -bb --quiet \\
--define \"pkg weakdeps\" \\
@@ -6107,7 +6357,7 @@ runroot rpm -qp --suggests /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm
runroot rpm -qp --supplements /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm
runroot rpm -qp --enhances /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm
"
-at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:195"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:228"
( $at_check_trace;
runroot rpmbuild -bb --quiet \
@@ -6133,7 +6383,7 @@ baz
zap = 3
" | \
$at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:195"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -6141,25 +6391,25 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_75
-#AT_START_76
-at_fn_group_banner 76 'rpmbuild.at:221' \
+#AT_STOP_78
+#AT_START_79
+at_fn_group_banner 79 'rpmbuild.at:254' \
"Build requires" " " 6
at_xfail=no
(
- $as_echo "76. $at_setup_line: testing $at_desc ..."
+ $as_echo "79. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
-$as_echo "$at_srcdir/rpmbuild.at:223:
+$as_echo "$at_srcdir/rpmbuild.at:256:
runroot rpmbuild -bb --quiet \\
--define \"pkg buildreq\" \\
--define \"buildreqs foo > 1.2.3\" \\
/data/SPECS/deptest.spec
"
-at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:223"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:256"
( $at_check_trace;
runroot rpmbuild -bb --quiet \
@@ -6175,7 +6425,7 @@ echo >>"$at_stderr"; $as_echo "error: Failed build dependencies:
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 1 $at_status "$at_srcdir/rpmbuild.at:223"
+at_fn_check_status 1 $at_status "$at_srcdir/rpmbuild.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -6183,18 +6433,18 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_76
-#AT_START_77
-at_fn_group_banner 77 'rpmbuild.at:239' \
+#AT_STOP_79
+#AT_START_80
+at_fn_group_banner 80 'rpmbuild.at:272' \
"rpmspec query 1" " " 6
at_xfail=no
(
- $as_echo "77. $at_setup_line: testing $at_desc ..."
+ $as_echo "80. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
-$as_echo "$at_srcdir/rpmbuild.at:241:
+$as_echo "$at_srcdir/rpmbuild.at:274:
runroot rpmspec -q \\
--define \"pkg dep\" \\
@@ -6202,7 +6452,7 @@ runroot rpmspec -q \\
--requires \\
/data/SPECS/deptest.spec
"
-at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:241"
+at_fn_check_prepare_notrace 'an embedded newline' "rpmbuild.at:274"
( $at_check_trace;
runroot rpmspec -q \
@@ -6219,7 +6469,7 @@ echo >>"$at_stdout"; $as_echo "bar <= 2.3
foo > 1.2.3
" | \
$at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:241"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:274"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -6228,18 +6478,18 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_77
-#AT_START_78
-at_fn_group_banner 78 'rpmbuild.at:259' \
+#AT_STOP_80
+#AT_START_81
+at_fn_group_banner 81 'rpmbuild.at:292' \
"rpmbuild archive sanity" " " 6
at_xfail=no
(
- $as_echo "78. $at_setup_line: testing $at_desc ..."
+ $as_echo "81. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
-$as_echo "$at_srcdir/rpmbuild.at:261:
+$as_echo "$at_srcdir/rpmbuild.at:294:
rm -rf \${TOPDIR}
runroot rpmbuild \\
@@ -6248,7 +6498,7 @@ runroot rpmbuild \\
runroot rpm2cpio \\
/build/RPMS/noarch/attrtest-1.0-1.noarch.rpm > /tmp/attrtest.cpio
"
-at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:261"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:294"
( $at_check_trace;
rm -rf ${TOPDIR}
@@ -6263,7 +6513,7 @@ at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:261"
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }
@@ -6271,13 +6521,489 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_78
-#AT_START_79
-at_fn_group_banner 79 'rpmscript.at:7' \
+#AT_STOP_81
+#AT_START_82
+at_fn_group_banner 82 'rpmbuild.at:310' \
+ "rpmbuild debuginfo minisymtab" " " 6
+at_xfail=no
+(
+ $as_echo "82. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:312:
+rm -rf \${TOPDIR}
+
+# Use macros.debug to generate a debuginfo package.
+export CFLAGS=\"-g\"
+run rpmbuild --quiet \\
+ --macros=\${abs_top_builddir}/macros:\${top_srcdir}/macros.debug \\
+ --rcfile=\${abs_top_builddir}/rpmrc \\
+ --rebuild \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm
+
+# Extract the main package and inspect the hello binary
+# It should contain .gnu_debugdata, but not the full .symtab
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu
+test -f ./usr/local/bin/hello || exit 1
+readelf -S ./usr/local/bin/hello |\\
+ grep -q .gnu_debugdata; test \$? == 0 || exit 1
+readelf -S ./usr/local/bin/hello \\
+ | grep -q .symtab; test \$? == 1 || exit 1
+
+# And the opposite for the debuginfo package
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \\
+ | grep -q .gnu_debugdata; test \$? == 1 || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \\
+ | grep -q .symtab; test \$? == 0 || exit 1
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:312"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+
+# Use macros.debug to generate a debuginfo package.
+export CFLAGS="-g"
+run rpmbuild --quiet \
+ --macros=${abs_top_builddir}/macros:${top_srcdir}/macros.debug \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+# Extract the main package and inspect the hello binary
+# It should contain .gnu_debugdata, but not the full .symtab
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu
+test -f ./usr/local/bin/hello || exit 1
+readelf -S ./usr/local/bin/hello |\
+ grep -q .gnu_debugdata; test $? == 0 || exit 1
+readelf -S ./usr/local/bin/hello \
+ | grep -q .symtab; test $? == 1 || exit 1
+
+# And the opposite for the debuginfo package
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \
+ | grep -q .gnu_debugdata; test $? == 1 || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \
+ | grep -q .symtab; test $? == 0 || exit 1
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:312"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_82
+#AT_START_83
+at_fn_group_banner 83 'rpmbuild.at:349' \
+ "rpmbuild debuginfo minisymtab strip -g" " " 6
+at_xfail=no
+(
+ $as_echo "83. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:351:
+rm -rf \${TOPDIR}
+
+# Use macros.debug to generate a debuginfo package.
+export CFLAGS=\"-g\"
+run rpmbuild --quiet \\
+ --macros=\${abs_top_builddir}/macros:\${top_srcdir}/macros.debug \\
+ --rcfile=\${abs_top_builddir}/rpmrc \\
+ --define=\"_find_debuginfo_opts -g\" \\
+ --rebuild \"\${abs_srcdir}\"/data/SRPMS/hello-1.0-1.src.rpm
+
+# Extract the main package and inspect the hello binary
+# It should contain .symtab (because of strip -g), so doesn't .gnu_debugdata.
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu
+test -f ./usr/local/bin/hello || exit 1
+readelf -S ./usr/local/bin/hello \\
+ | grep -q .gnu_debugdata; test \$? == 1 || exit 1
+readelf -S ./usr/local/bin/hello \\
+ | grep -q .symtab; test \$? == 0 || exit 1
+
+# The debuginfo package should contain neither. The .symtab is NOBITS.
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \\
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \\
+ | grep -q .gnu_debugdata; test \$? == 1 || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \\
+ | grep .symtab | grep -q NOBITS; test \$? == 0 || exit 1
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:351"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+
+# Use macros.debug to generate a debuginfo package.
+export CFLAGS="-g"
+run rpmbuild --quiet \
+ --macros=${abs_top_builddir}/macros:${top_srcdir}/macros.debug \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ --define="_find_debuginfo_opts -g" \
+ --rebuild "${abs_srcdir}"/data/SRPMS/hello-1.0-1.src.rpm
+
+# Extract the main package and inspect the hello binary
+# It should contain .symtab (because of strip -g), so doesn't .gnu_debugdata.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-1.0-1.*.rpm | cpio -diu
+test -f ./usr/local/bin/hello || exit 1
+readelf -S ./usr/local/bin/hello \
+ | grep -q .gnu_debugdata; test $? == 1 || exit 1
+readelf -S ./usr/local/bin/hello \
+ | grep -q .symtab; test $? == 0 || exit 1
+
+# The debuginfo package should contain neither. The .symtab is NOBITS.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello-debuginfo-1.0-1.*.rpm \
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello*.debug || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \
+ | grep -q .gnu_debugdata; test $? == 1 || exit 1
+readelf -S ./usr/lib/debug/usr/local/bin/hello*.debug \
+ | grep .symtab | grep -q NOBITS; test $? == 0 || exit 1
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:351"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_83
+#AT_START_84
+at_fn_group_banner 84 'rpmbuild.at:389' \
+ "rpmbuild debuginfo dwz" " " 6
+at_xfail=no
+(
+ $as_echo "84. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:391:
+rm -rf \${TOPDIR}
+as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p
+
+cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \\
+ --macros=\${abs_top_builddir}/macros:\${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:\${top_srcdir}/macros.debug \\
+ --rcfile=\${abs_top_builddir}/rpmrc \\
+ -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec
+
+# The debuginfo package should contain a .debug file for each binary
+# and a dwz multi file that contains the shared debuginfo between them.
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello.debug || exit 1
+test -f ./usr/lib/debug/usr/local/bin/hello2.debug || exit 1
+test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1
+
+# Make sure the main package binaries contain the correct build-ids
+# linking them to the debug packages.
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\
+ | cpio -diu
+id1=\$(file ./usr/local/bin/hello | sed 's/.*, BuildID.*=\\(.*\\),.*/\\1/')
+id2=\$(file ./usr/local/bin/hello2 | sed 's/.*, BuildID.*=\\(.*\\),.*/\\1/')
+id1debug=\$(file ./usr/lib/debug/usr/local/bin/hello.debug \\
+ | sed 's/.*, BuildID.*=\\(.*\\),.*/\\1/')
+id2debug=\$(file ./usr/lib/debug/usr/local/bin/hello2.debug \\
+ | sed 's/.*, BuildID.*=\\(.*\\),.*/\\1/')
+idmulti=\$(file ./usr/lib/debug/.dwz/hello2-1.0-1.* \\
+ | sed 's/.*, BuildID.*=\\(.*\\),.*/\\1/')
+
+test \"\$id1\" = \"\$id1debug\" || exit 1
+test \"\$id2\" = \"\$id2debug\" || exit 1
+
+# The build-id files should link to the .debug files.
+id1file=\"./usr/lib/debug/.build-id/\${id1:0:2}/\${id1:2}\"
+canonid1file=\$(readlink -f \${id1file})
+canonfile1=\$(readlink -f ./usr/local/bin/hello)
+canonid1debug=\$(readlink -f \${id1file}.debug)
+canondebug1=\$(readlink -f ./usr/lib/debug/usr/local/bin/hello.debug)
+
+test \"\$canonid1file\" = \"\$canonfile1\" || exit 1
+test \"\$canonid1debug\" = \"\$canondebug1\" || exit 1
+
+id2file=\"./usr/lib/debug/.build-id/\${id2:0:2}/\${id2:2}\"
+canonid2file=\$(readlink -f \${id1file})
+canonfile2=\$(readlink -f ./usr/local/bin/hello)
+canonid2debug=\$(readlink -f \${id1file}.debug)
+canondebug2=\$(readlink -f ./usr/lib/debug/usr/local/bin/hello.debug)
+
+test \"\$canonid2file\" = \"\$canonfile2\" || exit 1
+test \"\$canonid2debug\" = \"\$canondebug2\" || exit 1
+
+# Both .debug files should point to the dwz multi file.
+# It would be nice to also test that they contain the correct dwz build-id
+# but that is a bit hard to grep out of the section data.
+multiref1=\$(readelf --string-dump=.gnu_debugaltlink ./usr/lib/debug/usr/local/bin/hello.debug | grep ' 0' | cut -c13-)
+multiref2=\$(readelf --string-dump=.gnu_debugaltlink ./usr/lib/debug/usr/local/bin/hello2.debug | grep ' 0' | cut -c13-)
+
+test \"\$multiref1\" = \"\$multiref2\" || exit 1
+
+canonmultiref=\$(readlink -f \$(dirname \$canondebug1)/\$multiref1)
+canonmultifile=\$(readlink -f ./usr/lib/debug/.dwz/hello2-1.0-1.*)
+
+test \"\$canonmultiref\" = \"\$canonmultifile\" || exit 1
+"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "rpmbuild.at:391"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p
+
+cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \
+ --macros=${abs_top_builddir}/macros:${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:${top_srcdir}/macros.debug \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ -ba "${abs_srcdir}"/data/SPECS/hello2.spec
+
+# The debuginfo package should contain a .debug file for each binary
+# and a dwz multi file that contains the shared debuginfo between them.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \
+ | cpio -diu
+test -f ./usr/lib/debug/usr/local/bin/hello.debug || exit 1
+test -f ./usr/lib/debug/usr/local/bin/hello2.debug || exit 1
+test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1
+
+# Make sure the main package binaries contain the correct build-ids
+# linking them to the debug packages.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \
+ | cpio -diu
+id1=$(file ./usr/local/bin/hello | sed 's/.*, BuildID.*=\(.*\),.*/\1/')
+id2=$(file ./usr/local/bin/hello2 | sed 's/.*, BuildID.*=\(.*\),.*/\1/')
+id1debug=$(file ./usr/lib/debug/usr/local/bin/hello.debug \
+ | sed 's/.*, BuildID.*=\(.*\),.*/\1/')
+id2debug=$(file ./usr/lib/debug/usr/local/bin/hello2.debug \
+ | sed 's/.*, BuildID.*=\(.*\),.*/\1/')
+idmulti=$(file ./usr/lib/debug/.dwz/hello2-1.0-1.* \
+ | sed 's/.*, BuildID.*=\(.*\),.*/\1/')
+
+test "$id1" = "$id1debug" || exit 1
+test "$id2" = "$id2debug" || exit 1
+
+# The build-id files should link to the .debug files.
+id1file="./usr/lib/debug/.build-id/${id1:0:2}/${id1:2}"
+canonid1file=$(readlink -f ${id1file})
+canonfile1=$(readlink -f ./usr/local/bin/hello)
+canonid1debug=$(readlink -f ${id1file}.debug)
+canondebug1=$(readlink -f ./usr/lib/debug/usr/local/bin/hello.debug)
+
+test "$canonid1file" = "$canonfile1" || exit 1
+test "$canonid1debug" = "$canondebug1" || exit 1
+
+id2file="./usr/lib/debug/.build-id/${id2:0:2}/${id2:2}"
+canonid2file=$(readlink -f ${id1file})
+canonfile2=$(readlink -f ./usr/local/bin/hello)
+canonid2debug=$(readlink -f ${id1file}.debug)
+canondebug2=$(readlink -f ./usr/lib/debug/usr/local/bin/hello.debug)
+
+test "$canonid2file" = "$canonfile2" || exit 1
+test "$canonid2debug" = "$canondebug2" || exit 1
+
+# Both .debug files should point to the dwz multi file.
+# It would be nice to also test that they contain the correct dwz build-id
+# but that is a bit hard to grep out of the section data.
+multiref1=$(readelf --string-dump=.gnu_debugaltlink ./usr/lib/debug/usr/local/bin/hello.debug | grep ' 0' | cut -c13-)
+multiref2=$(readelf --string-dump=.gnu_debugaltlink ./usr/lib/debug/usr/local/bin/hello2.debug | grep ' 0' | cut -c13-)
+
+test "$multiref1" = "$multiref2" || exit 1
+
+canonmultiref=$(readlink -f $(dirname $canondebug1)/$multiref1)
+canonmultifile=$(readlink -f ./usr/lib/debug/.dwz/hello2-1.0-1.*)
+
+test "$canonmultiref" = "$canonmultifile" || exit 1
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:391"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_84
+#AT_START_85
+at_fn_group_banner 85 'rpmbuild.at:466' \
+ "rpmbuild debuginfo dwz gnu_debuglink crc" " " 6
+at_xfail=no
+(
+ $as_echo "85. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:468:
+rm -rf \${TOPDIR}
+as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p
+
+# Build a package that
+cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \\
+ --macros=\${abs_top_builddir}/macros:\${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:\${top_srcdir}/macros.debug \\
+ --rcfile=\${abs_top_builddir}/rpmrc \\
+ -ba \"\${abs_srcdir}\"/data/SPECS/hello2.spec
+
+# Unpack the main and debuginfo rpms so we can check binaries and .debug files.
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \\
+ | cpio -diu
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\
+ | cpio -diu
+
+# Check that dwz has ran and a multi file has been produced
+test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1
+
+# Run sepdbugcrcfix on the binaries, both should have correct CRC already.
+\${abs_top_builddir}/sepdebugcrcfix ./usr/lib/debug \\
+ ./usr/local/bin/hello ./usr/local/bin/hello2 | grep CRC32 | cut -f2 -d:
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:468"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p
+
+# Build a package that
+cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \
+ --macros=${abs_top_builddir}/macros:${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:${top_srcdir}/macros.debug \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ -ba "${abs_srcdir}"/data/SPECS/hello2.spec
+
+# Unpack the main and debuginfo rpms so we can check binaries and .debug files.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-debuginfo-1.0-1.*.rpm \
+ | cpio -diu
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \
+ | cpio -diu
+
+# Check that dwz has ran and a multi file has been produced
+test -f ./usr/lib/debug/.dwz/hello2-1.0-1.* || exit 1
+
+# Run sepdbugcrcfix on the binaries, both should have correct CRC already.
+${abs_top_builddir}/sepdebugcrcfix ./usr/lib/debug \
+ ./usr/local/bin/hello ./usr/local/bin/hello2 | grep CRC32 | cut -f2 -d:
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo " Updated 0 CRC32s, 2 CRC32s did match.
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:468"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_85
+#AT_START_86
+at_fn_group_banner 86 'rpmbuild.at:502' \
+ "rpmbuild implicit suid binary" " " 6
+at_xfail=no
+(
+ $as_echo "86. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmbuild.at:504:
+rm -rf \${TOPDIR}
+as_dir=\${TOPDIR}/SOURCES; as_fn_mkdir_p
+
+# Build a package that has some debuginfo
+cp \"\${abs_srcdir}\"/data/SOURCES/hello-1.0.tar.gz \"\${abs_srcdir}\"/data/SOURCES/hello-1.0-modernize.patch \${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \\
+ --rcfile=\${abs_top_builddir}/rpmrc \\
+ --macros=\${abs_top_builddir}/macros:\${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:\${top_srcdir}/macros.debug \\
+ -ba \"\${abs_srcdir}\"/data/SPECS/hello2-suid.spec
+
+# Unpack rpm so we can check the included binaries.
+rpm2cpio \${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \\
+ | cpio -diu --quiet
+
+# List all binaries with suid bit set (should be one, hello).
+echo \"suid:\"
+find usr -executable -type f -perm /4000
+# List all binaries without suid bit set (should also be one, hello2).
+echo \"no-suid:\"
+find usr -executable -type f \\! -perm /4000
+"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "rpmbuild.at:504"
+( $at_check_trace;
+rm -rf ${TOPDIR}
+as_dir=${TOPDIR}/SOURCES; as_fn_mkdir_p
+
+# Build a package that has some debuginfo
+cp "${abs_srcdir}"/data/SOURCES/hello-1.0.tar.gz "${abs_srcdir}"/data/SOURCES/hello-1.0-modernize.patch ${TOPDIR}/SOURCES
+
+run rpmbuild --quiet \
+ --rcfile=${abs_top_builddir}/rpmrc \
+ --macros=${abs_top_builddir}/macros:${abs_top_builddir}/tests/testing/usr/local/lib/rpm/platform/%{_target_cpu}-%{_target_os}/macros:${top_srcdir}/macros.debug \
+ -ba "${abs_srcdir}"/data/SPECS/hello2-suid.spec
+
+# Unpack rpm so we can check the included binaries.
+rpm2cpio ${abs_builddir}/testing/build/RPMS/*/hello2-1.0-1.*.rpm \
+ | cpio -diu --quiet
+
+# List all binaries with suid bit set (should be one, hello).
+echo "suid:"
+find usr -executable -type f -perm /4000
+# List all binaries without suid bit set (should also be one, hello2).
+echo "no-suid:"
+find usr -executable -type f \! -perm /4000
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo >>"$at_stdout"; $as_echo "suid:
+usr/local/bin/hello
+no-suid:
+usr/local/bin/hello2
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmbuild.at:504"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_86
+#AT_START_87
+at_fn_group_banner 87 'rpmscript.at:7' \
"basic scripts and arguments" " " 7
at_xfail=no
(
- $as_echo "79. $at_setup_line: testing $at_desc ..."
+ $as_echo "87. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6351,13 +7077,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_79
-#AT_START_80
-at_fn_group_banner 80 'rpmscript.at:44' \
+#AT_STOP_87
+#AT_START_88
+at_fn_group_banner 88 'rpmscript.at:44' \
"basic trigger scripts and arguments" " " 7
at_xfail=no
(
- $as_echo "80. $at_setup_line: testing $at_desc ..."
+ $as_echo "88. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6459,13 +7185,272 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_80
-#AT_START_81
-at_fn_group_banner 81 'rpmvercmp.at:13' \
+#AT_STOP_88
+#AT_START_89
+at_fn_group_banner 89 'rpmscript.at:102' \
+ "basic file trigger scripts" " " 7
+at_xfail=no
+(
+ $as_echo "89. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmscript.at:104:
+
+rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
+
+
+runroot rpm --initdb
+
+rm -rf \"\${TOPDIR}\"
+
+runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec
+runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec
+runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec
+runroot rpmbuild --quiet -bb /data/SPECS/filetriggers.spec
+
+runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm
+runroot rpm -U /build/RPMS/noarch/filetriggers-1.0-1.noarch.rpm
+echo INSTALLATION
+runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \\
+/build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm
+echo ERASE
+runroot rpm -e hello-script hlinktest
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmscript.at:104"
+( $at_check_trace;
+
+rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
+
+
+runroot rpm --initdb
+
+rm -rf "${TOPDIR}"
+
+runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec
+runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec
+runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec
+runroot rpmbuild --quiet -bb /data/SPECS/filetriggers.spec
+
+runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm
+runroot rpm -U /build/RPMS/noarch/filetriggers-1.0-1.noarch.rpm
+echo INSTALLATION
+runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \
+/build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm
+echo ERASE
+runroot rpm -e hello-script hlinktest
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "INSTALLATION
+filetriggerin(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerin(/foo*)<lua>:
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerin(/usr/bin*):
+/usr/bin/hello
+
+filetriggerin(/usr/bin*)<lua>:
+/usr/bin/hello
+
+transfiletriggerin(/usr/bin*):
+/usr/bin/hello
+
+transfiletriggerin(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+ERASE
+transfiletriggerun(/usr/bin*):
+/usr/bin/hello
+
+transfiletriggerun(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerun(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerpostun(/foo*):
+/foo/aaaa
+/foo/copyllo
+/foo/hello
+/foo/hello-bar
+/foo/hello-foo
+/foo/hello-world
+/foo/zzzz
+
+filetriggerun(/usr/bin*):
+/usr/bin/hello
+
+filetriggerpostun(/usr/bin*):
+/usr/bin/hello
+
+transfiletriggerpostun(/usr/bin*):
+
+transfiletriggerpostun(/foo*):
+
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmscript.at:104"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_89
+#AT_START_90
+at_fn_group_banner 90 'rpmscript.at:206' \
+ "Proper reset of nice/ionice levels on scripts - only works as root!" "" 7
+at_xfail=no
+ test `whoami` != root && at_xfail=yes
+(
+ $as_echo "90. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+{ set +x
+$as_echo "$at_srcdir/rpmscript.at:208:
+
+
+rm -rf \"\${abs_builddir}\"/testing\`rpm --eval '%_dbpath'\`/*
+
+
+runroot rpm --initdb
+
+rm -rf \"\${TOPDIR}\"
+
+runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec
+runroot rpmbuild --quiet -bb --define \"rel 1\" /data/SPECS/scripts-nice-ionice.spec
+runroot rpmbuild --quiet -bb --define \"rel 2\" /data/SPECS/scripts-nice-ionice.spec
+
+runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -Vvp /build/RPMS/noarch/scripts-nice-ionice-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -U /build/RPMS/noarch/scripts-nice-ionice-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -U /build/RPMS/noarch/scripts-nice-ionice-1.0-2.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -Vv scripts-nice-ionice
+runroot nice -n 10 ionice -c3 rpm -e scripts-nice-ionice
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rpmscript.at:208"
+( $at_check_trace;
+
+
+rm -rf "${abs_builddir}"/testing`rpm --eval '%_dbpath'`/*
+
+
+runroot rpm --initdb
+
+rm -rf "${TOPDIR}"
+
+runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec
+runroot rpmbuild --quiet -bb --define "rel 1" /data/SPECS/scripts-nice-ionice.spec
+runroot rpmbuild --quiet -bb --define "rel 2" /data/SPECS/scripts-nice-ionice.spec
+
+runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -Vvp /build/RPMS/noarch/scripts-nice-ionice-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -U /build/RPMS/noarch/scripts-nice-ionice-1.0-1.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -U /build/RPMS/noarch/scripts-nice-ionice-1.0-2.noarch.rpm
+runroot nice -n 10 ionice -c3 rpm -Vv scripts-nice-ionice
+runroot nice -n 10 ionice -c3 rpm -e scripts-nice-ionice
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "scripts-nice-ionice-1.0-1 VERIFY 0
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 PRETRANS 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 PRE 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 POST 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 POSTTRANS 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 PRETRANS 2
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 PRE 2
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 POST 2
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 PREUN 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-1 POSTUN 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 POSTTRANS 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 VERIFY 1
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 PREUN 0
+Nice value is 0
+IOnice value is none: prio 4
+scripts-nice-ionice-1.0-2 POSTUN 0
+Nice value is 0
+IOnice value is none: prio 4
+" | \
+ $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rpmscript.at:208"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+ set +x
+ $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_90
+#AT_START_91
+at_fn_group_banner 91 'rpmvercmp.at:13' \
"rpmvercmp(1.0, 1.0) = 0" " " 8
at_xfail=no
(
- $as_echo "81. $at_setup_line: testing $at_desc ..."
+ $as_echo "91. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6488,13 +7473,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_81
-#AT_START_82
-at_fn_group_banner 82 'rpmvercmp.at:14' \
+#AT_STOP_91
+#AT_START_92
+at_fn_group_banner 92 'rpmvercmp.at:14' \
"rpmvercmp(1.0, 2.0) = -1" " " 8
at_xfail=no
(
- $as_echo "82. $at_setup_line: testing $at_desc ..."
+ $as_echo "92. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6517,13 +7502,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_82
-#AT_START_83
-at_fn_group_banner 83 'rpmvercmp.at:15' \
+#AT_STOP_92
+#AT_START_93
+at_fn_group_banner 93 'rpmvercmp.at:15' \
"rpmvercmp(2.0, 1.0) = 1" " " 8
at_xfail=no
(
- $as_echo "83. $at_setup_line: testing $at_desc ..."
+ $as_echo "93. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6546,13 +7531,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_83
-#AT_START_84
-at_fn_group_banner 84 'rpmvercmp.at:17' \
+#AT_STOP_93
+#AT_START_94
+at_fn_group_banner 94 'rpmvercmp.at:17' \
"rpmvercmp(2.0.1, 2.0.1) = 0" " " 8
at_xfail=no
(
- $as_echo "84. $at_setup_line: testing $at_desc ..."
+ $as_echo "94. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6575,13 +7560,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_84
-#AT_START_85
-at_fn_group_banner 85 'rpmvercmp.at:18' \
+#AT_STOP_94
+#AT_START_95
+at_fn_group_banner 95 'rpmvercmp.at:18' \
"rpmvercmp(2.0, 2.0.1) = -1" " " 8
at_xfail=no
(
- $as_echo "85. $at_setup_line: testing $at_desc ..."
+ $as_echo "95. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6604,13 +7589,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_85
-#AT_START_86
-at_fn_group_banner 86 'rpmvercmp.at:19' \
+#AT_STOP_95
+#AT_START_96
+at_fn_group_banner 96 'rpmvercmp.at:19' \
"rpmvercmp(2.0.1, 2.0) = 1" " " 8
at_xfail=no
(
- $as_echo "86. $at_setup_line: testing $at_desc ..."
+ $as_echo "96. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6633,13 +7618,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_86
-#AT_START_87
-at_fn_group_banner 87 'rpmvercmp.at:21' \
+#AT_STOP_96
+#AT_START_97
+at_fn_group_banner 97 'rpmvercmp.at:21' \
"rpmvercmp(2.0.1a, 2.0.1a) = 0" " " 8
at_xfail=no
(
- $as_echo "87. $at_setup_line: testing $at_desc ..."
+ $as_echo "97. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6662,13 +7647,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_87
-#AT_START_88
-at_fn_group_banner 88 'rpmvercmp.at:22' \
+#AT_STOP_97
+#AT_START_98
+at_fn_group_banner 98 'rpmvercmp.at:22' \
"rpmvercmp(2.0.1a, 2.0.1) = 1" " " 8
at_xfail=no
(
- $as_echo "88. $at_setup_line: testing $at_desc ..."
+ $as_echo "98. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6691,13 +7676,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_88
-#AT_START_89
-at_fn_group_banner 89 'rpmvercmp.at:23' \
+#AT_STOP_98
+#AT_START_99
+at_fn_group_banner 99 'rpmvercmp.at:23' \
"rpmvercmp(2.0.1, 2.0.1a) = -1" " " 8
at_xfail=no
(
- $as_echo "89. $at_setup_line: testing $at_desc ..."
+ $as_echo "99. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6720,13 +7705,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_89
-#AT_START_90
-at_fn_group_banner 90 'rpmvercmp.at:25' \
+#AT_STOP_99
+#AT_START_100
+at_fn_group_banner 100 'rpmvercmp.at:25' \
"rpmvercmp(5.5p1, 5.5p1) = 0" " " 8
at_xfail=no
(
- $as_echo "90. $at_setup_line: testing $at_desc ..."
+ $as_echo "100. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6749,13 +7734,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_90
-#AT_START_91
-at_fn_group_banner 91 'rpmvercmp.at:26' \
+#AT_STOP_100
+#AT_START_101
+at_fn_group_banner 101 'rpmvercmp.at:26' \
"rpmvercmp(5.5p1, 5.5p2) = -1" " " 8
at_xfail=no
(
- $as_echo "91. $at_setup_line: testing $at_desc ..."
+ $as_echo "101. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6778,13 +7763,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_91
-#AT_START_92
-at_fn_group_banner 92 'rpmvercmp.at:27' \
+#AT_STOP_101
+#AT_START_102
+at_fn_group_banner 102 'rpmvercmp.at:27' \
"rpmvercmp(5.5p2, 5.5p1) = 1" " " 8
at_xfail=no
(
- $as_echo "92. $at_setup_line: testing $at_desc ..."
+ $as_echo "102. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6807,13 +7792,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_92
-#AT_START_93
-at_fn_group_banner 93 'rpmvercmp.at:29' \
+#AT_STOP_102
+#AT_START_103
+at_fn_group_banner 103 'rpmvercmp.at:29' \
"rpmvercmp(5.5p10, 5.5p10) = 0" " " 8
at_xfail=no
(
- $as_echo "93. $at_setup_line: testing $at_desc ..."
+ $as_echo "103. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6836,13 +7821,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_93
-#AT_START_94
-at_fn_group_banner 94 'rpmvercmp.at:30' \
+#AT_STOP_103
+#AT_START_104
+at_fn_group_banner 104 'rpmvercmp.at:30' \
"rpmvercmp(5.5p1, 5.5p10) = -1" " " 8
at_xfail=no
(
- $as_echo "94. $at_setup_line: testing $at_desc ..."
+ $as_echo "104. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6865,13 +7850,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_94
-#AT_START_95
-at_fn_group_banner 95 'rpmvercmp.at:31' \
+#AT_STOP_104
+#AT_START_105
+at_fn_group_banner 105 'rpmvercmp.at:31' \
"rpmvercmp(5.5p10, 5.5p1) = 1" " " 8
at_xfail=no
(
- $as_echo "95. $at_setup_line: testing $at_desc ..."
+ $as_echo "105. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6894,13 +7879,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_95
-#AT_START_96
-at_fn_group_banner 96 'rpmvercmp.at:33' \
+#AT_STOP_105
+#AT_START_106
+at_fn_group_banner 106 'rpmvercmp.at:33' \
"rpmvercmp(10xyz, 10.1xyz) = -1" " " 8
at_xfail=no
(
- $as_echo "96. $at_setup_line: testing $at_desc ..."
+ $as_echo "106. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6923,13 +7908,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_96
-#AT_START_97
-at_fn_group_banner 97 'rpmvercmp.at:34' \
+#AT_STOP_106
+#AT_START_107
+at_fn_group_banner 107 'rpmvercmp.at:34' \
"rpmvercmp(10.1xyz, 10xyz) = 1" " " 8
at_xfail=no
(
- $as_echo "97. $at_setup_line: testing $at_desc ..."
+ $as_echo "107. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6952,13 +7937,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_97
-#AT_START_98
-at_fn_group_banner 98 'rpmvercmp.at:36' \
+#AT_STOP_107
+#AT_START_108
+at_fn_group_banner 108 'rpmvercmp.at:36' \
"rpmvercmp(xyz10, xyz10) = 0" " " 8
at_xfail=no
(
- $as_echo "98. $at_setup_line: testing $at_desc ..."
+ $as_echo "108. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -6981,13 +7966,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_98
-#AT_START_99
-at_fn_group_banner 99 'rpmvercmp.at:37' \
+#AT_STOP_108
+#AT_START_109
+at_fn_group_banner 109 'rpmvercmp.at:37' \
"rpmvercmp(xyz10, xyz10.1) = -1" " " 8
at_xfail=no
(
- $as_echo "99. $at_setup_line: testing $at_desc ..."
+ $as_echo "109. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7010,13 +7995,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_99
-#AT_START_100
-at_fn_group_banner 100 'rpmvercmp.at:38' \
+#AT_STOP_109
+#AT_START_110
+at_fn_group_banner 110 'rpmvercmp.at:38' \
"rpmvercmp(xyz10.1, xyz10) = 1" " " 8
at_xfail=no
(
- $as_echo "100. $at_setup_line: testing $at_desc ..."
+ $as_echo "110. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7039,13 +8024,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_100
-#AT_START_101
-at_fn_group_banner 101 'rpmvercmp.at:40' \
+#AT_STOP_110
+#AT_START_111
+at_fn_group_banner 111 'rpmvercmp.at:40' \
"rpmvercmp(xyz.4, xyz.4) = 0" " " 8
at_xfail=no
(
- $as_echo "101. $at_setup_line: testing $at_desc ..."
+ $as_echo "111. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7068,13 +8053,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_101
-#AT_START_102
-at_fn_group_banner 102 'rpmvercmp.at:41' \
+#AT_STOP_111
+#AT_START_112
+at_fn_group_banner 112 'rpmvercmp.at:41' \
"rpmvercmp(xyz.4, 8) = -1" " " 8
at_xfail=no
(
- $as_echo "102. $at_setup_line: testing $at_desc ..."
+ $as_echo "112. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7097,13 +8082,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_102
-#AT_START_103
-at_fn_group_banner 103 'rpmvercmp.at:42' \
+#AT_STOP_112
+#AT_START_113
+at_fn_group_banner 113 'rpmvercmp.at:42' \
"rpmvercmp(8, xyz.4) = 1" " " 8
at_xfail=no
(
- $as_echo "103. $at_setup_line: testing $at_desc ..."
+ $as_echo "113. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7126,13 +8111,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_103
-#AT_START_104
-at_fn_group_banner 104 'rpmvercmp.at:43' \
+#AT_STOP_113
+#AT_START_114
+at_fn_group_banner 114 'rpmvercmp.at:43' \
"rpmvercmp(xyz.4, 2) = -1" " " 8
at_xfail=no
(
- $as_echo "104. $at_setup_line: testing $at_desc ..."
+ $as_echo "114. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7155,13 +8140,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_104
-#AT_START_105
-at_fn_group_banner 105 'rpmvercmp.at:44' \
+#AT_STOP_114
+#AT_START_115
+at_fn_group_banner 115 'rpmvercmp.at:44' \
"rpmvercmp(2, xyz.4) = 1" " " 8
at_xfail=no
(
- $as_echo "105. $at_setup_line: testing $at_desc ..."
+ $as_echo "115. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7184,13 +8169,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_105
-#AT_START_106
-at_fn_group_banner 106 'rpmvercmp.at:46' \
+#AT_STOP_115
+#AT_START_116
+at_fn_group_banner 116 'rpmvercmp.at:46' \
"rpmvercmp(5.5p2, 5.6p1) = -1" " " 8
at_xfail=no
(
- $as_echo "106. $at_setup_line: testing $at_desc ..."
+ $as_echo "116. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7213,13 +8198,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_106
-#AT_START_107
-at_fn_group_banner 107 'rpmvercmp.at:47' \
+#AT_STOP_116
+#AT_START_117
+at_fn_group_banner 117 'rpmvercmp.at:47' \
"rpmvercmp(5.6p1, 5.5p2) = 1" " " 8
at_xfail=no
(
- $as_echo "107. $at_setup_line: testing $at_desc ..."
+ $as_echo "117. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7242,13 +8227,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_107
-#AT_START_108
-at_fn_group_banner 108 'rpmvercmp.at:49' \
+#AT_STOP_117
+#AT_START_118
+at_fn_group_banner 118 'rpmvercmp.at:49' \
"rpmvercmp(5.6p1, 6.5p1) = -1" " " 8
at_xfail=no
(
- $as_echo "108. $at_setup_line: testing $at_desc ..."
+ $as_echo "118. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7271,13 +8256,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_108
-#AT_START_109
-at_fn_group_banner 109 'rpmvercmp.at:50' \
+#AT_STOP_118
+#AT_START_119
+at_fn_group_banner 119 'rpmvercmp.at:50' \
"rpmvercmp(6.5p1, 5.6p1) = 1" " " 8
at_xfail=no
(
- $as_echo "109. $at_setup_line: testing $at_desc ..."
+ $as_echo "119. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7300,13 +8285,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_109
-#AT_START_110
-at_fn_group_banner 110 'rpmvercmp.at:52' \
+#AT_STOP_119
+#AT_START_120
+at_fn_group_banner 120 'rpmvercmp.at:52' \
"rpmvercmp(6.0.rc1, 6.0) = 1" " " 8
at_xfail=no
(
- $as_echo "110. $at_setup_line: testing $at_desc ..."
+ $as_echo "120. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7329,13 +8314,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_110
-#AT_START_111
-at_fn_group_banner 111 'rpmvercmp.at:53' \
+#AT_STOP_120
+#AT_START_121
+at_fn_group_banner 121 'rpmvercmp.at:53' \
"rpmvercmp(6.0, 6.0.rc1) = -1" " " 8
at_xfail=no
(
- $as_echo "111. $at_setup_line: testing $at_desc ..."
+ $as_echo "121. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7358,13 +8343,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_111
-#AT_START_112
-at_fn_group_banner 112 'rpmvercmp.at:55' \
+#AT_STOP_121
+#AT_START_122
+at_fn_group_banner 122 'rpmvercmp.at:55' \
"rpmvercmp(10b2, 10a1) = 1" " " 8
at_xfail=no
(
- $as_echo "112. $at_setup_line: testing $at_desc ..."
+ $as_echo "122. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7387,13 +8372,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_112
-#AT_START_113
-at_fn_group_banner 113 'rpmvercmp.at:56' \
+#AT_STOP_122
+#AT_START_123
+at_fn_group_banner 123 'rpmvercmp.at:56' \
"rpmvercmp(10a2, 10b2) = -1" " " 8
at_xfail=no
(
- $as_echo "113. $at_setup_line: testing $at_desc ..."
+ $as_echo "123. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7416,13 +8401,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_113
-#AT_START_114
-at_fn_group_banner 114 'rpmvercmp.at:58' \
+#AT_STOP_123
+#AT_START_124
+at_fn_group_banner 124 'rpmvercmp.at:58' \
"rpmvercmp(1.0aa, 1.0aa) = 0" " " 8
at_xfail=no
(
- $as_echo "114. $at_setup_line: testing $at_desc ..."
+ $as_echo "124. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7445,13 +8430,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_114
-#AT_START_115
-at_fn_group_banner 115 'rpmvercmp.at:59' \
+#AT_STOP_124
+#AT_START_125
+at_fn_group_banner 125 'rpmvercmp.at:59' \
"rpmvercmp(1.0a, 1.0aa) = -1" " " 8
at_xfail=no
(
- $as_echo "115. $at_setup_line: testing $at_desc ..."
+ $as_echo "125. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7474,13 +8459,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_115
-#AT_START_116
-at_fn_group_banner 116 'rpmvercmp.at:60' \
+#AT_STOP_125
+#AT_START_126
+at_fn_group_banner 126 'rpmvercmp.at:60' \
"rpmvercmp(1.0aa, 1.0a) = 1" " " 8
at_xfail=no
(
- $as_echo "116. $at_setup_line: testing $at_desc ..."
+ $as_echo "126. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7503,13 +8488,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_116
-#AT_START_117
-at_fn_group_banner 117 'rpmvercmp.at:62' \
+#AT_STOP_126
+#AT_START_127
+at_fn_group_banner 127 'rpmvercmp.at:62' \
"rpmvercmp(10.0001, 10.0001) = 0" " " 8
at_xfail=no
(
- $as_echo "117. $at_setup_line: testing $at_desc ..."
+ $as_echo "127. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7532,13 +8517,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_117
-#AT_START_118
-at_fn_group_banner 118 'rpmvercmp.at:63' \
+#AT_STOP_127
+#AT_START_128
+at_fn_group_banner 128 'rpmvercmp.at:63' \
"rpmvercmp(10.0001, 10.1) = 0" " " 8
at_xfail=no
(
- $as_echo "118. $at_setup_line: testing $at_desc ..."
+ $as_echo "128. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7561,13 +8546,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_118
-#AT_START_119
-at_fn_group_banner 119 'rpmvercmp.at:64' \
+#AT_STOP_128
+#AT_START_129
+at_fn_group_banner 129 'rpmvercmp.at:64' \
"rpmvercmp(10.1, 10.0001) = 0" " " 8
at_xfail=no
(
- $as_echo "119. $at_setup_line: testing $at_desc ..."
+ $as_echo "129. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7590,13 +8575,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_119
-#AT_START_120
-at_fn_group_banner 120 'rpmvercmp.at:65' \
+#AT_STOP_129
+#AT_START_130
+at_fn_group_banner 130 'rpmvercmp.at:65' \
"rpmvercmp(10.0001, 10.0039) = -1" " " 8
at_xfail=no
(
- $as_echo "120. $at_setup_line: testing $at_desc ..."
+ $as_echo "130. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7619,13 +8604,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_120
-#AT_START_121
-at_fn_group_banner 121 'rpmvercmp.at:66' \
+#AT_STOP_130
+#AT_START_131
+at_fn_group_banner 131 'rpmvercmp.at:66' \
"rpmvercmp(10.0039, 10.0001) = 1" " " 8
at_xfail=no
(
- $as_echo "121. $at_setup_line: testing $at_desc ..."
+ $as_echo "131. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7648,13 +8633,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_121
-#AT_START_122
-at_fn_group_banner 122 'rpmvercmp.at:68' \
+#AT_STOP_131
+#AT_START_132
+at_fn_group_banner 132 'rpmvercmp.at:68' \
"rpmvercmp(4.999.9, 5.0) = -1" " " 8
at_xfail=no
(
- $as_echo "122. $at_setup_line: testing $at_desc ..."
+ $as_echo "132. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7677,13 +8662,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_122
-#AT_START_123
-at_fn_group_banner 123 'rpmvercmp.at:69' \
+#AT_STOP_132
+#AT_START_133
+at_fn_group_banner 133 'rpmvercmp.at:69' \
"rpmvercmp(5.0, 4.999.9) = 1" " " 8
at_xfail=no
(
- $as_echo "123. $at_setup_line: testing $at_desc ..."
+ $as_echo "133. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7706,13 +8691,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_123
-#AT_START_124
-at_fn_group_banner 124 'rpmvercmp.at:71' \
+#AT_STOP_133
+#AT_START_134
+at_fn_group_banner 134 'rpmvercmp.at:71' \
"rpmvercmp(20101121, 20101121) = 0" " " 8
at_xfail=no
(
- $as_echo "124. $at_setup_line: testing $at_desc ..."
+ $as_echo "134. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7735,13 +8720,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_124
-#AT_START_125
-at_fn_group_banner 125 'rpmvercmp.at:72' \
+#AT_STOP_134
+#AT_START_135
+at_fn_group_banner 135 'rpmvercmp.at:72' \
"rpmvercmp(20101121, 20101122) = -1" " " 8
at_xfail=no
(
- $as_echo "125. $at_setup_line: testing $at_desc ..."
+ $as_echo "135. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7764,13 +8749,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_125
-#AT_START_126
-at_fn_group_banner 126 'rpmvercmp.at:73' \
+#AT_STOP_135
+#AT_START_136
+at_fn_group_banner 136 'rpmvercmp.at:73' \
"rpmvercmp(20101122, 20101121) = 1" " " 8
at_xfail=no
(
- $as_echo "126. $at_setup_line: testing $at_desc ..."
+ $as_echo "136. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7793,13 +8778,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_126
-#AT_START_127
-at_fn_group_banner 127 'rpmvercmp.at:75' \
+#AT_STOP_136
+#AT_START_137
+at_fn_group_banner 137 'rpmvercmp.at:75' \
"rpmvercmp(2_0, 2_0) = 0" " " 8
at_xfail=no
(
- $as_echo "127. $at_setup_line: testing $at_desc ..."
+ $as_echo "137. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7822,13 +8807,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_127
-#AT_START_128
-at_fn_group_banner 128 'rpmvercmp.at:76' \
+#AT_STOP_137
+#AT_START_138
+at_fn_group_banner 138 'rpmvercmp.at:76' \
"rpmvercmp(2.0, 2_0) = 0" " " 8
at_xfail=no
(
- $as_echo "128. $at_setup_line: testing $at_desc ..."
+ $as_echo "138. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7851,13 +8836,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_128
-#AT_START_129
-at_fn_group_banner 129 'rpmvercmp.at:77' \
+#AT_STOP_138
+#AT_START_139
+at_fn_group_banner 139 'rpmvercmp.at:77' \
"rpmvercmp(2_0, 2.0) = 0" " " 8
at_xfail=no
(
- $as_echo "129. $at_setup_line: testing $at_desc ..."
+ $as_echo "139. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7880,13 +8865,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_129
-#AT_START_130
-at_fn_group_banner 130 'rpmvercmp.at:80' \
+#AT_STOP_139
+#AT_START_140
+at_fn_group_banner 140 'rpmvercmp.at:80' \
"rpmvercmp(a, a) = 0" " " 8
at_xfail=no
(
- $as_echo "130. $at_setup_line: testing $at_desc ..."
+ $as_echo "140. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7909,13 +8894,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_130
-#AT_START_131
-at_fn_group_banner 131 'rpmvercmp.at:81' \
+#AT_STOP_140
+#AT_START_141
+at_fn_group_banner 141 'rpmvercmp.at:81' \
"rpmvercmp(a+, a+) = 0" " " 8
at_xfail=no
(
- $as_echo "131. $at_setup_line: testing $at_desc ..."
+ $as_echo "141. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7938,13 +8923,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_131
-#AT_START_132
-at_fn_group_banner 132 'rpmvercmp.at:82' \
+#AT_STOP_141
+#AT_START_142
+at_fn_group_banner 142 'rpmvercmp.at:82' \
"rpmvercmp(a+, a_) = 0" " " 8
at_xfail=no
(
- $as_echo "132. $at_setup_line: testing $at_desc ..."
+ $as_echo "142. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7967,13 +8952,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_132
-#AT_START_133
-at_fn_group_banner 133 'rpmvercmp.at:83' \
+#AT_STOP_142
+#AT_START_143
+at_fn_group_banner 143 'rpmvercmp.at:83' \
"rpmvercmp(a_, a+) = 0" " " 8
at_xfail=no
(
- $as_echo "133. $at_setup_line: testing $at_desc ..."
+ $as_echo "143. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -7996,13 +8981,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_133
-#AT_START_134
-at_fn_group_banner 134 'rpmvercmp.at:84' \
+#AT_STOP_143
+#AT_START_144
+at_fn_group_banner 144 'rpmvercmp.at:84' \
"rpmvercmp(+a, +a) = 0" " " 8
at_xfail=no
(
- $as_echo "134. $at_setup_line: testing $at_desc ..."
+ $as_echo "144. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8025,13 +9010,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_134
-#AT_START_135
-at_fn_group_banner 135 'rpmvercmp.at:85' \
+#AT_STOP_144
+#AT_START_145
+at_fn_group_banner 145 'rpmvercmp.at:85' \
"rpmvercmp(+a, _a) = 0" " " 8
at_xfail=no
(
- $as_echo "135. $at_setup_line: testing $at_desc ..."
+ $as_echo "145. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8054,13 +9039,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_135
-#AT_START_136
-at_fn_group_banner 136 'rpmvercmp.at:86' \
+#AT_STOP_145
+#AT_START_146
+at_fn_group_banner 146 'rpmvercmp.at:86' \
"rpmvercmp(_a, +a) = 0" " " 8
at_xfail=no
(
- $as_echo "136. $at_setup_line: testing $at_desc ..."
+ $as_echo "146. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8083,13 +9068,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_136
-#AT_START_137
-at_fn_group_banner 137 'rpmvercmp.at:87' \
+#AT_STOP_146
+#AT_START_147
+at_fn_group_banner 147 'rpmvercmp.at:87' \
"rpmvercmp(+_, +_) = 0" " " 8
at_xfail=no
(
- $as_echo "137. $at_setup_line: testing $at_desc ..."
+ $as_echo "147. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8112,13 +9097,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_137
-#AT_START_138
-at_fn_group_banner 138 'rpmvercmp.at:88' \
+#AT_STOP_147
+#AT_START_148
+at_fn_group_banner 148 'rpmvercmp.at:88' \
"rpmvercmp(_+, +_) = 0" " " 8
at_xfail=no
(
- $as_echo "138. $at_setup_line: testing $at_desc ..."
+ $as_echo "148. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8141,13 +9126,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_138
-#AT_START_139
-at_fn_group_banner 139 'rpmvercmp.at:89' \
+#AT_STOP_148
+#AT_START_149
+at_fn_group_banner 149 'rpmvercmp.at:89' \
"rpmvercmp(_+, _+) = 0" " " 8
at_xfail=no
(
- $as_echo "139. $at_setup_line: testing $at_desc ..."
+ $as_echo "149. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8170,13 +9155,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_139
-#AT_START_140
-at_fn_group_banner 140 'rpmvercmp.at:90' \
+#AT_STOP_149
+#AT_START_150
+at_fn_group_banner 150 'rpmvercmp.at:90' \
"rpmvercmp(+, _) = 0" " " 8
at_xfail=no
(
- $as_echo "140. $at_setup_line: testing $at_desc ..."
+ $as_echo "150. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8199,13 +9184,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_140
-#AT_START_141
-at_fn_group_banner 141 'rpmvercmp.at:91' \
+#AT_STOP_150
+#AT_START_151
+at_fn_group_banner 151 'rpmvercmp.at:91' \
"rpmvercmp(_, +) = 0" " " 8
at_xfail=no
(
- $as_echo "141. $at_setup_line: testing $at_desc ..."
+ $as_echo "151. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8228,13 +9213,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_141
-#AT_START_142
-at_fn_group_banner 142 'rpmvercmp.at:94' \
+#AT_STOP_151
+#AT_START_152
+at_fn_group_banner 152 'rpmvercmp.at:94' \
"rpmvercmp(1.0~rc1, 1.0~rc1) = 0" " " 8
at_xfail=no
(
- $as_echo "142. $at_setup_line: testing $at_desc ..."
+ $as_echo "152. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8257,13 +9242,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_142
-#AT_START_143
-at_fn_group_banner 143 'rpmvercmp.at:95' \
+#AT_STOP_152
+#AT_START_153
+at_fn_group_banner 153 'rpmvercmp.at:95' \
"rpmvercmp(1.0~rc1, 1.0) = -1" " " 8
at_xfail=no
(
- $as_echo "143. $at_setup_line: testing $at_desc ..."
+ $as_echo "153. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8286,13 +9271,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_143
-#AT_START_144
-at_fn_group_banner 144 'rpmvercmp.at:96' \
+#AT_STOP_153
+#AT_START_154
+at_fn_group_banner 154 'rpmvercmp.at:96' \
"rpmvercmp(1.0, 1.0~rc1) = 1" " " 8
at_xfail=no
(
- $as_echo "144. $at_setup_line: testing $at_desc ..."
+ $as_echo "154. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8315,13 +9300,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_144
-#AT_START_145
-at_fn_group_banner 145 'rpmvercmp.at:97' \
+#AT_STOP_154
+#AT_START_155
+at_fn_group_banner 155 'rpmvercmp.at:97' \
"rpmvercmp(1.0~rc1, 1.0~rc2) = -1" " " 8
at_xfail=no
(
- $as_echo "145. $at_setup_line: testing $at_desc ..."
+ $as_echo "155. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8344,13 +9329,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_145
-#AT_START_146
-at_fn_group_banner 146 'rpmvercmp.at:98' \
+#AT_STOP_155
+#AT_START_156
+at_fn_group_banner 156 'rpmvercmp.at:98' \
"rpmvercmp(1.0~rc2, 1.0~rc1) = 1" " " 8
at_xfail=no
(
- $as_echo "146. $at_setup_line: testing $at_desc ..."
+ $as_echo "156. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8373,13 +9358,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_146
-#AT_START_147
-at_fn_group_banner 147 'rpmvercmp.at:99' \
+#AT_STOP_156
+#AT_START_157
+at_fn_group_banner 157 'rpmvercmp.at:99' \
"rpmvercmp(1.0~rc1~git123, 1.0~rc1~git123) = 0" " " 8
at_xfail=no
(
- $as_echo "147. $at_setup_line: testing $at_desc ..."
+ $as_echo "157. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8402,13 +9387,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_147
-#AT_START_148
-at_fn_group_banner 148 'rpmvercmp.at:100' \
+#AT_STOP_157
+#AT_START_158
+at_fn_group_banner 158 'rpmvercmp.at:100' \
"rpmvercmp(1.0~rc1~git123, 1.0~rc1) = -1" " " 8
at_xfail=no
(
- $as_echo "148. $at_setup_line: testing $at_desc ..."
+ $as_echo "158. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8431,13 +9416,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_148
-#AT_START_149
-at_fn_group_banner 149 'rpmvercmp.at:101' \
+#AT_STOP_158
+#AT_START_159
+at_fn_group_banner 159 'rpmvercmp.at:101' \
"rpmvercmp(1.0~rc1, 1.0~rc1~git123) = 1" " " 8
at_xfail=no
(
- $as_echo "149. $at_setup_line: testing $at_desc ..."
+ $as_echo "159. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8460,13 +9445,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_149
-#AT_START_150
-at_fn_group_banner 150 'rpmdeps.at:7' \
+#AT_STOP_159
+#AT_START_160
+at_fn_group_banner 160 'rpmdeps.at:7' \
"missing dependency" " " 9
at_xfail=no
(
- $as_echo "150. $at_setup_line: testing $at_desc ..."
+ $as_echo "160. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8520,13 +9505,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_150
-#AT_START_151
-at_fn_group_banner 151 'rpmdeps.at:30' \
+#AT_STOP_160
+#AT_START_161
+at_fn_group_banner 161 'rpmdeps.at:30' \
"cross-depending packages" " " 9
at_xfail=no
(
- $as_echo "151. $at_setup_line: testing $at_desc ..."
+ $as_echo "161. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8587,13 +9572,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_151
-#AT_START_152
-at_fn_group_banner 152 'rpmdeps.at:56' \
+#AT_STOP_161
+#AT_START_162
+at_fn_group_banner 162 'rpmdeps.at:56' \
"unsatisfied versioned require" " " 9
at_xfail=no
(
- $as_echo "152. $at_setup_line: testing $at_desc ..."
+ $as_echo "162. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8657,13 +9642,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_152
-#AT_START_153
-at_fn_group_banner 153 'rpmdeps.at:84' \
+#AT_STOP_162
+#AT_START_163
+at_fn_group_banner 163 'rpmdeps.at:84' \
"satisfied versioned require" " " 9
at_xfail=no
(
- $as_echo "153. $at_setup_line: testing $at_desc ..."
+ $as_echo "163. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8724,13 +9709,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_153
-#AT_START_154
-at_fn_group_banner 154 'rpmdeps.at:110' \
+#AT_STOP_163
+#AT_START_164
+at_fn_group_banner 164 'rpmdeps.at:110' \
"versioned conflict in transaction" " " 9
at_xfail=no
(
- $as_echo "154. $at_setup_line: testing $at_desc ..."
+ $as_echo "164. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8792,13 +9777,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_154
-#AT_START_155
-at_fn_group_banner 155 'rpmdeps.at:137' \
+#AT_STOP_164
+#AT_START_165
+at_fn_group_banner 165 'rpmdeps.at:137' \
"versioned conflict in database" " " 9
at_xfail=no
(
- $as_echo "155. $at_setup_line: testing $at_desc ..."
+ $as_echo "165. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8862,13 +9847,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_155
-#AT_START_156
-at_fn_group_banner 156 'rpmdeps.at:163' \
+#AT_STOP_165
+#AT_START_166
+at_fn_group_banner 166 'rpmdeps.at:163' \
"install and verify self-conflicting package" " " 9
at_xfail=no
(
- $as_echo "156. $at_setup_line: testing $at_desc ..."
+ $as_echo "166. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -8923,13 +9908,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_156
-#AT_START_157
-at_fn_group_banner 157 'rpmdeps.at:185' \
+#AT_STOP_166
+#AT_START_167
+at_fn_group_banner 167 'rpmdeps.at:185' \
"explicit file conflicts" " " 9
at_xfail=no
(
- $as_echo "157. $at_setup_line: testing $at_desc ..."
+ $as_echo "167. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9013,13 +9998,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_157
-#AT_START_158
-at_fn_group_banner 158 'rpmdeps.at:224' \
+#AT_STOP_167
+#AT_START_168
+at_fn_group_banner 168 'rpmdeps.at:224' \
"erase to break dependencies" " " 9
at_xfail=no
(
- $as_echo "158. $at_setup_line: testing $at_desc ..."
+ $as_echo "168. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9085,13 +10070,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_158
-#AT_START_159
-at_fn_group_banner 159 'rpmdeps.at:252' \
+#AT_STOP_168
+#AT_START_169
+at_fn_group_banner 169 'rpmdeps.at:252' \
"erase to break colored file dependency" " " 9
at_xfail=no
(
- $as_echo "159. $at_setup_line: testing $at_desc ..."
+ $as_echo "169. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9159,13 +10144,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_159
-#AT_START_160
-at_fn_group_banner 160 'rpmdeps.at:281' \
+#AT_STOP_169
+#AT_START_170
+at_fn_group_banner 170 'rpmdeps.at:281' \
"erase on wrong-colored file dependency" " " 9
at_xfail=no
(
- $as_echo "160. $at_setup_line: testing $at_desc ..."
+ $as_echo "170. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9230,13 +10215,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_160
-#AT_START_161
-at_fn_group_banner 161 'rpmconflict.at:7' \
+#AT_STOP_170
+#AT_START_171
+at_fn_group_banner 171 'rpmconflict.at:7' \
"package with file conflict" " " 10
at_xfail=no
(
- $as_echo "161. $at_setup_line: testing $at_desc ..."
+ $as_echo "171. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9293,13 +10278,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_161
-#AT_START_162
-at_fn_group_banner 162 'rpmconflict.at:31' \
+#AT_STOP_171
+#AT_START_172
+at_fn_group_banner 172 'rpmconflict.at:31' \
"two packages with a conflicting file" " " 10
at_xfail=no
(
- $as_echo "162. $at_setup_line: testing $at_desc ..."
+ $as_echo "172. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9342,13 +10327,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_162
-#AT_START_163
-at_fn_group_banner 163 'rpmconflict.at:48' \
+#AT_STOP_172
+#AT_START_173
+at_fn_group_banner 173 'rpmconflict.at:48' \
"package with shareable file" " " 10
at_xfail=no
(
- $as_echo "163. $at_setup_line: testing $at_desc ..."
+ $as_echo "173. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9405,13 +10390,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_163
-#AT_START_164
-at_fn_group_banner 164 'rpmconflict.at:72' \
+#AT_STOP_173
+#AT_START_174
+at_fn_group_banner 174 'rpmconflict.at:72' \
"two packages with shareable file" " " 10
at_xfail=no
(
- $as_echo "164. $at_setup_line: testing $at_desc ..."
+ $as_echo "174. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9454,13 +10439,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_164
-#AT_START_165
-at_fn_group_banner 165 'rpmconflict.at:89' \
+#AT_STOP_174
+#AT_START_175
+at_fn_group_banner 175 'rpmconflict.at:89' \
"non-conflicting identical basenames" " " 10
at_xfail=no
(
- $as_echo "165. $at_setup_line: testing $at_desc ..."
+ $as_echo "175. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9505,13 +10490,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_165
-#AT_START_166
-at_fn_group_banner 166 'rpmconflict.at:107' \
+#AT_STOP_175
+#AT_START_176
+at_fn_group_banner 176 'rpmconflict.at:107' \
"conflicting identical basenames" " " 10
at_xfail=no
(
- $as_echo "166. $at_setup_line: testing $at_desc ..."
+ $as_echo "176. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9562,13 +10547,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_166
-#AT_START_167
-at_fn_group_banner 167 'rpmconflict.at:127' \
+#AT_STOP_176
+#AT_START_177
+at_fn_group_banner 177 'rpmconflict.at:127' \
"multilib elf conflict, prefer 64bit 1" " " 10
at_xfail=no
(
- $as_echo "167. $at_setup_line: testing $at_desc ..."
+ $as_echo "177. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9620,13 +10605,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_167
-#AT_START_168
-at_fn_group_banner 168 'rpmconflict.at:149' \
+#AT_STOP_177
+#AT_START_178
+at_fn_group_banner 178 'rpmconflict.at:149' \
"multilib elf conflict, prefer 64bit 2" " " 10
at_xfail=no
(
- $as_echo "168. $at_setup_line: testing $at_desc ..."
+ $as_echo "178. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9687,13 +10672,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_168
-#AT_START_169
-at_fn_group_banner 169 'rpmconflict.at:176' \
+#AT_STOP_178
+#AT_START_179
+at_fn_group_banner 179 'rpmconflict.at:176' \
"multilib elf conflict, prefer 64bit 3" " " 10
at_xfail=no
(
- $as_echo "169. $at_setup_line: testing $at_desc ..."
+ $as_echo "179. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9754,13 +10739,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_169
-#AT_START_170
-at_fn_group_banner 170 'rpmconflict.at:203' \
+#AT_STOP_179
+#AT_START_180
+at_fn_group_banner 180 'rpmconflict.at:203' \
"multilib elf conflict, prefer 32bit 1" " " 10
at_xfail=no
(
- $as_echo "170. $at_setup_line: testing $at_desc ..."
+ $as_echo "180. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9812,13 +10797,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_170
-#AT_START_171
-at_fn_group_banner 171 'rpmconflict.at:225' \
+#AT_STOP_180
+#AT_START_181
+at_fn_group_banner 181 'rpmconflict.at:225' \
"multilib elf conflict, prefer 32bit 2" " " 10
at_xfail=no
(
- $as_echo "171. $at_setup_line: testing $at_desc ..."
+ $as_echo "181. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9879,13 +10864,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_171
-#AT_START_172
-at_fn_group_banner 172 'rpmconflict.at:252' \
+#AT_STOP_181
+#AT_START_182
+at_fn_group_banner 182 'rpmconflict.at:252' \
"multilib elf conflict, prefer 32bit 3" " " 10
at_xfail=no
(
- $as_echo "172. $at_setup_line: testing $at_desc ..."
+ $as_echo "182. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -9946,13 +10931,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_172
-#AT_START_173
-at_fn_group_banner 173 'rpmconflict.at:279' \
+#AT_STOP_182
+#AT_START_183
+at_fn_group_banner 183 'rpmconflict.at:279' \
"multilib elf vs non-elf file conflict 1" " " 10
at_xfail=no
(
- $as_echo "173. $at_setup_line: testing $at_desc ..."
+ $as_echo "183. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10005,13 +10990,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_173
-#AT_START_174
-at_fn_group_banner 174 'rpmconflict.at:300' \
+#AT_STOP_183
+#AT_START_184
+at_fn_group_banner 184 'rpmconflict.at:300' \
"multilib elf vs non-elf file conflict 2" " " 10
at_xfail=no
(
- $as_echo "174. $at_setup_line: testing $at_desc ..."
+ $as_echo "184. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10072,13 +11057,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_174
-#AT_START_175
-at_fn_group_banner 175 'rpmconflict.at:325' \
+#AT_STOP_184
+#AT_START_185
+at_fn_group_banner 185 'rpmconflict.at:325' \
"multilib elf vs non-elf file conflict 3" " " 10
at_xfail=no
(
- $as_echo "175. $at_setup_line: testing $at_desc ..."
+ $as_echo "185. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10139,13 +11124,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_175
-#AT_START_176
-at_fn_group_banner 176 'rpmconflict.at:351' \
+#AT_STOP_185
+#AT_START_186
+at_fn_group_banner 186 'rpmconflict.at:351' \
"replacing directory with symlink" " " 10
at_xfail=no
(
- $as_echo "176. $at_setup_line: testing $at_desc ..."
+ $as_echo "186. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10202,13 +11187,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_176
-#AT_START_177
-at_fn_group_banner 177 'rpmconflict.at:375' \
+#AT_STOP_186
+#AT_START_187
+at_fn_group_banner 187 'rpmconflict.at:375' \
"replacing symlink with directory" " " 10
at_xfail=no
(
- $as_echo "177. $at_setup_line: testing $at_desc ..."
+ $as_echo "187. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10265,13 +11250,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_177
-#AT_START_178
-at_fn_group_banner 178 'rpmconflict.at:400' \
+#AT_STOP_187
+#AT_START_188
+at_fn_group_banner 188 'rpmconflict.at:400' \
"real file with shared ghost" " " 10
at_xfail=no
(
- $as_echo "178. $at_setup_line: testing $at_desc ..."
+ $as_echo "188. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10349,13 +11334,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_178
-#AT_START_179
-at_fn_group_banner 179 'rpmreplace.at:4' \
+#AT_STOP_188
+#AT_START_189
+at_fn_group_banner 189 'rpmreplace.at:4' \
"upgrade to/from regular file" " " 11
at_xfail=no
(
- $as_echo "179. $at_setup_line: testing $at_desc ..."
+ $as_echo "189. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10438,13 +11423,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_179
-#AT_START_180
-at_fn_group_banner 180 'rpmreplace.at:40' \
+#AT_STOP_189
+#AT_START_190
+at_fn_group_banner 190 'rpmreplace.at:40' \
"upgrade regular file to/from broken link" " " 11
at_xfail=no
(
- $as_echo "180. $at_setup_line: testing $at_desc ..."
+ $as_echo "190. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10527,13 +11512,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_180
-#AT_START_181
-at_fn_group_banner 181 'rpmreplace.at:76' \
+#AT_STOP_190
+#AT_START_191
+at_fn_group_banner 191 'rpmreplace.at:76' \
"upgrade regular file to/from file link" " " 11
at_xfail=no
(
- $as_echo "181. $at_setup_line: testing $at_desc ..."
+ $as_echo "191. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10616,13 +11601,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_181
-#AT_START_182
-at_fn_group_banner 182 'rpmreplace.at:112' \
+#AT_STOP_191
+#AT_START_192
+at_fn_group_banner 192 'rpmreplace.at:112' \
"upgrade broken link to broken link" " " 11
at_xfail=no
(
- $as_echo "182. $at_setup_line: testing $at_desc ..."
+ $as_echo "192. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10700,13 +11685,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_182
-#AT_START_183
-at_fn_group_banner 183 'rpmreplace.at:145' \
+#AT_STOP_192
+#AT_START_193
+at_fn_group_banner 193 'rpmreplace.at:145' \
"upgrade file link to file link" " " 11
at_xfail=no
(
- $as_echo "183. $at_setup_line: testing $at_desc ..."
+ $as_echo "193. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10784,13 +11769,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_183
-#AT_START_184
-at_fn_group_banner 184 'rpmreplace.at:178' \
+#AT_STOP_193
+#AT_START_194
+at_fn_group_banner 194 'rpmreplace.at:178' \
"upgrade directory link to directory link" " " 11
at_xfail=no
(
- $as_echo "184. $at_setup_line: testing $at_desc ..."
+ $as_echo "194. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10868,13 +11853,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_184
-#AT_START_185
-at_fn_group_banner 185 'rpmreplace.at:211' \
+#AT_STOP_194
+#AT_START_195
+at_fn_group_banner 195 'rpmreplace.at:211' \
"upgrade regular file to directory" " " 11
at_xfail=no
(
- $as_echo "185. $at_setup_line: testing $at_desc ..."
+ $as_echo "195. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -10949,13 +11934,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_185
-#AT_START_186
-at_fn_group_banner 186 'rpmreplace.at:242' \
+#AT_STOP_195
+#AT_START_196
+at_fn_group_banner 196 'rpmreplace.at:242' \
"upgrade broken link to directory" " " 11
at_xfail=no
(
- $as_echo "186. $at_setup_line: testing $at_desc ..."
+ $as_echo "196. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11030,13 +12015,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_186
-#AT_START_187
-at_fn_group_banner 187 'rpmreplace.at:273' \
+#AT_STOP_196
+#AT_START_197
+at_fn_group_banner 197 'rpmreplace.at:273' \
"upgrade file link to directory" " " 11
at_xfail=no
(
- $as_echo "187. $at_setup_line: testing $at_desc ..."
+ $as_echo "197. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11111,13 +12096,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_187
-#AT_START_188
-at_fn_group_banner 188 'rpmreplace.at:304' \
+#AT_STOP_197
+#AT_START_198
+at_fn_group_banner 198 'rpmreplace.at:304' \
"upgrade directory link to directory" " " 11
at_xfail=no
(
- $as_echo "188. $at_setup_line: testing $at_desc ..."
+ $as_echo "198. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11192,13 +12177,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_188
-#AT_START_189
-at_fn_group_banner 189 'rpmreplace.at:335' \
+#AT_STOP_198
+#AT_START_199
+at_fn_group_banner 199 'rpmreplace.at:335' \
"upgrade empty directory to empty directory" " " 11
at_xfail=no
(
- $as_echo "189. $at_setup_line: testing $at_desc ..."
+ $as_echo "199. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11267,13 +12252,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_189
-#AT_START_190
-at_fn_group_banner 190 'rpmreplace.at:363' \
+#AT_STOP_199
+#AT_START_200
+at_fn_group_banner 200 'rpmreplace.at:363' \
"upgrade empty directory to regular file" " " 11
at_xfail=no
(
- $as_echo "190. $at_setup_line: testing $at_desc ..."
+ $as_echo "200. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11344,13 +12329,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_190
-#AT_START_191
-at_fn_group_banner 191 'rpmreplace.at:392' \
+#AT_STOP_200
+#AT_START_201
+at_fn_group_banner 201 'rpmreplace.at:392' \
"upgrade locally symlinked directory" " " 11
at_xfail=no
(
- $as_echo "191. $at_setup_line: testing $at_desc ..."
+ $as_echo "201. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11427,13 +12412,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_191
-#AT_START_192
-at_fn_group_banner 192 'rpmreplace.at:424' \
+#AT_STOP_201
+#AT_START_202
+at_fn_group_banner 202 'rpmreplace.at:424' \
"upgrade empty directory to broken link" " " 11
at_xfail=no
(
- $as_echo "192. $at_setup_line: testing $at_desc ..."
+ $as_echo "202. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11504,13 +12489,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_192
-#AT_START_193
-at_fn_group_banner 193 'rpmreplace.at:453' \
+#AT_STOP_202
+#AT_START_203
+at_fn_group_banner 203 'rpmreplace.at:453' \
"upgrade empty directory to file link" " " 11
at_xfail=no
(
- $as_echo "193. $at_setup_line: testing $at_desc ..."
+ $as_echo "203. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11581,13 +12566,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_193
-#AT_START_194
-at_fn_group_banner 194 'rpmreplace.at:482' \
+#AT_STOP_203
+#AT_START_204
+at_fn_group_banner 204 'rpmreplace.at:482' \
"upgrade removed empty directory to file link" " " 11
at_xfail=no
(
- $as_echo "194. $at_setup_line: testing $at_desc ..."
+ $as_echo "204. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11660,13 +12645,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_194
-#AT_START_195
-at_fn_group_banner 195 'rpmreplace.at:512' \
+#AT_STOP_204
+#AT_START_205
+at_fn_group_banner 205 'rpmreplace.at:512' \
"upgrade replaced empty directory to file link" " " 11
at_xfail=no
(
- $as_echo "195. $at_setup_line: testing $at_desc ..."
+ $as_echo "205. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11739,13 +12724,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_195
-#AT_START_196
-at_fn_group_banner 196 'rpmreplace.at:542' \
+#AT_STOP_205
+#AT_START_206
+at_fn_group_banner 206 'rpmreplace.at:542' \
"upgrade empty directory to file link with pretrans" "" 11
at_xfail=no
(
- $as_echo "196. $at_setup_line: testing $at_desc ..."
+ $as_echo "206. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11820,13 +12805,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_196
-#AT_START_197
-at_fn_group_banner 197 'rpmconfig.at:6' \
+#AT_STOP_206
+#AT_START_207
+at_fn_group_banner 207 'rpmconfig.at:6' \
"install config on existiting file" " " 12
at_xfail=no
(
- $as_echo "197. $at_setup_line: testing $at_desc ..."
+ $as_echo "207. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11894,13 +12879,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_197
-#AT_START_198
-at_fn_group_banner 198 'rpmconfig.at:35' \
+#AT_STOP_207
+#AT_START_208
+at_fn_group_banner 208 'rpmconfig.at:35' \
"install config(noreplace) on existiting file" " " 12
at_xfail=no
(
- $as_echo "198. $at_setup_line: testing $at_desc ..."
+ $as_echo "208. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -11968,13 +12953,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_198
-#AT_START_199
-at_fn_group_banner 199 'rpmconfig.at:64' \
+#AT_STOP_208
+#AT_START_209
+at_fn_group_banner 209 'rpmconfig.at:64' \
"install config on existiting identical file" " " 12
at_xfail=no
(
- $as_echo "199. $at_setup_line: testing $at_desc ..."
+ $as_echo "209. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12039,13 +13024,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_199
-#AT_START_200
-at_fn_group_banner 200 'rpmconfig.at:91' \
+#AT_STOP_209
+#AT_START_210
+at_fn_group_banner 210 'rpmconfig.at:91' \
"erase unchanged config" " " 12
at_xfail=no
(
- $as_echo "200. $at_setup_line: testing $at_desc ..."
+ $as_echo "210. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12108,13 +13093,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_200
-#AT_START_201
-at_fn_group_banner 201 'rpmconfig.at:117' \
+#AT_STOP_210
+#AT_START_211
+at_fn_group_banner 211 'rpmconfig.at:117' \
"erase changed config" " " 12
at_xfail=no
(
- $as_echo "201. $at_setup_line: testing $at_desc ..."
+ $as_echo "211. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12184,13 +13169,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_201
-#AT_START_202
-at_fn_group_banner 202 'rpmconfig.at:147' \
+#AT_STOP_211
+#AT_START_212
+at_fn_group_banner 212 'rpmconfig.at:147' \
"erase changed config(noreplace)" " " 12
at_xfail=no
(
- $as_echo "202. $at_setup_line: testing $at_desc ..."
+ $as_echo "212. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12262,13 +13247,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_202
-#AT_START_203
-at_fn_group_banner 203 'rpmconfig.at:179' \
+#AT_STOP_212
+#AT_START_213
+at_fn_group_banner 213 'rpmconfig.at:179' \
"upgrade unchanged config" " " 12
at_xfail=no
(
- $as_echo "203. $at_setup_line: testing $at_desc ..."
+ $as_echo "213. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12336,13 +13321,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_203
-#AT_START_204
-at_fn_group_banner 204 'rpmconfig.at:209' \
+#AT_STOP_213
+#AT_START_214
+at_fn_group_banner 214 'rpmconfig.at:209' \
"upgrade modified config" " " 12
at_xfail=no
(
- $as_echo "204. $at_setup_line: testing $at_desc ..."
+ $as_echo "214. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12415,13 +13400,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_204
-#AT_START_205
-at_fn_group_banner 205 'rpmconfig.at:242' \
+#AT_STOP_214
+#AT_START_215
+at_fn_group_banner 215 'rpmconfig.at:242' \
"upgrade changing config" " " 12
at_xfail=no
(
- $as_echo "205. $at_setup_line: testing $at_desc ..."
+ $as_echo "215. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12489,13 +13474,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_205
-#AT_START_206
-at_fn_group_banner 206 'rpmconfig.at:272' \
+#AT_STOP_215
+#AT_START_216
+at_fn_group_banner 216 'rpmconfig.at:272' \
"upgrade changing, modified config 1" " " 12
at_xfail=no
(
- $as_echo "206. $at_setup_line: testing $at_desc ..."
+ $as_echo "216. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12573,13 +13558,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_206
-#AT_START_207
-at_fn_group_banner 207 'rpmconfig.at:308' \
+#AT_STOP_216
+#AT_START_217
+at_fn_group_banner 217 'rpmconfig.at:308' \
"upgrade changing, modified config 2" " " 12
at_xfail=no
(
- $as_echo "207. $at_setup_line: testing $at_desc ..."
+ $as_echo "217. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12652,13 +13637,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_207
-#AT_START_208
-at_fn_group_banner 208 'rpmconfig.at:343' \
+#AT_STOP_217
+#AT_START_218
+at_fn_group_banner 218 'rpmconfig.at:343' \
"upgrade unchanged config(noreplace)" " " 12
at_xfail=no
(
- $as_echo "208. $at_setup_line: testing $at_desc ..."
+ $as_echo "218. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12728,13 +13713,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_208
-#AT_START_209
-at_fn_group_banner 209 'rpmconfig.at:375' \
+#AT_STOP_218
+#AT_START_219
+at_fn_group_banner 219 'rpmconfig.at:375' \
"upgrade modified config(noreplace)" " " 12
at_xfail=no
(
- $as_echo "209. $at_setup_line: testing $at_desc ..."
+ $as_echo "219. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12809,13 +13794,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_209
-#AT_START_210
-at_fn_group_banner 210 'rpmconfig.at:409' \
+#AT_STOP_219
+#AT_START_220
+at_fn_group_banner 220 'rpmconfig.at:409' \
"upgrade changing config(noreplace)" " " 12
at_xfail=no
(
- $as_echo "210. $at_setup_line: testing $at_desc ..."
+ $as_echo "220. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12885,13 +13870,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_210
-#AT_START_211
-at_fn_group_banner 211 'rpmconfig.at:440' \
+#AT_STOP_220
+#AT_START_221
+at_fn_group_banner 221 'rpmconfig.at:440' \
"upgrade changing, modified config(noreplace) 1" " " 12
at_xfail=no
(
- $as_echo "211. $at_setup_line: testing $at_desc ..."
+ $as_echo "221. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -12971,13 +13956,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_211
-#AT_START_212
-at_fn_group_banner 212 'rpmconfig.at:477' \
+#AT_STOP_221
+#AT_START_222
+at_fn_group_banner 222 'rpmconfig.at:477' \
"upgrade changing, modified config(noreplace) 2" " " 12
at_xfail=no
(
- $as_echo "212. $at_setup_line: testing $at_desc ..."
+ $as_echo "222. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13052,13 +14037,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_212
-#AT_START_213
-at_fn_group_banner 213 'rpmconfig.at:512' \
+#AT_STOP_222
+#AT_START_223
+at_fn_group_banner 223 'rpmconfig.at:512' \
"upgrade unchanged shared config" " " 12
at_xfail=no
(
- $as_echo "213. $at_setup_line: testing $at_desc ..."
+ $as_echo "223. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13141,13 +14126,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_213
-#AT_START_214
-at_fn_group_banner 214 'rpmconfig.at:550' \
+#AT_STOP_223
+#AT_START_224
+at_fn_group_banner 224 'rpmconfig.at:550' \
"upgrade modified shared config" " " 12
at_xfail=no
(
- $as_echo "214. $at_setup_line: testing $at_desc ..."
+ $as_echo "224. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13234,13 +14219,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_214
-#AT_START_215
-at_fn_group_banner 215 'rpmconfig.at:590' \
+#AT_STOP_224
+#AT_START_225
+at_fn_group_banner 225 'rpmconfig.at:590' \
"upgrade changing shared config" " " 12
at_xfail=no
(
- $as_echo "215. $at_setup_line: testing $at_desc ..."
+ $as_echo "225. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13322,13 +14307,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_215
-#AT_START_216
-at_fn_group_banner 216 'rpmconfig.at:627' \
+#AT_STOP_225
+#AT_START_226
+at_fn_group_banner 226 'rpmconfig.at:627' \
"upgrade changing, modified shared config 1" " " 12
at_xfail=no
(
- $as_echo "216. $at_setup_line: testing $at_desc ..."
+ $as_echo "226. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13420,13 +14405,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_216
-#AT_START_217
-at_fn_group_banner 217 'rpmconfig.at:670' \
+#AT_STOP_226
+#AT_START_227
+at_fn_group_banner 227 'rpmconfig.at:670' \
"upgrade changing, modified shared config 2" " " 12
at_xfail=no
(
- $as_echo "217. $at_setup_line: testing $at_desc ..."
+ $as_echo "227. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13513,13 +14498,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_217
-#AT_START_218
-at_fn_group_banner 218 'rpmconfig.at:711' \
+#AT_STOP_227
+#AT_START_228
+at_fn_group_banner 228 'rpmconfig.at:711' \
"upgrade changing, modified shared config(noreplace) 1" "" 12
at_xfail=no
(
- $as_echo "218. $at_setup_line: testing $at_desc ..."
+ $as_echo "228. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13613,13 +14598,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_218
-#AT_START_219
-at_fn_group_banner 219 'rpmconfig.at:755' \
+#AT_STOP_228
+#AT_START_229
+at_fn_group_banner 229 'rpmconfig.at:755' \
"upgrade changing, modified shared config(noreplace) 2" "" 12
at_xfail=no
(
- $as_echo "219. $at_setup_line: testing $at_desc ..."
+ $as_echo "229. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13708,13 +14693,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_219
-#AT_START_220
-at_fn_group_banner 220 'rpmconfig.at:796' \
+#AT_STOP_229
+#AT_START_230
+at_fn_group_banner 230 'rpmconfig.at:796' \
"install/upgrade/erase ghost config" " " 12
at_xfail=no
(
- $as_echo "220. $at_setup_line: testing $at_desc ..."
+ $as_echo "230. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13822,13 +14807,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_220
-#AT_START_221
-at_fn_group_banner 221 'rpmconfig2.at:6' \
+#AT_STOP_230
+#AT_START_231
+at_fn_group_banner 231 'rpmconfig2.at:6' \
"install config on existiting symlink" " " 13
at_xfail=no
(
- $as_echo "221. $at_setup_line: testing $at_desc ..."
+ $as_echo "231. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13898,13 +14883,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_221
-#AT_START_222
-at_fn_group_banner 222 'rpmconfig2.at:36' \
+#AT_STOP_231
+#AT_START_232
+at_fn_group_banner 232 'rpmconfig2.at:36' \
"install config on existiting identical link" " " 13
at_xfail=no
(
- $as_echo "222. $at_setup_line: testing $at_desc ..."
+ $as_echo "232. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -13974,13 +14959,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_222
-#AT_START_223
-at_fn_group_banner 223 'rpmconfig2.at:66' \
+#AT_STOP_232
+#AT_START_233
+at_fn_group_banner 233 'rpmconfig2.at:66' \
"erase unchanged config link" " " 13
at_xfail=no
(
- $as_echo "223. $at_setup_line: testing $at_desc ..."
+ $as_echo "233. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14045,13 +15030,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_223
-#AT_START_224
-at_fn_group_banner 224 'rpmconfig2.at:93' \
+#AT_STOP_233
+#AT_START_234
+at_fn_group_banner 234 'rpmconfig2.at:93' \
"erase changed config link" " " 13
at_xfail=no
(
- $as_echo "224. $at_setup_line: testing $at_desc ..."
+ $as_echo "234. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14121,13 +15106,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_224
-#AT_START_225
-at_fn_group_banner 225 'rpmconfig2.at:124' \
+#AT_STOP_234
+#AT_START_235
+at_fn_group_banner 235 'rpmconfig2.at:124' \
"upgrade unchanged config link" " " 13
at_xfail=no
(
- $as_echo "225. $at_setup_line: testing $at_desc ..."
+ $as_echo "235. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14197,13 +15182,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_225
-#AT_START_226
-at_fn_group_banner 226 'rpmconfig2.at:156' \
+#AT_STOP_235
+#AT_START_236
+at_fn_group_banner 236 'rpmconfig2.at:156' \
"upgrade modified config link" " " 13
at_xfail=no
(
- $as_echo "226. $at_setup_line: testing $at_desc ..."
+ $as_echo "236. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14278,13 +15263,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_226
-#AT_START_227
-at_fn_group_banner 227 'rpmconfig2.at:190' \
+#AT_STOP_236
+#AT_START_237
+at_fn_group_banner 237 'rpmconfig2.at:190' \
"upgrade changing config link" " " 13
at_xfail=no
(
- $as_echo "227. $at_setup_line: testing $at_desc ..."
+ $as_echo "237. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14354,13 +15339,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_227
-#AT_START_228
-at_fn_group_banner 228 'rpmconfig2.at:221' \
+#AT_STOP_237
+#AT_START_238
+at_fn_group_banner 238 'rpmconfig2.at:221' \
"upgrade changing, modified config link 1" " " 13
at_xfail=no
(
- $as_echo "228. $at_setup_line: testing $at_desc ..."
+ $as_echo "238. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14440,13 +15425,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_228
-#AT_START_229
-at_fn_group_banner 229 'rpmconfig2.at:258' \
+#AT_STOP_238
+#AT_START_239
+at_fn_group_banner 239 'rpmconfig2.at:258' \
"upgrade changing, modified config link 2" " " 13
at_xfail=no
(
- $as_echo "229. $at_setup_line: testing $at_desc ..."
+ $as_echo "239. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14521,13 +15506,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_229
-#AT_START_230
-at_fn_group_banner 230 'rpmconfig2.at:294' \
+#AT_STOP_239
+#AT_START_240
+at_fn_group_banner 240 'rpmconfig2.at:294' \
"upgrade unchanged config(noreplace) link" " " 13
at_xfail=no
(
- $as_echo "230. $at_setup_line: testing $at_desc ..."
+ $as_echo "240. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14599,13 +15584,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_230
-#AT_START_231
-at_fn_group_banner 231 'rpmconfig2.at:327' \
+#AT_STOP_240
+#AT_START_241
+at_fn_group_banner 241 'rpmconfig2.at:327' \
"upgrade modified config(noreplace) link" " " 13
at_xfail=no
(
- $as_echo "231. $at_setup_line: testing $at_desc ..."
+ $as_echo "241. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14682,13 +15667,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_231
-#AT_START_232
-at_fn_group_banner 232 'rpmconfig2.at:362' \
+#AT_STOP_241
+#AT_START_242
+at_fn_group_banner 242 'rpmconfig2.at:362' \
"upgrade changing config(noreplace) link" " " 13
at_xfail=no
(
- $as_echo "232. $at_setup_line: testing $at_desc ..."
+ $as_echo "242. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14760,13 +15745,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_232
-#AT_START_233
-at_fn_group_banner 233 'rpmconfig2.at:394' \
+#AT_STOP_242
+#AT_START_243
+at_fn_group_banner 243 'rpmconfig2.at:394' \
"upgrade changing, modified config(noreplace) link 1" "" 13
at_xfail=no
(
- $as_echo "233. $at_setup_line: testing $at_desc ..."
+ $as_echo "243. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14848,13 +15833,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_233
-#AT_START_234
-at_fn_group_banner 234 'rpmconfig2.at:432' \
+#AT_STOP_243
+#AT_START_244
+at_fn_group_banner 244 'rpmconfig2.at:432' \
"upgrade changing, modified config(noreplace) link 2" "" 13
at_xfail=no
(
- $as_echo "234. $at_setup_line: testing $at_desc ..."
+ $as_echo "244. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -14933,13 +15918,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_234
-#AT_START_235
-at_fn_group_banner 235 'rpmconfig2.at:469' \
+#AT_STOP_244
+#AT_START_245
+at_fn_group_banner 245 'rpmconfig2.at:469' \
"upgrade unchanged shared config link" " " 13
at_xfail=no
(
- $as_echo "235. $at_setup_line: testing $at_desc ..."
+ $as_echo "245. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15024,13 +16009,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_235
-#AT_START_236
-at_fn_group_banner 236 'rpmconfig2.at:508' \
+#AT_STOP_245
+#AT_START_246
+at_fn_group_banner 246 'rpmconfig2.at:508' \
"upgrade modified shared config link" " " 13
at_xfail=no
(
- $as_echo "236. $at_setup_line: testing $at_desc ..."
+ $as_echo "246. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15119,13 +16104,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_236
-#AT_START_237
-at_fn_group_banner 237 'rpmconfig2.at:549' \
+#AT_STOP_246
+#AT_START_247
+at_fn_group_banner 247 'rpmconfig2.at:549' \
"upgrade changing shared config link" " " 13
at_xfail=no
(
- $as_echo "237. $at_setup_line: testing $at_desc ..."
+ $as_echo "247. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15209,13 +16194,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_237
-#AT_START_238
-at_fn_group_banner 238 'rpmconfig2.at:587' \
+#AT_STOP_247
+#AT_START_248
+at_fn_group_banner 248 'rpmconfig2.at:587' \
"upgrade changing, modified shared config link 1" "" 13
at_xfail=no
(
- $as_echo "238. $at_setup_line: testing $at_desc ..."
+ $as_echo "248. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15309,13 +16294,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_238
-#AT_START_239
-at_fn_group_banner 239 'rpmconfig2.at:631' \
+#AT_STOP_248
+#AT_START_249
+at_fn_group_banner 249 'rpmconfig2.at:631' \
"upgrade changing, modified shared config link 2" "" 13
at_xfail=no
(
- $as_echo "239. $at_setup_line: testing $at_desc ..."
+ $as_echo "249. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15404,13 +16389,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_239
-#AT_START_240
-at_fn_group_banner 240 'rpmconfig2.at:673' \
+#AT_STOP_249
+#AT_START_250
+at_fn_group_banner 250 'rpmconfig2.at:673' \
"upgrade changing, modified shared config(noreplace) link 1" "" 13
at_xfail=no
(
- $as_echo "240. $at_setup_line: testing $at_desc ..."
+ $as_echo "250. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15506,13 +16491,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_240
-#AT_START_241
-at_fn_group_banner 241 'rpmconfig2.at:718' \
+#AT_STOP_250
+#AT_START_251
+at_fn_group_banner 251 'rpmconfig2.at:718' \
"upgrade changing, modified shared config(noreplace) link 2" "" 13
at_xfail=no
(
- $as_echo "241. $at_setup_line: testing $at_desc ..."
+ $as_echo "251. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15605,13 +16590,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_241
-#AT_START_242
-at_fn_group_banner 242 'rpmconfig3.at:6' \
+#AT_STOP_251
+#AT_START_252
+at_fn_group_banner 252 'rpmconfig3.at:6' \
"upgrade config to/from non-config" " " 14
at_xfail=no
(
- $as_echo "242. $at_setup_line: testing $at_desc ..."
+ $as_echo "252. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15696,13 +16681,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_242
-#AT_START_243
-at_fn_group_banner 243 'rpmconfig3.at:44' \
+#AT_STOP_252
+#AT_START_253
+at_fn_group_banner 253 'rpmconfig3.at:44' \
"upgrade modified config to/from non-config 1" " " 14
at_xfail=no
(
- $as_echo "243. $at_setup_line: testing $at_desc ..."
+ $as_echo "253. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15797,13 +16782,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_243
-#AT_START_244
-at_fn_group_banner 244 'rpmconfig3.at:88' \
+#AT_STOP_253
+#AT_START_254
+at_fn_group_banner 254 'rpmconfig3.at:88' \
"upgrade modified config to/from non-config 2" " " 14
at_xfail=no
(
- $as_echo "244. $at_setup_line: testing $at_desc ..."
+ $as_echo "254. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15893,13 +16878,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_244
-#AT_START_245
-at_fn_group_banner 245 'rpmconfig3.at:129' \
+#AT_STOP_254
+#AT_START_255
+at_fn_group_banner 255 'rpmconfig3.at:129' \
"upgrade config to/from config link" " " 14
at_xfail=no
(
- $as_echo "245. $at_setup_line: testing $at_desc ..."
+ $as_echo "255. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -15982,13 +16967,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_245
-#AT_START_246
-at_fn_group_banner 246 'rpmconfig3.at:166' \
+#AT_STOP_255
+#AT_START_256
+at_fn_group_banner 256 'rpmconfig3.at:166' \
"upgrade modified config to config link" " " 14
at_xfail=no
(
- $as_echo "246. $at_setup_line: testing $at_desc ..."
+ $as_echo "256. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16076,13 +17061,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_246
-#AT_START_247
-at_fn_group_banner 247 'rpmconfig3.at:206' \
+#AT_STOP_256
+#AT_START_257
+at_fn_group_banner 257 'rpmconfig3.at:206' \
"upgrade modified config link to config" " " 14
at_xfail=no
(
- $as_echo "247. $at_setup_line: testing $at_desc ..."
+ $as_echo "257. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16170,13 +17155,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_247
-#AT_START_248
-at_fn_group_banner 248 'rpmconfig3.at:246' \
+#AT_STOP_257
+#AT_START_258
+at_fn_group_banner 258 'rpmconfig3.at:246' \
"upgrade config to directory" " " 14
at_xfail=no
(
- $as_echo "248. $at_setup_line: testing $at_desc ..."
+ $as_echo "258. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16251,13 +17236,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_248
-#AT_START_249
-at_fn_group_banner 249 'rpmconfig3.at:278' \
+#AT_STOP_258
+#AT_START_259
+at_fn_group_banner 259 'rpmconfig3.at:278' \
"upgrade modified config to directory" " " 14
at_xfail=no
(
- $as_echo "249. $at_setup_line: testing $at_desc ..."
+ $as_echo "259. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16342,13 +17327,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_249
-#AT_START_250
-at_fn_group_banner 250 'rpmmacro.at:6' \
+#AT_STOP_259
+#AT_START_260
+at_fn_group_banner 260 'rpmmacro.at:6' \
"simple rpm --eval" " " 15
at_xfail=no
(
- $as_echo "250. $at_setup_line: testing $at_desc ..."
+ $as_echo "260. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16375,13 +17360,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_250
-#AT_START_251
-at_fn_group_banner 251 'rpmmacro.at:16' \
+#AT_STOP_260
+#AT_START_261
+at_fn_group_banner 261 'rpmmacro.at:16' \
"simple true conditional rpm --eval" " " 15
at_xfail=no
(
- $as_echo "251. $at_setup_line: testing $at_desc ..."
+ $as_echo "261. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16408,13 +17393,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_251
-#AT_START_252
-at_fn_group_banner 252 'rpmmacro.at:26' \
+#AT_STOP_261
+#AT_START_262
+at_fn_group_banner 262 'rpmmacro.at:26' \
"simple false conditional rpm --eval" " " 15
at_xfail=no
(
- $as_echo "252. $at_setup_line: testing $at_desc ..."
+ $as_echo "262. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16441,13 +17426,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_252
-#AT_START_253
-at_fn_group_banner 253 'rpmmacro.at:36' \
+#AT_STOP_262
+#AT_START_263
+at_fn_group_banner 263 'rpmmacro.at:36' \
"nested macro in name" " " 15
at_xfail=no
(
- $as_echo "253. $at_setup_line: testing $at_desc ..."
+ $as_echo "263. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16474,13 +17459,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_253
-#AT_START_254
-at_fn_group_banner 254 'rpmmacro.at:46' \
+#AT_STOP_263
+#AT_START_264
+at_fn_group_banner 264 'rpmmacro.at:46' \
"parametrized macro 1" " " 15
at_xfail=no
(
- $as_echo "254. $at_setup_line: testing $at_desc ..."
+ $as_echo "264. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16547,13 +17532,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_254
-#AT_START_255
-at_fn_group_banner 255 'rpmmacro.at:82' \
+#AT_STOP_264
+#AT_START_265
+at_fn_group_banner 265 'rpmmacro.at:82' \
"uncompress macro" " " 15
at_xfail=no
(
- $as_echo "255. $at_setup_line: testing $at_desc ..."
+ $as_echo "265. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16584,13 +17569,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_255
-#AT_START_256
-at_fn_group_banner 256 'rpmmacro.at:94' \
+#AT_STOP_265
+#AT_START_266
+at_fn_group_banner 266 'rpmmacro.at:94' \
"basename macro" " " 15
at_xfail=no
(
- $as_echo "256. $at_setup_line: testing $at_desc ..."
+ $as_echo "266. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16619,13 +17604,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_256
-#AT_START_257
-at_fn_group_banner 257 'rpmmacro.at:105' \
+#AT_STOP_266
+#AT_START_267
+at_fn_group_banner 267 'rpmmacro.at:105' \
"suffix macro" " " 15
at_xfail=no
(
- $as_echo "257. $at_setup_line: testing $at_desc ..."
+ $as_echo "267. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16654,13 +17639,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_257
-#AT_START_258
-at_fn_group_banner 258 'rpmmacro.at:116' \
+#AT_STOP_267
+#AT_START_268
+at_fn_group_banner 268 'rpmmacro.at:116' \
"url2path macro" " " 15
at_xfail=no
(
- $as_echo "258. $at_setup_line: testing $at_desc ..."
+ $as_echo "268. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16689,13 +17674,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_258
-#AT_START_259
-at_fn_group_banner 259 'rpmmacro.at:127' \
+#AT_STOP_268
+#AT_START_269
+at_fn_group_banner 269 'rpmmacro.at:127' \
"shell expansion" " " 15
at_xfail=no
(
- $as_echo "259. $at_setup_line: testing $at_desc ..."
+ $as_echo "269. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16724,13 +17709,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_259
-#AT_START_260
-at_fn_group_banner 260 'rpmmacro.at:138' \
+#AT_STOP_269
+#AT_START_270
+at_fn_group_banner 270 'rpmmacro.at:138' \
"simple lua --eval" " " 15
at_xfail=no
(
- $as_echo "260. $at_setup_line: testing $at_desc ..."
+ $as_echo "270. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16757,13 +17742,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_260
-#AT_START_261
-at_fn_group_banner 261 'rpmmacro.at:148' \
+#AT_STOP_270
+#AT_START_271
+at_fn_group_banner 271 'rpmmacro.at:148' \
"lua rpm extensions" " " 15
at_xfail=no
(
- $as_echo "261. $at_setup_line: testing $at_desc ..."
+ $as_echo "271. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16790,13 +17775,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_261
-#AT_START_262
-at_fn_group_banner 262 'rpmmacro.at:158' \
+#AT_STOP_271
+#AT_START_272
+at_fn_group_banner 272 'rpmmacro.at:158' \
"lua posix extensions" " " 15
at_xfail=no
(
- $as_echo "262. $at_setup_line: testing $at_desc ..."
+ $as_echo "272. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16825,13 +17810,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_262
-#AT_START_263
-at_fn_group_banner 263 'rpmmacro.at:169' \
+#AT_STOP_272
+#AT_START_273
+at_fn_group_banner 273 'rpmmacro.at:169' \
"lua script exit behavior" " " 15
at_xfail=no
(
- $as_echo "263. $at_setup_line: testing $at_desc ..."
+ $as_echo "273. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16862,13 +17847,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_263
-#AT_START_264
-at_fn_group_banner 264 'rpmpython.at:6' \
+#AT_STOP_273
+#AT_START_274
+at_fn_group_banner 274 'rpmpython.at:6' \
"module import" " " 16
at_xfail=no
(
- $as_echo "264. $at_setup_line: testing $at_desc ..."
+ $as_echo "274. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -16911,7 +17896,7 @@ python test.py
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "4.12.0.2
+echo >>"$at_stdout"; $as_echo "4.13.0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rpmpython.at:6"
@@ -16923,13 +17908,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_264
-#AT_START_265
-at_fn_group_banner 265 'rpmpython.at:12' \
+#AT_STOP_274
+#AT_START_275
+at_fn_group_banner 275 'rpmpython.at:12' \
"macro manipulation" " " 16
at_xfail=no
(
- $as_echo "265. $at_setup_line: testing $at_desc ..."
+ $as_echo "275. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17012,13 +17997,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_265
-#AT_START_266
-at_fn_group_banner 266 'rpmpython.at:35' \
+#AT_STOP_275
+#AT_START_276
+at_fn_group_banner 276 'rpmpython.at:35' \
"basic rpmio" " " 16
at_xfail=no
(
- $as_echo "266. $at_setup_line: testing $at_desc ..."
+ $as_echo "276. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17131,13 +18116,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_266
-#AT_START_267
-at_fn_group_banner 267 'rpmpython.at:70' \
+#AT_STOP_276
+#AT_START_277
+at_fn_group_banner 277 'rpmpython.at:70' \
"spec parse" " " 16
at_xfail=no
(
- $as_echo "267. $at_setup_line: testing $at_desc ..."
+ $as_echo "277. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17207,13 +18192,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_267
-#AT_START_268
-at_fn_group_banner 268 'rpmpython.at:85' \
+#AT_STOP_277
+#AT_START_278
+at_fn_group_banner 278 'rpmpython.at:85' \
"basic header manipulation" " " 16
at_xfail=no
(
- $as_echo "268. $at_setup_line: testing $at_desc ..."
+ $as_echo "278. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17301,13 +18286,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_268
-#AT_START_269
-at_fn_group_banner 269 'rpmpython.at:110' \
+#AT_STOP_278
+#AT_START_279
+at_fn_group_banner 279 'rpmpython.at:110' \
"invalid header data" " " 16
at_xfail=no
(
- $as_echo "269. $at_setup_line: testing $at_desc ..."
+ $as_echo "279. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17387,13 +18372,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_269
-#AT_START_270
-at_fn_group_banner 270 'rpmpython.at:129' \
+#AT_STOP_279
+#AT_START_280
+at_fn_group_banner 280 'rpmpython.at:129' \
"reading a package file" " " 16
at_xfail=no
(
- $as_echo "270. $at_setup_line: testing $at_desc ..."
+ $as_echo "280. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17452,13 +18437,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_270
-#AT_START_271
-at_fn_group_banner 271 'rpmpython.at:137' \
+#AT_STOP_280
+#AT_START_281
+at_fn_group_banner 281 'rpmpython.at:137' \
"add package to transaction" " " 16
at_xfail=no
(
- $as_echo "271. $at_setup_line: testing $at_desc ..."
+ $as_echo "281. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17525,13 +18510,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_271
-#AT_START_272
-at_fn_group_banner 272 'rpmpython.at:149' \
+#AT_STOP_281
+#AT_START_282
+at_fn_group_banner 282 'rpmpython.at:149' \
"add bogus package to transaction 1" " " 16
at_xfail=no
(
- $as_echo "272. $at_setup_line: testing $at_desc ..."
+ $as_echo "282. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17602,13 +18587,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_272
-#AT_START_273
-at_fn_group_banner 273 'rpmpython.at:163' \
+#AT_STOP_282
+#AT_START_283
+at_fn_group_banner 283 'rpmpython.at:163' \
"add bogus package to transaction 2" " " 16
at_xfail=no
(
- $as_echo "273. $at_setup_line: testing $at_desc ..."
+ $as_echo "283. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -17693,13 +18678,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_273
-#AT_START_274
-at_fn_group_banner 274 'rpmpython.at:184' \
+#AT_STOP_283
+#AT_START_284
+at_fn_group_banner 284 'rpmpython.at:184' \
"database iterators" " " 16
at_xfail=no
(
- $as_echo "274. $at_setup_line: testing $at_desc ..."
+ $as_echo "284. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -18044,7 +19029,7 @@ def myprint(msg = ''):
sys.stdout.write('%s\\n' % msg)
ts = rpm.ts()
-for di in ts.dbIndex('obsoletes'):
+for di in sorted(ts.dbIndex('obsoletes')):
myprint(di)
EOF
@@ -18060,7 +19045,7 @@ def myprint(msg = ''):
sys.stdout.write('%s\n' % msg)
ts = rpm.ts()
-for di in ts.dbIndex('obsoletes'):
+for di in sorted(ts.dbIndex('obsoletes')):
myprint(di)
EOF
@@ -18090,7 +19075,7 @@ def myprint(msg = ''):
sys.stdout.write('%s\\n' % msg)
ts = rpm.ts()
-for di in ts.dbIndex('provides'):
+for di in sorted(ts.dbIndex('provides')):
myprint(di)
EOF
@@ -18106,7 +19091,7 @@ def myprint(msg = ''):
sys.stdout.write('%s\n' % msg)
ts = rpm.ts()
-for di in ts.dbIndex('provides'):
+for di in sorted(ts.dbIndex('provides')):
myprint(di)
EOF
@@ -18131,13 +19116,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_274
-#AT_START_275
-at_fn_group_banner 275 'rpmpython.at:283' \
+#AT_STOP_284
+#AT_START_285
+at_fn_group_banner 285 'rpmpython.at:283' \
"dependency sets 1" " " 16
at_xfail=no
(
- $as_echo "275. $at_setup_line: testing $at_desc ..."
+ $as_echo "285. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -18206,13 +19191,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_275
-#AT_START_276
-at_fn_group_banner 276 'rpmpython.at:300' \
+#AT_STOP_285
+#AT_START_286
+at_fn_group_banner 286 'rpmpython.at:300' \
"dependency sets 2" " " 16
at_xfail=no
(
- $as_echo "276. $at_setup_line: testing $at_desc ..."
+ $as_echo "286. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -18273,13 +19258,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_276
-#AT_START_277
-at_fn_group_banner 277 'rpmpython.at:310' \
+#AT_STOP_286
+#AT_START_287
+at_fn_group_banner 287 'rpmpython.at:310' \
"file info sets 1" " " 16
at_xfail=no
(
- $as_echo "277. $at_setup_line: testing $at_desc ..."
+ $as_echo "287. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -18349,13 +19334,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_277
-#AT_START_278
-at_fn_group_banner 278 'rpmpython.at:327' \
+#AT_STOP_287
+#AT_START_288
+at_fn_group_banner 288 'rpmpython.at:327' \
"string pool 1" " " 16
at_xfail=no
(
- $as_echo "278. $at_setup_line: testing $at_desc ..."
+ $as_echo "288. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -18423,13 +19408,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_278
-#AT_START_279
-at_fn_group_banner 279 'rpmpython.at:342' \
+#AT_STOP_288
+#AT_START_289
+at_fn_group_banner 289 'rpmpython.at:342' \
"string pool 2" " " 16
at_xfail=no
(
- $as_echo "279. $at_setup_line: testing $at_desc ..."
+ $as_echo "289. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -18503,13 +19488,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_279
-#AT_START_280
-at_fn_group_banner 280 'rpmpython.at:360' \
+#AT_STOP_289
+#AT_START_290
+at_fn_group_banner 290 'rpmpython.at:360' \
"archive 1" " " 16
at_xfail=no
(
- $as_echo "280. $at_setup_line: testing $at_desc ..."
+ $as_echo "290. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -18590,13 +19575,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_280
-#AT_START_281
-at_fn_group_banner 281 'rpmpython.at:380' \
+#AT_STOP_290
+#AT_START_291
+at_fn_group_banner 291 'rpmpython.at:380' \
"header unload" " " 16
at_xfail=no
(
- $as_echo "281. $at_setup_line: testing $at_desc ..."
+ $as_echo "291. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -18671,13 +19656,13 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_281
-#AT_START_282
-at_fn_group_banner 282 'rpmdepmatch.at:4' \
+#AT_STOP_291
+#AT_START_292
+at_fn_group_banner 292 'rpmdepmatch.at:4' \
"provide - require pairs" " " 17
at_xfail=no
(
- $as_echo "282. $at_setup_line: testing $at_desc ..."
+ $as_echo "292. $at_setup_line: testing $at_desc ..."
$at_traceon
@@ -19198,4 +20183,4 @@ $at_traceon; }
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
-#AT_STOP_282
+#AT_STOP_292
diff --git a/tests/rpmverify.at b/tests/rpmverify.at
index d4870d03..cf7abc3f 100644
--- a/tests/rpmverify.at
+++ b/tests/rpmverify.at
@@ -63,6 +63,28 @@ runroot rpm -Vva --nodeps --nouser --nogroup
[])
AT_CLEANUP
+# Test file verify when no errors expected in verbose mode.
+AT_SETUP([directory replaced with a directory symlink])
+AT_KEYWORDS([verify])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+runroot rpm -U --nodeps --noscripts --ignorearch --ignoreos \
+ /data/RPMS/hello-1.0-1.i386.rpm
+mv "${RPMTEST}"/usr/share/doc/hello-1.0 "${RPMTEST}"/usr/share/doc/hello-1.0.orig
+ln -s hello-1.0.orig "${RPMTEST}"/usr/share/doc/hello-1.0
+runroot rpm -Vva --nodeps --nouser --nogroup
+rm -rf "${RPMTEST}"/usr/share/doc/
+],
+[0],
+[......... /usr/local/bin/hello
+......... /usr/share/doc/hello-1.0
+......... d /usr/share/doc/hello-1.0/FAQ
+],
+[])
+AT_CLEANUP
+
# Test file verify after mutilating the files a bit.
AT_SETUP([verify from db, with problems present])
AT_KEYWORDS([verify])
diff --git a/tools/debugedit.c b/tools/debugedit.c
index 0f85885e..cf89312f 100644
--- a/tools/debugedit.c
+++ b/tools/debugedit.c
@@ -480,7 +480,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off, char *comp_dir, int phase)
unsigned char *endcu, *endprol;
unsigned char opcode_base;
uint32_t value, dirt_cnt;
- size_t comp_dir_len = strlen (comp_dir);
+ size_t comp_dir_len = !comp_dir ? 0 : strlen (comp_dir);
size_t abs_file_cnt = 0, abs_dir_cnt = 0;
if (phase != 0)
@@ -950,7 +950,7 @@ edit_attributes (DSO *dso, unsigned char *ptr, struct abbrev_tag *t, int phase)
}
}
- if (found_list_offs && comp_dir)
+ if (found_list_offs)
edit_dwarf2_line (dso, list_offs, comp_dir, phase);
free (comp_dir);
diff --git a/tools/rpmdeps.c b/tools/rpmdeps.c
index c3112eba..ff785f0c 100644
--- a/tools/rpmdeps.c
+++ b/tools/rpmdeps.c
@@ -14,6 +14,18 @@ static int print_provides;
static int print_requires;
+static int print_recommends;
+
+static int print_suggests;
+
+static int print_supplements;
+
+static int print_enhances;
+
+static int print_conflicts;
+
+static int print_obsoletes;
+
static void rpmdsPrint(const char * msg, rpmds ds, FILE * fp)
{
if (fp == NULL) fp = stderr;
@@ -36,6 +48,18 @@ static struct poptOption optionsTable[] = {
NULL, NULL },
{ "requires", 'R', POPT_ARG_VAL, &print_requires, -1,
NULL, NULL },
+ { "recommends", '\0', POPT_ARG_VAL, &print_recommends, -1,
+ NULL, NULL },
+ { "suggests", '\0', POPT_ARG_VAL, &print_suggests, -1,
+ NULL, NULL },
+ { "supplements", '\0', POPT_ARG_VAL, &print_supplements, -1,
+ NULL, NULL },
+ { "enhances", '\0', POPT_ARG_VAL, &print_enhances, -1,
+ NULL, NULL },
+ { "conflicts", '\0', POPT_ARG_VAL, &print_conflicts, -1,
+ NULL, NULL },
+ { "obsoletes", '\0', POPT_ARG_VAL, &print_obsoletes, -1,
+ NULL, NULL },
POPT_AUTOALIAS
POPT_AUTOHELP
@@ -89,6 +113,18 @@ main(int argc, char *argv[])
rpmdsPrint(NULL, rpmfcProvides(fc), stdout);
if (print_requires)
rpmdsPrint(NULL, rpmfcRequires(fc), stdout);
+ if (print_recommends)
+ rpmdsPrint(NULL, rpmfcRecommends(fc), stdout);
+ if (print_suggests)
+ rpmdsPrint(NULL, rpmfcSuggests(fc), stdout);
+ if (print_supplements)
+ rpmdsPrint(NULL, rpmfcSupplements(fc), stdout);
+ if (print_enhances)
+ rpmdsPrint(NULL, rpmfcEnhances(fc), stdout);
+ if (print_conflicts)
+ rpmdsPrint(NULL, rpmfcConflicts(fc), stdout);
+ if (print_obsoletes)
+ rpmdsPrint(NULL, rpmfcObsoletes(fc), stdout);
ec = 0;
diff --git a/tools/sepdebugcrcfix.c b/tools/sepdebugcrcfix.c
new file mode 100644
index 00000000..cd7fa02a
--- /dev/null
+++ b/tools/sepdebugcrcfix.c
@@ -0,0 +1,361 @@
+/* Copyright (C) 2013 Free Software Foundation, Inc.
+
+ 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */
+
+/* Version 2013-06-24. */
+
+#define _GNU_SOURCE
+#include <string.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <endian.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <error.h>
+#include <libelf.h>
+#include <gelf.h>
+#include <bfd.h>
+
+#define _(x) x
+#define static_assert(expr) \
+ extern int never_defined_just_used_for_checking[(expr) ? 1 : -1]
+#ifndef min
+# define min(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
+static_assert (sizeof (unsigned long) >= sizeof (uint32_t));
+
+typedef int bool;
+static const bool false = 0, true = 1;
+
+/* This is bfd_calc_gnu_debuglink_crc32 from bfd/opncls.c. */
+static unsigned long
+ calc_gnu_debuglink_crc32 (unsigned long crc,
+ const unsigned char *buf,
+ bfd_size_type len)
+{
+ static const unsigned long crc32_table[256] =
+ {
+ 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,
+ 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4,
+ 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07,
+ 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
+ 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856,
+ 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
+ 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,
+ 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
+ 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3,
+ 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a,
+ 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,
+ 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
+ 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,
+ 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,
+ 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e,
+ 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
+ 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed,
+ 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
+ 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
+ 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
+ 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,
+ 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5,
+ 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010,
+ 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
+ 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,
+ 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6,
+ 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615,
+ 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
+ 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344,
+ 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
+ 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,
+ 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
+ 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1,
+ 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c,
+ 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
+ 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
+ 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,
+ 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31,
+ 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c,
+ 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
+ 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b,
+ 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
+ 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
+ 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
+ 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278,
+ 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7,
+ 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66,
+ 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
+ 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,
+ 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8,
+ 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
+ 0x2d02ef8d
+ };
+ const unsigned char *end;
+
+ crc = ~crc & 0xffffffff;
+ for (end = buf + len; buf < end; ++ buf)
+ crc = crc32_table[(crc ^ *buf) & 0xff] ^ (crc >> 8);
+ return ~crc & 0xffffffff;
+}
+
+static size_t updated_count, matched_count, failed_count;
+
+static const char *usr_lib_debug;
+
+static bool
+crc32 (const char *fname, const char *base_fname, uint32_t *crcp)
+{
+ char *reldir = strdup (base_fname);
+ if (reldir == NULL)
+ error (1, 0, _("out of memory"));
+ char *s = reldir + strlen (reldir);
+ while (s > reldir && s[-1] != '/')
+ *--s = '\0';
+ char *debugname;
+ if (asprintf (&debugname, "%s/%s/%s", usr_lib_debug, reldir, fname) <= 0)
+ error (1, 0, _("out of memory"));
+ free (reldir);
+ int fd = open (debugname, O_RDONLY);
+ if (fd == -1)
+ {
+ error (0, errno, _("cannot open \"%s\""), debugname);
+ return false;
+ }
+ off64_t size = lseek64 (fd, 0, SEEK_END);
+ if (size == -1)
+ {
+ error (0, errno, _("cannot get size of \"%s\""), debugname);
+ return false;
+ }
+ off_t offset = 0;
+ uint32_t crc = 0;
+ void *buf = NULL;
+ while (offset < size)
+ {
+ const size_t maplen = min (0x10000, size - offset);
+ void *map = NULL;
+ if (buf == NULL)
+ {
+ map = mmap (NULL, maplen, PROT_READ, MAP_PRIVATE | MAP_POPULATE,
+ fd, offset);
+ if (map == MAP_FAILED)
+ {
+ error (0, errno, _("cannot map 0x%llx bytes at offset 0x%llx "
+ "of file \"%s\""),
+ (unsigned long long) maplen, (unsigned long long) offset,
+ debugname);
+ map = NULL;
+ }
+ }
+ if (map == NULL)
+ {
+ if (buf == NULL)
+ {
+ buf = malloc (maplen);
+ if (buf == NULL)
+ error (1, 0, _("out of memory"));
+ }
+ ssize_t got = pread (fd, buf, maplen, offset);
+ if (got != maplen)
+ {
+ error (0, errno, _("cannot read 0x%llx bytes at offset 0x%llx "
+ "of file \"%s\""),
+ (unsigned long long) maplen, (unsigned long long) offset,
+ debugname);
+ free (buf);
+ free (debugname);
+ return false;
+ }
+ }
+ crc = calc_gnu_debuglink_crc32 (crc, map ?: buf, maplen);
+ if (map && munmap (map, maplen) != 0)
+ error (1, errno, _("cannot unmap 0x%llx bytes at offset 0x%llx "
+ "of file \"%s\""),
+ (unsigned long long) maplen, (unsigned long long) offset,
+ debugname);
+ offset += maplen;
+ }
+ free (buf);
+ if (close (fd) != 0)
+ {
+ error (0, errno, _("cannot close \"%s\""), debugname);
+ free (debugname);
+ return false;
+ }
+ free (debugname);
+ *crcp = crc;
+ return true;
+}
+
+static bool
+process (Elf *elf, int fd, const char *fname)
+{
+ GElf_Ehdr ehdr_mem, *ehdr = gelf_getehdr (elf, &ehdr_mem);
+ if (ehdr == NULL)
+ {
+ error (0, 0, _("cannot get ELF header of \"%s\""), fname);
+ return false;
+ }
+ if (ehdr->e_ident[EI_DATA] != ELFDATA2LSB
+ && ehdr->e_ident[EI_DATA] != ELFDATA2MSB)
+ {
+ error (0, 0, _("invalid ELF endianity of \"%s\""), fname);
+ return false;
+ }
+ Elf_Scn *scn = NULL;
+ const char scnname[] = ".gnu_debuglink";
+ while ((scn = elf_nextscn (elf, scn)) != NULL)
+ {
+ GElf_Shdr shdr_mem, *shdr = gelf_getshdr (scn, &shdr_mem);
+ if (shdr == NULL)
+ {
+ error (0, 0, _("cannot get section # %zu in \"%s\""),
+ elf_ndxscn (scn), fname);
+ continue;
+ }
+ const char *sname = elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name);
+ if (sname == NULL)
+ {
+ error (0, 0, _("cannot get name of section # %zu in \"%s\""),
+ elf_ndxscn (scn), fname);
+ continue;
+ }
+ if (strcmp (sname, scnname) != 0)
+ continue;
+ Elf_Data *data = elf_getdata (scn, NULL);
+ if (data == NULL)
+ {
+ error (0, 0, _("cannot get data of section \"%s\" # %zu in \"%s\""),
+ scnname, elf_ndxscn (scn), fname);
+ continue;
+ }
+ if ((data->d_size & 3) != 0)
+ {
+ error (0, 0, _("invalid size of section \"%s\" # %zu in \"%s\""),
+ scnname, elf_ndxscn (scn), fname);
+ continue;
+ }
+ const uint8_t *zerop = memchr (data->d_buf, '\0', data->d_size);
+ const uint8_t *crcp = (zerop == NULL
+ ? NULL
+ : (const uint8_t *) ((uintptr_t) (zerop + 1 + 3)
+ & -4));
+ if (crcp + 4 != (uint8_t *) data->d_buf + data->d_size)
+ {
+ error (0, 0, _("invalid format of section \"%s\" # %zu in \"%s\""),
+ scnname, elf_ndxscn (scn), fname);
+ continue;
+ }
+ uint32_t had_crc_targetendian = *(const uint32_t *) crcp;
+ uint32_t had_crc = (ehdr->e_ident[EI_DATA] == ELFDATA2LSB
+ ? le32toh (had_crc_targetendian)
+ : be32toh (had_crc_targetendian));
+ uint32_t crc;
+ if (! crc32 (data->d_buf, fname, &crc))
+ return false;
+ if (crc == had_crc)
+ {
+ matched_count++;
+ return true;
+ }
+ updated_count++;
+ off64_t seekto = (shdr->sh_offset + data->d_off
+ + (crcp - (const uint8_t *) data->d_buf));
+ uint32_t crc_targetendian = (ehdr->e_ident[EI_DATA] == ELFDATA2LSB
+ ? htole32 (crc) : htobe32 (crc));
+ ssize_t wrote = pwrite (fd, &crc_targetendian, sizeof (crc_targetendian),
+ seekto);
+ if (wrote != sizeof (crc_targetendian))
+ {
+ error (0, 0, _("cannot write new CRC to 0x%llx "
+ "inside section \"%s\" # %zu in \"%s\""),
+ (unsigned long long) seekto, scnname, elf_ndxscn (scn), fname);
+ return false;
+ }
+ return true;
+ }
+ error (0, 0, _("cannot find section \"%s\" in \"%s\""), scnname, fname);
+ return false;
+}
+
+int
+main (int argc, char **argv)
+{
+ if (argc < 2)
+ error (1, 0, _("usr/lib/debug [<relative filenames>...]"));
+ usr_lib_debug = argv[1];
+ if (elf_version (EV_CURRENT) == EV_NONE)
+ error (1, 0, _("error initializing libelf: %s"), elf_errmsg (-1));
+ for (int argi = 2; argi < argc; argi++)
+ {
+ const char *fname = argv[argi];
+ struct stat stat_buf;
+ if (stat(fname, &stat_buf) < 0)
+ {
+ error (0, errno, _("cannot stat input \"%s\""), fname);
+ failed_count++;
+ continue;
+ }
+
+ /* Make sure we can read and write */
+ chmod (fname, stat_buf.st_mode | S_IRUSR | S_IWUSR);
+
+ bool failed = false;
+ int fd = open64 (fname, O_RDWR);
+ if (fd == -1)
+ {
+ error (0, errno, _("cannot open \"%s\""), fname);
+ failed = true;
+ }
+ else
+ {
+ Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
+ if (elf == NULL)
+ {
+ error (0, 0, _("cannot open \"%s\" as ELF: %s"), fname,
+ elf_errmsg (-1));
+ failed = true;
+ }
+ else
+ {
+ if (! process (elf, fd, fname))
+ failed = true;
+ if (elf_end (elf) != 0)
+ {
+ error (0, 0, _("cannot close \"%s\" as ELF: %s"), fname,
+ elf_errmsg (-1));
+ failed = true;
+ }
+ }
+ if (close (fd) != 0)
+ {
+ error (0, errno, _("cannot close \"%s\""), fname);
+ failed = true;
+ }
+ }
+
+ /* Restore old access rights. Including any suid bits reset. */
+ chmod (fname, stat_buf.st_mode);
+
+ if (failed)
+ failed_count++;
+ }
+ printf ("%s: Updated %zu CRC32s, %zu CRC32s did match.\n", argv[0],
+ updated_count, matched_count);
+ if (failed_count)
+ printf ("%s: Failed for %zu files.\n", argv[0], failed_count);
+ return failed_count == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
+}