2013-07-12 16:11:14 +02:00
|
|
|
--- lib/psm.c.orig 2013-07-12 12:25:38.000000000 +0000
|
|
|
|
+++ lib/psm.c 2013-07-12 12:27:01.000000000 +0000
|
2013-06-24 12:17:04 +02:00
|
|
|
@@ -807,6 +807,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
|
|
|
case PSM_PROCESS:
|
|
|
|
if (psm->goal == PKG_INSTALL) {
|
|
|
|
int fsmrc = 0;
|
|
|
|
+ int saved_errno = 0;
|
|
|
|
|
|
|
|
rpmpsmNotify(psm, RPMCALLBACK_INST_START, 0);
|
|
|
|
/* make sure first progress call gets made */
|
|
|
|
@@ -826,6 +827,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
|
|
|
|
2013-07-12 16:11:14 +02:00
|
|
|
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi,
|
|
|
|
payload, psm, &psm->failedFile);
|
2013-06-24 12:17:04 +02:00
|
|
|
+ saved_errno = errno;
|
|
|
|
|
|
|
|
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_UNCOMPRESS),
|
|
|
|
fdOp(payload, FDSTAT_READ));
|
|
|
|
@@ -843,6 +845,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
|
|
|
rpmpsmNotify(psm, RPMCALLBACK_INST_STOP, psm->total);
|
|
|
|
|
|
|
|
if (fsmrc) {
|
|
|
|
+ errno = saved_errno;
|
|
|
|
rpmlog(RPMLOG_ERR,
|
|
|
|
_("unpacking of archive failed%s%s: %s\n"),
|
|
|
|
(psm->failedFile != NULL ? _(" on file ") : ""),
|