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>