Warn the user if chown/fchown fails. Index: lib/fsm.c =================================================================== --- lib/fsm.c.orig +++ lib/fsm.c @@ -2193,6 +2193,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, @@ -2202,6 +2206,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,