[pacman-dev] Fun little bug- pacman3 fails to remove flex and words packages correctly

Dan McGee dpmcgee at gmail.com
Thu Jan 18 14:21:25 EST 2007


On 1/18/07, Aaron Griffin <aaronmgriffin at gmail.com> wrote:
> On 1/18/07, Dan McGee <dpmcgee at gmail.com> wrote:
> > flex: /usr/bin/flex exists in filesystemflex
>
> This worries me.  It appears that some spaces have been removed from
> the deps in the DB, merging "filesystem" and "flex" as one name.

This might explain it better:
line 730, sync.c:         case PM_CONFLICT_TYPE_FILE:
          MSG(NL, _("%s: %s%s exists in filesystem"),
              alpm_conflict_get_target(conflict),
              config->root,
              alpm_conflict_get_file(conflict));

The MSG simply needs a \n at the end of it (I patched it locally when
looking at this last night, but not in the CVS build I ran the above
with). The 'flex' text comes from the first part of the MSG output:
%s:.

> As for the "cannot remove file" stuff.  The error makes sense now.
> What file can't it find?
> usr/man/man1/flex.1.gz
> NOT
> /usr/man/man1/flex.1.gz
>
> The issue is in unlink_file.  It uses the version of the file which
> DOESN'T have the current root prepended.
> I fixed this in CVS (and added the absolute path to some output there as well).

Why did it error on these packages and not others? Or does it error on others?

-Dan




More information about the pacman-dev mailing list