pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Shouldn't "make replace" pull in pkgtools/pkg_tarup?



> Why not add dependency on digest, pkg_tarup and checkperms to your
> distbb, if distbb really require those packages and/or want to
> installed before use it?
I'll try to explain the problem.

1) DISTBB itself doesn't need digest, pkg_tarup and checkperms.  Normally
  for running bulk builds distbb is installed to, e.g., /usr/pkg_distbb
  while regular packages installed to /usr/pkg.
2) Before beginning package building package graph is built by distbb.
  Vertices are packages. Arcs (X, Y) means X is required for building Y.
  For building this graph, only DEPENDS and BUILD_DEPENDS variables
  are analysed.
2.1) Only one package is built at a time. This is because package building
  is distributed over network/chroots. DEPENDS_TARGET=bin-install.
  That is dependencies are not [re]built by 'make depends',
  they are just installed.
3) Graph from 2) is incomplete. Dependencies from digest and checkperms
  are missed. I'm aware about BOOTSTRAP_DEPENDS but this doesn't solve
  the problem with 'make replace' that needs pkg_tarup _absent_
  in BOOTSTRAP_DEPENDS. DISTBB is smart enough to run 'make replace'
  (instead of make install) for packages like pkg_install.
4) Due to problems from 3) EXTRA_DEPS variable was introduced in distbb
  which lists packages ("Optional Infrastructure") from which
  ALL others depends. This variable should be filled MANUALLY.
5) Enriched graph (2 + 4) is still incomplete. Dependencies between
  "Optional Infrastructure" packages are missed, e.g. checkperms
  depends on digest. Another variable was introduced to solve this.
  EXTRA_DEPS_CMD="$BMAKE show-var VARNAME=BOOTSTRAP_DEPENDS"
6) I don't think it is good idea to run digest, checkperms and
  pkg_tarup from /usr/pkg_distbb
7) It is not clear for me where I can get a _full_ list
  of "Optional Infrastructure" packages.
  I know about three. Is there others?
8) I don't hardcode pkgsrc-specific features inside DISTBB.
   Evrything can changed in DISTBB. Flexibility is one of its main goal.
   This is why EXTRA_DEPS_CMD is in distbb.conf
   This goal allowed me to run DESTDIR bulk build just
   by changing config files.
7) By dividing all packages into two classes and forcing users
   to add pkg_tarup/digest/checksums to bootstrap tarball me
     a) remove EXTRA_DEPS variable from distbb.conf
     b) remove EXTRA_DEPS_CMD variable from distbb.conf
     c) remove strange code from distbb (~50 lines of code I think).
     d) remove use of BOOTSTRAP_DEPENDS unclear for me. Can you explain it?
     e) remove yet another pkgsrc-specific hack from distbb

> On Tue, 28 Oct 2008 18:33:23 +0900, Aleksey Cheusov 
> <cheusov%tut.by@localhost> wrote:

 >>  >>> All seems to be pretty consistent:
 >>  >>> 1. Package management tools.
 >>  >>> 2. Packages.
 >>  >>> 3. Optional helper (infrastructure) packages
 >>  >>> (e.g. for building from the source).
 >>  >> Optional? - yes. Helper? - yes. Infrustructure? - I think no.
 >>  >> Infrustructure packages should be in 1).
 >>
 >>> It probably mean "Optional Infrastructure" packages.
 >>
 >>> Bootstrap packages should be kept minimam, because
 >>> one of them is broken, failed to bootstrap.
 >> IMHO this purpose results in unnecessary complications in pkgsrc
 >> itself and bulk building software. Having exactly two categories for
 >> packages can make both simplier. This thread gives me an idea to completely
 >> remove dances around digest, pkg_tarup and checkperms from my distbb
 >> and to force users to add all these to bootstrap tarball, that is
 >> to emulate 2-category clear system.
 >>
 >> Also, following your logic (minimalism) why packages required for
 >> handling binaries (only pkg_install?) are not separated into an
 >> individual category (bin-bootstrap?),
 >> i.e. ./bootstrap --without-pkgs-for-building
 >>

> -- 
> "Of course I love NetBSD":-)
> OBATA Akio / obache%NetBSD.org@localhost


-- 
Best regards, Aleksey Cheusov.


Home | Main Index | Thread Index | Old Index