Re: pkg_add and remote packages

The big question here is how to deal with packages that have missing
dependencies. It is not possible to start open the stream from the
remote side, figure out something is missing and start to install that.
Consider the connection limit on ftp.netbsd.org for reasons.
One way to greatly simplify the code is to just fetch the package to
/var/tmp or whatever and install it afterwards like a local package.
This does increase the temporary space used, but as the next step in the
evolution will switch to inplace extraction, that is only temporary.
It also makes it easy to provide a local cache directory.

Your plan as I understand it is:

(1) Modify pkg_add(1) to use libfetch to fetch the remote binary package
and store it locally, then install the local binary package. I'm not
sure precisely what advantage using libfetch is over using ftp(1) if
that's all that we're doing; could you explain?

(2) Modify pkg_add(1) to use libarchive to extract the local binary
package directly into ${LOCALBASE} and ${PKG_DBDIR} instead of the
staged installation via /var/tmp (as is currently done).

I think that sounds fine, as long as both parts are eventually done.
Very often, the trade-off for disk space and bandwidth is biased toward
"disk space is cheap", but I find that I usually fetch "remote" packages
across my local network and really don't want the extra copies of
packages everywhere.