- Add RPMCALLBACK_ELEM_PROGRESS callback type (needed by dnf)
This commit is contained in:
parent
5d2cf89172
commit
761a0d9ec7
75
rpm-4.13.0-elem-progress-callback.patch
Normal file
75
rpm-4.13.0-elem-progress-callback.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
From 448db68ceb5be3c7171b7ec0ea908d905792dc2f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Domonkos <mdomonko@redhat.com>
|
||||||
|
Date: Mon, 7 Dec 2015 17:13:26 +0100
|
||||||
|
Subject: [PATCH] Add RPMCALLBACK_ELEM_PROGRESS callback type
|
||||||
|
|
||||||
|
Currently, there's no callback type that would be issued per each
|
||||||
|
transaction element. RPMCALLBACK_TRANS_PROGRESS is only issued during
|
||||||
|
the prepare phase but not when packages are actually installed or
|
||||||
|
erased. Likewise, RPMCALLBACK_INST_ST* and RPMCALLBACK_UNINST_ST* won't
|
||||||
|
be issued if an install or erase operation is skipped for some reason (a
|
||||||
|
script or package upgrade failure).
|
||||||
|
|
||||||
|
Having such a callback would allow the Python API consumers to always
|
||||||
|
know upfront which element is about to be processed, before any other
|
||||||
|
callbacks are issued. This is important since not every callback type
|
||||||
|
carries enough data about the subject package; while the INST types
|
||||||
|
provide the user object passed to a former addInstall call, the UNINST
|
||||||
|
types only provide the package name (which may not be unique within the
|
||||||
|
transaction set).
|
||||||
|
|
||||||
|
This commit adds such a callback.
|
||||||
|
---
|
||||||
|
lib/rpmcallback.h | 1 +
|
||||||
|
lib/transaction.c | 4 ++++
|
||||||
|
python/rpmmodule.c | 1 +
|
||||||
|
3 files changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/rpmcallback.h b/lib/rpmcallback.h
|
||||||
|
index dfc22ab..f07892d 100644
|
||||||
|
--- a/lib/rpmcallback.h
|
||||||
|
+++ b/lib/rpmcallback.h
|
||||||
|
@@ -37,6 +37,7 @@ typedef enum rpmCallbackType_e {
|
||||||
|
RPMCALLBACK_SCRIPT_START = (1 << 16),
|
||||||
|
RPMCALLBACK_SCRIPT_STOP = (1 << 17),
|
||||||
|
RPMCALLBACK_INST_STOP = (1 << 18),
|
||||||
|
+ RPMCALLBACK_ELEM_PROGRESS = (1 << 19),
|
||||||
|
} rpmCallbackType;
|
||||||
|
|
||||||
|
/** \ingroup rpmts
|
||||||
|
diff --git a/lib/transaction.c b/lib/transaction.c
|
||||||
|
index 66888af..4f90782 100644
|
||||||
|
--- a/lib/transaction.c
|
||||||
|
+++ b/lib/transaction.c
|
||||||
|
@@ -1345,12 +1345,16 @@ exit:
|
||||||
|
static int rpmtsProcess(rpmts ts)
|
||||||
|
{
|
||||||
|
rpmtsi pi; rpmte p;
|
||||||
|
+ tsMembers tsmem = rpmtsMembers(ts);
|
||||||
|
int rc = 0;
|
||||||
|
+ int i = 0;
|
||||||
|
|
||||||
|
pi = rpmtsiInit(ts);
|
||||||
|
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));
|
||||||
|
|
||||||
|
diff --git a/python/rpmmodule.c b/python/rpmmodule.c
|
||||||
|
index 0e3ab18..29753fd 100644
|
||||||
|
--- a/python/rpmmodule.c
|
||||||
|
+++ b/python/rpmmodule.c
|
||||||
|
@@ -512,6 +512,7 @@ static int initModule(PyObject *m)
|
||||||
|
REGISTER_ENUM(RPMCALLBACK_SCRIPT_START);
|
||||||
|
REGISTER_ENUM(RPMCALLBACK_SCRIPT_STOP);
|
||||||
|
REGISTER_ENUM(RPMCALLBACK_INST_STOP);
|
||||||
|
+ REGISTER_ENUM(RPMCALLBACK_ELEM_PROGRESS);
|
||||||
|
|
||||||
|
REGISTER_ENUM(RPMPROB_BADARCH);
|
||||||
|
REGISTER_ENUM(RPMPROB_BADOS);
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
6
rpm.spec
6
rpm.spec
@ -29,7 +29,7 @@
|
|||||||
Summary: The RPM package management system
|
Summary: The RPM package management system
|
||||||
Name: rpm
|
Name: rpm
|
||||||
Version: %{rpmver}
|
Version: %{rpmver}
|
||||||
Release: %{?snapver:0.%{snapver}.}28%{?dist}
|
Release: %{?snapver:0.%{snapver}.}29%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.rpm.org/
|
Url: http://www.rpm.org/
|
||||||
Source0: http://rpm.org/releases/rpm-4.12.x/%{name}-%{srcver}.tar.bz2
|
Source0: http://rpm.org/releases/rpm-4.12.x/%{name}-%{srcver}.tar.bz2
|
||||||
@ -74,6 +74,7 @@ Patch118: rpm-4.13.0-Use-pkg-dpaths-during-dependency-generation.patch
|
|||||||
Patch119: rpm-4.13.0-Noarch-ExclusiveArch.patch
|
Patch119: rpm-4.13.0-Noarch-ExclusiveArch.patch
|
||||||
Patch120: rpm-4.13.0-redirect2null.patch
|
Patch120: rpm-4.13.0-redirect2null.patch
|
||||||
Patch121: rpm-4.13.0-lang-doc-directives.patch
|
Patch121: rpm-4.13.0-lang-doc-directives.patch
|
||||||
|
Patch122: rpm-4.13.0-elem-progress-callback.patch
|
||||||
|
|
||||||
# These are not yet upstream
|
# These are not yet upstream
|
||||||
Patch302: rpm-4.7.1-geode-i686.patch
|
Patch302: rpm-4.7.1-geode-i686.patch
|
||||||
@ -585,6 +586,9 @@ exit 0
|
|||||||
%doc doc/librpm/html/*
|
%doc doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 12 2016 Lubos Kardos <lkardos@redhat.com> 4.13.0-0.rc1.29
|
||||||
|
- Add RPMCALLBACK_ELEM_PROGRESS callback type (needed by dnf)
|
||||||
|
|
||||||
* Wed Apr 06 2016 Lubos Kardos <lkardos@redhat.com> 4.13.0-0.rc1.28
|
* Wed Apr 06 2016 Lubos Kardos <lkardos@redhat.com> 4.13.0-0.rc1.28
|
||||||
- Fix non-working combination of %%lang and %%doc directive (#1254483)
|
- Fix non-working combination of %%lang and %%doc directive (#1254483)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user