At Mon, 14 Dec 2009 14:56:29 -0500, Greg Troxel <gdt%ir.bbn.com@localhost> wrote: Subject: Re: Sets, subsets, syspkgs, and MK* > > Masao Uebayashi <uebayasi%tombi.co.jp@localhost> writes: > > > > My point is to clarify > > > > a) what variable (condition) changes installed files ("subsets") > > b) what variable (condition) changes file contents ("contents") > > > > For example, usr.bin/login is conditionally built by USE_KERBEROS / USE_PAM > > / USE_SKEY. It is always installed. So it doesn't belong to the "subsets" > > I'm saying. > > That's right - you'd need to have MKLOGIN :-) But no one has ever wanted > a system without login enough to add a MK variable. So probably there's > a MKBASE=YES for the things that are really required. Indeed -- usr.bin/login is always built -- it just looks different on the inside depending on which USE_* flags are set. > > Such a technique is very common & OK for source distribution. If you build > > your image by yourself, you'll get a consistent image. Perhaps the point missing here is that these MK* and USE_* flags are adjustable _only_ for those who build from scratch from source. > The rest of the world has just one distribution. For binary updates, > all MK/USE should be in their default states. Indeed, the "official" distributions are expected to be built always using the same default MK* and USE_* settings. They are not adjustable and need not be compensated for from the perspective of the official binaries and users of the official binary distributions. Or at least that's how I as a third-party developer expect things to be done. > > Unfortunately MK* vs. USE_* usages are a little too confused now. I'd > > propose > > two variables for now to clearly distinguish "subsets" / "contents" (or > > whatever better words): > > > > NETBSD_CONFIG_HAVE_* - include a subset > > NETBSD_CONFIG_USE_* - enable a feature (implying to change > > "contents") > > I don't think that does anything except renaming. MK is HAVE and USE is > USE. Sort of.... "NETBSD_CONFIG_HAVE_*" is sort of like "USE_*" and "NETBSD_CONFIG_USE_*" is sort of like "MK*". It might be a useful renaming though -- just from a name-space clarification point of view. And I would stick pretty much with the current meanings and prefixes: NETBSD_CONFIG_MK_* - _build_ (and install) a subset (implying to change "contents") NETBSD_CONFIG_USE_* - enable a feature in a program (implying NO change to "contents") (the current HAVE_* variables have different semantics to the build and are not, as far as I can see, related in any way to the products of a "make release") Again, share/mk/bsd.README documents most of this _quite_ clearly, not as a summary per se, but definitely in whole based on the descriptions of all the MK* and USE_* variables taken together. It's also further clarified in how things work in distrib/sets. There are of course exceptions to every rule, though I think most or all of these are simply mistakes, i.e. mis-uses of USE_* vs. MK* and I'm surprised that they still exist and have not yet been fixed. Namely USE_INET6, USE_KERBEROS, and USE_YP _also_ currently imply changes to the contents of a distribution. Everything else in distrib/sets is controlled only by MK* variables. For example in every case where USE_INET6 currently affects the contents of a distribution, this affect could and should be achieved with MKINET6 instead. The same goes for USE_YP vs. MKYP and USE_KERBEROS vs. MKKERBEROS (which is really only yppasswd and kpasswd, and their documentation, respectively). So, perhaps what's confused you are just these simple bugs where USE_* has been misused? -- Greg A. Woods Planix, Inc. <woods%planix.com@localhost> +1 416 218 0099 http://www.planix.com/
Attachment:
pgpg8vXbQKNJX.pgp
Description: PGP signature