Problems with +CONTENTS being messed up by pkg_delete -f

看板FB_hackers作者時間18年前 (2007/07/24 11:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
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 A further benefit of this approach is that one could also accurately reconstruct the +REQUIRED_BY of the port just reinstalled - right now this is left empty and thus inaccurate. What do you guys think? I know I could write the code for this quite quickly, but I want some feedback before I work on it. Stephen _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
文章代碼(AID): #16fMoU00 (FB_hackers)
文章代碼(AID): #16fMoU00 (FB_hackers)