Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.1:Update
rpm
noposttrans.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File noposttrans.diff of Package rpm
Author: Panu Matilainen <pmatilai@redhat.com> Date: Wed Apr 10 11:31:41 2013 +0300 Add scriptlet-specific disablers for %pretrans and %posttrans - Previously %pretrans and %posttrans were tied to --nopre and --nopost disablers (since commit 0b2d7775c5e828652e45829f551352b93890bbc8) because back then, there was no room new disablers in rpmtransFlags bitfield. This is no longer the case as of rpm >= 4.9.x where a bunch of obsolete flags were axed, so we can now add specific --nopretrans and --noposttrans switches + corresponding flags. - This is obviously a behavior change as --nopre and --nopost no longer affect %pretrans and %posttrans, but --noscripts behavior remains the same. --- doc/rpm.8 +++ doc/rpm.8 @@ -278,6 +278,10 @@ packages would normally be reordered to satisfy dependencies. \fB--nopreun\fR .TP \fB--nopostun\fR +.TP +\fB--nopretrans\fR +.TP +\fB--noposttrans\fR Don't execute the scriptlet of the same name. The \fB--noscripts\fR option is equivalent to @@ -285,12 +289,16 @@ The \fB--noscripts\fR option is equivalent to \fB--nopost\fR \fB--nopreun\fR \fB--nopostun\fR +\fB--nopretrans\fR +\fB--noposttrans\fR and turns off the execution of the corresponding \fB%pre\fR, \fB%post\fR, -\fB%preun\fR, and +\fB%preun\fR, \fB%postun\fR +\fB%pretrans\fR, and +\fB%posttrans\fR scriptlet(s). .TP \fB--notriggers\fR --- lib/poptI.c +++ lib/poptI.c @@ -202,6 +202,12 @@ struct poptOption rpmInstallPoptTable[] = { { "nopostun", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags, RPMTRANS_FLAG_NOPOSTUN, N_("do not execute %%postun scriptlet (if any)"), NULL }, + { "nopretrans", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags, + RPMTRANS_FLAG_NOPRETRANS, + N_("do not execute %%pretrans scriptlet (if any)"), NULL }, + { "noposttrans", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags, + RPMTRANS_FLAG_NOPOSTTRANS, + N_("do not execute %%posttrans scriptlet (if any)"), NULL }, { "notriggers", '\0', POPT_BIT_SET, &rpmIArgs.transFlags, _noTransTriggers, N_("do not execute any scriptlet(s) triggered by this package"), NULL}, --- lib/rpmts.h +++ lib/rpmts.h @@ -45,7 +45,8 @@ enum rpmtransFlags_e { RPMTRANS_FLAG_NOPREUN = (1 << 21), /*!< from --nopreun */ RPMTRANS_FLAG_NOPOSTUN = (1 << 22), /*!< from --nopostun */ RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), /*!< from --notriggerpostun */ - /* bits 24-25 unused */ + RPMTRANS_FLAG_NOPRETRANS = (1 << 24), /*!< from --nopretrans */ + RPMTRANS_FLAG_NOPOSTTRANS = (1 << 25), /*!< from --noposttrans */ RPMTRANS_FLAG_NOCOLLECTIONS = (1 << 26), /*!< from --nocollections */ RPMTRANS_FLAG_NOMD5 = (1 << 27), /*!< from --nomd5 */ RPMTRANS_FLAG_NOFILEDIGEST = (1 << 27), /*!< from --nofiledigest (alias to --nomd5) */ @@ -60,7 +61,9 @@ typedef rpmFlags rpmtransFlags; ( RPMTRANS_FLAG_NOPRE | \ RPMTRANS_FLAG_NOPOST | \ RPMTRANS_FLAG_NOPREUN | \ - RPMTRANS_FLAG_NOPOSTUN \ + RPMTRANS_FLAG_NOPOSTUN | \ + RPMTRANS_FLAG_NOPRETRANS | \ + RPMTRANS_FLAG_NOPOSTTRANS \ ) #define _noTransTriggers \ --- lib/transaction.c +++ lib/transaction.c @@ -1496,7 +1496,7 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet) /* Run pre-transaction scripts, but only if there are no known * problems up to this point and not disabled otherwise. */ - if (!((rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_NOPRE)) + if (!((rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_NOPRETRANS)) || (rpmpsNumProblems(tsprobs)))) { rpmlog(RPMLOG_DEBUG, "running pre-transaction scripts\n"); runTransScripts(ts, PKG_PRETRANS); @@ -1532,7 +1532,7 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet) rc = rpmtsProcess(ts) ? -1 : 0; /* Run post-transaction scripts unless disabled */ - if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOST))) { + if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS))) { rpmlog(RPMLOG_DEBUG, "running post-transaction scripts\n"); runTransScripts(ts, PKG_POSTTRANS); } --- python/rpmmodule.c +++ python/rpmmodule.c @@ -414,6 +414,8 @@ static int initModule(PyObject *m) REGISTER_ENUM(RPMTRANS_FLAG_NOPREUN); REGISTER_ENUM(RPMTRANS_FLAG_NOPOSTUN); REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERPOSTUN); + REGISTER_ENUM(RPMTRANS_FLAG_NOPRETRANS); + REGISTER_ENUM(RPMTRANS_FLAG_NOPOSTTRANS); REGISTER_ENUM(RPMTRANS_FLAG_NOMD5); REGISTER_ENUM(RPMTRANS_FLAG_NOFILEDIGEST); REGISTER_ENUM(RPMTRANS_FLAG_NOSUGGEST);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor