tech-pkg archive

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

Re: Cyclic dependency, please fix

In article <> Aleksey wrote:
: > : >     perl:../../devel/completely-different-pkg
: > : >     completely-different-pkg:../../devel/completely-different-pkg

: >   You misread the documentation, see below.

: Please point me to appropriate section of pkgsrc.txt and pkg_info(1).
: In the documentation I don't see what write below or something wrong.

  I'm not saying it's fully documented, or that the documentation is
particularily good.  Just that it does not say what you think it does,
and the implementation of pkgsrc disagrees with you as well.  You can
argue as much as you like that it might mean what you say, but the
fact of the matter is: it does not.  I'm trying to explain to you what
it *does* mean.

  The documentation you quoted (pkg_info) is about binary packages.
They only deal with the part before the colon.

: > : As far as I understood the syntax used here
: > : >    {perl>=5.10,p5-Module-Build>=0.2608nb1}:../../devel/p5-Module-Build
: > : I think it means: it can depend either on X or Y, and building ../../A/Y
: > : would satisfy at least on of the requirements.
: [skipped]

  The answer to your misunderstandig lies in the part you [skipped]:

          First you split the DEPENDS at the colon.  The part before
        the colon is used to check wether a suitable package is already
        installed (or which binary package to pull in when using pkg_add).
        The second part is used to build the dependency from source.

: >   So the above means to: perl>=5.10 and p5-Module-Build=>0.2608nb1 can
: >be used satisfies the dependency , so if either is installed, we're
: >done.
: Ok.

: >  Otherwise, go to ../../devel/p5-Module-Build and install from
: > there to fulfill this dependency.
: I'm sorry, but you skipped 'perl>=5.10'. Why?

  I used the part after the colon, which is what is used when building
the dependency from source.  What I skipped is everything before the
colon, since I used that in determining if a suitable package is
already installed.

: It is in the first
: position.  By the way, "go to either X or Y" logic leads me to cyclic
: dependency.

  As it well might, because it is *wrong*.  You do not go to either X
or Y, you go where the part after the colon tells you to go.  Nothing
more, nothing less.

: This is why I started this thread. On the other hand "go to
: X because it is in the first position" doesn't get me a correct PKGPATH
: for it (perl).

  The part after the colon spells the PKGPATH out for you.  It really
is as simple as that.


Home | Main Index | Thread Index | Old Index