Problems with +CONTENTS being messed up by pkg_delete -f
Garrett Cooper
youshi10 at u.washington.edu
Thu Jul 19 04:18:50 UTC 2007
Stephen Montgomery-Smith wrote:
> Robert Noland wrote:
>> On Wed, 2007-07-18 at 15:56 -0500, Stephen Montgomery-Smith wrote:
>>> If you "pkg_delete -f" a package and then install the port again
>>> (but after it has been bumped up a version), then the +CONTENTS of
>>> ports that require the original port will be incorrect. This
>>> apparently messes up programs like portmanager. There is a sense in
>>> which one should never do "pkg_delete -f" and expect /var/db/pkg to
>>> keep its integrety - on the other hand this is exactly what "make
>>> deinstall" does.
>>>
>>> My feeling is that the integrety of /var/db/pkg should be maintained
>>> across a "make deinstall" and subsequent "make install" of a bumped
>>> version of the port.
>>>
>>> This is my suggestion. When a "pkg_delete -f" is executed, it looks
>>> through +REQUIRED_BY of the port it is going to delete, and modifies
>>> the +CONTENTS file of each of them, replacing lines like
>>> @pkgdep xineramaproto-1.1.2
>>> @comment DEPORIGIN:x11/xineramaproto
>>>
>>> to maybe something like
>>> @comment DELDEPORIGIN:x11/xineramaproto
>>>
>>> ("deleted dependency origin"). A subsequent "make install" of
>>> x11/xineramaproto should look through the +CONTENTS of all entries
>>> in /var/db/pkg and change these lines to something like
>>>
>>> @pkgdep xineramaproto-1.1.3
>>> @comment DEPORIGIN:x11/xineramaproto
>>
>> Hrm, not quite what I had in mind... I don't want to misrepresent that
>> a port was built against a newer version of a dependency. What I was
>> hoping for would be that a port when reinstalled would not list both the
>> current version of a dependency as well as a previous version of the
>> same origin (which it aquired via the +CONTENTS of some other direct
>> dependency). It should only list the currently installed version of
>> that origin.
>>
>> That way it is still possible to determine that the interim port was
>> built against an older version. I just want the +CONTENTS file to
>> accurately list the versions that a given port was built against.
>
> I think I was not understanding your problem, nor how portmanager
> works. Sorry about that.
>
> In general, I do really like how the present "actual-package-depends"
> works, and so I would rather see this kept, and portmanager modified
> to accomodate, rather than the other way around.
>
> Robert sent me some private emails about how "actual-package-depends"
> was messing up portmanager. Probably he should send the problem
> descriptions to the mailing lists, and maybe someone else could solve
> them. I thought I had some ideas for quick fixes, but it seems I was
> looking before I was leaping. I don't really have enough time right
> now for long fixes, so someone else will have to figure it out. I
> have to say that I simply don't use portmanager or portsinstall or
> anything like that, so I don't know how they work. (Rather I use my
> own home brew tools for doing the same thing, and since they are home
> brew and only for my use, they don't need to get everything right
> everytime, they can be simple, and they don't have to be at all
> user-friendly.)
>
> Best regards, Stephen
Stephen,
I admire your willingness to help, but I believe that Robert should
be the one detailing the problem not you. That way too much confusion
doesn't get aroused on the list(s).
I'm going to remove hackers@ from the CC list because this almost
exclusively pertains to ports at .
-Garrett
More information about the freebsd-ports
mailing list