Index: stable/10/release/Makefile.azure =================================================================== --- stable/10/release/Makefile.azure (revision 284812) +++ stable/10/release/Makefile.azure (revision 284813) @@ -1,53 +1,53 @@ # # $FreeBSD$ # # # Makefile for uploading Microsoft Azure disk images. # AZURE_IMG?= ${.OBJDIR}/azure.vhdf AZURE_UPLOAD_TGTS= azure-check-depends \ azure-do-upload CLEANFILES+= ${AZURE_UPLOAD_TGTS} .if defined(AZURE_UPLOAD_CONF) && !empty(AZURE_UPLOAD_CONF) . for VAR in _STORAGE _ACCOUNT _KEY AZURE${VAR}!= grep -E ^AZURE${VAR} ${AZURE_UPLOAD_CONF} | awk -F' ' '{print $$2}' . endfor .endif -.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" -SNAPSHOT_DATE!= date +-%Y-%m-%d-%H:%M +.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" +SNAPSHOT_DATE!= date +-%Y-%m-%d-%H-%M .endif AZURE_TARGET:= ${OSRELEASE}${SNAPSHOT_DATE}.vhd azure-upload: ${AZURE_UPLOAD_TGTS} azure-check-depends: .for VAR in _STORAGE _ACCOUNT _KEY . if !defined(AZURE${VAR}) || empty(AZURE${VAR}) @echo "Variable AZURE${VAR} cannot be empty." @false . endif .endfor .if !exists(/usr/local/bin/azure) . if !exists(/usr/local/bin/npm) . if !exists(${PORTSDIR}/www/npm/Makefile) . if !exists(/usr/local/sbin/pkg-static) env ASSUME_ALWAYS_YES=yes pkg bootstrap -yf . endif env ASSUME_ALWAYS_YES=yes pkg install -y www/npm . else make -C ${PORTSDIR}/www/npm BATCH=1 all install clean . endif . endif npm install -g azure-cli .endif azure-do-upload: /usr/local/bin/azure storage blob upload \ ${AZURE_IMG} ${AZURE_STORAGE} ${AZURE_TARGET} \ -t page -a ${AZURE_ACCOUNT} -k "${AZURE_KEY}" touch ${.OBJDIR}/${.TARGET} Index: stable/10/release/Makefile.ec2 =================================================================== --- stable/10/release/Makefile.ec2 (revision 284812) +++ stable/10/release/Makefile.ec2 (revision 284813) @@ -1,59 +1,59 @@ # # $FreeBSD$ # # # Makefile for creating an EC2 AMI from a disk image. # -.if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" -AMINAMESUFFIX!= date +-%Y-%m-%d-%H:%M +.if ${BRANCH} == "CURRENT" || ${BRANCH} == "STABLE" || ${BRANCH} == "PRERELEASE" +AMINAMESUFFIX!= date +-%Y-%m-%d-%H-%M .endif .if defined(EC2PUBLIC) PUBLISH= --public .endif CLEANFILES+= ec2ami .if !exists(/usr/local/bin/bsdec2-image-upload) CW_EC2_PORTINSTALL= cw-ec2-portinstall CLEANFILES+= ${CW_EC2_PORTINSTALL} .else CW_EC2_PORTINSTALL= .endif cw-ec2-portinstall: .if exists(${PORTSDIR}/net/bsdec2-image-upload/Makefile) make -C ${PORTSDIR}/net/bsdec2-image-upload BATCH=1 all install clean .else . if !exists(/usr/local/sbin/pkg-static) env ASSUME_ALWAYS_YES=yes pkg bootstrap -y . endif env ASSUME_ALWAYS_YES=yes pkg install -y net/bsdec2-image-upload .endif @touch ${.TARGET} ec2ami: cw-ec2 ${CW_EC2_PORTINSTALL} .if !defined(AWSKEYFILE) || !exists(${AWSKEYFILE}) @echo "--------------------------------------------------------------" @echo ">>> AWSKEYFILE must point at AWS keys for EC2 AMI creation" @echo "--------------------------------------------------------------" @false .endif .if !defined(AWSREGION) @echo "--------------------------------------------------------------" @echo ">>> AWSREGION must be specified EC2 AMI creation" @echo "--------------------------------------------------------------" @false .endif .if !defined(AWSBUCKET) @echo "--------------------------------------------------------------" @echo ">>> AWSBUCKET must be specified for EC2 AMI creation" @echo "--------------------------------------------------------------" @false .endif /usr/local/bin/bsdec2-image-upload ${PUBLISH} \ ${.OBJDIR}/ec2.raw \ "${TYPE} ${REVISION}-${BRANCH}-${TARGET}${AMINAMESUFFIX}" \ "${TYPE} ${REVISION}-${BRANCH}-${TARGET}" \ ${AWSREGION} ${AWSBUCKET} ${AWSKEYFILE} @touch ${.TARGET} Index: stable/10/release/Makefile.mirrors =================================================================== --- stable/10/release/Makefile.mirrors (revision 284812) +++ stable/10/release/Makefile.mirrors (revision 284813) @@ -1,254 +1,254 @@ # # This Makefile helps create the directory structure on ftp-master, # making staging builds a bit more sane. # # You probably do not want to use this. Really. # You have been warned. # # Seriously. # # Don't use this unless you know why you're using it. # # $FreeBSD$ # .include "${.CURDIR}/Makefile" RELEASEDIR?= /R FTPDIR?= ${RELEASEDIR}/ftp-stage .if exists(${RELEASEDIR}) STAGE_TARGETS?= iso-images-stage .endif .if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD)) . if ${TARGET} == "arm" || ${EMBEDDED_TARGET} == "arm" EMBEDDED= 1 . endif .endif # snapshot -.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" +.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" 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 BUILDDATE!= date +%Y%m%d . endif . endif _SNAP_SUFFIX:= ${BUILDDATE}-r${SVNREVISION} .else # release SNAPSHOT= TLD?= ${FTPDIR}/releases .endif .if defined(EMBEDDED) && !empty(EMBEDDED) . if ${TARGET} == "arm" && ${TARGET_ARCH} == "armv6" . if !defined(BOARDNAME) && empty(BOARDNAME) BOARDNAME:= ${KERNCONF} . else OLDNAME:= ${KERNCONF} . endif -. if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" +. if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" SNAPSHOT= 1 . endif IMAGES:= img . endif # arm/armv6 .endif # embedded .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) STAGE_TARGETS+= vm-images-stage VM_DIR= ${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH} .endif CLEANFILES+= ${STAGE_TARGETS} CHECKSUM_FILES?= SHA256 MD5 SNAP_SUFFIX!= echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' ' ISO_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION} FTP_DIR= ${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH} remove-old-bits: rm -rf ${FTPDIR} iso-images-stage: mkdir -p ${ISO_DIR} mkdir -p ${TLD}/ISO-IMAGES/${REVISION} .if defined(SNAPSHOT) && !empty(SNAPSHOT) cd ${RELEASEDIR} && rm -f CHECKSUM.* . for IMAGE in ${IMAGES} . if defined(EMBEDDED) && !empty(EMBEDDED) . if defined(OLDNAME) && !empty(OLDNAME) @# arm/armv6 IMX6 -> WANDBOARD, for example. cd ${RELEASEDIR} && \ mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \ ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz . endif cd ${RELEASEDIR} && \ mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \ ${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \ ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz . endif # not embedded . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}) cd ${RELEASEDIR} && \ mv ${OSRELEASE}-${IMAGE} \ ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \ ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} . endif . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz) cd ${RELEASEDIR} && \ mv ${OSRELEASE}-${IMAGE}.xz \ ${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \ ${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz . endif . endfor # images loop cd ${RELEASEDIR} && rm -f CHECKSUM.* . for CHECKSUM in ${CHECKSUM_FILES} . if defined(EMBEDDED) && !empty(EMBEDDED) cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \ ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} . else # not embedded cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \ ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} . endif # . endfor # checksum files .else # not snapshot . for IMAGE in ${IMAGES} . if defined(EMBEDDED) && !empty(EMBEDDED) . if defined(OLDNAME) && !empty(OLDNAME) @# arm/armv6 IMX6 -> WANDBOARD, for example. cd ${RELEASEDIR} && \ mv ${OSRELEASE}-${OLDNAME}.${IMAGE}.xz \ ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz . endif cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \ ${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz . endif # not embedded . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}) cd ${RELEASEDIR} && \ cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \ ${ISO_DIR}/${OSRELEASE}-${IMAGE} cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE} . endif . if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz) cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \ ${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz . endif . endfor # images loop cd ${RELEASEDIR} && rm -f CHECKSUM.* . for CHECKSUM in ${CHECKSUM_FILES} . if defined(EMBEDDED) && !empty(EMBEDDED) cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \ ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} . else # not embedded cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \ CHECKSUM.${CHECKSUM}-${OSRELEASE} cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \ ${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} cd ${TLD}/ISO-IMAGES/${REVISION} && \ ln -s \ ../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE} . endif . endfor # checksum files .endif # release .if exists(${RELEASEDIR}/ftp) mkdir -p ${FTP_DIR} cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR} cd ${TLD}/${TARGET} && \ ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \ ${REVISION}-${BRANCH} .endif vm-images-stage: mkdir -p ${VM_DIR} .if defined(SNAPSHOT) && !empty(SNAPSHOT) . if exists(${VM_DIR}/Latest) rm -rf ${VM_DIR}/Latest . endif mkdir -p ${VM_DIR}/Latest mkdir -p ${VM_DIR}/${BUILDDATE} . for VMFORMAT in ${VMFORMATS} cd ${RELEASEDIR}/vmimages && \ mv ${OSRELEASE}.${VMFORMAT}.xz \ ${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \ ${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz cd ${VM_DIR}/Latest && \ ln -s ../${BUILDDATE}/${OSRELEASE}-${SNAP_SUFFIX}.${VMFORMAT}.xz \ ${OSRELEASE}.${VMFORMAT}.xz . endfor cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.* . for CHECKSUM in ${CHECKSUM_FILES} cd ${RELEASEDIR}/vmimages && \ ${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \ ${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} cd ${VM_DIR}/Latest && \ ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \ CHECKSUM.${CHECKSUM} . endfor .else # not snapshot . if exists(${VM_DIR}/Latest) rm -rf ${VM_DIR}/Latest . endif mkdir -p ${VM_DIR}/Latest . for VMFORMAT in ${VMFORMATS} cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}.${VMFORMAT}.xz \ ${VM_DIR}/Latest/${OSRELEASE}.${VMFORMAT}.xz . endfor . for CHECKSUM in ${CHECKSUM_FILES} cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \ ${VM_DIR}/Latest/CHECKSUM.${CHECKSUM} . endfor .endif ftp-stage: remove-old-bits ${STAGE_TARGETS} Index: stable/10/release/tools/ec2.conf =================================================================== --- stable/10/release/tools/ec2.conf (revision 284812) +++ stable/10/release/tools/ec2.conf (revision 284813) @@ -1,83 +1,83 @@ #!/bin/sh # # $FreeBSD$ # # Packages to install into the image we're creating. This is a deliberately # minimalist set, providing only the packages necessary to bootstrap further # package installation as specified via EC2 user-data. export VM_EXTRA_PACKAGES="ec2-scripts firstboot-freebsd-update firstboot-pkgs" # Set to a list of third-party software to enable in rc.conf(5). export VM_RC_LIST="ec2_configinit ec2_fetchkey ec2_ephemeralswap ec2_loghostkey firstboot_freebsd_update firstboot_pkgs" # Build with a 1.5 GB UFS partition; the growfs rc.d script will expand # the partition to fill the root disk after the EC2 instance is launched. # Note that if this is set to G, we will end up with an GB disk # image since VMSIZE is the size of the UFS partition, not the disk which # it resides within. export VMSIZE=1536M # No swap space; the ec2_ephemeralswap rc.d script will allocate swap # space on EC2 ephemeral disks. (If they exist -- the T2 low-cost instances # and the C4 compute-optimized instances don't have ephemeral disks. But # it would be silly to bloat the image and increase costs for every instance # just for those two families, especially since instances ranging in size # from 1 GB of RAM to 60 GB of RAM would need different sizes of swap space # anyway.) export NOSWAP=YES vm_extra_pre_umount() { # The firstboot_pkgs rc.d script will download the repository # catalogue and install or update pkg when the instance first # launches, so these files would just be replaced anyway; removing # them from the image allows it to boot faster. - pkg -c ${DESTDIR} delete -f -y pkg + env ASSUME_ALWAYS_YES=yes pkg -c ${DESTDIR} delete -f -y pkg rm ${DESTDIR}/var/db/pkg/repo-*.sqlite # The size of the EC2 root disk can be configured at instance launch # time; expand our filesystem to fill the disk. echo 'growfs_enable="YES"' >> ${DESTDIR}/etc/rc.conf # EC2 instances use DHCP to get their network configuration. echo 'ifconfig_DEFAULT="SYNCDHCP"' >> ${DESTDIR}/etc/rc.conf # Unless the system has been configured via EC2 user-data, the user # will need to SSH in to do anything. echo 'sshd_enable="YES"' >> ${DESTDIR}/etc/rc.conf # The AWS CLI tools are generally useful, and small enough that they # will download quickly; but users will often override this setting # via EC2 user-data. echo 'firstboot_pkgs_list="awscli"' >> ${DESTDIR}/etc/rc.conf # The EC2 console is output-only, so while printing a backtrace can # be useful, there's no point dropping into a debugger or waiting # for a keypress. echo 'debug.trace_on_panic=1' >> ${DESTDIR}/etc/sysctl.conf echo 'debug.debugger_on_panic=0' >> ${DESTDIR}/etc/sysctl.conf echo 'kern.panic_reboot_wait_time=0' >> ${DESTDIR}/etc/sysctl.conf # The console is not interactive, so we might as well boot quickly. echo 'autoboot_delay="-1"' >> ${DESTDIR}/boot/loader.conf echo 'beastie_disable="YES"' >> ${DESTDIR}/boot/loader.conf # The EC2 console is an emulated serial port. echo 'console="comconsole"' >> ${DESTDIR}/boot/loader.conf # Some older EC2 hardware used a version of Xen with a bug in its # emulated serial port. It is not clear if EC2 still has any such # nodes, but apply the workaround just in case. echo 'hw.broken_txfifo="1"' >> ${DESTDIR}/boot/loader.conf # The first time the AMI boots, the installed "first boot" scripts # should be allowed to run: # * ec2_configinit (download and process EC2 user-data) # * ec2_fetchkey (arrange for SSH using the EC2-provided public key) # * growfs (expand the filesystem to fill the provided disk) # * firstboot_freebsd_update (install critical updates) # * firstboot_pkgs (install packages) touch ${DESTDIR}/firstboot return 0 } Index: stable/10 =================================================================== --- stable/10 (revision 284812) +++ stable/10 (revision 284813) Property changes on: stable/10 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r284780,284811-284812