[Rpm-maint] PATCH:re-factoring rpmInstall & rpmErase - merging Install & Erase CLI flags
Rakesh Pandit
rakesh.pandit at gmail.com
Tue Dec 2 19:17:44 UTC 2008
Hello list,
Attached patch:
First one:
- Merge rpmInstallInterfaceFlags_e and rpmEraseInterfaceFlags_e to
rpmCliInterfaceFlags_e.
- Renamed (UN)?INSTALL_* to RPMCLI_* and all corresponding changes in
different interface related files.
My aim is refactoring of rpmInstall & rpmErase and removing any
symmetric algorithm code between them. The basic aim being to
implement last in ideas page[1] i.e "conflicting updates".
Snippet:
+ rpmCliInterfaceFlags installInterfaceFlags;
+ rpmCliInterfaceFlags eraseInterfaceFlags;
Will merge them into one in coming separate part.
Just finished couple of coherent patches. First one below (link [2]):
[1] http://rpm.org/wiki/Problems/Upgrade
[2] http://rakesh.fedorapeople.org/misc/first.patch
Review ?
--
Regards,
rakesh
commit 31819876ac11f88e71cd777cf039611e096aa4d4
Author: =Rakesh Pandit <rakesh at fedoraproject.org>
Date: Tue Dec 2 11:16:48 2008 +0530
- Merge rpmInstallInterfaceFlags_e and rpmEraseInterfaceFlags_e to
rpmCliInterfaceFlags_e.
- Renamed (UN)?INSTALL_* to RPMCLI_* and all corresponding changes
in different interface related files.
diff --git a/lib/poptI.c b/lib/poptI.c
index 9aff685..6d9cdb4 100644
--- a/lib/poptI.c
+++ b/lib/poptI.c
@@ -46,7 +46,7 @@ static void installArgCallback( poptContext con,
switch (opt->val) {
case 'i':
- ia->installInterfaceFlags |= INSTALL_INSTALL;
+ ia->installInterfaceFlags |= RPMCLI_INSTALL;
break;
case POPT_EXCLUDEPATH:
@@ -131,7 +131,7 @@ struct poptOption rpmInstallPoptTable[] = {
N_("install all files, even configurations which might otherwise be
skipped"),
NULL},
{ "allmatches", '\0', POPT_BIT_SET,
- &rpmIArgs.eraseInterfaceFlags, UNINSTALL_ALLMATCHES,
+ &rpmIArgs.eraseInterfaceFlags, RPMCLI_ALLMATCHES,
N_("remove all packages which match <package> (normally an error is
generated if <package> specified multiple packages)"),
NULL},
@@ -149,7 +149,7 @@ struct poptOption rpmInstallPoptTable[] = {
N_("print dependency loops as warning"), NULL},
{ "erase", 'e', POPT_BIT_SET,
- &rpmIArgs.installInterfaceFlags, INSTALL_ERASE,
+ &rpmIArgs.installInterfaceFlags, RPMCLI_ERASE,
N_("erase (uninstall) package"), N_("<package>+") },
{ "excludeconfigs", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN,
&rpmIArgs.transFlags, RPMTRANS_FLAG_NOCONFIGS,
@@ -168,10 +168,10 @@ struct poptOption rpmInstallPoptTable[] = {
N_("short hand for --replacepkgs --replacefiles"), NULL},
{ "freshen", 'F', POPT_BIT_SET, &rpmIArgs.installInterfaceFlags,
- (INSTALL_UPGRADE|INSTALL_FRESHEN|INSTALL_INSTALL),
+ (RPMCLI_UPGRADE|RPMCLI_FRESHEN|RPMCLI_INSTALL),
N_("upgrade package(s) if already installed"),
N_("<packagefile>+") },
- { "hash", 'h', POPT_BIT_SET, &rpmIArgs.installInterfaceFlags, INSTALL_HASH,
+ { "hash", 'h', POPT_BIT_SET, &rpmIArgs.installInterfaceFlags, RPMCLI_HASH,
N_("print hash marks as package installs (good with -v)"), NULL},
{ "ignorearch", '\0', POPT_BIT_SET,
&rpmIArgs.probFilter, RPMPROB_FILTER_IGNOREARCH,
@@ -206,7 +206,7 @@ struct poptOption rpmInstallPoptTable[] = {
N_("don't install file security contexts"), NULL},
{ "noorder", '\0', POPT_BIT_SET,
- &rpmIArgs.installInterfaceFlags, INSTALL_NOORDER,
+ &rpmIArgs.installInterfaceFlags, RPMCLI_NOORDER,
N_("do not reorder package installation to satisfy dependencies"),
NULL},
@@ -257,7 +257,7 @@ struct poptOption rpmInstallPoptTable[] = {
N_("upgrade to an old version of the package (--force on upgrades
does this automatically)"),
NULL},
{ "percent", '\0', POPT_BIT_SET,
- &rpmIArgs.installInterfaceFlags, INSTALL_PERCENT,
+ &rpmIArgs.installInterfaceFlags, RPMCLI_PERCENT,
N_("print percentages as package installs"), NULL},
{ "prefix", '\0', POPT_ARG_STRING, &rpmIArgs.prefix, 0,
N_("relocate the package to <dir>, if relocatable"),
@@ -274,7 +274,7 @@ struct poptOption rpmInstallPoptTable[] = {
{ "test", '\0', POPT_BIT_SET, &rpmIArgs.transFlags, RPMTRANS_FLAG_TEST,
N_("don't install, but tell if it would work or not"), NULL},
{ "upgrade", 'U', POPT_BIT_SET,
- &rpmIArgs.installInterfaceFlags, (INSTALL_UPGRADE|INSTALL_INSTALL),
+ &rpmIArgs.installInterfaceFlags, (RPMCLI_UPGRADE|RPMCLI_INSTALL),
N_("upgrade package(s)"),
N_("<packagefile>+") },
diff --git a/lib/rpmcli.h b/lib/rpmcli.h
index 0754629..1dab3f7 100644
--- a/lib/rpmcli.h
+++ b/lib/rpmcli.h
@@ -345,29 +345,21 @@ extern struct poptOption rpmBuildPoptTable[];
/* --- install/upgrade/erase modes */
/** \ingroup rpmcli
- * Bit(s) to control rpmInstall() operation.
- */
-typedef enum rpmInstallInterfaceFlags_e {
- INSTALL_NONE = 0,
- INSTALL_PERCENT = (1 << 0), /*!< from --percent */
- INSTALL_HASH = (1 << 1), /*!< from --hash */
- INSTALL_NODEPS = (1 << 2), /*!< from --nodeps */
- INSTALL_NOORDER = (1 << 3), /*!< from --noorder */
- INSTALL_LABEL = (1 << 4), /*!< from --verbose (notify) */
- INSTALL_UPGRADE = (1 << 5), /*!< from --upgrade */
- INSTALL_FRESHEN = (1 << 6), /*!< from --freshen */
- INSTALL_INSTALL = (1 << 7), /*!< from --install */
- INSTALL_ERASE = (1 << 8) /*!< from --erase */
-} rpmInstallInterfaceFlags;
-
-/** \ingroup rpmcli
- * Bit(s) to control rpmErase() operation.
- */
-typedef enum rpmEraseInterfaceFlags_e {
- UNINSTALL_NONE = 0,
- UNINSTALL_NODEPS = (1 << 0), /*!< from --nodeps */
- UNINSTALL_ALLMATCHES= (1 << 1) /*!< from --allmatches */
-} rpmEraseInterfaceFlags;
+ * Bit(s) to control rpmInstall() and rpmErase() operation.
+ */
+typedef enum rpmCliInterfaceFlags_e {
+ RPMCLI_NONE = 0,
+ RPMCLI_PERCENT = (1 << 0), /*!< from --percent */
+ RPMCLI_HASH = (1 << 1), /*!< from --hash */
+ RPMCLI_NODEPS = (1 << 2), /*!< from --nodeps */
+ RPMCLI_NOORDER = (1 << 3), /*!< from --noorder */
+ RPMCLI_LABEL = (1 << 4), /*!< from --verbose (notify) */
+ RPMCLI_UPGRADE = (1 << 5), /*!< from --upgrade */
+ RPMCLI_FRESHEN = (1 << 6), /*!< from --freshen */
+ RPMCLI_INSTALL = (1 << 7), /*!< from --install */
+ RPMCLI_ERASE = (1 << 8), /*!< from --erase */
+ RPMCLI_ALLMATCHES = (1 << 9) /*!< from --allmatches */
+} rpmCliInterfaceFlags;
extern int rpmcliPackagesTotal;
extern int rpmcliHashesCurrent;
@@ -415,8 +407,8 @@ int rpmInstallSource(rpmts ts, const char * arg,
struct rpmInstallArguments_s {
rpmtransFlags transFlags;
rpmprobFilterFlags probFilter;
- rpmInstallInterfaceFlags installInterfaceFlags;
- rpmEraseInterfaceFlags eraseInterfaceFlags;
+ rpmCliInterfaceFlags installInterfaceFlags;
+ rpmCliInterfaceFlags eraseInterfaceFlags;
rpmQueryFlags qva_flags; /*!< from --nodigest/--nosignature */
int numRelocations;
int noDeps;
diff --git a/lib/rpminstall.c b/lib/rpminstall.c
index 2fa23db..3d65593 100644
--- a/lib/rpminstall.c
+++ b/lib/rpminstall.c
@@ -115,10 +115,10 @@ void * rpmShowProgress(const void * arg,
case RPMCALLBACK_INST_START:
rpmcliHashesCurrent = 0;
- if (h == NULL || !(flags & INSTALL_LABEL))
+ if (h == NULL || !(flags & RPMCLI_LABEL))
break;
/* @todo Remove headerFormat() on a progress callback. */
- if (flags & INSTALL_HASH) {
+ if (flags & RPMCLI_HASH) {
s = headerFormat(h, "%{NAME}", NULL);
if (isatty (STDOUT_FILENO))
fprintf(stdout, "%4d:%-23.23s", rpmcliProgressCurrent + 1, s);
@@ -136,11 +136,11 @@ void * rpmShowProgress(const void * arg,
case RPMCALLBACK_TRANS_PROGRESS:
case RPMCALLBACK_INST_PROGRESS:
- if (flags & INSTALL_PERCENT)
+ if (flags & RPMCLI_PERCENT)
fprintf(stdout, "%%%% %f\n", (double) (total
? ((((float) amount) / total) * 100)
: 100.0));
- else if (flags & INSTALL_HASH)
+ else if (flags & RPMCLI_HASH)
printHash(amount, total);
(void) fflush(stdout);
break;
@@ -149,9 +149,9 @@ void * rpmShowProgress(const void * arg,
rpmcliHashesCurrent = 0;
rpmcliProgressTotal = 1;
rpmcliProgressCurrent = 0;
- if (!(flags & INSTALL_LABEL))
+ if (!(flags & RPMCLI_LABEL))
break;
- if (flags & INSTALL_HASH)
+ if (flags & RPMCLI_HASH)
fprintf(stdout, "%-28s", _("Preparing..."));
else
fprintf(stdout, "%s\n", _("Preparing packages for installation..."));
@@ -159,7 +159,7 @@ void * rpmShowProgress(const void * arg,
break;
case RPMCALLBACK_TRANS_STOP:
- if (flags & INSTALL_HASH)
+ if (flags & RPMCLI_HASH)
printHash(1, 1); /* Fixes "preparing..." progress bar */
rpmcliProgressTotal = rpmcliPackagesTotal;
rpmcliProgressCurrent = 0;
@@ -228,7 +228,7 @@ int rpmInstall(rpmts ts, struct
rpmInstallArguments_s * ia, ARGV_t fileArgv)
probFilter = ia->probFilter;
relocations = ia->relocations;
- if (ia->installInterfaceFlags & INSTALL_UPGRADE)
+ if (ia->installInterfaceFlags & RPMCLI_UPGRADE)
vsflags = rpmExpandNumeric("%{?_vsflags_erase}");
else
vsflags = rpmExpandNumeric("%{?_vsflags_install}");
@@ -241,7 +241,7 @@ int rpmInstall(rpmts ts, struct
rpmInstallArguments_s * ia, ARGV_t fileArgv)
ovsflags = rpmtsSetVSFlags(ts, (vsflags | RPMVSF_NEEDPAYLOAD));
{ int notifyFlags;
- notifyFlags = ia->installInterfaceFlags | (rpmIsVerbose() ?
INSTALL_LABEL : 0 );
+ notifyFlags = ia->installInterfaceFlags | (rpmIsVerbose() ?
RPMCLI_LABEL : 0 );
xx = rpmtsSetNotifyCallback(ts,
rpmShowProgress, (void *) ((long)notifyFlags));
}
@@ -415,7 +415,7 @@ restart:
}
/* On --freshen, verify package is installed and newer */
- if (ia->installInterfaceFlags & INSTALL_FRESHEN) {
+ if (ia->installInterfaceFlags & RPMCLI_FRESHEN) {
rpmdbMatchIterator mi;
const char * name;
Header oldH;
@@ -440,7 +440,7 @@ restart:
}
rc = rpmtsAddInstallElement(ts, eiu->h, (fnpyKey)fileName,
- (ia->installInterfaceFlags & INSTALL_UPGRADE) != 0,
+ (ia->installInterfaceFlags & RPMCLI_UPGRADE) != 0,
relocations);
/* XXX reference held by transaction set */
@@ -513,7 +513,7 @@ maybe_manifest:
if (eiu->numFailed) goto exit;
- if (eiu->numRPMS && !(ia->installInterfaceFlags & INSTALL_NODEPS)) {
+ if (eiu->numRPMS && !(ia->installInterfaceFlags & RPMCLI_NODEPS)) {
if (rpmtsCheck(ts)) {
eiu->numFailed = eiu->numPkgs;
@@ -530,7 +530,7 @@ maybe_manifest:
ps = rpmpsFree(ps);
}
- if (eiu->numRPMS && !(ia->installInterfaceFlags & INSTALL_NOORDER)) {
+ if (eiu->numRPMS && !(ia->installInterfaceFlags & RPMCLI_NOORDER)) {
if (rpmtsOrder(ts)) {
eiu->numFailed = eiu->numPkgs;
stopInstall = 1;
@@ -632,7 +632,7 @@ int rpmErase(rpmts ts, struct
rpmInstallArguments_s * ia, ARGV_const_t argv)
#ifdef NOTYET /* XXX no callbacks on erase yet */
{ int notifyFlags, xx;
- notifyFlags = ia->eraseInterfaceFlags | (rpmIsVerbose() ? INSTALL_LABEL : 0 );
+ notifyFlags = ia->eraseInterfaceFlags | (rpmIsVerbose() ? RPMCLI_LABEL : 0 );
xx = rpmtsSetNotifyCallback(ts,
rpmShowProgress, (void *) ((long)notifyFlags));
}
@@ -658,7 +658,7 @@ int rpmErase(rpmts ts, struct
rpmInstallArguments_s * ia, ARGV_const_t argv)
Header h; /* XXX iterator owns the reference */
if (matches > 1 &&
- !(ia->eraseInterfaceFlags & UNINSTALL_ALLMATCHES)) {
+ !(ia->eraseInterfaceFlags & RPMCLI_ALLMATCHES)) {
rpmlog(RPMLOG_ERR, _("\"%s\" specifies multiple packages:\n"),
*arg);
numFailed++;
@@ -683,7 +683,7 @@ int rpmErase(rpmts ts, struct
rpmInstallArguments_s * ia, ARGV_const_t argv)
if (numFailed) goto exit;
- if (!(ia->eraseInterfaceFlags & UNINSTALL_NODEPS)) {
+ if (!(ia->eraseInterfaceFlags & RPMCLI_NODEPS)) {
if (rpmtsCheck(ts)) {
numFailed = numPackages;
@@ -700,7 +700,7 @@ int rpmErase(rpmts ts, struct
rpmInstallArguments_s * ia, ARGV_const_t argv)
ps = rpmpsFree(ps);
}
- if (!stopUninstall && !(ia->installInterfaceFlags & INSTALL_NOORDER)) {
+ if (!stopUninstall && !(ia->installInterfaceFlags & RPMCLI_NOORDER)) {
if (rpmtsOrder(ts)) {
numFailed += numPackages;
stopUninstall = 1;
diff --git a/rpmqv.c b/rpmqv.c
index 895d88c..867e23d 100644
--- a/rpmqv.c
+++ b/rpmqv.c
@@ -358,8 +358,8 @@ int main(int argc, char *argv[])
#ifdef IAM_RPMEIU
if (bigMode == MODE_UNKNOWN || (bigMode & MODES_IE))
{ int iflags = (ia->installInterfaceFlags &
- (INSTALL_UPGRADE|INSTALL_FRESHEN|INSTALL_INSTALL));
- int eflags = (ia->installInterfaceFlags & INSTALL_ERASE);
+ (RPMCLI_UPGRADE|RPMCLI_FRESHEN|RPMCLI_INSTALL));
+ int eflags = (ia->installInterfaceFlags & RPMCLI_ERASE);
if (iflags & eflags)
argerror(_("only one major mode may be specified"));
@@ -410,11 +410,11 @@ int main(int argc, char *argv[])
if (ia->prefix && ia->prefix[0] != '/')
argerror(_("arguments to --prefix must begin with a /"));
- if (bigMode != MODE_INSTALL && (ia->installInterfaceFlags & INSTALL_HASH))
+ if (bigMode != MODE_INSTALL && (ia->installInterfaceFlags & RPMCLI_HASH))
argerror(_("--hash (-h) may only be specified during package "
"installation"));
- if (bigMode != MODE_INSTALL && (ia->installInterfaceFlags &
INSTALL_PERCENT))
+ if (bigMode != MODE_INSTALL && (ia->installInterfaceFlags &
RPMCLI_PERCENT))
argerror(_("--percent may only be specified during package "
"installation"));
@@ -447,7 +447,7 @@ int main(int argc, char *argv[])
argerror(_("--ignoresize may only be specified during package "
"installation"));
- if ((ia->eraseInterfaceFlags & UNINSTALL_ALLMATCHES) && bigMode
!= MODE_ERASE)
+ if ((ia->eraseInterfaceFlags & RPMCLI_ALLMATCHES) && bigMode != MODE_ERASE)
argerror(_("--allmatches may only be specified during package "
"erasure"));
@@ -711,7 +711,7 @@ int main(int argc, char *argv[])
#ifdef IAM_RPMEIU
case MODE_ERASE:
- if (ia->noDeps) ia->eraseInterfaceFlags |= UNINSTALL_NODEPS;
+ if (ia->noDeps) ia->eraseInterfaceFlags |= RPMCLI_NODEPS;
if (!poptPeekArg(optCon)) {
argerror(_("no packages given for erase"));
@@ -731,7 +731,7 @@ int main(int argc, char *argv[])
ia->transFlags |= RPMTRANS_FLAG_NODOCS;
}
- if (ia->noDeps) ia->installInterfaceFlags |= INSTALL_NODEPS;
+ if (ia->noDeps) ia->installInterfaceFlags |= RPMCLI_NODEPS;
/* we've already ensured !(!ia->prefix && !ia->relocations) */
if (ia->prefix) {
More information about the Rpm-maint
mailing list