tech-pkg archive

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

Re: bsd.own.mk - Re: pkg/44425: devel/lua-alt-getopt install problem



    Date:        Mon, 24 Jan 2011 13:23:45 +0100
    From:        Joerg Sonnenberger <joerg%britannica.bec.de@localhost>
    Message-ID:  <20110124122345.GA27301%britannica.bec.de@localhost>

  | *sigh* The problem is not the locating of /usr/src.

Of course, if I gave you the impression that I thought some particular
string of characters was important, I apologise, I know it isn't that.

  | The problem is
  | placing the build directory for pkgsrc inside the NetBSD src *tree*.

The problem is what is the definition of "the NetBSD src *tree*" ?

Or perhaps more precisely, that there is no such definition, and that's
really because there is really no such thing.

Even hier(7) says ...

     /usr/src/  NetBSD and local source files

Note the "and local" - what's under /usr/src is not just NetBSD
sources, it is that, and anything else that we (system owners)
decide to put there.

Of course, we need to take care of naming conflicts, but that's not the
issue here.

Now, I suppose I could move all the NetBSD sources under /usr/src/NetBSD/
(or something) so I'd have /usr/src/NetBSD/bin (etc) instead of /usr/src/bin.
However, if I did that, the things that are (traditionally) in
/usr/src/gnu and /usr/src/dist wouldn't really be correctly moved
into /usr/src/NetBSD as none of those are NetBSD sources, they're sources
from other places (even pkgsrc is much more NetBSD src than bind. ntp 
or groff is).

But with that change, now things don't build any more, as the NetBSD
supplied sources believe that ../../(some-number-of-times)/dist/bind
will find the original bind sources, which will no longer be true if
"bin" and "dist" are no longer sibling directories.

Dealing with that is way too much trouble - it is (and should be) much
easier to just rid everything of the insane assumption that because it
lives somewhere inside this mythical "NetBSD src tree" that it must
necessarily be NetBSD code, using all the NetBSD conventions.   That has
never been true, and the assumption that it is, or was, is bogus and should
be fixed.

Rather, things that want the NetBSD make special behaviour should say so
explicitly, and not simply inherit that from the location of their sources
relative to some other sources.

Aside from anything else, this detecting stuff based upon location of
the source directory all fails if I want to work on some private modifications
for some standard tool (either for private use, or for ease of development
before submitting updates) and I just

        cp -rp /uusr/src/whatever/progname $HOME/src

and then go and work on my local copy (in a directory with none of the
siblings around it).   For this to work, the make system needs to get all
the normal NetBSD special actions, even though the source is nowhere near
this "NetBSD src tree", just the same as if I stick some other program, that
is not NetBSD, and wants nothing to do with the NetBSD make system in
/usr/src/bin/progname because I want this program to go in /bin when
compiled - that should not inflict NetBSD makefile behaviour on it.

This should not be a difficult concept.   It should apply to pkgsrc
as it would to anything else.

kre



Home | Main Index | Thread Index | Old Index