[Midnightbsd-cvs] src [11842] trunk/release: add release files

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Thu Jul 12 20:43:33 EDT 2018


Revision: 11842
          http://svnweb.midnightbsd.org/src/?rev=11842
Author:   laffer1
Date:     2018-07-12 20:43:32 -0400 (Thu, 12 Jul 2018)
Log Message:
-----------
add release files

Added Paths:
-----------
    trunk/release/release.conf.sample
    trunk/release/release.sh

Added: trunk/release/release.conf.sample
===================================================================
--- trunk/release/release.conf.sample	                        (rev 0)
+++ trunk/release/release.conf.sample	2018-07-13 00:43:32 UTC (rev 11842)
@@ -0,0 +1,110 @@
+#!/bin/sh
+#
+# $MidnightBSD$
+#
+
+## Set the directory within which the release will be built.
+CHROOTDIR="/scratch"
+
+## Set the svn host.
+SVNROOT="svn://svn.MidnightBSD.org/svn/"
+
+## Set the src/, mports/, and doc/ branches or tags.
+SRCBRANCH="base/stable/1 at rHEAD"
+DOCBRANCH="doc/trunk at rHEAD"
+PORTBRANCH="mports/trunk at rHEAD"
+
+## Run svn co --force for src checkout.
+#SRC_FORCE_CHECKOUT=yes
+
+## Set to override the default target architecture.
+#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"
+#SRC_CONF="/etc/local/src.conf"
+
+## Set to use make(1) flags.
+#MAKE_FLAGS="-s"
+
+## Set to use world- and kernel-specific make(1) flags.
+#WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
+#KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
+
+## Set miscellaneous 'make release' settings.
+#NODOC=
+#NOPORTS=
+#WITH_DVD=
+#WITH_COMPRESSED_IMAGES=
+
+## 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.
+#CHROOTBUILD_SKIP=
+
+## Set to a non-empty value skip checkout or update of /usr/src in
+## the chroot.  This is intended for use when /usr/src already exists.
+#SRC_UPDATE_SKIP=
+
+## Set to a non-empty value skip checkout or update of /usr/doc in
+## the chroot.  This is intended for use when /usr/doc already exists.
+#DOC_UPDATE_SKIP=
+
+## Set to a non-empty value skip checkout or update of /usr/ports in
+## the chroot.  This is intended for use when /usr/ports already exists.
+#PORTS_UPDATE_SKIP=
+
+## Set to pass additional flags to make(1) for the build chroot setup, such
+## as TARGET/TARGET_ARCH.
+#CHROOT_MAKEENV=
+
+## Set to a non-empty value to build virtual machine images as part of the
+## release build.
+#WITH_VMIMAGES=
+
+## Set to a non-empty value to compress virtual machine images with xz(1)
+## as part of the release build.
+#WITH_COMPRESSED_VMIMAGES=
+
+## If WITH_VMIMAGES is set to a non-empty value, this is the name of the
+## file to use for the installed userland/kernel.
+#VMBASE="vm"
+
+## If WITH_VMIMAGES is set to a non-empty value, this is the size of the
+## virtual machine disk filesystem.  Valid size values are described in
+## the truncate(1) manual page.
+#VMSIZE="20G"
+
+## If WITH_VMIMAGES is set to a non-empty value, this is a list of disk
+## image formats to create.  Valid values are listed in the mkimg(1)
+## manual page, as well as 'mkimg --formats' output.
+#VMFORMATS="vhdf vmdk qcow2 raw"
+
+## Set to a non-empty value to build virtual machine images for various
+## cloud providers as part of the release build.
+#WITH_CLOUDWARE=
+
+## If WITH_CLOUDWARE is set to a non-empty value, this is a list of providers
+## to create disk images.
+#CLOUDWARE="AZURE OPENSTACK"


Property changes on: trunk/release/release.conf.sample
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: trunk/release/release.sh
===================================================================
--- trunk/release/release.sh	                        (rev 0)
+++ trunk/release/release.sh	2018-07-13 00:43:32 UTC (rev 11842)
@@ -0,0 +1,431 @@
+#!/bin/sh
+#-
+# Copyright (c) 2013-2018 The FreeBSD Foundation
+# Copyright (c) 2013 Glen Barber
+# Copyright (c) 2011 Nathan Whitehorn
+# All rights reserved.
+#
+# Portions of 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.
+#
+# release.sh: check out source trees, and build release components with
+#  totally clean, fresh trees.
+# Based on release/generate-release.sh written by Nathan Whitehorn
+#
+# $MidnightBSD$
+#
+
+export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
+
+VERSION=2
+
+# Prototypes that can be redefined per-chroot or per-target.
+load_chroot_env() { }
+load_target_env() { }
+buildenv_setup() { }
+
+usage() {
+	echo "Usage: $0 [-c release.conf]"
+	exit 1
+}
+
+# env_setup(): Set up the default build environment variables, such as the
+# CHROOTDIR, VCSCMD, SVNROOT, 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.
+	CHROOTDIR="/scratch"
+	RELENGDIR="$(dirname $(realpath ${0}))"
+
+	# 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
+	done
+	VCSCMD="${VCSCMD} checkout"
+
+	# The default svn checkout server, and svn branches for src/, doc/,
+	# and mports/.
+	SVNROOT="svn://svn.MidnightBSD.org/svn/"
+	SRCBRANCH="base/trunk at rHEAD"
+	DOCBRANCH="doc/trunk at rHEAD"
+	PORTBRANCH="mports/trunk at rHEAD"
+
+	# 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.
+	MAKE_CONF="/dev/null"
+	SRC_CONF="/dev/null"
+
+	# The number of make(1) jobs, defaults to the number of CPUs available
+	# for buildworld, and half of number of CPUs available for buildkernel.
+	WORLD_FLAGS="-j$(sysctl -n hw.ncpu)"
+	KERNEL_FLAGS="-j$(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2))"
+
+	MAKE_FLAGS="-s"
+
+	# The name of the kernel to build, defaults to GENERIC.
+	KERNEL="GENERIC"
+
+	# Set to non-empty value to disable checkout of doc/ and/or ports/.
+	# Disabling mports/ checkout also forces NODOC to be set.
+	NODOC=
+	NOPORTS=
+
+	# Set to non-empty value to build dvd1.iso as part of the release.
+	WITH_DVD=
+	WITH_COMPRESSED_IMAGES=
+
+	# Set to non-empty value to build virtual machine images as part of
+	# the release.
+	WITH_VMIMAGES=
+	WITH_COMPRESSED_VMIMAGES=
+	XZ_THREADS=0
+
+	# Set to non-empty value to build virtual machine images for various
+	# cloud providers as part of the release.
+	WITH_CLOUDWARE=
+
+	return 0
+} # env_setup()
+
+# env_check(): Perform sanity tests on the build environment, such as ensuring
+# files/directories exist, as well as adding backwards-compatibility hacks if
+# necessary.  This is called unconditionally, and overrides the defaults set
+# 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}"
+
+	if [ -n "${EMBEDDEDBUILD}" ]; then
+		WITH_DVD=
+		WITH_COMPRESSED_IMAGES=
+		NODOC=yes
+		case ${EMBEDDED_TARGET}:${EMBEDDED_TARGET_ARCH} in
+			arm:arm*|arm64:aarch64)
+				chroot_build_release_cmd="chroot_arm_build_release"
+				;;
+			*)
+				;;
+		esac
+	fi
+
+	# If PORTS is set and NODOC is unset, force NODOC=yes because the mports
+	# tree is required to build the documentation set.
+	if [ -n "${NOPORTS}" ] && [ -z "${NODOC}" ]; then
+		echo "*** NOTICE: Setting NODOC=1 since mports 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 the
+	# NOPORTS/NODOC variables instead of their values.
+	DOCPORTS=
+	if [ -n "${NOPORTS}" ]; then
+		DOCPORTS="NOPORTS=yes "
+	fi
+	if [ -n "${NODOC}" ]; 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.
+	CONF_FILES="__MAKE_CONF=${MAKE_CONF} SRCCONF=${SRC_CONF}"
+	if [ -n "${TARGET}" ] && [ -n "${TARGET_ARCH}" ]; then
+		ARCH_FLAGS="TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH}"
+	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."
+		exit 1
+	fi
+
+	if [ $(id -u) -ne 0 ]; then
+		echo "Needs to be run as root."
+		exit 1
+	fi
+
+	# Unset CHROOTBUILD_SKIP if the chroot(8) does not appear to exist.
+	if [ ! -z "${CHROOTBUILD_SKIP}" -a ! -e ${CHROOTDIR}/bin/sh ]; then
+		CHROOTBUILD_SKIP=
+	fi
+
+	CHROOT_MAKEENV="${CHROOT_MAKEENV} \
+		MAKEOBJDIRPREFIX=${CHROOTDIR}/tmp/obj"
+	CHROOT_WMAKEFLAGS="${MAKE_FLAGS} ${WORLD_FLAGS} ${CONF_FILES}"
+	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} ${DOCPORTS} \
+		WITH_DVD=${WITH_DVD} WITH_VMIMAGES=${WITH_VMIMAGES} \
+		WITH_CLOUDWARE=${WITH_CLOUDWARE} XZ_THREADS=${XZ_THREADS}"
+
+	return 0
+} # env_check()
+
+# chroot_setup(): Prepare the build chroot environment for the release build.
+chroot_setup() {
+	load_chroot_env
+	mkdir -p ${CHROOTDIR}/usr
+
+	if [ -z "${SRC_UPDATE_SKIP}" ]; then
+		${VCSCMD} ${FORCE_SRC_KEY} ${SRCBRANCH} ${CHROOTDIR}/usr/src
+	fi
+	if [ -z "${NODOC}" ] && [ -z "${DOC_UPDATE_SKIP}" ]; then
+		${VCSCMD} ${DOCBRANCH} ${CHROOTDIR}/usr/doc
+	fi
+	if [ -z "${NOPORTS}" ] && [ -z "${PORTS_UPDATE_SKIP}" ]; then
+		${VCSCMD} ${PORTBRANCH} ${CHROOTDIR}/usr/mports
+	fi
+
+	if [ -z "${CHROOTBUILD_SKIP}" ]; then
+		cd ${CHROOTDIR}/usr/src
+		env ${CHROOT_MAKEENV} make ${CHROOT_WMAKEFLAGS} buildworld
+		env ${CHROOT_MAKEENV} make ${CHROOT_IMAKEFLAGS} installworld \
+			DESTDIR=${CHROOTDIR}
+		env ${CHROOT_MAKEENV} make ${CHROOT_DMAKEFLAGS} distribution \
+			DESTDIR=${CHROOTDIR}
+	fi
+
+	return 0
+} # chroot_setup()
+
+# extra_chroot_setup(): Prepare anything additional within the build
+# necessary for the release build.
+extra_chroot_setup() {
+	mkdir -p ${CHROOTDIR}/dev
+	mount -t devfs devfs ${CHROOTDIR}/dev
+	[ -e /etc/resolv.conf -a ! -e ${CHROOTDIR}/etc/resolv.conf ] && \
+		cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf
+	# Run ldconfig(8) in the chroot directory so /var/run/ld-elf*.so.hints
+	# is created.  This is needed by ports-mgmt/pkg.
+	eval chroot ${CHROOTDIR} /etc/rc.d/ldconfig forcerestart
+
+	# If MAKE_CONF and/or SRC_CONF are set and not character devices
+	# (/dev/null), copy them to the chroot.
+	if [ -e ${MAKE_CONF} ] && [ ! -c ${MAKE_CONF} ]; then
+		mkdir -p ${CHROOTDIR}/$(dirname ${MAKE_CONF})
+		cp ${MAKE_CONF} ${CHROOTDIR}/${MAKE_CONF}
+	fi
+	if [ -e ${SRC_CONF} ] && [ ! -c ${SRC_CONF} ]; then
+		mkdir -p ${CHROOTDIR}/$(dirname ${SRC_CONF})
+		cp ${SRC_CONF} ${CHROOTDIR}/${SRC_CONF}
+	fi
+
+	if [ -d ${CHROOTDIR}/usr/mports ]; then
+		# Trick the mports '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}
+		if [ -d ${CHROOTDIR}/usr/doc ] && [ -z "${NODOC}" ]; then
+			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/mports"
+			PBUILD_FLAGS="${PBUILD_FLAGS} DISTDIR=/tmp/distfiles"
+			chroot ${CHROOTDIR} env ${PBUILD_FLAGS} make -C \
+				/usr/mports/textproc/docproj \
+				OPTIONS_UNSET="FOP IGOR" \
+				FORCE_PKG_REGISTER=1 \
+				install clean distclean
+		fi
+	fi
+
+	if [ ! -z "${EMBEDDEDPORTS}" ]; then
+		_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)
+		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/mports"
+		PBUILD_FLAGS="${PBUILD_FLAGS} DISTDIR=/tmp/distfiles"
+		for _PORT in ${EMBEDDEDPORTS}; do
+			eval chroot ${CHROOTDIR} env ${PBUILD_FLAGS} make -C \
+				/usr/mports/${_PORT} \
+				FORCE_PKG_REGISTER=1 install clean distclean
+		done
+	fi
+
+	buildenv_setup
+
+	return 0
+} # extra_chroot_setup()
+
+# chroot_build_target(): Build the userland and kernel for the build target.
+chroot_build_target() {
+	load_target_env
+	if [ ! -z "${EMBEDDEDBUILD}" ]; then
+		RELEASE_WMAKEFLAGS="${RELEASE_WMAKEFLAGS} \
+			TARGET=${EMBEDDED_TARGET} \
+			TARGET_ARCH=${EMBEDDED_TARGET_ARCH}"
+		RELEASE_KMAKEFLAGS="${RELEASE_KMAKEFLAGS} \
+			TARGET=${EMBEDDED_TARGET} \
+			TARGET_ARCH=${EMBEDDED_TARGET_ARCH}"
+	fi
+	eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_WMAKEFLAGS} buildworld
+	eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_KMAKEFLAGS} buildkernel
+
+	return 0
+} # chroot_build_target
+
+# chroot_build_release(): Invoke the 'make release' target.
+chroot_build_release() {
+	load_target_env
+	if [ ! -z "${WITH_VMIMAGES}" ]; then
+		if [ -z "${VMFORMATS}" ]; then
+			VMFORMATS="$(eval chroot ${CHROOTDIR} \
+				make -C /usr/src/release -V VMFORMATS)"
+		fi
+		if [ -z "${VMSIZE}" ]; then
+			VMSIZE="$(eval chroot ${CHROOTDIR} \
+				make -C /usr/src/release -V VMSIZE)"
+		fi
+		RELEASE_RMAKEFLAGS="${RELEASE_RMAKEFLAGS} \
+			VMFORMATS=\"${VMFORMATS}\" VMSIZE=${VMSIZE}"
+	fi
+	eval chroot ${CHROOTDIR} make -C /usr/src/release \
+		${RELEASE_RMAKEFLAGS} release
+	eval chroot ${CHROOTDIR} make -C /usr/src/release \
+		${RELEASE_RMAKEFLAGS} install DESTDIR=/R \
+		WITH_COMPRESSED_IMAGES=${WITH_COMPRESSED_IMAGES} \
+		WITH_COMPRESSED_VMIMAGES=${WITH_COMPRESSED_VMIMAGES}
+
+	return 0
+} # chroot_build_release()
+
+# chroot_arm_build_release(): Create arm SD card image.
+chroot_arm_build_release() {
+	load_target_env
+	eval chroot ${CHROOTDIR} make -C /usr/src/release obj
+	case ${EMBEDDED_TARGET} in
+		arm|arm64)
+			if [ -e "${RELENGDIR}/tools/arm.subr" ]; then
+				. "${RELENGDIR}/tools/arm.subr"
+			fi
+			;;
+		*)
+			;;
+	esac
+	[ ! -z "${RELEASECONF}" ] && . "${RELEASECONF}"
+	WORLDDIR="$(eval chroot ${CHROOTDIR} make -C /usr/src/release -V WORLDDIR)"
+	OBJDIR="$(eval chroot ${CHROOTDIR} make -C /usr/src/release -V .OBJDIR)"
+	DESTDIR="${OBJDIR}/${KERNEL}"
+	IMGBASE="${CHROOTDIR}/${OBJDIR}/${KERNEL}.img"
+	OSRELEASE="$(eval chroot ${CHROOTDIR} make -C /usr/src/release \
+		TARGET=${EMBEDDED_TARGET} TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \
+		-V OSRELEASE)"
+	chroot ${CHROOTDIR} mkdir -p ${DESTDIR}
+	chroot ${CHROOTDIR} truncate -s ${IMAGE_SIZE} ${IMGBASE##${CHROOTDIR}}
+	export mddev=$(chroot ${CHROOTDIR} \
+		mdconfig -f ${IMGBASE##${CHROOTDIR}} ${MD_ARGS})
+	arm_create_disk
+	arm_install_base
+	arm_install_uboot
+	mdconfig -d -u ${mddev}
+	chroot ${CHROOTDIR} rmdir ${DESTDIR}
+	mv ${IMGBASE} ${CHROOTDIR}/${OBJDIR}/${OSRELEASE}-${KERNEL}.img
+	chroot ${CHROOTDIR} mkdir -p /R
+	chroot ${CHROOTDIR} cp -p ${OBJDIR}/${OSRELEASE}-${KERNEL}.img \
+		/R/${OSRELEASE}-${KERNEL}.img
+	chroot ${CHROOTDIR} xz -T ${XZ_THREADS} /R/${OSRELEASE}-${KERNEL}.img
+	cd ${CHROOTDIR}/R && sha512 ${OSRELEASE}* \
+		> CHECKSUM.SHA512
+	cd ${CHROOTDIR}/R && sha256 ${OSRELEASE}* \
+		> CHECKSUM.SHA256
+
+	return 0
+} # chroot_arm_build_release()
+
+# main(): Start here.
+main() {
+	set -e # Everything must succeed
+	env_setup
+	while getopts c: opt; do
+		case ${opt} in
+			c)
+				RELEASECONF="$(realpath ${OPTARG})"
+				;;
+			\?)
+				usage
+				;;
+		esac
+	done
+	shift $(($OPTIND - 1))
+	if [ ! -z "${RELEASECONF}" ]; then
+		if [ -e "${RELEASECONF}" ]; then
+			. ${RELEASECONF}
+		else
+			echo "Nonexistent configuration file: ${RELEASECONF}"
+			echo "Using default build environment."
+		fi
+	fi
+	env_check
+	trap "umount ${CHROOTDIR}/dev" EXIT # Clean up devfs mount on exit
+	chroot_setup
+	extra_chroot_setup
+	chroot_build_target
+	${chroot_build_release_cmd}
+
+	return 0
+} # main()
+
+main "${@}"


Property changes on: trunk/release/release.sh
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list