static int fsmBackup(FSM_t fsm)
{
int rc = 0;
- struct stat * st = &fsm->sb;
- if (fsm->osuffix && fsm->diskchecked &&
- (fsm->exists || (fsm->goal == FSM_PKGINSTALL && S_ISREG(st->st_mode))))
- {
- int isDir = S_ISDIR(st->st_mode);
- char * opath = fsmFsPath(fsm, isDir, NULL);
+ if (fsm->action == FA_SAVE || fsm->action == FA_BACKUP) {
+ char * opath = fsmFsPath(fsm, S_ISDIR(fsm->sb.st_mode), NULL);
char * path = fsmFsPath(fsm, 0, fsm->osuffix);
rc = fsmRename(opath, path, fsm->mapFlags);
if (!rc) {
AT_BANNER([RPM config symlink behavior])
# Install over existing config file
-# Broken, no backup taken
AT_SETUP([install config on existiting symlink])
AT_KEYWORDS([install])
-AT_XFAIL_IF([test $RPM_XFAIL -gt 0])
AT_CHECK([
RPMDB_CLEAR
RPMDB_INIT
# ------------------------------
# Upgrade package with locally modified config link, changed in pkg
-# Broken, no backup taken
AT_SETUP([upgrade changing, modified config link 1])
AT_KEYWORDS([install])
-AT_XFAIL_IF([test $RPM_XFAIL -gt 0])
AT_CHECK([
RPMDB_CLEAR
RPMDB_INIT
# ------------------------------
# Upgrade package with locally modified config file, changed in pkg
-# Broken, no backup taken
AT_SETUP([upgrade changing, modified shared config link 1])
AT_KEYWORDS([install])
-AT_XFAIL_IF([test $RPM_XFAIL -gt 0])
AT_CHECK([
RPMDB_CLEAR
RPMDB_INIT