From owner-freebsd-arch Sun Feb 18 2:55:49 2001 Delivered-To: freebsd-arch@freebsd.org Received: from gratis.grondar.za (grouter.grondar.za [196.7.18.65]) by hub.freebsd.org (Postfix) with ESMTP id C301237B4EC for ; Sun, 18 Feb 2001 02:55:39 -0800 (PST) Received: from grondar.za (root@gratis.grondar.za [196.7.18.133]) by gratis.grondar.za (8.11.1/8.11.1) with ESMTP id f1IAt6957670; Sun, 18 Feb 2001 12:55:09 +0200 (SAST) (envelope-from mark@grondar.za) Message-Id: <200102181055.f1IAt6957670@gratis.grondar.za> To: Jordan Hubbard Cc: arch@FreeBSD.ORG Subject: Moving Things References: <11284.982487979@winston.osd.bsdi.com> In-Reply-To: <11284.982487979@winston.osd.bsdi.com> ; from Jordan Hubbard "Sun, 18 Feb 2001 01:19:39 PST." Date: Sun, 18 Feb 2001 12:55:43 +0200 From: Mark Murray Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Picking up the thread, and renaming it to give a starting point. > > I'd like to point out that making FreeBSD more modular doesn't > > necessarily mean that we have to change the policy we have hard coded > > into the Makefiles. We can and do subset things more easily than > > Absolutely, we're in violent agreement on that point. I'm just > suggesting that instead of having the policy be represented by > SUBDIR lines in Makefiles, it should instead be something like > this: [ example removed ] To properly describe where I am with this now, I ask all of you participants to please stop thinking in terms of individual programs or packages, and take Jordan's 20000 ft view on this. It is plainly obvious that "FreeBSD" means different things to different people. My FreeBSD includes my choice of shell, mailers games X environment and so on. The whole purpose of this discussion is now to find a way of structuring FreeBSD in an extensible way that not only allows people to have what they want, but also to _not_ have what they _don't_ want. Desktop users want lots of X stuff, newsreaders, web browsers, mail clients, flashy screen savers and the like. Server administrators want kick-arse performance in whatever services they offer, and minimal flashiness to slow things down. Turbo-geeks want to configure absolutely everything so that can run FreeBSD in their pocket calculators or wearable computers. Newbies want it to work out-of-the-box, because they don't understand all this configuration crap anyway. Dialup users may have special requirements such as POP services, UUCP, PPP-dial and so on. Security paranoids have a particular list of things-to-remove that is at odds with folks who work behind firewalls. NOBODY wants to be told by some dumb policy decision what he has to have on his machine (if he doesn't want it there). SO - How do we proceed? Here is an idea: PLEASE PLEASE do not look for implementation details in the following; I know it will be hard, but until a decent design comes out, arguing about programming details is futile. Step back and look at FreeBSD as ports and base combined - stir the pot if you will. Imagine a tree (use XML as a sort of concept here, although the final thing could be anything). At the concept level, this is NOT Makefiles, this is a configuration structure. There is a system that understands the above tree, and is able to use it to decide how to install software into the target system. Being a tree, this configuration structure is hierarchical - working from the base will result in more work being done than working from a branch or from a leaf. There would also be dependancies (installing (say) UUCP would depend on installation of any MTA). At the small branch or leaf level, where individual bits are installed, there would be many ways to do things, depending on what you have, and what you want and need. A newbie would install compiled binaries, but a developer would check out sources, and compile/install those. Even developers may not be interested in all sources, and may choose to simply cache or download precompiled sources for things that they use but don't actively work on. All of this should be fluidly configurable. This way, the hardcore types can still to a "make world" (but can choose to leave out junk they don't like) while including in the build their favourite ("portish") tools (editors, servers etc). Comments? M -- Mark Murray Warning: this .sig is umop ap!sdn To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message