summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjbj <devnull@localhost>2001-03-04 15:34:53 +0000
committerjbj <devnull@localhost>2001-03-04 15:34:53 +0000
commita77bec0d7e7722e27104d61bd9e8ba6d3de69769 (patch)
tree438119fab23455c9127408e4e3122b2ebdaf91fa
parent1a93da4accc11e0064f9c0c848d537e00abbde3e (diff)
downloadrpm-a77bec0d7e7722e27104d61bd9e8ba6d3de69769.tar.gz
- Add btree indexes for Dirnames, Requireversion, Provideversion, Insttaltid,
and Removetid. - Add per-script and per-trigger control options and flags. - Add --apply option and flags. CVS patchset: 4605 CVS date: 2001/03/04 15:34:53
-rw-r--r--lib/psm.c104
-rw-r--r--lib/rpmdb.c2
-rw-r--r--lib/rpmlib.h26
-rw-r--r--lib/transaction.c6
-rw-r--r--macros.in10
-rw-r--r--po/rpm.pot711
-rwxr-xr-xrpm.c86
-rwxr-xr-xrpmqv.c54
8 files changed, 604 insertions, 395 deletions
diff --git a/lib/psm.c b/lib/psm.c
index be99cc71e..cc64ae20a 100644
--- a/lib/psm.c
+++ b/lib/psm.c
@@ -1407,13 +1407,19 @@ assert(psm->mi == NULL);
psm->scriptTag = RPMTAG_PREIN;
psm->progTag = RPMTAG_PREINPROG;
- rc = psmStage(psm, PSM_SCRIPT);
- if (rc) {
- rpmError(RPMERR_SCRIPT,
+ if (!(ts->transFlags & RPMTRANS_FLAG_NOTRIGGERPREIN)) {
+ /* XXX FIXME: implement %triggerprein. */
+ }
+
+ if (!(ts->transFlags & RPMTRANS_FLAG_NOPRE)) {
+ rc = psmStage(psm, PSM_SCRIPT);
+ if (rc) {
+ rpmError(RPMERR_SCRIPT,
_("%s: %s scriptlet failed (%d), skipping %s-%s-%s\n"),
psm->stepName, tag2sln(psm->scriptTag), rc,
fi->name, fi->version, fi->release);
- break;
+ break;
+ }
}
}
@@ -1423,15 +1429,18 @@ assert(psm->mi == NULL);
psm->sense = RPMSENSE_TRIGGERUN;
psm->countCorrection = -1;
- /* Run triggers in other package(s) this package sets off. */
- rc = psmStage(psm, PSM_TRIGGERS);
- if (rc) break;
+ if (!(ts->transFlags & RPMTRANS_FLAG_NOTRIGGERUN)) {
+ /* Run triggers in other package(s) this package sets off. */
+ rc = psmStage(psm, PSM_TRIGGERS);
+ if (rc) break;
- /* Run triggers in this package other package(s) set off. */
- rc = psmStage(psm, PSM_IMMED_TRIGGERS);
- if (rc) break;
+ /* Run triggers in this package other package(s) set off. */
+ rc = psmStage(psm, PSM_IMMED_TRIGGERS);
+ if (rc) break;
+ }
- rc = psmStage(psm, PSM_SCRIPT);
+ if (!(ts->transFlags & RPMTRANS_FLAG_NOPREUN))
+ rc = psmStage(psm, PSM_SCRIPT);
}
if (psm->goal == PSM_PKGSAVE) {
/* Regenerate original header. */
@@ -1540,6 +1549,7 @@ assert(psm->mi == NULL);
if (fi->fc <= 0) break;
if (ts->transFlags & RPMTRANS_FLAG_JUSTDB) break;
+ if (ts->transFlags & RPMTRANS_FLAG_APPLYONLY) break;
psm->what = RPMCALLBACK_UNINST_START;
psm->amount = fi->fc; /* XXX W2DO? looks wrong. */
@@ -1592,15 +1602,6 @@ assert(psm->mi == NULL);
headerAddEntry(fi->h, RPMTAG_INSTALLTIME, RPM_INT32_TYPE,
&installTime, 1);
- /*
- * If this package has already been installed, remove it from
- * the database before adding the new one.
- */
- if (fi->record) {
- rc = psmStage(psm, PSM_RPMDB_REMOVE);
- if (rc) break;
- }
-
if (ts->transFlags & RPMTRANS_FLAG_MULTILIB) {
uint_32 multiLib, * newMultiLib, * p;
@@ -1615,42 +1616,62 @@ assert(psm->mi == NULL);
if (rc) break;
}
- psm->scriptTag = RPMTAG_POSTIN;
- psm->progTag = RPMTAG_POSTINPROG;
- psm->sense = RPMSENSE_TRIGGERIN;
- psm->countCorrection = 0;
+
+ /*
+ * If this package has already been installed, remove it from
+ * the database before adding the new one.
+ */
+ if (fi->record && !(ts->transFlags & RPMTRANS_FLAG_APPLYONLY)) {
+ rc = psmStage(psm, PSM_RPMDB_REMOVE);
+ if (rc) break;
+ }
rc = psmStage(psm, PSM_RPMDB_ADD);
if (rc) break;
- rc = psmStage(psm, PSM_SCRIPT);
- if (rc) break;
+ psm->scriptTag = RPMTAG_POSTIN;
+ psm->progTag = RPMTAG_POSTINPROG;
+ psm->sense = RPMSENSE_TRIGGERIN;
+ psm->countCorrection = 0;
- /* Run triggers in other package(s) this package sets off. */
- rc = psmStage(psm, PSM_TRIGGERS);
- if (rc) break;
+ if (!(ts->transFlags & RPMTRANS_FLAG_NOPOST)) {
+ rc = psmStage(psm, PSM_SCRIPT);
+ if (rc) break;
+ }
+ if (!(ts->transFlags & RPMTRANS_FLAG_NOTRIGGERIN)) {
+ /* Run triggers in other package(s) this package sets off. */
+ rc = psmStage(psm, PSM_TRIGGERS);
+ if (rc) break;
- /* Run triggers in this package other package(s) set off. */
- rc = psmStage(psm, PSM_IMMED_TRIGGERS);
- if (rc) break;
+ /* Run triggers in this package other package(s) set off. */
+ rc = psmStage(psm, PSM_IMMED_TRIGGERS);
+ if (rc) break;
+ }
- rc = markReplacedFiles(psm);
+ if (!(ts->transFlags & RPMTRANS_FLAG_APPLYONLY))
+ rc = markReplacedFiles(psm);
}
if (psm->goal == PSM_PKGERASE) {
+
psm->scriptTag = RPMTAG_POSTUN;
psm->progTag = RPMTAG_POSTUNPROG;
psm->sense = RPMSENSE_TRIGGERPOSTUN;
psm->countCorrection = -1;
- rc = psmStage(psm, PSM_SCRIPT);
- /* XXX WTFO? postun failures are not cause for erasure failure. */
+ if (!(ts->transFlags & RPMTRANS_FLAG_NOPOSTUN)) {
+ rc = psmStage(psm, PSM_SCRIPT);
+ /* XXX WTFO? postun failures don't cause erasure failure. */
+ }
- /* Run triggers in other package(s) this package sets off. */
- rc = psmStage(psm, PSM_TRIGGERS);
- if (rc) break;
+ if (!(ts->transFlags & RPMTRANS_FLAG_NOTRIGGERPOSTUN)) {
+ /* Run triggers in other package(s) this package sets off. */
+ rc = psmStage(psm, PSM_TRIGGERS);
+ if (rc) break;
+ }
- rc = psmStage(psm, PSM_RPMDB_REMOVE);
+ if (!(ts->transFlags & RPMTRANS_FLAG_APPLYONLY))
+ rc = psmStage(psm, PSM_RPMDB_REMOVE);
}
if (psm->goal == PSM_PKGSAVE) {
}
@@ -1724,6 +1745,8 @@ assert(psm->mi == NULL);
break;
case PSM_COMMIT:
if (!(ts->transFlags & RPMTRANS_FLAG_PKGCOMMIT)) break;
+ if (ts->transFlags & RPMTRANS_FLAG_APPLYONLY) break;
+
rc = fsmSetup(fi->fsm, FSM_PKGCOMMIT, ts, fi,
NULL, NULL, &psm->failedFile);
(void) fsmTeardown(fi->fsm);
@@ -1762,18 +1785,15 @@ assert(psm->mi == NULL);
}
break;
case PSM_SCRIPT:
- if (ts->transFlags & RPMTRANS_FLAG_NOSCRIPTS) break;
rpmMessage(RPMMESS_DEBUG, _("%s: running %s script(s) (if any)\n"),
psm->stepName, tag2sln(psm->scriptTag));
rc = runInstScript(psm);
break;
case PSM_TRIGGERS:
- if (ts->transFlags & RPMTRANS_FLAG_NOTRIGGERS) break;
/* Run triggers in other package(s) this package sets off. */
rc = runTriggers(psm);
break;
case PSM_IMMED_TRIGGERS:
- if (ts->transFlags & RPMTRANS_FLAG_NOTRIGGERS) break;
/* Run triggers in this package other package(s) set off. */
rc = runImmedTriggers(psm);
break;
diff --git a/lib/rpmdb.c b/lib/rpmdb.c
index 301407c94..0aa142eb6 100644
--- a/lib/rpmdb.c
+++ b/lib/rpmdb.c
@@ -61,7 +61,7 @@ static int dbiTagToDbix(int rpmtag)
static void dbiTagsInit(void)
{
/*@observer@*/ static const char * const _dbiTagStr_default =
- "Packages:Name:Basenames:Group:Requirename:Providename:Conflictname:Triggername";
+ "Packages:Name:Basenames:Group:Requirename:Providename:Conflictname:Triggername:Dirnames:Requireversion:Provideversion:Installtid:Removetid";
char * dbiTagStr = NULL;
char * o, * oe;
int rpmtag;
diff --git a/lib/rpmlib.h b/lib/rpmlib.h
index 233159936..4134c629d 100644
--- a/lib/rpmlib.h
+++ b/lib/rpmlib.h
@@ -1078,13 +1078,39 @@ typedef enum rpmtransFlags_e {
RPMTRANS_FLAG_MULTILIB = (1 << 8), /*!< @todo Document. */
RPMTRANS_FLAG_DIRSTASH = (1 << 9), /*!< from --dirstash */
RPMTRANS_FLAG_REPACKAGE = (1 << 10), /*!< from --repackage */
+
RPMTRANS_FLAG_PKGCOMMIT = (1 << 11),
RPMTRANS_FLAG_PKGUNDO = (1 << 12),
RPMTRANS_FLAG_COMMIT = (1 << 13),
RPMTRANS_FLAG_UNDO = (1 << 14),
RPMTRANS_FLAG_REVERSE = (1 << 15),
+
+ RPMTRANS_FLAG_NOTRIGGERPREIN= (1 << 16),
+ RPMTRANS_FLAG_NOPRE = (1 << 17),
+ RPMTRANS_FLAG_NOPOST = (1 << 18),
+ RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19),
+ RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20),
+ RPMTRANS_FLAG_NOPREUN = (1 << 21),
+ RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
+ RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23),
+ RPMTRANS_FLAG_NOPAYLOAD = (1 << 24),
+ RPMTRANS_FLAG_APPLYONLY = (1 << 25),
} rpmtransFlags;
+#define _noTransScripts \
+ ( RPMTRANS_FLAG_NOPRE | \
+ RPMTRANS_FLAG_NOPOST | \
+ RPMTRANS_FLAG_NOPREUN | \
+ RPMTRANS_FLAG_NOPOSTUN \
+ )
+
+#define _noTransTriggers \
+ ( RPMTRANS_FLAG_NOTRIGGERPREIN | \
+ RPMTRANS_FLAG_NOTRIGGERIN | \
+ RPMTRANS_FLAG_NOTRIGGERUN | \
+ RPMTRANS_FLAG_NOTRIGGERPOSTUN \
+ )
+
/** \ingroup rpmtrans
* Return copy of rpmlib internal provides.
* @retval address of array of rpmlib internal provide names
diff --git a/lib/transaction.c b/lib/transaction.c
index 3b3500490..928ba00e3 100644
--- a/lib/transaction.c
+++ b/lib/transaction.c
@@ -1385,10 +1385,14 @@ int rpmRunTransactions( rpmTransactionSet ts,
/* FIXME: what if the same package is included in ts twice? */
ts->transFlags = transFlags;
+ if (ts->transFlags & RPMTRANS_FLAG_NOSCRIPTS)
+ ts->transFlags |= (_noTransScripts | _noTransTriggers);
+ if (ts->transFlags & RPMTRANS_FLAG_NOTRIGGERS)
+ ts->transFlags |= _noTransTriggers;
/* XXX MULTILIB is broken, as packages can and do execute /sbin/ldconfig. */
if (ts->transFlags & (RPMTRANS_FLAG_JUSTDB | RPMTRANS_FLAG_MULTILIB))
- ts->transFlags |= (RPMTRANS_FLAG_NOSCRIPTS|RPMTRANS_FLAG_NOTRIGGERS);
+ ts->transFlags |= (_noTransScripts | _noTransTriggers);
ts->notify = notify;
ts->notifyData = notifyData;
diff --git a/macros.in b/macros.in
index 491b5e0d9..e116c436a 100644
--- a/macros.in
+++ b/macros.in
@@ -1,4 +1,4 @@
-# $Id: macros.in,v 1.71 2001/02/11 22:02:29 jbj Exp $
+# $Id: macros.in,v 1.72 2001/03/04 15:34:53 jbj Exp $
#
# This is a global RPM configuration file. All changes made here will
# be lost when the rpm package is upgraded. Any per-system configuration
@@ -299,7 +299,7 @@
%{nil}
# The list of tags for which indices will be built.
-%_dbi_tags Packages:Name:Basenames:Group:Requirename:Providename:Conflictname:Triggername:Depends
+%_dbi_tags Packages:Name:Basenames:Group:Requirename:Providename:Conflictname:Triggername:Dirnames:Requireversion:Provideversion:Installtid:Removetid:Depends
# "Packages" needs fcntl shared/exclusive lock.
%_dbi_config_Packages %{_dbi_config}:lockdbfd
@@ -307,6 +307,12 @@
# "Depends" is a per-transaction cache of known dependency resolutions.
%_dbi_config_Depends %{_dbi_config}:temporary
+%_dbi_config_Dirnames btree bt_dup bt_dupsort usecursors perms=0644
+%_dbi_config_Requireversion btree bt_dup bt_dupsort usecursors perms=0644
+%_dbi_config_Provideversion btree bt_dup bt_dupsort usecursors perms=0644
+%_dbi_config_Installtid btree bt_dup bt_dupsort usecursors perms=0644
+%_dbi_config_Removetid btree bt_dup bt_dupsort usecursors perms=0644
+
#==============================================================================
# ---- transaction macros.
# Macro(s) used to parameterize
diff --git a/po/rpm.pot b/po/rpm.pot
index 809b9cfc4..6c94a9baf 100644
--- a/po/rpm.pot
+++ b/po/rpm.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-03-03 15:43-0500\n"
+"POT-Creation-Date: 2001-03-04 10:09-0500\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"
@@ -70,1016 +70,1020 @@ msgstr ""
msgid "Building for target %s\n"
msgstr ""
-#: rpm.c:200 rpmqv.c:356
+#: rpm.c:224 rpmqv.c:391
#, c-format
msgid "rpm: %s\n"
msgstr ""
-#: rpm.c:211 rpmqv.c:361
+#: rpm.c:235 rpmqv.c:396
#, c-format
msgid "RPM version %s\n"
msgstr ""
-#: rpm.c:215 rpmqv.c:365
+#: rpm.c:239 rpmqv.c:400
msgid "Copyright (C) 1998-2000 - Red Hat, Inc."
msgstr ""
-#: rpm.c:216 rpmqv.c:366
+#: rpm.c:240 rpmqv.c:401
msgid "This program may be freely redistributed under the terms of the GNU GPL"
msgstr ""
-#: rpm.c:224
+#: rpm.c:248
msgid "Usage: rpm {--help}"
msgstr ""
-#: rpm.c:225
+#: rpm.c:249
msgid " rpm {--version}"
msgstr ""
-#: rpm.c:226
+#: rpm.c:250
msgid " rpm {--initdb} [--dbpath <dir>]"
msgstr ""
-#: rpm.c:227
+#: rpm.c:251
msgid ""
" rpm {--install -i} [-v] [--hash -h] [--percent] [--force] [--test]"
msgstr ""
-#: rpm.c:228
+#: rpm.c:252
msgid " [--replacepkgs] [--replacefiles] [--root <dir>]"
msgstr ""
-#: rpm.c:229
+#: rpm.c:253
msgid " [--excludedocs] [--includedocs] [--noscripts]"
msgstr ""
-#: rpm.c:230
+#: rpm.c:254
msgid ""
" [--rcfile <file>] [--ignorearch] [--dbpath <dir>]"
msgstr ""
-#: rpm.c:231
+#: rpm.c:255
msgid ""
" [--prefix <dir>] [--ignoreos] [--nodeps] [--allfiles]"
msgstr ""
-#: rpm.c:232 rpm.c:241 rpm.c:251
+#: rpm.c:256 rpm.c:265 rpm.c:275
msgid " [--ftpproxy <host>] [--ftpport <port>]"
msgstr ""
-#: rpm.c:233 rpm.c:252
+#: rpm.c:257 rpm.c:276
msgid " [--httpproxy <host>] [--httpport <port>]"
msgstr ""
-#: rpm.c:234
+#: rpm.c:258
msgid ""
" [--justdb] [--noorder] [--relocate oldpath=newpath]"
msgstr ""
-#: rpm.c:235
+#: rpm.c:259
msgid ""
" [--badreloc] [--notriggers] [--excludepath <path>]"
msgstr ""
-#: rpm.c:236
+#: rpm.c:260
msgid " [--ignoresize] file1.rpm ... fileN.rpm"
msgstr ""
-#: rpm.c:237
+#: rpm.c:261
msgid ""
" rpm {--upgrade -U} [-v] [--hash -h] [--percent] [--force] [--test]"
msgstr ""
-#: rpm.c:238
+#: rpm.c:262
msgid " [--oldpackage] [--root <dir>] [--noscripts]"
msgstr ""
-#: rpm.c:239
+#: rpm.c:263
msgid ""
" [--excludedocs] [--includedocs] [--rcfile <file>]"
msgstr ""
-#: rpm.c:240
+#: rpm.c:264
msgid ""
" [--ignorearch] [--dbpath <dir>] [--prefix <dir>] "
msgstr ""
-#: rpm.c:242
+#: rpm.c:266
msgid " [--httpproxy <host>] [--httpport <port>] "
msgstr ""
-#: rpm.c:243
+#: rpm.c:267
msgid " [--ignoreos] [--nodeps] [--allfiles] [--justdb]"
msgstr ""
-#: rpm.c:244
+#: rpm.c:268
msgid " [--noorder] [--relocate oldpath=newpath]"
msgstr ""
-#: rpm.c:245
+#: rpm.c:269
msgid ""
" [--badreloc] [--excludepath <path>] [--ignoresize]"
msgstr ""
-#: rpm.c:246
+#: rpm.c:270
msgid " file1.rpm ... fileN.rpm"
msgstr ""
-#: rpm.c:247
+#: rpm.c:271
msgid " rpm {--query -q} [-afpg] [-i] [-l] [-s] [-d] [-c] [-v] [-R]"
msgstr ""
-#: rpm.c:248
+#: rpm.c:272
msgid " [--scripts] [--root <dir>] [--rcfile <file>]"
msgstr ""
-#: rpm.c:249
+#: rpm.c:273
msgid " [--whatprovides] [--whatrequires] [--requires]"
msgstr ""
-#: rpm.c:250
+#: rpm.c:274
msgid " [--triggeredby]"
msgstr ""
-#: rpm.c:253
+#: rpm.c:277
msgid " [--provides] [--triggers] [--dump]"
msgstr ""
-#: rpm.c:254
+#: rpm.c:278
msgid " [--changelog] [--dbpath <dir>] [targets]"
msgstr ""
-#: rpm.c:255
+#: rpm.c:279
msgid " rpm {--verify -V -y} [-afpg] [--root <dir>] [--rcfile <file>]"
msgstr ""
-#: rpm.c:256
+#: rpm.c:280
msgid ""
" [--dbpath <dir>] [--nodeps] [--nofiles] [--noscripts]"
msgstr ""
-#: rpm.c:257
+#: rpm.c:281
msgid " [--nomd5] [targets]"
msgstr ""
-#: rpm.c:258
+#: rpm.c:282
msgid " rpm {--setperms} [-afpg] [target]"
msgstr ""
-#: rpm.c:259
+#: rpm.c:283
msgid " rpm {--setugids} [-afpg] [target]"
msgstr ""
-#: rpm.c:260
+#: rpm.c:284
msgid " rpm {--freshen -F} file1.rpm ... fileN.rpm"
msgstr ""
-#: rpm.c:261
+#: rpm.c:285
msgid " rpm {--erase -e} [--root <dir>] [--noscripts] [--rcfile <file>]"
msgstr ""
-#: rpm.c:262
+#: rpm.c:286
msgid " [--dbpath <dir>] [--nodeps] [--allmatches]"
msgstr ""
-#: rpm.c:263
+#: rpm.c:287
msgid " [--justdb] [--notriggers] package1 ... packageN"
msgstr ""
-#: rpm.c:264
+#: rpm.c:288
msgid " rpm {--resign} [--rcfile <file>] package1 package2 ... packageN"
msgstr ""
-#: rpm.c:265
+#: rpm.c:289
msgid " rpm {--addsign} [--rcfile <file>] package1 package2 ... packageN"
msgstr ""
-#: rpm.c:266
+#: rpm.c:290
msgid ""
" rpm {--checksig -K} [--nopgp] [--nogpg] [--nomd5] [--rcfile <file>]"
msgstr ""
-#: rpm.c:267
+#: rpm.c:291
msgid " package1 ... packageN"
msgstr ""
-#: rpm.c:268
+#: rpm.c:292
msgid " rpm {--rebuilddb} [--rcfile <file>] [--dbpath <dir>]"
msgstr ""
-#: rpm.c:269
+#: rpm.c:293
msgid " rpm {--querytags}"
msgstr ""
-#: rpm.c:303 rpmqv.c:441
+#: rpm.c:327 rpmqv.c:476
msgid "Usage:"
msgstr ""
-#: rpm.c:305 rpmqv.c:443
+#: rpm.c:329 rpmqv.c:478
msgid "print this message"
msgstr ""
-#: rpm.c:307 rpmqv.c:128 rpmqv.c:445
+#: rpm.c:331 rpmqv.c:128 rpmqv.c:480
msgid "print the version of rpm being used"
msgstr ""
-#: rpm.c:310
+#: rpm.c:334
msgid " All modes support the following arguments:"
msgstr ""
-#: rpm.c:311
+#: rpm.c:335
msgid " --define '<name> <body>'"
msgstr ""
-#: rpm.c:312 rpmqv.c:135 rpmqv.c:450
+#: rpm.c:336 rpmqv.c:135 rpmqv.c:485
msgid "define macro <name> with value <body>"
msgstr ""
-#: rpm.c:313
+#: rpm.c:337
msgid " --eval '<name>+' "
msgstr ""
-#: rpm.c:314
+#: rpm.c:338
msgid "print the expansion of macro <name> to stdout"
msgstr ""
-#: rpm.c:315
+#: rpm.c:339
msgid " --pipe <cmd> "
msgstr ""
-#: rpm.c:316 rpmqv.c:141 rpmqv.c:454
+#: rpm.c:340 rpmqv.c:141 rpmqv.c:489
msgid "send stdout to <cmd>"
msgstr ""
-#: rpm.c:317
+#: rpm.c:341
msgid " --rcfile <file> "
msgstr ""
-#: rpm.c:318
+#: rpm.c:342
msgid "use <file> instead of /etc/rpmrc and $HOME/.rpmrc"
msgstr ""
-#: rpm.c:320 rpmqv.c:159 rpmqv.c:458
+#: rpm.c:344 rpmqv.c:159 rpmqv.c:493
msgid "display final rpmrc and macro configuration"
msgstr ""
-#: rpm.c:322 rpmqv.c:466
+#: rpm.c:346 rpmqv.c:501
msgid "be a little more verbose"
msgstr ""
-#: rpm.c:324 rpmqv.c:468
+#: rpm.c:348 rpmqv.c:503
msgid "be incredibly verbose (for debugging)"
msgstr ""
-#: rpm.c:327
+#: rpm.c:351
msgid " Install, upgrade and query (with -p) allow URL's to be used in place"
msgstr ""
-#: rpm.c:328
+#: rpm.c:352
msgid " of file names as well as the following options:"
msgstr ""
-#: rpm.c:329
+#: rpm.c:353
msgid " --ftpproxy <host> "
msgstr ""
-#: rpm.c:330 rpmqv.c:475
+#: rpm.c:354 rpmqv.c:510
msgid "hostname or IP of ftp proxy"
msgstr ""
-#: rpm.c:331
+#: rpm.c:355
msgid " --ftpport <port> "
msgstr ""
-#: rpm.c:332 rpmqv.c:477
+#: rpm.c:356 rpmqv.c:512
msgid "port number of ftp server (or proxy)"
msgstr ""
-#: rpm.c:333
+#: rpm.c:357
msgid " --httpproxy <host> "
msgstr ""
-#: rpm.c:334 rpmqv.c:479
+#: rpm.c:358 rpmqv.c:514
msgid "hostname or IP of http proxy"
msgstr ""
-#: rpm.c:335
+#: rpm.c:359
msgid " --httpport <port> "
msgstr ""
-#: rpm.c:336 rpmqv.c:481
+#: rpm.c:360 rpmqv.c:516
msgid "port number of http server (or proxy)"
msgstr ""
-#: rpm.c:340 rpmqv.c:501
+#: rpm.c:364 rpmqv.c:536
msgid "query mode"
msgstr ""
-#: rpm.c:341 rpm.c:387 rpm.c:412 rpm.c:464 rpm.c:538
+#: rpm.c:365 rpm.c:411 rpm.c:436 rpm.c:488 rpm.c:562
msgid " --dbpath <dir> "
msgstr ""
-#: rpm.c:342 rpm.c:388 rpm.c:413 rpm.c:465 rpm.c:539 rpmqv.c:461
+#: rpm.c:366 rpm.c:412 rpm.c:437 rpm.c:489 rpm.c:563 rpmqv.c:496
msgid "use <dir> as the directory for the database"
msgstr ""
-#: rpm.c:343
+#: rpm.c:367
msgid " --queryformat <qfmt>"
msgstr ""
-#: rpm.c:344 rpmqv.c:503
+#: rpm.c:368 rpmqv.c:538
msgid "use <qfmt> as the header format (implies --info)"
msgstr ""
-#: rpm.c:345 rpm.c:389 rpm.c:447 rpm.c:476
+#: rpm.c:369 rpm.c:413 rpm.c:471 rpm.c:500
msgid " --root <dir> "
msgstr ""
-#: rpm.c:346 rpm.c:390 rpm.c:448 rpm.c:477 rpm.c:541 rpmqv.c:144 rpmqv.c:463
+#: rpm.c:370 rpm.c:414 rpm.c:472 rpm.c:501 rpm.c:565 rpmqv.c:144 rpmqv.c:498
msgid "use <dir> as the top level directory"
msgstr ""
-#: rpm.c:347
+#: rpm.c:371
msgid " Package specification options:"
msgstr ""
-#: rpm.c:349
+#: rpm.c:373
msgid "query all packages"
msgstr ""
-#: rpm.c:350
+#: rpm.c:374
msgid " -f <file>+ "
msgstr ""
-#: rpm.c:351
+#: rpm.c:375
msgid "query package owning <file>"
msgstr ""
-#: rpm.c:352
+#: rpm.c:376
msgid " -p <packagefile>+ "
msgstr ""
-#: rpm.c:353
+#: rpm.c:377
msgid "query (uninstalled) package <packagefile>"
msgstr ""
-#: rpm.c:354
+#: rpm.c:378
msgid " --triggeredby <pkg>"
msgstr ""
-#: rpm.c:355
+#: rpm.c:379
msgid "query packages triggered by <pkg>"
msgstr ""
-#: rpm.c:356
+#: rpm.c:380
msgid " --whatprovides <cap>"
msgstr ""
-#: rpm.c:357
+#: rpm.c:381
msgid "query packages which provide <cap> capability"
msgstr ""
-#: rpm.c:358
+#: rpm.c:382
msgid " --whatrequires <cap>"
msgstr ""
-#: rpm.c:359
+#: rpm.c:383
msgid "query packages which require <cap> capability"
msgstr ""
-#: rpm.c:360
+#: rpm.c:384
msgid " Information selection options:"
msgstr ""
-#: rpm.c:362 rpmqv.c:507
+#: rpm.c:386 rpmqv.c:542
msgid "display package information"
msgstr ""
-#: rpm.c:364 rpmqv.c:509
+#: rpm.c:388 rpmqv.c:544
msgid "display the package's change log"
msgstr ""
-#: rpm.c:366 rpmqv.c:511
+#: rpm.c:390 rpmqv.c:546
msgid "display package file list"
msgstr ""
-#: rpm.c:368 rpmqv.c:513
+#: rpm.c:392 rpmqv.c:548
msgid "show file states (implies -l)"
msgstr ""
-#: rpm.c:370 rpmqv.c:515
+#: rpm.c:394 rpmqv.c:550
msgid "list only documentation files (implies -l)"
msgstr ""
-#: rpm.c:372 rpmqv.c:517
+#: rpm.c:396 rpmqv.c:552
msgid "list only configuration files (implies -l)"
msgstr ""
-#: rpm.c:374 rpmqv.c:519
+#: rpm.c:398 rpmqv.c:554
msgid ""
"show all verifiable information for each file (must be used with -l, -c, or "
"-d)"
msgstr ""
-#: rpm.c:376
+#: rpm.c:400
msgid "list capabilities package provides"
msgstr ""
-#: rpm.c:378
+#: rpm.c:402
msgid "list package dependencies"
msgstr ""
-#: rpm.c:380
+#: rpm.c:404
msgid "print the various [un]install scripts"
msgstr ""
-#: rpm.c:382
+#: rpm.c:406
msgid "show the trigger scripts contained in the package"
msgstr ""
-#: rpm.c:386 rpmqv.c:530
+#: rpm.c:410 rpmqv.c:565
msgid ""
"verify a package installation using the same same package specification "
"options as -q"
msgstr ""
-#: lib/poptBT.c:183 lib/verify.c:54 rpm.c:392 rpm.c:434 rpm.c:469 rpmqv.c:262
-#: rpmqv.c:532 rpmqv.c:580 rpmqv.c:614
+#: lib/poptBT.c:183 lib/verify.c:54 rpm.c:416 rpm.c:458 rpm.c:493 rpmqv.c:268
+#: rpmqv.c:567 rpmqv.c:615 rpmqv.c:649
msgid "do not verify package dependencies"
msgstr ""
-#: lib/verify.c:60 rpm.c:394 rpmqv.c:208 rpmqv.c:536
+#: lib/verify.c:60 rpm.c:418 rpmqv.c:208 rpmqv.c:571
msgid "do not verify file md5 checksums"
msgstr ""
-#: rpm.c:396 rpmqv.c:534
+#: rpm.c:420 rpmqv.c:569
msgid "do not verify file attributes"
msgstr ""
-#: rpm.c:398 rpmqv.c:541
+#: rpm.c:422 rpmqv.c:576
msgid "list the tags that can be used in a query format"
msgstr ""
-#: rpm.c:401
+#: rpm.c:425
msgid " --install <packagefile>"
msgstr ""
-#: rpm.c:402
+#: rpm.c:426
msgid " -i <packagefile> "
msgstr ""
-#: rpm.c:403 rpmqv.c:258 rpmqv.c:555
+#: rpm.c:427 rpmqv.c:264 rpmqv.c:590
msgid "install package"
msgstr ""
-#: rpm.c:404
+#: rpm.c:428
msgid " --excludepath <path>"
msgstr ""
-#: rpm.c:405
+#: rpm.c:429
msgid "skip files in path <path>"
msgstr ""
-#: rpm.c:406
+#: rpm.c:430
msgid " --relocate <oldpath>=<newpath>"
msgstr ""
-#: rpm.c:407 rpmqv.c:592
+#: rpm.c:431 rpmqv.c:627
msgid "relocate files from <oldpath> to <newpath>"
msgstr ""
-#: rpm.c:409 rpmqv.c:230 rpmqv.c:560
+#: rpm.c:433 rpmqv.c:236 rpmqv.c:595
msgid "relocate files in non-relocateable package"
msgstr ""
-#: rpm.c:410
+#: rpm.c:434
msgid " --prefix <dir> "
msgstr ""
-#: rpm.c:411 rpmqv.c:276 rpmqv.c:590
+#: rpm.c:435 rpmqv.c:311 rpmqv.c:625
msgid "relocate the package to <dir>, if relocatable"
msgstr ""
-#: rpm.c:415 rpmqv.c:236 rpmqv.c:562
+#: rpm.c:439 rpmqv.c:242 rpmqv.c:597
msgid "do not install documentation"
msgstr ""
-#: rpm.c:417 rpmqv.c:241 rpmqv.c:566
+#: rpm.c:441 rpmqv.c:247 rpmqv.c:601
msgid "short hand for --replacepkgs --replacefiles"
msgstr ""
-#: rpm.c:419 rpmqv.c:247 rpmqv.c:568
+#: rpm.c:443 rpmqv.c:253 rpmqv.c:603
msgid "print hash marks as package installs (good with -v)"
msgstr ""
-#: rpm.c:421 rpmqv.c:224 rpmqv.c:557
+#: rpm.c:445 rpmqv.c:224 rpmqv.c:592
msgid "install all files, even configurations which might otherwise be skipped"
msgstr ""
-#: rpm.c:424 rpmqv.c:249 rpmqv.c:570
+#: rpm.c:448 rpmqv.c:255 rpmqv.c:605
msgid "don't verify package architecture"
msgstr ""
-#: rpm.c:426 rpmqv.c:254 rpmqv.c:572
+#: rpm.c:450 rpmqv.c:260 rpmqv.c:607
msgid "don't check disk space before installing"
msgstr ""
-#: rpm.c:428 rpmqv.c:251 rpmqv.c:574
+#: rpm.c:452 rpmqv.c:257 rpmqv.c:609
msgid "don't verify package operating system"
msgstr ""
-#: rpm.c:430 rpmqv.c:256 rpmqv.c:576
+#: rpm.c:454 rpmqv.c:262 rpmqv.c:611
msgid "install documentation"
msgstr ""
-#: rpm.c:432 rpm.c:467 rpmqv.c:260 rpmqv.c:578 rpmqv.c:612
+#: rpm.c:456 rpm.c:491 rpmqv.c:266 rpmqv.c:613 rpmqv.c:647
msgid "update the database, but do not modify the filesystem"
msgstr ""
-#: rpm.c:436 rpm.c:471 rpmqv.c:264 rpmqv.c:582 rpmqv.c:616
+#: rpm.c:460 rpm.c:495 rpmqv.c:270 rpmqv.c:617 rpmqv.c:651
msgid "do not reorder package installation to satisfy dependencies"
msgstr ""
-#: rpm.c:438
+#: rpm.c:462
msgid "don't execute any installation scripts"
msgstr ""
-#: rpm.c:440 rpm.c:475 rpmqv.c:620
+#: rpm.c:464 rpm.c:499 rpmqv.c:655
msgid "don't execute any scripts triggered by this package"
msgstr ""
-#: rpm.c:442 rpmqv.c:274 rpmqv.c:588
+#: rpm.c:466 rpmqv.c:309 rpmqv.c:623
msgid "print percentages as package installs"
msgstr ""
-#: rpm.c:444 rpmqv.c:285 rpmqv.c:594
+#: rpm.c:468 rpmqv.c:320 rpmqv.c:629
msgid "install even if the package replaces installed files"
msgstr ""
-#: rpm.c:446 rpmqv.c:287 rpmqv.c:596
+#: rpm.c:470 rpmqv.c:322 rpmqv.c:631
msgid "reinstall if the package is already present"
msgstr ""
-#: rpm.c:450 rpmqv.c:289 rpmqv.c:598
+#: rpm.c:474 rpmqv.c:324 rpmqv.c:633
msgid "don't install, but tell if it would work or not"
msgstr ""
-#: rpm.c:453
+#: rpm.c:477
msgid " --upgrade <packagefile>"
msgstr ""
-#: rpm.c:454
+#: rpm.c:478
msgid " -U <packagefile> "
msgstr ""
-#: rpm.c:455 rpmqv.c:602
+#: rpm.c:479 rpmqv.c:637
msgid "upgrade package (same options as --install, plus)"
msgstr ""
-#: rpm.c:457 rpmqv.c:271 rpmqv.c:604
+#: rpm.c:481 rpmqv.c:306 rpmqv.c:639
msgid ""
"upgrade to an old version of the package (--force on upgrades does this "
"automatically)"
msgstr ""
-#: rpm.c:459
+#: rpm.c:483
msgid " --erase <package>"
msgstr ""
-#: rpm.c:461 rpmqv.c:234 rpmqv.c:608
+#: rpm.c:485 rpmqv.c:240 rpmqv.c:643
msgid "erase (uninstall) package"
msgstr ""
-#: rpm.c:463 rpmqv.c:227 rpmqv.c:610
+#: rpm.c:487 rpmqv.c:227 rpmqv.c:645
msgid ""
"remove all packages which match <package> (normally an error is generated if "
"<package> specified multiple packages)"
msgstr ""
-#: rpm.c:473 rpmqv.c:618
+#: rpm.c:497 rpmqv.c:653
msgid "do not execute any package specific scripts"
msgstr ""
-#: rpm.c:479
+#: rpm.c:503
msgid " -b<stage> <spec> "
msgstr ""
-#: rpm.c:480
+#: rpm.c:504
msgid " -t<stage> <tarball> "
msgstr ""
-#: rpm.c:481
+#: rpm.c:505
msgid "build package, where <stage> is one of:"
msgstr ""
-#: rpm.c:483
+#: rpm.c:507
msgid "prep (unpack sources and apply patches)"
msgstr ""
-#: rpm.c:485
+#: rpm.c:509
#, c-format
msgid "list check (do some cursory checks on %files)"
msgstr ""
-#: rpm.c:487
+#: rpm.c:511
msgid "compile (prep and compile)"
msgstr ""
-#: rpm.c:489
+#: rpm.c:513
msgid "install (prep, compile, install)"
msgstr ""
-#: rpm.c:491
+#: rpm.c:515
msgid "binary package (prep, compile, install, package)"
msgstr ""
-#: rpm.c:493
+#: rpm.c:517
msgid "bin/src package (prep, compile, install, package)"
msgstr ""
-#: lib/poptBT.c:194 rpm.c:495
+#: lib/poptBT.c:194 rpm.c:519
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
-#: lib/poptBT.c:173 rpm.c:497
+#: lib/poptBT.c:173 rpm.c:521
msgid "remove build tree when done"
msgstr ""
-#: lib/poptBT.c:190 rpm.c:499
+#: lib/poptBT.c:190 rpm.c:523
msgid "remove sources when done"
msgstr ""
-#: rpm.c:501
+#: rpm.c:525
msgid "remove spec file when done"
msgstr ""
-#: lib/poptBT.c:196 rpm.c:503 rpmqv.c:200
+#: lib/poptBT.c:196 rpm.c:527 rpmqv.c:200
msgid "generate PGP/GPG signature"
msgstr ""
-#: rpm.c:504
+#: rpm.c:528
msgid " --buildroot <dir> "
msgstr ""
-#: rpm.c:505
+#: rpm.c:529
msgid "use <dir> as the build root"
msgstr ""
-#: rpm.c:506
+#: rpm.c:530
msgid " --target=<platform>+"
msgstr ""
-#: rpm.c:507
+#: rpm.c:531
msgid "build the packages for the build targets platform1...platformN."
msgstr ""
-#: rpm.c:509
+#: rpm.c:533
msgid "do not execute any stages"
msgstr ""
-#: rpm.c:510
+#: rpm.c:534
msgid " --timecheck <secs> "
msgstr ""
-#: rpm.c:511
+#: rpm.c:535
msgid "set the time check to <secs> seconds (0 disables)"
msgstr ""
-#: rpm.c:513
+#: rpm.c:537
msgid " --rebuild <src_pkg> "
msgstr ""
-#: rpm.c:514
+#: rpm.c:538
msgid ""
"install source package, build binary package and remove spec file, sources, "
"patches, and icons."
msgstr ""
-#: rpm.c:515
+#: rpm.c:539
msgid " --recompile <src_pkg> "
msgstr ""
-#: rpm.c:516
+#: rpm.c:540
msgid "like --rebuild, but don't build any package"
msgstr ""
-#: rpm.c:519
+#: rpm.c:543
msgid " --resign <pkg>+ "
msgstr ""
-#: rpm.c:520 rpmqv.c:198 rpmqv.c:626
+#: rpm.c:544 rpmqv.c:198 rpmqv.c:661
msgid "sign a package (discard current signature)"
msgstr ""
-#: rpm.c:521
+#: rpm.c:545
msgid " --addsign <pkg>+ "
msgstr ""
-#: rpm.c:522 rpmqv.c:196 rpmqv.c:628
+#: rpm.c:546 rpmqv.c:196 rpmqv.c:663
msgid "add a signature to a package"
msgstr ""
-#: rpm.c:523
+#: rpm.c:547
msgid " --checksig <pkg>+"
msgstr ""
-#: rpm.c:524
+#: rpm.c:548
msgid " -K <pkg>+ "
msgstr ""
-#: rpm.c:525 rpmqv.c:202 rpmqv.c:632
+#: rpm.c:549 rpmqv.c:202 rpmqv.c:667
msgid "verify package signature"
msgstr ""
-#: rpm.c:527 rpmqv.c:204 rpmqv.c:634
+#: rpm.c:551 rpmqv.c:204 rpmqv.c:669
msgid "skip any PGP signatures"
msgstr ""
-#: rpm.c:529 rpmqv.c:206 rpmqv.c:636
+#: rpm.c:553 rpmqv.c:206 rpmqv.c:671
msgid "skip any GPG signatures"
msgstr ""
-#: rpm.c:531 rpmqv.c:638
+#: rpm.c:555 rpmqv.c:673
msgid "skip any MD5 signatures"
msgstr ""
-#: rpm.c:535
+#: rpm.c:559
msgid "make sure a valid database exists"
msgstr ""
-#: rpm.c:537
+#: rpm.c:561
msgid "rebuild database from existing database"
msgstr ""
-#: rpm.c:545 rpmqv.c:543
+#: rpm.c:569 rpmqv.c:578
msgid ""
"set the file permissions to those in the package database using the same "
"package specification options as -q"
msgstr ""
-#: rpm.c:548 rpmqv.c:546
+#: rpm.c:572 rpmqv.c:581
msgid ""
"set the file owner and group to those in the package database using the same "
"package specification options as -q"
msgstr ""
-#: rpm.c:688 rpm.c:694 rpm.c:703 rpm.c:725 rpm.c:731 rpm.c:738 rpm.c:746
-#: rpm.c:754 rpm.c:775 rpm.c:838 rpmqv.c:831 rpmqv.c:837 rpmqv.c:844
-#: rpmqv.c:850 rpmqv.c:884 rpmqv.c:892 rpmqv.c:898 rpmqv.c:906 rpmqv.c:973
+#: rpm.c:724 rpm.c:730 rpm.c:739 rpm.c:761 rpm.c:767 rpm.c:774 rpm.c:782
+#: rpm.c:790 rpm.c:811 rpm.c:874 rpmqv.c:866 rpmqv.c:872 rpmqv.c:879
+#: rpmqv.c:885 rpmqv.c:919 rpmqv.c:927 rpmqv.c:933 rpmqv.c:941 rpmqv.c:1008
msgid "only one major mode may be specified"
msgstr ""
-#: rpm.c:696
+#: rpm.c:732
msgid "-u and --uninstall are deprecated and no longer work.\n"
msgstr ""
-#: rpm.c:698
+#: rpm.c:734
msgid "Use -e or --erase instead.\n"
msgstr ""
-#: rpm.c:781 rpmqv.c:868
+#: rpm.c:817 rpmqv.c:903
msgid "relocations must begin with a /"
msgstr ""
-#: rpm.c:783 rpmqv.c:870
+#: rpm.c:819 rpmqv.c:905
msgid "relocations must contain a ="
msgstr ""
-#: rpm.c:786 rpmqv.c:873
+#: rpm.c:822 rpmqv.c:908
msgid "relocations must have a / following the ="
msgstr ""
-#: rpm.c:795 rpmqv.c:857
+#: rpm.c:831 rpmqv.c:892
msgid "exclude paths must begin with a /"
msgstr ""
-#: rpm.c:804 rpmqv.c:927
+#: rpm.c:840 rpmqv.c:962
msgid "The --rcfile option has been eliminated.\n"
msgstr ""
-#: rpm.c:805
+#: rpm.c:841
msgid "Use --macros with a colon separated list of macro files to read.\n"
msgstr ""
-#: rpm.c:810 rpmqv.c:933
+#: rpm.c:846 rpmqv.c:968
#, c-format
msgid "Internal error in argument processing (%d) :-(\n"
msgstr ""
-#: rpm.c:845 rpmqv.c:988
+#: rpm.c:881 rpmqv.c:1023
msgid "one type of query/verify may be performed at a time"
msgstr ""
-#: rpm.c:850 rpmqv.c:992
+#: rpm.c:886 rpmqv.c:1027
msgid "unexpected query flags"
msgstr ""
-#: rpm.c:853 rpmqv.c:995
+#: rpm.c:889 rpmqv.c:1030
msgid "unexpected query format"
msgstr ""
-#: rpm.c:856 rpmqv.c:998
+#: rpm.c:892 rpmqv.c:1033
msgid "unexpected query source"
msgstr ""
-#: rpm.c:859 rpmqv.c:1008
+#: rpm.c:895 rpmqv.c:1043
msgid "only installation, upgrading, rmsource and rmspec may be forced"
msgstr ""
-#: rpm.c:862 rpmqv.c:1013
+#: rpm.c:898 rpmqv.c:1048
msgid "files may only be relocated during package installation"
msgstr ""
-#: rpm.c:865 rpmqv.c:1016
+#: rpm.c:901 rpmqv.c:1051
msgid "only one of --prefix or --relocate may be used"
msgstr ""
-#: rpm.c:868 rpmqv.c:1019
+#: rpm.c:904 rpmqv.c:1054
msgid ""
"--relocate and --excludepath may only be used when installing new packages"
msgstr ""
-#: rpm.c:871 rpmqv.c:1022
+#: rpm.c:907 rpmqv.c:1057
msgid "--prefix may only be used when installing new packages"
msgstr ""
-#: rpm.c:874 rpmqv.c:1025
+#: rpm.c:910 rpmqv.c:1060
msgid "arguments to --prefix must begin with a /"
msgstr ""
-#: rpm.c:877 rpmqv.c:1028
+#: rpm.c:913 rpmqv.c:1063
msgid "--hash (-h) may only be specified during package installation"
msgstr ""
-#: rpm.c:881 rpmqv.c:1032
+#: rpm.c:917 rpmqv.c:1067
msgid "--percent may only be specified during package installation"
msgstr ""
-#: rpm.c:885 rpmqv.c:1037
+#: rpm.c:921 rpmqv.c:1072
msgid "--replacefiles may only be specified during package installation"
msgstr ""
-#: rpm.c:889 rpmqv.c:1041
+#: rpm.c:925 rpmqv.c:1076
msgid "--replacepkgs may only be specified during package installation"
msgstr ""
-#: rpm.c:893 rpmqv.c:1045
+#: rpm.c:929 rpmqv.c:1080
msgid "--excludedocs may only be specified during package installation"
msgstr ""
-#: rpm.c:897 rpmqv.c:1049
+#: rpm.c:933 rpmqv.c:1084
msgid "--includedocs may only be specified during package installation"
msgstr ""
-#: rpm.c:901 rpmqv.c:1053
+#: rpm.c:937 rpmqv.c:1088
msgid "only one of --excludedocs and --includedocs may be specified"
msgstr ""
-#: rpm.c:905 rpmqv.c:1057
+#: rpm.c:941 rpmqv.c:1092
msgid "--ignorearch may only be specified during package installation"
msgstr ""
-#: rpm.c:909 rpmqv.c:1061
+#: rpm.c:945 rpmqv.c:1096
msgid "--ignoreos may only be specified during package installation"
msgstr ""
-#: rpm.c:913 rpmqv.c:1066
+#: rpm.c:949 rpmqv.c:1101
msgid "--ignoresize may only be specified during package installation"
msgstr ""
-#: rpm.c:917 rpmqv.c:1070
+#: rpm.c:953 rpmqv.c:1105
msgid "--allmatches may only be specified during package erasure"
msgstr ""
-#: rpm.c:921 rpmqv.c:1074
+#: rpm.c:957 rpmqv.c:1109
msgid "--allfiles may only be specified during package installation"
msgstr ""
-#: rpm.c:925 rpmqv.c:1079
+#: rpm.c:961 rpmqv.c:1114
msgid "--justdb may only be specified during package installation and erasure"
msgstr ""
-#: rpm.c:930
+#: rpm.c:968
msgid ""
-"--noscripts may only be specified during package installation, erasure, and "
-"verification"
+"script disabling options may only be specified during package installation, "
+"erasure, and verification"
msgstr ""
-#: rpm.c:934
+#: rpm.c:972
+msgid "--apply may only be specified during package installation"
+msgstr ""
+
+#: rpm.c:977 rpmqv.c:1126
msgid ""
-"--notriggers may only be specified during package installation, erasure, and "
-"verification"
+"trigger disabling options may only be specified during package installation "
+"and erasure"
msgstr ""
-#: rpm.c:938 rpmqv.c:1090
+#: rpm.c:981 rpmqv.c:1130
msgid ""
"--nodeps may only be specified during package building, rebuilding, "
"recompilation, installation,erasure, and verification"
msgstr ""
-#: rpm.c:943 rpmqv.c:1095
+#: rpm.c:986 rpmqv.c:1135
msgid ""
"--test may only be specified during package installation, erasure, and "
"building"
msgstr ""
-#: rpm.c:947 rpmqv.c:1100
+#: rpm.c:990 rpmqv.c:1140
msgid ""
"--root (-r) may only be specified during installation, erasure, querying, "
"and database rebuilds"
msgstr ""
-#: rpm.c:959 rpmqv.c:1112
+#: rpm.c:1002 rpmqv.c:1152
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
-#: rpm.c:965
+#: rpm.c:1008
msgid "--oldpackage may only be used during upgrades"
msgstr ""
-#: rpm.c:968 rpmqv.c:1119
+#: rpm.c:1011 rpmqv.c:1159
msgid "--nopgp may only be used during signature checking"
msgstr ""
-#: rpm.c:971 rpmqv.c:1122
+#: rpm.c:1014 rpmqv.c:1162
msgid "--nogpg may only be used during signature checking"
msgstr ""
-#: rpm.c:974 rpmqv.c:1127
+#: rpm.c:1017 rpmqv.c:1167
msgid ""
"--nomd5 may only be used during signature checking and package verification"
msgstr ""
-#: rpm.c:985 rpmqv.c:1143
+#: rpm.c:1028 rpmqv.c:1183
msgid "no files to sign\n"
msgstr ""
-#: rpm.c:990 rpmqv.c:1148
+#: rpm.c:1033 rpmqv.c:1188
#, c-format
msgid "cannot access file %s\n"
msgstr ""
-#: rpm.c:1005 rpmqv.c:1164
+#: rpm.c:1048 rpmqv.c:1204
msgid "pgp not found: "
msgstr ""
-#: rpm.c:1009 rpmqv.c:1168
+#: rpm.c:1052 rpmqv.c:1208
msgid "Enter pass phrase: "
msgstr ""
-#: rpm.c:1011 rpmqv.c:1170
+#: rpm.c:1054 rpmqv.c:1210
msgid "Pass phrase check failed\n"
msgstr ""
-#: rpm.c:1014 rpmqv.c:1173
+#: rpm.c:1057 rpmqv.c:1213
msgid "Pass phrase is good.\n"
msgstr ""
-#: rpm.c:1019 rpmqv.c:1178
+#: rpm.c:1062 rpmqv.c:1218
msgid "Invalid %%_signature spec in macro file.\n"
msgstr ""
-#: rpm.c:1025 rpmqv.c:1184
+#: rpm.c:1068 rpmqv.c:1224
msgid "--sign may only be used during package building"
msgstr ""
-#: rpm.c:1040 rpmqv.c:1200
+#: rpm.c:1083 rpmqv.c:1240
msgid "exec failed\n"
msgstr ""
-#: rpm.c:1059 rpmqv.c:1444
+#: rpm.c:1102 rpmqv.c:1484
msgid "unexpected arguments to --querytags "
msgstr ""
-#: rpm.c:1070 rpmqv.c:1466
+#: rpm.c:1113 rpmqv.c:1506
msgid "no packages given for signature check"
msgstr ""
-#: rpm.c:1081 rpmqv.c:1477
+#: rpm.c:1124 rpmqv.c:1517
msgid "no packages given for signing"
msgstr ""
-#: rpm.c:1097 rpmqv.c:1340
+#: rpm.c:1140 rpmqv.c:1380
msgid "no packages given for uninstall"
msgstr ""
-#: rpm.c:1161 rpmqv.c:1369
+#: rpm.c:1229 rpmqv.c:1409
msgid "no packages given for install"
msgstr ""
-#: rpm.c:1185 rpmqv.c:1410
+#: rpm.c:1253 rpmqv.c:1450
msgid "extra arguments given for query of all packages"
msgstr ""
-#: rpm.c:1190 rpmqv.c:1415
+#: rpm.c:1258 rpmqv.c:1455
msgid "no arguments given for query"
msgstr ""
-#: rpm.c:1207 rpmqv.c:1432
+#: rpm.c:1275 rpmqv.c:1472
msgid "extra arguments given for verify of all packages"
msgstr ""
-#: rpm.c:1211 rpmqv.c:1436
+#: rpm.c:1279 rpmqv.c:1476
msgid "no arguments given for verify"
msgstr ""
@@ -1125,7 +1129,7 @@ msgstr ""
msgid "<cmd>"
msgstr ""
-#: rpmqv.c:145 rpmqv.c:277
+#: rpmqv.c:145 rpmqv.c:312
msgid "<dir>"
msgstr ""
@@ -1173,302 +1177,343 @@ msgstr ""
msgid "generate headers compatible with rpm4 packaging"
msgstr ""
-#: rpmqv.c:232
+#: rpmqv.c:233 rpmqv.c:275
+msgid "do not execute package scriptlet(s)"
+msgstr ""
+
+#: rpmqv.c:238
msgid "save erased package files by renaming into sub-directory"
msgstr ""
-#: rpmqv.c:234
+#: rpmqv.c:240
msgid "<package>+"
msgstr ""
-#: rpmqv.c:238 rpmqv.c:564
+#: rpmqv.c:244 rpmqv.c:599
msgid "skip files with leading component <path> "
msgstr ""
-#: rpmqv.c:239
+#: rpmqv.c:245
msgid "<path>"
msgstr ""
-#: rpmqv.c:244
+#: rpmqv.c:250
msgid "upgrade package(s) if already installed"
msgstr ""
-#: rpmqv.c:245 rpmqv.c:258 rpmqv.c:292
+#: rpmqv.c:251 rpmqv.c:264 rpmqv.c:327
msgid "<packagefile>+"
msgstr ""
-#: rpmqv.c:267 rpmqv.c:538
-msgid "do not execute scripts (if any)"
+#: rpmqv.c:278
+msgid "do not execute %%pre scriptlet (if any)"
msgstr ""
-#: rpmqv.c:269 rpmqv.c:586
-msgid "don't execute any scriptlets triggered by this package"
+#: rpmqv.c:281
+msgid "do not execute %%post scriptlet (if any)"
+msgstr ""
+
+#: rpmqv.c:284
+msgid "do not execute %%preun scriptlet (if any)"
+msgstr ""
+
+#: rpmqv.c:287
+msgid "do not execute %%postun scriptlet (if any)"
+msgstr ""
+
+#: rpmqv.c:291
+msgid "do not execute any scriptlet(s) triggered by this package"
+msgstr ""
+
+#: rpmqv.c:294
+msgid "do not execute any %%triggerprein scriptlet(s)"
+msgstr ""
+
+#: rpmqv.c:297
+msgid "do not execute any %%triggerin scriptlet(s)"
msgstr ""
-#: rpmqv.c:279
+#: rpmqv.c:300
+msgid "do not execute any %%triggerun scriptlet(s)"
+msgstr ""
+
+#: rpmqv.c:303
+msgid "do not execute any %%triggerpostun scriptlet(s)"
+msgstr ""
+
+#: rpmqv.c:314
msgid "relocate files from path <old> to <new>"
msgstr ""
-#: rpmqv.c:280
+#: rpmqv.c:315
msgid "<old>=<new>"
msgstr ""
-#: rpmqv.c:282
+#: rpmqv.c:317
msgid "save erased package files by repackaging"
msgstr ""
-#: rpmqv.c:291
+#: rpmqv.c:326
msgid "upgrade package(s)"
msgstr ""
-#: rpmqv.c:311
+#: rpmqv.c:346
msgid "Query options (with -q or --query):"
msgstr ""
-#: rpmqv.c:314
+#: rpmqv.c:349
msgid "Verify options (with -V or --verify):"
msgstr ""
-#: rpmqv.c:320
+#: rpmqv.c:355
msgid "Signature options:"
msgstr ""
-#: rpmqv.c:326
+#: rpmqv.c:361
msgid "Database options:"
msgstr ""
-#: rpmqv.c:332
+#: rpmqv.c:367
msgid "Build options with [ <specfile> | <tarball> | <source package> ]:"
msgstr ""
-#: rpmqv.c:338
+#: rpmqv.c:373
msgid "Install/Upgrade/Erase options:"
msgstr ""
-#: rpmqv.c:343
+#: rpmqv.c:378
msgid "Common options for all rpm modes:"
msgstr ""
-#: rpmqv.c:377
+#: rpmqv.c:412
#, c-format
msgid "Usage: %s {--help}\n"
msgstr ""
-#: rpmqv.c:448
+#: rpmqv.c:483
msgid " All modes support the following options:"
msgstr ""
-#: rpmqv.c:449
+#: rpmqv.c:484
msgid " --define '<name> <body>'"
msgstr ""
-#: rpmqv.c:451
+#: rpmqv.c:486
msgid " --eval '<expr>+' "
msgstr ""
-#: rpmqv.c:452
+#: rpmqv.c:487
msgid "print the expansion of macro <expr> to stdout"
msgstr ""
-#: rpmqv.c:453
+#: rpmqv.c:488
msgid " --pipe <cmd> "
msgstr ""
-#: rpmqv.c:455
+#: rpmqv.c:490
msgid " --rcfile <file:...> "
msgstr ""
-#: rpmqv.c:456
+#: rpmqv.c:491
msgid "use <file:...> instead of default list of macro files"
msgstr ""
-#: rpmqv.c:460
+#: rpmqv.c:495
msgid " --dbpath <dir> "
msgstr ""
-#: rpmqv.c:462
+#: rpmqv.c:497
msgid " --root <dir> "
msgstr ""
-#: rpmqv.c:472
+#: rpmqv.c:507
msgid ""
" Install, upgrade and query (with -p) modes allow URL's to be used in place"
msgstr ""
-#: rpmqv.c:473
+#: rpmqv.c:508
msgid " of file names as well as the following options:"
msgstr ""
-#: rpmqv.c:474
+#: rpmqv.c:509
msgid " --ftpproxy <host> "
msgstr ""
-#: rpmqv.c:476
+#: rpmqv.c:511
msgid " --ftpport <port> "
msgstr ""
-#: rpmqv.c:478
+#: rpmqv.c:513
msgid " --httpproxy <host> "
msgstr ""
-#: rpmqv.c:480
+#: rpmqv.c:515
msgid " --httpport <port> "
msgstr ""
-#: rpmqv.c:486
+#: rpmqv.c:521
msgid " Package specification options:"
msgstr ""
-#: lib/poptQV.c:68 rpmqv.c:488
+#: lib/poptQV.c:68 rpmqv.c:523
msgid "query/verify all packages"
msgstr ""
-#: rpmqv.c:489
+#: rpmqv.c:524
msgid " -f <file>+ "
msgstr ""
-#: rpmqv.c:490
+#: rpmqv.c:525
msgid "query/verify package owning <file>"
msgstr ""
-#: rpmqv.c:491
+#: rpmqv.c:526
msgid " -p <packagefile>+ "
msgstr ""
-#: rpmqv.c:492
+#: rpmqv.c:527
msgid "query/verify (uninstalled) package <packagefile>"
msgstr ""
-#: rpmqv.c:493
+#: rpmqv.c:528
msgid " --triggeredby <pkg> "
msgstr ""
-#: rpmqv.c:494
+#: rpmqv.c:529
msgid "query/verify packages triggered by <pkg>"
msgstr ""
-#: rpmqv.c:495
+#: rpmqv.c:530
msgid " --whatprovides <cap> "
msgstr ""
-#: rpmqv.c:496
+#: rpmqv.c:531
msgid "query/verify packages which provide <cap> capability"
msgstr ""
-#: rpmqv.c:497
+#: rpmqv.c:532
msgid " --whatrequires <cap> "
msgstr ""
-#: rpmqv.c:498
+#: rpmqv.c:533
msgid "query/verify packages which require <cap> capability"
msgstr ""
-#: rpmqv.c:502
+#: rpmqv.c:537
msgid " --queryformat <qfmt> "
msgstr ""
-#: rpmqv.c:505
+#: rpmqv.c:540
msgid " Information selection options:"
msgstr ""
-#: rpmqv.c:521
+#: rpmqv.c:556
msgid "list capabilities provided by package"
msgstr ""
-#: rpmqv.c:523
+#: rpmqv.c:558
msgid "list capabilities required by package"
msgstr ""
-#: rpmqv.c:525
+#: rpmqv.c:560
msgid "print the various [un]install scriptlets"
msgstr ""
-#: rpmqv.c:527
+#: rpmqv.c:562
msgid "show the trigger scriptlets contained in the package"
msgstr ""
-#: rpmqv.c:553
+#: rpmqv.c:573
+msgid "do not execute scripts (if any)"
+msgstr ""
+
+#: rpmqv.c:588
msgid " --install <packagefile>"
msgstr ""
-#: rpmqv.c:554
+#: rpmqv.c:589
msgid " -i <packagefile> "
msgstr ""
-#: rpmqv.c:563
+#: rpmqv.c:598
msgid " --excludepath <path> "
msgstr ""
-#: rpmqv.c:584
+#: rpmqv.c:619
msgid "don't execute any installation scriptlets"
msgstr ""
-#: rpmqv.c:589
+#: rpmqv.c:621
+msgid "don't execute any scriptlets triggered by this package"
+msgstr ""
+
+#: rpmqv.c:624
msgid " --prefix <dir> "
msgstr ""
-#: rpmqv.c:591
+#: rpmqv.c:626
msgid " --relocate <oldpath>=<newpath>"
msgstr ""
-#: rpmqv.c:600
+#: rpmqv.c:635
msgid " --upgrade <packagefile>"
msgstr ""
-#: rpmqv.c:601
+#: rpmqv.c:636
msgid " -U <packagefile> "
msgstr ""
-#: rpmqv.c:606
+#: rpmqv.c:641
msgid " --erase <package>"
msgstr ""
-#: rpmqv.c:625
+#: rpmqv.c:660
msgid " --resign <pkg>+ "
msgstr ""
-#: rpmqv.c:627
+#: rpmqv.c:662
msgid " --addsign <pkg>+ "
msgstr ""
-#: rpmqv.c:630
+#: rpmqv.c:665
msgid " --checksig <pkg>+"
msgstr ""
-#: rpmqv.c:631
+#: rpmqv.c:666
msgid " -K <pkg>+ "
msgstr ""
-#: rpmqv.c:644
+#: rpmqv.c:679
msgid "initalize database (unnecessary, legacy use)"
msgstr ""
-#: rpmqv.c:646
+#: rpmqv.c:681
msgid "rebuild database indices from existing database headers"
msgstr ""
-#: rpmqv.c:928
+#: rpmqv.c:963
msgid "Use \"--macros <file:...>\" instead.\n"
msgstr ""
-#: rpmqv.c:1002
+#: rpmqv.c:1037
msgid "--dbpath given for operation that does not use a database"
msgstr ""
-#: rpmqv.c:1086
+#: rpmqv.c:1121
msgid ""
-"--notriggers may only be specified during package installation and erasure"
+"script disabling options may only be specified during package installation "
+"and erasure"
msgstr ""
-#: rpmqv.c:1240
+#: rpmqv.c:1280
msgid "no packages files given for rebuild"
msgstr ""
-#: rpmqv.c:1309
+#: rpmqv.c:1349
msgid "no spec files given for build"
msgstr ""
-#: rpmqv.c:1311
+#: rpmqv.c:1351
msgid "no tar files given for build"
msgstr ""
@@ -1808,7 +1853,7 @@ msgstr ""
msgid "Could not open %s: %s\n"
msgstr ""
-#: build/pack.c:484 lib/psm.c:1481
+#: build/pack.c:484 lib/psm.c:1487
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
@@ -1838,7 +1883,7 @@ msgstr ""
msgid "Unable to write payload to %s: %s\n"
msgstr ""
-#: build/pack.c:566 lib/psm.c:1677
+#: build/pack.c:566 lib/psm.c:1697
#, c-format
msgid "Wrote: %s\n"
msgstr ""
@@ -2931,16 +2976,16 @@ msgstr ""
msgid "%s: %s scriptlet failed (%d), skipping %s-%s-%s\n"
msgstr ""
-#: lib/psm.c:1530
+#: lib/psm.c:1536
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:1531
+#: lib/psm.c:1537
msgid " on file "
msgstr ""
-#: lib/psm.c:1764
+#: lib/psm.c:1788
#, c-format
msgid "%s: running %s script(s) (if any)\n"
msgstr ""
diff --git a/rpm.c b/rpm.c
index 235f8b0fb..0da24d9ec 100755
--- a/rpm.c
+++ b/rpm.c
@@ -50,6 +50,7 @@ enum modes {
/* the flags for the various options */
static int allFiles;
static int allMatches;
+static int applyOnly;
static int badReloc;
static int dirStash;
static int excldocs;
@@ -70,8 +71,19 @@ extern int noLibio;
static int noMd5;
static int noOrder;
static int noPgp;
+
static int noScripts;
+static int noPre;
+static int noPost;
+static int noPreun;
+static int noPostun;
+
static int noTriggers;
+static int noTPrein;
+static int noTIn;
+static int noTUn;
+static int noTPostun;
+
static int noUsageMsg;
static int oldPackage;
static char * pipeOutput;
@@ -111,6 +123,7 @@ static struct poptOption optionsTable[] = {
{ "addsign", '\0', 0, 0, GETOPT_ADDSIGN, NULL, NULL},
{ "allfiles", '\0', 0, &allFiles, 0, NULL, NULL},
{ "allmatches", '\0', 0, &allMatches, 0, NULL, NULL},
+ { "apply", '\0', 0, &applyOnly, 0, NULL, NULL},
{ "badreloc", '\0', 0, &badReloc, 0, NULL, NULL},
{ "checksig", 'K', 0, 0, 'K', NULL, NULL},
{ "define", '\0', POPT_ARG_STRING, 0, GETOPT_DEFINEMACRO,NULL, NULL},
@@ -145,8 +158,19 @@ static struct poptOption optionsTable[] = {
{ "nomd5", '\0', 0, &noMd5, 0, NULL, NULL},
{ "noorder", '\0', 0, &noOrder, 0, NULL, NULL},
{ "nopgp", '\0', 0, &noPgp, 0, NULL, NULL},
+
{ "noscripts", '\0', 0, &noScripts, 0, NULL, NULL},
+ { "nopre", '\0', 0, &noPre, 0, NULL, NULL},
+ { "nopost", '\0', 0, &noPost, 0, NULL, NULL},
+ { "nopreun", '\0', 0, &noPreun, 0, NULL, NULL},
+ { "nopostun", '\0', 0, &noPostun, 0, NULL, NULL},
+
{ "notriggers", '\0', 0, &noTriggers, 0, NULL, NULL},
+ { "notriggerprein", '\0', 0, &noTPrein, 0, NULL, NULL},
+ { "notriggerin", '\0', 0, &noTIn, 0, NULL, NULL},
+ { "notriggerun", '\0', 0, &noTUn, 0, NULL, NULL},
+ { "notriggerpostun", '\0', 0, &noTPostun, 0, NULL, NULL},
+
{ "oldpackage", '\0', 0, &oldPackage, 0, NULL, NULL},
{ "percent", '\0', 0, &showPercents, 0, NULL, NULL},
{ "pipe", '\0', POPT_ARG_STRING, &pipeOutput, 0, NULL, NULL},
@@ -585,6 +609,7 @@ int main(int argc, const char ** argv)
/* set the defaults for the various command line options */
allFiles = 0;
allMatches = 0;
+ applyOnly = 0;
badReloc = 0;
excldocs = 0;
force = 0;
@@ -607,8 +632,19 @@ int main(int argc, const char ** argv)
noMd5 = 0;
noOrder = 0;
noPgp = 0;
+
noScripts = 0;
+ noPre = 0;
+ noPost = 0;
+ noPreun = 0;
+ noPostun = 0;
+
noTriggers = 0;
+ noTPrein = 0;
+ noTIn = 0;
+ noTUn = 0;
+ noTPostun = 0;
+
noUsageMsg = 0;
oldPackage = 0;
showPercents = 0;
@@ -926,13 +962,20 @@ int main(int argc, const char ** argv)
"installation and erasure"));
if (bigMode != MODE_INSTALL && bigMode != MODE_UNINSTALL &&
- bigMode != MODE_VERIFY && noScripts)
- argerror(_("--noscripts may only be specified during package "
+ bigMode != MODE_VERIFY &&
+ (noScripts | noPre | noPost | noPreun | noPostun |
+ noTriggers | noTPrein | noTIn | noTUn | noTPostun))
+ argerror(_("script disabling options may only be specified during package "
"installation, erasure, and verification"));
- if (bigMode != MODE_INSTALL && bigMode != MODE_UNINSTALL && noTriggers)
- argerror(_("--notriggers may only be specified during package "
- "installation, erasure, and verification"));
+ if (bigMode != MODE_INSTALL && applyOnly)
+ argerror(_("--apply may only be specified during package "
+ "installation"));
+
+ if (bigMode != MODE_INSTALL && bigMode != MODE_UNINSTALL &&
+ (noTriggers | noTPrein | noTIn | noTUn | noTPostun))
+ argerror(_("trigger disabling options may only be specified during package "
+ "installation and erasure"));
if (noDeps & (bigMode & ~MODES_FOR_NODEPS))
argerror(_("--nodeps may only be specified during package "
@@ -1096,8 +1139,18 @@ int main(int argc, const char ** argv)
if (!poptPeekArg(optCon))
argerror(_("no packages given for uninstall"));
- if (noScripts) transFlags |= RPMTRANS_FLAG_NOSCRIPTS;
- if (noTriggers) transFlags |= RPMTRANS_FLAG_NOTRIGGERS;
+ if (noScripts) transFlags |= (_noTransScripts | _noTransTriggers);
+ if (noPre) transFlags |= RPMTRANS_FLAG_NOPRE;
+ if (noPost) transFlags |= RPMTRANS_FLAG_NOPOST;
+ if (noPreun) transFlags |= RPMTRANS_FLAG_NOPREUN;
+ if (noPostun) transFlags |= RPMTRANS_FLAG_NOPOSTUN;
+
+ if (noTriggers) transFlags |= _noTransTriggers;
+ if (noTPrein) transFlags |= RPMTRANS_FLAG_NOTRIGGERPREIN;
+ if (noTIn) transFlags |= RPMTRANS_FLAG_NOTRIGGERIN;
+ if (noTUn) transFlags |= RPMTRANS_FLAG_NOTRIGGERUN;
+ if (noTPostun) transFlags |= RPMTRANS_FLAG_NOTRIGGERPOSTUN;
+
if (test) transFlags |= RPMTRANS_FLAG_TEST;
if (justdb) transFlags |= RPMTRANS_FLAG_JUSTDB;
if (dirStash) transFlags |= RPMTRANS_FLAG_DIRSTASH;
@@ -1130,11 +1183,26 @@ int main(int argc, const char ** argv)
if (ignoreOs) probFilter |= RPMPROB_FILTER_IGNOREOS;
if (ignoreSize) probFilter |= RPMPROB_FILTER_DISKSPACE;
+ if (applyOnly)
+ transFlags = (_noTransScripts | _noTransTriggers |
+ RPMTRANS_FLAG_APPLYONLY | RPMTRANS_FLAG_PKGCOMMIT);
+
if (test) transFlags |= RPMTRANS_FLAG_TEST;
/* RPMTRANS_FLAG_BUILD_PROBS */
- if (noScripts) transFlags |= RPMTRANS_FLAG_NOSCRIPTS;
- if (justdb) transFlags |= RPMTRANS_FLAG_JUSTDB;
+
+ if (noScripts) transFlags |= (_noTransScripts | _noTransTriggers);
+ if (noPre) transFlags |= RPMTRANS_FLAG_NOPRE;
+ if (noPost) transFlags |= RPMTRANS_FLAG_NOPOST;
+ if (noPreun) transFlags |= RPMTRANS_FLAG_NOPREUN;
+ if (noPostun) transFlags |= RPMTRANS_FLAG_NOPOSTUN;
+
if (noTriggers) transFlags |= RPMTRANS_FLAG_NOTRIGGERS;
+ if (noTPrein) transFlags |= RPMTRANS_FLAG_NOTRIGGERPREIN;
+ if (noTIn) transFlags |= RPMTRANS_FLAG_NOTRIGGERIN;
+ if (noTUn) transFlags |= RPMTRANS_FLAG_NOTRIGGERUN;
+ if (noTPostun) transFlags |= RPMTRANS_FLAG_NOTRIGGERPOSTUN;
+
+ if (justdb) transFlags |= RPMTRANS_FLAG_JUSTDB;
if (!incldocs) {
if (excldocs)
transFlags |= RPMTRANS_FLAG_NODOCS;
diff --git a/rpmqv.c b/rpmqv.c
index 384e552d4..96c564437 100755
--- a/rpmqv.c
+++ b/rpmqv.c
@@ -226,6 +226,12 @@ static struct poptOption rpmInstallPoptTable[] = {
{ "allmatches", '\0', _POPT_SET_BIT, &eraseInterfaceFlags, UNINSTALL_ALLMATCHES,
N_("remove all packages which match <package> (normally an error is generated if <package> specified multiple packages)"),
NULL},
+
+ { "apply", '\0', _POPT_SET_BIT, &transFlags,
+ (_noTransScripts|_noTransTriggers|
+ RPMTRANS_FLAG_APPLYONLY|RPMTRANS_FLAG_PKGCOMMIT),
+ N_("do not execute package scriptlet(s)"), NULL },
+
{ "badreloc", '\0', _POPT_SET_BIT, &probFilter, RPMPROB_FILTER_FORCERELOCATE,
N_("relocate files in non-relocateable package"), NULL},
{ "dirstash", '\0', _POPT_SET_BIT, &transFlags, RPMTRANS_FLAG_DIRSTASH,
@@ -263,10 +269,39 @@ static struct poptOption rpmInstallPoptTable[] = {
{ "noorder", '\0', _POPT_SET_BIT, &installInterfaceFlags, INSTALL_NOORDER,
N_("do not reorder package installation to satisfy dependencies"),
NULL},
- { "noscripts", '\0', _POPT_SET_BIT, &transFlags, RPMTRANS_FLAG_NOSCRIPTS,
- N_("do not execute scripts (if any)"), NULL },
- { "notriggers", '\0', _POPT_SET_BIT, &transFlags, RPMTRANS_FLAG_NOTRIGGERS,
- N_("don't execute any scriptlets triggered by this package"), NULL},
+
+ { "noscripts", '\0', _POPT_SET_BIT, &transFlags,
+ (_noTransScripts|_noTransTriggers),
+ N_("do not execute package scriptlet(s)"), NULL },
+ { "nopre", '\0', _POPT_SET_BIT|POPT_ARGFLAG_DOC_HIDDEN, &transFlags,
+ RPMTRANS_FLAG_NOPRE,
+ N_("do not execute %%pre scriptlet (if any)"), NULL },
+ { "nopost", '\0', _POPT_SET_BIT|POPT_ARGFLAG_DOC_HIDDEN, &transFlags,
+ RPMTRANS_FLAG_NOPOST,
+ N_("do not execute %%post scriptlet (if any)"), NULL },
+ { "nopreun", '\0', _POPT_SET_BIT|POPT_ARGFLAG_DOC_HIDDEN, &transFlags,
+ RPMTRANS_FLAG_NOPREUN,
+ N_("do not execute %%preun scriptlet (if any)"), NULL },
+ { "nopostun", '\0', _POPT_SET_BIT|POPT_ARGFLAG_DOC_HIDDEN, &transFlags,
+ RPMTRANS_FLAG_NOPOSTUN,
+ N_("do not execute %%postun scriptlet (if any)"), NULL },
+
+ { "notriggers", '\0', _POPT_SET_BIT, &transFlags,
+ _noTransTriggers,
+ N_("do not execute any scriptlet(s) triggered by this package"), NULL},
+ { "notriggerprein", '\0', _POPT_SET_BIT|POPT_ARGFLAG_DOC_HIDDEN, &transFlags,
+ RPMTRANS_FLAG_NOTRIGGERPREIN,
+ N_("do not execute any %%triggerprein scriptlet(s)"), NULL},
+ { "notriggerin", '\0', _POPT_SET_BIT|POPT_ARGFLAG_DOC_HIDDEN, &transFlags,
+ RPMTRANS_FLAG_NOTRIGGERIN,
+ N_("do not execute any %%triggerin scriptlet(s)"), NULL},
+ { "notriggerun", '\0', _POPT_SET_BIT|POPT_ARGFLAG_DOC_HIDDEN, &transFlags,
+ RPMTRANS_FLAG_NOTRIGGERUN,
+ N_("do not execute any %%triggerun scriptlet(s)"), NULL},
+ { "notriggerpostun", '\0', _POPT_SET_BIT|POPT_ARGFLAG_DOC_HIDDEN, &transFlags,
+ RPMTRANS_FLAG_NOTRIGGERPOSTUN,
+ N_("do not execute any %%triggerpostun scriptlet(s)"), NULL},
+
{ "oldpackage", '\0', _POPT_SET_BIT, &probFilter, RPMPROB_FILTER_OLDPACKAGE,
N_("upgrade to an old version of the package (--force on upgrades does this automatically)"),
NULL},
@@ -1082,9 +1117,14 @@ int main(int argc, const char ** argv)
#if defined(IAM_RPMEIU)
if (bigMode != MODE_INSTALL && bigMode != MODE_UNINSTALL &&
- (transFlags & RPMTRANS_FLAG_NOTRIGGERS))
- argerror(_("--notriggers may only be specified during package "
- "installation and erasure"));
+ (transFlags & (RPMTRANS_FLAG_NOSCRIPTS | _noTransScripts | _noTransTriggers)))
+ argerror(_("script disabling options may only be specified during "
+ "package installation and erasure"));
+
+ if (bigMode != MODE_INSTALL && bigMode != MODE_UNINSTALL &&
+ (transFlags & (RPMTRANS_FLAG_NOTRIGGERS | _noTransTriggers)))
+ argerror(_("trigger disabling options may only be specified during "
+ "package installation and erasure"));
if (noDeps & (bigMode & ~MODES_FOR_NODEPS))
argerror(_("--nodeps may only be specified during package "