From owner-freebsd-bugs@FreeBSD.ORG Tue Jul 2 09:20:01 2013 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 5649B5F2 for ; Tue, 2 Jul 2013 09:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 3D1851F28 for ; Tue, 2 Jul 2013 09:20:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r629K1ws075781 for ; Tue, 2 Jul 2013 09:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r629K1Vl075780; Tue, 2 Jul 2013 09:20:01 GMT (envelope-from gnats) Resent-Date: Tue, 2 Jul 2013 09:20:01 GMT Resent-Message-Id: <201307020920.r629K1Vl075780@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Anes Mukhametov Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 2E671569; Tue, 2 Jul 2013 09:13:36 +0000 (UTC) (envelope-from amuhametov@monitoring.rambler.ru) Received: from monitoring.rambler.ru (monitoring.rambler.ru [81.19.75.233]) by mx1.freebsd.org (Postfix) with ESMTP id 6E2E61EE5; Tue, 2 Jul 2013 09:13:34 +0000 (UTC) Received: from monitoring.rambler.ru (localhost [127.0.0.1]) by monitoring.rambler.ru (8.14.4/8.14.4) with ESMTP id r6297pGp043124; Tue, 2 Jul 2013 13:07:51 +0400 (MSK) (envelope-from amuhametov@monitoring.rambler.ru) Received: (from amuhametov@localhost) by monitoring.rambler.ru (8.14.4/8.14.4/Submit) id r6297p4S043117; Tue, 2 Jul 2013 13:07:51 +0400 (MSK) (envelope-from amuhametov) Message-Id: <201307020907.r6297p4S043117@monitoring.rambler.ru> Date: Tue, 2 Jul 2013 13:07:51 +0400 (MSK) From: Anes Mukhametov To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.113 Subject: conf/180192: [PATCH] release/release.sh bugfixes+small improvements Cc: gjb@freebsd.org X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Anes Mukhametov List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jul 2013 09:20:01 -0000 >Number: 180192 >Category: conf >Synopsis: [PATCH] release/release.sh bugfixes+small improvements >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Jul 02 09:20:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Anes Mukhametov >Release: FreeBSD 9.1-STABLE amd64 >Organization: >Environment: >Description: Changeset for release/release.sh with updates in release/release.conf.sample. 1. Fixed bug when textproc/docproj was not installed when NODOCS was unset, added some cleanup. 2. Fixed bug when NOPORTS and NODOCS were passed as make vars even if they were unset. They should not pass because of definedness check. 3. Added www/w3m to workaround docs build failures. 4. Added WITHOUT_X11=yes WITHOUT_PYTHON=yes to docproj and w3m make variables. 5. Added support of multiple kerneles build. 6. Added SRC_FORCE_CHECKOUT config variable which tells to checkout with "--force" option. Useful when one puts custom kernels to sys/${TARGET}/conf before source tree checkout. >How-To-Repeat: >Fix: --- release.diff begins here --- Index: release.conf.sample =================================================================== --- base/head/release/release.conf.sample.orig (revision 252465) +++ base/head/release/release.conf.sample (working copy) @@ -14,6 +14,9 @@ DOCBRANCH="doc/head" PORTBRANCH="ports/head" +## Run svn co --force for src checkout. +#SRC_FORCE_CHECKOUT=yes + ## Set the src/, ports/, and doc/ revisions. SRCREVISION="-rHEAD" DOCREVISION="-rHEAD" @@ -23,6 +26,8 @@ #TARGET="amd64" #TARGET_ARCH="amd64" #KERNEL="GENERIC" +##Multiple kernels may be set +#KERNEL="GENERIC XENHVM" ## Set to specify a custom make.conf and/or src.conf #MAKE_CONF="/etc/local/make.conf" Index: release.sh =================================================================== --- base/head/release/release.sh.orig (revision 252465) +++ base/head/release/release.sh (working copy) @@ -45,6 +45,10 @@ DOCBRANCH="doc/head" PORTBRANCH="ports/head" +# Sometimes one needs to checkout src with --force svn option. +# If custom kernel configs copied to src tree before checkout, e.g. +SRC_FORCE_CHECKOUT= + # The default src/, doc/, and ports/ revisions. SRCREVISION="-rHEAD" DOCREVISION="-rHEAD" @@ -109,6 +113,25 @@ done shift $(($OPTIND - 1)) +# If PORTS is set and NODOC is unset, force NODOC=yes because the ports tree +# is required to build the documentation set. +if [ "x${NOPORTS}" != "x" ] && [ "x${NODOC}" = "x" ]; then + echo "*** NOTICE: Setting NODOC=1 since ports tree is required" + echo " and NOPORTS is set." + NODOC=yes +fi + +# If NOPORTS and/or NODOC are unset, they must not pass to make as variables. +# The release makefile verifies definedness of NOPORTS/NODOC variables +# instead of their values. +DOCPORTS= +if [ "x${NOPORTS}" != "x" ]; then + DOCPORTS="NOPORTS=yes " +fi +if [ "x${NODOC}" != "x" ]; then + DOCPORTS="${DOCPORTS}NODOC=yes" +fi + # The aggregated build-time flags based upon variables defined within # this file, unless overridden by release.conf. In most cases, these # will not need to be changed. @@ -118,16 +141,14 @@ CHROOT_IMAKEFLAGS="${CONF_FILES}" CHROOT_DMAKEFLAGS="${CONF_FILES}" RELEASE_WMAKEFLAGS="${MAKE_FLAGS} ${WORLD_FLAGS} ${ARCH_FLAGS} ${CONF_FILES}" -RELEASE_KMAKEFLAGS="${MAKE_FLAGS} ${KERNEL_FLAGS} KERNCONF=${KERNEL} ${ARCH_FLAGS} ${CONF_FILES}" -RELEASE_RMAKEFLAGS="${ARCH_FLAGS} KERNCONF=${KERNEL} ${CONF_FILES} \ - NODOC=${NODOC} NOPORTS=${NOPORTS}" +RELEASE_KMAKEFLAGS="${MAKE_FLAGS} ${KERNEL_FLAGS} KERNCONF=\"${KERNEL}\" ${ARCH_FLAGS} ${CONF_FILES}" +RELEASE_RMAKEFLAGS="${ARCH_FLAGS} KERNCONF=\"${KERNEL}\" ${CONF_FILES} \ + ${DOCPORTS}" -# If PORTS is set and NODOC is unset, force NODOC=yes because the ports tree -# is required to build the documentation set. -if [ "x${NOPORTS}" != "x" ] && [ "x${NODOC}" = "x" ]; then - echo "*** NOTICE: Setting NODOC=1 since ports tree is required" - echo " and NOPORTS is set." - NODOC=1 +# Force src checkout if configured +FORCE_SRC_KEY= +if [ "x${SRC_FORCE_CHECKOUT}" != "x" ]; then + FORCE_SRC_KEY="--force" fi if [ ! ${CHROOTDIR} ]; then @@ -144,7 +165,7 @@ mkdir -p ${CHROOTDIR}/usr -svn co ${SVNROOT}/${SRCBRANCH} ${CHROOTDIR}/usr/src $SRCREVISION +svn co ${FORCE_SRC_KEY} ${SVNROOT}/${SRCBRANCH} ${CHROOTDIR}/usr/src $SRCREVISION if [ "x${NODOC}" = "x" ]; then svn co ${SVNROOT}/${DOCBRANCH} ${CHROOTDIR}/usr/doc $DOCREVISION fi @@ -164,10 +185,12 @@ build_doc_ports() { ## Trick the ports 'run-autotools-fixup' target to do the right thing. _OSVERSION=$(sysctl -n kern.osreldate) - if [ -d ${CHROOTDIR}/usr/doc ] && [ "x${NODOC}" != "x" ]; then - PBUILD_FLAGS="OSVERSION=${_OSVERSION} WITHOUT_JADETEX=yes BATCH=yes" + if [ -d ${CHROOTDIR}/usr/doc ] && [ "x${NODOC}" = "x" ]; then + PBUILD_FLAGS="OSVERSION=${_OSVERSION} WITHOUT_JADETEX=yes WITHOUT_X11=yes WITHOUT_PYTHON=yes BATCH=yes" chroot ${CHROOTDIR} make -C /usr/ports/textproc/docproj \ - ${PBUILD_FLAGS} install + ${PBUILD_FLAGS} install clean distclean + #w3m needed to build docs + chroot ${CHROOTDIR} make -C /usr/ports/www/w3m ${PBUILD_FLAGS} install clean distclean fi } @@ -192,10 +215,10 @@ fi chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_WMAKEFLAGS} buildworld -chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_KMAKEFLAGS} buildkernel -chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ +eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_KMAKEFLAGS} buildkernel +eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ release RELSTRING=${RELSTRING} -chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ +eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ install DESTDIR=/R RELSTRING=${RELSTRING} cd ${CHROOTDIR}/R --- release.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: