svn commit: r219181 - head/release

Nathan Whitehorn nwhitehorn at freebsd.org
Thu Mar 3 22:32:33 UTC 2011


On 03/03/11 15:52, Scott Long wrote:
> On Mar 3, 2011, at 2:42 PM, Nathan Whitehorn wrote:
>> On 03/03/11 15:14, Scott Long wrote:
>>> On Mar 3, 2011, at 12:32 PM, John Baldwin wrote:
>>>> On Thursday, March 03, 2011 12:22:44 pm Nathan Whitehorn wrote:
>>>>> On 03/03/11 11:09, John Baldwin wrote:
>>>>>> On Wednesday, March 02, 2011 11:06:57 am Nathan Whitehorn wrote:
>>>>>>> Author: nwhitehorn
>>>>>>> Date: Wed Mar  2 16:06:57 2011
>>>>>>> New Revision: 219181
>>>>>>> URL: http://svn.freebsd.org/changeset/base/219181
>>>>>>>
>>>>>>> Log:
>>>>>>>   Add additional release makefile for bsdinstall-based media, along with
>>>>>>>   support files. This does not change the default behavior of anything.
>>>>>>>
>>>>>>>   To make bsdinstall-based media, pre-build world and GENERIC, then run
>>>>>>>   the release target in Makefile.bsdinstall.
>>>>>> Are you planning on keeping the current 'make release' behavior of building a
>>>>>> full chroot and doing a clean build in the chroot to build a release?  That
>>>>>> is, is 'Makefile.bsdinstall' just a temporary shortcut for building test
>>>>>> releases or is that the final replacement for 'release/Makefile'?
>>>>> It was intended (modulo memstick building, docs, and some miscellaneous
>>>>> cleanup) to be the final replacement for release/Makefile. In my
>>>>> experience, the automatic fetching, clean build, and chroot was a major
>>>>> impediment to easily making installation media for users to test
>>>>> patches. I figured that if people (e.g. re@) really want a totally clean
>>>>> tree, checking one out by hand and building from there didn't seem like
>>>>> an enormous obstacle.
>>>>>
>>>>> If you think it's a really important feature, I'm happy to add it back,
>>>>> however.
>>>> I think it is a very important feature to ensure release builds are not
>>>> polluted by local changes in /etc/src.conf, etc.  I think it would be good
>>>> to support both models perhaps, but for our official release builds I think
>>>> we need the clean environment.  I certainly use 'make release' now for my
>>>> own custom FooBSD builds to get a clean environment.
>>>>
>>> Agreed entirely.  I'd consider it a major bug if the insulated release environment went away, especially since I'm switching release building at Yahoo to use it.  There are plenty of shortcuts available in the script to reduce the time overhead for quick turnaround testing.
>> To me, there's a distinction between "release building" and "make bootable media", and I like the suggestion to support both. One option would be that we keep the "make cdrom" target as is, but add dependencies, and then have a "release" target that actually the chroot setup. Another would be to keep the Makefile as-is, but to add a shell script that does the version control checkout, building, chroot setup, etc., etc. Would you have a preference there?
>> -Nathan
> I've been using the existing /usr/src/release/Makefile for 10 years, so it's pretty ingrained in me; I'm reluctant to embrace change =-)  That being said, yeah, I can see how there can be some improved modularization between obtaining the src tree, setting up the chroot, generating object bits, and packaging those bits onto release media.  Those functional splits already exist within the Makefile, but probably aren't too clear unless you're very familiar with all of the sub-targets and control variables.  If you wanted to clean this up and provide some clearer modularization, I think it could be a good thing.

With that (qualified :P) support, I'll mock up something and run it by 
you in the next few days.
-Nathan


More information about the svn-src-head mailing list