Subject: Re: pkgsrc question
To: None <netbsd-users@netbsd.org>
From: Bernd Sieker <bsieker@freenet.de>
List: netbsd-users
Date: 04/22/2001 16:35:09
On 22.04.01, 08:46:17, Richard Rauch wrote:
> In addition to Chris's comment, I'd add a couple of further personal bits
> of advice:
> 
>  * pkgsrc is fully capable of downloading the distfiles (that's all that
>    ``make fetch-list | sh'' does) if it needs the files and they aren't
>    present in the distfiles/ directory.  (There are reasons why you may
>    want to do the fetching all at once.  But I thought that I'd point
>    out that it's not strictly required by pkgsrc.  (^&  Life is simpler
>    if you let pkgsrc fetch what it needs when it needs it.)

No it is not if you live on a dial-up line. If you do it the
"fetch-list" way, you can fetch all the distfiles _and_ all the
distfiles of all the dependencies, and after that let it work with the
dial-up interface down, and it won't need the internet again for the
complete build.

> 
>  * ``make'' (without an explicit target) causes the package to be built
>    and installed, if not already present.

No, make only installs dependencies, but only builds the current
package. the "all" target defaults to "build", not to "install".

> 
>    ``make update'' is possibly more what you want: It will deinstall
>    the package if it's already installed (it's for ``updating'' packages,
>    after all), ensure that the package is built, install it, and then
>    clean up the pkgsrc work/ directory.

"make update" can sometimes take hours and leave the system unusable
for some of the time.

Ever tried doing a "make update" in qt1, or in glib? It removes
_everything_ that depends on it, which maybe quite a lot (complete
kde, or gimp, gnome, and everything using gtk) and then slowly starts
rebuilding everything, which may or may not work without human
interaction. While this is the only secure way to get all dependencies
updated, it is sometimes not what you want.

> [...]
> 
>    Also, once or twice I've had trouble updating a package if there
>    were old versions of the package lying around in the work/ directory.
>    pkgsrc thought that the work/ copy was the current version, and
>    assumed that it didn't need to rebuild anything.

Well, that's what "make clean" is for :) If you do it in the top-level
pkgsrc directory, it will clean all the work directories.

> 
> Have fun, and welcome to NetBSD.  (^&
> 

-- 
Bernd Sieker

NetBSD: I Wanna Be Sedated
		-- Curt Sampson