From 349cb7dbf4841f1e0872e2dc7d69e80dc8e7838e Mon Sep 17 00:00:00 2001 From: gjb Date: Mon, 4 Dec 2017 15:28:07 +0000 Subject: [PATCH] MFC r326315, r326330, r326331, r326412: r326315: Set DISTDIR and WRKDIRPREFIX when building ports within the chroot(8) to avoid mtime changes within the ports checkout, which can cause checksum differences. r326330: Add a comment to release/release.conf.sample documenting EMBEDDEDPORTS. [1] Remove and update stale documentation from release(7) while here. r326331: Correct a comment. r326412: Fix port build flags passed to make(1) after r326315, where it was missed for embedded image builds. PR: 206344 [1] Sponsored by: The FreeBSD Foundation git-svn-id: svn://svn.freebsd.org/base/stable/10@326534 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- release/release.conf.sample | 14 ++++++++++++ release/release.sh | 14 ++++++++---- share/man/man7/release.7 | 44 +++++++++++++++---------------------- 3 files changed, 42 insertions(+), 30 deletions(-) diff --git a/release/release.conf.sample b/release/release.conf.sample index 9009e9d9b..11b61d0a2 100644 --- a/release/release.conf.sample +++ b/release/release.conf.sample @@ -51,6 +51,20 @@ PORTBRANCH="ports/head@rHEAD" ## Set when building embedded images. #EMBEDDEDBUILD= +## Set to a list of ports required to build embedded system-on-chip +## images, such as sysutils/u-boot-rpi. +#EMBEDDEDPORTS= + +## Set to the hardware platform of the target userland. This value +## is passed to make(1) to set the TARGET (value of uname -m) to cross +## build. +#EMBEDDED_TARGET= + +## Set to the machine processor architecture of the target userland. +## This value is passed to make(1) to set the TARGET_ARCH (value of uname -p) +## to cross build. +#EMBEDDED_TARGET_ARCH= + ## Set to skip the chroot environment buildworld/installworld/distribution ## step if it is expected the build environment will exist via alternate ## means. diff --git a/release/release.sh b/release/release.sh index eec37255b..a6797cda9 100755 --- a/release/release.sh +++ b/release/release.sh @@ -274,8 +274,11 @@ extra_chroot_setup() { PBUILD_FLAGS="OSVERSION=${_OSVERSION} BATCH=yes" PBUILD_FLAGS="${PBUILD_FLAGS} UNAME_r=${UNAME_r}" PBUILD_FLAGS="${PBUILD_FLAGS} OSREL=${REVISION}" - chroot ${CHROOTDIR} make -C /usr/ports/textproc/docproj \ - ${PBUILD_FLAGS} OPTIONS_UNSET="FOP IGOR" \ + PBUILD_FLAGS="${PBUILD_FLAGS} WRKDIRPREFIX=/tmp/ports" + PBUILD_FLAGS="${PBUILD_FLAGS} DISTDIR=/tmp/distfiles" + chroot ${CHROOTDIR} env ${PBUILD_FLAGS} make -C \ + /usr/ports/textproc/docproj \ + OPTIONS_UNSET="FOP IGOR" \ FORCE_PKG_REGISTER=1 \ install clean distclean fi @@ -288,9 +291,12 @@ extra_chroot_setup() { PBUILD_FLAGS="OSVERSION=${_OSVERSION} BATCH=yes" PBUILD_FLAGS="${PBUILD_FLAGS} UNAME_r=${UNAME_r}" PBUILD_FLAGS="${PBUILD_FLAGS} OSREL=${REVISION}" + PBUILD_FLAGS="${PBUILD_FLAGS} WRKDIRPREFIX=/tmp/ports" + PBUILD_FLAGS="${PBUILD_FLAGS} DISTDIR=/tmp/distfiles" for _PORT in ${EMBEDDEDPORTS}; do - eval chroot ${CHROOTDIR} make -C /usr/ports/${_PORT} \ - FORCE_PKG_REGISTER=1 ${PBUILD_FLAGS} install clean distclean + eval chroot ${CHROOTDIR} env ${PBUILD_FLAGS} make -C \ + /usr/ports/${_PORT} \ + FORCE_PKG_REGISTER=1 install clean distclean done fi diff --git a/share/man/man7/release.7 b/share/man/man7/release.7 index b23d2080e..c657ea939 100644 --- a/share/man/man7/release.7 +++ b/share/man/man7/release.7 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 28, 2015 +.Dd November 28, 2017 .Dt RELEASE 7 .Os .Sh NAME @@ -305,7 +305,6 @@ variables are relevant only to release builds for embedded systems: .It Va EMBEDDEDBUILD Set to a non-null value to enable functionality for embedded device release builds. -.Pq This option is considered highly experimental. .Pp When set, .Va WITH_DVD @@ -313,15 +312,15 @@ is unset, and .Va NODOC is defined. Additionally, -.Va XDEV +.Va EMBEDDED_TARGET and -.Va XDEV_ARCH +.Va EMBEDDED_TARGET_ARCH must also be defined. When the build environment is created, .Fa release.sh runs a separate build script located in an architecture-specific directory in -.Pa src/release/${XDEV}/ . +.Pa src/release/${EMBEDDED_TARGET}/ . .It Va EMBEDDEDPORTS Set to the list of any ports that are required for the target device in the format of @@ -329,27 +328,20 @@ in the format of The .Fa devel/subversion port is built by default. -.It Va CROCHETSRC -Set to the source URL for the Crochet build tool. -.It Va CROCHETBRANCH -Set to the subversion branch from -.Va ${CROCHETSRC} -to use. -Defaults to -.Pa trunk . -.It Va UBOOTSRC -Set to the source URL of u-boot, if required. -.It Va UBOOTBRANCH -Set to the subversion branch from -.Va ${UBOOTSRC} -to use. -Defaults to -.Pa trunk . -.It Va UBOOTDIR -Set to the target directory within -.Va ${CHROOTDIR} -to check out -.Va ${UBOOTSRC}/${UBOOTBRANCH} . +.It Va EMBEDDED_TARGET +When set, its value is passed to +.Xr make 1 +to set the +.Va TARGET +.Pq value of Cm uname Fl m +to cross build the target userland. +.It Va EMBEDDED_TARGET_ARCH +When set, its value is passed to +.Xr make 1 +to set the +.Va TARGET_ARCH +.Pq value of Cm uname Fl p +to cross build the target userland. .El .Sh VIRTUAL MACHINE DISK IMAGES The following -- 2.42.0