Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jul 1995 18:23:14 -0700
From:      asami@cs.berkeley.edu (Satoshi Asami)
To:        rgrimes@gndrsh.aac.dev.com
Cc:        hackers@freebsd.org
Subject:   Re: Strange entries in /usr/src/Makefile
Message-ID:  <199507210123.SAA03025@forgery.CS.Berkeley.EDU>
In-Reply-To: <199507202132.OAA09908@gndrsh.aac.dev.com> (rgrimes@gndrsh.aac.dev.com)

next in thread | previous in thread | raw e-mail | index | archive | help
 * I can not go with nuking them, some sites have become acustom to
 * what we have.

That's true, but we need to try to clean up our source tree once in a
while, and /usr/src/Makefile is already 300+ lines long.  If it isn't
used that much and this can be changed without much pain (how many
sites are actually using them?), I think we should nuke it.  Browsing
through /usr/src/Makefile is already enough pain without this. ;)

 * 		  Perhaps the default value of
 * PORTSDIR should move to a more visible location.

That's an idea, we can put it in /etc/make.conf 'cause then anything
can pick it up.  If it's really necessary, that is.

 * Your missing a lot of the context and everything that went into
 * the initial work to put that stuff in there, this was not just
 * some half cocked lets go off and add this.  It was discussed and
 * reviewed, changed and envolved for about a 2 week period before
 * it ever got added.

I did look at the cvs log even before I sent out the original
message.  I couldn't find anything there, so I assume it went in
before the 4.4 switch, is this correct?

 * Now, the new ports stuff has changed the picture a little and we
 * need to deal with it, not just go nuke it!

Well, one thing is that the older ports paradigm is different from
the new one.  It's not only the location, it uses a pretty much
different way to build the thing, we don't have the source under there 
anymore, etc.

 * The argument that that /usr/src should know nothing about /usr/ports
 * is a strawman, as bsd.port.mk lives there along with several other
 * bits.  Ideally, sure it would be nice if it didn't know a thing about
 * it.  Practical view point, next to imposible to achive the ideal.

Now that's an argument for the sake of an argument.  Sure the *source*
of bsd.port.mk is in /usr/src, but it is installed in /usr/share and
that's what we are using.

I'm not saying /usr/src shouldn't know anything about /usr/ports, I'm
saying /usr/src/Makefile should't.  /usr/src/Makefile's job is to
build the operating system, and it just happens that one of the
utilities (BSD make, well actually some if its macros that we added)
knows something about the ports.

 * And as Joerg pointed out /usr/src/ports -> whereever makes the
 * current code just do the right thing, and that was more or less
 * the original intent.  If someone wanted there ports collection
 * autobuilt during a make world they just added the symlink and
 * set MAKE_PORTS and boom, bigger longer running more complete
 * ``make world''.

Maybe I should say that ports is not a subdirectory or a subsidiary of
any sort of /usr/src.  That's why I keep saying "this doesn't belong
here".  And if you want to do it "boom", you can just type "make world
&& cd /usr/ports && make". :)  Why didn't we go this route in the
first place?

 * You'll also notice all sorts of things in src/Makefile to handle
 * the fact that src/ports may very well be a symbolic link, so this
 * is not an ``after the fact'' side effect, it was designed that
 * way.

Well, the stuff about the obj links and stuff are useless.  We don't
have them in the ports tree (and I don't think we ever had).

 * [gee, 60 lines of comments to defend 10 lines of code :-(]

I don't understand why it's so hard to get my point across, this thing
just doesn't belong in /usr/src/Makefile and never should have been
put in.  We don't have a link /usr/src -> wherever/ports, we don't
even have /usr/ports installed as part of the base system (I want this
to be fixed though).

This problem should have been solved by the user typing both commands
from the command line, not by adding cruft to our /usr/src/Makefile,
and I don't think it's too late to clean it up.

I understand that this thing was designed carefully, it will work
beautifully (minus the ports tree not actually building very well :<)
if you have the right symlinks and stuff, and I apologize for hurting
the feelings of the people who worked hard to add it here and make it
work right.

But lately our Makefiles and *.mk files are getting way too
complicated, we need to try to reduce their complexity, that's why I
barked at Jordan when he added a new variable instead of deleting a
few lines.

Satoshi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507210123.SAA03025>