From owner-svn-src-projects@FreeBSD.ORG Sat Mar 1 18:09:39 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 919805DD; Sat, 1 Mar 2014 18:09:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 44A5B10CC; Sat, 1 Mar 2014 18:09:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s21I9cnu094245; Sat, 1 Mar 2014 18:09:38 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s21I9csI094231; Sat, 1 Mar 2014 18:09:38 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201403011809.s21I9csI094231@svn.freebsd.org> From: Glen Barber Date: Sat, 1 Mar 2014 18:09:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r262662 - projects/release-embedded/release X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Mar 2014 18:09:39 -0000 Author: gjb Date: Sat Mar 1 18:09:38 2014 New Revision: 262662 URL: http://svnweb.freebsd.org/changeset/base/262662 Log: Allow skipping the chroot buildworld/installworld/distribution. The purpose of this is not to re-use the build environment, but to allow skipping redundant stages if the build environment exists via alternate means. For snapshot builds, a single amd64 userland is built for all non-i386 builds as part of a wrapper around release.sh, and the resulting userland is installed into CHROOTDIR for each architecture. Without this change, a buildworld would happen for each architecture being built from the branch. For head/, there are currently 12 individual builds across all architectures, which means 12 repeated steps to set up the build environment, all using the same svn revision, and all with the same resulting userland. Allowing a way to skip the redundant provides a significant reduction in overall build time when building more than one architecture release. The wrapper script has been patching release.sh to eliminate the redundancy, and this commit eliminates the need to use any local patches to release.sh. Sponsored by: The FreeBSD Foundation Modified: projects/release-embedded/release/release.conf.sample projects/release-embedded/release/release.sh Modified: projects/release-embedded/release/release.conf.sample ============================================================================== --- projects/release-embedded/release/release.conf.sample Sat Mar 1 17:55:20 2014 (r262661) +++ projects/release-embedded/release/release.conf.sample Sat Mar 1 18:09:38 2014 (r262662) @@ -55,3 +55,7 @@ PORTBRANCH="ports/head@rHEAD" ## build chroot environment. #EMBEDDED_WORLD_FLAGS="" +## Set to skip the chroot environment buildworld/installworld/distribution +## step if it is expected the build environment will exist via alternate +## means. +#CHROOTBUILD_SKIP= Modified: projects/release-embedded/release/release.sh ============================================================================== --- projects/release-embedded/release/release.sh Sat Mar 1 17:55:20 2014 (r262661) +++ projects/release-embedded/release/release.sh Sat Mar 1 18:09:38 2014 (r262662) @@ -190,12 +190,14 @@ if [ "x${NOPORTS}" = "x" ]; then ${VCSCMD} ${PORTBRANCH} ${CHROOTDIR}/usr/ports fi -cd ${CHROOTDIR}/usr/src -env ${CHROOT_MAKEENV} make ${CHROOT_WMAKEFLAGS} buildworld -env ${CHROOT_MAKEENV} make ${CHROOT_IMAKEFLAGS} installworld \ - DESTDIR=${CHROOTDIR} -env ${CHROOT_MAKEENV} make ${CHROOT_DMAKEFLAGS} distribution \ - DESTDIR=${CHROOTDIR} +if [ -z ${CHROOTBUILD_SKIP} ]; then + cd ${CHROOTDIR}/usr/src + env ${CHROOT_MAKEENV} make ${CHROOT_WMAKEFLAGS} buildworld + env ${CHROOT_MAKEENV} make ${CHROOT_IMAKEFLAGS} installworld \ + DESTDIR=${CHROOTDIR} + env ${CHROOT_MAKEENV} make ${CHROOT_DMAKEFLAGS} distribution \ + DESTDIR=${CHROOTDIR} +fi mount -t devfs devfs ${CHROOTDIR}/dev cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf trap "umount ${CHROOTDIR}/dev" EXIT # Clean up devfs mount on exit