From owner-freebsd-hackers Thu Jun 19 22:27:15 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id WAA12019 for hackers-outgoing; Thu, 19 Jun 1997 22:27:15 -0700 (PDT) Received: from time.cdrom.com (root@time.cdrom.com [204.216.27.226]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id WAA12013 for ; Thu, 19 Jun 1997 22:27:12 -0700 (PDT) Received: from time.cdrom.com (jkh@localhost.cdrom.com [127.0.0.1]) by time.cdrom.com (8.8.5/8.6.9) with ESMTP id WAA26038; Thu, 19 Jun 1997 22:27:07 -0700 (PDT) To: Mike Tancsa cc: freebsd-hackers@FreeBSD.ORG Subject: Re: make world error in RELENG_2_2 In-reply-to: Your message of "Thu, 19 Jun 1997 17:17:04 EDT." <3.0.2.32.19970619171704.02693930@sentex.net> Date: Thu, 19 Jun 1997 22:27:07 -0700 Message-ID: <26034.866784427@time.cdrom.com> From: "Jordan K. Hubbard" Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > You have sort of proved my point... As I said before, I try and follow the > mailling lists as closely as possbile for any caveats / changes to the > cvsup process... My sup file consists of the following > ... I think the real problem here is that some folks are simply unclear on the amount of "expertise" required to use /usr/src as an effective upgrade tool. You ask why we don't document the world target - but we do! /usr/src/Makefile is the documentation for the world target, and before you start laughing and figuring 'ol Jordan is copping-out here, let me just explain that for anything which requires building from sources, we *definitely assume* a very comfortable degree of knowledge in how to analyze Makefiles and see exactly what they are doing, up to and including making inferences about where the dependencies are and, if necessary, taking whatever steps are necessary to ensure that a failed build is jump-started from the right place. The world target *does* generally work, don't get me wrong, but it's also exceedingly easy to get to a point where the delta between where you are and where /usr/src would like to take you has diverged too far to allow "world" to actually work. In such cases, you need to know how to shepard the process through by hand and the Makefile truly says it all where that's concerned. I can't imagine any more effective or concise body of documentation than the build system itself to someone who knows what they're doing, and someone who doesn't know what they're doing really shouldn't be using the world target - they should be hanging back at the major release points and upgrading via binaries only. We're proud of our integrated build system and, given that it's also often the quickest way of getting a fix into a user's tree, we do sometimes tend to recommend it as a solution in situations where we really shouldn't. Building from source is NOT a generic, targeted-at-the-end-user kinda mechanism and I'm sorry if we ever lent that impression. It's not. It's for software engineering types to use, those who are more than comfortable with the idea of reading Makefiles and figuring it out, and in that sense I'd say it's probably as documented as it's ever going to be. This is also hardly the "elitist" stance some might see it as - it's just being honest about how this process works and hardly unknown in this industry. If you walked into IBM tomorrow as an engineer, for example, and were tasked with porting some large, obscure product of theirs from AIX to another UNIX variant, do you think you'd find a source tree with a carefully documented build system, all easily understandable in a ten minute study? Ha Ha. No. What you'd find instead is almost certainly something which was completely opaque to the average joe and aimed strictly at those who know how to take a build system apart in its entirety, say "aha, so THAT is what you idiots had in mind", and then adapt it to the new target system (or, as I've frequently done in such situations, do it over since the original designers had all the pan-UNIX expertise of a team of Visual Basic programmers and did it wrong for anything _but_ AIX). That's just the nature of the beast, and if anything I'd say that FreeBSD has one of the _easiest_ build systems to understand. You really have it easy, so quit whinging and start reading the Makefiles in the future, OK? :-) Jordan