diff options
author | Carsten Koester <ckoester@cisco.com> | 2016-05-25 05:58:29 -0400 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2016-06-02 00:18:28 +0000 |
commit | 9d378548cc86028c55baf17260d32d0055603b78 (patch) | |
tree | 1cc67da7195459abcaca5f12f0f4b74bc399b60e /resources/tools | |
parent | 036f36181c177e4c77f22cdbdcb87fb2f94df3bf (diff) |
CSIT-111: Add Packer based framework to auto-generate disk images
Change-Id: Ia18ea34a6288aec0f12f176f4cc264d0f215d1fd
Signed-off-by: Carsten Koester <ckoester@cisco.com>
Diffstat (limited to 'resources/tools')
42 files changed, 5350 insertions, 722 deletions
diff --git a/resources/tools/disk-image-builder/nested/.gitignore b/resources/tools/disk-image-builder/nested/.gitignore new file mode 100644 index 0000000000..a007feab07 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/resources/tools/disk-image-builder/nested/CHANGELOG b/resources/tools/disk-image-builder/nested/CHANGELOG new file mode 100644 index 0000000000..9a0518811d --- /dev/null +++ b/resources/tools/disk-image-builder/nested/CHANGELOG @@ -0,0 +1,27 @@ +## [1.2] - 2016-05-25 + +### Changes +- Embed version in hidden file with magic string that can be read + without actually booting the image: + ~~~ + cat <vm image> | strings | grep NESTED_VERSION + ~~~ +- Include both cisco/cisco credentials (for backwards compatibility) + and csit/csit + +## [1.1] - 2016-05-17 + +### Added +- iproute2 package (for "ip" command) + + +## [1.0] - 2016-05-16 + +### First release +- Basic script to build FD.IO VPP CSIT "nested VM" image using buildroot. +This version is to mimic the previous, manually built image. +- Packages installed: + - Kernel 4.3 + - support for virtio NIC + - bridge-utils (for brctl) + - qemu (for qemu-ga) diff --git a/resources/tools/disk-image-builder/nested/README.md b/resources/tools/disk-image-builder/nested/README.md new file mode 100644 index 0000000000..3c4968909c --- /dev/null +++ b/resources/tools/disk-image-builder/nested/README.md @@ -0,0 +1,71 @@ +# Nested VM builder + +## Summary + +The files in this directory are used to build CSIT's "nested VM" image. +The Nested VM image is a mini Linux image that gets spun up inside the +main CSIT test VM for selected test cases. + +Considering that this VM is: + +- Very purpose-built; the ONLY thing it needs to do is run a bridge group, +- spun up and torn down repeatedly by an automated test case, +- is bundled within another VM image where resources are already limited, + +this VM is designed to be minimalistic, small and efficient. For that reason +it is NOT build around any established Linux distribution (Ubuntu, +Red Hat, ...), but around "buildroot" (https://buildroot.org/) which is +aimed at building small Linux images for embedded systems. + +Scripts in this directory are aimed at producing functionally identical VM +images each time they are run. That is, a given version of this package +will consistenly download the same buildroot version, and install the same +packages and the same kernel version with the same config. + + +### Prerequisites + +This scripts have been tested on Ubuntu Linux. They should run on any platform +supported by buildroot, and where a standard bourne shell and Linux toolchain +are available. + +## Files + +### requirements.sh + +(One-time) installs required Ubuntu packages for buildroot + + +### build.sh + +Downloads all required packages source code and builds the nested VM image. +Is NOT intended to be run as root, but requires "sudo" privileges for a +handful of commands. + +### clean.sh + +Remove any object files and compiled files. Keep the downloaded source +packages, both of buildroot itself as well as any packages downloaded by +buildroot. + +### deepclean.sh + +Remove any compiled or downloaded files. + +### CHANGELOG + +A change log. This will also be copied onto the image itself. +Versions in the changelog MUST be tagged as follows: + +~~~ +## [MAJOR.MINOR] YYYY-MM-DD +~~~ +eg. + +~~~ +## [1.0] 2016-05-16 +~~~ + +This format will be used for auto-extracting the version +number, which will become part of the target image filename +and will also be copied onto the image itself. diff --git a/resources/tools/disk-image-builder/nested/build.sh b/resources/tools/disk-image-builder/nested/build.sh new file mode 100755 index 0000000000..7eddd64052 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/build.sh @@ -0,0 +1,178 @@ +#!/bin/sh + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Note: In order to limit the damage this script can do, it is recommended +# to NOT run as root. + +# +# 1. Download buildroot +# 2. Build buildroot kernel and root file system as per +# config files included in this package +# 3. Create empty disk image and extract buildroot root +# file system onto it, make it bootable +# 4. Apply any patches/additions included in this package +# +BUILD_DIR="$(dirname $0)/build" + +BUILDROOT_NAME='buildroot-2016.02' +BUILDROOT_DIR="${BUILD_DIR}/${BUILDROOT_NAME}" +BUILDROOT_TARBALL="${BUILDROOT_NAME}.tar.gz" +BUILDROOT_URL="https://buildroot.org/downloads/${BUILDROOT_TARBALL}" +BUILDROOT_OUTPUT="${BUILDROOT_DIR}/output/images/rootfs.tar" + +DISK_FREE_SIZE=8388608 # Min. free space on disk (8 MB) +DISK_ROUND_TO_NEAREST=16777216 # Round disk size up to nearest (16 MB) + +VERSION=$(cat $(dirname $0)/CHANGELOG | grep '^## ' | head -1 | sed -e 's/.*\[\(.*\)\].*/\1/') +if [ "${VERSION}" = "" ] +then + echo "Unable to determine build version from CHANGELOG file. Make sure" + echo "that there is an entry for the most recent version in CHANGELOG," + echo "and that the entry is formated like" + echo + echo "## [1.0] - 2016-05-16" + exit 1 +fi + +echo Building version: ${VERSION} +echo $VERSION > ${BUILD_DIR}/VERSION +echo "NESTED_VERSION=${VERSION}" > ${BUILD_DIR}/VERSION_HIDDEN +img_name="${BUILD_DIR}/csit-nested-${VERSION}.img" + +# Normally no need to touch the variables below +DISK_SECT_SIZE=512 +DISK_HEADS=16 +DISK_SECT_PER_TRACK=63 +DISK_RESERVED_SECTORS=2048 + +MOUNT_TMPDIR="${BUILD_DIR}/tmp-mount" + +set -e + +# Download buildroot if not already there +wget -P ${BUILD_DIR} -N $BUILDROOT_URL +tar -C ${BUILD_DIR} -xzf ${BUILD_DIR}/$BUILDROOT_TARBALL + +cp -p buildroot-config $BUILDROOT_DIR/.config +cp -p kernel-defconfig $BUILDROOT_DIR/kernel-defconfig +make -C $BUILDROOT_DIR + +if [ ! -f ${BUILDROOT_OUTPUT} ] +then + echo "Buildroot compiled OK, but root file system ${BUILDROOT_OUTPUT}" + echo "does not exist. Somethig is wrong. Exiting." + exit 1 +fi + +# If we got here, it means we downloaded (if applicable) and built (if +# applicable) buildroot OK. +# +# Now let's calculate the required disk size, and build an empty disk. + +buildroot_size=$(stat -c%s ${BUILDROOT_OUTPUT}) +desired_size=$(( ${buildroot_size} + ${DISK_FREE_SIZE} )) +rounded_size=$(( ((${desired_size}/${DISK_ROUND_TO_NEAREST})+1) * \ + ${DISK_ROUND_TO_NEAREST} )) + +echo "Actual root FS size: ${buildroot_size}" +echo "Root FS size + desired free space (${DISK_FREE_SIZE}): ${desired_size}" +echo "Root FS size rounded to nearest ${DISK_ROUND_TO_NEAREST}:" \ + "${rounded_size} ($(( ${rounded_size} / 1024 / 1024 )) MB)" + +# In a normal world, we'd be creating a full-size empty image with "dd", an +# then use fdisk to partition it, and a tool like "kpartx" to map this into +# individual partitions. We'd then map the partition we're interested in. +# However, in order to avoid messing with /dev/mapper, we can also create +# our actual partition first, and then merge it with the MBR+partition table +# "prefix" to obtain our full disk. + +sectors=$(( ${rounded_size} / ${DISK_SECT_SIZE} )) + +disk_prefix=${img_name}.prefix +disk_main=${img_name}.main + +dd if=/dev/zero of=${disk_prefix} bs=${DISK_SECT_SIZE} \ + count=${DISK_RESERVED_SECTORS} +dd if=/dev/zero of=${disk_main} bs=${DISK_SECT_SIZE} \ + count=$(( $sectors - ${DISK_RESERVED_SECTORS} )) + +# Format and mount the root file system +mkfs.ext2 -F -L root ${disk_main} +mkdir -p ${MOUNT_TMPDIR} +sudo mount -o loop ${disk_main} ${MOUNT_TMPDIR} +trap "sudo umount ${MOUNT_TMPDIR}" EXIT + +# Extract the root filesystem +echo "Extracting root filesystem..." +sudo tar -C ${MOUNT_TMPDIR} -xf ${BUILDROOT_OUTPUT} + +# Apply any patches +echo "Applying patches/modifications" +mydir=$(pwd) +cd ${MOUNT_TMPDIR} +sudo run-parts -v ${mydir}/patches +cd ${mydir} + +# Copy version and changelog +sudo cp ${BUILD_DIR}/VERSION ${MOUNT_TMPDIR}/ +sudo cp ${mydir}/CHANGELOG ${MOUNT_TMPDIR}/ +# Also embed this into a hidden file that we can easily retrieve with +# "cat <disk image> | strings | grep NESTED_VERSION" +sudo cp ${BUILD_DIR}/VERSION_HIDDEN ${MOUNT_TMPDIR}/.VERSION.HIDDEN + +# Unmount root filesystem +sudo umount ${MOUNT_TMPDIR} +trap EXIT +rmdir ${MOUNT_TMPDIR} + +# Now create our larger disk +cat ${disk_prefix} ${disk_main} > ${img_name} +rm -f ${disk_prefix} ${disk_main} + +# Create partition table on the disk +sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << _EOF | fdisk -H ${DISK_HEADS} -S ${DISK_SECT_PER_TRACK} ${img_name} + o # clear the in memory partition table + n # new partition + p # primary partition + 1 # partition number 1 + ${DISK_RESERVED_SECTORS} # Start a few KB into the disk, leave room for GRUB + # Default - all the way through the end of the disk + a # make a partition bootable + 1 # bootable partition is partition 1 + p # print the in-memory partition table + w # write the partition table + q # and we're done +_EOF + +disk_cylinders=$(fdisk -l -H ${DISK_HEADS} -S ${DISK_SECT_PER_TRACK} ${img_name} | \ + grep cylinders | \ + sed -e 's/.* \([0-9][0-9]*\) cylinders.*/\1/') + +echo "Disk has ${disk_cylinders} cylinders" + +# Install GRUB bootloader on the disk image +${BUILDROOT_DIR}/output/host/sbin/grub --device-map=/dev/null <<_EOF +device (hd0) ${img_name} +geometry (hd0) ${disk_cylinders} ${DISK_HEADS} ${DISK_SECT_PER_TRACK} +root (hd0,0) +setup (hd0) +quit +_EOF + +echo +echo +echo +echo "Your image should be ready in:" +ls -l ${img_name} diff --git a/resources/tools/disk-image-builder/nested/buildroot-config b/resources/tools/disk-image-builder/nested/buildroot-config new file mode 100644 index 0000000000..b909a39270 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/buildroot-config @@ -0,0 +1,2685 @@ +# +# Automatically generated file; DO NOT EDIT. +# Buildroot 2016.02 Configuration +# +BR2_HAVE_DOT_CONFIG=y +BR2_HOST_GCC_AT_LEAST_4_7=y +BR2_HOST_GCC_AT_LEAST_4_8=y +BR2_HOSTARCH_NEEDS_IA32_COMPILER=y + +# +# Target options +# +BR2_ARCH_IS_64=y +BR2_ARCH_HAS_MMU_MANDATORY=y +# BR2_arcle is not set +# BR2_arceb is not set +# BR2_arm is not set +# BR2_armeb is not set +# BR2_aarch64 is not set +# BR2_aarch64_be is not set +# BR2_bfin is not set +# BR2_i386 is not set +# BR2_microblazeel is not set +# BR2_microblazebe is not set +# BR2_mips is not set +# BR2_mipsel is not set +# BR2_mips64 is not set +# BR2_mips64el is not set +# BR2_nios2 is not set +# BR2_powerpc is not set +# BR2_powerpc64 is not set +# BR2_powerpc64le is not set +# BR2_sh is not set +# BR2_sparc is not set +# BR2_sparc64 is not set +BR2_x86_64=y +# BR2_xtensa is not set +BR2_ARCH="x86_64" +BR2_ENDIAN="LITTLE" +BR2_GCC_TARGET_ARCH="corei7" +BR2_BINFMT_SUPPORTS_SHARED=y +BR2_BINFMT_ELF=y +BR2_X86_CPU_HAS_MMX=y +BR2_X86_CPU_HAS_SSE=y +BR2_X86_CPU_HAS_SSE2=y +BR2_X86_CPU_HAS_SSE3=y +BR2_X86_CPU_HAS_SSSE3=y +BR2_X86_CPU_HAS_SSE4=y +BR2_X86_CPU_HAS_SSE42=y +# BR2_x86_nocona is not set +# BR2_x86_core2 is not set +BR2_x86_corei7=y +# BR2_x86_corei7_avx is not set +# BR2_x86_core_avx2 is not set +# BR2_x86_atom is not set +# BR2_x86_opteron is not set +# BR2_x86_opteron_sse3 is not set +# BR2_x86_barcelona is not set +# BR2_x86_jaguar is not set +# BR2_x86_steamroller is not set + +# +# Build options +# + +# +# Commands +# +BR2_WGET="wget --passive-ftp -nd -t 3" +BR2_SVN="svn" +BR2_BZR="bzr" +BR2_GIT="git" +BR2_CVS="cvs" +BR2_LOCALFILES="cp" +BR2_SCP="scp" +BR2_SSH="ssh" +BR2_HG="hg" +BR2_ZCAT="gzip -d -c" +BR2_BZCAT="bzcat" +BR2_XZCAT="xzcat" +BR2_TAR_OPTIONS="" +BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig" +BR2_DL_DIR="$(TOPDIR)/dl" +BR2_HOST_DIR="$(BASE_DIR)/host" + +# +# Mirrors and Download locations +# +BR2_PRIMARY_SITE="" +BR2_BACKUP_SITE="http://sources.buildroot.net" +BR2_KERNEL_MIRROR="https://www.kernel.org/pub" +BR2_GNU_MIRROR="http://ftp.gnu.org/pub/gnu" +BR2_LUAROCKS_MIRROR="http://rocks.moonscript.org" +BR2_CPAN_MIRROR="http://cpan.metacpan.org" +BR2_JLEVEL=0 +# BR2_CCACHE is not set +# BR2_DEPRECATED is not set +# BR2_ENABLE_DEBUG is not set +BR2_STRIP_strip=y +# BR2_STRIP_none is not set +BR2_STRIP_EXCLUDE_FILES="" +BR2_STRIP_EXCLUDE_DIRS="" +# BR2_OPTIMIZE_0 is not set +# BR2_OPTIMIZE_1 is not set +# BR2_OPTIMIZE_2 is not set +# BR2_OPTIMIZE_3 is not set +BR2_OPTIMIZE_S=y + +# +# Stack Smashing Protection needs a toolchain w/ SSP +# +# BR2_STATIC_LIBS is not set +BR2_SHARED_LIBS=y +# BR2_SHARED_STATIC_LIBS is not set +BR2_PACKAGE_OVERRIDE_FILE="$(CONFIG_DIR)/local.mk" +BR2_GLOBAL_PATCH_DIR="" + +# +# Advanced +# +# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set + +# +# Toolchain +# +BR2_TOOLCHAIN=y +BR2_TOOLCHAIN_USES_UCLIBC=y +BR2_TOOLCHAIN_BUILDROOT=y +# BR2_TOOLCHAIN_EXTERNAL is not set +BR2_TOOLCHAIN_BUILDROOT_VENDOR="buildroot" + +# +# Kernel Header Options +# +# BR2_KERNEL_HEADERS_AS_KERNEL is not set +# BR2_KERNEL_HEADERS_3_2 is not set +# BR2_KERNEL_HEADERS_3_4 is not set +# BR2_KERNEL_HEADERS_3_10 is not set +# BR2_KERNEL_HEADERS_3_12 is not set +# BR2_KERNEL_HEADERS_3_14 is not set +# BR2_KERNEL_HEADERS_3_18 is not set +# BR2_KERNEL_HEADERS_4_1 is not set +# BR2_KERNEL_HEADERS_4_3 is not set +BR2_KERNEL_HEADERS_4_4=y +# BR2_KERNEL_HEADERS_VERSION is not set +BR2_DEFAULT_KERNEL_HEADERS="4.4.3" +BR2_TOOLCHAIN_BUILDROOT_UCLIBC=y +# BR2_TOOLCHAIN_BUILDROOT_GLIBC is not set +# BR2_TOOLCHAIN_BUILDROOT_MUSL is not set +BR2_TOOLCHAIN_BUILDROOT_LIBC="uclibc" +BR2_PACKAGE_LINUX_HEADERS=y +BR2_PACKAGE_UCLIBC=y + +# +# uClibc Options +# +BR2_UCLIBC_CONFIG="package/uclibc/uClibc-ng.config" +BR2_UCLIBC_CONFIG_FRAGMENT_FILES="" +# BR2_TOOLCHAIN_BUILDROOT_INET_RPC is not set +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# BR2_TOOLCHAIN_BUILDROOT_LOCALE is not set +# BR2_PTHREADS_NONE is not set +BR2_PTHREADS_NATIVE=y +# BR2_PTHREAD_DEBUG is not set +# BR2_TOOLCHAIN_BUILDROOT_USE_SSP is not set +BR2_UCLIBC_INSTALL_UTILS=y +# BR2_UCLIBC_INSTALL_TEST_SUITE is not set +BR2_UCLIBC_TARGET_ARCH="x86_64" + +# +# Binutils Options +# +# BR2_BINUTILS_VERSION_2_23_X is not set +BR2_BINUTILS_VERSION_2_24_X=y +# BR2_BINUTILS_VERSION_2_25_X is not set +BR2_BINUTILS_VERSION="2.24" +BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="" + +# +# GCC Options +# +BR2_GCC_NEEDS_MPC=y +BR2_GCC_SUPPORTS_GRAPHITE=y +# BR2_GCC_VERSION_4_7_X is not set +# BR2_GCC_VERSION_4_8_X is not set +BR2_GCC_VERSION_4_9_X=y +# BR2_GCC_VERSION_5_X is not set +BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE=y +BR2_GCC_VERSION="4.9.3" +BR2_EXTRA_GCC_CONFIG_OPTIONS="" +# BR2_TOOLCHAIN_BUILDROOT_CXX is not set +# BR2_TOOLCHAIN_BUILDROOT_FORTRAN is not set +BR2_GCC_ENABLE_TLS=y +# BR2_GCC_ENABLE_LTO is not set +# BR2_GCC_ENABLE_OPENMP is not set +# BR2_GCC_ENABLE_GRAPHITE is not set +# BR2_PACKAGE_HOST_GDB is not set +BR2_USE_WCHAR=y +BR2_TOOLCHAIN_HAS_THREADS=y +BR2_TOOLCHAIN_HAS_THREADS_NPTL=y +BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS=y +# BR2_ENABLE_LOCALE_PURGE is not set +BR2_NEEDS_GETTEXT=y +BR2_USE_MMU=y +BR2_TARGET_OPTIMIZATION="" +BR2_TARGET_LDFLAGS="" +# BR2_ECLIPSE_REGISTER is not set +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST="4.4" +BR2_TOOLCHAIN_GCC_AT_LEAST_4_3=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_4=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_5=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_6=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_7=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_8=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_9=y +BR2_TOOLCHAIN_GCC_AT_LEAST="4.9" +BR2_TOOLCHAIN_HAS_SYNC_1=y +BR2_TOOLCHAIN_HAS_SYNC_2=y +BR2_TOOLCHAIN_HAS_SYNC_4=y +BR2_TOOLCHAIN_HAS_SYNC_8=y +BR2_TOOLCHAIN_HAS_ATOMIC=y + +# +# System configuration +# +BR2_TARGET_GENERIC_HOSTNAME="buildroot" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot" +BR2_TARGET_GENERIC_PASSWD_MD5=y +# BR2_TARGET_GENERIC_PASSWD_SHA256 is not set +# BR2_TARGET_GENERIC_PASSWD_SHA512 is not set +BR2_TARGET_GENERIC_PASSWD_METHOD="md5" +BR2_INIT_BUSYBOX=y +# BR2_INIT_SYSV is not set + +# +# systemd needs (e)glibc toolchain, headers >= 3.10 +# +# BR2_INIT_NONE is not set +# BR2_ROOTFS_DEVICE_CREATION_STATIC is not set +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y +# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set +# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is not set +BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt" +BR2_ROOTFS_SKELETON_DEFAULT=y +# BR2_ROOTFS_SKELETON_CUSTOM is not set +# BR2_ROOTFS_MERGED_USR is not set +BR2_TARGET_ENABLE_ROOT_LOGIN=y +BR2_TARGET_GENERIC_ROOT_PASSWD="" +BR2_SYSTEM_BIN_SH_BUSYBOX=y + +# +# bash, dash, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS +# +# BR2_SYSTEM_BIN_SH_NONE is not set +BR2_SYSTEM_BIN_SH="busybox" +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="console" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP=y +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 is not set +BR2_TARGET_GENERIC_GETTY_BAUDRATE="0" +BR2_TARGET_GENERIC_GETTY_TERM="vt100" +BR2_TARGET_GENERIC_GETTY_OPTIONS="" +BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y +BR2_SYSTEM_DHCP="" +# BR2_TARGET_TZ_INFO is not set +BR2_ROOTFS_USERS_TABLES="" +BR2_ROOTFS_OVERLAY="" +BR2_ROOTFS_POST_BUILD_SCRIPT="" +BR2_ROOTFS_POST_IMAGE_SCRIPT="" + +# +# Kernel +# +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_LATEST_VERSION=y +# BR2_LINUX_KERNEL_CUSTOM_VERSION is not set +# BR2_LINUX_KERNEL_CUSTOM_TARBALL is not set +# BR2_LINUX_KERNEL_CUSTOM_GIT is not set +# BR2_LINUX_KERNEL_CUSTOM_HG is not set +# BR2_LINUX_KERNEL_CUSTOM_LOCAL is not set +BR2_LINUX_KERNEL_VERSION="4.4.3" +BR2_LINUX_KERNEL_PATCH="" +# BR2_LINUX_KERNEL_USE_DEFCONFIG is not set +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="kernel-defconfig" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="" +BR2_LINUX_KERNEL_BZIMAGE=y +# BR2_LINUX_KERNEL_VMLINUX is not set +# BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is not set +BR2_LINUX_KERNEL_GZIP=y +# BR2_LINUX_KERNEL_LZ4 is not set +# BR2_LINUX_KERNEL_LZMA is not set +# BR2_LINUX_KERNEL_LZO is not set +# BR2_LINUX_KERNEL_XZ is not set +# BR2_LINUX_KERNEL_DTS_SUPPORT is not set +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# +# Linux Kernel Extensions +# +# BR2_LINUX_KERNEL_EXT_XENOMAI is not set +# BR2_LINUX_KERNEL_EXT_RTAI is not set +# BR2_LINUX_KERNEL_EXT_FBTFT is not set + +# +# Linux Kernel Tools +# +# BR2_LINUX_KERNEL_TOOL_CPUPOWER is not set +# BR2_LINUX_KERNEL_TOOL_PERF is not set + +# +# Target packages +# +BR2_PACKAGE_BUSYBOX=y +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="" +# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set +# BR2_PACKAGE_BUSYBOX_SELINUX is not set +# BR2_PACKAGE_BUSYBOX_WATCHDOG is not set +BR2_PACKAGE_SKELETON=y + +# +# Audio and video applications +# +# BR2_PACKAGE_ALSA_UTILS is not set +# BR2_PACKAGE_AUMIX is not set + +# +# bellagio needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_DVBLAST is not set +# BR2_PACKAGE_DVDAUTHOR is not set + +# +# dvdrw-tools needs a toolchain w/ threads, C++, wchar +# + +# +# espeak needs a toolchain w/ C++, wchar, threads, dynamic library +# +# BR2_PACKAGE_FAAD2 is not set +# BR2_PACKAGE_FFMPEG is not set +# BR2_PACKAGE_FLAC is not set +# BR2_PACKAGE_FLITE is not set +# BR2_PACKAGE_GSTREAMER is not set +# BR2_PACKAGE_GSTREAMER1 is not set + +# +# jack2 needs a toolchain w/ threads, C++, dynamic library +# +BR2_PACKAGE_KODI_ARCH_SUPPORTS=y + +# +# kodi needs a toolchain w/ C++, threads, wchar, dynamic library +# + +# +# kodi needs an OpenGL or an openGL ES and EGL backend +# +# BR2_PACKAGE_LAME is not set +# BR2_PACKAGE_MADPLAY is not set + +# +# miraclecast needs systemd and a glibc toolchain w/ threads and wchar +# + +# +# mjpegtools needs a toolchain w/ C++, threads +# + +# +# modplugtools needs a toolchain w/ C++ +# + +# +# mpd needs a toolchain w/ C++, threads, wchar, gcc >= 4.6 +# +# BR2_PACKAGE_MPD_MPC is not set +# BR2_PACKAGE_MPG123 is not set +BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS=y +# BR2_PACKAGE_MPLAYER is not set +# BR2_PACKAGE_MUSEPACK is not set +# BR2_PACKAGE_NCMPC is not set +# BR2_PACKAGE_OPUS_TOOLS is not set +# BR2_PACKAGE_PULSEAUDIO is not set +# BR2_PACKAGE_SOX is not set +# BR2_PACKAGE_SQUEEZELITE is not set + +# +# tovid needs a toolchain w/ threads, C++, wchar +# + +# +# tovid depends on python or python3 +# +# BR2_PACKAGE_TSTOOLS is not set +# BR2_PACKAGE_TWOLAME is not set + +# +# upmpdcli needs a toolchain w/ C++, threads, gcc >= 4.6 +# + +# +# v4l2grab needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0 +# + +# +# vlc needs a toolchain w/ C++, dynamic library, wchar, threads, headers >= 3.7 +# +# BR2_PACKAGE_VORBIS_TOOLS is not set +# BR2_PACKAGE_WAVPACK is not set +# BR2_PACKAGE_YAVTA is not set +# BR2_PACKAGE_YMPD is not set + +# +# Compressors and decompressors +# +# BR2_PACKAGE_BZIP2 is not set +# BR2_PACKAGE_LZ4 is not set + +# +# lzip needs a toolchain w/ C++ +# +# BR2_PACKAGE_LZOP is not set + +# +# unrar needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_XZ is not set +# BR2_PACKAGE_ZIP is not set + +# +# Debugging, profiling and benchmark +# + +# +# blktrace needs a (e)glibc or musl toolchain +# + +# +# bonnie++ needs a toolchain w/ C++ +# +# BR2_PACKAGE_CACHE_CALIBRATOR is not set +# BR2_PACKAGE_DHRYSTONE is not set +# BR2_PACKAGE_DMALLOC is not set +# BR2_PACKAGE_DROPWATCH is not set +# BR2_PACKAGE_DSTAT is not set + +# +# duma needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_FIO is not set + +# +# gdb/gdbserver needs a toolchain w/ threads, threads debug +# +BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS=y + +# +# google-breakpad requires an (e)glibc toolchain w/ C++ enabled +# +# BR2_PACKAGE_IOZONE is not set +# BR2_PACKAGE_KEXEC is not set +# BR2_PACKAGE_KTAP is not set +# BR2_PACKAGE_LATENCYTOP is not set +# BR2_PACKAGE_LMBENCH is not set +# BR2_PACKAGE_LTP_TESTSUITE is not set +# BR2_PACKAGE_LTRACE is not set +# BR2_PACKAGE_LTTNG_BABELTRACE is not set +# BR2_PACKAGE_LTTNG_MODULES is not set +# BR2_PACKAGE_LTTNG_TOOLS is not set +# BR2_PACKAGE_MCELOG is not set +# BR2_PACKAGE_MEMSTAT is not set +# BR2_PACKAGE_NETPERF is not set + +# +# netsniff-ng needs an (e)glibc toolchain w/ threads, headers >= 3.0 +# + +# +# oprofile needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_PAX_UTILS is not set +# BR2_PACKAGE_PV is not set + +# +# racehound needs a uClibc or (e)glibc toolchain w/ C++, wchar, dynamic library +# +# BR2_PACKAGE_RAMSMP is not set +# BR2_PACKAGE_RAMSPEED is not set +# BR2_PACKAGE_RT_TESTS is not set +# BR2_PACKAGE_SPIDEV_TEST is not set +# BR2_PACKAGE_STRACE is not set +# BR2_PACKAGE_STRESS is not set + +# +# stress-ng needs a glibc toolchain w/ dynamic library, headers >= 3.3 +# + +# +# sysdig needs a toolchain w/ C++, gcc >= 4.7, dynamic library and a Linux kernel to be built +# +# BR2_PACKAGE_SYSPROF is not set +# BR2_PACKAGE_TINYMEMBENCH is not set +# BR2_PACKAGE_TRACE_CMD is not set +# BR2_PACKAGE_TRINITY is not set +# BR2_PACKAGE_VALGRIND is not set +# BR2_PACKAGE_WHETSTONE is not set + +# +# Development tools +# +# BR2_PACKAGE_BINUTILS is not set +# BR2_PACKAGE_BSDIFF is not set +# BR2_PACKAGE_CHECK is not set +BR2_PACKAGE_CMAKE_ARCH_SUPPORTS=y + +# +# ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.7 +# + +# +# cppunit needs a toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_CVS is not set + +# +# cxxtest needs a toolchain w/ C++ support +# +# BR2_PACKAGE_FLEX is not set +BR2_PACKAGE_GETTEXT=y +# BR2_PACKAGE_GIT is not set + +# +# gperf needs a toolchain w/ C++ +# +# BR2_PACKAGE_JQ is not set +# BR2_PACKAGE_LIBTOOL is not set +# BR2_PACKAGE_MAKE is not set +# BR2_PACKAGE_PKGCONF is not set +# BR2_PACKAGE_SSTRIP is not set +# BR2_PACKAGE_SUBVERSION is not set +# BR2_PACKAGE_TREE is not set +# BR2_PACKAGE_YASM is not set + +# +# Filesystem and flash utilities +# + +# +# autofs needs a toolchain w/ threads, RPC, dynamic library +# +# BR2_PACKAGE_BTRFS_PROGS is not set +# BR2_PACKAGE_CIFS_UTILS is not set +# BR2_PACKAGE_CPIO is not set +# BR2_PACKAGE_CRAMFS is not set +# BR2_PACKAGE_CURLFTPFS is not set +# BR2_PACKAGE_DOSFSTOOLS is not set +# BR2_PACKAGE_E2FSPROGS is not set +# BR2_PACKAGE_E2TOOLS is not set +# BR2_PACKAGE_ECRYPTFS_UTILS is not set +# BR2_PACKAGE_EXFAT is not set +# BR2_PACKAGE_EXFAT_UTILS is not set +# BR2_PACKAGE_F2FS_TOOLS is not set +# BR2_PACKAGE_FLASHBENCH is not set +# BR2_PACKAGE_GENEXT2FS is not set +# BR2_PACKAGE_GENPART is not set +# BR2_PACKAGE_GENROMFS is not set +# BR2_PACKAGE_MAKEDEVS is not set +# BR2_PACKAGE_MMC_UTILS is not set +# BR2_PACKAGE_MTD is not set +# BR2_PACKAGE_MTOOLS is not set +# BR2_PACKAGE_NFS_UTILS is not set +# BR2_PACKAGE_NTFS_3G is not set +# BR2_PACKAGE_SIMICSFS is not set +# BR2_PACKAGE_SP_OOPS_EXTRACT is not set +# BR2_PACKAGE_SQUASHFS is not set +# BR2_PACKAGE_SSHFS is not set +# BR2_PACKAGE_UNIONFS is not set +# BR2_PACKAGE_XFSPROGS is not set + +# +# Fonts, cursors, icons, sounds and themes +# + +# +# Cursors +# +# BR2_PACKAGE_COMIX_CURSORS is not set +# BR2_PACKAGE_OBSIDIAN_CURSORS is not set + +# +# Fonts +# +# BR2_PACKAGE_BITSTREAM_VERA is not set +# BR2_PACKAGE_CANTARELL is not set +# BR2_PACKAGE_DEJAVU is not set +# BR2_PACKAGE_GHOSTSCRIPT_FONTS is not set +# BR2_PACKAGE_INCONSOLATA is not set +# BR2_PACKAGE_LIBERATION is not set + +# +# Icons +# +# BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS is not set +# BR2_PACKAGE_HICOLOR_ICON_THEME is not set + +# +# Sounds +# +# BR2_PACKAGE_SOUND_THEME_BOREALIS is not set +# BR2_PACKAGE_SOUND_THEME_FREEDESKTOP is not set + +# +# Themes +# + +# +# Games +# +# BR2_PACKAGE_CHOCOLATE_DOOM is not set + +# +# gnuchess needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LBREAKOUT2 is not set +# BR2_PACKAGE_LTRIS is not set +# BR2_PACKAGE_OPENTYRIAN is not set +# BR2_PACKAGE_PRBOOM is not set +# BR2_PACKAGE_SL is not set + +# +# Graphic libraries and applications (graphic/text) +# + +# +# Graphic applications +# + +# +# expedite needs a toolchain w/ C++ +# +# BR2_PACKAGE_FSWEBCAM is not set + +# +# glmark2 needs an OpenGL or an openGL ES and EGL backend provided by mesa3d +# + +# +# glmark2 needs udev /dev management and a toolchain w/ C++, NPTL +# +# BR2_PACKAGE_GNUPLOT is not set +# BR2_PACKAGE_JHEAD is not set +# BR2_PACKAGE_RRDTOOL is not set + +# +# Graphic libraries +# + +# +# cegui06 needs a toolchain w/ C++, threads, dynamic library +# + +# +# directfb needs a (e)glibc or uClibc toolchain w/ C++, threads, gcc >= 4.5 +# + +# +# efl needs udev /dev management and a toolchain w/ C++, dynamic library, threads, wchar +# + +# +# efl needs lua 5.1 +# +# BR2_PACKAGE_FBDUMP is not set +# BR2_PACKAGE_FBGRAB is not set +# BR2_PACKAGE_FB_TEST_APP is not set + +# +# fbterm needs a toolchain w/ C++, wchar, locale +# +# BR2_PACKAGE_FBV is not set + +# +# freerdp needs a toolchain w/ wchar, dynamic library, threads, C++ +# +# BR2_PACKAGE_IMAGEMAGICK is not set +# BR2_PACKAGE_LINUX_FUSION is not set + +# +# mesa3d needs a toolchain w/ C++, NPTL, dynamic library +# + +# +# ocrad needs a toolchain w/ C++ +# +# BR2_PACKAGE_PSPLASH is not set +# BR2_PACKAGE_SDL is not set +# BR2_PACKAGE_SDL2 is not set + +# +# Other GUIs +# + +# +# qt needs a toolchain w/ C++, threads +# +BR2_PACKAGE_QT5_JSCORE_AVAILABLE=y + +# +# Qt5 needs a toolchain w/ wchar, NPTL, C++, dynamic library +# + +# +# weston needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0 +# +# BR2_PACKAGE_XORG7 is not set + +# +# X applications +# + +# +# midori needs libgtk2 and a toolchain w/ C++, wchar, NPTL, gcc >= 4.8 +# + +# +# pcmanfm needs X.org and a toolchain w/ wchar, threads, C++ +# + +# +# X libraries and helper libraries +# +# BR2_PACKAGE_XKEYBOARD_CONFIG is not set + +# +# X window managers +# + +# +# Hardware handling +# + +# +# Firmware +# +# BR2_PACKAGE_B43_FIRMWARE is not set +# BR2_PACKAGE_LINUX_FIRMWARE is not set +# BR2_PACKAGE_UX500_FIRMWARE is not set +# BR2_PACKAGE_ZD1211_FIRMWARE is not set +# BR2_PACKAGE_ACPID is not set +# BR2_PACKAGE_AVRDUDE is not set + +# +# bcache-tools needs udev /dev management and a toolchain w/ wchar +# + +# +# cc-tool needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_CDRKIT is not set +# BR2_PACKAGE_CRYPTSETUP is not set +# BR2_PACKAGE_CWIID is not set +# BR2_PACKAGE_DBUS is not set +# BR2_PACKAGE_DMIDECODE is not set +# BR2_PACKAGE_DMRAID is not set +# BR2_PACKAGE_DTV_SCAN_TABLES is not set +# BR2_PACKAGE_DVB_APPS is not set +# BR2_PACKAGE_DVBSNOOP is not set +# BR2_PACKAGE_EDID_DECODE is not set +# BR2_PACKAGE_EEPROG is not set + +# +# eudev needs eudev /dev management +# +# BR2_PACKAGE_EVEMU is not set +# BR2_PACKAGE_EVTEST is not set +# BR2_PACKAGE_FAN_CTRL is not set +# BR2_PACKAGE_FCONFIG is not set +# BR2_PACKAGE_FIS is not set +# BR2_PACKAGE_FLASHROM is not set +# BR2_PACKAGE_FMTOOLS is not set +# BR2_PACKAGE_FXLOAD is not set +# BR2_PACKAGE_GADGETFS_TEST is not set +# BR2_PACKAGE_GPM is not set +# BR2_PACKAGE_GPSD is not set + +# +# gptfdisk needs a toolchain w/ wchar, C++ +# +# BR2_PACKAGE_GVFS is not set +# BR2_PACKAGE_HWDATA is not set +# BR2_PACKAGE_HWLOC is not set +# BR2_PACKAGE_I2C_TOOLS is not set +# BR2_PACKAGE_INPUT_EVENT_DAEMON is not set +# BR2_PACKAGE_INPUT_TOOLS is not set +# BR2_PACKAGE_INTEL_MICROCODE is not set +# BR2_PACKAGE_IOSTAT is not set +# BR2_PACKAGE_IPMITOOL is not set +# BR2_PACKAGE_IPMIUTIL is not set +# BR2_PACKAGE_IQVLINUX is not set +# BR2_PACKAGE_IRDA_UTILS is not set +# BR2_PACKAGE_IUCODE_TOOL is not set +# BR2_PACKAGE_KBD is not set +# BR2_PACKAGE_LCDPROC is not set +# BR2_PACKAGE_LINUX_BACKPORTS is not set +# BR2_PACKAGE_LIRC_TOOLS is not set +# BR2_PACKAGE_LM_SENSORS is not set + +# +# lshw needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LSUIO is not set +# BR2_PACKAGE_LVM2 is not set +# BR2_PACKAGE_MDADM is not set +# BR2_PACKAGE_MEMTEST86 is not set +# BR2_PACKAGE_MEMTESTER is not set +# BR2_PACKAGE_MINICOM is not set +# BR2_PACKAGE_NANOCOM is not set +# BR2_PACKAGE_NEARD is not set + +# +# nvidia-driver needs an (e)glibc toolchain +# +# BR2_PACKAGE_OFONO is not set + +# +# ola needs a toolchain w/ C++, threads, wchar, dynamic library +# +# BR2_PACKAGE_OPEN2300 is not set +# BR2_PACKAGE_OPENIPMI is not set +# BR2_PACKAGE_OPENOCD is not set + +# +# openpowerlink needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_PARTED is not set +# BR2_PACKAGE_PCIUTILS is not set +# BR2_PACKAGE_PICOCOM is not set + +# +# powertop needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_PPS_TOOLS is not set +# BR2_PACKAGE_READ_EDID is not set +# BR2_PACKAGE_RFKILL is not set +# BR2_PACKAGE_RNG_TOOLS is not set +# BR2_PACKAGE_RTL8188EU is not set +# BR2_PACKAGE_RTL8821AU is not set +# BR2_PACKAGE_SANE_BACKENDS is not set +# BR2_PACKAGE_SDPARM is not set +# BR2_PACKAGE_SETSERIAL is not set +# BR2_PACKAGE_SG3_UTILS is not set +# BR2_PACKAGE_SIGROK_CLI is not set +# BR2_PACKAGE_SISPMCTL is not set + +# +# smartmontools needs a toolchain w/ C++ +# +# BR2_PACKAGE_SMSTOOLS3 is not set +# BR2_PACKAGE_SNOWBALL_HDMISERVICE is not set +# BR2_PACKAGE_SPI_TOOLS is not set +# BR2_PACKAGE_SREDIRD is not set +# BR2_PACKAGE_STATSERIAL is not set +# BR2_PACKAGE_STM32FLASH is not set +# BR2_PACKAGE_SYSSTAT is not set + +# +# targetcli-fb depends on Python +# +# BR2_PACKAGE_TI_UIM is not set +# BR2_PACKAGE_TI_UTILS is not set +# BR2_PACKAGE_TRIGGERHAPPY is not set +# BR2_PACKAGE_UBOOT_TOOLS is not set +# BR2_PACKAGE_UBUS is not set + +# +# udisks needs udev /dev management +# +# BR2_PACKAGE_USB_MODESWITCH is not set +# BR2_PACKAGE_USB_MODESWITCH_DATA is not set + +# +# usbmount requires udev to be enabled +# + +# +# usbutils needs udev /dev management and toolchain w/ threads +# +# BR2_PACKAGE_W_SCAN is not set +# BR2_PACKAGE_WIPE is not set +# BR2_PACKAGE_XORRISO is not set + +# +# Interpreter languages and scripting +# +# BR2_PACKAGE_ENSCRIPT is not set +# BR2_PACKAGE_ERLANG is not set +BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS=y +# BR2_PACKAGE_GAUCHE is not set +# BR2_PACKAGE_GUILE is not set +# BR2_PACKAGE_HASERL is not set +# BR2_PACKAGE_JAMVM is not set +# BR2_PACKAGE_JIMTCL is not set +# BR2_PACKAGE_LUA is not set +BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS=y +# BR2_PACKAGE_LUAJIT is not set +# BR2_PACKAGE_MICROPYTHON is not set +# BR2_PACKAGE_MOARVM is not set +BR2_PACKAGE_MONO_ARCH_SUPPORTS=y +# BR2_PACKAGE_MONO is not set + +# +# nodejs needs a toolchain w/ C++, dynamic library, threads, gcc >= 4.8, wchar +# +# BR2_PACKAGE_PERL is not set +# BR2_PACKAGE_PHP is not set +# BR2_PACKAGE_PYTHON is not set +# BR2_PACKAGE_PYTHON3 is not set +# BR2_PACKAGE_RUBY is not set +# BR2_PACKAGE_TCL is not set + +# +# Libraries +# + +# +# Audio/Sound +# +# BR2_PACKAGE_ALSA_LIB is not set + +# +# audiofile needs a toolchain w/ C++ +# +# BR2_PACKAGE_CELT051 is not set + +# +# fdk-aac needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBAO is not set + +# +# asplib needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBBROADVOICE is not set +# BR2_PACKAGE_LIBCDAUDIO is not set +# BR2_PACKAGE_LIBCDDB is not set +# BR2_PACKAGE_LIBCDIO is not set +# BR2_PACKAGE_LIBCODEC2 is not set +# BR2_PACKAGE_LIBCUE is not set +# BR2_PACKAGE_LIBCUEFILE is not set +# BR2_PACKAGE_LIBG7221 is not set +# BR2_PACKAGE_LIBID3TAG is not set +# BR2_PACKAGE_LIBILBC is not set +# BR2_PACKAGE_LIBLO is not set +# BR2_PACKAGE_LIBMAD is not set + +# +# libmodplug needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBMPD is not set +# BR2_PACKAGE_LIBMPDCLIENT is not set +# BR2_PACKAGE_LIBREPLAYGAIN is not set +# BR2_PACKAGE_LIBSAMPLERATE is not set + +# +# libsidplay2 needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBSILK is not set +# BR2_PACKAGE_LIBSNDFILE is not set + +# +# libsoundtouch needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBSOXR is not set +# BR2_PACKAGE_LIBVORBIS is not set + +# +# mp4v2 needs a toolchain w/ C++ +# +BR2_PACKAGE_OPENAL_ARCH_SUPPORTS=y + +# +# openal needs a toolchain w/ NPTL, C++ +# + +# +# opencore-amr needs a toolchain w/ C++ +# +# BR2_PACKAGE_OPUS is not set +# BR2_PACKAGE_OPUSFILE is not set +# BR2_PACKAGE_PORTAUDIO is not set +# BR2_PACKAGE_SBC is not set +# BR2_PACKAGE_SPEEX is not set + +# +# taglib needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_TINYALSA is not set +# BR2_PACKAGE_TREMOR is not set +# BR2_PACKAGE_VO_AACENC is not set + +# +# webrtc-audio-processing needs a toolchain w/ C++, threads +# + +# +# Compression and decompression +# +# BR2_PACKAGE_LIBARCHIVE is not set + +# +# libsquish needs a toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_LIBZIP is not set +# BR2_PACKAGE_LZO is not set +# BR2_PACKAGE_MINIZIP is not set + +# +# snappy needs a toolchain w/ C++ +# +# BR2_PACKAGE_SZIP is not set +BR2_PACKAGE_ZLIB=y + +# +# Crypto +# +# BR2_PACKAGE_BEECRYPT is not set +BR2_PACKAGE_BOTAN_ARCH_SUPPORTS=y + +# +# botan needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_CA_CERTIFICATES is not set +# BR2_PACKAGE_CRYPTODEV is not set +# BR2_PACKAGE_GCR is not set +# BR2_PACKAGE_GNUTLS is not set +# BR2_PACKAGE_LIBASSUAN is not set +# BR2_PACKAGE_LIBGCRYPT is not set +# BR2_PACKAGE_LIBGPG_ERROR is not set +# BR2_PACKAGE_LIBGPGME is not set +# BR2_PACKAGE_LIBKSBA is not set +# BR2_PACKAGE_LIBMCRYPT is not set +# BR2_PACKAGE_LIBMHASH is not set +# BR2_PACKAGE_LIBNSS is not set +# BR2_PACKAGE_LIBSECRET is not set +# BR2_PACKAGE_LIBSHA1 is not set +# BR2_PACKAGE_LIBSODIUM is not set +# BR2_PACKAGE_LIBSSH is not set +# BR2_PACKAGE_LIBSSH2 is not set +# BR2_PACKAGE_LIBUECC is not set +# BR2_PACKAGE_MBEDTLS is not set +# BR2_PACKAGE_NETTLE is not set +BR2_PACKAGE_OPENSSL=y +# BR2_PACKAGE_OPENSSL_BIN is not set +# BR2_PACKAGE_OPENSSL_ENGINES is not set +# BR2_PACKAGE_POLARSSL is not set +# BR2_PACKAGE_TROUSERS is not set + +# +# Database +# +# BR2_PACKAGE_BERKELEYDB is not set +# BR2_PACKAGE_GDBM is not set + +# +# kompexsqlite needs a toolchain w/ C++, wchar, threads, dynamic library +# + +# +# leveldb needs a toolchain w/ C++, threads +# +BR2_PACKAGE_MONGODB_ARCH_SUPPORTS=y + +# +# mongodb needs a (e)glibc toolchain w/ wchar, threads, C++, gcc >= 4.8 +# + +# +# MySQL needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_POSTGRESQL is not set +# BR2_PACKAGE_REDIS is not set +# BR2_PACKAGE_SQLCIPHER is not set +# BR2_PACKAGE_SQLITE is not set +# BR2_PACKAGE_UNIXODBC is not set + +# +# Filesystem +# +# BR2_PACKAGE_GAMIN is not set +# BR2_PACKAGE_LIBCONFIG is not set +# BR2_PACKAGE_LIBCONFUSE is not set +# BR2_PACKAGE_LIBFUSE is not set +# BR2_PACKAGE_LIBLOCKFILE is not set +# BR2_PACKAGE_LIBNFS is not set +# BR2_PACKAGE_LIBSYSFS is not set +# BR2_PACKAGE_LOCKDEV is not set + +# +# Graphics +# + +# +# assimp needs a toolchain w/ C++ +# +# BR2_PACKAGE_ATK is not set + +# +# atkmm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# + +# +# bullet needs a toolchain w/ C++ +# +# BR2_PACKAGE_CAIRO is not set + +# +# cairomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# + +# +# exiv2 needs a toolchain w/ C++, wchar, dynamic library +# +# BR2_PACKAGE_FONTCONFIG is not set +# BR2_PACKAGE_FREETYPE is not set +# BR2_PACKAGE_GD is not set +# BR2_PACKAGE_GDK_PIXBUF is not set +# BR2_PACKAGE_GIFLIB is not set + +# +# graphite2 needs a toolchain w/ C++, dynamic library +# + +# +# gtkmm3 needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# + +# +# harfbuzz needs a toolchain w/ C++ +# +# BR2_PACKAGE_IJS is not set +# BR2_PACKAGE_IMLIB2 is not set +# BR2_PACKAGE_JASPER is not set +# BR2_PACKAGE_JPEG is not set +# BR2_PACKAGE_LCMS2 is not set +# BR2_PACKAGE_LIBART is not set +# BR2_PACKAGE_LIBDMTX is not set +# BR2_PACKAGE_LIBDRM is not set +# BR2_PACKAGE_LIBEXIF is not set + +# +# libfm needs X.org and a toolchain w/ wchar, threads, C++ +# +# BR2_PACKAGE_LIBFM_EXTRA is not set + +# +# libfreeglut depends on X.org and needs an OpenGL backend +# + +# +# libfreeimage needs a toolchain w/ C++, dynamic library, wchar +# +# BR2_PACKAGE_LIBGEOTIFF is not set + +# +# libglew depends on X.org and needs an OpenGL backend +# + +# +# libglfw depends on X.org and needs an OpenGL backend +# + +# +# libglu needs an OpenGL backend +# + +# +# libgtk3 needs a toolchain w/ wchar, threads, C++ +# +# BR2_PACKAGE_LIBMNG is not set +# BR2_PACKAGE_LIBPNG is not set +# BR2_PACKAGE_LIBQRENCODE is not set + +# +# libraw needs a toolchain w/ C++ +# + +# +# librsvg needs a toolchain w/ wchar, threads, C++ +# + +# +# libsoil needs an OpenGL backend and a toolchain w/ dynamic library +# +# BR2_PACKAGE_LIBSVG is not set +# BR2_PACKAGE_LIBSVG_CAIRO is not set +# BR2_PACKAGE_LIBSVGTINY is not set +# BR2_PACKAGE_LIBVA is not set +# BR2_PACKAGE_LIBVA_INTEL_DRIVER is not set + +# +# libvips needs a toolchain w/ wchar, threads, C++ +# +# BR2_PACKAGE_MENU_CACHE is not set + +# +# opencv needs a toolchain w/ C++, NPTL, wchar +# + +# +# opencv3 needs a toolchain w/ C++, NPTL, wchar, dynamic library +# +# BR2_PACKAGE_OPENJPEG is not set + +# +# pango needs a toolchain w/ wchar, threads, C++ +# + +# +# pangomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# +BR2_PACKAGE_PIXMAN=y + +# +# poppler needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_TIFF is not set +# BR2_PACKAGE_WAYLAND is not set +BR2_PACKAGE_WEBKITGTK24_ARCH_SUPPORTS=y + +# +# webkitgtk24 needs libgtk2 and a toolchain w/ C++, wchar, NPTL, gcc >=4.8 +# +# BR2_PACKAGE_WEBP is not set + +# +# zbar needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0 +# + +# +# zxing-cpp needs a toolchain w/ C++, dynamic library +# + +# +# Hardware handling +# +# BR2_PACKAGE_ACSCCID is not set +# BR2_PACKAGE_C_PERIPHERY is not set +# BR2_PACKAGE_CCID is not set +# BR2_PACKAGE_DTC is not set +# BR2_PACKAGE_GNU_EFI is not set + +# +# hidapi needs udev /dev management and a toolchain w/ threads +# + +# +# lcdapi needs a toolchain w/ C++, threads +# +BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBAIO is not set + +# +# libatasmart requires udev to be enabled +# + +# +# libcec needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.7 +# +# BR2_PACKAGE_LIBFREEFARE is not set +# BR2_PACKAGE_LIBFTDI is not set +# BR2_PACKAGE_LIBFTDI1 is not set + +# +# libgudev needs udev /dev handling and a toolchain w/ wchar, threads +# +# BR2_PACKAGE_LIBHID is not set +# BR2_PACKAGE_LIBIIO is not set + +# +# libinput needs udev /dev management and a toolchain w/ locale +# +# BR2_PACKAGE_LIBIQRF is not set +# BR2_PACKAGE_LIBLLCP is not set + +# +# libmbim needs udev /dev management and a toolchain w/ wchar, threads +# +# BR2_PACKAGE_LIBNFC is not set +# BR2_PACKAGE_LIBPCIACCESS is not set +# BR2_PACKAGE_LIBPHIDGET is not set +# BR2_PACKAGE_LIBQMI is not set +# BR2_PACKAGE_LIBRAW1394 is not set +# BR2_PACKAGE_LIBRTLSDR is not set + +# +# libserial needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_LIBSERIALPORT is not set +# BR2_PACKAGE_LIBSIGROK is not set +# BR2_PACKAGE_LIBSIGROKDECODE is not set +# BR2_PACKAGE_LIBSOC is not set +# BR2_PACKAGE_LIBUSB is not set + +# +# libv4l needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0 +# +# BR2_PACKAGE_LIBXKBCOMMON is not set +# BR2_PACKAGE_MRAA is not set +# BR2_PACKAGE_MTDEV is not set +# BR2_PACKAGE_NEARDAL is not set +# BR2_PACKAGE_PCSC_LITE is not set +# BR2_PACKAGE_TSLIB is not set + +# +# urg needs a toolchain w/ C++ +# + +# +# Javascript +# +# BR2_PACKAGE_ANGULARJS is not set +# BR2_PACKAGE_BOOTSTRAP is not set +# BR2_PACKAGE_EXPLORERCANVAS is not set +# BR2_PACKAGE_FLOT is not set +# BR2_PACKAGE_JQUERY is not set +# BR2_PACKAGE_JSMIN is not set +# BR2_PACKAGE_JSON_JAVASCRIPT is not set + +# +# JSON/XML +# + +# +# benejson needs a toolchain w/ C++ +# +# BR2_PACKAGE_CJSON is not set +# BR2_PACKAGE_EXPAT is not set +# BR2_PACKAGE_EZXML is not set +# BR2_PACKAGE_JANSSON is not set +# BR2_PACKAGE_JSON_C is not set +# BR2_PACKAGE_JSON_GLIB is not set + +# +# jsoncpp needs a toolchain w/ C++, gcc >= 4.7 +# + +# +# libjson needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBROXML is not set +# BR2_PACKAGE_LIBUCL is not set +# BR2_PACKAGE_LIBXML2 is not set + +# +# libxml++ needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# +# BR2_PACKAGE_LIBXMLRPC is not set +# BR2_PACKAGE_LIBXSLT is not set +# BR2_PACKAGE_LIBYAML is not set +# BR2_PACKAGE_MXML is not set +# BR2_PACKAGE_RAPIDJSON is not set +# BR2_PACKAGE_RAPIDXML is not set + +# +# tinyxml needs a toolchain w/ C++ +# + +# +# tinyxml2 needs a toolchain w/ C++ +# + +# +# xerces-c++ needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_YAJL is not set + +# +# yaml-cpp needs a toolchain w/ C++, threads, wchar +# + +# +# Logging +# +# BR2_PACKAGE_EVENTLOG is not set + +# +# glog needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_LIBLOG4C_LOCALTIME is not set +# BR2_PACKAGE_LIBLOGGING is not set + +# +# log4cplus needs a toolchain w/ C++, wchar, threads +# + +# +# log4cxx needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_ZLOG is not set + +# +# Multimedia +# +# BR2_PACKAGE_BITSTREAM is not set +# BR2_PACKAGE_LIBASS is not set +# BR2_PACKAGE_LIBBLURAY is not set +# BR2_PACKAGE_LIBDCADEC is not set +# BR2_PACKAGE_LIBDVBCSA is not set +# BR2_PACKAGE_LIBDVBPSI is not set + +# +# libdvbsi++ needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_LIBDVDNAV is not set +# BR2_PACKAGE_LIBDVDREAD is not set + +# +# libebml needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LIBHDHOMERUN is not set + +# +# libmatroska needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LIBMMS is not set +# BR2_PACKAGE_LIBMPEG2 is not set +# BR2_PACKAGE_LIBOGG is not set +BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS=y + +# +# libopenh264 needs a toolchain w/ C++, dynamic library, threads +# +# BR2_PACKAGE_LIBPLAYER is not set +# BR2_PACKAGE_LIBTHEORA is not set +# BR2_PACKAGE_LIBVPX is not set + +# +# libyuv needs a toolchain w/ C++, dynamic library +# + +# +# live555 needs a toolchain w/ C++ +# + +# +# mediastreamer needs a toolchain w/ threads, C++ +# +# BR2_PACKAGE_X264 is not set + +# +# x265 needs a toolchain w/ C++, threads, dynamic library +# + +# +# Networking +# + +# +# agent++ needs a toolchain w/ threads, C++, dynamic library +# +# BR2_PACKAGE_C_ARES is not set +BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS=y +# BR2_PACKAGE_CANFESTIVAL is not set +# BR2_PACKAGE_CGIC is not set + +# +# cppzmq needs a toolchain w/ C++, wchar, threads +# + +# +# czmq needs a toolchain w/ C++, wchar, threads +# + +# +# filemq needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_FLICKCURL is not set +# BR2_PACKAGE_FREERADIUS_CLIENT is not set +# BR2_PACKAGE_GEOIP is not set +# BR2_PACKAGE_GLIB_NETWORKING is not set +# BR2_PACKAGE_GSSDP is not set +# BR2_PACKAGE_GUPNP is not set +# BR2_PACKAGE_GUPNP_AV is not set + +# +# ibrcommon needs a toolchain w/ C++, threads +# + +# +# ibrdtn needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBCGI is not set + +# +# libcgicc needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBCURL is not set +# BR2_PACKAGE_LIBDNET is not set +# BR2_PACKAGE_LIBEXOSIP2 is not set +# BR2_PACKAGE_LIBFCGI is not set +# BR2_PACKAGE_LIBGSASL is not set +# BR2_PACKAGE_LIBHTTPPARSER is not set +# BR2_PACKAGE_LIBIDN is not set +# BR2_PACKAGE_LIBISCSI is not set +# BR2_PACKAGE_LIBLDNS is not set +# BR2_PACKAGE_LIBMBUS is not set + +# +# libmemcached needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBMICROHTTPD is not set +# BR2_PACKAGE_LIBMNL is not set +# BR2_PACKAGE_LIBMODBUS is not set +# BR2_PACKAGE_LIBNDP is not set +# BR2_PACKAGE_LIBNET is not set +# BR2_PACKAGE_LIBNETFILTER_ACCT is not set +# BR2_PACKAGE_LIBNETFILTER_CONNTRACK is not set +# BR2_PACKAGE_LIBNETFILTER_CTHELPER is not set +# BR2_PACKAGE_LIBNETFILTER_CTTIMEOUT is not set +# BR2_PACKAGE_LIBNETFILTER_LOG is not set +# BR2_PACKAGE_LIBNETFILTER_QUEUE is not set +# BR2_PACKAGE_LIBNFNETLINK is not set +# BR2_PACKAGE_LIBNFTNL is not set +# BR2_PACKAGE_LIBNICE is not set +# BR2_PACKAGE_LIBNL is not set +# BR2_PACKAGE_LIBOAUTH is not set +# BR2_PACKAGE_LIBOPING is not set +# BR2_PACKAGE_LIBOSIP2 is not set +# BR2_PACKAGE_LIBPCAP is not set +# BR2_PACKAGE_LIBRSYNC is not set +# BR2_PACKAGE_LIBSHAIRPLAY is not set +# BR2_PACKAGE_LIBSHOUT is not set +# BR2_PACKAGE_LIBSOCKETCAN is not set +# BR2_PACKAGE_LIBSOUP is not set +# BR2_PACKAGE_LIBSRTP is not set +# BR2_PACKAGE_LIBSTROPHE is not set +# BR2_PACKAGE_LIBTIRPC is not set + +# +# libtorrent needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBUPNP is not set + +# +# libupnpp needs a toolchain w/ C++, threads, gcc >= 4.6 +# +# BR2_PACKAGE_LIBURIPARSER is not set +# BR2_PACKAGE_LIBVNCSERVER is not set +# BR2_PACKAGE_LIBWEBSOCK is not set +# BR2_PACKAGE_LIBWEBSOCKETS is not set +# BR2_PACKAGE_MONGOOSE is not set +# BR2_PACKAGE_NEON is not set + +# +# nss-pam-ldapd needs an (e)glibc toolchain +# + +# +# omniORB needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_OPENLDAP is not set +# BR2_PACKAGE_OPENPGM is not set +# BR2_PACKAGE_ORTP is not set +# BR2_PACKAGE_QDECODER is not set +# BR2_PACKAGE_QPID_PROTON is not set +# BR2_PACKAGE_RABBITMQ_C is not set +# BR2_PACKAGE_RTMPDUMP is not set +# BR2_PACKAGE_SLIRP is not set + +# +# snmp++ needs a toolchain w/ threads, C++, dynamic library +# +# BR2_PACKAGE_SOFIA_SIP is not set + +# +# thrift needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_USBREDIR is not set + +# +# wvstreams needs a (e)glibc or uClibc toolchain w/ C++, dynamic library +# + +# +# zeromq needs a toolchain w/ C++, wchar, threads +# + +# +# zmqpp needs a toolchain w/ C++, wchar, threads, gcc >= 4.6 +# + +# +# zyre needs a toolchain w/ C++, wchar, threads +# + +# +# Other +# +# BR2_PACKAGE_APR is not set +# BR2_PACKAGE_APR_UTIL is not set +# BR2_PACKAGE_ARGP_STANDALONE is not set + +# +# armadillo needs a toolchain w/ C++ +# + +# +# atf needs a toolchain w/ C++ +# +# BR2_PACKAGE_BDWGC is not set + +# +# boost needs a toolchain w/ C++, threads, wchar +# +BR2_PACKAGE_BOOST_ARCH_SUPPORTS=y +# BR2_PACKAGE_CLAPACK is not set + +# +# cppcms needs a toolchain w/ C++, NPTL, wchar, dynamic library +# + +# +# dawgdic needs a toolchain w/ C++, gcc >= 4.6 +# +# BR2_PACKAGE_DING_LIBS is not set + +# +# eigen needs a toolchain w/ C++ +# +# BR2_PACKAGE_ELFUTILS is not set +# BR2_PACKAGE_FFTW is not set + +# +# flann needs a toolchain w/ C++, dynamic library +# + +# +# gflags needs a toolchain w/ C++ +# + +# +# glibmm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# + +# +# glm needs a toolchain w/ C++ +# + +# +# gmock needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_GMP is not set +# BR2_PACKAGE_GSL is not set + +# +# gtest needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_LIBARGTABLE2 is not set +BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBATOMIC_OPS is not set +BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS=y + +# +# libbsd needs an (e)glibc toolchain w/ threads +# +# BR2_PACKAGE_LIBCAP is not set +# BR2_PACKAGE_LIBCAP_NG is not set + +# +# libcgroup needs an (e)glibc toolchain w/ C++ +# +# BR2_PACKAGE_LIBCROCO is not set + +# +# libcrossguid needs a toolchain w/ C++, wchar, gcc >= 4.7 +# +# BR2_PACKAGE_LIBDAEMON is not set +# BR2_PACKAGE_LIBEE is not set +# BR2_PACKAGE_LIBEV is not set +# BR2_PACKAGE_LIBEVDEV is not set +# BR2_PACKAGE_LIBEVENT is not set +BR2_PACKAGE_LIBFFI=y +BR2_PACKAGE_LIBGLIB2=y + +# +# libical needs a toolchain w/ C++, dynamic library, wchar +# + +# +# liblinear needs a toolchain w/ C++ +# +BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT=y +# BR2_PACKAGE_LIBNSPR is not set +# BR2_PACKAGE_LIBPFM4 is not set + +# +# libplist needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBPTHREAD_STUBS is not set +# BR2_PACKAGE_LIBPTHSEM is not set +# BR2_PACKAGE_LIBSECCOMP is not set + +# +# libsigc++ needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_LIBSIGSEGV is not set +# BR2_PACKAGE_LIBTASN1 is not set +# BR2_PACKAGE_LIBTPL is not set +# BR2_PACKAGE_LIBUBOX is not set +# BR2_PACKAGE_LIBUCI is not set +BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBUNWIND is not set +BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBURCU is not set +# BR2_PACKAGE_LIBUV is not set +# BR2_PACKAGE_LIGHTNING is not set + +# +# linux-pam needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library +# + +# +# liquid-dsp requires a (e)glibc/musl toolchain w/ dynamic library +# +# BR2_PACKAGE_LTTNG_LIBUST is not set +# BR2_PACKAGE_MPC is not set +# BR2_PACKAGE_MPDECIMAL is not set +# BR2_PACKAGE_MPFR is not set + +# +# msgpack needs a toolchain w/ C++ +# +# BR2_PACKAGE_MTDEV2TUIO is not set +# BR2_PACKAGE_ORC is not set +# BR2_PACKAGE_P11_KIT is not set + +# +# poco needs a toolchain w/ wchar, threads, C++, dynamic library +# +BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS=y + +# +# protobuf needs a toolchain w/ C++, threads, dynamic library +# + +# +# protobuf-c needs a toolchain w/ C++, threads +# + +# +# qhull needs a toolchain w/ C++, dynamic library, gcc >= 4.4 +# +# BR2_PACKAGE_QLIBC is not set + +# +# Security +# +# BR2_PACKAGE_LIBSELINUX is not set +# BR2_PACKAGE_LIBSEMANAGE is not set +# BR2_PACKAGE_LIBSEPOL is not set + +# +# Text and terminal handling +# + +# +# enchant needs a toolchain w/ C++, threads, wchar +# + +# +# icu needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_LIBCLI is not set +# BR2_PACKAGE_LIBEDIT is not set +# BR2_PACKAGE_LIBENCA is not set +# BR2_PACKAGE_LIBESTR is not set +# BR2_PACKAGE_LIBFRIBIDI is not set +BR2_PACKAGE_LIBICONV=y +# BR2_PACKAGE_LIBUNISTRING is not set +# BR2_PACKAGE_LINENOISE is not set +# BR2_PACKAGE_NCURSES is not set +# BR2_PACKAGE_NEWT is not set +# BR2_PACKAGE_PCRE is not set +# BR2_PACKAGE_POPT is not set +# BR2_PACKAGE_READLINE is not set +# BR2_PACKAGE_SLANG is not set + +# +# tclap needs a toolchain w/ C++ +# +# BR2_PACKAGE_USTR is not set + +# +# Mail +# +# BR2_PACKAGE_DOVECOT is not set +# BR2_PACKAGE_EXIM is not set +# BR2_PACKAGE_FETCHMAIL is not set +# BR2_PACKAGE_HEIRLOOM_MAILX is not set +# BR2_PACKAGE_LIBESMTP is not set +# BR2_PACKAGE_MSMTP is not set +# BR2_PACKAGE_MUTT is not set + +# +# Miscellaneous +# +# BR2_PACKAGE_AESPIPE is not set +# BR2_PACKAGE_BC is not set +# BR2_PACKAGE_CLAMAV is not set +# BR2_PACKAGE_COLLECTD is not set +# BR2_PACKAGE_EMPTY is not set + +# +# gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library +# +# BR2_PACKAGE_GOOGLEFONTDIRECTORY is not set +# BR2_PACKAGE_HAVEGED is not set +# BR2_PACKAGE_MCRYPT is not set +# BR2_PACKAGE_MOBILE_BROADBAND_PROVIDER_INFO is not set +BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET=y +BR2_PACKAGE_QEMU=y + +# +# Emulators selection +# +BR2_PACKAGE_QEMU_CUSTOM_TARGETS="x86_64-softmmu" +BR2_PACKAGE_QEMU_HAS_EMULS=y + +# +# Frontends +# +# BR2_PACKAGE_QEMU_SDL is not set + +# +# Misc. features +# +# BR2_PACKAGE_QEMU_FDT is not set + +# +# qpdf needs a toolchain w/ C++ +# +# BR2_PACKAGE_SHARED_MIME_INFO is not set +# BR2_PACKAGE_SNOWBALL_INIT is not set +# BR2_PACKAGE_XUTIL_UTIL_MACROS is not set + +# +# Networking applications +# +# BR2_PACKAGE_AICCU is not set +# BR2_PACKAGE_AIRCRACK_NG is not set +# BR2_PACKAGE_APACHE is not set +# BR2_PACKAGE_ARGUS is not set +# BR2_PACKAGE_ARPTABLES is not set +# BR2_PACKAGE_ATFTP is not set +# BR2_PACKAGE_AUTOSSH is not set +# BR2_PACKAGE_AVAHI is not set +# BR2_PACKAGE_AXEL is not set +# BR2_PACKAGE_BANDWIDTHD is not set +# BR2_PACKAGE_BATCTL is not set + +# +# bcusdk needs a toolchain w/ C++ +# +# BR2_PACKAGE_BIND is not set +# BR2_PACKAGE_BLUEZ_UTILS is not set + +# +# bluez5-utils needs a glibc or musl toolchain w/ wchar, threads, headers >= 3.4, dynamic library +# +# BR2_PACKAGE_BMON is not set +# BR2_PACKAGE_BOA is not set +BR2_PACKAGE_BRIDGE_UTILS=y +# BR2_PACKAGE_BWM_NG is not set +# BR2_PACKAGE_C_ICAP is not set +# BR2_PACKAGE_CAN_UTILS is not set +# BR2_PACKAGE_CHRONY is not set +# BR2_PACKAGE_CIVETWEB is not set +# BR2_PACKAGE_CONNMAN is not set +# BR2_PACKAGE_CONNTRACK_TOOLS is not set +# BR2_PACKAGE_CRDA is not set + +# +# ctorrent needs a toolchain w/ C++ +# + +# +# cups needs a toolchain w/ C++ +# +# BR2_PACKAGE_DHCPCD is not set +# BR2_PACKAGE_DHCPDUMP is not set +# BR2_PACKAGE_DNSMASQ is not set +# BR2_PACKAGE_DRBD_UTILS is not set +# BR2_PACKAGE_DROPBEAR is not set +# BR2_PACKAGE_EBTABLES is not set + +# +# ejabberd needs erlang +# +# BR2_PACKAGE_ETHTOOL is not set +# BR2_PACKAGE_FAIFA is not set +# BR2_PACKAGE_FASTD is not set +# BR2_PACKAGE_FCGIWRAP is not set +# BR2_PACKAGE_FPING is not set +# BR2_PACKAGE_GESFTPSERVER is not set + +# +# hans needs a toolchain w/ C++ +# +# BR2_PACKAGE_HIAWATHA is not set +# BR2_PACKAGE_HOSTAPD is not set +# BR2_PACKAGE_HTTPING is not set + +# +# ibrdtn-tools needs a toolchain w/ C++, threads +# + +# +# ibrdtnd needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_IFTOP is not set +# BR2_PACKAGE_IGH_ETHERCAT is not set +# BR2_PACKAGE_IGMPPROXY is not set +# BR2_PACKAGE_INADYN is not set +# BR2_PACKAGE_IODINE is not set + +# +# iperf needs a toolchain w/ C++ +# +# BR2_PACKAGE_IPERF3 is not set +BR2_PACKAGE_IPROUTE2=y +# BR2_PACKAGE_IPSEC_TOOLS is not set +# BR2_PACKAGE_IPSET is not set +# BR2_PACKAGE_IPTABLES is not set +# BR2_PACKAGE_IPTRAF_NG is not set +# BR2_PACKAGE_IPUTILS is not set +# BR2_PACKAGE_IRSSI is not set +# BR2_PACKAGE_IW is not set +# BR2_PACKAGE_JANUS_GATEWAY is not set + +# +# kismet needs a toolchain w/ threads, C++, dynamic library +# +# BR2_PACKAGE_KNOCK is not set +# BR2_PACKAGE_LEAFNODE2 is not set + +# +# lftp requires a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LIGHTTPD is not set + +# +# linknx needs a toolchain w/ C++ +# +# BR2_PACKAGE_LINKS is not set + +# +# linphone needs a toolchain w/ threads, C++ +# +# BR2_PACKAGE_LINUX_ZIGBEE is not set +# BR2_PACKAGE_LLDPD is not set +# BR2_PACKAGE_LRZSZ is not set +# BR2_PACKAGE_MACCHANGER is not set +# BR2_PACKAGE_MEMCACHED is not set +# BR2_PACKAGE_MII_DIAG is not set +# BR2_PACKAGE_MINIDLNA is not set +# BR2_PACKAGE_MJPG_STREAMER is not set + +# +# modemmanager needs udev /dev management and a toolchain w/ wchar, threads +# +BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y + +# +# mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library +# +# BR2_PACKAGE_MONKEY is not set + +# +# mosh needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_MOSQUITTO is not set +# BR2_PACKAGE_MROUTED is not set +# BR2_PACKAGE_MTR is not set +# BR2_PACKAGE_NBD is not set +# BR2_PACKAGE_NCFTP is not set +# BR2_PACKAGE_NDISC6 is not set +# BR2_PACKAGE_NETATALK is not set +# BR2_PACKAGE_NETPLUG is not set +# BR2_PACKAGE_NETSNMP is not set +# BR2_PACKAGE_NETSTAT_NAT is not set + +# +# NetworkManager needs udev /dev management and a (e)glibc toolchain w/ headers >= 3.7 +# +# BR2_PACKAGE_NFACCT is not set +# BR2_PACKAGE_NFTABLES is not set +# BR2_PACKAGE_NGINX is not set +# BR2_PACKAGE_NGIRCD is not set +# BR2_PACKAGE_NGREP is not set + +# +# nmap needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_NOIP is not set +# BR2_PACKAGE_NTP is not set +# BR2_PACKAGE_NUTTCP is not set +# BR2_PACKAGE_ODHCP6C is not set +# BR2_PACKAGE_ODHCPLOC is not set +# BR2_PACKAGE_OLSR is not set +# BR2_PACKAGE_OPEN_PLC_UTILS is not set +# BR2_PACKAGE_OPENNTPD is not set +# BR2_PACKAGE_OPENOBEX is not set +BR2_PACKAGE_OPENSSH=y +# BR2_PACKAGE_OPENSWAN is not set +# BR2_PACKAGE_OPENVPN is not set +# BR2_PACKAGE_P910ND is not set +# BR2_PACKAGE_PHIDGETWEBSERVICE is not set + +# +# portmap needs a toolchain w/ RPC +# +# BR2_PACKAGE_PPPD is not set +# BR2_PACKAGE_PPTP_LINUX is not set +# BR2_PACKAGE_PROFTPD is not set +# BR2_PACKAGE_PROXYCHAINS_NG is not set +# BR2_PACKAGE_PTPD is not set +# BR2_PACKAGE_PTPD2 is not set +# BR2_PACKAGE_PURE_FTPD is not set +# BR2_PACKAGE_QUAGGA is not set +# BR2_PACKAGE_RADVD is not set +# BR2_PACKAGE_RPCBIND is not set +# BR2_PACKAGE_RSH_REDONE is not set +# BR2_PACKAGE_RSYNC is not set + +# +# rtorrent needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_RTPTOOLS is not set + +# +# samba4 needs a toolchain w/ RPC, wchar, dynamic library, threads +# + +# +# sconeserver needs a toolchain w/ C++, NPTL +# +# BR2_PACKAGE_SER2NET is not set +# BR2_PACKAGE_SHAIRPORT_SYNC is not set +# BR2_PACKAGE_SMCROUTE is not set +# BR2_PACKAGE_SOCAT is not set +# BR2_PACKAGE_SOCKETCAND is not set +# BR2_PACKAGE_SOFTETHER is not set +# BR2_PACKAGE_SPAWN_FCGI is not set + +# +# spice server depends on python (for pyparsing) +# +# BR2_PACKAGE_SPICE_PROTOCOL is not set + +# +# squid needs a toolchain w/ C++, headers >= 3.0 +# +# BR2_PACKAGE_SSHPASS is not set +# BR2_PACKAGE_STRONGSWAN is not set +# BR2_PACKAGE_STUNNEL is not set +# BR2_PACKAGE_TCPDUMP is not set +# BR2_PACKAGE_TCPING is not set +# BR2_PACKAGE_TCPREPLAY is not set +# BR2_PACKAGE_THTTPD is not set +# BR2_PACKAGE_TINC is not set +# BR2_PACKAGE_TINYHTTPD is not set +# BR2_PACKAGE_TN5250 is not set +# BR2_PACKAGE_TOR is not set +# BR2_PACKAGE_TRANSMISSION is not set +# BR2_PACKAGE_TVHEADEND is not set +# BR2_PACKAGE_UDPCAST is not set +# BR2_PACKAGE_ULOGD is not set +# BR2_PACKAGE_USHARE is not set +# BR2_PACKAGE_USSP_PUSH is not set +# BR2_PACKAGE_VDE2 is not set +# BR2_PACKAGE_VNSTAT is not set +# BR2_PACKAGE_VPNC is not set +# BR2_PACKAGE_VSFTPD is not set +# BR2_PACKAGE_VTUN is not set +# BR2_PACKAGE_WIRELESS_REGDB is not set +# BR2_PACKAGE_WIRELESS_TOOLS is not set +# BR2_PACKAGE_WIRESHARK is not set +# BR2_PACKAGE_WPA_SUPPLICANT is not set + +# +# wvdial needs a (e)glibc or uClibc toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_XINETD is not set +# BR2_PACKAGE_XL2TP is not set +# BR2_PACKAGE_XTABLES_ADDONS is not set + +# +# znc needs a toolchain w/ C++, dynamic library, gcc >= 4.7 +# + +# +# Package managers +# + +# +# ------------------------------------------------------- +# + +# +# Please note: +# + +# +# - Buildroot does *not* generate binary packages, +# + +# +# - Buildroot does *not* install any package database. +# + +# +# * +# + +# +# It is up to you to provide those by yourself if you +# + +# +# want to use any of those package managers. +# + +# +# * +# + +# +# See the manual: +# + +# +# http://buildroot.org/manual.html#faq-no-binary-packages +# + +# +# ------------------------------------------------------- +# +# BR2_PACKAGE_IPKG is not set +# BR2_PACKAGE_OPKG is not set + +# +# Real-Time +# +# BR2_PACKAGE_XENOMAI is not set + +# +# Security +# + +# +# setools needs a toolchain w/ threads, C++, wchar, dynamic library +# + +# +# Shell and utilities +# + +# +# Shells +# + +# +# Utilities +# +# BR2_PACKAGE_AT is not set +# BR2_PACKAGE_CCRYPT is not set +# BR2_PACKAGE_DIALOG is not set +# BR2_PACKAGE_DTACH is not set +# BR2_PACKAGE_FILE is not set +# BR2_PACKAGE_GNUPG is not set +# BR2_PACKAGE_GNUPG2 is not set +# BR2_PACKAGE_INOTIFY_TOOLS is not set +# BR2_PACKAGE_LOCKFILE_PROGS is not set +# BR2_PACKAGE_LOGROTATE is not set +# BR2_PACKAGE_LOGSURFER is not set +# BR2_PACKAGE_PINENTRY is not set +# BR2_PACKAGE_RANGER is not set +# BR2_PACKAGE_SCREEN is not set +BR2_PACKAGE_SUDO=y +# BR2_PACKAGE_TMUX is not set +# BR2_PACKAGE_XMLSTARLET is not set +# BR2_PACKAGE_XXHASH is not set + +# +# System tools +# +# BR2_PACKAGE_ACL is not set +# BR2_PACKAGE_ATTR is not set +BR2_PACKAGE_AUDIT_ARCH_SUPPORTS=y +# BR2_PACKAGE_AUDIT is not set +# BR2_PACKAGE_CPULOAD is not set +# BR2_PACKAGE_EMLOG is not set +# BR2_PACKAGE_FTOP is not set +# BR2_PACKAGE_GETENT is not set +# BR2_PACKAGE_HTOP is not set +BR2_PACKAGE_INITSCRIPTS=y + +# +# iotop depends on python or python3 +# +# BR2_PACKAGE_IPRUTILS is not set +# BR2_PACKAGE_IRQBALANCE is not set +# BR2_PACKAGE_KEYUTILS is not set +# BR2_PACKAGE_KMOD is not set + +# +# kvmtool needs a (e)glibc or musl toolchain +# +# BR2_PACKAGE_LXC is not set +# BR2_PACKAGE_MONIT is not set +# BR2_PACKAGE_NCDU is not set +# BR2_PACKAGE_NUMACTL is not set + +# +# nut needs a toolchain w/ C++ +# + +# +# openvmtools needs an (e)glibc or musl toolchain w/ wchar, threads, RPC, locale +# +# BR2_PACKAGE_POLKIT is not set +# BR2_PACKAGE_PWGEN is not set +# BR2_PACKAGE_QUOTA is not set +# BR2_PACKAGE_SCRYPT is not set +# BR2_PACKAGE_SMACK is not set + +# +# supervisor needs the python interpreter +# +# BR2_PACKAGE_SWUPDATE is not set +BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS=y +# BR2_PACKAGE_TPM_TOOLS is not set + +# +# unscd needs an (e)glibc toolchain +# +# BR2_PACKAGE_UTIL_LINUX is not set + +# +# Text editors and viewers +# +# BR2_PACKAGE_ED is not set +# BR2_PACKAGE_JOE is not set +# BR2_PACKAGE_MC is not set +# BR2_PACKAGE_NANO is not set +# BR2_PACKAGE_UEMACS is not set + +# +# Filesystem images +# +# BR2_TARGET_ROOTFS_AXFS is not set +# BR2_TARGET_ROOTFS_CLOOP is not set +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_NONE=y +# BR2_TARGET_ROOTFS_CPIO_GZIP is not set +# BR2_TARGET_ROOTFS_CPIO_BZIP2 is not set +# BR2_TARGET_ROOTFS_CPIO_LZMA is not set +# BR2_TARGET_ROOTFS_CPIO_LZO is not set +# BR2_TARGET_ROOTFS_CPIO_XZ is not set +# BR2_TARGET_ROOTFS_CPIO_UIMAGE is not set +# BR2_TARGET_ROOTFS_CRAMFS is not set +# BR2_TARGET_ROOTFS_EXT2 is not set +# BR2_TARGET_ROOTFS_INITRAMFS is not set +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_ROOTFS_ISO9660_GRUB=y +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="fs/iso9660/menu.lst" +BR2_TARGET_ROOTFS_ISO9660_INITRD=y +# BR2_TARGET_ROOTFS_JFFS2 is not set +# BR2_TARGET_ROOTFS_ROMFS is not set +# BR2_TARGET_ROOTFS_SQUASHFS is not set +BR2_TARGET_ROOTFS_TAR=y +BR2_TARGET_ROOTFS_TAR_NONE=y +# BR2_TARGET_ROOTFS_TAR_GZIP is not set +# BR2_TARGET_ROOTFS_TAR_BZIP2 is not set +# BR2_TARGET_ROOTFS_TAR_LZMA is not set +# BR2_TARGET_ROOTFS_TAR_LZO is not set +# BR2_TARGET_ROOTFS_TAR_XZ is not set +BR2_TARGET_ROOTFS_TAR_OPTIONS="" +# BR2_TARGET_ROOTFS_UBIFS is not set +# BR2_TARGET_ROOTFS_YAFFS2 is not set + +# +# Bootloaders +# +# BR2_TARGET_BAREBOX is not set +BR2_TARGET_GRUB=y +# BR2_TARGET_GRUB_SPLASH is not set +# BR2_TARGET_GRUB_DISKLESS is not set + +# +# filesystem drivers +# +BR2_TARGET_GRUB_FS_EXT2=y +BR2_TARGET_GRUB_FS_FAT=y +BR2_TARGET_GRUB_FS_ISO9660=y +# BR2_TARGET_GRUB_FS_JFS is not set +# BR2_TARGET_GRUB_FS_REISERFS is not set +# BR2_TARGET_GRUB_FS_XFS is not set + +# +# network drivers +# +# BR2_TARGET_GRUB_3c595 is not set +# BR2_TARGET_GRUB_3c90x is not set +# BR2_TARGET_GRUB_davicom is not set +# BR2_TARGET_GRUB_e1000 is not set +# BR2_TARGET_GRUB_eepro100 is not set +# BR2_TARGET_GRUB_epic100 is not set +# BR2_TARGET_GRUB_forcedeth is not set +# BR2_TARGET_GRUB_natsemi is not set +# BR2_TARGET_GRUB_ns83820 is not set +# BR2_TARGET_GRUB_ns8390 is not set +# BR2_TARGET_GRUB_pcnet32 is not set +# BR2_TARGET_GRUB_pnic is not set +# BR2_TARGET_GRUB_rtl8139 is not set +# BR2_TARGET_GRUB_r8169 is not set +# BR2_TARGET_GRUB_sis900 is not set +# BR2_TARGET_GRUB_tg3 is not set +# BR2_TARGET_GRUB_tulip is not set +# BR2_TARGET_GRUB_tlan is not set +# BR2_TARGET_GRUB_undi is not set +# BR2_TARGET_GRUB_via_rhine is not set +# BR2_TARGET_GRUB_w89c840 is not set +# BR2_TARGET_GRUB2 is not set +# BR2_TARGET_GUMMIBOOT is not set +# BR2_TARGET_SYSLINUX is not set +# BR2_TARGET_UBOOT is not set + +# +# Host utilities +# +# BR2_PACKAGE_HOST_AESPIPE is not set +# BR2_PACKAGE_HOST_CHECKPOLICY is not set +# BR2_PACKAGE_HOST_CRAMFS is not set +# BR2_PACKAGE_HOST_DFU_UTIL is not set +# BR2_PACKAGE_HOST_DOS2UNIX is not set +# BR2_PACKAGE_HOST_DOSFSTOOLS is not set +# BR2_PACKAGE_HOST_DTC is not set +# BR2_PACKAGE_HOST_E2FSPROGS is not set +# BR2_PACKAGE_HOST_E2TOOLS is not set +# BR2_PACKAGE_HOST_FAKETIME is not set +# BR2_PACKAGE_HOST_GENEXT2FS is not set +# BR2_PACKAGE_HOST_GENIMAGE is not set +# BR2_PACKAGE_HOST_GENPART is not set +# BR2_PACKAGE_HOST_GPTFDISK is not set +# BR2_PACKAGE_HOST_JQ is not set +# BR2_PACKAGE_HOST_LPC3250LOADER is not set +# BR2_PACKAGE_HOST_MKE2IMG is not set +# BR2_PACKAGE_HOST_MTD is not set +# BR2_PACKAGE_HOST_MTOOLS is not set +# BR2_PACKAGE_HOST_OPENOCD is not set +# BR2_PACKAGE_HOST_PARTED is not set +# BR2_PACKAGE_HOST_PATCHELF is not set +# BR2_PACKAGE_HOST_PWGEN is not set +# BR2_PACKAGE_HOST_QEMU is not set +# BR2_PACKAGE_HOST_SAM_BA is not set +# BR2_PACKAGE_HOST_SQUASHFS is not set +# BR2_PACKAGE_HOST_UBOOT_TOOLS is not set +# BR2_PACKAGE_HOST_UTIL_LINUX is not set +# BR2_PACKAGE_HOST_VBOOT_UTILS is not set + +# +# Legacy config options +# + +# +# Legacy options removed in 2016.02 +# +# BR2_PACKAGE_DOVECOT_BZIP2 is not set +# BR2_PACKAGE_DOVECOT_ZLIB is not set +# BR2_PACKAGE_E2FSPROGS_FINDFS is not set +# BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL is not set +# BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE is not set +# BR2_PACKAGE_OPENPOWERLINK_LIBPCAP is not set +# BR2_LINUX_KERNEL_SAME_AS_HEADERS is not set +# BR2_PACKAGE_CUPS_PDFTOPS is not set +# BR2_KERNEL_HEADERS_3_16 is not set +# BR2_PACKAGE_PYTHON_PYXML is not set +# BR2_ENABLE_SSP is not set +# BR2_PACKAGE_DIRECTFB_CLE266 is not set +# BR2_PACKAGE_DIRECTFB_UNICHROME is not set +# BR2_PACKAGE_LIBELEMENTARY is not set +# BR2_PACKAGE_LIBEINA is not set +# BR2_PACKAGE_LIBEET is not set +# BR2_PACKAGE_LIBEVAS is not set +# BR2_PACKAGE_LIBECORE is not set +# BR2_PACKAGE_LIBEDBUS is not set +# BR2_PACKAGE_LIBEFREET is not set +# BR2_PACKAGE_LIBEIO is not set +# BR2_PACKAGE_LIBEMBRYO is not set +# BR2_PACKAGE_LIBEDJE is not set +# BR2_PACKAGE_LIBETHUMB is not set +# BR2_PACKAGE_INFOZIP is not set +# BR2_BR2_PACKAGE_NODEJS_0_10_X is not set +# BR2_BR2_PACKAGE_NODEJS_0_12_X is not set +# BR2_BR2_PACKAGE_NODEJS_4_X is not set + +# +# Legacy options removed in 2015.11 +# +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REAL is not set +# BR2_PACKAGE_MEDIA_CTL is not set +# BR2_PACKAGE_SCHIFRA is not set +# BR2_PACKAGE_ZXING is not set +# BR2_PACKAGE_BLACKBOX is not set +# BR2_KERNEL_HEADERS_3_0 is not set +# BR2_KERNEL_HEADERS_3_11 is not set +# BR2_KERNEL_HEADERS_3_13 is not set +# BR2_KERNEL_HEADERS_3_15 is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_BLTLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_CPULOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DATABUFFER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DIOLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DOK is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DRIVERTEST is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FIRE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FLIP is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FONTS is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_INPUT is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_JOYSTICK is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_KNUCKLES is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_LAYER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX_WATER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_NEO is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_NETLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PALETTE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PARTICLE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PORTER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_STRESS is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_TEXTURE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO_PARTICLE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_WINDOW is not set +# BR2_PACKAGE_KOBS_NG is not set +# BR2_PACKAGE_SAWMAN is not set +# BR2_PACKAGE_DIVINE is not set + +# +# Legacy options removed in 2015.08 +# +# BR2_PACKAGE_KODI_PVR_ADDONS is not set +# BR2_BINUTILS_VERSION_2_23_2 is not set +# BR2_BINUTILS_VERSION_2_24 is not set +# BR2_BINUTILS_VERSION_2_25 is not set +# BR2_PACKAGE_PERF is not set +# BR2_BINUTILS_VERSION_2_22 is not set +# BR2_PACKAGE_GPU_VIV_BIN_MX6Q is not set +# BR2_TARGET_UBOOT_NETWORK is not set + +# +# Legacy options removed in 2015.05 +# +# BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K is not set +# BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K is not set +# BR2_PACKAGE_MONO_20 is not set +# BR2_PACKAGE_MONO_40 is not set +# BR2_PACKAGE_MONO_45 is not set +# BR2_CIVETWEB_WITH_LUA is not set +# BR2_PACKAGE_TIFF_TIFF2PDF is not set +# BR2_PACKAGE_TIFF_TIFFCP is not set +# BR2_LINUX_KERNEL_EXT_RTAI_PATCH is not set +# BR2_TARGET_GENERIC_PASSWD_DES is not set +# BR2_PACKAGE_GTK2_THEME_HICOLOR is not set +# BR2_PACKAGE_VALGRIND_PTRCHECK is not set + +# +# Legacy options removed in 2015.02 +# +# BR2_PACKAGE_LIBGC is not set +# BR2_PACKAGE_WDCTL is not set +# BR2_PACKAGE_UTIL_LINUX_ARCH is not set +# BR2_PACKAGE_UTIL_LINUX_DDATE is not set +# BR2_PACKAGE_RPM_BZIP2_PAYLOADS is not set +# BR2_PACKAGE_RPM_XZ_PAYLOADS is not set +# BR2_PACKAGE_M4 is not set +# BR2_PACKAGE_FLEX_BINARY is not set +# BR2_PACKAGE_BISON is not set +# BR2_PACKAGE_GOB2 is not set +# BR2_PACKAGE_DISTCC is not set +# BR2_PACKAGE_HASERL_VERSION_0_8_X is not set +# BR2_PACKAGE_STRONGSWAN_TOOLS is not set +# BR2_PACKAGE_XBMC_ADDON_XVDR is not set +# BR2_PACKAGE_XBMC_PVR_ADDONS is not set +# BR2_PACKAGE_XBMC is not set +# BR2_PACKAGE_XBMC_ALSA_LIB is not set +# BR2_PACKAGE_XBMC_AVAHI is not set +# BR2_PACKAGE_XBMC_DBUS is not set +# BR2_PACKAGE_XBMC_LIBBLURAY is not set +# BR2_PACKAGE_XBMC_GOOM is not set +# BR2_PACKAGE_XBMC_RSXS is not set +# BR2_PACKAGE_XBMC_LIBCEC is not set +# BR2_PACKAGE_XBMC_LIBMICROHTTPD is not set +# BR2_PACKAGE_XBMC_LIBNFS is not set +# BR2_PACKAGE_XBMC_RTMPDUMP is not set +# BR2_PACKAGE_XBMC_LIBSHAIRPLAY is not set +# BR2_PACKAGE_XBMC_LIBSMBCLIENT is not set +# BR2_PACKAGE_XBMC_LIBTHEORA is not set +# BR2_PACKAGE_XBMC_LIBUSB is not set +# BR2_PACKAGE_XBMC_LIBVA is not set +# BR2_PACKAGE_XBMC_WAVPACK is not set +# BR2_PREFER_STATIC_LIB is not set + +# +# Legacy options removed in 2014.11 +# +# BR2_x86_generic is not set +# BR2_GCC_VERSION_4_4_X is not set +# BR2_sparc_sparchfleon is not set +# BR2_sparc_sparchfleonv8 is not set +# BR2_sparc_sparcsfleon is not set +# BR2_sparc_sparcsfleonv8 is not set +# BR2_PACKAGE_LINUX_FIRMWARE_XC5000 is not set +# BR2_PACKAGE_LINUX_FIRMWARE_CXGB4 is not set +# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160_7260_7 is not set +# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160_7260_8 is not set + +# +# Legacy options removed in 2014.08 +# +# BR2_PACKAGE_LIBELF is not set +# BR2_KERNEL_HEADERS_3_8 is not set +# BR2_PACKAGE_GETTEXT_TOOLS is not set +# BR2_PACKAGE_PROCPS is not set +# BR2_BINUTILS_VERSION_2_20_1 is not set +# BR2_BINUTILS_VERSION_2_21 is not set +# BR2_BINUTILS_VERSION_2_23_1 is not set +# BR2_UCLIBC_VERSION_0_9_32 is not set +# BR2_GCC_VERSION_4_3_X is not set +# BR2_GCC_VERSION_4_6_X is not set +# BR2_GDB_VERSION_7_4 is not set +# BR2_GDB_VERSION_7_5 is not set +# BR2_BUSYBOX_VERSION_1_19_X is not set +# BR2_BUSYBOX_VERSION_1_20_X is not set +# BR2_BUSYBOX_VERSION_1_21_X is not set +# BR2_PACKAGE_LIBV4L_DECODE_TM6000 is not set +# BR2_PACKAGE_LIBV4L_IR_KEYTABLE is not set +# BR2_PACKAGE_LIBV4L_V4L2_COMPLIANCE is not set +# BR2_PACKAGE_LIBV4L_V4L2_CTL is not set +# BR2_PACKAGE_LIBV4L_V4L2_DBG is not set + +# +# Legacy options removed in 2014.05 +# +# BR2_PACKAGE_EVTEST_CAPTURE is not set +# BR2_KERNEL_HEADERS_3_6 is not set +# BR2_KERNEL_HEADERS_3_7 is not set +# BR2_PACKAGE_VALA is not set +BR2_PACKAGE_TZDATA_ZONELIST="" +# BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE is not set +# BR2_PACKAGE_LUA_INTERPRETER_READLINE is not set +# BR2_PACKAGE_LUA_INTERPRETER_LINENOISE is not set +# BR2_PACKAGE_DVB_APPS_UTILS is not set +# BR2_KERNEL_HEADERS_SNAP is not set +# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV is not set +# BR2_PACKAGE_UDEV is not set +# BR2_PACKAGE_UDEV_RULES_GEN is not set +# BR2_PACKAGE_UDEV_ALL_EXTRAS is not set + +# +# Legacy options removed in 2014.02 +# +# BR2_sh2 is not set +# BR2_sh3 is not set +# BR2_sh3eb is not set +# BR2_KERNEL_HEADERS_3_1 is not set +# BR2_KERNEL_HEADERS_3_3 is not set +# BR2_KERNEL_HEADERS_3_5 is not set +# BR2_GDB_VERSION_7_2 is not set +# BR2_GDB_VERSION_7_3 is not set +# BR2_PACKAGE_CCACHE is not set +# BR2_HAVE_DOCUMENTATION is not set +# BR2_PACKAGE_AUTOMAKE is not set +# BR2_PACKAGE_AUTOCONF is not set +# BR2_PACKAGE_XSTROKE is not set +# BR2_PACKAGE_LZMA is not set +# BR2_PACKAGE_TTCP is not set +# BR2_PACKAGE_LIBNFC_LLCP is not set +# BR2_PACKAGE_MYSQL_CLIENT is not set +# BR2_PACKAGE_SQUASHFS3 is not set +# BR2_TARGET_ROOTFS_SQUASHFS3 is not set +# BR2_PACKAGE_NETKITBASE is not set +# BR2_PACKAGE_NETKITTELNET is not set +# BR2_PACKAGE_LUASQL is not set +# BR2_PACKAGE_LUACJSON is not set + +# +# Legacy options removed in 2013.11 +# +# BR2_PACKAGE_LVM2_DMSETUP_ONLY is not set +# BR2_PACKAGE_QT_JAVASCRIPTCORE is not set +# BR2_PACKAGE_MODULE_INIT_TOOLS is not set +BR2_TARGET_UBOOT_CUSTOM_GIT_REPO_URL="" +BR2_TARGET_UBOOT_CUSTOM_GIT_VERSION="" +BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL="" +BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION="" + +# +# Legacy options removed in 2013.08 +# +# BR2_ARM_OABI is not set +# BR2_PACKAGE_DOSFSTOOLS_DOSFSCK is not set +# BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL is not set +# BR2_PACKAGE_DOSFSTOOLS_MKDOSFS is not set +# BR2_ELF2FLT is not set +# BR2_VFP_FLOAT is not set +# BR2_PACKAGE_GCC_TARGET is not set +# BR2_HAVE_DEVFILES is not set + +# +# Legacy options removed in 2013.05 +# +# BR2_PACKAGE_LINUX_FIRMWARE_RTL_8192 is not set +# BR2_PACKAGE_LINUX_FIRMWARE_RTL_8712 is not set + +# +# Legacy options removed in 2013.02 +# +# BR2_sa110 is not set +# BR2_sa1100 is not set +# BR2_PACKAGE_GDISK is not set +# BR2_PACKAGE_GDISK_GDISK is not set +# BR2_PACKAGE_GDISK_SGDISK is not set +# BR2_PACKAGE_GDB_HOST is not set +# BR2_PACKAGE_DIRECTB_DITHER_RGB16 is not set +# BR2_PACKAGE_DIRECTB_TESTS is not set + +# +# Legacy options removed in 2012.11 +# +# BR2_PACKAGE_CUSTOMIZE is not set +# BR2_PACKAGE_XSERVER_xorg is not set +# BR2_PACKAGE_XSERVER_tinyx is not set +# BR2_PACKAGE_PTHREAD_STUBS is not set + +# +# Legacy options removed in 2012.08 +# +# BR2_PACKAGE_GETTEXT_STATIC is not set +# BR2_PACKAGE_LIBINTL is not set +# BR2_PACKAGE_INPUT_TOOLS_EVTEST is not set +# BR2_BFIN_FDPIC is not set +# BR2_BFIN_FLAT is not set diff --git a/resources/tools/disk-image-builder/nested/clean.sh b/resources/tools/disk-image-builder/nested/clean.sh new file mode 100755 index 0000000000..a8912b97d3 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/clean.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +BUILD_DIR="$(dirname $0)/build" + +make -C ${BUILD_DIR}/buildroot*/ clean +rm -f ${BUILD_DIR}/*.img diff --git a/resources/tools/disk-image-builder/nested/deepclean.sh b/resources/tools/disk-image-builder/nested/deepclean.sh new file mode 100755 index 0000000000..66c14aab2f --- /dev/null +++ b/resources/tools/disk-image-builder/nested/deepclean.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +BUILD_DIR="$(dirname $0)/build" +rm -fr ${BUILD_DIR}/* diff --git a/resources/tools/disk-image-builder/nested/kernel-defconfig b/resources/tools/disk-image-builder/nested/kernel-defconfig new file mode 100644 index 0000000000..7fd03d3e45 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/kernel-defconfig @@ -0,0 +1,317 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_FHANDLE=y +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_SCHED=y +CONFIG_BLK_DEV_INITRD=y +# CONFIG_COMPAT_BRK is not set +CONFIG_PROFILING=y +CONFIG_KPROBES=y +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_SGI_PARTITION=y +CONFIG_SUN_PARTITION=y +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +CONFIG_SMP=y +CONFIG_CALGARY_IOMMU=y +CONFIG_NR_CPUS=64 +CONFIG_SCHED_SMT=y +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_MCE=y +CONFIG_MICROCODE=y +CONFIG_MICROCODE_AMD=y +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +CONFIG_NUMA=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +# CONFIG_MTRR_SANITIZER is not set +CONFIG_EFI=y +CONFIG_HZ_1000=y +CONFIG_KEXEC=y +CONFIG_CRASH_DUMP=y +# CONFIG_COMPAT_VDSO is not set +CONFIG_HIBERNATION=y +CONFIG_PM_DEBUG=y +CONFIG_PM_TRACE_RTC=y +CONFIG_ACPI_DOCK=y +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_STAT is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCCARD=y +CONFIG_YENTA=y +CONFIG_HOTPLUG_PCI=y +CONFIG_BINFMT_MISC=y +CONFIG_IA32_EMULATION=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +CONFIG_TCP_CONG_ADVANCED=y +# CONFIG_TCP_CONG_BIC is not set +# CONFIG_TCP_CONG_WESTWOOD is not set +# CONFIG_TCP_CONG_HTCP is not set +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_NETLABEL=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_ADVANCED is not set +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_SIP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_SECMARK=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_TARGET_ULOG=y +CONFIG_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_MANGLE=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_IPV6HEADER=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_NET_SCHED=y +CONFIG_NET_EMATCH=y +CONFIG_NET_CLS_ACT=y +CONFIG_HAMRADIO=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_MAC80211_LEDS=y +CONFIG_RFKILL=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEBUG_DEVRES=y +CONFIG_CONNECTOR=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_SPI_ATTRS=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_ATA_PIIX=y +CONFIG_PATA_AMD=y +CONFIG_PATA_OLDPIIX=y +CONFIG_PATA_SCH=y +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_MIRROR=y +CONFIG_DM_ZERO=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +CONFIG_NETCONSOLE=y +CONFIG_TIGON3=y +CONFIG_NET_TULIP=y +CONFIG_E100=y +CONFIG_E1000=y +CONFIG_SKY2=y +CONFIG_FORCEDETH=y +CONFIG_8139TOO=y +CONFIG_FDDI=y +CONFIG_INPUT_POLLDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INPUT_MISC=y +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_INTEL is not set +# CONFIG_HW_RANDOM_AMD is not set +CONFIG_NVRAM=y +CONFIG_HPET=y +# CONFIG_HPET_MMAP is not set +CONFIG_I2C_I801=y +CONFIG_WATCHDOG=y +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +CONFIG_DRM=y +CONFIG_DRM_I915=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_EFI=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_VGACON_SOFT_SCROLLBACK=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_SEQUENCER=y +CONFIG_SND_SEQ_DUMMY=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_HRTIMER=y +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_HWDEP=y +CONFIG_HIDRAW=y +CONFIG_HID_GYRATION=y +CONFIG_LOGITECH_FF=y +CONFIG_HID_NTRIG=y +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=y +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +CONFIG_HID_TOPSEED=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_MON=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_PRINTER=y +CONFIG_USB_STORAGE=y +CONFIG_USB_LIBUSUAL=y +CONFIG_EDAC=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_HCTOSYS is not set +CONFIG_DMADEVICES=y +CONFIG_EEEPC_LAPTOP=y +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_STATS=y +CONFIG_INTEL_IOMMU=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set +CONFIG_EFI_VARS=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_QFMT_V2=y +CONFIG_AUTOFS4_FS=y +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_PROC_KCORE=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +CONFIG_PRINTK_TIME=y +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +CONFIG_DEBUG_STACK_USAGE=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_PROVIDE_OHCI1394_DMA_INIT=y +CONFIG_EARLY_PRINTK_DBGP=y +CONFIG_DEBUG_STACKOVERFLOW=y +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_DEBUG_BOOT_PARAMS=y +CONFIG_OPTIMIZE_INLINING=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DISABLE=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_RING=y +CONFIG_BRIDGE=y +CONFIG_IP_FORWARD=y diff --git a/resources/tools/disk-image-builder/nested/patches/01-serial-console b/resources/tools/disk-image-builder/nested/patches/01-serial-console new file mode 100755 index 0000000000..99b6f7f3c8 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/patches/01-serial-console @@ -0,0 +1,23 @@ +#!/bin/sh + +patch boot/grub/menu.lst <<"_EOF" +2c2,4 +< timeout 10 +--- +> timeout 1 +> serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 +> terminal --timeout=0 serial console +15c17 +< kernel /boot/bzImage rw root=/dev/sda1 +--- +> kernel /boot/bzImage rw root=/dev/sda1 console=ttyS0,115200n8 +_EOF + +patch etc/inittab <<"_EOF" +27c27,29 +< console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL +--- +> console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL +> # ttyS1 to be used by qemu-ga +> ttyS2::respawn:/sbin/getty -L ttyS2 0 vt100 # Additional serial +_EOF diff --git a/resources/tools/disk-image-builder/nested/patches/02-users b/resources/tools/disk-image-builder/nested/patches/02-users new file mode 100755 index 0000000000..9b7db0969a --- /dev/null +++ b/resources/tools/disk-image-builder/nested/patches/02-users @@ -0,0 +1,37 @@ +#!/bin/sh -e + +patch etc/sudoers <<"_EOF" +97a98,100 +> +> csit ALL=(root) NOPASSWD:ALL +> cisco ALL=(root) NOPASSWD:ALL +_EOF + +patch etc/passwd <<"_EOF" +10a11,12 +> csit:x:1001:1001:CSIT user:/tmp:/bin/sh +> cisco:x:1002:1002:Cisco user:/tmp:/bin/sh +_EOF + +patch etc/shadow <<"_EOF" +1c1 +< root::10933:0:99999:7::: +--- +> root:5pcUkhKEiBBfw:16892:0:99999:7::: +10a11,12 +> csit:5pcUkhKEiBBfw:16892:0:99999:7::: +> cisco:5piAVSAyGsbaI:16892:0:99999:7::: +_EOF + +patch etc/group <<"_EOF" +27a28,29 +> csit:x:1001: +> cisco:x:1002: +_EOF + +patch etc/ssh/sshd_config <<"_EOF" +44c44 +< #PermitRootLogin prohibit-password +--- +> PermitRootLogin yes +_EOF diff --git a/resources/tools/disk-image-builder/nested/patches/03-network b/resources/tools/disk-image-builder/nested/patches/03-network new file mode 100755 index 0000000000..ca5c4f952d --- /dev/null +++ b/resources/tools/disk-image-builder/nested/patches/03-network @@ -0,0 +1,37 @@ +#!/bin/sh + +patch boot/grub/menu.lst <<"_EOF" +17c17 +< kernel /boot/bzImage rw root=/dev/sda1 console=ttyS0,115200n8 +--- +> kernel /boot/bzImage rw root=/dev/sda1 ipv6.disable=1 console=ttyS0,115200n8 +_EOF + +patch etc/network/interfaces <<"_EOF" +4a5,7 +> +> auto mgmt0 +> iface mgmt0 inet dhcp +_EOF + +patch etc/init.d/S40network <<"_EOF" +11a12,29 +> +> # Rename interfaces. The e1000 interface is managment. +> NUM_VIRTIO=0 +> NUM_MGMT=0 +> for dev in /sys/class/net/eth* +> do +> devname=`basename $dev` +> driver=`readlink ${dev}/device/driver` +> if test "${driver#*virtio}" != "$driver" +> then +> ip link set dev $devname name virtio${NUM_VIRTIO} +> NUM_VIRTIO=$(($NUM_VIRTIO+1)) +> else +> ip link set dev $devname name mgmt${NUM_MGMT} +> NUM_MGMT=$((NUM_MGMT+1)) +> fi +> done +> +_EOF diff --git a/resources/tools/disk-image-builder/nested/patches/04-qemu-ga b/resources/tools/disk-image-builder/nested/patches/04-qemu-ga new file mode 100755 index 0000000000..2897260d10 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/patches/04-qemu-ga @@ -0,0 +1,33 @@ +#!/bin/sh + +cat - > etc/init.d/S45qemu-ga <<"_EOF" +#!/bin/sh +# +# Start QEMU guest agent +# +QEMU_GA_MODE="isa-serial" +QEMU_GA_DEV="/dev/ttyS1" + +case "$1" in + start) + echo "Starting qemu guest agent..." + /usr/bin/qemu-ga -m $QEMU_GA_MODE -p $QEMU_GA_DEV -d + ;; + stop) + echo "Stopping quemu guest agent..." + killall qemu-ga + ;; + restart|reload) + "$0" stop + "$0" start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? +_EOF + +chown root.root etc/init.d/S45qemu-ga +chmod 755 etc/init.d/S45qemu-ga diff --git a/resources/tools/disk-image-builder/nested/patches/05-ssh-hostkeys b/resources/tools/disk-image-builder/nested/patches/05-ssh-hostkeys new file mode 100755 index 0000000000..de8be15798 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/patches/05-ssh-hostkeys @@ -0,0 +1,11 @@ +#!/bin/sh + +# Generate host keys here. This will speed up first boot time ever so slightly. +# It does however mean that keys are not unique across installations -- which +# shouldn't be an issue for our use case though. + +sudo mkdir -m 0775 -p etc/ssh +for a in rsa ecdsa ed25519 dsa +do + sudo ssh-keygen -f etc/ssh/ssh_host_${a}_key -N "" -t ${a} +done diff --git a/resources/tools/disk-image-builder/nested/requirements.sh b/resources/tools/disk-image-builder/nested/requirements.sh new file mode 100644 index 0000000000..80a76fc2e1 --- /dev/null +++ b/resources/tools/disk-image-builder/nested/requirements.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +sudo apt-get install -y gcc-multilib diff --git a/resources/tools/disk-image-builder/ubuntu/.gitignore b/resources/tools/disk-image-builder/ubuntu/.gitignore new file mode 100644 index 0000000000..a007feab07 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/resources/tools/disk-image-builder/ubuntu/CHANGELOG b/resources/tools/disk-image-builder/ubuntu/CHANGELOG new file mode 100644 index 0000000000..8eb1c51abb --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/CHANGELOG @@ -0,0 +1,3 @@ +## [1.0] - 2016-05-20 + +Initial release diff --git a/resources/tools/disk-image-builder/ubuntu/build-listmaker.sh b/resources/tools/disk-image-builder/ubuntu/build-listmaker.sh new file mode 100755 index 0000000000..59b44e5a19 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/build-listmaker.sh @@ -0,0 +1,65 @@ +#!/bin/sh + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and + +# This builds the "listmaker" image. This is essentially a one-time +# action and most likely applicable to CSIT test lab only. + +cd $(dirname $0) +BUILD_DIR="$(pwd)/build" +PACKER_DIR="${BUILD_DIR}/packer" +OUT_DIR="${BUILD_DIR}/output/listmaker" + +RELEASE_NAME="csit-ubuntu-14.04.4-listmaker" +PACKER_TEMPLATE="listmaker/ubuntu-14.04.4.json" + +VIRL_IMAGE_SUBTYPE=server +VIRL_IMAGE_NAME="${RELEASE_NAME}" +VIRL_IMAGE_FILE="${OUT_DIR}/packer-${RELEASE_NAME}" + +# export PACKER_LOG="1" + +# This script requires that the following two environment variables be defined- +# +# $VIRL_USER +# $VIRL_PASSWORD + +if [ "$VIRL_USER" = "" ] || [ "$VIRL_PASSWORD" = "" ] +then + echo '$VIRL_USER and $VIRL_PASSWORD environment variables must be defined' + exit 1 +fi + +### +### Download and extract packer, if not already installed +### +os=$(uname -s) +if [ "$os" = "Darwin" ] +then + packer_url="https://releases.hashicorp.com/packer/0.10.1/packer_0.10.1_darwin_amd64.zip" +elif [ "$os" = "Linux" ] +then + packer_url="https://releases.hashicorp.com/packer/0.10.1/packer_0.10.1_linux_amd64.zip" +fi + +mkdir -p $BUILD_DIR +wget -P ${PACKER_DIR} -N ${packer_url} + +unzip -n ${PACKER_DIR}/packer*zip -d ${PACKER_DIR} + +### +### Build the actual image as per packer script. Packer post-processor will +### upload it to VIRL. +### +${BUILD_DIR}/packer/packer build -var "release=${RELEASE_NAME}" \ + -var "outputdir=${OUT_DIR}" -force -machine-readable ${PACKER_TEMPLATE} diff --git a/resources/tools/disk-image-builder/ubuntu/build.sh b/resources/tools/disk-image-builder/ubuntu/build.sh new file mode 100755 index 0000000000..c94f445801 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/build.sh @@ -0,0 +1,276 @@ +#!/bin/bash -e + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Purpose of this script is to build a VirtualBox or QCOW2 disk image +# for use with CSIT testing. +# +# As input parameters, the script takes: +# +# - A base Linux distribution (currently, only "ubuntu-14.04.4" is +# supported), +# - A release timestamp in the format "YYYY-MM-DD" eg. "2016-05-21". +# This timestamp MUST reference to a list of packages (APT, PIP) +# that was previously generated by the "listmaker" VM and script. +# - A path to the nested VM image. +# +# The bullk of the work is done by packer, +# while this script does some of the pre- and post-processing. +# Steps executed are: +# +# 1.) Determine if building a QCOW or VirtualBox image. Currently, +# we build a QCOW image if VIRL_* environment variables are +# present (and we therefore assume we are building for VIRL), +# or VirtualBox otherwise. +# +# 2.) Download packer, if not already installed. +# +# 3.) Download APT and PIP packages as required for the image. +# We're downloading them here, rather than letting the VM +# download them off the public internet, for two reasons: +# a.) This allows us to keep and cache packets between runs +# and download them only once, +# b.) This means only the build host needs a working proxy +# configuration and we do not need to worry about setting +# a proxy inside the VM. +# +# 4.) Link the nested VM image into the main VM's temp directory +# +# 5.) Create Version and Changelog files +# +# 6.) Run Packer. Packer, in turn, will: +# 6.1.) Download the Operating System ISO image, +# 6.2.) Start a VM using the selected hypervisor (VirtualBox or Qemu), +# 6.3.) Boot the VM using the ISO image and send initial keystrokes +# to initiate installation using a Preseed or Kickstart file, +# 6.4.) Drive the installation using until the point the VM is reachable +# over SSH, +# 6.5.) Copy the temporary directory populated in steps 3-5 above to the VM, +# 6.6.) Run a script on the VM that performs post-installation: +# 6.6.1.) Install selected .deb packages +# 6.6.2.) Install PIP packages as per requirements.txt file +# 6.6.3.) Install nested VM image and VERSION/CHANGELOG files +# 6.7.) Run a script on VM that creates a Vagrant user (VirtualBox only) +# 6.8.) Run a script on VM that performs clean-up: +# 6.8.1.) Remove any temporary files created, +# 6.8.2.) Remove SSH host-keys +# 6.8.3.) Remove root user password +# 6.8.4.) Shut down the VM +# 6.9.) [TODO]: Upload the image to VIRL (QCOW only), -or- +# Convert the image into a Vagrant box (VirtualBox only), and +# [TODO/FIX]: Upload the Vagrant box to Atlas (VirtualBox only) +# +# 7.) Clean up + +### +### 0. Set constants and verify parameters. +### +cd $(dirname $0) +BUILD_DIR="$(pwd)/build" +PACKER_DIR="${BUILD_DIR}/packer" + +APT_CACHE_DIR="${BUILD_DIR}/cache/apt" +PIP_CACHE_DIR="${BUILD_DIR}/cache/pip" + +PACKER_TEMPLATE="ubuntu-14.04.4.json" +LISTS_DIR="$(dirname $0)/lists" + +function syntax { + echo 'Syntax: $0 <Operating System> <Release> <Nested VM image>' + echo + echo '<Operating System>: Base distro, eg. ubuntu-14.04.4' + echo '<Release>: Release timestamp, eg. 2016-05-21' + echo '<Nested VM image>: Path to nested VM image' + + exit 1 +} + +## Parse command line options + +OS=$1 +RELDATE=$2 +NESTED_IMG=$3 + +if [ "$3" = "" ] +then + syntax +fi + +## Identify version by looking at topmost version statement in CHANGELOG + +VERSION=$(cat $(dirname $0)/CHANGELOG | grep '^## ' | head -1 | \ + sed -e 's/.*\[\(.*\)\].*/\1/') +if [ "${VERSION}" = "" ] +then + echo "Unable to determine build version from CHANGELOG file. Make sure" + echo "that there is an entry for the most recent version in CHANGELOG," + echo "and that the entry is formated like" + echo + echo "## [1.0] - 2016-05-20" + exit 1 +fi +RELEASE="csit-${OS}_${RELDATE}_${VERSION}" + +OUTPUT_DIR="${BUILD_DIR}/output/${RELEASE}" +LIST="${LISTS_DIR}/${OS}_${RELDATE}_${VERSION}" + +if [ ! -d "${LIST}" ] +then + echo "${LIST} not found" + syntax + exit 1 +fi +if [ ! -f $NESTED_IMG ] +then + echo "Nested image $NESTED_IMG not found" + syntax + exit 1 +fi + +ATLAS_RELDATE=${RELDATE//-} +ATLAS_VERSION="${ATLAS_RELDATE}.${VERSION}" + +# Find an MD5 checksum utility + +MD5UTIL=$(which md5sum) || MD5UTIL=$(which md5) +if [ $? -ne 0 ] +then + echo "No MD5 utility found." + echo "Please make sure you either have \"md5sum\" or \"md5\" installed." + exit 1 +fi + +### +### 1. Determine build target. +### +if [ "$VIRL_USER" = "" ] || [ "$VIRL_PASSWORD" = "" ] +then + OUTPUT_PROVIDER="virtualbox" +else + OUTPUT_PROVIDER="qemu" +fi + +echo "Building version $VERSION for ${OUTPUT_PROVIDER}" +echo "Release ${RELEASE}" +echo "Using Nested VM image: ${NESTED_IMG}" +echo + + +### +### 2. Download and extract packer, if not already installed +### +packer_os=$(uname -s) +if [ "$packer_os" = "Darwin" ] +then + packer_url="https://releases.hashicorp.com/packer/0.10.1/packer_0.10.1_darwin_amd64.zip" +elif [ "$packer_os" = "Linux" ] +then + packer_url="https://releases.hashicorp.com/packer/0.10.1/packer_0.10.1_linux_amd64.zip" +fi + +mkdir -p $BUILD_DIR +wget -P ${PACKER_DIR} -N ${packer_url} + +unzip -n ${PACKER_DIR}/packer*zip -d ${PACKER_DIR} + +### +### 3. Download APT and PIP packages, and cache them +### Verify checksum of downloaded APT packages. +### Link required packages into a temp directory for the VM image. +### + +## APT + +rm -fr ${OUTPUT_DIR} +mkdir -p ${OUTPUT_DIR}/temp/deb +mkdir -p ${APT_CACHE_DIR} + +APT_FILE="${LIST}/apt-packages.txt" +while read url name size checksum +do + # Download if not already present + if [ ! -f ${APT_CACHE_DIR}/$name ] + then + wget -P ${APT_CACHE_DIR} -O ${APT_CACHE_DIR}/$name ${url//\'} + fi + + # Verify checksum (always -- regardless of whether the package was + # just downloaded, or already tehere + actual_md5sum=$(${MD5UTIL} < ${APT_CACHE_DIR}/$name) + if [ ! "${actual_md5sum:0:32}" = "${checksum:7}" ] + then + echo File $name checksum failure." + echo "Got ${actual_md5sum:0:31} expected ${checksum:7}. + rm -f ${APT_CACHE_DIR}/$name + exit 1 + fi + + # Link package into VM temp directory + ln ${APT_CACHE_DIR}/$name ${OUTPUT_DIR}/temp/deb/${name} +done < $APT_FILE + +## PIP + +mkdir -p ${PIP_CACHE_DIR} + +# Let PIP do the work of downloading and verifying packages +pip install --download ${PIP_CACHE_DIR} -r ${LIST}/pip-requirements.txt + +# Link packages and requirements file into VM's temp directory +mkdir -p ${OUTPUT_DIR}/temp/pip +ln ${PIP_CACHE_DIR}/* ${OUTPUT_DIR}/temp/pip/ +ln ${LIST}/pip-requirements.txt ${OUTPUT_DIR}/temp/requirements.txt + +### +### 4. Link the nested VM image +### +rm -fr ${OUTPUT_DIR}/temp/nested-vm +mkdir ${OUTPUT_DIR}/temp/nested-vm +ln $NESTED_IMG ${OUTPUT_DIR}/temp/nested-vm/ + +### +### 5. Create Version and Changelog files +### + +echo ${RELEASE} > ${OUTPUT_DIR}/temp/VERSION +ln CHANGELOG ${OUTPUT_DIR}/temp/CHANGELOG + +### +### 6. Run packer +### +export PACKER_LOG=1 +export PACKER_LOG_PATH=${OUTPUT_DIR}/packer.log +${PACKER_DIR}/packer build -var "release=${RELEASE}" \ + -only ${RELEASE}-${OUTPUT_PROVIDER} \ + -var "output_dir=${OUTPUT_DIR}/packer" \ + -var "temp_dir=${OUTPUT_DIR}/temp" \ + -var "atlas_version=${ATLAS_VERSION}" \ + -force \ + -machine-readable ${PACKER_TEMPLATE} + +# TODO: Need to figure out "packer push" later. Currently keeps failing. +# ${PACKER_DIR}/packer push -name ckoester/test123 -var "release=${RELEASE}" \ +# -var "output_dir=${OUTPUT_DIR}/packer" \ +# -var "temp_dir=${OUTPUT_DIR}/temp" \ +# ${PACKER_TEMPLATE} + +### +### 7. Clean up +### +rm -fr ${OUTPUT_DIR}/temp + +echo "Done." +echo "Artifacts:" +echo +ls -lR ${OUTPUT_DIR} diff --git a/resources/tools/disk-image-builder/ubuntu/clean.sh b/resources/tools/disk-image-builder/ubuntu/clean.sh new file mode 100644 index 0000000000..e1dbae46df --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/clean.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Script to clean up all build artifact, but keep cached files + +rm -fr $(dirname $0)/build/output/* diff --git a/resources/tools/disk-image-builder/ubuntu/deepclean.sh b/resources/tools/disk-image-builder/ubuntu/deepclean.sh new file mode 100755 index 0000000000..50eccc35c3 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/deepclean.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Script to clean up build artifacts and cached files. + +rm -fr $(dirname $0)/build/* +rm -fr $(dirname $0)/lists/* diff --git a/resources/tools/disk-image-builder/ubuntu/html/preseed.cfg b/resources/tools/disk-image-builder/ubuntu/html/preseed.cfg new file mode 100644 index 0000000000..280757a647 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/html/preseed.cfg @@ -0,0 +1,503 @@ +#### Contents of the preconfiguration file (for trusty) +### Localization +# Preseeding only locale sets language, country and locale. +d-i debian-installer/locale string en_US + +# The values can also be preseeded individually for greater flexibility. +#d-i debian-installer/language string en +#d-i debian-installer/country string NL +#d-i debian-installer/locale string en_GB.UTF-8 +# Optionally specify additional locales to be generated. +#d-i localechooser/supported-locales multiselect en_US.UTF-8, nl_NL.UTF-8 + +# Keyboard selection. +# Disable automatic (interactive) keymap detection. +d-i console-setup/ask_detect boolean false +d-i keyboard-configuration/xkb-keymap select us +# To select a variant of the selected layout: +#d-i keyboard-configuration/xkb-keymap select us(dvorak) +# d-i keyboard-configuration/toggle select No toggling + +### Network configuration +# Disable network configuration entirely. This is useful for cdrom +# installations on non-networked devices where the network questions, +# warning and long timeouts are a nuisance. +#d-i netcfg/enable boolean false + +# netcfg will choose an interface that has link if possible. This makes it +# skip displaying a list if there is more than one interface. +d-i netcfg/choose_interface select auto + +# To pick a particular interface instead: +#d-i netcfg/choose_interface select eth1 + +# To set a different link detection timeout (default is 3 seconds). +# Values are interpreted as seconds. +#d-i netcfg/link_wait_timeout string 10 + +# If you have a slow dhcp server and the installer times out waiting for +# it, this might be useful. +#d-i netcfg/dhcp_timeout string 60 +#d-i netcfg/dhcpv6_timeout string 60 + +# If you prefer to configure the network manually, uncomment this line and +# the static network configuration below. +#d-i netcfg/disable_autoconfig boolean true + +# If you want the preconfiguration file to work on systems both with and +# without a dhcp server, uncomment these lines and the static network +# configuration below. +#d-i netcfg/dhcp_failed note +#d-i netcfg/dhcp_options select Configure network manually + +# Static network configuration. +# +# IPv4 example +#d-i netcfg/get_ipaddress string 192.168.1.42 +#d-i netcfg/get_netmask string 255.255.255.0 +#d-i netcfg/get_gateway string 192.168.1.1 +#d-i netcfg/get_nameservers string 192.168.1.1 +#d-i netcfg/confirm_static boolean true +# +# IPv6 example +#d-i netcfg/get_ipaddress string fc00::2 +#d-i netcfg/get_netmask string ffff:ffff:ffff:ffff:: +#d-i netcfg/get_gateway string fc00::1 +#d-i netcfg/get_nameservers string fc00::1 +#d-i netcfg/confirm_static boolean true + +# Any hostname and domain names assigned from dhcp take precedence over +# values set here. However, setting the values still prevents the questions +# from being shown, even if values come from dhcp. +d-i netcfg/get_hostname string unassigned-hostname +d-i netcfg/get_domain string unassigned-domain + +# If you want to force a hostname, regardless of what either the DHCP +# server returns or what the reverse DNS entry for the IP is, uncomment +# and adjust the following line. +#d-i netcfg/hostname string somehost + +# Disable that annoying WEP key dialog. +d-i netcfg/wireless_wep string +# The wacky dhcp hostname that some ISPs use as a password of sorts. +#d-i netcfg/dhcp_hostname string radish + +# If non-free firmware is needed for the network or other hardware, you can +# configure the installer to always try to load it, without prompting. Or +# change to false to disable asking. +#d-i hw-detect/load_firmware boolean true + +### Network console +# Use the following settings if you wish to make use of the network-console +# component for remote installation over SSH. This only makes sense if you +# intend to perform the remainder of the installation manually. +#d-i anna/choose_modules string network-console +#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key +#d-i network-console/password password r00tme +#d-i network-console/password-again password r00tme +# Use this instead if you prefer to use key-based authentication +#d-i network-console/authorized_keys_url http://host/authorized_keys + +### Mirror settings +# If you select ftp, the mirror/country string does not need to be set. +#d-i mirror/protocol string ftp +#d-i mirror/country string manual +#d-i mirror/http/hostname string archive.ubuntu.com +#d-i mirror/http/directory string /ubuntu +#d-i mirror/http/proxy string + +# Alternatively: by default, the installer uses CC.archive.ubuntu.com where +# CC is the ISO-3166-2 code for the selected country. You can preseed this +# so that it does so without asking. +#d-i mirror/http/mirror select CC.archive.ubuntu.com + +# Suite to install. +#d-i mirror/suite string trusty +# Suite to use for loading installer components (optional). +#d-i mirror/udeb/suite string trusty +# Components to use for loading installer components (optional). +#d-i mirror/udeb/components multiselect main, restricted + +### Account setup +# Skip creation of a root account (normal user account will be able to +# use sudo). The default is false; preseed this to true if you want to set +# a root password. +d-i passwd/root-login boolean true +# Alternatively, to skip creation of a normal user account. +d-i passwd/make-user boolean false + +# Root password, either in clear text +d-i passwd/root-password password csit +d-i passwd/root-password-again password csit +# or encrypted using a crypt(3) hash. +#d-i passwd/root-password-crypted password [crypt(3) hash] + +# To create a normal user account. +#d-i passwd/user-fullname string Ubuntu User +#d-i passwd/username string ubuntu +# Normal user's password, either in clear text +#d-i passwd/user-password password insecure +#d-i passwd/user-password-again password insecure +# or encrypted using a crypt(3) hash. +#d-i passwd/user-password-crypted password [crypt(3) hash] +# Create the first user with the specified UID instead of the default. +#d-i passwd/user-uid string 1010 +# The installer will warn about weak passwords. If you are sure you know +# what you're doing and want to override it, uncomment this. +#d-i user-setup/allow-password-weak boolean true +#d-i passwd/user-fullname string Packer - Temp User +#d-i passwd/username string packer +#d-i passwd/user-password password packer +#d-i passwd/user-password-again password packer +d-i user-setup/allow-password-weak boolean true + +# The user account will be added to some standard initial groups. To +# override that, use this. +#d-i passwd/user-default-groups string audio cdrom video + +# Set to true if you want to encrypt the first user's home directory. +d-i user-setup/encrypt-home boolean false + +### Clock and time zone setup +# Controls whether or not the hardware clock is set to UTC. +d-i clock-setup/utc boolean true + +# You may set this to any valid setting for $TZ; see the contents of +# /usr/share/zoneinfo/ for valid values. +d-i time/zone string US/Eastern + +# Controls whether to use NTP to set the clock during the install +d-i clock-setup/ntp boolean false +# NTP server to use. The default is almost always fine here. +#d-i clock-setup/ntp-server string ntp.example.com + +### Partitioning +## Partitioning example +# If the system has free space you can choose to only partition that space. +# This is only honoured if partman-auto/method (below) is not set. +# Alternatives: custom, some_device, some_device_crypto, some_device_lvm. +#d-i partman-auto/init_automatically_partition select biggest_free + +# Alternatively, you may specify a disk to partition. If the system has only +# one disk the installer will default to using that, but otherwise the device +# name must be given in traditional, non-devfs format (so e.g. /dev/sda +# and not e.g. /dev/discs/disc0/disc). +# For example, to use the first SCSI/SATA hard disk: +#d-i partman-auto/disk string /dev/sda +# In addition, you'll need to specify the method to use. +# The presently available methods are: +# - regular: use the usual partition types for your architecture +# - lvm: use LVM to partition the disk +# - crypto: use LVM within an encrypted partition +#d-i partman-auto/method string lvm +d-i partman-auto/method string regular + +# If one of the disks that are going to be automatically partitioned +# contains an old LVM configuration, the user will normally receive a +# warning. This can be preseeded away... +#d-i partman-lvm/device_remove_lvm boolean true +# The same applies to pre-existing software RAID array: +#d-i partman-md/device_remove_md boolean true +# And the same goes for the confirmation to write the lvm partitions. +#d-i partman-lvm/confirm boolean true +#d-i partman-lvm/confirm_nooverwrite boolean true + +# For LVM partitioning, you can select how much of the volume group to use +# for logical volumes. +#d-i partman-auto-lvm/guided_size string max +#d-i partman-auto-lvm/guided_size string 10GB +#d-i partman-auto-lvm/guided_size string 50% + +# You can choose one of the three predefined partitioning recipes: +# - atomic: all files in one partition +# - home: separate /home partition +# - multi: separate /home, /var, and /tmp partitions +#d-i partman-auto/choose_recipe select atomic + +# Or provide a recipe of your own... +# If you have a way to get a recipe file into the d-i environment, you can +# just point at it. +#d-i partman-auto/expert_recipe_file string /hd-media/recipe + +d-i partman-basicfilesystems/no_swap boolean false +d-i partman-auto/expert_recipe string myroot :: 1000 50 -1 ext4 \ + $primary{ } $bootable{ } method{ format } \ + format{ } use_filesystem{ } filesystem{ ext4 } \ + mountpoint{ / } \ + . +d-i partman-auto/choose_recipe select myroot + +# If not, you can put an entire recipe into the preconfiguration file in one +# (logical) line. This example creates a small /boot partition, suitable +# swap, and uses the rest of the space for the root partition: +#d-i partman-auto/expert_recipe string \ +# boot-root :: \ +# 40 50 100 ext3 \ +# $primary{ } $bootable{ } \ +# method{ format } format{ } \ +# use_filesystem{ } filesystem{ ext3 } \ +# mountpoint{ /boot } \ +# . \ +# 500 10000 1000000000 ext3 \ +# method{ format } format{ } \ +# use_filesystem{ } filesystem{ ext3 } \ +# mountpoint{ / } \ +# . \ +# 64 512 300% linux-swap \ +# method{ swap } format{ } \ +# . + +# If you just want to change the default filesystem from ext3 to something +# else, you can do that without providing a full recipe. +#d-i partman/default_filesystem string ext4 + +# The full recipe format is documented in the file partman-auto-recipe.txt +# included in the 'debian-installer' package or available from D-I source +# repository. This also documents how to specify settings such as file +# system labels, volume group names and which physical devices to include +# in a volume group. + +# This makes partman automatically partition without confirmation, provided +# that you told it what to do using one of the methods above. +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true + +## Partitioning using RAID +# The method should be set to "raid". +#d-i partman-auto/method string raid +# Specify the disks to be partitioned. They will all get the same layout, +# so this will only work if the disks are the same size. +#d-i partman-auto/disk string /dev/sda /dev/sdb + +# Next you need to specify the physical partitions that will be used. +#d-i partman-auto/expert_recipe string \ +# multiraid :: \ +# 1000 5000 4000 raid \ +# $primary{ } method{ raid } \ +# . \ +# 64 512 300% raid \ +# method{ raid } \ +# . \ +# 500 10000 1000000000 raid \ +# method{ raid } \ +# . + +# Last you need to specify how the previously defined partitions will be +# used in the RAID setup. Remember to use the correct partition numbers +# for logical partitions. RAID levels 0, 1, 5, 6 and 10 are supported; +# devices are separated using "#". +# Parameters are: +# <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \ +# <devices> <sparedevices> + +#d-i partman-auto-raid/recipe string \ +# 1 2 0 ext3 / \ +# /dev/sda1#/dev/sdb1 \ +# . \ +# 1 2 0 swap - \ +# /dev/sda5#/dev/sdb5 \ +# . \ +# 0 2 0 ext3 /home \ +# /dev/sda6#/dev/sdb6 \ +# . + +# For additional information see the file partman-auto-raid-recipe.txt +# included in the 'debian-installer' package or available from D-I source +# repository. + +# This makes partman automatically partition without confirmation. +d-i partman-md/confirm boolean true +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true + +## Controlling how partitions are mounted +# The default is to mount by UUID, but you can also choose "traditional" to +# use traditional device names, or "label" to try filesystem labels before +# falling back to UUIDs. +#d-i partman/mount_style select uuid +d-i partman/mount_style select traditional + +### Base system installation +# Configure a path to the preconfigured base filesystem. This can be used to +# specify a path for the installer to retrieve the filesystem image that will +# be deployed to disk and used as a base system for the installation. +#d-i live-installer/net-image string /install/filesystem.squashfs + +# Configure APT to not install recommended packages by default. Use of this +# option can result in an incomplete system and should only be used by very +# experienced users. +#d-i base-installer/install-recommends boolean false + +# The kernel image (meta) package to be installed; "none" can be used if no +# kernel is to be installed. +#d-i base-installer/kernel/image string linux-generic + +### Apt setup +# You can choose to install restricted and universe software, or to install +# software from the backports repository. +#d-i apt-setup/restricted boolean true +#d-i apt-setup/universe boolean true +#d-i apt-setup/backports boolean true +# Uncomment this if you don't want to use a network mirror. +d-i apt-setup/use_mirror boolean false +d-i apt-setup/services-select-ubuntu multiselect "" + +# Select which update services to use; define the mirrors to be used. +# Values shown below are the normal defaults. +#d-i apt-setup/services-select multiselect security +#d-i apt-setup/security_host string security.ubuntu.com +#d-i apt-setup/security_path string /ubuntu + +# Additional repositories, local[0-9] available +#d-i apt-setup/local0/repository string \ +# http://local.server/ubuntu trusty main +#d-i apt-setup/local0/comment string local server +# Enable deb-src lines +#d-i apt-setup/local0/source boolean true +# URL to the public key of the local repository; you must provide a key or +# apt will complain about the unauthenticated repository and so the +# sources.list line will be left commented out +#d-i apt-setup/local0/key string http://local.server/key + +# By default the installer requires that repositories be authenticated +# using a known gpg key. This setting can be used to disable that +# authentication. Warning: Insecure, not recommended. +#d-i debian-installer/allow_unauthenticated boolean true + +# Uncomment this to add multiarch configuration for i386 +#d-i apt-setup/multiarch string i386 + + +### Package selection +#tasksel tasksel/first multiselect ubuntu-desktop +#tasksel tasksel/first multiselect lamp-server, print-server +#tasksel tasksel/first multiselect kubuntu-desktop +tasksel tasksel/first multiselect server +tasksel tasksel/first multiselect ssh-server + +# Individual additional packages to install +#d-i pkgsel/include string openssh-server build-essential +d-i pkgsel/include string openssh-server +# Whether to upgrade packages after debootstrap. +# Allowed values: none, safe-upgrade, full-upgrade +d-i pkgsel/upgrade select none + +# Language pack selection +#d-i pkgsel/language-packs multiselect de, en, zh + +# Policy for applying updates. May be "none" (no automatic updates), +# "unattended-upgrades" (install security updates automatically), or +# "landscape" (manage system with Landscape). +d-i pkgsel/update-policy select none + +# Some versions of the installer can report back on what software you have +# installed, and what software you use. The default is not to report back, +# but sending reports helps the project determine what software is most +# popular and include it on CDs. +#popularity-contest popularity-contest/participate boolean false + +# By default, the system's locate database will be updated after the +# installer has finished installing most packages. This may take a while, so +# if you don't want it, you can set this to "false" to turn it off. +d-i pkgsel/updatedb boolean false + +### Boot loader installation +# Grub is the default boot loader (for x86). If you want lilo installed +# instead, uncomment this: +#d-i grub-installer/skip boolean true +# To also skip installing lilo, and install no bootloader, uncomment this +# too: +#d-i lilo-installer/skip boolean true + + +# This is fairly safe to set, it makes grub install automatically to the MBR +# if no other operating system is detected on the machine. +d-i grub-installer/only_debian boolean true + +# This one makes grub-installer install to the MBR if it also finds some other +# OS, which is less safe as it might not be able to boot that other OS. +d-i grub-installer/with_other_os boolean true + +# Due notably to potential USB sticks, the location of the MBR can not be +# determined safely in general, so this needs to be specified: +#d-i grub-installer/bootdev string /dev/sda +# To install to the first device (assuming it is not a USB stick): +#d-i grub-installer/bootdev string default + +# Alternatively, if you want to install to a location other than the mbr, +# uncomment and edit these lines: +#d-i grub-installer/only_debian boolean false +#d-i grub-installer/with_other_os boolean false +#d-i grub-installer/bootdev string (hd0,1) +# To install grub to multiple disks: +#d-i grub-installer/bootdev string (hd0,1) (hd1,1) (hd2,1) + +# Optional password for grub, either in clear text +#d-i grub-installer/password password r00tme +#d-i grub-installer/password-again password r00tme +# or encrypted using an MD5 hash, see grub-md5-crypt(8). +#d-i grub-installer/password-crypted password [MD5 hash] + +# Use the following option to add additional boot parameters for the +# installed system (if supported by the bootloader installer). +# Note: options passed to the installer will be added automatically. +#d-i debian-installer/add-kernel-opts string nousb + +### Finishing up the installation +# During installations from serial console, the regular virtual consoles +# (VT1-VT6) are normally disabled in /etc/inittab. Uncomment the next +# line to prevent this. +#d-i finish-install/keep-consoles boolean true + +# Avoid that last message about the install being complete. +d-i finish-install/reboot_in_progress note + +# This will prevent the installer from ejecting the CD during the reboot, +# which is useful in some situations. +#d-i cdrom-detect/eject boolean false + +# This is how to make the installer shutdown when finished, but not +# reboot into the installed system. +#d-i debian-installer/exit/halt boolean true +# This will power off the machine instead of just halting it. +#d-i debian-installer/exit/poweroff boolean true + +### Preseeding other packages +# Depending on what software you choose to install, or if things go wrong +# during the installation process, it's possible that other questions may +# be asked. You can preseed those too, of course. To get a list of every +# possible question that could be asked during an install, do an +# installation, and then run these commands: +# debconf-get-selections --installer > file +# debconf-get-selections >> file + + +#### Advanced options +### Running custom commands during the installation +# d-i preseeding is inherently not secure. Nothing in the installer checks +# for attempts at buffer overflows or other exploits of the values of a +# preconfiguration file like this one. Only use preconfiguration files from +# trusted locations! To drive that home, and because it's generally useful, +# here's a way to run any shell command you'd like inside the installer, +# automatically. + +# This first command is run as early as possible, just after +# preseeding is read. +#d-i preseed/early_command string anna-install some-udeb +# This command is run immediately before the partitioner starts. It may be +# useful to apply dynamic partitioner preseeding that depends on the state +# of the disks (which may not be visible when preseed/early_command runs). +#d-i partman/early_command \ +# string debconf-set partman-auto/disk "$(list-devices disk | head -n1)" +# This command is run just before the install finishes, but when there is +# still a usable /target directory. You can chroot to /target and use it +# directly, or use the apt-install and in-target commands to easily install +# packages and run commands in the target system. +#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh + +d-i preseed/late_command string \ + in-target sed -i /etc/ssh/sshd_config -e 's/[# ]*PermitRootLogin.*/PermitRootLogin yes/' ; diff --git a/resources/tools/disk-image-builder/ubuntu/listmaker/ubuntu-14.04.4.json b/resources/tools/disk-image-builder/ubuntu/listmaker/ubuntu-14.04.4.json new file mode 100644 index 0000000000..f4c1a70545 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/listmaker/ubuntu-14.04.4.json @@ -0,0 +1,57 @@ +{ + "_c": "Ubuntu 14.04.4 ISO URL at the time of creation of this file (05/2016)", + "_c": "was http://releases.ubuntu.com/14.04/ubuntu-14.04.4-server-amd64.iso .", + "_c": "", + "_c": "If and when 14.04.4 becomes superseded, this URL will likely change", + "_c": "to:", + "_c": "http://old-releases.ubuntu.com/releases/14.04.4/ubuntu-14.04.4-server-amd64.iso", + "variables": { + "release": null, + "outputdir": null, + "virl_user": "{{env `VIRL_USER`}}", + "virl_password": "{{env `VIRL_PASSWORD`}}" + }, + "builders": [ + { + "name": "{{user `release`}}", + "type": "qemu", + "iso_url": "http://releases.ubuntu.com/14.04/ubuntu-14.04.4-server-amd64.iso", + "iso_checksum": "2ac1f3e0de626e54d05065d6f549fa3a", + "iso_checksum_type": "md5", + "ssh_username": "root", + "ssh_password": "csit", + "shutdown_command": "echo 'packer' | shutdown -P now", + "disk_size": "4096", + "http_directory": "html", + "iso_target_path" : "build/ubuntu-14.04.4-server-amd64.iso", + "output_directory": "{{user `outputdir`}}", + "headless": "true", + "boot_command": + [ + "<esc><esc><enter><wait>", + "/install/vmlinuz noapic ", + "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", + "debian-installer=en_US auto locale=en_US kbd-chooser/method=us ", + "hostname=csit ", + "fb=false debconf/frontend=noninteractive ", + "keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ", + "keyboard-configuration/variant=USA console-setup/ask_detect=false ", + "initrd=/install/initrd.gz -- <enter>" + ] + } + ], + "post-processors": [ + { + "type": "shell-local", + "script": "scripts-local/upload-image-to-virl.sh", + "keep_input_artifact": true, + "environment_vars": + [ + "VIRL_USER={{user `virl_user`}}", + "VIRL_PASSWORD={{user `virl_password`}}", + "VIRL_IMAGE_SUBTYPE=server", + "VIRL_IMAGE_NAME={{user `release`}}" + ] + } + ] +} diff --git a/resources/tools/disk-image-builder/ubuntu/listmaker/virl-listmaker.yaml b/resources/tools/disk-image-builder/ubuntu/listmaker/virl-listmaker.yaml new file mode 100644 index 0000000000..63019011bd --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/listmaker/virl-listmaker.yaml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<topology xmlns="http://www.cisco.com/VIRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="0.9" xsi:schemaLocation="http://www.cisco.com/VIRL https://raw.github.com/CiscoVIRL/schema/v0.9/virl.xsd"> + <extensions> + <entry key="management_network" type="String">flat</entry> + </extensions> + <node name="listmaker" type="SIMPLE" subtype="server" location="570,238" vmImage="server-csit-ubuntu-14.04.4-listmaker"> + <extensions> + <entry key="config" type="String">UNUSED</entry> + <entry key="Auto-generate config" type="Boolean">false</entry> + </extensions> + </node> +</topology> diff --git a/resources/tools/disk-image-builder/ubuntu/lists/ubuntu-14.04.4_2016-05-25_1.0/apt-packages.txt b/resources/tools/disk-image-builder/ubuntu/lists/ubuntu-14.04.4_2016-05-25_1.0/apt-packages.txt new file mode 100644 index 0000000000..1edf040c64 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/lists/ubuntu-14.04.4_2016-05-25_1.0/apt-packages.txt @@ -0,0 +1,195 @@ +'http://ppa.launchpad.net/syseleven-platform/virtualization/ubuntu/pool/main/libs/libseccomp/libseccomp2_2.1.1-1+syseleven1_amd64.deb' libseccomp2_2.1.1-1+syseleven1_amd64.deb 26344 MD5Sum:3ceb99432357bce67ba151a859aa60da +'http://ppa.launchpad.net/syseleven-platform/virtualization/ubuntu/pool/main/q/qemu/qemu-system-common_2.2.1+dfsg-0+syseleven4_amd64.deb' qemu-system-common_1%3a2.2.1+dfsg-0+syseleven4_amd64.deb 294740 MD5Sum:ebf2345f6496e4da73098d7f516bbf8b +'http://ppa.launchpad.net/syseleven-platform/virtualization/ubuntu/pool/main/q/qemu/qemu-system-x86_2.2.1+dfsg-0+syseleven4_amd64.deb' qemu-system-x86_1%3a2.2.1+dfsg-0+syseleven4_amd64.deb 2181682 MD5Sum:6b43a70d002ba1a46f9b8e12e591c849 +'http://ppa.launchpad.net/syseleven-platform/virtualization/ubuntu/pool/main/q/qemu/qemu-utils_2.2.1+dfsg-0+syseleven4_amd64.deb' qemu-utils_1%3a2.2.1+dfsg-0+syseleven4_amd64.deb 518404 MD5Sum:20bc3e2ff37af86bd8e61c96e6569672 +'http://ppa.launchpad.net/syseleven-platform/virtualization/ubuntu/pool/main/s/seabios/seabios_1.7.5-1+syseleven1_all.deb' seabios_1.7.5-1+syseleven1_all.deb 111880 MD5Sum:0cd53324914bb2e198cefef23c4771a0 +'http://ppa.launchpad.net/syseleven-platform/virtualization/ubuntu/pool/main/s/spice/libspice-server1_0.12.5-1+syseleven1_amd64.deb' libspice-server1_0.12.5-1+syseleven1_amd64.deb 326044 MD5Sum:7574c7ba91816a2739e8489148c016bb +'http://us.archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.52-1_amd64.deb' acl_2.2.52-1_amd64.deb 43790 MD5Sum:ac8db6aa2095dfd83758db34cf31285a +'http://us.archive.ubuntu.com/ubuntu/pool/main/a/alsa-lib/libasound2_1.0.27.2-3ubuntu7_amd64.deb' libasound2_1.0.27.2-3ubuntu7_amd64.deb 327374 MD5Sum:68d7619e0a70770c5feef628f8296409 +'http://us.archive.ubuntu.com/ubuntu/pool/main/a/alsa-lib/libasound2-data_1.0.27.2-3ubuntu7_all.deb' libasound2-data_1.0.27.2-3ubuntu7_all.deb 26264 MD5Sum:1b78d6d03ed4303e843ba2c5bae3bc53 +'http://us.archive.ubuntu.com/ubuntu/pool/main/a/apt/apt_1.0.1ubuntu2.14_amd64.deb' apt_1.0.1ubuntu2.14_amd64.deb 954540 MD5Sum:8615062e5fa0e1c9140bc99443f93e57 +'http://us.archive.ubuntu.com/ubuntu/pool/main/a/apt/apt-transport-https_1.0.1ubuntu2.14_amd64.deb' apt-transport-https_1.0.1ubuntu2.14_amd64.deb 25042 MD5Sum:de9d0feaaf95f9203a4e6050fcc838a1 +'http://us.archive.ubuntu.com/ubuntu/pool/main/a/apt/apt-utils_1.0.1ubuntu2.14_amd64.deb' apt-utils_1.0.1ubuntu2.14_amd64.deb 171560 MD5Sum:9a67fdeca283e5fe14374becd459eacc +'http://us.archive.ubuntu.com/ubuntu/pool/main/a/apt/libapt-inst1.5_1.0.1ubuntu2.14_amd64.deb' libapt-inst1.5_1.0.1ubuntu2.14_amd64.deb 58610 MD5Sum:65bd48b1df912735bd0f370ee7d85fac +'http://us.archive.ubuntu.com/ubuntu/pool/main/a/apt/libapt-pkg4.12_1.0.1ubuntu2.14_amd64.deb' libapt-pkg4.12_1.0.1ubuntu2.14_amd64.deb 637710 MD5Sum:76ed008847b63af01ff64d217487f7de +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bash-completion/bash-completion_2.1-4ubuntu0.2_all.deb' bash-completion_1%3a2.1-4ubuntu0.2_all.deb 153330 MD5Sum:3283490e6717d124ea90a34ba2a2877c +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bind9/bind9-host_9.9.5.dfsg-3ubuntu0.8_amd64.deb' bind9-host_1%3a9.9.5.dfsg-3ubuntu0.8_amd64.deb 46348 MD5Sum:8b2eba4caeb6d1b92f846643190bd567 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bind9/dnsutils_9.9.5.dfsg-3ubuntu0.8_amd64.deb' dnsutils_1%3a9.9.5.dfsg-3ubuntu0.8_amd64.deb 96896 MD5Sum:dc2d10121066a8e712d1f5b65e1ce123 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bind9/libbind9-90_9.9.5.dfsg-3ubuntu0.8_amd64.deb' libbind9-90_1%3a9.9.5.dfsg-3ubuntu0.8_amd64.deb 21986 MD5Sum:7a85ffc7bbc3d0ac6da50af50a2604d0 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bind9/libdns100_9.9.5.dfsg-3ubuntu0.8_amd64.deb' libdns100_1%3a9.9.5.dfsg-3ubuntu0.8_amd64.deb 644504 MD5Sum:4c70332edace7476da544f43fd86d978 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bind9/libisc95_9.9.5.dfsg-3ubuntu0.8_amd64.deb' libisc95_1%3a9.9.5.dfsg-3ubuntu0.8_amd64.deb 147480 MD5Sum:f73fb67219f986ae5a246c14f3afc517 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bind9/libisccc90_9.9.5.dfsg-3ubuntu0.8_amd64.deb' libisccc90_1%3a9.9.5.dfsg-3ubuntu0.8_amd64.deb 15678 MD5Sum:d06d6eebd4d82d3c6115e6beb1b426f8 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bind9/libisccfg90_9.9.5.dfsg-3ubuntu0.8_amd64.deb' libisccfg90_1%3a9.9.5.dfsg-3ubuntu0.8_amd64.deb 36162 MD5Sum:0c74c73549711aa0e376f626697d16a3 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bind9/liblwres90_9.9.5.dfsg-3ubuntu0.8_amd64.deb' liblwres90_1%3a9.9.5.dfsg-3ubuntu0.8_amd64.deb 32760 MD5Sum:4f3188de2e89efbf62d8128c0319f089 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/binutils/binutils_2.24-5ubuntu14.1_amd64.deb' binutils_2.24-5ubuntu14.1_amd64.deb 2080900 MD5Sum:85dd95077b946a274f9814639eba4d06 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/biosdevname/biosdevname_0.4.1-0ubuntu6.3_amd64.deb' biosdevname_0.4.1-0ubuntu6.3_amd64.deb 20284 MD5Sum:bc837d60b1c558c6424309a446420b0d +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/bluez/libbluetooth3_4.101-0ubuntu13.1_amd64.deb' libbluetooth3_4.101-0ubuntu13.1_amd64.deb 53478 MD5Sum:0577a4e8b377f3751b018494096df9e4 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/boost1.54/libboost-system1.54.0_1.54.0-4ubuntu3.1_amd64.deb' libboost-system1.54.0_1.54.0-4ubuntu3.1_amd64.deb 10128 MD5Sum:2a5872be9fcc3cc0a51d9ec0d42c41a7 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/boost1.54/libboost-thread1.54.0_1.54.0-4ubuntu3.1_amd64.deb' libboost-thread1.54.0_1.54.0-4ubuntu3.1_amd64.deb 26542 MD5Sum:2e7b4afdd0d85037864a2c3e3ef19999 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/brltty/libbrlapi0.6_5.0-2ubuntu2_amd64.deb' libbrlapi0.6_5.0-2ubuntu2_amd64.deb 20910 MD5Sum:d0072983318e559dc57fea88c494ed33 +'http://us.archive.ubuntu.com/ubuntu/pool/main/b/build-essential/build-essential_11.6ubuntu6_amd64.deb' build-essential_11.6ubuntu6_amd64.deb 4838 MD5Sum:6fa3d082885a7440d512236685cd24fd +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/ca-certificates/ca-certificates_20160104ubuntu0.14.04.1_all.deb' ca-certificates_20160104ubuntu0.14.04.1_all.deb 189806 MD5Sum:e594e76f225119f35f4bc3266d7ef758 +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/ceph/librados2_0.80.11-0ubuntu1.14.04.1_amd64.deb' librados2_0.80.11-0ubuntu1.14.04.1_amd64.deb 1430556 MD5Sum:88d1b2079b7bd1a9a2d99e05fc88bf02 +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/ceph/librbd1_0.80.11-0ubuntu1.14.04.1_amd64.deb' librbd1_0.80.11-0ubuntu1.14.04.1_amd64.deb 322958 MD5Sum:684055975b3f6d7f9cbf42afc720989d +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/cheetah/python-cheetah_2.4.4-3.fakesyncbuild1_amd64.deb' python-cheetah_2.4.4-3.fakesyncbuild1_amd64.deb 143868 MD5Sum:800d75a71e9022b10c40f6019d7fa69d +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/cloog/libcloog-isl4_0.18.2-1_amd64.deb' libcloog-isl4_0.18.2-1_amd64.deb 57502 MD5Sum:da71de63b0e24eb02afb817c0b285d6a +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/cloud-init/cloud-init_0.7.5-0ubuntu1.18_all.deb' cloud-init_0.7.5-0ubuntu1.18_all.deb 197824 MD5Sum:c6f1e7b92391c6acb9300f8fef580e04 +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/cloud-utils/cloud-guest-utils_0.27-0ubuntu9.2_all.deb' cloud-guest-utils_0.27-0ubuntu9.2_all.deb 13782 MD5Sum:dbdad01ef9b50575b3bbbdc8257c620a +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/configobj/python-configobj_4.7.2+ds-5build1_all.deb' python-configobj_4.7.2+ds-5build1_all.deb 174154 MD5Sum:e22c1f8dfb0ca0d36441c3166639beaa +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/coreutils/coreutils_8.21-1ubuntu5.4_amd64.deb' coreutils_8.21-1ubuntu5.4_amd64.deb 1090622 MD5Sum:10a2318be86f38a6ed113e16aabaa76b +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/cpio/cpio_2.11+dfsg-1ubuntu1.2_amd64.deb' cpio_2.11+dfsg-1ubuntu1.2_amd64.deb 73806 MD5Sum:8c382d99c773b3af31664e587b84a6b9 +'http://us.archive.ubuntu.com/ubuntu/pool/main/c/cpu-checker/cpu-checker_0.7-0ubuntu4_amd64.deb' cpu-checker_0.7-0ubuntu4_amd64.deb 6834 MD5Sum:4369a69e41e5b78ab7a4623405455443 +'http://us.archive.ubuntu.com/ubuntu/pool/main/d/device-tree-compiler/libfdt1_1.4.0+dfsg-1_amd64.deb' libfdt1_1.4.0+dfsg-1_amd64.deb 15678 MD5Sum:5dd80e05348eec241f62ff8dd7d2e8f2 +'http://us.archive.ubuntu.com/ubuntu/pool/main/d/dkms/dkms_2.2.0.3-1.1ubuntu5.14.04.5_all.deb' dkms_2.2.0.3-1.1ubuntu5.14.04.5_all.deb 65394 MD5Sum:2d543ccc913282f2958fe61690a92931 +'http://us.archive.ubuntu.com/ubuntu/pool/main/d/dpkg/dpkg_1.17.5ubuntu5.6_amd64.deb' dpkg_1.17.5ubuntu5.6_amd64.deb 1956090 MD5Sum:4c89af9b3a8f6c35db830a22186cc39c +'http://us.archive.ubuntu.com/ubuntu/pool/main/d/dpkg/dpkg-dev_1.17.5ubuntu5.6_all.deb' dpkg-dev_1.17.5ubuntu5.6_all.deb 726174 MD5Sum:76e57d5b9b4610c1b7b4e7669c2077ac +'http://us.archive.ubuntu.com/ubuntu/pool/main/d/dpkg/libdpkg-perl_1.17.5ubuntu5.6_all.deb' libdpkg-perl_1.17.5ubuntu5.6_all.deb 178978 MD5Sum:667eca12ba2191e59a494dc6f52188e9 +'http://us.archive.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6-dev_2.19-0ubuntu6.7_amd64.deb' libc6-dev_2.19-0ubuntu6.7_amd64.deb 1910076 MD5Sum:55d1bb2350277e65ce6d0d1532cd982d +'http://us.archive.ubuntu.com/ubuntu/pool/main/e/eglibc/libc-dev-bin_2.19-0ubuntu6.7_amd64.deb' libc-dev-bin_2.19-0ubuntu6.7_amd64.deb 68998 MD5Sum:e72990dc9716b956b9012d526b7e60ff +'http://us.archive.ubuntu.com/ubuntu/pool/main/e/expat/libexpat1_2.1.0-4ubuntu1.2_amd64.deb' libexpat1_2.1.0-4ubuntu1.2_amd64.deb 71092 MD5Sum:a7ba68312efc279f2d5199afadc4adbe +'http://us.archive.ubuntu.com/ubuntu/pool/main/e/expat/libexpat1-dev_2.1.0-4ubuntu1.2_amd64.deb' libexpat1-dev_2.1.0-4ubuntu1.2_amd64.deb 115458 MD5Sum:0a1295e87f3b7efb4c66f53de3336848 +'http://us.archive.ubuntu.com/ubuntu/pool/main/f/fakeroot/fakeroot_1.20-3ubuntu2_amd64.deb' fakeroot_1.20-3ubuntu2_amd64.deb 55026 MD5Sum:fad29881d632a463f5235f399fa65a14 +'http://us.archive.ubuntu.com/ubuntu/pool/main/f/fakeroot/libfakeroot_1.20-3ubuntu2_amd64.deb' libfakeroot_1.20-3ubuntu2_amd64.deb 25392 MD5Sum:856c7401d7d5a63ea231f706c18d9261 +'http://us.archive.ubuntu.com/ubuntu/pool/main/f/flac/libflac8_1.3.0-2ubuntu0.14.04.1_amd64.deb' libflac8_1.3.0-2ubuntu0.14.04.1_amd64.deb 80170 MD5Sum:bbd48c917a12d425f0e14873575bc64c +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/cpp-4.8_4.8.4-2ubuntu1~14.04.3_amd64.deb' cpp-4.8_4.8.4-2ubuntu1~14.04.3_amd64.deb 4595210 MD5Sum:c87a404428865790862aeb6195811066 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/g++-4.8_4.8.4-2ubuntu1~14.04.3_amd64.deb' g++-4.8_4.8.4-2ubuntu1~14.04.3_amd64.deb 18134574 MD5Sum:ffc4c3bc3fe036fd18e79399caea1586 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/gcc-4.8_4.8.4-2ubuntu1~14.04.3_amd64.deb' gcc-4.8_4.8.4-2ubuntu1~14.04.3_amd64.deb 5046702 MD5Sum:c53635e53f577687409b4c3c93f4da80 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/gcc-4.8-base_4.8.4-2ubuntu1~14.04.3_amd64.deb' gcc-4.8-base_4.8.4-2ubuntu1~14.04.3_amd64.deb 16192 MD5Sum:691b4cb367c62b79511541a3cee41fda +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libasan0_4.8.4-2ubuntu1~14.04.3_amd64.deb' libasan0_4.8.4-2ubuntu1~14.04.3_amd64.deb 63060 MD5Sum:ff04bb046aeec86af2bb90c5d90a166c +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libatomic1_4.8.4-2ubuntu1~14.04.3_amd64.deb' libatomic1_4.8.4-2ubuntu1~14.04.3_amd64.deb 8636 MD5Sum:ec6ce0fb6e66e8b8c95534ab9e77a67e +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libgcc-4.8-dev_4.8.4-2ubuntu1~14.04.3_amd64.deb' libgcc-4.8-dev_4.8.4-2ubuntu1~14.04.3_amd64.deb 1688000 MD5Sum:69ff74311eecda1487d0f96b14af0b7c +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libgomp1_4.8.4-2ubuntu1~14.04.3_amd64.deb' libgomp1_4.8.4-2ubuntu1~14.04.3_amd64.deb 23124 MD5Sum:8f95195693e2cbb56825fd9b2b9ffca0 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libitm1_4.8.4-2ubuntu1~14.04.3_amd64.deb' libitm1_4.8.4-2ubuntu1~14.04.3_amd64.deb 28506 MD5Sum:52e717ed8662a3986997412f42abc297 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libquadmath0_4.8.4-2ubuntu1~14.04.3_amd64.deb' libquadmath0_4.8.4-2ubuntu1~14.04.3_amd64.deb 126028 MD5Sum:f541cc61c3feaa74098bdb9970ed12b6 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libstdc++-4.8-dev_4.8.4-2ubuntu1~14.04.3_amd64.deb' libstdc++-4.8-dev_4.8.4-2ubuntu1~14.04.3_amd64.deb 1052564 MD5Sum:7657e54922455ae36c7b2f7228427aec +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libstdc++6_4.8.4-2ubuntu1~14.04.3_amd64.deb' libstdc++6_4.8.4-2ubuntu1~14.04.3_amd64.deb 258956 MD5Sum:3fe9099e0064fa8030f047ff38e075c2 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.8/libtsan0_4.8.4-2ubuntu1~14.04.3_amd64.deb' libtsan0_4.8.4-2ubuntu1~14.04.3_amd64.deb 94872 MD5Sum:c4232ca2be66b95d74e8823a9868a9b4 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/cpp_4.8.2-1ubuntu6_amd64.deb' cpp_4%3a4.8.2-1ubuntu6_amd64.deb 27452 MD5Sum:2ced23b24cf068b16b5a69222506fd79 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/g++_4.8.2-1ubuntu6_amd64.deb' g++_4%3a4.8.2-1ubuntu6_amd64.deb 1490 MD5Sum:7332a4e9116b821e167a3d0236ca413a +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/gcc_4.8.2-1ubuntu6_amd64.deb' gcc_4%3a4.8.2-1ubuntu6_amd64.deb 5098 MD5Sum:83b25d71df6df1c47a4b983596896f0b +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gdisk/gdisk_0.8.8-1ubuntu0.1_amd64.deb' gdisk_0.8.8-1ubuntu0.1_amd64.deb 185450 MD5Sum:6e9ed16eaca8d87dc22cf4918f95cb2c +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/git/git_1.9.1-1ubuntu0.3_amd64.deb' git_1%3a1.9.1-1ubuntu0.3_amd64.deb 2585532 MD5Sum:7ae18fa4b16c33b3ed506e23e7f26779 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/git/git-man_1.9.1-1ubuntu0.3_all.deb' git-man_1%3a1.9.1-1ubuntu0.3_all.deb 699150 MD5Sum:b9614019a1917fad0ff0edc6ddd53b91 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gmp/libgmp10_5.1.3+dfsg-1ubuntu1_amd64.deb' libgmp10_2%3a5.1.3+dfsg-1ubuntu1_amd64.deb 218280 MD5Sum:5a25bb81aa2e0ca83e2d349d58b435d5 +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gnutls26/libgnutls26_2.12.23-12ubuntu2.5_amd64.deb' libgnutls26_2.12.23-12ubuntu2.5_amd64.deb 393294 MD5Sum:9e6ad9b80855df0f9b74ec18b9fe860d +'http://us.archive.ubuntu.com/ubuntu/pool/main/g/gnutls26/libgnutls-openssl27_2.12.23-12ubuntu2.5_amd64.deb' libgnutls-openssl27_2.12.23-12ubuntu2.5_amd64.deb 18364 MD5Sum:77d399ac308dd0e9a58acc30e8959e76 +'http://us.archive.ubuntu.com/ubuntu/pool/main/h/html5lib/python-html5lib_0.999-3~ubuntu1_all.deb' python-html5lib_0.999-3~ubuntu1_all.deb 83470 MD5Sum:93c4140d32e1addb8231a3e0be557c93 +'http://us.archive.ubuntu.com/ubuntu/pool/main/h/html5lib/python-html5lib-whl_0.999-3~ubuntu1_all.deb' python-html5lib-whl_0.999-3~ubuntu1_all.deb 109460 MD5Sum:bc6bd5baa70ace380513925f749857fa +'http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu52_52.1-3ubuntu0.4_amd64.deb' libicu52_52.1-3ubuntu0.4_amd64.deb 6751826 MD5Sum:ed4da162328dc75beb75e38ca291c959 +'http://us.archive.ubuntu.com/ubuntu/pool/main/i/ifupdown/ifupdown_0.7.47.2ubuntu4.4_amd64.deb' ifupdown_0.7.47.2ubuntu4.4_amd64.deb 53092 MD5Sum:49c7118f0bd254b1196363ad727dcde7 +'http://us.archive.ubuntu.com/ubuntu/pool/main/i/initramfs-tools/initramfs-tools_0.103ubuntu4.3_all.deb' initramfs-tools_0.103ubuntu4.3_all.deb 44414 MD5Sum:9c7a8c4407077e6d1db03480897a0e92 +'http://us.archive.ubuntu.com/ubuntu/pool/main/i/initramfs-tools/initramfs-tools-bin_0.103ubuntu4.3_amd64.deb' initramfs-tools-bin_0.103ubuntu4.3_amd64.deb 9172 MD5Sum:27c40fd32821bfb627e6301c44eebbfc +'http://us.archive.ubuntu.com/ubuntu/pool/main/i/ipxe/ipxe-qemu_1.0.0+git-20131111.c3d1e78-2ubuntu1.1_all.deb' ipxe-qemu_1.0.0+git-20131111.c3d1e78-2ubuntu1.1_all.deb 509898 MD5Sum:2ed810c34ce0682174eb97461673c00e +'http://us.archive.ubuntu.com/ubuntu/pool/main/i/isl/libisl10_0.12.2-1_amd64.deb' libisl10_0.12.2-1_amd64.deb 419218 MD5Sum:b9756a5cce1ecd2d56652779d9e3b757 +'http://us.archive.ubuntu.com/ubuntu/pool/main/k/keyutils/keyutils_1.5.6-1_amd64.deb' keyutils_1.5.6-1_amd64.deb 33588 MD5Sum:a49da8cb9cc16bdaf1ef8b205bf99d2e +'http://us.archive.ubuntu.com/ubuntu/pool/main/k/klibc/klibc-utils_2.0.3-0ubuntu1.14.04.1_amd64.deb' klibc-utils_2.0.3-0ubuntu1.14.04.1_amd64.deb 106972 MD5Sum:4e1676466b8275575a78545c8702ec80 +'http://us.archive.ubuntu.com/ubuntu/pool/main/k/klibc/libklibc_2.0.3-0ubuntu1.14.04.1_amd64.deb' libklibc_2.0.3-0ubuntu1.14.04.1_amd64.deb 40768 MD5Sum:733ef1d7bb06bc206417e6e32a95f3b7 +'http://us.archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.109-4_amd64.deb' libaio1_0.3.109-4_amd64.deb 6364 MD5Sum:cd9da2f52a5d7713e5080c5ed6916a41 +'http://us.archive.ubuntu.com/ubuntu/pool/main/liba/libalgorithm-diff-perl/libalgorithm-diff-perl_1.19.02-3_all.deb' libalgorithm-diff-perl_1.19.02-3_all.deb 49964 MD5Sum:7462f70e9e9b691ca4a4657371d6ba8e +'http://us.archive.ubuntu.com/ubuntu/pool/main/liba/libalgorithm-diff-xs-perl/libalgorithm-diff-xs-perl_0.04-2build4_amd64.deb' libalgorithm-diff-xs-perl_0.04-2build4_amd64.deb 12572 MD5Sum:a1bd654bf2b8f30d464a6f95225a0744 +'http://us.archive.ubuntu.com/ubuntu/pool/main/liba/libalgorithm-merge-perl/libalgorithm-merge-perl_0.08-2_all.deb' libalgorithm-merge-perl_0.08-2_all.deb 12672 MD5Sum:bf1355aea7ab249fcd344cf0c692bc6c +'http://us.archive.ubuntu.com/ubuntu/pool/main/liba/libasyncns/libasyncns0_0.8-4ubuntu2_amd64.deb' libasyncns0_0.8-4ubuntu2_amd64.deb 11886 MD5Sum:bf233bc958e37dab60c0f1ab7f8c6bf0 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libc/libcaca/libcaca0_0.99.beta18-1ubuntu5_amd64.deb' libcaca0_0.99.beta18-1ubuntu5_amd64.deb 202162 MD5Sum:2532fc55507b526751257c826e6b1b43 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libe/libeatmydata/eatmydata_26-2_amd64.deb' eatmydata_26-2_amd64.deb 8034 MD5Sum:a12811bc18802ca88eaac1c361c49dd1 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libe/liberror-perl/liberror-perl_0.17-1.1_all.deb' liberror-perl_0.17-1.1_all.deb 21062 MD5Sum:4988e40e65eeba03317411bfdd52b76c +'http://us.archive.ubuntu.com/ubuntu/pool/main/libe/libevent/libevent-2.0-5_2.0.21-stable-1ubuntu1.14.04.1_amd64.deb' libevent-2.0-5_2.0.21-stable-1ubuntu1.14.04.1_amd64.deb 126144 MD5Sum:66bae54dc127761b5d044d20a49c84c4 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libf/libfile-fcntllock-perl/libfile-fcntllock-perl_0.14-2build1_amd64.deb' libfile-fcntllock-perl_0.14-2build1_amd64.deb 15932 MD5Sum:18813758778ece61bcdf84018218fc1d +'http://us.archive.ubuntu.com/ubuntu/pool/main/libg/libgssglue/libgssglue1_0.4-2ubuntu1_amd64.deb' libgssglue1_0.4-2ubuntu1_amd64.deb 19710 MD5Sum:08250dff6de699fceff270123f609b49 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libj/libjpeg8-empty/libjpeg8_8c-2ubuntu8_amd64.deb' libjpeg8_8c-2ubuntu8_amd64.deb 2194 MD5Sum:e0f16286dd787b951ffa953987fdf6a7 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_1.3.0-0ubuntu2_amd64.deb' libjpeg-turbo8_1.3.0-0ubuntu2_amd64.deb 104020 MD5Sum:9b8b32831e8332714737af0342f57b28 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libn/libnfsidmap/libnfsidmap2_0.25-5_amd64.deb' libnfsidmap2_0.25-5_amd64.deb 32182 MD5Sum:5e06543f26481fa549a1e017eec4ef36 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libn/libnl3/libnl-3-200_3.2.21-1ubuntu1.1_amd64.deb' libnl-3-200_3.2.21-1ubuntu1.1_amd64.deb 44692 MD5Sum:6c4243af0e65109d4b4206f472674c7d +'http://us.archive.ubuntu.com/ubuntu/pool/main/libn/libnl3/libnl-genl-3-200_3.2.21-1ubuntu1.1_amd64.deb' libnl-genl-3-200_3.2.21-1ubuntu1.1_amd64.deb 10242 MD5Sum:76ef0be047534f619ed8f86b9fbf8a15 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libo/libogg/libogg0_1.3.1-1ubuntu1_amd64.deb' libogg0_1.3.1-1ubuntu1_amd64.deb 17036 MD5Sum:a6411133fd6d72d08bbcb265a7f31103 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-8ubuntu1.1_amd64.deb' libsdl1.2debian_1.2.15-8ubuntu1.1_amd64.deb 162322 MD5Sum:063b125221dda816ec3554eea53ce52e +'http://us.archive.ubuntu.com/ubuntu/pool/main/libs/libsndfile/libsndfile1_1.0.25-7ubuntu2.1_amd64.deb' libsndfile1_1.0.25-7ubuntu2.1_amd64.deb 136292 MD5Sum:a01199628faa5c1ec2b97c167c25c0e9 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libt/libtasn1-6/libtasn1-6_3.4-3ubuntu0.4_amd64.deb' libtasn1-6_3.4-3ubuntu0.4_amd64.deb 43616 MD5Sum:59657d27d1a7e32e9549b5a21514d877 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libt/libtirpc/libtirpc1_0.2.2-5ubuntu2_amd64.deb' libtirpc1_0.2.2-5ubuntu2_amd64.deb 71258 MD5Sum:acc1c8e0345c8c3e53ba94a59a4729d8 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis0a_1.3.2-1.3ubuntu1_amd64.deb' libvorbis0a_1.3.2-1.3ubuntu1_amd64.deb 87166 MD5Sum:e89e05f389fdaa1b834803a08c9213a4 +'http://us.archive.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisenc2_1.3.2-1.3ubuntu1_amd64.deb' libvorbisenc2_1.3.2-1.3ubuntu1_amd64.deb 84546 MD5Sum:fbdffecfc0a3f0dc45ec2480f54ea251 +'http://us.archive.ubuntu.com/ubuntu/pool/main/liby/libyaml/libyaml-0-2_0.1.4-3ubuntu3.1_amd64.deb' libyaml-0-2_0.1.4-3ubuntu3.1_amd64.deb 48066 MD5Sum:4dcc359331403252136be3490c923fc9 +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.127.22_all.deb' linux-firmware_1.127.22_all.deb 33190334 MD5Sum:7d5cef69c2cbe90206be4789892b8b94 +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-libc-dev_3.13.0-86.131_amd64.deb' linux-libc-dev_3.13.0-86.131_amd64.deb 779312 MD5Sum:e7979ded82504e2b6a63f9065569fe0a +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-lts-wily/linux-headers-4.2.0-36_4.2.0-36.42~14.04.1_all.deb' linux-headers-4.2.0-36_4.2.0-36.42~14.04.1_all.deb 9587752 MD5Sum:b1bbc76655eb0e2ba2e3e529e9d9debe +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-lts-wily/linux-headers-4.2.0-36-generic_4.2.0-36.42~14.04.1_amd64.deb' linux-headers-4.2.0-36-generic_4.2.0-36.42~14.04.1_amd64.deb 769578 MD5Sum:fc7cb0b62dac701a66c9b0194212ad34 +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-lts-wily/linux-image-4.2.0-36-generic_4.2.0-36.42~14.04.1_amd64.deb' linux-image-4.2.0-36-generic_4.2.0-36.42~14.04.1_amd64.deb 17219920 MD5Sum:940897fb5d8f56e1fc5708194d73f902 +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-lts-wily/linux-image-extra-4.2.0-36-generic_4.2.0-36.42~14.04.1_amd64.deb' linux-image-extra-4.2.0-36-generic_4.2.0-36.42~14.04.1_amd64.deb 38366786 MD5Sum:482c28c0eb23cc75b86dbaefbdb601fb +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-meta-lts-wily/linux-generic-lts-wily_4.2.0.36.29_amd64.deb' linux-generic-lts-wily_4.2.0.36.29_amd64.deb 1804 MD5Sum:b9f04cda4963bacc5af6b4852102479a +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-meta-lts-wily/linux-headers-generic-lts-wily_4.2.0.36.29_amd64.deb' linux-headers-generic-lts-wily_4.2.0.36.29_amd64.deb 2272 MD5Sum:2ee879d19061256588b4e1db7ea70ba3 +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/linux-meta-lts-wily/linux-image-generic-lts-wily_4.2.0.36.29_amd64.deb' linux-image-generic-lts-wily_4.2.0.36.29_amd64.deb 2302 MD5Sum:b781bdd84696e5c766d22719ed606cc3 +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/lsb/lsb-base_4.1+Debian11ubuntu6.1_all.deb' lsb-base_4.1+Debian11ubuntu6.1_all.deb 12970 MD5Sum:2834c99418122f0675752389058621e9 +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/lsb/lsb-release_4.1+Debian11ubuntu6.1_all.deb' lsb-release_4.1+Debian11ubuntu6.1_all.deb 11460 MD5Sum:61ddf909041ee1d3738248cd639e05da +'http://us.archive.ubuntu.com/ubuntu/pool/main/l/lzo2/liblzo2-2_2.06-1.2ubuntu1.1_amd64.deb' liblzo2-2_2.06-1.2ubuntu1.1_amd64.deb 46110 MD5Sum:b3e9733843fda9b2463a0745e7306092 +'http://us.archive.ubuntu.com/ubuntu/pool/main/m/make-dfsg/make_3.81-8.2ubuntu3_amd64.deb' make_3.81-8.2ubuntu3_amd64.deb 119286 MD5Sum:6442fbef4450fc977fb1ab6297cf7797 +'http://us.archive.ubuntu.com/ubuntu/pool/main/m/manpages/manpages-dev_3.54-1ubuntu1_all.deb' manpages-dev_3.54-1ubuntu1_all.deb 1819920 MD5Sum:8b108211126e2798112fbd55292e5690 +'http://us.archive.ubuntu.com/ubuntu/pool/main/m/mpclib3/libmpc3_1.0.1-1ubuntu1_amd64.deb' libmpc3_1.0.1-1ubuntu1_amd64.deb 38442 MD5Sum:c5749c5428040f492bc9d00b0101b8a8 +'http://us.archive.ubuntu.com/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.2-1_amd64.deb' libmpfr4_3.1.2-1_amd64.deb 202636 MD5Sum:3ff03e231bf643436f087da42faaad6d +'http://us.archive.ubuntu.com/ubuntu/pool/main/m/msr-tools/msr-tools_1.3-2_amd64.deb' msr-tools_1.3-2_amd64.deb 10636 MD5Sum:5ffb50c3889cfccc901b940923d89e29 +'http://us.archive.ubuntu.com/ubuntu/pool/main/n/nfs-utils/nfs-common_1.2.8-6ubuntu1.2_amd64.deb' nfs-common_1%3a1.2.8-6ubuntu1.2_amd64.deb 180760 MD5Sum:64d83aabb28de942a6e367181ed580ca +'http://us.archive.ubuntu.com/ubuntu/pool/main/n/nspr/libnspr4_4.10.10-0ubuntu0.14.04.1_amd64.deb' libnspr4_2%3a4.10.10-0ubuntu0.14.04.1_amd64.deb 110502 MD5Sum:bfb262e77ef709dfaa5ae037630e49ff +'http://us.archive.ubuntu.com/ubuntu/pool/main/n/nss/libnss3_3.21-0ubuntu0.14.04.2_amd64.deb' libnss3_2%3a3.21-0ubuntu0.14.04.2_amd64.deb 1102834 MD5Sum:267e9467a90bb2077eb9984bee3b1c5f +'http://us.archive.ubuntu.com/ubuntu/pool/main/n/nss/libnss3-nssdb_3.21-0ubuntu0.14.04.2_all.deb' libnss3-nssdb_2%3a3.21-0ubuntu0.14.04.2_all.deb 10550 MD5Sum:a72742a1b68774875bde367e984b6a68 +'http://us.archive.ubuntu.com/ubuntu/pool/main/n/numactl/libnuma1_2.0.9~rc5-1ubuntu3.14.04.2_amd64.deb' libnuma1_2.0.9~rc5-1ubuntu3.14.04.2_amd64.deb 20548 MD5Sum:ecc0effed2e7ac705b71f44f1d4b0cc4 +'http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-client_6.6p1-2ubuntu2.7_amd64.deb' openssh-client_1%3a6.6p1-2ubuntu2.7_amd64.deb 563864 MD5Sum:8edbfbbd99530d23c8f81b2466f39def +'http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-server_6.6p1-2ubuntu2.7_amd64.deb' openssh-server_1%3a6.6p1-2ubuntu2.7_amd64.deb 321560 MD5Sum:d95a0215f27a8f3f91160972a3fe0573 +'http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-sftp-server_6.6p1-2ubuntu2.7_amd64.deb' openssh-sftp-server_1%3a6.6p1-2ubuntu2.7_amd64.deb 34158 MD5Sum:94e9c6b3d7f6851c67890d56d26017dc +'http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.0.0_1.0.1f-1ubuntu2.19_amd64.deb' libssl1.0.0_1.0.1f-1ubuntu2.19_amd64.deb 828322 MD5Sum:04f6ffaf9b5108c14a688b05ea996689 +'http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1f-1ubuntu2.19_amd64.deb' openssl_1.0.1f-1ubuntu2.19_amd64.deb 489948 MD5Sum:c47ec9a48ab34e79ae3ce0782cdd7960 +'http://us.archive.ubuntu.com/ubuntu/pool/main/o/opus/libopus0_1.1-0ubuntu1_amd64.deb' libopus0_1.1-0ubuntu1_amd64.deb 153146 MD5Sum:b611832d9ef83e451dff69c1c81d5d04 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pam/libpam0g_1.1.8-1ubuntu2.2_amd64.deb' libpam0g_1.1.8-1ubuntu2.2_amd64.deb 56072 MD5Sum:1273498c4f24df5a6514a8c43700c9d2 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pam/libpam-modules_1.1.8-1ubuntu2.2_amd64.deb' libpam-modules_1.1.8-1ubuntu2.2_amd64.deb 234422 MD5Sum:e709e588f41be2f59149374a1eb6c9cb +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pam/libpam-modules-bin_1.1.8-1ubuntu2.2_amd64.deb' libpam-modules-bin_1.1.8-1ubuntu2.2_amd64.deb 31164 MD5Sum:c6817859ed2a2e5f023a9d538e37daf0 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pam/libpam-runtime_1.1.8-1ubuntu2.2_all.deb' libpam-runtime_1.1.8-1ubuntu2.2_all.deb 37766 MD5Sum:fa4d3d794c3259f1fc34a04d1e682bcf +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/patch/patch_2.7.1-4ubuntu2.3_amd64.deb' patch_2.7.1-4ubuntu2.3_amd64.deb 86356 MD5Sum:4f07a01b36e3a60a34c3bcef647894ae +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pcre3/libpcre3_8.31-2ubuntu2.3_amd64.deb' libpcre3_1%3a8.31-2ubuntu2.3_amd64.deb 144410 MD5Sum:8ffa3b01676dab2247991c847e7039d6 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/perl/perl_5.18.2-2ubuntu1.1_amd64.deb' perl_5.18.2-2ubuntu1.1_amd64.deb 2647870 MD5Sum:c923b93fb9aa7f1ff97fcea2539bd8b9 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/perl/perl-base_5.18.2-2ubuntu1.1_amd64.deb' perl-base_5.18.2-2ubuntu1.1_amd64.deb 1146330 MD5Sum:d032a8ff7c2609d93af93e02aa7cf5ba +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/perl/perl-modules_5.18.2-2ubuntu1.1_all.deb' perl-modules_5.18.2-2ubuntu1.1_all.deb 2673194 MD5Sum:75bfbc6a0725be5533d5920d031bb121 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pixman/libpixman-1-0_0.30.2-2ubuntu1.1_amd64.deb' libpixman-1-0_0.30.2-2ubuntu1.1_amd64.deb 225476 MD5Sum:2d12f5e47dad9b5f61299706413976da +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/prettytable/python-prettytable_0.7.2-2ubuntu2_all.deb' python-prettytable_0.7.2-2ubuntu2_all.deb 19966 MD5Sum:1532d286ecad16204509eca1e97b8c37 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pulseaudio/libpulse0_4.0-0ubuntu11.1_amd64.deb' libpulse0_1%3a4.0-0ubuntu11.1_amd64.deb 225440 MD5Sum:84213503252a6aec962b12cd170af23f +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pycurl/python3-pycurl_7.19.3-0ubuntu3_amd64.deb' python3-pycurl_7.19.3-0ubuntu3_amd64.deb 47494 MD5Sum:4a8692a3639a46f0c512f5d77f42ff16 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pyserial/python-serial_2.6-1build1_all.deb' python-serial_2.6-1build1_all.deb 60088 MD5Sum:815adaf14f9c402d2d0507b1d99e7d71 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python2.7/libpython2.7_2.7.6-8ubuntu0.2_amd64.deb' libpython2.7_2.7.6-8ubuntu0.2_amd64.deb 1038642 MD5Sum:e52bac5d993bf5c8c60ef92b9e392603 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python2.7/libpython2.7-dev_2.7.6-8ubuntu0.2_amd64.deb' libpython2.7-dev_2.7.6-8ubuntu0.2_amd64.deb 22007718 MD5Sum:8d59685b68713072a86e278b6b5b22ab +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python2.7/python2.7-dev_2.7.6-8ubuntu0.2_amd64.deb' python2.7-dev_2.7.6-8ubuntu0.2_amd64.deb 269106 MD5Sum:b329c89de034410c49eb9525597c11c6 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-defaults/libpython-dev_2.7.5-5ubuntu3_amd64.deb' libpython-dev_2.7.5-5ubuntu3_amd64.deb 7078 MD5Sum:3b37a8ee5197b689d2fe472e81583e41 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-defaults/python-dev_2.7.5-5ubuntu3_amd64.deb' python-dev_2.7.5-5ubuntu3_amd64.deb 1166 MD5Sum:0fb9dbd4067f94dc4cd894cefc50fe47 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-json-patch/python-jsonpatch_1.3-4_all.deb' python-jsonpatch_1.3-4_all.deb 9088 MD5Sum:d1521e9621c4c751d164a6d979705a12 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-json-pointer/python-json-pointer_1.0-2build1_all.deb' python-json-pointer_1.0-2build1_all.deb 5158 MD5Sum:b0762e2a2192458adcbf70e6be02172d +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-oauth/python-oauth_1.0.1-3build2_all.deb' python-oauth_1.0.1-3build2_all.deb 12830 MD5Sum:e2c16c59e6242e3abb211a3e64297615 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-setuptools/python3-pkg-resources_3.3-1ubuntu2_all.deb' python3-pkg-resources_3.3-1ubuntu2_all.deb 31704 MD5Sum:e44cbc2a92ab2c53d01c7d54a79020f0 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-setuptools/python-pkg-resources_3.3-1ubuntu2_all.deb' python-pkg-resources_3.3-1ubuntu2_all.deb 61910 MD5Sum:d12cb222f33ac215006d472c63d3aeb8 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-setuptools/python-setuptools_3.3-1ubuntu2_all.deb' python-setuptools_3.3-1ubuntu2_all.deb 230056 MD5Sum:095838ab2e8028796486463d62e5b88b +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-setuptools/python-setuptools-whl_3.3-1ubuntu2_all.deb' python-setuptools-whl_3.3-1ubuntu2_all.deb 244386 MD5Sum:bed8daea8be2938af22a1bc7fdc0d9f1 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/python-urllib3/python-urllib3-whl_1.7.1-1ubuntu4_all.deb' python-urllib3-whl_1.7.1-1ubuntu4_all.deb 64008 MD5Sum:5614ad88debd4c93441cc119f5a478a1 +'http://us.archive.ubuntu.com/ubuntu/pool/main/p/pyyaml/python-yaml_3.10-4ubuntu0.1_amd64.deb' python-yaml_3.10-4ubuntu0.1_amd64.deb 101898 MD5Sum:3bbc120de69a86a8f0b996d722437fd4 +'http://us.archive.ubuntu.com/ubuntu/pool/main/r/requests/python-requests-whl_2.2.1-1ubuntu0.3_all.deb' python-requests-whl_2.2.1-1ubuntu0.3_all.deb 227230 MD5Sum:d4a08ea174bf075523d7c045a5ef4544 +'http://us.archive.ubuntu.com/ubuntu/pool/main/r/rpcbind/rpcbind_0.2.1-2ubuntu2.2_amd64.deb' rpcbind_0.2.1-2ubuntu2.2_amd64.deb 37056 MD5Sum:279a20e0acfea4036bce808ee12db789 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/sharutils/sharutils_4.14-1ubuntu1_amd64.deb' sharutils_1%3a4.14-1ubuntu1_amd64.deb 144824 MD5Sum:021cd2f95dd7fa1b4218d1caf50c882e +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/six/python-six-whl_1.5.2-1ubuntu1_all.deb' python-six-whl_1.5.2-1ubuntu1_all.deb 10502 MD5Sum:d8224e11a6bf8bc46d5649b4675fe057 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/snappy/libsnappy1_1.1.0-1ubuntu1_amd64.deb' libsnappy1_1.1.0-1ubuntu1_amd64.deb 11152 MD5Sum:6e75ed3aa224013957954c6671bead67 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/software-properties/python3-software-properties_0.92.37.7_all.deb' python3-software-properties_0.92.37.7_all.deb 19120 MD5Sum:00da7ba0cac32440cdd8c2137ca9771e +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/software-properties/software-properties-common_0.92.37.7_all.deb' software-properties-common_0.92.37.7_all.deb 9356 MD5Sum:195890432324c90ea6a0e1c332f953d6 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/libpam-systemd_204-5ubuntu20.19_amd64.deb' libpam-systemd_204-5ubuntu20.19_amd64.deb 25544 MD5Sum:3a8ab37af48ffcc23f9bef72e80f59c8 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/libsystemd-daemon0_204-5ubuntu20.19_amd64.deb' libsystemd-daemon0_204-5ubuntu20.19_amd64.deb 10194 MD5Sum:b3c2675173f71a987bc78120447beef2 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/libsystemd-login0_204-5ubuntu20.19_amd64.deb' libsystemd-login0_204-5ubuntu20.19_amd64.deb 27206 MD5Sum:f40f53f393bd464b4cb30e51b4db6707 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/libudev1_204-5ubuntu20.19_amd64.deb' libudev1_204-5ubuntu20.19_amd64.deb 33776 MD5Sum:efaa66441569692a31cf0cdc3b2b1dd8 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/systemd-services_204-5ubuntu20.19_amd64.deb' systemd-services_204-5ubuntu20.19_amd64.deb 197024 MD5Sum:c005d7f4fcfc1299bbab853c4897c7a7 +'http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/udev_204-5ubuntu20.19_amd64.deb' udev_204-5ubuntu20.19_amd64.deb 734516 MD5Sum:f90937775fbbbe862974abe0332b6cb5 +'http://us.archive.ubuntu.com/ubuntu/pool/main/t/tzdata/tzdata_2016d-0ubuntu0.14.04_all.deb' tzdata_2016d-0ubuntu0.14.04_all.deb 167282 MD5Sum:1ebee2354ecb262b219f658fc186a6bc +'http://us.archive.ubuntu.com/ubuntu/pool/main/u/unattended-upgrades/unattended-upgrades_0.82.1ubuntu2.4_all.deb' unattended-upgrades_0.82.1ubuntu2.4_all.deb 25856 MD5Sum:c635e645c9d91eb2d4d182d97098150a +'http://us.archive.ubuntu.com/ubuntu/pool/main/u/usbredir/libusbredirparser1_0.6-2ubuntu1.1_amd64.deb' libusbredirparser1_0.6-2ubuntu1.1_amd64.deb 13286 MD5Sum:60574ac64168133bd8a974d58b7e9c5e +'http://us.archive.ubuntu.com/ubuntu/pool/main/u/usbutils/usbutils_007-2ubuntu1.1_amd64.deb' usbutils_1%3a007-2ubuntu1.1_amd64.deb 205284 MD5Sum:8dd05d22ed0ab249bfed02b3266e9bb5 +'http://us.archive.ubuntu.com/ubuntu/pool/main/w/wheel/python-wheel_0.24.0-1~ubuntu1_all.deb' python-wheel_0.24.0-1~ubuntu1_all.deb 44680 MD5Sum:a1f3817d6dc2aa707d1ac2a075fabf37 +'http://us.archive.ubuntu.com/ubuntu/pool/main/x/xen/libxen-4.4_4.4.2-0ubuntu0.14.04.5_amd64.deb' libxen-4.4_4.4.2-0ubuntu0.14.04.5_amd64.deb 272722 MD5Sum:26f9614ca2e3342a0781bc1335e2d3a3 +'http://us.archive.ubuntu.com/ubuntu/pool/main/x/xen/libxenstore3.0_4.4.2-0ubuntu0.14.04.5_amd64.deb' libxenstore3.0_4.4.2-0ubuntu0.14.04.5_amd64.deb 18872 MD5Sum:e151064ffc03704ec516a5f8ecfeec9f +'http://us.archive.ubuntu.com/ubuntu/pool/main/y/yajl/libyajl2_2.0.4-4_amd64.deb' libyajl2_2.0.4-4_amd64.deb 20834 MD5Sum:d7241d878ea65cbed080196411ec92c2 +'http://us.archive.ubuntu.com/ubuntu/pool/universe/c/chardet-whl/python-chardet-whl_2.2.1-2~ubuntu1_all.deb' python-chardet-whl_2.2.1-2~ubuntu1_all.deb 170254 MD5Sum:d882e156f6af98454a96cae30ae58784 +'http://us.archive.ubuntu.com/ubuntu/pool/universe/d/distlib/python-distlib_0.1.8-1ubuntu1_all.deb' python-distlib_0.1.8-1ubuntu1_all.deb 112604 MD5Sum:b3288d6d230096c11d69ebe18c44ed83 +'http://us.archive.ubuntu.com/ubuntu/pool/universe/d/distlib/python-distlib-whl_0.1.8-1ubuntu1_all.deb' python-distlib-whl_0.1.8-1ubuntu1_all.deb 140312 MD5Sum:93792a4c21365ded4316fdb5bc895dd5 +'http://us.archive.ubuntu.com/ubuntu/pool/universe/p/python-colorama/python-colorama_0.2.5-0.1ubuntu2_all.deb' python-colorama_0.2.5-0.1ubuntu2_all.deb 18374 MD5Sum:b06bc963962c3f3c97f5d1da53a56f3f +'http://us.archive.ubuntu.com/ubuntu/pool/universe/p/python-colorama/python-colorama-whl_0.2.5-0.1ubuntu2_all.deb' python-colorama-whl_0.2.5-0.1ubuntu2_all.deb 18212 MD5Sum:2c4ecb5b3fc49ae20510d3aac886b66a +'http://us.archive.ubuntu.com/ubuntu/pool/universe/p/python-pip/python-pip_1.5.4-1ubuntu3_all.deb' python-pip_1.5.4-1ubuntu3_all.deb 97250 MD5Sum:5e8aaaea2393012f52590302fe7f2c7a +'http://us.archive.ubuntu.com/ubuntu/pool/universe/p/python-pip/python-pip-whl_1.5.4-1ubuntu3_all.deb' python-pip-whl_1.5.4-1ubuntu3_all.deb 111214 MD5Sum:cfa1165c167c67db395fd77b7e477b6d +'http://us.archive.ubuntu.com/ubuntu/pool/universe/p/python-virtualenv/python-virtualenv_1.11.4-1ubuntu1_all.deb' python-virtualenv_1.11.4-1ubuntu1_all.deb 1485420 MD5Sum:6df1003bf2392cd14f1a2710ba8cf5d5 diff --git a/resources/tools/disk-image-builder/ubuntu/lists/ubuntu-14.04.4_2016-05-25_1.0/pip-requirements.txt b/resources/tools/disk-image-builder/ubuntu/lists/ubuntu-14.04.4_2016-05-25_1.0/pip-requirements.txt new file mode 100644 index 0000000000..98d9851d75 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/lists/ubuntu-14.04.4_2016-05-25_1.0/pip-requirements.txt @@ -0,0 +1,14 @@ +docopt==0.6.2 +ecdsa==0.13 +enum34==1.1.2 +interruptingcow==0.6 +ipaddress==1.0.16 +paramiko==1.16.0 +pycrypto==2.6.1 +pykwalify==1.5.0 +python-dateutil==2.4.2 +PyYAML==3.11 +requests==2.9.1 +robotframework==2.9.2 +scapy==2.3.1 +scp==0.10.2 diff --git a/resources/tools/disk-image-builder/ubuntu/nested/NO-NESTED b/resources/tools/disk-image-builder/ubuntu/nested/NO-NESTED new file mode 100644 index 0000000000..eb2d4b03c1 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/nested/NO-NESTED @@ -0,0 +1,8 @@ +NESTED_VERSION=NO_NESTED + +This is a placeholder file to be placed on the ubuntu if nested VM +testing is not desired, or if the main VM is going to overwrite the +nested VM image by means of startup scripts. + +Unless separate steps are taken to provide a valid image within the +VM, NESTED VM TESTCASES WILL FAIL. diff --git a/resources/tools/disk-image-builder/ubuntu/run-listmaker.sh b/resources/tools/disk-image-builder/ubuntu/run-listmaker.sh new file mode 100755 index 0000000000..1f476566af --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/run-listmaker.sh @@ -0,0 +1,212 @@ +#!/bin/bash + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This script is to spin up a simulation in VIRL, and fetch the URLs for all packages +# that the user would obtain if they did an "apt-get update", "apt-get upgrade" today. +# +# This entire step is neither secure nor portable. The assumption --for now-- is that +# this will only ever be run in LF CSIT VIRL lab. Should the requirement arise to +# run this elsewhere, then additional work may be required to make this more +# portable. + +# This script requires that the following two environment variables be defined- +# +# $VIRL_USER +# $VIRL_PASSWORD + +VERSION=$(cat $(dirname $0)/CHANGELOG | grep '^## ' | head -1 | sed -e 's/.*\[\(.*\)\].*/\1/') +if [ "${VERSION}" = "" ] +then + echo "Unable to determine build version from CHANGELOG file. Make sure" + echo "that there is an entry for the most recent version in CHANGELOG," + echo "and that the entry is formated like" + echo + echo "## [1.0] - 2016-05-20" + exit 1 +fi +DATE=$(date +%Y-%m-%d) +OS="ubuntu-14.04.4" +RELEASE="${OS}_${DATE}_${VERSION}" +OUTPUT_DIR="lists/${RELEASE}" + +echo "Building release ${RELEASE}." +echo "Storinging data in ${OUTPUT_DIR}/." + + +# APT packages wanted + +APT_WANTLIST_INFRA="nfs-common cloud-init" +APT_WANTLIST_CSIT="python-dev python-virtualenv git" +APT_WANTLIST_VPP="dkms" +APT_WANTLIST_TREX="zlib1g-dev unzip" +APT_WANTLIST_NESTED="qemu-system-x86" + +# For now, let us NOT incude WANTLIST_NESTED in the below. We're installing qemu +# separately from a separate source. +APT_WANTLIST="$APT_WANTLIST_INFRA $APT_WANTLIST_CSIT $APT_WANTLIST_VPP $WANTLIST_TREX" + +APT_OUTPUTFILE="${OUTPUT_DIR}/apt-packages.txt" + +# Python requirements file. Can point to a manually crafted file +# here, or to the actual CSIT requirements file, or to a symlink. + +PIP_REQUIREMENTS="../../../../requirements.txt" +if [ ! -f ${PIP_REQUIREMENTS} ] +then + echo "PIP requirements file ${PIP_REQUIREMENTS} not found." + exit 1 +fi + +PIP_OUTPUTFILE="${OUTPUT_DIR}/pip-requirements.txt" + +# These will be used for SSH to the listmaker VM, and must match with what +# was defined in the listmaker VM's kickstart file. +SSH_USER="root" +SSH_PASS="csit" + +VIRL_TOPOLOGY_FILE="listmaker/virl-listmaker.yaml" + +### +### Spin up simulation +### +if [ "$VIRL_USER" = "" ] || [ "$VIRL_PASSWORD" = "" ] +then + echo '$VIRL_USER and $VIRL_PASSWORD environment variables must be defined' + exit 1 +fi + +output=$(virl_std_client -u ${VIRL_USER} -p ${VIRL_PASSWORD} \ + simengine-launch -f ${VIRL_TOPOLOGY_FILE} 2>&1) +id=$(echo "${output}" | grep "Simulation ID is " | cut -f 4 -d ' ') + +if [ "$id" = "" ] +then + echo "Did not get a simulation ID. Aborting." + echo "Output was:" + echo "${output}" + exit 1 +fi + +echo My ID is ${id} +function stop_sim { + virl_std_client -u ${VIRL_USER} -p ${VIRL_PASSWORD} simengine-stop --session ${id} +} +trap stop_sim EXIT + +ip="None" +while [ "${ip}" = "None" ] || [ "${ip}" = "" ] +do + sleep 5 + output=$(virl_std_client -u ${VIRL_USER} -p ${VIRL_PASSWORD} simengine-interfaces --session ${id} --nodes listmaker --interfaces management 2>&1) + ip=$(echo "${output}" | grep "u'ip-address" | cut -f 4 -d "'" | cut -f 1 -d '/') +done +echo "IP is $ip" + +sleep 10 + +if ping -w 60 -c 2 $ip > /dev/null +then + echo Host $ip alive +else + echo Host $ip failed to respond to ping + exit 1 +fi + +# Wait for SSH to be up +while ! nc -z $ip 22 +do + sleep 3 +done + +mkdir -p $OUTPUT_DIR + +### +### SSH to the VM and perform package installation. Before each step, +### dry-run and grab the URLs of the packages that would be installed. +### + +function do_ssh { + # Helper function: SSH and avoid password prompt + sshpass -p $SSH_PASS ssh -o StrictHostKeyChecking=false -o UserKnownHostsFile=/dev/null \ + -o LogLevel=error ${SSH_USER}@${ip} "$@" +} + +do_ssh "cat - > /etc/apt/sources.list" <<_EOF +deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted +deb-src http://us.archive.ubuntu.com/ubuntu/ trusty main restricted +deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted +deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted +deb http://us.archive.ubuntu.com/ubuntu/ trusty universe +deb-src http://us.archive.ubuntu.com/ubuntu/ trusty universe +deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe +deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe +deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse +deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse +deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse +deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse +deb http://us.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse +deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse +deb http://security.ubuntu.com/ubuntu trusty-security main restricted +deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted +deb http://security.ubuntu.com/ubuntu trusty-security universe +deb-src http://security.ubuntu.com/ubuntu trusty-security universe +deb http://security.ubuntu.com/ubuntu trusty-security multiverse +deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse +_EOF + + +### FIXME: Need error handling around all this +do_ssh apt-get update + +APT_TEMPFILE=$(mktemp) +do_ssh apt-get --print-uris -y dist-upgrade >> $APT_TEMPFILE +do_ssh DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade +do_ssh apt-get --print-uris -y install $APT_WANTLIST >> $APT_TEMPFILE +do_ssh DEBIAN_FRONTEND=noninteractive apt-get -y install $APT_WANTLIST + +### Install qemu ($APT_WANTLIST_NESTED) separately from PPA +do_ssh "cat - >> /etc/apt/sources.list" <<_EOF +# For a custom qemu build +deb http://ppa.launchpad.net/syseleven-platform/virtualization/ubuntu trusty main +deb-src http://ppa.launchpad.net/syseleven-platform/virtualization/ubuntu trusty main +_EOF +do_ssh apt-get --allow-unauthenticated update +do_ssh apt-get --print-uris --allow-unauthenticated -y install $APT_WANTLIST_NESTED >> $APT_TEMPFILE +do_ssh DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated -y install $APT_WANTLIST_NESTED + +cat $APT_TEMPFILE | grep MD5Sum | sort > $APT_OUTPUTFILE +rm -f $APT_TEMPFILE + +### Get Python data. We do this by installing as per our +### requirements.txt file while fetching a list of all +### installed modules before and after, and then comparing. + +PIP_TEMPFILE_BEFORE=$(mktemp) +PIP_TEMPFILE_AFTER=$(mktemp) +do_ssh "cat - > /tmp/requirements.txt" < ${PIP_REQUIREMENTS} +do_ssh pip list | sort > $PIP_TEMPFILE_BEFORE +do_ssh pip install -r /tmp/requirements.txt +do_ssh pip list | sort > $PIP_TEMPFILE_AFTER + +comm -1 -3 ${PIP_TEMPFILE_BEFORE} ${PIP_TEMPFILE_AFTER} | \ + sed -e 's/\(.*\) (\(.*\))/\1==\2/' > $PIP_OUTPUTFILE +rm -f $PIP_TEMPFILE_BEFORE +rm -f $PIP_TEMPFILE_AFTER + +### +### Stop VIRL session +### +virl_std_client -u ${VIRL_USER} -p ${VIRL_PASSWORD} simengine-stop --session ${id} +trap "" EXIT diff --git a/resources/tools/disk-image-builder/ubuntu/scripts-local/upload-image-to-virl.sh b/resources/tools/disk-image-builder/ubuntu/scripts-local/upload-image-to-virl.sh new file mode 100755 index 0000000000..41682a2bc0 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/scripts-local/upload-image-to-virl.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +if [ "$1" = "" ] +then + echo "Syntax: $0 <path to image file>" + echo + echo "Environment variables that are required:" + echo " VIRL_USER, VIRL_PASSWORD - VIRL username and password" + echo " VIRL_IMAGE_SUBTYPE - Image subtype to use (most likely 'server')" + echo " VIRL_IMAGE_NAME - The intended name for the image in VIRL" + exit 1 +fi + +VIRL_IMAGE_FILE=$1 + +if [ "$VIRL_USER" = "" ] || [ "$VIRL_PASSWORD" = "" ] +then + echo "VIRL user or password not defined, not uploading image to VIRL." + echo "Define VIRL_USER and VIRL_PASSWORD environment variables if image upload" + echo "to VIRL is intended." + exit 0 +fi + +if [ "$VIRL_IMAGE_SUBTYPE" = "" ] || [ "$VIRL_IMAGE_NAME" = "" ] +then + echo "VIRL_IMAGE_SUBTYPE, VIRL_IMAGE_NAME must both be defined" + echo "variables must all be set." + exit 1 +fi + +if [ ! -f $VIRL_IMAGE_FILE ] +then + echo "VIRL image file $VIRL_IMAGE_FILE not found" + exit 1 +fi + +echo Uploading file $VIRL_IMAGE_FILE to VIRL +echo as $VIRL_IMAGE_NAME + +export VIRL_IMAGE_NAME + +existing_image_id=$(virl_uwm_client --quiet -u ${VIRL_USER} -p ${VIRL_PASSWORD} \ + image-info | \ + grep -E "^ u'name'|^ u'id'" | \ + grep -B 1 "u'${VIRL_IMAGE_SUBTYPE}-${VIRL_IMAGE_NAME}'" | \ + grep -E "^ u'id'" | \ + cut -f 4 -d "'") + +if [ "${existing_image_id}" = "" ] +then + echo Image does not exist yet +else + echo Image exists with ID $existing_image_id + virl_uwm_client --quiet -u ${VIRL_USER} -p ${VIRL_PASSWORD} image-delete \ + --id ${existing_image_id} +fi + +virl_uwm_client -u ${VIRL_USER} -p ${VIRL_PASSWORD} image-create --subtype ${VIRL_IMAGE_SUBTYPE} --version ${VIRL_IMAGE_NAME} --image-on-server ${VIRL_IMAGE_FILE} diff --git a/resources/tools/disk-image-builder/ubuntu/scripts-remote/cleanup.sh b/resources/tools/disk-image-builder/ubuntu/scripts-remote/cleanup.sh new file mode 100644 index 0000000000..850c6958fb --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/scripts-remote/cleanup.sh @@ -0,0 +1,37 @@ +#!/bin/sh -e + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +echo "********** CLEANING UP **********" + +# Clean up host keys only if we're using cloud-init +# (which will generate new keys upon next boot). This +# currently applies to Qemu build only. + +if dpkg -s cloud-init > /dev/null 2>&1 +then + rm -f /etc/ssh/ssh_host_* +fi + +# Remove root's password, old resolv.conf and DHCP lease +passwd -d root +passwd -l root +rm -f /etc/resolv.conf +pkill dhclient +rm -f /var/lib/dhcp/*leases + +echo "********** SCHEDULING SHUTDOWN IN 1 MINUTE **********" +sync +shutdown -h +1 +exit diff --git a/resources/tools/disk-image-builder/ubuntu/scripts-remote/post-install.sh b/resources/tools/disk-image-builder/ubuntu/scripts-remote/post-install.sh new file mode 100644 index 0000000000..da05b4350c --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/scripts-remote/post-install.sh @@ -0,0 +1,86 @@ +#!/bin/sh -e + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +TEMP_PATH="/root/temp" + +### +### APT +### +echo "********** INSTALLING APT PACKAGES **********" +echo -n > /etc/apt/sources.list + +export DEBIAN_FRONTEND=noninteractive + +# We're doing this the hard way as we're dealing with a bunch of +# .deb packages rather than any sources organized through APT. + +# Attempt up to five cycles of unpack/configure. There may be dependency +# problems during the first one(s). + +attempt=1 +MAX_ATTEMPTS=5 +try_again=1 + +while [ $attempt -le $MAX_ATTEMPTS ] && [ $try_again -eq 1 ] +do + try_again=0 + echo "Attempting .deb package installation, attempt #${attempt}/${MAX_ATTEMPTS}" + dpkg --unpack --recursive --skip-same-version ${TEMP_PATH}/deb || try_again=1 + dpkg --configure --pending || try_again=1 + if [ $try_again -eq 1 ] + then + echo Encountered errors. + fi + attempt=$(( $attempt + 1 )) +done + +if [ $try_again -eq 1 ] +then + echo "Still encountered errors after ${MAX_ATTEMPTS} attempts. Aborting". + exit 1 +fi + +## +## PIP +## +echo "********** INSTALLING PIP PACKAGES **********" +pip install --no-index --find-links ${TEMP_PATH}/pip/ -r ${TEMP_PATH}/requirements.txt + + +echo "********** CREATING HISTORIC LINK FOR QEMU, COPY NESTED VM IMAGE **********" +mkdir -p /opt/qemu/bin +ln -s /usr/bin/qemu-system-x86_64 /opt/qemu/bin/qemu-system-x86_64 + +mkdir -p /var/lib/vm + +echo "Embedding nested VM image on this image" +mkdir /var/lib/vm/images +cp ${TEMP_PATH}/nested-vm/* /var/lib/vm/images/ +# There should only be one file at this time +ln -s /var/lib/vm/images/* /var/lib/vm/vhost-nested.img + +ls -lR /var/lib/vm + +# Mount hugepages directory for nested VM +mkdir -p /mnt/huge +echo 'hugetlbfs /mnt/huge hugetlbfs mode=1770,gid=111 0 0' >> /etc/fstab + +echo "********** MOVING CHANGELOG AND VERSION FILES **********" + +mv ${TEMP_PATH}/VERSION / +mv ${TEMP_PATH}/CHANGELOG / + +echo "********** CLEANING UP **********" +rm -fr ${TEMP_PATH} diff --git a/resources/tools/disk-image-builder/ubuntu/scripts-remote/serial-console.sh b/resources/tools/disk-image-builder/ubuntu/scripts-remote/serial-console.sh new file mode 100644 index 0000000000..52879048ac --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/scripts-remote/serial-console.sh @@ -0,0 +1,57 @@ +#!/bin/sh -e + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +## +## Serial console +## +echo "********** CONFIGURING SERIAL CONSOLE AND DISABLING IPV6 **********" +cat - > /etc/init/ttyS0.conf <<"_EOF" +# ttyS0 - getty +# +# This service maintains a getty on ttyS0 from the point the system is +# started until it is shut down again. + +start on stopped rc RUNLEVEL=[12345] +stop on runlevel [!12345] + +respawn +exec /sbin/getty -L 115200 ttyS0 vt102 +_EOF + +cat - > /etc/default/grub <<"_EOF" +# If you change this file, run 'update-grub' afterwards to update +# /boot/grub/grub.cfg. +# For full documentation of the options in this file, see: +# info -f grub -n 'Simple configuration' + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=1 +GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` +GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8 ipv6.disable=1" + +GRUB_TERMINAL=serial +GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" + +# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +#GRUB_DISABLE_RECOVERY="true" + +# Uncomment to get a beep at grub start +#GRUB_INIT_TUNE="480 440 1" +_EOF + +update-grub diff --git a/resources/tools/disk-image-builder/ubuntu/scripts-remote/vagrant-guestadditions.sh b/resources/tools/disk-image-builder/ubuntu/scripts-remote/vagrant-guestadditions.sh new file mode 100644 index 0000000000..ec1c064437 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/scripts-remote/vagrant-guestadditions.sh @@ -0,0 +1,22 @@ +#!/bin/sh -e + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +echo "********** Installing VirtualBox Guest Additions (sigh) **********" +mkdir /mnt/VBoxGuestAdditions +mount VBoxGuestAdditions.iso /mnt/VBoxGuestAdditions/ +/mnt/VBoxGuestAdditions/VBoxLinuxAdditions.run +umount /mnt/VBoxGuestAdditions +rmdir /mnt/VBoxGuestAdditions/ +rm -f VBoxGuestAdditions.iso diff --git a/resources/tools/disk-image-builder/ubuntu/scripts-remote/vagrant-user.sh b/resources/tools/disk-image-builder/ubuntu/scripts-remote/vagrant-user.sh new file mode 100644 index 0000000000..31ef17f147 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/scripts-remote/vagrant-user.sh @@ -0,0 +1,40 @@ +#!/bin/sh -e + +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +echo "********** Adding Vagrant user ***********" +# Remove cloud-init as this will slow down the Vagrant boot +export DEBIAN_FRONTEND=noninteractive +apt-get purge -y cloud-init + +# Add Vagrant user +useradd -c "Vagrant User" -m -s /bin/bash vagrant + +mkdir /home/vagrant/.ssh +cat - > /home/vagrant/.ssh/authorized_keys <<_EOF +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key +_EOF + +chown -R vagrant.vagrant /home/vagrant/.ssh +chmod 700 /home/vagrant/.ssh + +mkdir -p /etc/sudoers.d +cat - > /etc/sudoers.d/vagrant <<_EOF +vagrant ALL=(root) NOPASSWD:ALL +_EOF +chmod 440 /etc/sudoers.d/vagrant + +echo "********** Rebooting with new kernel **********" +reboot +sleep 60 diff --git a/resources/tools/disk-image-builder/ubuntu/ubuntu-14.04.4.json b/resources/tools/disk-image-builder/ubuntu/ubuntu-14.04.4.json new file mode 100644 index 0000000000..28f26f3ea1 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/ubuntu-14.04.4.json @@ -0,0 +1,120 @@ +{ + "_c": "Ubuntu 14.04.4 ISO URL at the time of creation of this file (05/2016)", + "_c": "was http://releases.ubuntu.com/14.04/ubuntu-14.04.4-server-amd64.iso .", + "_c": "", + "_c": "If and when 14.04.4 becomes superseded, this URL will likely change", + "_c": "to:", + "_c": "http://old-releases.ubuntu.com/releases/14.04.4/ubuntu-14.04.4-server-amd64.iso", + "variables": { + "release": null, + "output_dir": null, + "temp_dir": null, + "atlas_token": "{{env `ATLAS_TOKEN`}}", + "virl_user": "{{env `VIRL_USER`}}", + "virl_password": "{{env `VIRL_PASSWORD`}}" + }, + "builders": [ + { + "name": "{{user `release`}}-virtualbox", + "type": "virtualbox-iso", + "guest_os_type": "Ubuntu_64", + "iso_url": "http://releases.ubuntu.com/14.04/ubuntu-14.04.4-server-amd64.iso", + "iso_checksum": "2ac1f3e0de626e54d05065d6f549fa3a", + "iso_checksum_type": "md5", + "output_directory": "{{user `output_dir`}}", + "ssh_username": "root", + "ssh_password": "csit", + "disk_size": "4096", + "http_directory": "html", + "iso_target_path" : "build/ubuntu-14.04.4-server-amd64.iso", + "boot_command": + [ + "<esc><esc><enter><wait>", + "/install/vmlinuz noapic ", + "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", + "debian-installer=en_US auto locale=en_US kbd-chooser/method=us ", + "hostname=csit ", + "fb=false debconf/frontend=noninteractive ", + "keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ", + "keyboard-configuration/variant=USA console-setup/ask_detect=false ", + "initrd=/install/initrd.gz -- <enter>" + ] + }, + { + "name": "{{user `release`}}-qemu", + "type": "qemu", + "iso_url": "http://releases.ubuntu.com/14.04/ubuntu-14.04.4-server-amd64.iso", + "iso_checksum": "2ac1f3e0de626e54d05065d6f549fa3a", + "iso_checksum_type": "md5", + "output_directory": "{{user `output_dir`}}", + "ssh_username": "root", + "ssh_password": "csit", + "disk_size": "4096", + "http_directory": "html", + "iso_target_path" : "build/ubuntu-14.04.4-server-amd64.iso", + "headless": "true", + "boot_command": + [ + "<esc><esc><enter><wait>", + "/install/vmlinuz noapic ", + "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", + "debian-installer=en_US auto locale=en_US kbd-chooser/method=us ", + "hostname=csit ", + "fb=false debconf/frontend=noninteractive ", + "keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ", + "keyboard-configuration/variant=USA console-setup/ask_detect=false ", + "initrd=/install/initrd.gz -- <enter>" + ] + } + ], + "provisioners": [ + { + "type": "file", + "source": "{{ user `temp_dir`}}", + "destination": "/root" + }, + { + "type": "shell", + "script": "scripts-remote/post-install.sh" + }, + { + "type": "shell", + "only": ["{{user `release`}}-qemu"], + "script": "scripts-remote/serial-console.sh" + }, + { + "type": "shell", + "only": ["{{user `release`}}-virtualbox"], + "script": "scripts-remote/vagrant-user.sh" + }, + { + "type": "shell", + "only": ["{{user `release`}}-virtualbox"], + "script": "scripts-remote/vagrant-guestadditions.sh" + }, + { + "type": "shell", + "script": "scripts-remote/cleanup.sh" + } + ], + "post-processors": [ + { + "type": "vagrant", + "only": ["{{user `release`}}-virtualbox"], + "keep_input_artifact": true + }, + { + "type": "shell-local", + "only": ["{{user `release`}}-qemu"], + "script": "scripts-local/upload-image-to-virl.sh", + "keep_input_artifact": true, + "environment_vars": + [ + "VIRL_USER={{user `virl_user`}}", + "VIRL_PASSWORD={{user `virl_password`}}", + "VIRL_IMAGE_SUBTYPE=server", + "VIRL_IMAGE_NAME={{user `release`}}" + ] + } + ] +} diff --git a/resources/tools/disk-image-builder/ubuntu/ubuntu-14.04.4.json.WITH-ATLAS b/resources/tools/disk-image-builder/ubuntu/ubuntu-14.04.4.json.WITH-ATLAS new file mode 100644 index 0000000000..f13d0bc419 --- /dev/null +++ b/resources/tools/disk-image-builder/ubuntu/ubuntu-14.04.4.json.WITH-ATLAS @@ -0,0 +1,22 @@ +#### +#### Config for Atlas post-processor. Currently not used, as this is +#### erroneously uploading a box without metadata. Need to figure out why. +#### +#### Issues: +#### - Image is uploaded as private box. That stinks, because without an +#### Atlas Enterprise account, one cannot even access that box and make it +#### public. +#### - Box uploaded has no metadata, causing it to fail in vagrant. +#### + + { + "type": "atlas", + "keep_input_artifact": true, + "only": ["{{user `release`}}-virtualbox"], + "token": "{{user `atlas_token`}}", + "artifact": "fdio-csit/{{user `release`}}", + "artifact_type": "vagrant.box", + "metadata": { + "provider": "virtualbox" + } + }, diff --git a/resources/tools/virl/bin/start-testcase b/resources/tools/virl/bin/start-testcase index b46f5add27..10028e6516 100755 --- a/resources/tools/virl/bin/start-testcase +++ b/resources/tools/virl/bin/start-testcase @@ -24,6 +24,7 @@ import tempfile import shutil import time import paramiko +import netifaces # # Helper function to indent a text string @@ -40,6 +41,14 @@ def indent(lines, amount, fillchar=' '): # def main(): # + # Get our default interface IP address. This will become the default + # value for the "NFS Server IP" option. + # + gws = netifaces.gateways() + addrs = netifaces.ifaddresses(gws['default'][netifaces.AF_INET][1]) + default_addr = addrs[netifaces.AF_INET][0]['addr'] + + # # Verify CLI parameters and try to download our VPP image into a temporary # file first # @@ -53,11 +62,9 @@ def main(): parser.add_argument("-k", "--keep", help="Keep (do not delete) the " + "simulation in case of error", action='store_true') parser.add_argument("-v", "--verbosity", action="count", default=0) - # FIXME: THe default value for the following line should not be a hardcoded - # address. We should determine it dynamically (e.g. IP address of first - # interface or whichever interface is tied to the flat network) - parser.add_argument("-nip", "--nfs-server-ip", help="NFS server (our) IP", - default="10.30.51.28") + parser.add_argument("-nip", "--nfs-server-ip", help="NFS server (our) IP " + + "default is derived from routing table: " + + "{}".format(default_addr), default=default_addr) parser.add_argument("-ns", "--nfs-scratch-directory", help="Server location for NFS scratch diretory", default="/nfs/scratch") @@ -66,7 +73,7 @@ def main(): "directory", default="/nfs/common") parser.add_argument("-wc", "--wait-count", help="number of intervals to wait for simulation to " + - "be ready", type=int, default=12) + "be ready", type=int, default=24) parser.add_argument("-wt", "--wait-time", help="length of a single interval to wait for " + "simulation to be ready", type=int, default=5) @@ -83,6 +90,9 @@ def main(): default="/home/jenkins-in/.ssh/id_rsa_virl") parser.add_argument("-spu", "--ssh-pubkey", help="SSH public keyfile", default="/home/jenkins-in/.ssh/id_rsa_virl.pub") + parser.add_argument("-r", "--release", help="VM disk image/release " + + "(ex. \"csit-ubuntu-14.04.4_2016-05-25_1.0\")", + default="csit-ubuntu-14.04.4_2016-05-25_1.0") parser.add_argument("--topology-directory", help="Topology directory", default="/home/jenkins-in/testcase-infra/topologies") @@ -134,6 +144,7 @@ def main(): args.nfs_server_ip+":"+args.nfs_scratch_directory) line = line.replace("$$NFS_SERVER_COMMON$$", \ args.nfs_server_ip+":"+args.nfs_common_directory) + line = line.replace("$$VM_IMAGE$$", "server-"+args.release) new_file.write(line) os.close(temp_handle) diff --git a/resources/tools/virl/bin/stop-testcase b/resources/tools/virl/bin/stop-testcase index dbbb53e30f..1175fcf2b5 100755 --- a/resources/tools/virl/bin/stop-testcase +++ b/resources/tools/virl/bin/stop-testcase @@ -21,4 +21,4 @@ NFS_SCRATCH_SERVERDIR="/nfs/scratch" # Our own (NFS s TESTCASE=$1 virl_std_client -u $VIRL_USER -p $VIRL_PASSWORD simengine-stop --session-id $TESTCASE -rm -fr ${NFS_SCRATCH_SERVERDIR}/${TESTCASE} +sudo rm -fr ${NFS_SCRATCH_SERVERDIR}/${TESTCASE} diff --git a/resources/tools/virl/topologies/double-ring-nested.virl b/resources/tools/virl/topologies/double-ring-nested.virl index 9018cb529f..4dd5885281 100644 --- a/resources/tools/virl/topologies/double-ring-nested.virl +++ b/resources/tools/virl/topologies/double-ring-nested.virl @@ -3,7 +3,7 @@ <extensions> <entry key="management_network" type="String">flat</entry> </extensions> - <node name="tg1" type="SIMPLE" subtype="server" location="570,238" vmImage="server-java-nested"> + <node name="tg1" type="SIMPLE" subtype="server" location="570,238" vmImage="$$VM_IMAGE$$"> <extensions> <entry key="config" type="String">#cloud-config
 bootcmd:
 @@ -91,6 +91,7 @@ write_files:
 mount -t nfs "${nfs_server_common}" /mnt/common mkdir /scratch/$(hostname) + cp /VERSION /scratch/$(hostname)/ exit 0
 </entry> @@ -103,7 +104,7 @@ write_files:
 <interface id="4" name="eth5"/> <interface id="5" name="eth6"/> </node> - <node name="sut1" type="SIMPLE" subtype="vPP" location="425,26" vmImage="server-java-nested"> + <node name="sut1" type="SIMPLE" subtype="vPP" location="425,26" vmImage="$$VM_IMAGE$$"> <extensions> <entry key="config" type="string">#cloud-config bootcmd: @@ -191,7 +192,16 @@ write_files: mount -t nfs "${nfs_server_common}" /mnt/common + # Overwrite nested VM image with latest as per NFS + if [ -f /mnt/common/nested-vm-current.img ] + then + rm -f /var/lib/vm/vhost-nested.img + cp /mnt/common/nested-vm-current.img /var/lib/vm/vhost-nested.img + fi + mkdir /scratch/$(hostname) + cp /VERSION /scratch/$(hostname)/ + cat /var/lib/vm/vhost-nested.img | strings | grep NESTED_VERSION= > /scratch/$(hostname)/NESTED_VERSION exit 0
 </entry> @@ -201,7 +211,7 @@ write_files: <interface id="2" name="GigabitEthernet0/6/0"/> <interface id="3" name="GigabitEthernet0/7/0"/> </node> - <node name="sut2" type="SIMPLE" subtype="vPP" location="748,26" vmImage="server-java-nested"> + <node name="sut2" type="SIMPLE" subtype="vPP" location="748,26" vmImage="$$VM_IMAGE$$"> <extensions> <entry key="config" type="string">#cloud-config bootcmd: @@ -289,7 +299,16 @@ write_files: mount -t nfs "${nfs_server_common}" /mnt/common + # Overwrite nested VM image with latest as per NFS + if [ -f /mnt/common/nested-vm-current.img ] + then + rm -f /var/lib/vm/vhost-nested.img + cp /mnt/common/nested-vm-current.img /var/lib/vm/vhost-nested.img + fi + mkdir /scratch/$(hostname) + cp /VERSION /scratch/$(hostname)/ + cat /var/lib/vm/vhost-nested.img | strings | grep NESTED_VERSION= > /scratch/$(hostname)/NESTED_VERSION exit 0
 </entry> diff --git a/resources/tools/virl/topologies/simple-ring-nested.virl b/resources/tools/virl/topologies/simple-ring-nested.virl deleted file mode 100644 index b2768f2205..0000000000 --- a/resources/tools/virl/topologies/simple-ring-nested.virl +++ /dev/null @@ -1,297 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<topology xmlns="http://www.cisco.com/VIRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="0.9" xsi:schemaLocation="http://www.cisco.com/VIRL https://raw.github.com/CiscoVIRL/schema/v0.9/virl.xsd"> - <extensions> - <entry key="management_network" type="String">flat</entry> - </extensions> - <node name="tg1" type="SIMPLE" subtype="server" location="570,238" vmImage="server-java-nested"> - <extensions> - <entry key="config" type="String">#cloud-config
 -bootcmd:
 -- ln -s -t /etc/rc.d /etc/rc.local
 -hostname: tg1
 -manage_etc_hosts: true
 -nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ -nfs_server_common: $$NFS_SERVER_COMMON$$ -runcmd:
 -- start ttyS0
 -- systemctl start getty@ttyS0.service
 -- systemctl start rc-local
 -- touch /tmp/before-sed
 -- sed -i 's/^\s*PasswordAuthentication\s\+no/PasswordAuthentication yes/' /etc/ssh/sshd_config
 -- echo "UseDNS no" >> /etc/ssh/sshd_config
 -- service ssh restart
 -- service sshd restart
 -users:
 -- default
 -- gecos: User configured by VIRL Configuration Engine 0.21.4
 - lock-passwd: false
 - name: cisco
 - plain-text-passwd: cisco
 - shell: /bin/bash
 - ssh-authorized-keys:
 - - VIRL-USER-SSH-PUBLIC-KEY
 - - VIRL-USER-SSH-PUBLIC-KEY
 - sudo: ALL=(ALL) NOPASSWD:ALL
 -write_files:
 -- path: /etc/init/ttyS0.conf
 - owner: root:root
 - content: |
 - # ttyS0 - getty
 - # This service maintains a getty on ttyS0 from the point the system is
 - # started until it is shut down again.
 - start on stopped rc or RUNLEVEL=[12345]
 - stop on runlevel [!12345]
 - respawn
 - exec /sbin/getty -L 115200 ttyS0 vt102
 - permissions: '0644'
 -- path: /etc/systemd/system/dhclient@.service
 - content: |
 - [Unit]
 - Description=Run dhclient on %i interface
 - After=network.target
 - [Service]
 - Type=oneshot
 - ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease
 - RemainAfterExit=yes
 - owner: root:root
 - permissions: '0644'
 -- path: /usr/local/sbin/cloud-instance-name - content: | - #!/usr/bin/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name'] - owner: root:root - permissions: '0755' -- path: /etc/rc.local
 - owner: root:root
 - permissions: '0755'
 - content: |-
 - #!/bin/sh
 - grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 - grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 - nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') - echo My instance name is $instance_name - - MAXCOUNT=12 - RETRY=5 - - mkdir -p /scratch - mkdir -p /mnt/common - - echo "Mounting NFS directories" - count=0 - while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch - do - sleep 5 - count=$[$count+1] - done - - mount -t nfs "${nfs_server_common}" /mnt/common - - mkdir /scratch/$(hostname) - - exit 0
 -</entry> - <entry key="Auto-generate config" type="Boolean">false</entry> - </extensions> - <interface id="0" name="eth1"/> - <interface id="1" name="eth2"/> - </node> - <node name="sut1" type="SIMPLE" subtype="vPP" location="425,26" vmImage="server-java-nested"> - <extensions> - <entry key="config" type="string">#cloud-config -bootcmd: -- ln -s -t /etc/rc.d /etc/rc.local -hostname: sut1 -manage_etc_hosts: true -nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ -nfs_server_common: $$NFS_SERVER_COMMON$$ -runcmd: -- start ttyS0 -- systemctl start getty@ttyS0.service -- systemctl start rc-local -- sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config -- echo "UseDNS no" >> /etc/ssh/sshd_config -- service ssh restart -- service sshd restart -- sed -i 's/no-pci//' /opt/cisco/vpe/etc/qn.conf -- sed -i 's/1024/1024 decimal-interface-names/g' /opt/cisco/vpe/etc/qn.conf -users: -- default -- gecos: User configured by VIRL Configuration Engine 0.21.4 - lock-passwd: false - name: cisco - plain-text-passwd: cisco - shell: /bin/bash - ssh-authorized-keys: - - VIRL-USER-SSH-PUBLIC-KEY - - VIRL-USER-SSH-PUBLIC-KEY - sudo: ALL=(ALL) NOPASSWD:ALL -write_files: -- path: /etc/init/ttyS0.conf - owner: root:root - content: | - # ttyS0 - getty - # This service maintains a getty on ttyS0 from the point the system is - # started until it is shut down again. - start on stopped rc or RUNLEVEL=[12345] - stop on runlevel [!12345] - respawn - exec /sbin/getty -L 115200 ttyS0 vt102 - permissions: '0644' -- path: /etc/systemd/system/dhclient@.service - content: | - [Unit] - Description=Run dhclient on %i interface - After=network.target - [Service] - Type=oneshot - ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease - RemainAfterExit=yes - owner: root:root - permissions: '0644' -- path: /usr/local/sbin/cloud-instance-name - content: | - #!/usr/bin/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name'] - owner: root:root - permissions: '0755' -- path: /etc/rc.local
 - owner: root:root
 - permissions: '0755'
 - content: |-
 - #!/bin/sh
 - grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 - grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 - nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') - echo My instance name is $instance_name - - MAXCOUNT=12 - RETRY=5 - - mkdir -p /scratch - mkdir -p /mnt/common - - echo "Mounting NFS directories" - count=0 - while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch - do - sleep 5 - count=$[$count+1] - done - - mount -t nfs "${nfs_server_common}" /mnt/common - - mkdir /scratch/$(hostname) - - exit 0
 -</entry> - </extensions> - <interface id="0" name="GigabitEthernet0/4/0"/> - <interface id="1" name="GigabitEthernet0/5/0"/> - </node> - <node name="sut2" type="SIMPLE" subtype="vPP" location="748,26" vmImage="server-java-nested"> - <extensions> - <entry key="config" type="string">#cloud-config -bootcmd: -- ln -s -t /etc/rc.d /etc/rc.local -hostname: sut2 -manage_etc_hosts: true -nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ -nfs_server_common: $$NFS_SERVER_COMMON$$ -runcmd: -- start ttyS0 -- systemctl start getty@ttyS0.service -- systemctl start rc-local -- sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config -- echo "UseDNS no" >> /etc/ssh/sshd_config -- service ssh restart -- service sshd restart -- sed -i 's/no-pci//' /opt/cisco/vpe/etc/qn.conf -- sed -i 's/1024/1024 decimal-interface-names/g' /opt/cisco/vpe/etc/qn.conf -users: -- default -- gecos: User configured by VIRL Configuration Engine 0.21.4 - lock-passwd: false - name: cisco - plain-text-passwd: cisco - shell: /bin/bash - ssh-authorized-keys: - - VIRL-USER-SSH-PUBLIC-KEY - - VIRL-USER-SSH-PUBLIC-KEY - sudo: ALL=(ALL) NOPASSWD:ALL -write_files: -- path: /etc/init/ttyS0.conf - owner: root:root - content: | - # ttyS0 - getty - # This service maintains a getty on ttyS0 from the point the system is - # started until it is shut down again. - start on stopped rc or RUNLEVEL=[12345] - stop on runlevel [!12345] - respawn - exec /sbin/getty -L 115200 ttyS0 vt102 - permissions: '0644' -- path: /etc/systemd/system/dhclient@.service - content: | - [Unit] - Description=Run dhclient on %i interface - After=network.target - [Service] - Type=oneshot - ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease - RemainAfterExit=yes - owner: root:root - permissions: '0644' -- path: /usr/local/sbin/cloud-instance-name - content: | - #!/usr/bin/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name'] - owner: root:root - permissions: '0755' -- path: /etc/rc.local
 - owner: root:root
 - permissions: '0755'
 - content: |-
 - #!/bin/sh
 - grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 - grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 - nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') - echo My instance name is $instance_name - - MAXCOUNT=12 - RETRY=5 - - mkdir -p /scratch - mkdir -p /mnt/common - - echo "Mounting NFS directories" - count=0 - while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch - do - sleep 5 - count=$[$count+1] - done - - mount -t nfs "${nfs_server_common}" /mnt/common - - mkdir /scratch/$(hostname) - - exit 0
 -</entry> - </extensions> - <interface id="0" name="GigabitEthernet0/4/0"/> - <interface id="1" name="GigabitEthernet0/5/0"/> - </node> - <connection dst="/virl:topology/virl:node[1]/virl:interface[2]" src="/virl:topology/virl:node[3]/virl:interface[1]"/> - <connection dst="/virl:topology/virl:node[2]/virl:interface[2]" src="/virl:topology/virl:node[1]/virl:interface[1]"/> - <connection dst="/virl:topology/virl:node[3]/virl:interface[2]" src="/virl:topology/virl:node[2]/virl:interface[1]"/> -</topology> diff --git a/resources/tools/virl/topologies/simple-ring-nested.yaml b/resources/tools/virl/topologies/simple-ring-nested.yaml deleted file mode 100644 index 094adf3988..0000000000 --- a/resources/tools/virl/topologies/simple-ring-nested.yaml +++ /dev/null @@ -1,59 +0,0 @@ ---- -metadata: - version: 0.1 - schema: - - resources/topology_schemas/3_node_topology.sch.yaml - - resources/topology_schemas/topology.sch.yaml - tags: [hw, 3-node] - -nodes: - TG: - type: TG - host: "{topology[tg1][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port3: - mac_address: "{topology[tg1][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link1 - driver: virtio-pci - port5: - mac_address: "{topology[tg1][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link2 - driver: virtio-pci - DUT1: - type: DUT - host: "{topology[sut1][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port3: - mac_address: "{topology[sut1][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link3 - port1: - mac_address: "{topology[sut1][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link1 - DUT2: - type: DUT - host: "{topology[sut2][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port1: - mac_address: "{topology[sut2][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link2 - port3: - mac_address: "{topology[sut2][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link3 diff --git a/resources/tools/virl/topologies/simple-ring.virl b/resources/tools/virl/topologies/simple-ring.virl deleted file mode 100644 index 82973aa745..0000000000 --- a/resources/tools/virl/topologies/simple-ring.virl +++ /dev/null @@ -1,297 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<topology xmlns="http://www.cisco.com/VIRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="0.9" xsi:schemaLocation="http://www.cisco.com/VIRL https://raw.github.com/CiscoVIRL/schema/v0.9/virl.xsd"> - <extensions> - <entry key="management_network" type="String">flat</entry> - </extensions> - <node name="tg1" type="SIMPLE" subtype="server" location="570,238" vmImage="server-java"> - <extensions> - <entry key="config" type="String">#cloud-config
 -bootcmd:
 -- ln -s -t /etc/rc.d /etc/rc.local
 -hostname: tg1
 -manage_etc_hosts: true
 -nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ -nfs_server_common: $$NFS_SERVER_COMMON$$ -runcmd:
 -- start ttyS0
 -- systemctl start getty@ttyS0.service
 -- systemctl start rc-local
 -- touch /tmp/before-sed
 -- sed -i 's/^\s*PasswordAuthentication\s\+no/PasswordAuthentication yes/' /etc/ssh/sshd_config
 -- echo "UseDNS no" >> /etc/ssh/sshd_config
 -- service ssh restart
 -- service sshd restart
 -users:
 -- default
 -- gecos: User configured by VIRL Configuration Engine 0.21.4
 - lock-passwd: false
 - name: cisco
 - plain-text-passwd: cisco
 - shell: /bin/bash
 - ssh-authorized-keys:
 - - VIRL-USER-SSH-PUBLIC-KEY
 - - VIRL-USER-SSH-PUBLIC-KEY
 - sudo: ALL=(ALL) NOPASSWD:ALL
 -write_files:
 -- path: /etc/init/ttyS0.conf
 - owner: root:root
 - content: |
 - # ttyS0 - getty
 - # This service maintains a getty on ttyS0 from the point the system is
 - # started until it is shut down again.
 - start on stopped rc or RUNLEVEL=[12345]
 - stop on runlevel [!12345]
 - respawn
 - exec /sbin/getty -L 115200 ttyS0 vt102
 - permissions: '0644'
 -- path: /etc/systemd/system/dhclient@.service
 - content: |
 - [Unit]
 - Description=Run dhclient on %i interface
 - After=network.target
 - [Service]
 - Type=oneshot
 - ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease
 - RemainAfterExit=yes
 - owner: root:root
 - permissions: '0644'
 -- path: /usr/local/sbin/cloud-instance-name - content: | - #!/usr/bin/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name'] - owner: root:root - permissions: '0755' -- path: /etc/rc.local
 - owner: root:root
 - permissions: '0755'
 - content: |-
 - #!/bin/sh
 - grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 - grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 - nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') - echo My instance name is $instance_name - - MAXCOUNT=12 - RETRY=5 - - mkdir -p /scratch - mkdir -p /mnt/common - - echo "Mounting NFS directories" - count=0 - while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch - do - sleep 5 - count=$[$count+1] - done - - mount -t nfs "${nfs_server_common}" /mnt/common - - mkdir /scratch/$(hostname) - - exit 0
 -</entry> - <entry key="Auto-generate config" type="Boolean">false</entry> - </extensions> - <interface id="0" name="eth1"/> - <interface id="1" name="eth2"/> - </node> - <node name="sut1" type="SIMPLE" subtype="vPP" location="425,26" vmImage="server-java"> - <extensions> - <entry key="config" type="string">#cloud-config -bootcmd: -- ln -s -t /etc/rc.d /etc/rc.local -hostname: sut1 -manage_etc_hosts: true -nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ -nfs_server_common: $$NFS_SERVER_COMMON$$ -runcmd: -- start ttyS0 -- systemctl start getty@ttyS0.service -- systemctl start rc-local -- sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config -- echo "UseDNS no" >> /etc/ssh/sshd_config -- service ssh restart -- service sshd restart -- sed -i 's/no-pci//' /opt/cisco/vpe/etc/qn.conf -- sed -i 's/1024/1024 decimal-interface-names/g' /opt/cisco/vpe/etc/qn.conf -users: -- default -- gecos: User configured by VIRL Configuration Engine 0.21.4 - lock-passwd: false - name: cisco - plain-text-passwd: cisco - shell: /bin/bash - ssh-authorized-keys: - - VIRL-USER-SSH-PUBLIC-KEY - - VIRL-USER-SSH-PUBLIC-KEY - sudo: ALL=(ALL) NOPASSWD:ALL -write_files: -- path: /etc/init/ttyS0.conf - owner: root:root - content: | - # ttyS0 - getty - # This service maintains a getty on ttyS0 from the point the system is - # started until it is shut down again. - start on stopped rc or RUNLEVEL=[12345] - stop on runlevel [!12345] - respawn - exec /sbin/getty -L 115200 ttyS0 vt102 - permissions: '0644' -- path: /etc/systemd/system/dhclient@.service - content: | - [Unit] - Description=Run dhclient on %i interface - After=network.target - [Service] - Type=oneshot - ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease - RemainAfterExit=yes - owner: root:root - permissions: '0644' -- path: /usr/local/sbin/cloud-instance-name - content: | - #!/usr/bin/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name'] - owner: root:root - permissions: '0755' -- path: /etc/rc.local
 - owner: root:root
 - permissions: '0755'
 - content: |-
 - #!/bin/sh
 - grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 - grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 - nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') - echo My instance name is $instance_name - - MAXCOUNT=12 - RETRY=5 - - mkdir -p /scratch - mkdir -p /mnt/common - - echo "Mounting NFS directories" - count=0 - while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch - do - sleep 5 - count=$[$count+1] - done - - mount -t nfs "${nfs_server_common}" /mnt/common - - mkdir /scratch/$(hostname) - - exit 0
 -</entry> - </extensions> - <interface id="0" name="GigabitEthernet0/4/0"/> - <interface id="1" name="GigabitEthernet0/5/0"/> - </node> - <node name="sut2" type="SIMPLE" subtype="vPP" location="748,26" vmImage="server-java"> - <extensions> - <entry key="config" type="string">#cloud-config -bootcmd: -- ln -s -t /etc/rc.d /etc/rc.local -hostname: sut2 -manage_etc_hosts: true -nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ -nfs_server_common: $$NFS_SERVER_COMMON$$ -runcmd: -- start ttyS0 -- systemctl start getty@ttyS0.service -- systemctl start rc-local -- sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config -- echo "UseDNS no" >> /etc/ssh/sshd_config -- service ssh restart -- service sshd restart -- sed -i 's/no-pci//' /opt/cisco/vpe/etc/qn.conf -- sed -i 's/1024/1024 decimal-interface-names/g' /opt/cisco/vpe/etc/qn.conf -users: -- default -- gecos: User configured by VIRL Configuration Engine 0.21.4 - lock-passwd: false - name: cisco - plain-text-passwd: cisco - shell: /bin/bash - ssh-authorized-keys: - - VIRL-USER-SSH-PUBLIC-KEY - - VIRL-USER-SSH-PUBLIC-KEY - sudo: ALL=(ALL) NOPASSWD:ALL -write_files: -- path: /etc/init/ttyS0.conf - owner: root:root - content: | - # ttyS0 - getty - # This service maintains a getty on ttyS0 from the point the system is - # started until it is shut down again. - start on stopped rc or RUNLEVEL=[12345] - stop on runlevel [!12345] - respawn - exec /sbin/getty -L 115200 ttyS0 vt102 - permissions: '0644' -- path: /etc/systemd/system/dhclient@.service - content: | - [Unit] - Description=Run dhclient on %i interface - After=network.target - [Service] - Type=oneshot - ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease - RemainAfterExit=yes - owner: root:root - permissions: '0644' -- path: /usr/local/sbin/cloud-instance-name - content: | - #!/usr/bin/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name'] - owner: root:root - permissions: '0755' -- path: /etc/rc.local
 - owner: root:root
 - permissions: '0755'
 - content: |-
 - #!/bin/sh
 - grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 - grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 - nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') - instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') - echo My instance name is $instance_name - - MAXCOUNT=12 - RETRY=5 - - mkdir -p /scratch - mkdir -p /mnt/common - - echo "Mounting NFS directories" - count=0 - while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch - do - sleep 5 - count=$[$count+1] - done - - mount -t nfs "${nfs_server_common}" /mnt/common - - mkdir /scratch/$(hostname) - - exit 0
 -</entry> - </extensions> - <interface id="0" name="GigabitEthernet0/4/0"/> - <interface id="1" name="GigabitEthernet0/5/0"/> - </node> - <connection dst="/virl:topology/virl:node[1]/virl:interface[2]" src="/virl:topology/virl:node[3]/virl:interface[1]"/> - <connection dst="/virl:topology/virl:node[2]/virl:interface[2]" src="/virl:topology/virl:node[1]/virl:interface[1]"/> - <connection dst="/virl:topology/virl:node[3]/virl:interface[2]" src="/virl:topology/virl:node[2]/virl:interface[1]"/> -</topology> diff --git a/resources/tools/virl/topologies/simple-ring.yaml b/resources/tools/virl/topologies/simple-ring.yaml deleted file mode 100644 index 094adf3988..0000000000 --- a/resources/tools/virl/topologies/simple-ring.yaml +++ /dev/null @@ -1,59 +0,0 @@ ---- -metadata: - version: 0.1 - schema: - - resources/topology_schemas/3_node_topology.sch.yaml - - resources/topology_schemas/topology.sch.yaml - tags: [hw, 3-node] - -nodes: - TG: - type: TG - host: "{topology[tg1][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port3: - mac_address: "{topology[tg1][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link1 - driver: virtio-pci - port5: - mac_address: "{topology[tg1][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link2 - driver: virtio-pci - DUT1: - type: DUT - host: "{topology[sut1][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port3: - mac_address: "{topology[sut1][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link3 - port1: - mac_address: "{topology[sut1][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link1 - DUT2: - type: DUT - host: "{topology[sut2][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port1: - mac_address: "{topology[sut2][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link2 - port3: - mac_address: "{topology[sut2][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link3 |