diff options
-rw-r--r-- | lib/psm.c | 104 | ||||
-rw-r--r-- | lib/rpmdb.c | 2 | ||||
-rw-r--r-- | lib/rpmlib.h | 26 | ||||
-rw-r--r-- | lib/transaction.c | 6 | ||||
-rw-r--r-- | macros.in | 10 | ||||
-rw-r--r-- | po/rpm.pot | 711 | ||||
-rwxr-xr-x | rpm.c | 86 | ||||
-rwxr-xr-x | rpmqv.c | 54 |
8 files changed, 604 insertions, 395 deletions
@@ -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; @@ -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 "" @@ -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; @@ -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 " |