Merge the projects/release-git branch to head.
This allows building 13.x from Git instead of Subversion. No MFC to stable branches is planned at this time. [1] Discussed with: git working group [1] Sponsored by: Rubicon Communications, LLC (netgate.com)
This commit is contained in:
commit
92fb4f8a61
@ -510,6 +510,15 @@ VCS_REVISION= $$(echo r${_VCS_REVISION})
|
|||||||
.export VCS_REVISION
|
.export VCS_REVISION
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
.if !defined(GIT_CMD) || empty(GIT_CMD)
|
||||||
|
. for _P in /usr/bin /usr/local/bin
|
||||||
|
. if exists(${_P}/git)
|
||||||
|
GIT_CMD= ${_P}/git
|
||||||
|
. endif
|
||||||
|
. endfor
|
||||||
|
.export GIT_CMD
|
||||||
|
.endif
|
||||||
|
|
||||||
.if !defined(OSRELDATE)
|
.if !defined(OSRELDATE)
|
||||||
.if exists(/usr/include/osreldate.h)
|
.if exists(/usr/include/osreldate.h)
|
||||||
OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \
|
OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \
|
||||||
|
@ -90,15 +90,6 @@ EXTRA_PACKAGES+= src.txz
|
|||||||
.endif
|
.endif
|
||||||
.if !defined(NODOC)
|
.if !defined(NODOC)
|
||||||
EXTRA_PACKAGES+= reldoc
|
EXTRA_PACKAGES+= reldoc
|
||||||
. if !defined(SVN) || empty(SVN)
|
|
||||||
. for S in svn svnlite
|
|
||||||
. for D in /usr/local/bin /usr/bin
|
|
||||||
. if(exists(${D}/${S}))
|
|
||||||
SVN?= ${D}/${S}
|
|
||||||
. endif
|
|
||||||
. endfor
|
|
||||||
. endfor
|
|
||||||
. endif
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
RELEASE_TARGETS= ftp
|
RELEASE_TARGETS= ftp
|
||||||
@ -173,7 +164,6 @@ ports.txz:
|
|||||||
reldoc:
|
reldoc:
|
||||||
cd ${DOCDIR}/en_US.ISO8859-1/htdocs/releases/${REVISION}R && \
|
cd ${DOCDIR}/en_US.ISO8859-1/htdocs/releases/${REVISION}R && \
|
||||||
env MAN4DIR=${WORLDDIR}/share/man/man4 \
|
env MAN4DIR=${WORLDDIR}/share/man/man4 \
|
||||||
SVN=${SVN} \
|
|
||||||
_BRANCH=${BRANCH} \
|
_BRANCH=${BRANCH} \
|
||||||
${MAKE} all install clean "FORMATS=html txt" \
|
${MAKE} all install clean "FORMATS=html txt" \
|
||||||
INSTALL_COMPRESSED='' URLS_ABSOLUTE=YES DOCDIR=${.OBJDIR}/rdoc \
|
INSTALL_COMPRESSED='' URLS_ABSOLUTE=YES DOCDIR=${.OBJDIR}/rdoc \
|
||||||
@ -336,4 +326,5 @@ release-install:
|
|||||||
cd ${DESTDIR} && sha512 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA512
|
cd ${DESTDIR} && sha512 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA512
|
||||||
cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256
|
cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256
|
||||||
|
|
||||||
|
.include "${.CURDIR}/Makefile.inc1"
|
||||||
.include "${.CURDIR}/Makefile.vm"
|
.include "${.CURDIR}/Makefile.vm"
|
||||||
|
@ -17,7 +17,7 @@ AZURE${VAR}!= grep -E ^AZURE${VAR} ${AZURE_UPLOAD_CONF} | awk -F' ' '{print $$2}
|
|||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
|
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
|
||||||
SNAPSHOT_DATE!= date +-%Y-%m-%d
|
SNAPSHOT_DATE!= date +-${BUILDDATE}
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
AZURE_TARGET:= ${OSRELEASE}${SNAPSHOT_DATE}.vhd
|
AZURE_TARGET:= ${OSRELEASE}${SNAPSHOT_DATE}.vhd
|
||||||
|
@ -5,32 +5,8 @@
|
|||||||
# Makefile for creating an EC2 AMI from a disk image.
|
# Makefile for creating an EC2 AMI from a disk image.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Figure out where SVN is
|
|
||||||
.if !defined(SVN_CMD) || empty(SVN_CMD)
|
|
||||||
. for _P in /usr/bin /usr/local/bin
|
|
||||||
. for _S in svn svnlite
|
|
||||||
. if exists(${_P}/${_S})
|
|
||||||
SVN_CMD= ${_P}/${_S}
|
|
||||||
. endif
|
|
||||||
. endfor
|
|
||||||
. endfor
|
|
||||||
.endif
|
|
||||||
.if exists(${SRCTOP}/.svn)
|
|
||||||
. if empty(EC2_SVNBRANCH)
|
|
||||||
EC2_SVNBRANCH!= ${SVN_CMD} info --show-item relative-url ${WORLDDIR} 2>/dev/null | sed -e 's/\^\///'
|
|
||||||
. export EC2_SVNBRANCH
|
|
||||||
. endif
|
|
||||||
. if empty(EC2_SVNREV)
|
|
||||||
EC2_SVNREV!= ${SVN_CMD} info --show-item last-changed-revision ${WORLDDIR} 2>/dev/null || true
|
|
||||||
. export EC2_SVNREV
|
|
||||||
. endif
|
|
||||||
.else
|
|
||||||
EC2_SVNBRANCH= unknown
|
|
||||||
EC2_SVNREV= unknown
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" || ${BRANCH} == "PRERELEASE"
|
.if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" || ${BRANCH} == "PRERELEASE"
|
||||||
AMINAMESUFFIX!= date +-%Y-%m-%d
|
AMINAMESUFFIX!= date +-${BUILDDATE}
|
||||||
.endif
|
.endif
|
||||||
.if defined(EC2PUBLIC) && !empty(EC2PUBLIC)
|
.if defined(EC2PUBLIC) && !empty(EC2PUBLIC)
|
||||||
PUBLISH= --public
|
PUBLISH= --public
|
||||||
@ -40,7 +16,7 @@ PUBLICSNAP= --publicsnap
|
|||||||
.endif
|
.endif
|
||||||
.if defined(EC2SNSTOPIC) && !empty(EC2SNSTOPIC)
|
.if defined(EC2SNSTOPIC) && !empty(EC2SNSTOPIC)
|
||||||
EC2SNSREL= ${REVISION}-${BRANCH}
|
EC2SNSREL= ${REVISION}-${BRANCH}
|
||||||
EC2SNSVERS= ${EC2_SVNBRANCH}@${EC2_SVNREV}
|
EC2SNSVERS= ${GITBRANCH}@${GITREV}
|
||||||
.endif
|
.endif
|
||||||
.if ${TARGET_ARCH} != "amd64"
|
.if ${TARGET_ARCH} != "amd64"
|
||||||
EC2ARCH= --${TARGET_ARCH:S/aarch64/arm64/}
|
EC2ARCH= --${TARGET_ARCH:S/aarch64/arm64/}
|
||||||
@ -89,7 +65,7 @@ ec2ami: cw-ec2 ${CW_EC2_PORTINSTALL}
|
|||||||
${EC2ARCH} --sriov --ena \
|
${EC2ARCH} --sriov --ena \
|
||||||
${.OBJDIR}/ec2.raw \
|
${.OBJDIR}/ec2.raw \
|
||||||
"${TYPE} ${REVISION}-${BRANCH}-${TARGET}${AMINAMESUFFIX}" \
|
"${TYPE} ${REVISION}-${BRANCH}-${TARGET}${AMINAMESUFFIX}" \
|
||||||
"${TYPE}/${TARGET} ${EC2_SVNBRANCH}@${EC2_SVNREV}" \
|
"${TYPE}/${TARGET} ${GITBRANCH}@${GITREV}" \
|
||||||
${AWSREGION} ${AWSBUCKET} ${AWSKEYFILE} \
|
${AWSREGION} ${AWSBUCKET} ${AWSKEYFILE} \
|
||||||
${EC2SNSTOPIC} ${EC2SNSREL} ${EC2SNSVERS}
|
${EC2SNSTOPIC} ${EC2SNSREL} ${EC2SNSVERS}
|
||||||
@touch ${.TARGET}
|
@touch ${.TARGET}
|
||||||
|
@ -24,8 +24,7 @@ GCE_FAMILY= ${TYPE:tl}-${REVISION:S,.,-,}
|
|||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
|
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
|
||||||
_SNAPSHOT_DATE!= date +%Y%m%d
|
SNAPSHOT_DATE= -v${BUILDDATE}
|
||||||
SNAPSHOT_DATE= -v${_SNAPSHOT_DATE}
|
|
||||||
GCE_FAMILY_SUFX= -snap
|
GCE_FAMILY_SUFX= -snap
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
31
release/Makefile.inc1
Normal file
31
release/Makefile.inc1
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#
|
||||||
|
# $FreeBSD$
|
||||||
|
#
|
||||||
|
|
||||||
|
# Figure out where the git binary is.
|
||||||
|
.for _P in /usr/bin /usr/local/bin
|
||||||
|
. if !defined(GIT_CMD) || empty(GIT_CMD)
|
||||||
|
. if exists(${_P}/git)
|
||||||
|
GIT_CMD= ${_P}/git
|
||||||
|
. endif
|
||||||
|
. endif
|
||||||
|
.endfor
|
||||||
|
.if !defined(GIT_CMD) && empty(GIT_CMD)
|
||||||
|
. error "Git binary not found. Set GIT_CMD appropriately."
|
||||||
|
.endif
|
||||||
|
|
||||||
|
# Set the git branch and hash to export where needed.
|
||||||
|
.if !defined(GITBRANCH) || empty(GITBRANCH)
|
||||||
|
GITBRANCH!= ${GIT_CMD} -C ${.CURDIR} rev-parse --abbrev-ref HEAD 2>/dev/null | sed -e 's/\^\///'
|
||||||
|
.export GITBRANCH
|
||||||
|
.endif
|
||||||
|
.if !defined(GITREV) || empty(GITREV)
|
||||||
|
GITREV!= ${GIT_CMD} -C ${.CURDIR} rev-parse --verify --short HEAD 2>/dev/null || true
|
||||||
|
.export GITREV
|
||||||
|
.endif
|
||||||
|
|
||||||
|
# Set the build date, primarily for snapshot builds.
|
||||||
|
.if !defined(BUILDDATE) || empty(BUILDDATE)
|
||||||
|
BUILDDATE!= date +%Y%m%d
|
||||||
|
.export BUILDDATE
|
||||||
|
.endif
|
@ -19,7 +19,6 @@ FTPDIR?= ${RELEASEDIR}/ftp-stage
|
|||||||
.if exists(${RELEASEDIR})
|
.if exists(${RELEASEDIR})
|
||||||
STAGE_TARGETS?= iso-images-stage
|
STAGE_TARGETS?= iso-images-stage
|
||||||
.endif
|
.endif
|
||||||
SRCBRANCH!= ${SVN_CMD} info --show-item relative-url ${WORLDDIR}
|
|
||||||
|
|
||||||
.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
|
.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
|
||||||
. if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != ""
|
. if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != ""
|
||||||
@ -31,26 +30,10 @@ EMBEDDED= 1
|
|||||||
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
|
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
|
||||||
SNAPSHOT= 1
|
SNAPSHOT= 1
|
||||||
TLD?= ${FTPDIR}/snapshots
|
TLD?= ${FTPDIR}/snapshots
|
||||||
. if !defined(SVNREVISION) || empty(SVNREVISION)
|
.if !defined(BUILDDATE) || empty(BUILDDATE)
|
||||||
. for _D in /usr/bin /usr/local/bin
|
|
||||||
. for _S in svnversion svnliteversion
|
|
||||||
. if exists(${_D}/${_S})
|
|
||||||
SVNVERSION?= ${_D}/${_S}
|
|
||||||
. endif
|
|
||||||
. endfor
|
|
||||||
. endfor
|
|
||||||
. if exists(${SVNVERSION}) && !empty(SVNVERSION)
|
|
||||||
SVNREVISION!= ${SVNVERSION} ${WORLDDIR}/Makefile
|
|
||||||
. endif
|
|
||||||
. endif # !defined(SVNREVISION)
|
|
||||||
. if !defined(BUILDDATE) || empty(BUILDDATE)
|
|
||||||
. if exists(${.CURDIR}/${.OBJDIR}/dist/base/bin/sh)
|
|
||||||
BUILDDATE!= cd ${.CURDIR} && date -j -f '%s' $$(stat -f "%c" ${.OBJDIR}/dist/base/bin/sh) +%Y%m%d
|
|
||||||
. else
|
|
||||||
BUILDDATE!= date +%Y%m%d
|
BUILDDATE!= date +%Y%m%d
|
||||||
. endif
|
.endif
|
||||||
. endif
|
_SNAP_SUFFIX:= ${BUILDDATE}-${GITREV}
|
||||||
_SNAP_SUFFIX:= ${BUILDDATE}-r${SVNREVISION}
|
|
||||||
.else
|
.else
|
||||||
# release
|
# release
|
||||||
SNAPSHOT=
|
SNAPSHOT=
|
||||||
@ -187,8 +170,8 @@ iso-images-stage:
|
|||||||
mkdir -p ${FTP_DIR}
|
mkdir -p ${FTP_DIR}
|
||||||
cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
|
cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
|
||||||
echo ${BUILDDATE} > ${FTP_DIR}/BUILDDATE
|
echo ${BUILDDATE} > ${FTP_DIR}/BUILDDATE
|
||||||
echo ${SRCBRANCH} > ${FTP_DIR}/SRCBRANCH
|
echo ${GITBRANCH} > ${FTP_DIR}/GITBRANCH
|
||||||
echo r${SVNREVISION} > ${FTP_DIR}/REVISION
|
echo ${GITREV} > ${FTP_DIR}/REVISION
|
||||||
cd ${TLD}/${TARGET} && \
|
cd ${TLD}/${TARGET} && \
|
||||||
ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
|
ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
|
||||||
${REVISION}-${BRANCH}
|
${REVISION}-${BRANCH}
|
||||||
|
@ -29,7 +29,7 @@ ATLAS${VAR}:= ${VAGRANT${VAR}}
|
|||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
|
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
|
||||||
SNAPSHOT_DATE!= date +-%Y%m%d
|
SNAPSHOT_DATE!= date +-${BUILDDATE}
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
VAGRANT_VERSION!= date +%Y.%m.%d
|
VAGRANT_VERSION!= date +%Y.%m.%d
|
||||||
|
@ -12,23 +12,19 @@
|
|||||||
## Set the directory within which the release will be built.
|
## Set the directory within which the release will be built.
|
||||||
CHROOTDIR="/scratch"
|
CHROOTDIR="/scratch"
|
||||||
|
|
||||||
## Set the svn host.
|
## Set the version control system host.
|
||||||
SVNROOT="svn://svn.FreeBSD.org/"
|
GITROOT="https://cgit-beta.freebsd.org/"
|
||||||
|
GITSRC="src.git"
|
||||||
|
GITPORTS="ports.git"
|
||||||
|
GITDOC="doc.git"
|
||||||
|
|
||||||
## Set the src/, ports/, and doc/ branches or tags.
|
## Set the src/, ports/, and doc/ branches or tags.
|
||||||
SRCBRANCH="base/head@rHEAD"
|
SRCBRANCH="main"
|
||||||
DOCBRANCH="doc/head@rHEAD"
|
DOCBRANCH="main"
|
||||||
PORTBRANCH="ports/head@rHEAD"
|
PORTBRANCH="main"
|
||||||
|
|
||||||
## Run svn co --force for src checkout.
|
## Sample configuration for using git from ports.
|
||||||
#SRC_FORCE_CHECKOUT=yes
|
#GITCMD="/usr/local/bin/git clone -q --branch main"
|
||||||
|
|
||||||
## Sample configuration for using git instead of svn.
|
|
||||||
#VCSCMD="/usr/local/bin/git clone --branch master"
|
|
||||||
#SVNROOT=""
|
|
||||||
#SRCBRANCH="https://github.com/freebsd/freebsd"
|
|
||||||
#DOCBRANCH="https://github.com/freebsd/freebsd-doc"
|
|
||||||
#PORTBRANCH="https://github.com/freebsd/freebsd-ports"
|
|
||||||
|
|
||||||
## Set to override the default target architecture.
|
## Set to override the default target architecture.
|
||||||
#TARGET="amd64"
|
#TARGET="amd64"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#-
|
#-
|
||||||
# Copyright (c) 2013-2018 The FreeBSD Foundation
|
# Copyright (c) 2020 Rubicon Communications, LLC (netgate.com)
|
||||||
|
# Copyright (c) 2013-2019 The FreeBSD Foundation
|
||||||
# Copyright (c) 2013 Glen Barber
|
# Copyright (c) 2013 Glen Barber
|
||||||
# Copyright (c) 2011 Nathan Whitehorn
|
# Copyright (c) 2011 Nathan Whitehorn
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
@ -38,7 +39,7 @@
|
|||||||
|
|
||||||
export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
|
export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
|
||||||
|
|
||||||
VERSION=2
|
VERSION=3
|
||||||
|
|
||||||
# Prototypes that can be redefined per-chroot or per-target.
|
# Prototypes that can be redefined per-chroot or per-target.
|
||||||
load_chroot_env() { }
|
load_chroot_env() { }
|
||||||
@ -51,7 +52,7 @@ usage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# env_setup(): Set up the default build environment variables, such as the
|
# env_setup(): Set up the default build environment variables, such as the
|
||||||
# CHROOTDIR, VCSCMD, SVNROOT, etc. This is called before the release.conf
|
# CHROOTDIR, VCSCMD, GITROOT, etc. This is called before the release.conf
|
||||||
# file is sourced, if '-c <release.conf>' is specified.
|
# file is sourced, if '-c <release.conf>' is specified.
|
||||||
env_setup() {
|
env_setup() {
|
||||||
# The directory within which the release will be built.
|
# The directory within which the release will be built.
|
||||||
@ -60,27 +61,29 @@ env_setup() {
|
|||||||
|
|
||||||
# The default version control system command to obtain the sources.
|
# The default version control system command to obtain the sources.
|
||||||
for _dir in /usr/bin /usr/local/bin; do
|
for _dir in /usr/bin /usr/local/bin; do
|
||||||
for _svn in svn svnlite; do
|
[ -x "${_dir}/git" ] && VCSCMD="/${_dir}/git"
|
||||||
[ -x "${_dir}/${_svn}" ] && VCSCMD="${_dir}/${_svn}"
|
[ ! -z "${VCSCMD}" ] && break 2
|
||||||
[ ! -z "${VCSCMD}" ] && break 2
|
|
||||||
done
|
|
||||||
done
|
done
|
||||||
VCSCMD="${VCSCMD} checkout"
|
|
||||||
|
|
||||||
# The default svn checkout server, and svn branches for src/, doc/,
|
if [ -z "${VCSCMD}" ]; then
|
||||||
|
echo "*** The devel/git port/package is required."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
VCSCMD="/usr/local/bin/git clone -q"
|
||||||
|
|
||||||
|
# The default git checkout server, and branches for src/, doc/,
|
||||||
# and ports/.
|
# and ports/.
|
||||||
SVNROOT="svn://svn.FreeBSD.org/"
|
GITROOT="https://cgit-beta.FreeBSD.org/"
|
||||||
SRCBRANCH="base/head@rHEAD"
|
SRCBRANCH="main"
|
||||||
DOCBRANCH="doc/head@rHEAD"
|
DOCBRANCH="main"
|
||||||
PORTBRANCH="ports/head@rHEAD"
|
PORTBRANCH="main"
|
||||||
|
GITSRC="src.git"
|
||||||
|
GITPORTS="ports.git"
|
||||||
|
GITDOC="doc.git"
|
||||||
|
|
||||||
# Set for embedded device builds.
|
# Set for embedded device builds.
|
||||||
EMBEDDEDBUILD=
|
EMBEDDEDBUILD=
|
||||||
|
|
||||||
# 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 make.conf and src.conf to use. Set to /dev/null
|
# The default make.conf and src.conf to use. Set to /dev/null
|
||||||
# by default to avoid polluting the chroot(8) environment with
|
# by default to avoid polluting the chroot(8) environment with
|
||||||
# non-default settings.
|
# non-default settings.
|
||||||
@ -128,20 +131,11 @@ env_setup() {
|
|||||||
# in env_setup() if '-c <release.conf>' is specified.
|
# in env_setup() if '-c <release.conf>' is specified.
|
||||||
env_check() {
|
env_check() {
|
||||||
chroot_build_release_cmd="chroot_build_release"
|
chroot_build_release_cmd="chroot_build_release"
|
||||||
# Fix for backwards-compatibility with release.conf that does not have
|
|
||||||
# the trailing '/'.
|
|
||||||
case ${SVNROOT} in
|
|
||||||
*svn*)
|
|
||||||
SVNROOT="${SVNROOT}/"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Prefix the branches with the SVNROOT for the full checkout URL.
|
# Prefix the branches with the GITROOT for the full checkout URL.
|
||||||
SRCBRANCH="${SVNROOT}${SRCBRANCH}"
|
SRC="${GITROOT}${GITSRC}"
|
||||||
DOCBRANCH="${SVNROOT}${DOCBRANCH}"
|
DOC="${GITROOT}${GITDOC}"
|
||||||
PORTBRANCH="${SVNROOT}${PORTBRANCH}"
|
PORT="${GITROOT}${GITPORTS}"
|
||||||
|
|
||||||
if [ -n "${EMBEDDEDBUILD}" ]; then
|
if [ -n "${EMBEDDEDBUILD}" ]; then
|
||||||
WITH_DVD=
|
WITH_DVD=
|
||||||
@ -187,11 +181,6 @@ env_check() {
|
|||||||
else
|
else
|
||||||
ARCH_FLAGS=
|
ARCH_FLAGS=
|
||||||
fi
|
fi
|
||||||
# Force src checkout if configured
|
|
||||||
FORCE_SRC_KEY=
|
|
||||||
if [ -n "${SRC_FORCE_CHECKOUT}" ]; then
|
|
||||||
FORCE_SRC_KEY="--force"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${CHROOTDIR}" ]; then
|
if [ -z "${CHROOTDIR}" ]; then
|
||||||
echo "Please set CHROOTDIR."
|
echo "Please set CHROOTDIR."
|
||||||
@ -231,13 +220,13 @@ chroot_setup() {
|
|||||||
mkdir -p ${CHROOTDIR}/usr
|
mkdir -p ${CHROOTDIR}/usr
|
||||||
|
|
||||||
if [ -z "${SRC_UPDATE_SKIP}" ]; then
|
if [ -z "${SRC_UPDATE_SKIP}" ]; then
|
||||||
${VCSCMD} ${FORCE_SRC_KEY} ${SRCBRANCH} ${CHROOTDIR}/usr/src
|
${VCSCMD} ${SRC} -b ${SRCBRANCH} ${CHROOTDIR}/usr/src
|
||||||
fi
|
fi
|
||||||
if [ -z "${NODOC}" ] && [ -z "${DOC_UPDATE_SKIP}" ]; then
|
if [ -z "${NODOC}" ] && [ -z "${DOC_UPDATE_SKIP}" ]; then
|
||||||
${VCSCMD} ${DOCBRANCH} ${CHROOTDIR}/usr/doc
|
${VCSCMD} ${DOC} -b ${DOCBRANCH} ${CHROOTDIR}/usr/doc
|
||||||
fi
|
fi
|
||||||
if [ -z "${NOPORTS}" ] && [ -z "${PORTS_UPDATE_SKIP}" ]; then
|
if [ -z "${NOPORTS}" ] && [ -z "${PORTS_UPDATE_SKIP}" ]; then
|
||||||
${VCSCMD} ${PORTBRANCH} ${CHROOTDIR}/usr/ports
|
${VCSCMD} ${PORT} -b ${PORTBRANCH} ${CHROOTDIR}/usr/ports
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${CHROOTBUILD_SKIP}" ]; then
|
if [ -z "${CHROOTBUILD_SKIP}" ]; then
|
||||||
@ -274,6 +263,26 @@ extra_chroot_setup() {
|
|||||||
cp ${SRC_CONF} ${CHROOTDIR}/${SRC_CONF}
|
cp ${SRC_CONF} ${CHROOTDIR}/${SRC_CONF}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Install git from ports or packages if the ports tree is
|
||||||
|
# available and VCSCMD is unset.
|
||||||
|
_gitcmd="$(which git)"
|
||||||
|
if [ -d ${CHROOTDIR}/usr/ports -a -z "${_gitcmd}" ]; then
|
||||||
|
# Trick the ports 'run-autotools-fixup' target to do the right
|
||||||
|
# thing.
|
||||||
|
_OSVERSION=$(chroot ${CHROOTDIR} /usr/bin/uname -U)
|
||||||
|
REVISION=$(chroot ${CHROOTDIR} make -C /usr/src/release -V REVISION)
|
||||||
|
BRANCH=$(chroot ${CHROOTDIR} make -C /usr/src/release -V BRANCH)
|
||||||
|
UNAME_r=${REVISION}-${BRANCH}
|
||||||
|
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 ${CHROOTDIR} env OPTIONS_UNSET=\"${GITUNSETOPTS}\" \
|
||||||
|
make -C /usr/ports/devel/git FORCE_PKG_REGISTER=1 \
|
||||||
|
WRKDIRPREFIX=/tmp/ports \
|
||||||
|
DISTDIR=/tmp/distfiles \
|
||||||
|
install clean distclean
|
||||||
|
fi
|
||||||
if [ -d ${CHROOTDIR}/usr/ports ]; then
|
if [ -d ${CHROOTDIR}/usr/ports ]; then
|
||||||
# Trick the ports 'run-autotools-fixup' target to do the right
|
# Trick the ports 'run-autotools-fixup' target to do the right
|
||||||
# thing.
|
# thing.
|
||||||
|
@ -1,133 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#-
|
|
||||||
# Copyright (c) 2014 The FreeBSD Foundation
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# This software were developed by Glen Barber
|
|
||||||
# under sponsorship from the FreeBSD Foundation.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
# SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
|
|
||||||
set -C
|
|
||||||
|
|
||||||
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
echo "Usage:"
|
|
||||||
echo -n "$(basename ${0}) [-rNNNNNN]"
|
|
||||||
echo " [-l /path/for/output] /path/to/branch"
|
|
||||||
echo " -r: The oldest commit to include in the search"
|
|
||||||
echo ""
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
while getopts "l:r:" arg ; do
|
|
||||||
case ${arg} in
|
|
||||||
l)
|
|
||||||
# Disallow '-rNNNNNN' argument for oldest
|
|
||||||
# revision # from becoming the log file
|
|
||||||
# accidentally.
|
|
||||||
where="${OPTARG##-r*}"
|
|
||||||
[ -z "${where}" ] && usage
|
|
||||||
if [ -e "${where}" ]; then
|
|
||||||
echo "Log file already exists:"
|
|
||||||
echo " (${where})"
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
r)
|
|
||||||
rev="${OPTARG##-r}"
|
|
||||||
c=$(echo -n ${rev} | tr -d '0-9' | wc -c)
|
|
||||||
if [ ${c} -ne 0 ]; then
|
|
||||||
echo "Revision number must be numeric."
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
# Since the last specified revision is
|
|
||||||
# specified, mangle the variable to
|
|
||||||
# make svn syntax happy.
|
|
||||||
rev="-r${rev}:rHEAD"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
usage
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift $(( ${OPTIND} - 1 ))
|
|
||||||
|
|
||||||
# This assumes a local working copy, which svn search
|
|
||||||
# allows exactly one repository path (although the root
|
|
||||||
# can still be the path).
|
|
||||||
[ "$#" -ne 1 ] && usage
|
|
||||||
|
|
||||||
# If no log file, write to stdout.
|
|
||||||
[ -z "${where}" ] && where=/dev/stdout
|
|
||||||
|
|
||||||
svn=
|
|
||||||
# Where is svn?
|
|
||||||
for s in /usr/bin /usr/local/bin; do
|
|
||||||
if [ -x ${s}/svn ]; then
|
|
||||||
svn=${s}/svn
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if [ -x ${s}/svnlite ]; then
|
|
||||||
svn=${s}/svnlite
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Did we find svn?
|
|
||||||
if [ -z "${svn}" ]; then
|
|
||||||
echo "svn(1) binary not found."
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
# Is more than one path specified? (This should never
|
|
||||||
# be triggered, because the argument count is checked
|
|
||||||
# above, but better safe than sorry.)
|
|
||||||
if [ $# -gt 1 ]; then
|
|
||||||
echo "Cannot specify more than one working path."
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
# Does the directory exist?
|
|
||||||
if [ ! -d "${1}" ]; then
|
|
||||||
echo "Specified path (${1}) is not a directory."
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
# Is it a subversion repository checkout?
|
|
||||||
${svn} info ${1} >/dev/null 2>&1
|
|
||||||
if [ "$?" -ne 0 ]; then
|
|
||||||
echo "Cannot determine svn repository information for ${1}"
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# All tests passed. Let's see what can possibly go wrong
|
|
||||||
# from here. The search string specified should match this
|
|
||||||
# in PCRE speak: ':[\t ]*'
|
|
||||||
${svn} log ${rev} --search 'Relnotes:*[A-Za-z0-9]*' ${1} > ${where}
|
|
||||||
return $?
|
|
||||||
}
|
|
||||||
|
|
||||||
main "${@}"
|
|
||||||
exit $?
|
|
Loading…
x
Reference in New Issue
Block a user