I just wanted to run this by anyone interested. Below is what I've been using for CVS commits, sent only to myself for the time being. Is including the full diff output a good idea, or over the top? Let me know.. ---------- Forwarded message ---------- From: Aaron Griffin <aaron@archlinux.org> Date: Jan 18, 2007 11:04 AM Subject: CVS update of pacman-lib/lib/libalpm (remove.c) To: aaronmgriffin@gmail.com Date: Thursday, January 18, 2007 @ 12:04:25 Author: aaron Path: /home/cvs-pacman/pacman-lib/lib/libalpm Modified: remove.c (1.54 -> 1.55) Some confusion with variable names in unlink_file caused unlink to try and find the _relative_ file instead of absolute. The absolute path name has also been used in some of the output there too. ----------+ remove.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) Index: pacman-lib/lib/libalpm/remove.c diff -u pacman-lib/lib/libalpm/remove.c:1.54 pacman-lib/lib/libalpm/remove.c:1.55 --- pacman-lib/lib/libalpm/remove.c:1.54 Thu Jan 18 11:04:05 2007 +++ pacman-lib/lib/libalpm/remove.c Thu Jan 18 12:04:25 2007 @@ -168,7 +168,7 @@ double percent = 0.0; char *file = lp->data; char line[PATH_MAX+1]; - char *checksum = _alpm_needbackup(file, info->backup); + char *checksum = _alpm_needbackup(lp->data, info->backup); if ( *position != 0 ) { percent = (double)*position / filenum; @@ -183,15 +183,15 @@ } snprintf(line, PATH_MAX, "%s%s", handle->root, file); if ( lstat(line, &buf) ) { - _alpm_log(PM_LOG_DEBUG, _("file %s does not exist"), file); + _alpm_log(PM_LOG_DEBUG, _("file %s does not exist"), line); return; } if ( S_ISDIR(buf.st_mode) ) { if ( rmdir(line) ) { /* this is okay, other pakcages are probably using it (like /usr) */ - _alpm_log(PM_LOG_DEBUG, _("keeping directory %s"), file); + _alpm_log(PM_LOG_DEBUG, _("keeping directory %s"), line); } else { - _alpm_log(PM_LOG_DEBUG, _("removing directory %s"), file); + _alpm_log(PM_LOG_DEBUG, _("removing directory %s"), line); } } else { /* check the "skip list" before removing the file. @@ -206,7 +206,7 @@ } if ( skipit ) { _alpm_log(PM_LOG_FLOW2, _("skipping removal of %s as it has moved to another package"), - file); + line); } else { /* if the file is flagged, back it up to .pacsave */ if ( nb ) { @@ -217,16 +217,16 @@ char newpath[PATH_MAX]; snprintf(newpath, PATH_MAX, "%s.pacsave", line); rename(line, newpath); - _alpm_log(PM_LOG_WARNING, _("%s saved as %s"), file); + _alpm_log(PM_LOG_WARNING, _("%s saved as %s"), line, newpath); } } } else { - _alpm_log(PM_LOG_FLOW2, _("unlinking %s"), file); + _alpm_log(PM_LOG_FLOW2, _("unlinking %s"), line); int list_count = _alpm_list_count(trans->packages); /* this way we don't have to call _alpm_list_count twice during PROGRESS */ PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, info->name, (double)(percent * 100), list_count, (list_count - _alpm_list_count(targ) + 1)); ++(*position); } - if (unlink(file) == -1) { + if (unlink(line) == -1) { _alpm_log(PM_LOG_ERROR, _("cannot remove file %s: %s"), file, strerror(errno)); } }