27 lines
1.0 KiB
Diff
27 lines
1.0 KiB
Diff
Warn the user if chown/fchown fails.
|
|
|
|
--- ./lib/fsm.c.orig 2005-12-14 20:08:04.000000000 +0000
|
|
+++ ./lib/fsm.c 2005-12-16 18:19:37.000000000 +0000
|
|
@@ -2186,6 +2191,10 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
|
|
break;
|
|
case FSM_CHOWN:
|
|
rc = chown(fsm->path, st->st_uid, st->st_gid);
|
|
+ if (rc < 0 && errno == EPERM) {
|
|
+ rpmMessage(RPMMESS_WARNING, "can't chown %s (%s)\n", fsm->path, strerror(errno));
|
|
+ rc = 0;
|
|
+ }
|
|
if (_fsm_debug && (stage & FSM_SYSCALL))
|
|
rpmMessage(RPMMESS_DEBUG, " %8s (%s, %d, %d) %s\n", cur,
|
|
fsm->path, (int)st->st_uid, (int)st->st_gid,
|
|
@@ -2195,6 +2204,10 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
|
|
case FSM_LCHOWN:
|
|
#if ! CHOWN_FOLLOWS_SYMLINK
|
|
rc = lchown(fsm->path, st->st_uid, st->st_gid);
|
|
+ if (rc < 0 && errno == EPERM) {
|
|
+ rpmMessage(RPMMESS_WARNING, "can't lchown %s (%s)\n", fsm->path, strerror(errno));
|
|
+ rc = 0;
|
|
+ }
|
|
if (_fsm_debug && (stage & FSM_SYSCALL))
|
|
rpmMessage(RPMMESS_DEBUG, " %8s (%s, %d, %d) %s\n", cur,
|
|
fsm->path, (int)st->st_uid, (int)st->st_gid,
|