No MFC to stable branches is planned at this time. [1]
Discussed with: git working group [1]
Sponsored by: Rubicon Communications, LLC (netgate.com)
Added:
head/release/Makefile.inc1
- copied unchanged from r364890, projects/release-git/release/Makefile.inc1
Deleted:
head/release/scripts/relnotes-search.sh
Modified:
head/Makefile.inc1
head/release/Makefile
head/release/Makefile.azure
head/release/Makefile.ec2
head/release/Makefile.gce
head/release/Makefile.mirrors
head/release/Makefile.vagrant
head/release/release.conf.sample
head/release/release.sh
Directory Properties:
head/ (props changed)
head/cddl/ (props changed)
head/cddl/contrib/opensolaris/ (props changed)
head/contrib/bc/ (props changed)
head/contrib/byacc/ (props changed)
head/contrib/elftoolchain/ (props changed)
head/contrib/ipfilter/ (props changed)
head/contrib/llvm-project/ (props changed)
head/contrib/llvm-project/clang/ (props changed)
head/contrib/llvm-project/compiler-rt/ (props changed)
head/contrib/llvm-project/libcxx/ (props changed)
head/contrib/llvm-project/libunwind/ (props changed)
head/contrib/llvm-project/lld/ (props changed)
head/contrib/llvm-project/lldb/ (props changed)
head/contrib/llvm-project/llvm/ (props changed)
head/contrib/llvm-project/openmp/ (props changed)
head/contrib/lua/ (props changed)
head/contrib/mtree/ (props changed)
head/contrib/netbsd-tests/ (props changed)
head/contrib/openbsm/ (props changed)
head/contrib/sendmail/ (props changed)
head/contrib/sqlite3/ (props changed)
head/contrib/unbound/ (props changed)
head/crypto/openssh/ (props changed)
head/crypto/openssl/ (props changed)
head/sys/cddl/contrib/opensolaris/ (props changed)
head/sys/contrib/dev/acpica/ (props changed)
head/sys/contrib/ipfilter/ (props changed)
head/sys/gnu/dts/arm/ (props changed)
head/sys/gnu/dts/arm64/ (props changed)
head/sys/gnu/dts/include/ (props changed)
head/sys/gnu/dts/riscv/ (props changed)
Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1 Thu Aug 27 21:09:17 2020 (r364890)
+++ head/Makefile.inc1 Thu Aug 27 21:19:16 2020 (r364891)
@@ -510,6 +510,15 @@ VCS_REVISION= $$(echo r${_VCS_REVISION})
.export VCS_REVISION
.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 exists(/usr/include/osreldate.h)
OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \
Modified: head/release/Makefile
==============================================================================
--- head/release/Makefile Thu Aug 27 21:09:17 2020 (r364890)
+++ head/release/Makefile Thu Aug 27 21:19:16 2020 (r364891)
@@ -90,15 +90,6 @@ EXTRA_PACKAGES+= src.txz
.endif
.if !defined(NODOC)
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
RELEASE_TARGETS= ftp
@@ -173,7 +164,6 @@ ports.txz:
reldoc:
cd ${DOCDIR}/en_US.ISO8859-1/htdocs/releases/${REVISION}R && \
env MAN4DIR=${WORLDDIR}/share/man/man4 \
- SVN=${SVN} \
_BRANCH=${BRANCH} \
${MAKE} all install clean "FORMATS=html txt" \
INSTALL_COMPRESSED='' URLS_ABSOLUTE=YES DOCDIR=${.OBJDIR}/rdoc \
@@ -336,4 +326,5 @@ release-install:
cd ${DESTDIR} && sha512 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA512
cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256
+.include "${.CURDIR}/Makefile.inc1"
.include "${.CURDIR}/Makefile.vm"
Modified: head/release/Makefile.azure
==============================================================================
--- head/release/Makefile.azure Thu Aug 27 21:09:17 2020 (r364890)
+++ head/release/Makefile.azure Thu Aug 27 21:19:16 2020 (r364891)
@@ -17,7 +17,7 @@ AZURE${VAR}!= grep -E ^AZURE${VAR} ${AZURE_UPLOAD_CONF
.endif
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} ==
"PRERELEASE"
-SNAPSHOT_DATE!= date +-%Y-%m-%d
+SNAPSHOT_DATE!= date +-${BUILDDATE}
.endif
AZURE_TARGET:= ${OSRELEASE}${SNAPSHOT_DATE}.vhd
Modified: head/release/Makefile.ec2
==============================================================================
--- head/release/Makefile.ec2 Thu Aug 27 21:09:17 2020 (r364890)
+++ head/release/Makefile.ec2 Thu Aug 27 21:19:16 2020 (r364891)
@@ -5,32 +5,8 @@
# 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"
-AMINAMESUFFIX!= date +-%Y-%m-%d
+AMINAMESUFFIX!= date +-${BUILDDATE}
.endif
.if defined(EC2PUBLIC) && !empty(EC2PUBLIC)
PUBLISH= --public
@@ -40,7 +16,7 @@ PUBLICSNAP= --publicsnap
.endif
.if defined(EC2SNSTOPIC) && !empty(EC2SNSTOPIC)
EC2SNSREL= ${REVISION}-${BRANCH}
-EC2SNSVERS= ${EC2_SVNBRANCH}@${EC2_SVNREV}
+EC2SNSVERS= ${GITBRANCH}@${GITREV}
.endif
.if ${TARGET_ARCH} != "amd64"
EC2ARCH= --${TARGET_ARCH:S/aarch64/arm64/}
@@ -89,7 +65,7 @@ ec2ami: cw-ec2 ${CW_EC2_PORTINSTALL}
${EC2ARCH} --sriov --ena \
${.OBJDIR}/ec2.raw \
"${TYPE} ${REVISION}-${BRANCH}-${TARGET}${AMINAMESUFFIX}" \
- "${TYPE}/${TARGET} ${EC2_SVNBRANCH}@${EC2_SVNREV}" \
+ "${TYPE}/${TARGET} ${GITBRANCH}@${GITREV}" \
${AWSREGION} ${AWSBUCKET} ${AWSKEYFILE} \
${EC2SNSTOPIC} ${EC2SNSREL} ${EC2SNSVERS}
@touch ${.TARGET}
Modified: head/release/Makefile.gce
==============================================================================
--- head/release/Makefile.gce Thu Aug 27 21:09:17 2020 (r364890)
+++ head/release/Makefile.gce Thu Aug 27 21:19:16 2020 (r364891)
@@ -24,8 +24,7 @@ GCE_FAMILY= ${TYPE:tl}-${REVISION:S,.,-,}
.endif
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} ==
"PRERELEASE"
-_SNAPSHOT_DATE!= date +%Y%m%d
-SNAPSHOT_DATE= -v${_SNAPSHOT_DATE}
+SNAPSHOT_DATE= -v${BUILDDATE}
GCE_FAMILY_SUFX= -snap
.endif
Copied: head/release/Makefile.inc1 (from r364890,
projects/release-git/release/Makefile.inc1)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/release/Makefile.inc1 Thu Aug 27 21:19:16 2020 (r364891, copy of
r364890, projects/release-git/release/Makefile.inc1)
@@ -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
Modified: head/release/Makefile.mirrors
==============================================================================
--- head/release/Makefile.mirrors Thu Aug 27 21:09:17 2020
(r364890)
+++ head/release/Makefile.mirrors Thu Aug 27 21:19:16 2020
(r364891)
@@ -19,7 +19,6 @@ FTPDIR?= ${RELEASEDIR}/ftp-stage
.if exists(${RELEASEDIR})
STAGE_TARGETS?= iso-images-stage
.endif
-SRCBRANCH!= ${SVN_CMD} info --show-item relative-url ${WORLDDIR}
.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) ||
(defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
. if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != ""
@@ -31,26 +30,10 @@ EMBEDDED= 1
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} ==
"PRERELEASE" || ${BRANCH:MALPHA*} != ""
SNAPSHOT= 1
TLD?= ${FTPDIR}/snapshots
-. if !defined(SVNREVISION) || empty(SVNREVISION)
-. 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
+.if !defined(BUILDDATE) || empty(BUILDDATE)
BUILDDATE!= date +%Y%m%d
-. endif
-. endif
-_SNAP_SUFFIX:= ${BUILDDATE}-r${SVNREVISION}
+.endif
+_SNAP_SUFFIX:= ${BUILDDATE}-${GITREV}
.else
# release
SNAPSHOT=
@@ -187,8 +170,8 @@ iso-images-stage:
mkdir -p ${FTP_DIR}
cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
echo ${BUILDDATE} > ${FTP_DIR}/BUILDDATE
- echo ${SRCBRANCH} > ${FTP_DIR}/SRCBRANCH
- echo r${SVNREVISION} > ${FTP_DIR}/REVISION
+ echo ${GITBRANCH} > ${FTP_DIR}/GITBRANCH
+ echo ${GITREV} > ${FTP_DIR}/REVISION
cd ${TLD}/${TARGET} && \
ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
${REVISION}-${BRANCH}
Modified: head/release/Makefile.vagrant
==============================================================================
--- head/release/Makefile.vagrant Thu Aug 27 21:09:17 2020
(r364890)
+++ head/release/Makefile.vagrant Thu Aug 27 21:19:16 2020
(r364891)
@@ -29,7 +29,7 @@ ATLAS${VAR}:= ${VAGRANT${VAR}}
.endif
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} ==
"PRERELEASE"
-SNAPSHOT_DATE!= date +-%Y%m%d
+SNAPSHOT_DATE!= date +-${BUILDDATE}
.endif
VAGRANT_VERSION!= date +%Y.%m.%d
Modified: head/release/release.conf.sample
==============================================================================
--- head/release/release.conf.sample Thu Aug 27 21:09:17 2020
(r364890)
+++ head/release/release.conf.sample Thu Aug 27 21:19:16 2020
(r364891)
@@ -12,23 +12,19 @@
## Set the directory within which the release will be built.
CHROOTDIR="/scratch"
-## Set the svn host.
-SVNROOT="svn://svn.FreeBSD.org/"
+## Set the version control system host.
+GITROOT="https://cgit-beta.freebsd.org/"
+GITSRC="src.git"
+GITPORTS="ports.git"
+GITDOC="doc.git"
## Set the src/, ports/, and doc/ branches or tags.
-SRCBRANCH="base/head@rHEAD"
-DOCBRANCH="doc/head@rHEAD"
-PORTBRANCH="ports/head@rHEAD"
+SRCBRANCH="main"
+DOCBRANCH="main"
+PORTBRANCH="main"
-## Run svn co --force for src checkout.
-#SRC_FORCE_CHECKOUT=yes
-
-## 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"
+## Sample configuration for using git from ports.
+#GITCMD="/usr/local/bin/git clone -q --branch main"
## Set to override the default target architecture.
#TARGET="amd64"
Modified: head/release/release.sh
==============================================================================
--- head/release/release.sh Thu Aug 27 21:09:17 2020 (r364890)
+++ head/release/release.sh Thu Aug 27 21:19:16 2020 (r364891)
@@ -1,6 +1,7 @@
#!/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) 2011 Nathan Whitehorn
# All rights reserved.
@@ -38,7 +39,7 @@
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.
load_chroot_env() { }
@@ -51,7 +52,7 @@ usage() {
}
# 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.
env_setup() {
# 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.
for _dir in /usr/bin /usr/local/bin; do
- for _svn in svn svnlite; do
- [ -x "${_dir}/${_svn}" ] && VCSCMD="${_dir}/${_svn}"
- [ ! -z "${VCSCMD}" ] && break 2
- done
+ [ -x "${_dir}/git" ] && VCSCMD="/${_dir}/git"
+ [ ! -z "${VCSCMD}" ] && break 2
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/.
- SVNROOT="svn://svn.FreeBSD.org/"
- SRCBRANCH="base/head@rHEAD"
- DOCBRANCH="doc/head@rHEAD"
- PORTBRANCH="ports/head@rHEAD"
+ GITROOT="https://cgit-beta.FreeBSD.org/"
+ SRCBRANCH="main"
+ DOCBRANCH="main"
+ PORTBRANCH="main"
+ GITSRC="src.git"
+ GITPORTS="ports.git"
+ GITDOC="doc.git"
# Set for embedded device builds.
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
# by default to avoid polluting the chroot(8) environment with
# non-default settings.
@@ -128,20 +131,11 @@ env_setup() {
# in env_setup() if '-c <release.conf>' is specified.
env_check() {
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.
- SRCBRANCH="${SVNROOT}${SRCBRANCH}"
- DOCBRANCH="${SVNROOT}${DOCBRANCH}"
- PORTBRANCH="${SVNROOT}${PORTBRANCH}"
+ # Prefix the branches with the GITROOT for the full checkout URL.
+ SRC="${GITROOT}${GITSRC}"
+ DOC="${GITROOT}${GITDOC}"
+ PORT="${GITROOT}${GITPORTS}"
if [ -n "${EMBEDDEDBUILD}" ]; then
WITH_DVD=
@@ -187,11 +181,6 @@ env_check() {
else
ARCH_FLAGS=
fi
- # Force src checkout if configured
- FORCE_SRC_KEY=
- if [ -n "${SRC_FORCE_CHECKOUT}" ]; then
- FORCE_SRC_KEY="--force"
- fi
if [ -z "${CHROOTDIR}" ]; then
echo "Please set CHROOTDIR."
@@ -231,13 +220,13 @@ chroot_setup() {
mkdir -p ${CHROOTDIR}/usr
if [ -z "${SRC_UPDATE_SKIP}" ]; then
- ${VCSCMD} ${FORCE_SRC_KEY} ${SRCBRANCH} ${CHROOTDIR}/usr/src
+ ${VCSCMD} ${SRC} -b ${SRCBRANCH} ${CHROOTDIR}/usr/src
fi
if [ -z "${NODOC}" ] && [ -z "${DOC_UPDATE_SKIP}" ]; then
- ${VCSCMD} ${DOCBRANCH} ${CHROOTDIR}/usr/doc
+ ${VCSCMD} ${DOC} -b ${DOCBRANCH} ${CHROOTDIR}/usr/doc
fi
if [ -z "${NOPORTS}" ] && [ -z "${PORTS_UPDATE_SKIP}" ]; then
- ${VCSCMD} ${PORTBRANCH} ${CHROOTDIR}/usr/ports
+ ${VCSCMD} ${PORT} -b ${PORTBRANCH} ${CHROOTDIR}/usr/ports
fi
if [ -z "${CHROOTBUILD_SKIP}" ]; then
@@ -274,6 +263,26 @@ extra_chroot_setup() {
cp ${SRC_CONF} ${CHROOTDIR}/${SRC_CONF}
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
# Trick the ports 'run-autotools-fixup' target to do the right
# thing.
_______________________________________________
svn-src-h...@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"