svn commit: r364890 - user/gjb/thermite-git
Glen Barber
gjb at FreeBSD.org
Thu Aug 27 21:09:18 UTC 2020
Author: gjb
Date: Thu Aug 27 21:09:17 2020
New Revision: 364890
URL: https://svnweb.freebsd.org/changeset/base/364890
Log:
Update thermite-git/thermite.sh to build from git, plus many
other various optimizations.
Sponsored by: Rubicon Communications, LLC (netgate.com)
Modified:
user/gjb/thermite-git/thermite.sh
Modified: user/gjb/thermite-git/thermite.sh
==============================================================================
--- user/gjb/thermite-git/thermite.sh Thu Aug 27 21:08:23 2020 (r364889)
+++ user/gjb/thermite-git/thermite.sh Thu Aug 27 21:09:17 2020 (r364890)
@@ -188,31 +188,32 @@ zfs_create_tree() {
[ ! -z $(eval echo \${zfs_${_tree}_seed_${rev}_${type}}) ] && return 0
case ${_tree} in
src)
- _svnsrc="${SVNROOT}/${SRCBRANCH}"
+ _gitsrc="${GITROOT}/${GITSRC}"
;;
doc)
[ ! -z ${NODOC} ] && return 0
- _svnsrc="${SVNROOT}/${DOCBRANCH}"
+ _gitsrc="${GITROOT}/${GITDOC}"
;;
ports)
[ ! -z ${NOPORTS} ] && return 0
- _svnsrc="${SVNROOT}/${PORTBRANCH}"
+ _gitsrc="${GITROOT}/${GITPORTS}"
;;
*)
info "Unknown source tree type: ${_tree}"
return 0
;;
esac
+ TREE="$(echo ${_tree} | tr '[:lower:]' '[:upper:]')"
_clone="${zfs_parent}/${rev}-${_tree}-${type}"
_mount="/${zfs_mount}/${rev}-${_tree}-${type}"
info "Creating ${_clone}"
zfs create -o atime=off -o mountpoint=${_mount} ${_clone}
- info "Source checkout ${_svnsrc} to ${_mount}"
- svn co -q ${_svnsrc} ${_mount}
+ info "Source checkout ${_gitsrc} to ${_mount}"
+ git clone -q -b ${TREEBRANCH} ${_gitsrc} ${_mount}
info "Creating ZFS snapshot ${_clone}@clone"
zfs snapshot ${_clone}@clone
eval zfs_${_tree}_seed_${rev}_${type}=1
- unset _clone _mount _tree _svnsrc
+ unset _clone _mount _tree _gitsrc
}
zfs_bootstrap() {
@@ -230,17 +231,30 @@ zfs_finish_bootstrap() {
}
prebuild_setup() {
- info "Creating ${logdir}"
- mkdir -p ${logdir}
- info "Creating ${srcdir}"
- mkdir -p ${srcdir}
- info "Creating ${chroots}"
- mkdir -p ${chroots}
- info "Checking out src/release to ${srcdir}"
- svn co -q --force svn://svn.freebsd.org/base/${releasesrc}/release \
- ${srcdir}
- info "Reverting any changes to ${srcdir}"
- svn revert -R ${srcdir}
+ [ ! -z $(eval echo \${zfs_${_tree}_prebuild_${rev}_${type}}) ] && return 0
+ _mount="${logdir}"
+ _clone="${zfs_parent}/${rev}-logs-${type}"
+ mkdir -p ${_mount}
+ info "Creating ${_mount}"
+ zfs create -o atime=off -o mountpoint=${_mount} ${_clone}
+
+ _mount="${chroots}"
+ _clone="${zfs_parent}/${rev}-chroots-${type}"
+ mkdir -p ${_mount}
+ info "Creating ${_mount}"
+ zfs create -o atime=off -o mountpoint=${_mount} ${_clone}
+
+ _mount="${srcdir}"
+ _clone="${zfs_parent}/${rev}-src-${type}"
+ mkdir -p ${_mount}
+ info "Creating ${_mount}"
+ zfs create -o atime=off -o mountpoint=${_mount} ${_clone}
+
+ eval zfs_${_chrootarch}_prebuild_${rev}_${type}=1
+
+ info "Checking out tree to ${srcdir}"
+ git clone -q -b ${releasesrc} ${GITROOT}/${GITSRC} ${srcdir}
+
}
# Email log output when a stage has completed
@@ -282,12 +296,6 @@ ftp_stage() {
info "Staging for ftp: ${_build}"
[ ! -z "${EMBEDDEDBUILD}" ] && export EMBEDDEDBUILD
[ ! -z "${BOARDNAME}" ] && export BOARDNAME
- [ ! -z "${BUILDSVNREV}" ] && export SVNREVISION=${BUILDSVNREV}
- [ ! -z "${BUILDDATE}" ] && export BUILDDATE
- [ -z "${SVNREVISION}" -a -e "${scriptdir}/svnrev_src" ] && \
- export SVNREVISION="$(cat ${scriptdir}/svnrev_src)"
- [ -z "${BUILDDATE}" -a -e "${scriptdir}/builddate" ] && \
- export BUILDDATE="$(cat ${scriptdir}/builddate)"
chroot ${CHROOTDIR} make -C /usr/src/release \
-f Makefile.mirrors \
TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
@@ -313,7 +321,7 @@ ftp_stage() {
mkdir -p "${ftpdir}/${_type}"
rsync -avH ${CHROOTDIR}/R/ftp-stage/${_type}/* \
${ftpdir}/${_type}/ >> ${logdir}/${_build}.log 2>&1
- unset BOARDNAME BUILDDATE EMBEDDEDBUILD SVNREVISION WITH_VMIMAGES
+ unset BOARDNAME EMBEDDEDBUILD WITH_VMIMAGES
return 0
}
@@ -325,7 +333,7 @@ build_release() {
info "Building release: ${_build}"
set >> ${logdir}/${_build}.log
env -i __BUILDCONFDIR="${__BUILDCONFDIR}" \
- /bin/sh ${srcdir}/release.sh -c ${_conf} \
+ /bin/sh ${srcdir}/release/release.sh -c ${_conf} \
>> ${logdir}/${_build}.log 2>&1
ftp_stage
@@ -343,7 +351,7 @@ parallelbuild_release() {
info "Building release: ${_build}"
set >> ${logdir}/${_build}.log
env -i __BUILDCONFDIR="${__BUILDCONFDIR}" \
- /bin/sh ${srcdir}/release.sh -c ${_conf} \
+ /bin/sh ${srcdir}/release/release.sh -c ${_conf} \
>> ${logdir}/${_build}.log 2>&1
ftp_stage
@@ -364,17 +372,16 @@ upload_ec2_ami() {
_EC2TARGET_ARCH=amd64
;;
aarch64:GENERIC)
- # XXX: temporary until support for stable/11 is added
+ # stable/11 arm64/aarch64 is not supported
case ${rev} in
- 13|12)
+ 11)
+ return 0
+ ;;
+ *)
_EC2TARGET=arm64
_EC2TARGET_ARCH=aarch64
;;
- *)
- return 0
- ;;
esac
- # end XXX
;;
*)
return 0
@@ -483,10 +490,6 @@ upload_gce_image() {
# Install amd64/i386 "seed" chroots for all branches being built.
install_chroots() {
source_config || return 0
- if [ ${rev} -le 8 ]; then
- info "This script does not support rev=${rev}"
- return 0
- fi
case ${arch} in
i386)
_chrootarch="i386"
@@ -513,6 +516,29 @@ install_chroots() {
DESTDIR=${_mount} \
installworld distribution >> \
${logdir}/${_build}.log 2>&1
+
+ ## XXX: Temporary hack to install git from pkg(8) instead of
+ ## building from ports.
+ mount -t devfs devfs ${_mount}/dev
+ cp /etc/resolv.conf ${_mount}/etc/resolv.conf
+ env ASSUME_ALWAYS_YES=yes pkg -c ${_mount} install -y devel/git
+ env ASSUME_ALWAYS_YES=yes pkg -c ${_mount} clean -y
+ #mkdir -p ${_mount}/usr/ports
+ #mount -t nullfs /releng/13-ports-snap ${_mount}
+ #GITUNSETOPTS="CONTRIB CURL CVS GITWEB GUI HTMLDOCS"
+ #GITUNSETOPTS="${GITUNSETOPTS} ICONV NLS P4 PERL"
+ #GITUNSETOPTS="${GITUNSETOPTS} SEND_EMAIL SUBTREE SVN"
+ #GITUNSETOPTS="${GITUNSETOPTS} PCRE PCRE2"
+ #eval chroot ${_mount} env OPTIONS_UNSET=\"${GITUNSETOPTS}\" \
+ #make -C /usr/ports/devel/git FORCE_PKG_REGISTER=1 \
+ # WRKDIRPREFIX=/tmp/ports \
+ # DISTDIR=/tmp/distfiles \
+ # install clean distclean
+ #rm -f ${_mount}/etc/resolv.conf
+ #umount ${_mount}/usr/ports
+ umount ${_mount}/dev
+ # End XXX
+
zfs snapshot ${_clone}@clone
eval zfs_${_chrootarch}_seed_${rev}_${type}=1
unset _build _dest _objdir _srcdir _clone _mount
@@ -544,10 +570,6 @@ zfs_clone_chroots() {
# Build amd64/i386 "seed" chroots for all branches being built.
build_chroots() {
source_config || return 0
- if [ ${rev} -le 9 ]; then
- info "This script does not support rev ${rev}"
- return 0
- fi
case ${arch} in
i386)
_chrootarch="i386"
@@ -561,15 +583,8 @@ build_chroots() {
_srcdir="${chroots}/${rev}/${_chrootarch}/${type}"
_objdir="${chroots}/${rev}-obj/${_chrootarch}/${type}"
mkdir -p "${_srcdir}"
- # Source the build configuration file to get
- # the SRCBRANCH to use
- if [ -z ${zfs_bootstrap_done} ]; then
- # Skip svn checkout, the trees are there.
- info "SVN checkout ${SRCBRANCH} for ${_chrootarch} ${type}"
- svn co -q ${SVNROOT}/${SRCBRANCH} \
- ${_srcdir} \
- >> ${logdir}/${_build}.log 2>&1
- fi
+ mkdir -p "${_objdir}"
+ zfs clone -p -o mountpoint=$(realpath ${_srcdir}) ${zfs_parent}/${rev}-src-${type}@clone ${zfs_parent}$(realpath ${_srcdir}) || exit 1
info "Building $(realpath ${_srcdir}) world"
env MAKEOBJDIRPREFIX=${_objdir} \
make -C ${_srcdir} ${WORLD_FLAGS} \
@@ -584,7 +599,7 @@ build_chroots() {
}
main() {
- releasesrc="head"
+ releasesrc="main"
export __BUILDCONFDIR="$(dirname $(realpath ${0}))"
while getopts "c:d" opt; do
@@ -606,7 +621,7 @@ main() {
use_zfs=1
check_use_zfs
zfs_bootstrap_done=
- prebuild_setup
+ runall prebuild_setup
runall truncate_logs
zfs_bootstrap
runall zfs_mount_src
More information about the svn-src-user
mailing list