Subject: Re: Updating packages
To: Matthias Scheler <tron@zhadum.org.uk>
From: Aleksey Cheusov <cheusov@tut.by>
List: pkgsrc-users
Date: 04/30/2007 17:12:11
> On Sat, Apr 28, 2007 at 01:36:34AM +0300, Aleksey Cheusov wrote:
 >> I expect that this
 >> - builds package B
 >> - creates B-x2.y2.z2.tgz in PACKAGES
 >> - installs A from .tgz package from PACKAGES

> "make update" doesn't use binary packages. You should look at one of
> package management tools like "pkg_chk".
pkgsrc.txt:

16.17. Other helpful targets
  ...
  bin-install

    Install a binary package from local disk and via FTP from a list
    of sites (see the BINPKG_SITES variable), and do a make package if
    no binary package is available anywhere. The arguments given to
    pkg_add can be set via BIN_INSTALL_FLAGS e.g., to do verbose
    operation, etc.

  ...
  update
    ...
    The following variables can be used either on the command line or
    in /etc/ mk.conf to alter the behaviour of make update:

    UPDATE_TARGET

        Install target to recursively use for the updated package and
        the dependent packages. Defaults to DEPENDS_TARGET if set,
        "install" otherwise for make update. Other good targets are
        "package" or "bin-install". Do not set this to "update" or you
        will get stuck in an endless loop!

I asked developers and those who know pkgsrc internals,
i.e. know how it is implemented, why

UPDATE_TARGET=bin-install
and 
DEPENDS_TARGET=packafe
doesn' work together.

I think 'make update' mode that
1) uses binary package if they are available
and
2) build these binary packages
would be very nice feature.

 >> but A is not installed at all.  Why?

> What do you mean bu "A is not installed"? It should be built from source.
"is not installed" means that
process of building from sources were not started at all.

P.S.
I know about pkg_chk. It is extreeeeeeeeeeamely slow.
Before starting real job (building/installing)
it eats MINUTES on my old home machine and on more modern machines too.
With my patch it works ~10 times faster in some modes
but the patch is not complete yet.
It is so slow not because it is written in shell but because
it has O(N^2) complexity of some operations where O(N) is possible.

-- 
Best regards, Aleksey Cheusov.