pkg_add feature proposal

Wesley Shields wxs at FreeBSD.org
Mon Aug 25 16:51:17 UTC 2008


On Mon, Aug 25, 2008 at 09:22:57AM -0500, Stephen Montgomery-Smith wrote:
> Peter Pentchev wrote:
> > On Mon, Aug 25, 2008 at 05:48:06AM -0700, Jeremy Chadwick wrote:
> >> On Mon, Aug 25, 2008 at 02:37:16PM +0300, Anton - Valqk wrote:
> >>> Hi everyone,
> >>>
> >>> I've just got an Idea (maybe others had it too?).
> >>>
> >>> When doing pkg_add [-r] wouldn't it be better if pkg_add checks if _all_
> >>> dependent packages exists and checksums are ok (after downloaded if with
> >>> -r), etc. checks _before_ installing the packages, because if you get
> >>> 3-4 packages broken/missing when one package depends on 30-40 (X apps
> >>> etc.) you should delete all already installed...
> >>>
> >>> I've got this problem when did pkg_add -r mod_musicindex and for some
> >>> reason mod_musicindex didn't build the flac and libogg when
> >>> $> make package-recursive
> >>> specified.
> >>> When the pkg_add get to these packages and they were not found on the
> >>> web server, I've had to delete all installed packages by hand... uhh...
> >>>
> >>> so, what would you say about that?
> >> I'd say it's a great idea (and an ideal idea), but it's not easily
> >> implementable.  Where would pkg_add get its list of dependencies from?
> >> The port Makefile?  And what if the user doesn't have ports installed?
> >>
> >> This is one of the many quirks of the ports vs. package system.
> > 
> > Well, pkg_add *already* gets the list of dependencies from the .tbz file
> > that it is either passed on the command line or it downloads.  I believe
> > that Anton is asking for a bit more separation between the "fetch all
> > packages to be installed" and the "install all fetched (fought?) packages"
> > phases of pkg_add's operation.  However, given the way that pkg_add
> > operates by invoking itself recursively, it might not be easy to do this
> > without a major rewrite and algorithm change.
> >
> 
> I don't think it would be that hard to do.  The root package has a 
> complete list of its dependencies in +CONTENTS, and they are even listed 
> in the order they need to be installed (so if it is recursive, it will 
> only be to one level).
> 
> And it is a good idea.  So the only question is "who will do it."

Not that I'm volunteering to do it, but I've run into the need to use
pkg_fetch and had to install portupgrade just to get it.  What we are
discussing here is closely related to that.  It wouldn't be a hard
stretch to implement a pkg_fetch in the base.  It's on my todo list but
not sure when (if) I will ever get to it.

-- WXS


More information about the freebsd-ports mailing list