You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.7 KiB
86 lines
2.7 KiB
Move RPMCALLBACK_ELEM_PROGRESS to rpmteProcess to have header available |
|
|
|
The header of the rpmte is only available after rpmteOpen(). |
|
Added num param to rpmteProcess to be able to signal the progress to the |
|
callback. |
|
|
|
(cherry picked from commit 124ed29259b05fdf574d5e3e145bc1201b24ae4d) |
|
--- |
|
diff -uNr rpm-4.11.3.orig/lib/rpmte.c rpm-4.11.3/lib/rpmte.c |
|
--- rpm-4.11.3.orig/lib/rpmte.c 2017-08-23 15:39:18.195927789 +0200 |
|
+++ rpm-4.11.3/lib/rpmte.c 2017-08-23 15:40:12.857349575 +0200 |
|
@@ -939,7 +939,7 @@ |
|
return rc; |
|
} |
|
|
|
-int rpmteProcess(rpmte te, pkgGoal goal) |
|
+int rpmteProcess(rpmte te, pkgGoal goal, int num) |
|
{ |
|
/* Only install/erase resets pkg file info */ |
|
int scriptstage = (goal != PKG_INSTALL && goal != PKG_ERASE); |
|
@@ -959,6 +959,11 @@ |
|
} |
|
|
|
if (rpmteOpen(te, reset_fi)) { |
|
+ if (!scriptstage) { |
|
+ rpmtsNotify(te->ts, te, RPMCALLBACK_ELEM_PROGRESS, num, |
|
+ rpmtsMembers(te->ts)->orderCount); |
|
+ } |
|
+ |
|
failed = rpmpsmRun(te->ts, te, goal); |
|
rpmteClose(te, reset_fi); |
|
} |
|
diff -uNr rpm-4.11.3.orig/lib/rpmte_internal.h rpm-4.11.3/lib/rpmte_internal.h |
|
--- rpm-4.11.3.orig/lib/rpmte_internal.h 2013-11-22 11:31:31.000000000 +0100 |
|
+++ rpm-4.11.3/lib/rpmte_internal.h 2017-08-23 15:40:24.654440605 +0200 |
|
@@ -56,7 +56,7 @@ |
|
FD_t rpmtePayload(rpmte te); |
|
|
|
RPM_GNUC_INTERNAL |
|
-int rpmteProcess(rpmte te, pkgGoal goal); |
|
+int rpmteProcess(rpmte te, pkgGoal goal, int num); |
|
|
|
RPM_GNUC_INTERNAL |
|
void rpmteAddProblem(rpmte te, rpmProblemType type, |
|
diff -uNr rpm-4.11.3.orig/lib/transaction.c rpm-4.11.3/lib/transaction.c |
|
--- rpm-4.11.3.orig/lib/transaction.c 2017-08-23 15:39:18.257928268 +0200 |
|
+++ rpm-4.11.3/lib/transaction.c 2017-08-23 15:42:24.986369126 +0200 |
|
@@ -1170,10 +1170,11 @@ |
|
static int runTransScripts(rpmts ts, pkgGoal goal) |
|
{ |
|
int rc = 0; |
|
+ int i = 0; |
|
rpmte p; |
|
rpmtsi pi = rpmtsiInit(ts); |
|
while ((p = rpmtsiNext(pi, TR_ADDED)) != NULL) { |
|
- rc += rpmteProcess(p, goal); |
|
+ rc += rpmteProcess(p, goal, i++); |
|
} |
|
rpmtsiFree(pi); |
|
return rc; |
|
@@ -1415,7 +1416,6 @@ |
|
static int rpmtsProcess(rpmts ts) |
|
{ |
|
rpmtsi pi; rpmte p; |
|
- tsMembers tsmem = rpmtsMembers(ts); |
|
int rc = 0; |
|
int i = 0; |
|
|
|
@@ -1423,8 +1423,6 @@ |
|
while ((p = rpmtsiNext(pi, 0)) != NULL) { |
|
int failed; |
|
|
|
- rpmtsNotify(ts, NULL, RPMCALLBACK_ELEM_PROGRESS, i++, |
|
- tsmem->orderCount); |
|
rpmlog(RPMLOG_DEBUG, "========== +++ %s %s-%s 0x%x\n", |
|
rpmteNEVR(p), rpmteA(p), rpmteO(p), rpmteColor(p)); |
|
|
|
@@ -1432,7 +1430,7 @@ |
|
rpmtsSELabelInit(ts, 0); |
|
} |
|
|
|
- failed = rpmteProcess(p, rpmteType(p)); |
|
+ failed = rpmteProcess(p, rpmteType(p), i++); |
|
if (failed) { |
|
rpmlog(RPMLOG_ERR, "%s: %s %s\n", rpmteNEVRA(p), |
|
rpmteTypeString(p), failed > 1 ? _("skipped") : _("failed"));
|
|
|