[pacman-dev] %REPLACES% doesn't appear in localdb

Dan McGee dpmcgee at gmail.com
Wed Jan 9 19:36:47 EST 2008


On Jan 9, 2008 6:24 PM, Aaron Griffin <aaronmgriffin at gmail.com> wrote:
>
> On Jan 9, 2008 6:10 PM, Dan McGee <dpmcgee at gmail.com> wrote:
> > On Jan 9, 2008 9:40 AM, Xavier <shiningxc at gmail.com> wrote:
> > > Dan McGee wrote:
> > > >
> > > > So my point still stands. Do you know for a fact that having a
> > > > non-empty replaces list for a local package will not affect conflict
> > > > and dependency resolving? Until you have proved this, I don't feel
> > > > comfortable making the change.
> > > >
> > >
> > > I have to admit I was also a bit confused by the whole discussion, but
> > > didn't speak up because it looked like a minor problem.
> > >
> > > To answer your question, it's actually rather easy. get_replaces is
> > > really just used once, and that is in find_replacements.
> > > find_replacements is only used for the -Su operation, and has 0 effect
> > > on conflict and dependency resolving.
> > >
> > >  > grep -r get_replaces lib/libalpm/*.c
> > > lib/libalpm/package.c:
> > > alpm_list_t SYMEXPORT *alpm_pkg_get_replaces(pmpkg_t *pkg)
> > > lib/libalpm/package.c:
> > > newpkg->replaces   = alpm_list_strdup(alpm_pkg_get_replaces(pkg));
> > > lib/libalpm/sync.c:
> > > for(k = alpm_pkg_get_replaces(spkg); k; k = k->next) {
> > >
> > > And it's called on spkg, so a sync pkg, in a sync database.
> >
> > Patches welcome from anyone, this shouldn't be a hard fix. Thanks for
> > looking into the details, Xavier.
>
> Bam? http://code.phraktured.net/?p=pacman.git;a=shortlog;h=woot


 409                                 /* the REPLACES tag is special --
it only appears in sync repositories,
 410                                  * not the local one. */

^^ We should probably get rid of that misleading comment too. And why
we are at it, any reason not to store that FORCE tag too? It seems
like it could be useful information (knowing that this package was
force-sysupgraded). If we do that, then we don't have any if(local)
constructs left.

-Dan




More information about the pacman-dev mailing list