diff --git a/Makefile b/Makefile index 1141235e..84e3f6c0 100644 --- a/Makefile +++ b/Makefile @@ -21,9 +21,7 @@ onl-amd64 onl-x86 x86 x86_64 amd64: packages_base_all $(MAKE) -C packages/base/amd64/onlp $(MAKE) -C packages/base/amd64/onlp-snmpd $(MAKE) -C packages/base/amd64/faultd - $(MAKE) -C builds/amd64/rootfs - $(MAKE) -C builds/amd64/swi - $(MAKE) -C builds/amd64/installer + $(MAKE) -C builds/amd64 onl-ppc ppc: packages_base_all $(MAKE) -C packages/base/powerpc/kernels @@ -32,10 +30,7 @@ onl-ppc ppc: packages_base_all $(MAKE) -C packages/base/powerpc/onlp-snmpd $(MAKE) -C packages/base/powerpc/faultd $(MAKE) -C packages/base/powerpc/fit - $(MAKE) -C builds/powerpc/rootfs - $(MAKE) -C builds/powerpc/swi - $(MAKE) -C builds/powerpc/installer - + $(MAKE) -C builds/powerpc ifdef ONL_DEBIAN_SUITE_jessie @@ -49,9 +44,7 @@ onl-arm arm: arm_toolchain_check packages_base_all $(MAKE) -C packages/base/armel/onlp-snmpd $(MAKE) -C packages/base/armel/faultd $(MAKE) -C packages/base/armel/fit - $(MAKE) -C builds/armel/rootfs - $(MAKE) -C builds/armel/swi - $(MAKE) -C builds/armel/installer + $(MAKE) -C builds/armel else onl-arm arm: diff --git a/builds/amd64/Makefile b/builds/amd64/Makefile index 003238cf..92917844 100644 --- a/builds/amd64/Makefile +++ b/builds/amd64/Makefile @@ -1 +1,2 @@ -include $(ONL)/make/pkg.mk \ No newline at end of file +DIRECTORIES := rootfs swi installer +include $(ONL)/make/subdirs.mk diff --git a/builds/amd64/installer/legacy/PKG.yml b/builds/amd64/installer/legacy/PKG.yml deleted file mode 100644 index a2932590..00000000 --- a/builds/amd64/installer/legacy/PKG.yml +++ /dev/null @@ -1,2 +0,0 @@ -!include $ONL/builds/any/installer/legacy/APKG.yml ARCH=amd64 - diff --git a/builds/amd64/installer/legacy/builds/.gitignore b/builds/amd64/installer/legacy/builds/.gitignore deleted file mode 100644 index 80d5c25e..00000000 --- a/builds/amd64/installer/legacy/builds/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*INSTALLER -kernel-* -initrd-* -lib/ -usr/ - diff --git a/builds/amd64/installer/legacy/builds/Makefile b/builds/amd64/installer/legacy/builds/Makefile deleted file mode 100644 index e5c06989..00000000 --- a/builds/amd64/installer/legacy/builds/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -include $(ONL)/make/config.amd64.mk - -KERNELS := $(shell $(ONLPM) --find-file onl-kernel-3.9.6-x86-64-all:amd64 kernel-3.9.6-x86-64-all) \ - $(shell $(ONLPM) --find-file onl-kernel-3.2-deb7-x86-64-all:amd64 kernel-3.2-deb7-x86_64-all) \ - $(shell $(ONLPM) --find-file onl-kernel-3.18-x86-64-all:amd64 kernel-3.18-x86_64-all) - -INITRD := $(shell $(ONLPM) --find-file onl-loader-initrd:amd64 onl-loader-initrd-amd64.cpio.gz) -PLATFORMS := $(shell $(ONLPM) --platform-manifest onl-loader-initrd:amd64) - -MKSHAR = $(ONL)/tools/mkshar -MKSHAR_OPTS = --lazy --unzip-pad --fixup-perms autoperms.sh -MKSHAR_PERMS = autoperms.sh - - -# Hardcoded to match ONL File naming conventions. -include $(ONL)/make/versions/version-onl.mk -INSTALLER_NAME=$(FNAME_PRODUCT_VERSION)_ONL-OS_$(FNAME_BUILD_ID)_$(UARCH)_LEGACY_INSTALLER - - - -__installer: - $(ONL_V_at)rm -rf *INSTALLER* *.md5sum - $(foreach k,$(KERNELS),cp $(k) .;) - $(ONL_V_at)cp $(INITRD) initrd-amd64 - $(foreach p,$(PLATFORMS), $(ONLPM) --extract-dir onl-platform-config-$(p):amd64 .;) - # Fixme - $(ONLPM) --extract-dir onl-swi:amd64 . - mv ./usr/share/onl/packages/amd64/onl-swi/*.swi . - rm -rf ./usr - $(ONL_V_at)cp /dev/null $(MKSHAR_PERMS) - $(ONL_V_at) cp $(ONL)/make/versions/version-onl.sh . - $(ONL_V_at)echo "#!/bin/sh" >> $(MKSHAR_PERMS) - $(ONL_V_at)echo "set -e" >> $(MKSHAR_PERMS) - $(ONL_V_at)echo "set -x" >> $(MKSHAR_PERMS) - $(MKSHAR) $(MKSHAR_OPTS) "$(INSTALLER_NAME)" $(ONL)/tools/scripts/sfx.sh.in amd64-installer.sh $(notdir $(KERNELS)) initrd-amd64 lib *.swi version-onl.sh boot-config - $(ONL_V_at)rm -rf ./lib ./usr kernel-* initrd-amd64 $(ZTN_MANIFEST) *.swi version-onl.sh autoperms.sh - md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" - - -shar installer: installer - -clean: - rm -f *.swi *.installer $(notdir $(KERNELS)) initrd-amd64 diff --git a/builds/amd64/installer/legacy/builds/amd64-installer.sh b/builds/amd64/installer/legacy/builds/amd64-installer.sh deleted file mode 100644 index 5eac7de1..00000000 --- a/builds/amd64/installer/legacy/builds/amd64-installer.sh +++ /dev/null @@ -1,437 +0,0 @@ -#!/bin/sh -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# Open Network Linux Installation Script for AMD64. -# -# The purpose of this script is to automatically install Open Network Linux -# on the target system. -# -# This script is ONIE-compatible. -# -# This script is can be run under a manual boot of the Open Network Linux -# Loader as the execution environment for platforms that do not -# support ONIE. -# -############################################################ - -IARCH="x86_64" -ARCH=`uname -m` -if [ "$ARCH" != "$IARCH" ]; then - echo - echo "------------------------------------" - echo "Installer Architecture: $IARCH" - echo "Target Architecture: $ARCH" - echo - echo "This installer cannot be used on this" - echo "target." - echo - echo "------------------------------------" - sleep 5 - exit 1 -fi - - -############################################################ -# -# Installation utility functions -# -############################################################ - -CR=" -" - -PATH=$PATH:/sbin:/usr/sbin -DEV= -START_MB= - -visit_parted() -{ - local dev diskfn partfn rest - dev=$1; shift - diskfn=$1; shift - partfn=$1; shift - rest="$@" - - local ifs ifs2 dummy - ifs=$IFS; IFS=$CR - for line in `parted -m $dev unit mb print`; do - IFS=$ifs - - line=`echo "$line" | sed -e 's/[;]$//'` - - case "$line" in - /dev/*) - ifs2=$IFS; IFS=: - set dummy $line - IFS=$ifs2 - - local dev sz model lbsz pbsz typ modelname flags - shift - dev=$1; shift - sz=$1; shift - model=$1; shift - lbsz=$1; shift - pbsz=$1; shift - typ=$1; shift - modelname=$1; shift - flags=$1; shift - - eval $diskfn "$dev" "$sz" "$model" "$typ" "$flags" $rest || return 1 - - ;; - [0-9]:*) - ifs2=$IFS; IFS=: - set dummy $line - IFS=$ifs2 - - local part start end sz fs label flags - shift - part=$1; shift - start=$1; shift - end=$1; shift - sz=$1; shift - fs=$1; shift - label=$1; shift - flags=$label - - eval $partfn "$part" "$start" "$end" "$sz" "$fs" "$label" "$flags" $rest || return 1 - - ;; - - *) continue ;; - esac - - done - IFS=$ifs -} - -do_handle_disk() -{ - local dev sz model typ flags - dev=$1; shift - sz=$1; shift - model=$1; shift - typ=$1; shift - flags=$1; shift - - if test "$typ" != "gpt"; then - installer_say "*** invalid partition table: $typ" - return 1 - fi - - return 0 -} - -ONL_CONFIG_TARBALL=/tmp/onl_config.tgz -ONL_CONFIG_MOUNTPOINT=/mnt/onl_config_partition - -do_handle_partitions() -{ - local part start end sz fs label flags - part=$1; shift - start=$1; shift - end=$1; shift - sz=$1; shift - fs=$1; shift - label=$1; shift - flags=$1; shift - - installer_say "Examining $DEV part $part" - - case "$label" in - ONL-CONFIG) - installer_say "Preserving the contents of the existing ONL-CONFIG partition..." - rm -rf $ONL_CONFIG_MOUNTPOINT - mkdir -p $ONL_CONFIG_MOUNTPOINT - mount $DEV$part $ONL_CONFIG_MOUNTPOINT - tar -C $ONL_CONFIG_MOUNTPOINT -cvzf $ONL_CONFIG_TARBALL . - umount $ONL_CONFIG_MOUNTPOINT - parted $DEV rm $part || return 1 - ;; - ONIE-BOOT|GRUB-BOOT|*-DIAG) - installer_say "Partition $DEV$part: $label: Preserving..." - ;; - *) - installer_say "Partition $DEV$part: $label: Deleting..." - parted $DEV rm $part || return 1 - ;; - esac - - return 0 -} - -get_free_space() -{ - local free start - free=`parted -s $DEV unit mb p free | grep Free | tail -1` - echo $free | awk '{print $1}' | tr "MB" " " -} - -get_part_number() -{ - local dev name part - dev=$1; shift - name=$1; shift - part=$(parted -s $DEV unit mb p all | grep $name | awk {'print $1'}) - if [ -z "$part" ]; then - installer_say "Failed to discover the partition number for $name" - return 1 - else - echo $part - return 0 - fi - -} - -partition_gpt() -{ - local start end part - - start=$1; shift - - ############################################################ - # - # ONL Boot Partition. - # - ############################################################ - installer_say "Creating 128MB for ONL Boot partition..." - end=$(( $start + 128 )) - - parted -s $DEV unit mb mkpart "ONL-BOOT" ext4 ${start} ${end} || return 1 - if ! part=$(get_part_number $DEV "ONL-BOOT"); then - return 1 - fi - - parted -s $DEV set $part boot on || return 1 - mkfs.ext4 -L "ONL-BOOT" ${DEV}${part} - start=$(( $end + 1 )) - - - - ############################################################ - # - # ONL Configuration Partition. - # - ############################################################ - installer_say "Creating 128MB ONL Configuration partition..." - end=$(( $start + 128 )) - parted -s $DEV unit mb mkpart "ONL-CONFIG" ext4 ${start} ${end} || return 1 - if ! part=$(get_part_number $DEV "ONL-CONFIG"); then - return 1 - fi - mkfs.ext4 -L "ONL-CONFIG" ${DEV}${part} - start=$(( $end + 1 )) - - if [ -f $ONL_CONFIG_TARBALL ]; then - installer_say "Restoring the contents of the ONL-CONFIG partition..." - rm -rf $ONL_CONFIG_MOUNTPOINT - mkdir -p $ONL_CONFIG_MOUNTPOINT - mount $DEV$part $ONL_CONFIG_MOUNTPOINT - tar -C $ONL_CONFIG_MOUNTPOINT -xvzf $ONL_CONFIG_TARBALL - umount $ONL_CONFIG_MOUNTPOINT - fi - - ############################################################ - # - # ONL Image Partition. - # - ############################################################ - installer_say "Creating 1G ONL Image partition..." - end=$(( $start + 1024 )) - - parted -s $DEV unit mb mkpart "ONL-IMAGES" ext4 ${start} ${end} || return 1 - if ! part=$(get_part_number $DEV "ONL-IMAGES"); then - return 1 - fi - mkfs.ext4 -L "ONL-IMAGES" ${DEV}${part} - start=$(( $end + 1 )) - - - - ############################################################ - # - # ONL Root Partition. - # - ############################################################ - installer_say "Creating the ONL Data partition..." - parted -s $DEV unit mb mkpart "ONL-DATA" ext4 ${start} "100%" || return 1 - if ! part=$(get_part_number $DEV "ONL-DATA"); then - return 1 - fi - mkfs.ext4 -L "ONL-DATA" ${DEV}${part} - - return 0 -} - - -installer_standard_gpt_install() -{ - DEV=$1; shift - - if [ -z $DEV ]; then - # Install NOS to the same block device as ONIE image - DEV=$(blkid | grep ONIE-BOOT | awk '{print $1}' | sed -e 's/[1-9][0-9]*:.*$//' | sed -e 's/\([0-9]\)\(p\)/\1/' | head -n 1) - [ -b "$DEV" ] || { - echo "Error: Unable to determine the block device to install NOS" - exit 1 - } - fi - - visit_parted $DEV do_handle_disk do_handle_partitions || return 1 - partition_gpt $(get_free_space) || return 1 - - installer_say "Installing boot files..." - mkdir "$workdir/mnt" - - if [ -f "${installer_dir}/boot-config" ]; then - installer_say "Installing boot-config..." - mount LABEL="ONL-BOOT" "$workdir/mnt" - cp "${installer_dir}/boot-config" "$workdir/mnt/boot-config" - umount "$workdir/mnt" - fi - - SWISRC=`ls ${installer_dir}/*.swi` - - if test -f "${SWISRC}"; then - if test ! "${SWIDST}"; then - SWIDST="$(basename ${SWISRC})" - fi - installer_say "Installing Open Network Linux Software Image (${SWIDST})..." - mount LABEL="ONL-IMAGES" "$workdir/mnt" - cp "${SWISRC}" "$workdir/mnt/${SWIDST}" - umount "$workdir/mnt" - fi - - installer_say "Installing kernels" - mount LABEL=ONL-BOOT -t ext4 "$workdir/mnt" - echo ${installer_dir} - cp ${installer_dir}/kernel-* "$workdir/mnt/" - cp "${installer_dir}/initrd-amd64" "$workdir/mnt/." - mkdir "$workdir/mnt/grub" - cp "${installer_platform_dir}/onl/boot/grub.cfg" "$workdir/mnt/grub/grub.cfg" - - installer_say "Installing GRUB" - grub-install --boot-directory="$workdir/mnt" $DEV - - # leave the GRUB directory mounted, - # so we can manipulate the GRUB environment - BOOTDIR="$workdir/mnt" - - return 0 -} - -set -e -cd $(dirname $0) - -installer_script=${0##*/} -installer_zip=$1 - -BOOTDIR=/mnt/onie-boot -# initial boot partition (onie) - -# Pickup ONIE defines for this machine. -if test -r /etc/machine.conf; then . /etc/machine.conf; fi - -# -# Installation environment setup. -# -if test "${onie_platform}"; then - : -else - echo "Missing onie_platform (invalid /etc/machine.conf)" 1>&2 - exit 1 -fi - -# Running under ONIE, most likely in the background in installer mode. -# Our messages have to be sent to the console directly, not to stdout. -installer_say() -{ - echo "$@" > /dev/console -} - -workdir=$(mktemp -d -t install-XXXXXX) - -# Installation failure message. -do_cleanup() -{ - installer_say "Install failed." - cat /var/log/onie.log > /dev/console - installer_say "Install failed. See log messages above for details" - - grep "$workdir" /proc/mounts | cut -d' ' -f2 | sort -r | xargs -r -n 1 umount - cd /tmp - rm -fr "$workdir" - - sleep 3 - #reboot -} - -trap "do_cleanup" 0 1 - -if test -z "${installer_platform}"; then - # Our platform identifiers are equal to the ONIE platform identifiers without underscores: - installer_platform=`echo ${onie_platform} | tr "_" "-"` - installer_arch=${onie_arch} -fi -installer_say "Open Network Linux installer running under ONIE." - -# -# Remount tmpfs larger if possible. -# We will be doing all of our work out of /tmp -# -mount -o remount,size=1024M /tmp || true - -# Unpack our distribution -installer_say "Unpacking Open Network Linux installer files..." -installer_dir=`pwd` -if test "$SFX_PAD"; then - # ha ha, busybox cannot exclude multiple files - unzip $installer_zip -x $SFX_PAD -elif test "$SFX_UNZIP"; then - unzip $installer_zip -x $installer_script -else - dd if=$installer_zip bs=$SFX_BLOCKSIZE skip=$SFX_BLOCKS \ - | unzip - -x $installer_script -fi - -if [ -f "${installer_dir}/versions.sh" ]; then - . "${installer_dir}/versions.sh" - installer_say "${VERSION_STRING} Installer" -fi - -installer_say "Detected platform: ${installer_platform}" - -# Look for the platform installer directory. -installer_platform_dir="${installer_dir}/lib/platform-config/${installer_platform}" -if test -d "${installer_platform_dir}"; then - # Source the installer scriptlet - . "${installer_platform_dir}/onl/install/${installer_platform}.sh" -else - installer_say "This installer does not support the ${installer_platform} platform." - installer_say "Available platforms are:" - list=`ls "${installer_dir}/lib/platform-config"` - installer_say "${list}" - installer_say "Installation cannot continue." - exit 1 -fi - -# The platform script must provide this function. This performs the actual install for the platform. -platform_installer - -trap - 0 1 -installer_say "Install finished. Rebooting to Open Network Linux." -sleep 3 -#reboot - -exit - -# Do not add any additional whitespace after this point. -PAYLOAD_FOLLOWS diff --git a/builds/amd64/installer/legacy/builds/boot-config b/builds/amd64/installer/legacy/builds/boot-config deleted file mode 100644 index 40fb0d31..00000000 --- a/builds/amd64/installer/legacy/builds/boot-config +++ /dev/null @@ -1,4 +0,0 @@ -NETDEV=ma1 -NETAUTO=dhcp -BOOTMODE=SWI -SWI=images::latest diff --git a/builds/any/installer/grub/builds/Makefile b/builds/any/installer/grub/builds/Makefile index e2ba124d..946fdfb0 100644 --- a/builds/any/installer/grub/builds/Makefile +++ b/builds/any/installer/grub/builds/Makefile @@ -6,92 +6,12 @@ ifndef BOOTMODE $(error $$BOOTMODE not set) endif -ONLPLATFORM = python $(ONL)/tools/onlplatform.py -PLATFORMS := $(shell $(ONLPM) --platform-manifest onl-loader-initrd:$(ARCH)) - -MKSHAR = $(ONL)/tools/mkshar -MKSHAR_OPTS = --lazy --unzip-pad --fixup-perms autoperms.sh -MKSHAR_PERMS = autoperms.sh - # Hardcoded to match ONL File naming conventions. include $(ONL)/make/versions/version-onl.mk INSTALLER_NAME=$(FNAME_PRODUCT_VERSION)_ONL-OS_$(FNAME_BUILD_ID)_$(UARCH)_$(BOOTMODE)_INSTALLER -ifeq ($(ARCH), amd64) -INSTALLER_ARCH = x86_64 -else -INSTALLER_ARCH = $(ARCH) -endif - -__installer: __installer_platform_files __installer_swi_files - $(ONL_V_at)rm -rf *INSTALLER* *.md5sum - $(ONL_V_at)cp /dev/null installer.sh - $(ONL_V_at): ;\ - set -e ;\ - if $(ONL_V_P); then set -x; fi ;\ - set dummy *.cpio.gz; initrd="$$2" ;\ - sed \ - -e 's^@ONLVERSION@^$(VERSION_STRING)^g' \ - -e "s^@INITRD_ARCHIVE@^$$initrd^g" \ - -e 's^@INITRD_OFFSET@^^g' \ - -e 's^@INITRD_SIZE@^^g' \ - -e 's^@ARCH@^$(INSTALLER_ARCH)^g' \ - $(ONL)/builds/any/installer/installer.sh.in \ - >> installer.sh - $(ONL_V_at)echo "PAYLOAD_FOLLOWS" >> installer.sh - $(ONL_V_at)cp /dev/null $(MKSHAR_PERMS) - $(ONL_V_at)cp $(ONL)/make/versions/version-onl.sh . - $(ONL_V_at)echo "#!/bin/sh" >> $(MKSHAR_PERMS) - $(ONL_V_at)echo "set -e" >> $(MKSHAR_PERMS) - $(ONL_V_at)echo "set -x" >> $(MKSHAR_PERMS) - $(MKSHAR) $(MKSHAR_OPTS) "$(INSTALLER_NAME)" $(ONL)/tools/scripts/sfx.sh.in installer.sh kernel-* onl-loader-initrd-* *.swi version-onl.sh boot-config - $(ONL_V_at)rm -rf installer.sh kernel-* onl-loader-initrd-* $(ZTN_MANIFEST) *.swi version-onl.sh autoperms.sh +__installer: + $(ONL)/tools/mkinstaller.py --arch $(ARCH) --boot-config boot-config --initrd onl-loader-initrd:$(ARCH) onl-loader-initrd-$(ARCH).cpio.gz --swi onl-swi:$(ARCH) --out $(INSTALLER_NAME) md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" -__installer_platform_files: - $(ONL_V_GEN): ;\ - set -e ;\ - if $(ONL_V_P); then set -x; fi ;\ - l="$(PLATFORMS)"; for p in $$l; do \ - src=$$($(ONLPLATFORM) $$p $(ARCH) kernel 2>/dev/null) || : ;\ - if test "$$src"; then \ - dst=$${src##*/} ;\ - if test "$dst" -ot Makefile; then \ - : ;\ - else \ - echo "Staging $$dst for $$p" ;\ - cp "$$src" "$$dst" ;\ - fi ;\ - fi ;\ - src=$$($(ONLPLATFORM) $$p $(ARCH) initrd 2>/dev/null) || : ;\ - if test "$$src"; then \ - dst=$${src##*/} ;\ - if test "$dst" -ot Makefile; then \ - : ;\ - else \ - echo "Staging $$dst for $$p" ;\ - cp "$$src" "$$dst" ;\ - fi ;\ - fi ;\ - done ;\ - : -ifndef NO_SWI -__installer_swi_files: - $(ONL_V_GEN): ;\ - set -e ;\ - if $(ONL_V_P); then set -x; fi ;\ - swidir=$$(mktemp -d $(PWD)/swi-d-XXXXXX) ;\ - $(ONLPM) --extract-dir onl-swi:$(ARCH) $$swidir ;\ - mv $$swidir/usr/share/onl/packages/$(ARCH)/onl-swi/*.swi . ;\ - rm -fr $$swidir ;\ - : -else -__installer_swi_files: - $(ONL_V_GEN): -endif - -shar installer: installer - -clean: - rm -f *.swi *.installer $(notdir $(KERNELS)) *initrd*.cpio.gz diff --git a/builds/any/installer/installer.sh.in b/builds/any/installer/installer.sh.in index 7982c5a1..e2dbd86e 100644 --- a/builds/any/installer/installer.sh.in +++ b/builds/any/installer/installer.sh.in @@ -9,16 +9,7 @@ # ############################################################ # -# SwitchLight Installation Script for PPC. -# -# The purpose of this script is to automatically install SwitchLight -# on the target system. -# -# This script is ONIE-compatible. -# -# This script is can be run under a manual boot of the SwitchLight -# Loader as the execution environment for platforms that do not -# support ONIE. +# Open Network Linux Installation Script # ############################################################ @@ -160,7 +151,7 @@ visit_proc_mounts() { local ifs line dummy fn rest sts fn=$1; shift rest="$@" - + ifs=$IFS; IFS=$CR for line in $(cat /proc/mounts); do IFS=$ifs diff --git a/builds/any/installer/legacy/APKG.yml b/builds/any/installer/legacy/APKG.yml deleted file mode 100644 index 26106bd6..00000000 --- a/builds/any/installer/legacy/APKG.yml +++ /dev/null @@ -1,27 +0,0 @@ -variables: - !include $ONL/make/versions/version-onl.yml - -prerequisites: - broken: true - packages: [ "onl-swi:$ARCH" ] - -common: - arch: $ARCH - version: $FNAME_RELEASE_ID - copyright: Copyright 2013, 2014, 2015 Big Switch Networks - maintainer: support@bigswitch.com - -packages: - - name: onl-legacy-installer - summary: Open Network Linux $ARCH Legacy Installer - - files: - builds/*INSTALLER : $$PKG_INSTALL/ - builds/*.md5sum : $$PKG_INSTALL/ - - changelog: Change changes changes., - - -release: - - builds/*INSTALLER : $ARCH/ - - builds/*.md5sum : $ARCH/ diff --git a/builds/any/installer/legacy/fit/builds/Makefile b/builds/any/installer/legacy/fit/builds/Makefile deleted file mode 100644 index 7052ebab..00000000 --- a/builds/any/installer/legacy/fit/builds/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -ifndef ARCH -$(error $$ARCH not set) -endif - -THISDIR := $(dir $(lastword $(MAKEFILE_LIST))) - -# Hardcoded to match ONL File naming conventions. -include $(ONL)/make/versions/version-onl.mk -INSTALLER_NAME=$(FNAME_PRODUCT_VERSION)_ONL-OS_$(FNAME_BUILD_ID)_$(UARCH)_LEGACY_INSTALLER - -FIT_IMAGE_ALL := $(shell $(ONLPM) --find-file onl-loader-fit:$(ARCH) onl-loader-fit.itb) - -# Fixme -- should come from the FIT manifest, not the initrd manifest -PLATFORMS := $(shell $(ONLPM) --platform-manifest onl-loader-initrd:$(ARCH)) - -MKSHAR = $(ONL)/tools/mkshar -MKSHAR_OPTS = --lazy --unzip-pad -MKSHAR_PERMS = autoperms.sh - -__installer: - $(ONL_V_at)rm -rf *INSTALLER* *.md5sum - $(ONL_V_at)cp $(FIT_IMAGE_ALL) . - $(foreach p,$(PLATFORMS), $(ONLPM) --extract-dir onl-platform-config-$(p):$(ARCH) .;) - # Fixme -ifndef NO_SWI - $(ONLPM) --extract-dir onl-swi:$(ARCH) . - mv ./usr/share/onl/packages/$(ARCH)/onl-swi/*.swi . -endif - rm -rf ./usr - $(ONL_V_at)cp /dev/null $(MKSHAR_PERMS) - $(ONL_V_at) cp $(ONL)/make/versions/version-onl.sh . - $(ONL_V_at)echo "#!/bin/sh" >> $(MKSHAR_PERMS) - $(ONL_V_at)echo "set -e" >> $(MKSHAR_PERMS) - $(ONL_V_at)echo "set -x" >> $(MKSHAR_PERMS) - $(ONL_V_at)sed s/@@IARCH@@/$(ARCH)/g $(THISDIR)/fit-installer.sh > fit-installer.sh - $(ONL_V_at)sed s/@@IARCH@@/$(ARCH)/g $(THISDIR)/fit-install-lib > fit-install-lib - $(ONL_V_at)cp $(THISDIR)/boot-config . - $(MKSHAR) $(MKSHAR_OPTS) "$(INSTALLER_NAME)" $(ONL)/tools/scripts/sfx.sh.in fit-installer.sh fit-install-lib *.itb lib *.swi version-onl.sh boot-config $(INSTALLER_EXTRA_FILES) - $(ONL_V_at)rm -rf ./lib *.swi version-onl.sh autoperms.sh *.itb - md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" - - -shar installer: __installer diff --git a/builds/any/installer/legacy/fit/builds/boot-config b/builds/any/installer/legacy/fit/builds/boot-config deleted file mode 100644 index 40fb0d31..00000000 --- a/builds/any/installer/legacy/fit/builds/boot-config +++ /dev/null @@ -1,4 +0,0 @@ -NETDEV=ma1 -NETAUTO=dhcp -BOOTMODE=SWI -SWI=images::latest diff --git a/builds/any/installer/legacy/fit/builds/fit-install-lib b/builds/any/installer/legacy/fit/builds/fit-install-lib deleted file mode 100644 index 172d2352..00000000 --- a/builds/any/installer/legacy/fit/builds/fit-install-lib +++ /dev/null @@ -1,412 +0,0 @@ -# -*- sh -*- -###################################################################### -# -# lib.sh -# -# Common files for install/recovery -# -###################################################################### - -############################################################ -# -# Installation Utility Functions -# -############################################################ - -case "`/usr/sbin/fw_setenv --help 2>&1`" in - *"-f"*"Force update"*) - fw_setenv_dash_f="-f" - ;; -esac - -fw_setenv_f_s() { - local f - f=$1; shift - - /usr/sbin/fw_setenv ${fw_setenv_dash_f} -s "$f" -} - -############################################################ -# -# installer_create_device_file -# The block device name -# The partition number. -# -# Set the global variable 'installer_df' with the name of -# the created device file. -# -# We can't always rely on the existance of a partition's -# device file after the device has been formatted. -# -# This function creates the appropriate device file -# for a given block partition to avoid this problem. -# -# - -installer_create_device_file() { - local blockdev=$1 - local partno=$2 - - # Determine the device major number for the given block device: - local major=`ls -l /dev/${blockdev} | tr "," " " | awk '{print $5}'` - - # Create a new device file matching the given partition - installer_df=$(mktemp) - rm ${installer_df} - mknod "${installer_df}" b "${major}" "${partno}" -} - -############################################################ -# -# installer_partition_cp -# -# The block device name -# The partition number -# The local source filename -# The destination filename -# -# Copy the source file to the given partition. -# The partition must be formatted/mountable. -# -############################################################ - -installer_partition_cp() { - local blockdev=$1 - local partno=$2 - local src=$3 - local dst=$4 - - installer_create_device_file ${blockdev} ${partno} - mkdir -p "${installer_df}.mount" - mount "${installer_df}" "${installer_df}.mount" - cp "${src}" "${installer_df}.mount/${dst}" - umount "${installer_df}.mount" - rm "${installer_df}" - rmdir "${installer_df}.mount" -} - - -############################################################ -# -# installer_partition_dd -# -# The block device name -# The partition number. -# The source file. -# -# 'dd' the contents of the src file directly to the given partition. -# -############################################################ - -installer_partition_dd() { - local blockdev=$1 - local partno=$2 - local src=$3 - - # installer_partition_dd - installer_create_device_file ${blockdev} ${partno} - dd if=${src} of="${installer_df}" bs=1024 - rm "${installer_df}" -} - -############################################################ -# -# installer_partition_format -# -# The block device name. -# The partition number. -# The formatting tool. -# -############################################################ - -installer_partition_format() { - local blockdev=$1 - local partno=$2 - local mkfs=$3 - local options=$4 - local partition="$1$2" - - installer_say "Format ${partition}..." - installer_create_device_file ${blockdev} ${partno} - "${mkfs}" ${options} "${installer_df}" - installer_say "Format ${partition} complete." - rm "${installer_df}" -} - -############################################################ -# -# installer_umount_blockdev -# -# The block device name. -# -# Unmount all partitions of the given blockdevice. -# -# Required to avoid errors when repartitioning block -# devices that are currently mounted. -# -############################################################ - -installer_umount_blockdev() { - local blockdev=$1 - local mounts=`cat /proc/mounts | grep ${blockdev} | awk '{print $2}'` - if [ "$mounts" ]; then - umount $mounts || : - fi -} - - -############################################################ -# -# installer_blockdev_format -# -# The block device name. -# The size of the boot partition. -# The size of the config partition. -# The size of the image partition. -# [Optional] The size of the data partition. -# If p4size is unset, the remainder of the device will be used -# for the data partition. -# -############################################################ -ONL_CONFIG_TARBALL=/tmp/onl_config.tgz -ONL_CONFIG_MOUNTPOINT=/mnt/onl_config_partition - -installer_blockdev_format() { - local blockdev=$1 - local partition1size=$2 - local partition2size=$3 - local partition3size=$4 - local partition4size=$5 - - if [ -n "$ONL_BOOT_SIZE" ]; then - echo "Using ONL_BOOT_SIZE override ($ONL_BOOT_SIZE)" - partition1size=$ONL_BOOT_SIZE - fi - - - - onl_config_partition=$(blkid | grep ONL-CONFIG | awk '{print $1}' | tr -d ':') - - # - # If an ONL-CONFIG partition exists, we need to save and restore its contents. - # - if [ -n "$onl_config_partition" ]; then - installer_say "Preserving the contents of the existing ONL-CONFIG partition..." - rm -rf $ONL_CONFIG_MOUNTPOINT - mkdir -p $ONL_CONFIG_MOUNTPOINT - echo mount "$onl_config_partition" $ONL_CONFIG_MOUNTPOINT - mount "$onl_config_partition" $ONL_CONFIG_MOUNTPOINT - tar -C $ONL_CONFIG_MOUNTPOINT -cvzf $ONL_CONFIG_TARBALL . - umount $ONL_CONFIG_MOUNTPOINT - fi - - - - installer_umount_blockdev ${blockdev} - installer_say "Formatting ${blockdev} as ${partition1size}:${partition2size}:${partition3size}:${partition4size}." - echo -e "o\nn\np\n1\n\n+${partition1size}\nn\np\n2\n\n+${partition2size}\nn\np\n3\n\n+${partition3size}\nn\np\n4\n\n${partition4size}\np\nw\n" | fdisk /dev/${blockdev} - - - _mkfs="mkfs.ext2" - _archtools="${installer_dir}/`uname -m`" - if [ -f "${_archtools}/mkfs.ext2" ]; then - chmod a+x ${_archtools}/* - echo "Using installer archtools mkfs.ext2..." - _mkfs="${_archtools}/mkfs.ext2" - ls -l "${_archtools}" - fi - - installer_partition_format ${blockdev} 1 $_mkfs "-L ONL-BOOT" - installer_partition_format ${blockdev} 2 $_mkfs "-L ONL-CONFIG" - installer_partition_format ${blockdev} 3 $_mkfs "-L ONL-IMAGES" - installer_partition_format ${blockdev} 4 $_mkfs "-L ONL-DATA" - - if [ -f $ONL_CONFIG_TARBALL ]; then - installer_say "Restoring the contents of the existing ONL-CONFIG partition..." - installer_create_device_file ${blockdev} 2 - mkdir -p "${installer_df}.mount" - mount "${installer_df}" "${installer_df}.mount" - tar -C "${installer_df}.mount" -xvzf $ONL_CONFIG_TARBALL - umount "${installer_df}.mount" - rm "${installer_df}" - rmdir "${installer_df}.mount" - rm $ONL_CONFIG_TARBALL - fi -} - -############################################################ -# -# installer_platform_loader -# -# The block device name. -# The partition number. -# -# Install the platform loader to the given partition. -# -# The default is to copy the loader to the partition's filesystem. -# If 'platform_loader_raw' is specified by the platform, the -# loader will be written directly to the partition instead. -# -############################################################ -installer_platform_loader() { - local blockdev=$1 - local partno=$2 - - - if [ -f "${installer_dir}/${installer_platform}.itb" ]; then - # - # Platform-specfic FIT Image already provided. - # - local loader="${installer_dir}/${installer_platform}.itb" - - elif [ -f "${installer_dir}/onl-loader-fit.itb" ]; then - # - # Common FIT image. - # - local loader="${installer_dir}/onl-loader-fit.itb"; - else - installer_say "There is not FIT image available in the installer. This is a bug." - exit 1 - fi - - # - # Cannonical name for all ITB files for each platform - # is .itb. - # - # This allows you to use the ONL platform configuration settings - # with your own initrd with constant and consistent naming. - # - loaderdst="${installer_platform}.itb" - - installer_say "Installing the Open Network Linux Loader..." - - if [ "${platform_loader_raw}" ]; then - installer_partition_dd ${blockdev} ${partno} ${loader} - else - installer_partition_cp ${blockdev} ${partno} ${loader} ${loaderdst} - fi -} - -############################################################ -# -# installer_platform_bootconfig -# -# The block device name. -# The partition number. -# -# Generate and write the platform boot-config file -# into the given partition. -# -############################################################ - -installer_platform_bootconfig() { - local blockdev=$1 - local partno=$2 - - # - # Is there a static boot-config in the installer package? - # - if [ -f "${installer_dir}/boot-config" ]; then - installer_say "Writing boot-config." - installer_partition_cp ${blockdev} ${partno} "${installer_dir}/boot-config" - fi - - # - # Unless the installer contains a boot-config - # file it will have to be generated by the first-boot - # script in the Loader. - # - -} - -############################################################ -# -# installer_platform_swi -# -# The block device name. -# The partition number. -# -# Install the SWI to the given partition. -# -############################################################ - -installer_platform_swi() { - local blockdev=$1 - local partno=$2 - - SWISRC=`ls ${installer_dir}/*.swi` - - if [ -f "${SWISRC}" ]; then - if [ ! ${SWIDST} ]; then - SWIDST="$(basename ${SWISRC})" - fi - installer_say "Installing Open Network Linux Software Image (${SWIDST})..." - installer_partition_cp ${blockdev} ${partno} ${SWISRC} ${SWIDST} - else - installer_say "No Open Network Linux Software Image available for installation. Post-install ZTN installation will be required." - fi -} - -############################################################ -# -# installer_standard_blockdev_install -# -# The block device name. -# The size of the loader partition. -# The size of the /mnt/flash partition. -# The size of the /mnt/flash2 partition. -# -# Performs a standard installation for the platform. -# Most platform installers will just call this function with the appropriate arguments. -# -############################################################ -installer_standard_blockdev_install () { - local blockdev=$1 - local p1size=$2 - local p2size=$3 - local p3size=$4 - local p4size=$5 - - # Standard 3-partition format for loader, /mnt/flash, and /mnt/flash2 - installer_blockdev_format "${blockdev}" "${p1size}" "${p2size}" "${p3size}" "${p4size}" - - # Copy the platform loader to the first partition. - installer_platform_loader "${blockdev}" 1 - - # Set the boot-config file - installer_platform_bootconfig "${blockdev}" 1 - - # Copy the packaged SWI to the third partition. - installer_platform_swi "${blockdev}" 3 - - sync - installer_umount_blockdev "${blockdev}" -} - -############################################################ -# -# installer_standard_blockdev_install -# -# The block device name. -# -# Performs a standard recovery for the platform. -# -############################################################ -installer_standard_blockdev_recovery() { - local blockdev=$1 - - # Standard 3-partition format for loader, /mnt/flash, and /mnt/flash2 - installer_umount_blockdev ${blockdev} - installer_say "Re-formatting ${blockdev}." - installer_partition_format ${blockdev} 2 mkdosfs - installer_partition_format ${blockdev} 3 mkdosfs - - sync - installer_umount_blockdev "${blockdev}" -} - -############################## -# -# End of lib.sh -# -############################## diff --git a/builds/any/installer/legacy/fit/builds/fit-installer.sh b/builds/any/installer/legacy/fit/builds/fit-installer.sh deleted file mode 100644 index fa1f31c8..00000000 --- a/builds/any/installer/legacy/fit/builds/fit-installer.sh +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/sh - -IARCH=@@IARCH@@ - -# Convert build architecture to local architecture -case $IARCH in - powerpc) - IARCH=ppc - ;; - armel) - IARCH=armv7l - ;; - *) - ;; -esac - -ARCH=`uname -m` -if [ "$ARCH" != "$IARCH" ]; then - echo - echo "------------------------------------" - echo "Installer Architecture: $IARCH" - echo "Target Architecture: $ARCH" - echo - echo "This installer cannot be used on this" - echo "target." - echo - echo "------------------------------------" - sleep 5 - exit 1 -fi - -set -e -cd $(dirname $0) - - -installer_script=${0##*/} -installer_zip=$1 - -if [ -f /etc/machine.conf ]; then - . /etc/machine.conf - - # Running under ONIE, most likely in the background in installer mode. - # Our messages have to be sent to the console directly, not to stdout. - installer_say() { - echo "$@" > /dev/console - } - # Installation failure message. - trap 'installer_say "Install failed.; cat /var/log/onie.log > /dev/console; installer_say "Install failed. See log messages above for details"; sleep 3; reboot' EXIT - - if [ -z "${installer_platform}" ]; then - # Our platform identifiers are equal to the ONIE platform identifiers without underscores: - installer_platform=`echo ${onie_platform} | tr "_" "-"` - installer_arch=${onie_arch} - fi -fi - -# -# Remount tmpfs larger if possible. -# We will be doing all of our work out of /tmp -# -mount -o remount,size=1024M /tmp || true - - -# Unpack our distribution -installer_say "Unpacking Open Network Linux installer files..." -installer_dir=`pwd` -if test "$SFX_PAD"; then - # ha ha, busybox cannot exclude multiple files - unzip $installer_zip -x $SFX_PAD -elif test "$SFX_UNZIP"; then - unzip $installer_zip -x $installer_script -else - dd if=$installer_zip bs=$SFX_BLOCKSIZE skip=$SFX_BLOCKS \ - | unzip - -x $installer_script -fi - - -if [ -f "${installer_dir}/versions.sh" ]; then - . "${installer_dir}/versions.sh" - installer_say "${VERSION_STRING} Installer" -fi - -installer_say "Detected platform: ${installer_platform}" - -. "${installer_dir}/fit-install-lib" - -# Look for the platform installer directory. -installer_platform_dir="${installer_dir}/lib/platform-config/${installer_platform}" -if [ -d "${installer_platform_dir}" ]; then - # Source the installer scriptlet - ONL_PLATFORM=${installer_platform} - . "${installer_platform_dir}/onl/install/${installer_platform}.sh" -else - installer_say "This installer does not support the ${installer_platform} platform." - installer_say "Available platforms are:" - list=`ls ${installer_dir}/lib/platform-config` - installer_say "${list}" - installer_say "Installation cannot continue." - exit 1 -fi - -# The platform script must provide this function. This performs the actual install for the platform. -platform_installer - -installer_say "Configuring system to boot Open Network Linux..." -envf=/tmp/.env -cp /dev/null "${envf}" -echo "nos_bootcmd ${platform_bootcmd}" >> "${envf}" -fw_setenv_f_s "${envf}" -installer_say "Install finished. Rebooting to Open Network Linux." -sleep 3 -reboot -exit 0 - -# Do not add any additional whitespace after this point. -PAYLOAD_FOLLOWS diff --git a/builds/any/installer/uboot/builds/Makefile b/builds/any/installer/uboot/builds/Makefile index 0ee7fc39..2236fbde 100644 --- a/builds/any/installer/uboot/builds/Makefile +++ b/builds/any/installer/uboot/builds/Makefile @@ -6,109 +6,12 @@ ifndef BOOTMODE $(error $$BOOTMODE not set) endif -ONLPLATFORM = python $(ONL)/tools/onlplatform.py -PLATFORMS := $(shell $(ONLPM) --platform-manifest onl-loader-initrd:$(ARCH)) - -MKSHAR = $(ONL)/tools/mkshar -MKSHAR_OPTS = --lazy --unzip-pad --fixup-perms autoperms.sh -MKSHAR_PERMS = autoperms.sh - -VONLDIR = $(ONL)/packages/base/all/vendor-config-onl -PYFIT = $(VONLDIR)/src/bin/pyfit -PYFIT_ENVIRONMENT = PYTHONPATH=$(VONLDIR)/src/python - # Hardcoded to match ONL File naming conventions. include $(ONL)/make/versions/version-onl.mk INSTALLER_NAME=$(FNAME_PRODUCT_VERSION)_ONL-OS_$(FNAME_BUILD_ID)_$(UARCH)_$(BOOTMODE)_INSTALLER -# default fit image can be used as the canonical location for the initrd -FIT_IMAGE_ALL := $(shell $(ONLPM) --find-file onl-loader-fit:$(ARCH) onl-loader-fit.itb) -INITRD := $(shell $(ONLPM) --find-file onl-loader-initrd:$(ARCH) onl-loader-initrd-$(ARCH).cpio.gz) -INITRD_BOUNDS := $(shell $(PYFIT_ENVIRONMENT) $(PYFIT) -v offset $(FIT_IMAGE_ALL) --initrd) +__installer: + $(ONL)/tools/mkinstaller.py --arch $(ARCH) --boot-config boot-config --fit onl-loader-fit:$(ARCH) onl-loader-fit.itb --swi onl-swi:$(ARCH) --out $(INSTALLER_NAME) + md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" -__installer: installer.sh __installer_fit_files __installer_platform_files __installer_swi_files - $(ONL_V_at)rm -rf *INSTALLER* *.md5sum - $(ONL_V_at)cp /dev/null $(MKSHAR_PERMS) - $(ONL_V_at)cp $(ONL)/make/versions/version-onl.sh . - $(ONL_V_at)echo "#!/bin/sh" >> $(MKSHAR_PERMS) - $(ONL_V_at)echo "set -e" >> $(MKSHAR_PERMS) - $(ONL_V_at)echo "set -x" >> $(MKSHAR_PERMS) - $(MKSHAR) $(MKSHAR_OPTS) "$(INSTALLER_NAME)" $(ONL)/tools/scripts/sfx.sh.in installer.sh *.swi *.itb version-onl.sh boot-config - $(ONL_V_at)rm -rf installer.sh *.itb *.swi version-onl.sh autoperms.sh - $(ONL_V_at)md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" -installer.sh: Makefile $(ONL)/builds/any/installer/installer.sh.in - $(ONL_V_GEN)cp /dev/null $@ - $(ONL_V_at): ;\ - set -e ;\ - if $(ONL_V_P); then set -x; fi ;\ - if test "$(INITRD_BOUNDS)"; then \ - a="$(FIT_IMAGE_ALL)"; a=$${a##*/} ;\ - else \ - a="$(INITRD)"; i=$${a##*/} ;\ - fi ;\ - set dummy $(INITRD_BOUNDS); start=$$2; end=$$3; sz=$$(($$end - $$start + 1)) ;\ - sed \ - -e 's^@ONLVERSION@^$(VERSION_STRING)^g' \ - -e "s^@INITRD_ARCHIVE@^$${a}^g" \ - -e "s^@INITRD_OFFSET@^$$start^g" \ - -e "s^@INITRD_SIZE@^$$sz^g" \ - -e 's^@ARCH@^$(ARCH)^g' \ - $(ONL)/builds/any/installer/installer.sh.in \ - >> $@ - $(ONL_V_at)echo "PAYLOAD_FOLLOWS" >> $@ - -__installer_fit_files: - $(ONL_V_GEN): ;\ - set -e ;\ - if $(ONL_V_P); then set -x; fi ;\ - src=$(FIT_IMAGE_ALL) ;\ - dst=$${src##*/} ;\ - if test "$$dst" -nt Makefile; then \ - : ;\ - else \ - echo "Staging $$dst" ;\ - cp $$src $$dst ;\ - fi ;\ - : - -############################## -# -# optionally include custom itb files for each platform -# -############################## - -__installer_platform_files: - $(ONL_V_GEN): ;\ - set -e ;\ - if $(ONL_V_P); then set -x; fi ;\ - l="$(PLATFORMS)"; for p in $$l; do \ - echo "Looking for an ITB specific to $$p, ignore errors..." ;\ - src=$$($(ONLPLATFORM) $$p $(ARCH) itb) 2>/dev/null || : ;\ - if test "$$src"; then :; else continue; fi ;\ - dst=$${src##*/} ;\ - echo "Found $$dst" ;\ - if test "$$dst" -nt Makefile; then continue; fi ;\ - echo "Staging $$dst for $$p" ;\ - cp "$$src" "$$dst" ;\ - done ;\ - : - -__installer_swi_files: -ifndef NO_SWI - $(ONL_V_GEN): ;\ - set -e ;\ - if $(ONL_V_P); then set -x; fi ;\ - swidir=$$(mktemp -d $(PWD)/swi-d-XXXXXX) ;\ - $(ONLPM) --extract-dir onl-swi:$(ARCH) $$swidir ;\ - mv $$swidir/usr/share/onl/packages/$(ARCH)/onl-swi/*.swi . ;\ - rm -fr $$swidir ;\ - : -else - $(ONL_V_GEN): -endif - -shar installer: installer - -clean: - rm -f *.swi *.installer *.cpio.gz diff --git a/builds/any/rootfs/jessie/common/common-packages.yml b/builds/any/rootfs/jessie/common/all-base-packages.yml similarity index 99% rename from builds/any/rootfs/jessie/common/common-packages.yml rename to builds/any/rootfs/jessie/common/all-base-packages.yml index d41477b4..a43d1da1 100644 --- a/builds/any/rootfs/jessie/common/common-packages.yml +++ b/builds/any/rootfs/jessie/common/all-base-packages.yml @@ -75,3 +75,4 @@ - unzip - onl-mibs - openssl +- gdb diff --git a/builds/any/rootfs/jessie/common/amd64-packages.yml b/builds/any/rootfs/jessie/common/amd64-base-packages.yml similarity index 100% rename from builds/any/rootfs/jessie/common/amd64-packages.yml rename to builds/any/rootfs/jessie/common/amd64-base-packages.yml diff --git a/builds/any/rootfs/jessie/common/amd64-onl-packages.yml b/builds/any/rootfs/jessie/common/amd64-onl-packages.yml new file mode 100644 index 00000000..984f2fc3 --- /dev/null +++ b/builds/any/rootfs/jessie/common/amd64-onl-packages.yml @@ -0,0 +1,11 @@ +############################################################ +# +# These packages are specific to the ONL root filesystem build. +# +############################################################ +- onl-upgrade + + + + + diff --git a/builds/any/rootfs/jessie/common/armel-base-packages.yml b/builds/any/rootfs/jessie/common/armel-base-packages.yml new file mode 100644 index 00000000..71c41a67 --- /dev/null +++ b/builds/any/rootfs/jessie/common/armel-base-packages.yml @@ -0,0 +1 @@ +- u-boot-tools diff --git a/builds/any/rootfs/jessie/common/armel-onl-packages.yml b/builds/any/rootfs/jessie/common/armel-onl-packages.yml new file mode 100644 index 00000000..e58df638 --- /dev/null +++ b/builds/any/rootfs/jessie/common/armel-onl-packages.yml @@ -0,0 +1,9 @@ +############################################################ +# +# These packages are specific to the ONL root filesystem build. +# +############################################################ +- onl-loader-fit + + + diff --git a/builds/any/rootfs/jessie/common/armel-packages.yml b/builds/any/rootfs/jessie/common/armel-packages.yml deleted file mode 100644 index edd63d6f..00000000 --- a/builds/any/rootfs/jessie/common/armel-packages.yml +++ /dev/null @@ -1,2 +0,0 @@ -- u-boot-tools -- onl-loader-fit diff --git a/builds/any/rootfs/jessie/common/overlay/etc/init.d/initdev b/builds/any/rootfs/jessie/common/overlay/etc/init.d/initdev deleted file mode 100755 index df9dd898..00000000 --- a/builds/any/rootfs/jessie/common/overlay/etc/init.d/initdev +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: initdev -# Required-Start: -# Required-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Set up block and net devices -### END INIT INFO - -. /lib/lsb/init-functions - -log_action_begin_msg "Setting up block and net devices" - -ln -snf /proc/mounts /etc/mtab - -( cd /sys/class/block; for d in *; do /sbin/initblockdev $d add; done ) -if [ -d /sys/class/ubi ]; then - ( cd /sys/class/ubi; for d in *; do /sbin/initblockdev $d add; done ) -fi -( cd /sys/class/net; for d in *; do /sbin/initnetdev $d add; done ) - -initmounts - -log_action_end_msg 0 diff --git a/builds/any/rootfs/jessie/common/overlay/etc/mtab.yml b/builds/any/rootfs/jessie/common/overlay/etc/mtab.yml index e6c3ab22..598e4c69 100644 --- a/builds/any/rootfs/jessie/common/overlay/etc/mtab.yml +++ b/builds/any/rootfs/jessie/common/overlay/etc/mtab.yml @@ -1,19 +1,19 @@ mounts: ONL-IMAGES: - mount: r + mount: ro dir: /mnt/onl/images fsck: true ONL-DATA: - mount: w + mount: rw dir: /mnt/onl/data ONL-CONFIG: - mount: false + mount: ro dir: /mnt/onl/config fsck: true ONL-BOOT: - mount: false + mount: ro dir: /mnt/onl/boot fsck: false diff --git a/builds/any/rootfs/jessie/common/overlay/etc/onl/config/csr.yml b/builds/any/rootfs/jessie/common/overlay/etc/onl/config/csr.yml deleted file mode 100644 index c64b4847..00000000 --- a/builds/any/rootfs/jessie/common/overlay/etc/onl/config/csr.yml +++ /dev/null @@ -1,7 +0,0 @@ -C: US -ST: CA -O: Open Compute Project -localityName: Santa Clara -commonName: Networking -organizationalUnitName: Open Network Linux -emailAddress: support@bigswitch.com diff --git a/builds/any/rootfs/jessie/common/overlay/sbin/initblockdev b/builds/any/rootfs/jessie/common/overlay/sbin/initblockdev deleted file mode 100755 index e4b7cc3d..00000000 --- a/builds/any/rootfs/jessie/common/overlay/sbin/initblockdev +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash -set -e -exec 9<$0 -flock -x 9 -case $2 in - add) - eval $(echo $1 | sed "s#^\(mmcblk[0-9]*\|ubi[0-9]*_[0-9]*\|mtdblock[0-9]*\|[a-z]*\)\(p[0-9]*\|[0-9]*\).*#dev='\1' part='\2'#") - if [ -e /etc/onl/recover ]; then - recover=$(cat /etc/onl/recover) - fi - devid= - if [ -e /sys/class/ubi/${dev}/device ]; then - eval $(realpath /sys/class/ubi/${dev}/device | sed "s#/sys/devices/\(.*\)#devid='\1'#") - fi - if [ -e /sys/class/block/${dev}/device ]; then - eval $(realpath /sys/class/block/${dev}/device | sed "s#/sys/devices/\(.*\)#devid='\1'#") - fi - while read i n; do - expr match "$i" "#" >/dev/null && continue || : - [ -n "${devid}" ] && expr match "${devid}" "$i" >/dev/null && mount=/mnt/$n && break || : - expr match "@${dev}" "$i" >/dev/null && mount=/mnt/$n && break || : - done /dev/null)" = "070701" ]; then - mount=${mount}-recover - else - mkdir -p ${mount} - [ $(stat -c %D ${mount}) = $(stat -c %D /mnt) ] - if [ "$(dd if=/dev/${dev}${part} bs=1 skip=82 count=5 2>/dev/null)" = "FAT32" ] \ - || [ "$(dd if=/dev/${dev}${part} bs=1 skip=54 count=5 2>/dev/null)" = "FAT16" ]; then - if [ ! -e /etc/onl/kdump ]; then - if [ "$recover" = "fsck" ]; then - # Try to repair FAT filesystem automatically to prevent further - # damage (but skip it in kdump to save time and memory) - if dosfsck -a /dev/${dev}${part} >/dev/null 2>&1; then - : - else - dosfsck -n /dev/${dev}${part} >/dev/null 2>&1 - fi - else - dosfsck -n /dev/${dev}${part} >/dev/null 2>&1 - fi - fi - mount -o flush,dirsync,noatime,umask=0007 /dev/${dev}${part} ${mount} 2>/dev/null - else - mount -o noatime /dev/${dev}${part} ${mount} 2>/dev/null - fi - fi - echo -e "devid='${devid}'\ndev='${dev}'\npart='${part}'" >${mount}.conf - ;; - remove) - mtab=$(mktemp /tmp/tmp.XXXXXX) - cp /proc/mounts ${mtab} - while read dev mount x; do - if [ /dev/$1 = "${dev}" ]; then - rm -f ${mount}.conf - umount -l ${mount} 2>/dev/null || : - fi - done <${mtab} - rm -f ${mtab} - ;; -esac diff --git a/builds/any/rootfs/jessie/common/powerpc-packages.yml b/builds/any/rootfs/jessie/common/powerpc-base-packages.yml similarity index 91% rename from builds/any/rootfs/jessie/common/powerpc-packages.yml rename to builds/any/rootfs/jessie/common/powerpc-base-packages.yml index e55a7d8b..e876f6bd 100644 --- a/builds/any/rootfs/jessie/common/powerpc-packages.yml +++ b/builds/any/rootfs/jessie/common/powerpc-base-packages.yml @@ -4,7 +4,7 @@ # ############################################################ - u-boot-tools -- onl-loader-fit + diff --git a/builds/any/rootfs/jessie/common/powerpc-onl-packages.yml b/builds/any/rootfs/jessie/common/powerpc-onl-packages.yml new file mode 100644 index 00000000..e58df638 --- /dev/null +++ b/builds/any/rootfs/jessie/common/powerpc-onl-packages.yml @@ -0,0 +1,9 @@ +############################################################ +# +# These packages are specific to the ONL root filesystem build. +# +############################################################ +- onl-loader-fit + + + diff --git a/builds/any/rootfs/jessie/standard/standard.yml b/builds/any/rootfs/jessie/standard/standard.yml index c3b22d8e..44ff5a87 100644 --- a/builds/any/rootfs/jessie/standard/standard.yml +++ b/builds/any/rootfs/jessie/standard/standard.yml @@ -7,9 +7,13 @@ # # ############################################################ +variables: + !include $ONL/make/versions/version-onl.yml + Packages: &Packages - - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/common-packages.yml - - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/${ARCH}-packages.yml + - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/all-base-packages.yml + - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/${ARCH}-base-packages.yml + - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/${ARCH}-onl-packages.yml - !script $ONL/tools/onl-platform-pkgs.py ${PLATFORM_LIST} Multistrap: @@ -88,6 +92,13 @@ Configure: root: password: onl - manifest: - version: $ONL/make/versions/version-onl.json - platforms: $PLATFORM_LIST + manifests: + '/etc/onl/rootfs/manifest.json' : + version : $ONL/make/versions/version-onl.json + platforms : $PLATFORM_LIST + + issue: $VERSION_STRING + + files: + remove: + - /etc/motd diff --git a/builds/any/rootfs/wheezy/common/common-packages.yml b/builds/any/rootfs/wheezy/common/all-base-packages.yml similarity index 99% rename from builds/any/rootfs/wheezy/common/common-packages.yml rename to builds/any/rootfs/wheezy/common/all-base-packages.yml index eb365075..fa007eec 100644 --- a/builds/any/rootfs/wheezy/common/common-packages.yml +++ b/builds/any/rootfs/wheezy/common/all-base-packages.yml @@ -74,3 +74,4 @@ - unzip - onl-mibs - openssl +- gdb diff --git a/builds/any/rootfs/wheezy/common/amd64-packages.yml b/builds/any/rootfs/wheezy/common/amd64-base-packages.yml similarity index 100% rename from builds/any/rootfs/wheezy/common/amd64-packages.yml rename to builds/any/rootfs/wheezy/common/amd64-base-packages.yml diff --git a/builds/any/rootfs/wheezy/common/amd64-onl-packages.yml b/builds/any/rootfs/wheezy/common/amd64-onl-packages.yml new file mode 100644 index 00000000..984f2fc3 --- /dev/null +++ b/builds/any/rootfs/wheezy/common/amd64-onl-packages.yml @@ -0,0 +1,11 @@ +############################################################ +# +# These packages are specific to the ONL root filesystem build. +# +############################################################ +- onl-upgrade + + + + + diff --git a/builds/any/rootfs/wheezy/common/overlay/etc/mtab.yml b/builds/any/rootfs/wheezy/common/overlay/etc/mtab.yml index e6c3ab22..598e4c69 100644 --- a/builds/any/rootfs/wheezy/common/overlay/etc/mtab.yml +++ b/builds/any/rootfs/wheezy/common/overlay/etc/mtab.yml @@ -1,19 +1,19 @@ mounts: ONL-IMAGES: - mount: r + mount: ro dir: /mnt/onl/images fsck: true ONL-DATA: - mount: w + mount: rw dir: /mnt/onl/data ONL-CONFIG: - mount: false + mount: ro dir: /mnt/onl/config fsck: true ONL-BOOT: - mount: false + mount: ro dir: /mnt/onl/boot fsck: false diff --git a/builds/any/rootfs/wheezy/common/overlay/etc/onl/config/csr.yml b/builds/any/rootfs/wheezy/common/overlay/etc/onl/config/csr.yml deleted file mode 100644 index c64b4847..00000000 --- a/builds/any/rootfs/wheezy/common/overlay/etc/onl/config/csr.yml +++ /dev/null @@ -1,7 +0,0 @@ -C: US -ST: CA -O: Open Compute Project -localityName: Santa Clara -commonName: Networking -organizationalUnitName: Open Network Linux -emailAddress: support@bigswitch.com diff --git a/builds/any/rootfs/wheezy/common/overlay/etc/udev/rules.d/60-block.rules b/builds/any/rootfs/wheezy/common/overlay/etc/udev/rules.d/60-block.rules deleted file mode 100644 index f2345a37..00000000 --- a/builds/any/rootfs/wheezy/common/overlay/etc/udev/rules.d/60-block.rules +++ /dev/null @@ -1 +0,0 @@ -SUBSYSTEM=="block", RUN+="/sbin/initblockdev $kernel $env{ACTION}" diff --git a/builds/any/rootfs/wheezy/common/overlay/etc/udev/rules.d/60-net.rules b/builds/any/rootfs/wheezy/common/overlay/etc/udev/rules.d/60-net.rules deleted file mode 100644 index 627e65e4..00000000 --- a/builds/any/rootfs/wheezy/common/overlay/etc/udev/rules.d/60-net.rules +++ /dev/null @@ -1 +0,0 @@ -SUBSYSTEM=="net", RUN+="/sbin/initnetdev $kernel $env{ACTION}" diff --git a/builds/any/rootfs/wheezy/common/overlay/sbin/initblockdev b/builds/any/rootfs/wheezy/common/overlay/sbin/initblockdev deleted file mode 100755 index e4b7cc3d..00000000 --- a/builds/any/rootfs/wheezy/common/overlay/sbin/initblockdev +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash -set -e -exec 9<$0 -flock -x 9 -case $2 in - add) - eval $(echo $1 | sed "s#^\(mmcblk[0-9]*\|ubi[0-9]*_[0-9]*\|mtdblock[0-9]*\|[a-z]*\)\(p[0-9]*\|[0-9]*\).*#dev='\1' part='\2'#") - if [ -e /etc/onl/recover ]; then - recover=$(cat /etc/onl/recover) - fi - devid= - if [ -e /sys/class/ubi/${dev}/device ]; then - eval $(realpath /sys/class/ubi/${dev}/device | sed "s#/sys/devices/\(.*\)#devid='\1'#") - fi - if [ -e /sys/class/block/${dev}/device ]; then - eval $(realpath /sys/class/block/${dev}/device | sed "s#/sys/devices/\(.*\)#devid='\1'#") - fi - while read i n; do - expr match "$i" "#" >/dev/null && continue || : - [ -n "${devid}" ] && expr match "${devid}" "$i" >/dev/null && mount=/mnt/$n && break || : - expr match "@${dev}" "$i" >/dev/null && mount=/mnt/$n && break || : - done /dev/null)" = "070701" ]; then - mount=${mount}-recover - else - mkdir -p ${mount} - [ $(stat -c %D ${mount}) = $(stat -c %D /mnt) ] - if [ "$(dd if=/dev/${dev}${part} bs=1 skip=82 count=5 2>/dev/null)" = "FAT32" ] \ - || [ "$(dd if=/dev/${dev}${part} bs=1 skip=54 count=5 2>/dev/null)" = "FAT16" ]; then - if [ ! -e /etc/onl/kdump ]; then - if [ "$recover" = "fsck" ]; then - # Try to repair FAT filesystem automatically to prevent further - # damage (but skip it in kdump to save time and memory) - if dosfsck -a /dev/${dev}${part} >/dev/null 2>&1; then - : - else - dosfsck -n /dev/${dev}${part} >/dev/null 2>&1 - fi - else - dosfsck -n /dev/${dev}${part} >/dev/null 2>&1 - fi - fi - mount -o flush,dirsync,noatime,umask=0007 /dev/${dev}${part} ${mount} 2>/dev/null - else - mount -o noatime /dev/${dev}${part} ${mount} 2>/dev/null - fi - fi - echo -e "devid='${devid}'\ndev='${dev}'\npart='${part}'" >${mount}.conf - ;; - remove) - mtab=$(mktemp /tmp/tmp.XXXXXX) - cp /proc/mounts ${mtab} - while read dev mount x; do - if [ /dev/$1 = "${dev}" ]; then - rm -f ${mount}.conf - umount -l ${mount} 2>/dev/null || : - fi - done <${mtab} - rm -f ${mtab} - ;; -esac diff --git a/builds/any/rootfs/wheezy/common/powerpc-packages.yml b/builds/any/rootfs/wheezy/common/powerpc-base-packages.yml similarity index 91% rename from builds/any/rootfs/wheezy/common/powerpc-packages.yml rename to builds/any/rootfs/wheezy/common/powerpc-base-packages.yml index 0f9eb5bc..618f3581 100644 --- a/builds/any/rootfs/wheezy/common/powerpc-packages.yml +++ b/builds/any/rootfs/wheezy/common/powerpc-base-packages.yml @@ -4,7 +4,7 @@ # ############################################################ - u-boot-tools -- onl-loader-fit + diff --git a/builds/any/rootfs/wheezy/common/powerpc-onl-packages.yml b/builds/any/rootfs/wheezy/common/powerpc-onl-packages.yml new file mode 100644 index 00000000..e58df638 --- /dev/null +++ b/builds/any/rootfs/wheezy/common/powerpc-onl-packages.yml @@ -0,0 +1,9 @@ +############################################################ +# +# These packages are specific to the ONL root filesystem build. +# +############################################################ +- onl-loader-fit + + + diff --git a/builds/any/rootfs/wheezy/standard/standard.yml b/builds/any/rootfs/wheezy/standard/standard.yml index 1ba7a3d4..3f046beb 100644 --- a/builds/any/rootfs/wheezy/standard/standard.yml +++ b/builds/any/rootfs/wheezy/standard/standard.yml @@ -7,9 +7,13 @@ # # ############################################################ +variables: + !include $ONL/make/versions/version-onl.yml + Packages: &Packages - - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/common-packages.yml - - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/${ARCH}-packages.yml + - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/all-base-packages.yml + - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/${ARCH}-base-packages.yml + - !include $ONL/builds/any/rootfs/$ONL_DEBIAN_SUITE/common/${ARCH}-onl-packages.yml - !script $ONL/tools/onl-platform-pkgs.py ${PLATFORM_LIST} Multistrap: @@ -90,6 +94,14 @@ Configure: root: password: onl - manifest: - version: $ONL/make/versions/version-onl.json - platforms: $PLATFORM_LIST + manifests: + '/etc/onl/rootfs/manifest.json' : + version : $ONL/make/versions/version-onl.json + platforms : $PLATFORM_LIST + + issue: $VERSION_STRING + + files: + remove: + - /etc/motd + diff --git a/builds/armel/Makefile b/builds/armel/Makefile index 003238cf..92917844 100644 --- a/builds/armel/Makefile +++ b/builds/armel/Makefile @@ -1 +1,2 @@ -include $(ONL)/make/pkg.mk \ No newline at end of file +DIRECTORIES := rootfs swi installer +include $(ONL)/make/subdirs.mk diff --git a/builds/armel/installer/legacy/PKG.yml b/builds/armel/installer/legacy/PKG.yml deleted file mode 100644 index a6d0a7fe..00000000 --- a/builds/armel/installer/legacy/PKG.yml +++ /dev/null @@ -1 +0,0 @@ -!include $ONL/builds/any/installer/legacy/APKG.yml ARCH=armel diff --git a/builds/armel/installer/legacy/builds/.gitignore b/builds/armel/installer/legacy/builds/.gitignore deleted file mode 100644 index 18bb2d6e..00000000 --- a/builds/armel/installer/legacy/builds/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*INSTALLER -fit-install* -boot-config diff --git a/builds/armel/installer/legacy/builds/Makefile b/builds/armel/installer/legacy/builds/Makefile deleted file mode 100644 index a6feb7a9..00000000 --- a/builds/armel/installer/legacy/builds/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -include $(ONL)/make/config.armel.mk -include $(ONL)/builds/any/installer/legacy/fit/builds/Makefile diff --git a/builds/powerpc/Makefile b/builds/powerpc/Makefile index 003238cf..92917844 100644 --- a/builds/powerpc/Makefile +++ b/builds/powerpc/Makefile @@ -1 +1,2 @@ -include $(ONL)/make/pkg.mk \ No newline at end of file +DIRECTORIES := rootfs swi installer +include $(ONL)/make/subdirs.mk diff --git a/builds/powerpc/installer/legacy/PKG.yml b/builds/powerpc/installer/legacy/PKG.yml deleted file mode 100644 index feb80aad..00000000 --- a/builds/powerpc/installer/legacy/PKG.yml +++ /dev/null @@ -1,2 +0,0 @@ -!include $ONL/builds/any/installer/legacy/APKG.yml ARCH=powerpc - diff --git a/builds/powerpc/installer/legacy/builds/.gitignore b/builds/powerpc/installer/legacy/builds/.gitignore deleted file mode 100644 index 18bb2d6e..00000000 --- a/builds/powerpc/installer/legacy/builds/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*INSTALLER -fit-install* -boot-config diff --git a/builds/powerpc/installer/legacy/builds/Makefile b/builds/powerpc/installer/legacy/builds/Makefile deleted file mode 100644 index 43f77a9d..00000000 --- a/builds/powerpc/installer/legacy/builds/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -INSTALLER_EXTRA_FILES=ppc -include $(ONL)/make/config.powerpc.mk -include $(ONL)/builds/any/installer/legacy/fit/builds/Makefile diff --git a/builds/powerpc/installer/legacy/builds/ppc/libblkid.so.1 b/builds/powerpc/installer/legacy/builds/ppc/libblkid.so.1 deleted file mode 100644 index 0860ab90..00000000 Binary files a/builds/powerpc/installer/legacy/builds/ppc/libblkid.so.1 and /dev/null differ diff --git a/builds/powerpc/installer/legacy/builds/ppc/libcom_err.so.2 b/builds/powerpc/installer/legacy/builds/ppc/libcom_err.so.2 deleted file mode 100644 index 00ae647d..00000000 Binary files a/builds/powerpc/installer/legacy/builds/ppc/libcom_err.so.2 and /dev/null differ diff --git a/builds/powerpc/installer/legacy/builds/ppc/libdl.so.0 b/builds/powerpc/installer/legacy/builds/ppc/libdl.so.0 deleted file mode 100644 index 1533f23c..00000000 Binary files a/builds/powerpc/installer/legacy/builds/ppc/libdl.so.0 and /dev/null differ diff --git a/builds/powerpc/installer/legacy/builds/ppc/libe2p.so.2 b/builds/powerpc/installer/legacy/builds/ppc/libe2p.so.2 deleted file mode 100644 index 822c8d7f..00000000 Binary files a/builds/powerpc/installer/legacy/builds/ppc/libe2p.so.2 and /dev/null differ diff --git a/builds/powerpc/installer/legacy/builds/ppc/libext2fs.so.2 b/builds/powerpc/installer/legacy/builds/ppc/libext2fs.so.2 deleted file mode 100644 index 0a5c721e..00000000 Binary files a/builds/powerpc/installer/legacy/builds/ppc/libext2fs.so.2 and /dev/null differ diff --git a/builds/powerpc/installer/legacy/builds/ppc/libpthread.so.0 b/builds/powerpc/installer/legacy/builds/ppc/libpthread.so.0 deleted file mode 100644 index b320f246..00000000 Binary files a/builds/powerpc/installer/legacy/builds/ppc/libpthread.so.0 and /dev/null differ diff --git a/builds/powerpc/installer/legacy/builds/ppc/libuuid.so.1 b/builds/powerpc/installer/legacy/builds/ppc/libuuid.so.1 deleted file mode 100644 index 1d4b0362..00000000 Binary files a/builds/powerpc/installer/legacy/builds/ppc/libuuid.so.1 and /dev/null differ diff --git a/builds/powerpc/installer/legacy/builds/ppc/mke2fs b/builds/powerpc/installer/legacy/builds/ppc/mke2fs deleted file mode 100755 index b1369451..00000000 Binary files a/builds/powerpc/installer/legacy/builds/ppc/mke2fs and /dev/null differ diff --git a/builds/powerpc/installer/legacy/builds/ppc/mkfs.ext2 b/builds/powerpc/installer/legacy/builds/ppc/mkfs.ext2 deleted file mode 100755 index 2ac41d2d..00000000 --- a/builds/powerpc/installer/legacy/builds/ppc/mkfs.ext2 +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -export LD_LIBRARY_PATH=$( cd $( dirname -- "$0" ) > /dev/null ; pwd ) -$LD_LIBRARY_PATH/mke2fs $@ diff --git a/docker/images/builder7/1.2/README b/docker/images/builder7/1.2/README new file mode 100644 index 00000000..cd082728 --- /dev/null +++ b/docker/images/builder7/1.2/README @@ -0,0 +1,2 @@ +The dockerfile for this image was lost. +The image history is present. diff --git a/docker/images/builder7/1.2/history b/docker/images/builder7/1.2/history new file mode 100644 index 00000000..43520a39 --- /dev/null +++ b/docker/images/builder7/1.2/history @@ -0,0 +1,19 @@ +IMAGE CREATED CREATED BY SIZE +30af21fbfb6f33404c14ffca74f5c4b6c2ea499afc3c6575ed8f8c4b250e9eb8 7 weeks ago /bin/sh -c #(nop) COPY file:85997e087b4d5e00e0a04bc193670e88f3c679ec6566c2578232f8771d2fa460 in /bin/container-id 245 B +f98ca0bcc821f3c29e55e3b04ac59f9d070884394a5bde7d08da2ea1f677dd42 7 weeks ago /bin/sh -c #(nop) COPY file:740656dd6897213f5de86c1bcab56a5cfb1bcef3b78fcfd9205997f03892c9cf in /bin/docker_shell 5.516 kB +c66fd0d67ccbe7adb1872e42fc001fc1e685d9d3f6906ad6c55a74e357fba5fe 7 weeks ago /bin/sh -c wget http://www.opennetlinux.org/tarballs/wheezy-usr-buildroot-toolchains-x86_64.tgz && tar -C / -xvzf wheezy-usr-buildroot-toolchains-x86_64.tgz && rm wheezy-usr-buildroot-toolchains-x86_64.tgz 232.5 MB +ef9ba8bae44eda8b581f3bf250c8d234b49ac9786861ee832dda20d360c1ef3b 7 weeks ago /bin/sh -c wget http://www.opennetlinux.org/tarballs/wheezy-usr-buildroot-toolchains-powerpc.tgz && tar -C / -xvzf wheezy-usr-buildroot-toolchains-powerpc.tgz && rm wheezy-usr-buildroot-toolchains-powerpc.tgz 206.4 MB +eade002eb617afb5e9f5973fe44cc7b0b6895a0f6ec994a6b4e59f181fbff541 7 weeks ago /bin/sh -c #(nop) MAINTAINER Jeffrey Townsend 0 B +f3f8c756d44cae02a081e8fa25fe699b62839367f84f3ed0c8cdac0d0cb61c71 5 months ago /bin/sh -c #(nop) COPY file:da995763fa1e4587d7dc435522b7b86c3f915fab6fc820983e694e9aa13996a9 in /bin/container-id 245 B +d3e2d8d3e6d0dfd2a2777bd4b5e4d4e7869c3795df33e718f25d1628d464a9d0 5 months ago /bin/sh -c #(nop) COPY file:102693745a139d309880bf2d29cbc9a19c08da85eab1df85b7bf9f6c8df6e51f in /bin/docker_shell 5.516 kB +758afffd3cf70037eba181d24c6bc80766c903951d80f1330994f348f342b2ff 5 months ago /bin/sh -c apt-get update && apt-get install -y libpcap-dev telnet gdb 167.8 MB +0cfd9081af7ec27350c53ee7b6a620bf430cbe773dd27d1f67b877c869edfb21 5 months ago /bin/sh -c #(nop) MAINTAINER Rob Sherwood 0 B +faaf7e26ce801e59638274f4fd1e6142cec53cfab98b523724c5e4b5e36d66ee 8 months ago /bin/sh -c #(nop) COPY file:9a22523afe2cf74d3d155f6c0abcc5e60eb02fbf3a8c0caf3bc31646e67b4a44 in /bin/container-id 245 B +9cc7bb19af34cc4782649727bd2f266ac58ac24b41e33ec44baffd58a6e7cae7 8 months ago /bin/sh -c #(nop) COPY file:2e453fbe7ebda297f827a3d6bd4803e5ea310b9531d6faeb9d5932016b152065 in /bin/docker_shell 5.075 kB +04a9de616cb5e1c1426736b1efb5d7e7c204230713cf6a85499586e601ee6b93 8 months ago /bin/sh -c ln -s /usr/bin/ar /usr/bin/x86_64-linux-gnu-ar && ln -s /usr/bin/ld /usr/bin/x86_64-linux-gnu-ld && ln -s /usr/bin/objcopy /usr/bin/x86_64-linux-gnu-objcopy 38 B +a520f12148816eb7d4cabd139dea1075ec20e6e9ab8c0271ec31d6f9c3d12d32 8 months ago /bin/sh -c cp /usr/include/linux/i2c-dev.h /usr/include/linux/i2c-devices.h && cp /usr/include/linux/i2c-dev.h /usr/powerpc-linux-gnu/include/linux/i2c-devices.h 21.16 kB +da6496888f80287d340259ae0e22b8e7de8325aaa0dfbcce033569e7ecc7ff10 8 months ago /bin/sh -c echo 'APT::Get::AllowUnauthenticated "true";\nAPT::Get::Assume-Yes "true";' | tee /etc/apt/apt.conf.d/99opennetworklinux && echo "deb http://apt.opennetlinux.org/debian/ unstable main" | tee /etc/apt/sources.list.d/opennetlinux.list && dpkg --add-architecture powerpc && apt-get update && apt-get install -y binutils-powerpc-linux-gnu=2.22-7.1 gcc-4.7-powerpc-linux-gnu libc6-dev-powerpc-cross libgomp1-powerpc-cross=4.7.2-4 && xapt -a powerpc libedit-dev ncurses-dev libsensors4-dev libwrap0-dev libssl-dev libsnmp-dev libevent-dev libpam-dev && update-alternatives --install /usr/bin/powerpc-linux-gnu-gcc powerpc-linux-gnu-gcc /usr/bin/powerpc-linux-gnu-gcc-4.7 10 && rm /etc/apt/apt.conf.d/docker-* && wget "https://launchpad.net/ubuntu/+source/qemu/1.4.0+dfsg-1expubuntu3/+build/4336762/+files/qemu-user-static_1.4.0%2Bdfsg-1expubuntu3_amd64.deb" && dpkg -i qemu-user-static_1.4.0+dfsg-1expubuntu3_amd64.deb && apt-get install python-pyroute2 274.2 MB +0c9fb97f33634b850ee1ed630cfc0eed2b0993377c7d3b19f60914a2f66f7c6e 8 months ago /bin/sh -c apt-get update && apt-get install -y apt apt-cacher-ng apt-file apt-utils autoconf automake1.9 autotools-dev bash-completion bc bind9-host binfmt-support binfmt-support bison bsdmainutils build-essential ccache cdbs cpio debhelper debhelper debhelper device-tree-compiler devscripts devscripts dialog dosfstools dpkg-sig emacs file flex gcc genisoimage ifupdown iproute iputils-ping kmod less libc6-dev libedit-dev libevent-dev libi2c-dev libpam-dev libsnmp-dev libtool locales lsof make mingetty mtd-utils mtools multistrap nano ncurses-dev netbase net-tools nfs-common openssh-server pkg-config pkg-config procps psmisc python python-dnspython python-yaml qemu qemu-user-static realpath realpath rsyslog rubygems screen squashfs-tools sshpass sudo syslinux texinfo=4.13a.dfsg.1-10 traceroute uboot-mkimage vim-tiny wget xapt zile zip && gem install --version 1.3.3 fpm 956.9 MB +8e0c035bb531a1311ab2e24f5b798edf89f20cd878ad4e1b8cf297b9b5afd410 9 months ago /bin/sh -c #(nop) MAINTAINER Rob Sherwood 0 B +bbe78c1a5a535fac669e3225d5c3bb4396b6b2f9decb560ffb6351396da8c345 11 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B +9d3ceacde91b4c7d6c1275032adb558d668afd5489c007f3512b39793ddf992d 11 months ago /bin/sh -c #(nop) ADD file:f7eb3ddd8c7f33332cd94564ec171306ffa490836953449b9b9c506085ec8745 in / 84.97 MB diff --git a/docker/images/builder8/1.3/README b/docker/images/builder8/1.3/README new file mode 100644 index 00000000..cd082728 --- /dev/null +++ b/docker/images/builder8/1.3/README @@ -0,0 +1,2 @@ +The dockerfile for this image was lost. +The image history is present. diff --git a/docker/images/builder8/1.3/history b/docker/images/builder8/1.3/history new file mode 100644 index 00000000..657c5ba5 --- /dev/null +++ b/docker/images/builder8/1.3/history @@ -0,0 +1,29 @@ +IMAGE CREATED CREATED BY SIZE +32155706d5a8ea8c642edaff8cf6ca93756c43f06b0df4ba6358fbd9b7241748 7 weeks ago /bin/sh -c #(nop) COPY file:64fe2c9e1b5e36e5a5dccdaf3f46ba7ca2894e6437f6d6c42efe0eb3ced9ab69 in /bin/container-id 245 B +da02890b2ba05440f2c7c1790ec9606c67ef946c1be1079652003ff47abc0683 7 weeks ago /bin/sh -c #(nop) COPY file:bbb3d40c93cd76b97c89e7bb34769a865d9ede5ce8311ad573125ae39a87f144 in /bin/docker_shell 5.516 kB +2a270cef9f88c6789cef1fc734edf02ea8fd7fc407a61a496d47d66fb776e3e1 7 weeks ago /bin/sh -c wget http://www.opennetlinux.org/tarballs/jessie-usr-buildroot-toolchains-arm.tgz && tar -C / -xvzf jessie-usr-buildroot-toolchains-arm.tgz && rm jessie-usr-buildroot-toolchains-arm.tgz 197.4 MB +f6bd6aa6112ff8e5f2f90392bb776e70f975a7c38ffa42363ad625e91d96ec87 7 weeks ago /bin/sh -c wget http://www.opennetlinux.org/tarballs/jessie-usr-buildroot-toolchains-x86_64.tgz && tar -C / -xvzf jessie-usr-buildroot-toolchains-x86_64.tgz && rm jessie-usr-buildroot-toolchains-x86_64.tgz 231.9 MB +460d6894f02cf961cb0ef04c37286eef20e302dda25caaeb9e8f31aca087cc05 7 weeks ago /bin/sh -c wget http://www.opennetlinux.org/tarballs/jessie-usr-buildroot-toolchains-powerpc.tgz && tar -C / -xvzf jessie-usr-buildroot-toolchains-powerpc.tgz && rm jessie-usr-buildroot-toolchains-powerpc.tgz 206.1 MB +2f1497573f9992b50dc67a588c64a4b142c60c19dc71476b29ed356cec23f657 3 months ago /bin/sh -c #(nop) MAINTAINER Jeffrey Townsend 0 B +dd52538e115b7afacd317aa629ae589640b563259c4dd3b0205141570b9e4fc0 3 months ago /bin/sh -c #(nop) COPY file:3ba8c73d2c1c05687b3a9ed061ce0ba68b3b3bcd3cc38d3b7872460ab20ef914 in /bin/container-id 245 B +1007bbaff6641c6f94b31bf8004d176a533fed98e02b1889d8546e2466de7685 3 months ago /bin/sh -c #(nop) COPY file:903a436a017d07edc14f3ad4155896e29fd20610cc268b25ef9dc566a2f67b67 in /bin/docker_shell 5.516 kB +2549711b6dfbd5c675cd06d04a0f90d77e4681cd0f15236aded81dad9becacf7 3 months ago /bin/sh -c xapt -a armel libedit-dev ncurses-dev libsensors4-dev libwrap0-dev libssl-dev libsnmp-dev 37.56 MB +d7b8911f99c278cce14adefb8739999022d588412cb5a48649dad01859f74d56 3 months ago /bin/sh -c apt-get update && apt-get install -y crossbuild-essential-armel gcc-arm-linux-gnueabi 450.9 MB +9d20ee8ab8a191f032def4397108e496f3d8c4823364b57296d115ad4183f27e 3 months ago /bin/sh -c dpkg --add-architecture armel 20 B +ffd59e478462bacdf142af97a881d5e23453e02d5d64c9b5cf8144f89e02d353 3 months ago /bin/sh -c #(nop) MAINTAINER Jeffrey Townsend 0 B +ad29f01f615f9477ed907ce7ff7dc4a55e0386e82614fcd134e0f6aca5b27c49 5 months ago /bin/sh -c #(nop) COPY file:841e3ae1b2e756363b64ba137881521b0e5e7dbe353fb76d62c967df8168092e in /bin/container-id 245 B +798fb45e3298c2a7fc374a17f4cd58148a6fb86f60e08a3e2ae0c227bc5c273e 5 months ago /bin/sh -c #(nop) COPY file:4c9660a24f51d28840aff28a6c89d7db3c6225c4bedbb9eebdf28a19e88551cd in /bin/docker_shell 5.516 kB +36b95e0bcd35619fdaab0de30fab19918347e53316657387d9c4ec8de4bc6cfd 5 months ago /bin/sh -c apt-get update && apt-get install -y libpcap-dev telnet gdb 263.9 MB +d1496c23e0ad410c13b466930f75ef98d5e23905791405da907f92808439831d 5 months ago /bin/sh -c #(nop) MAINTAINER Rob Sherwood 0 B +95d70986f9d6276424d3080d0d34f16a048bb0371580e3298d630b17dbe4609a 7 months ago /bin/sh -c apt-get install libboost-all-dev cmake 354.9 MB +ddb8d8aeac58a06f066bef825e6a27b0c72ff76835b0f571ad18a7c89bd93d40 7 months ago /bin/sh -c apt-get install -y libstdc++6=4.9.2-10 --force-yes 69.68 MB +09c7586cd496e865e594be70edfc83184f6e0552cb3ca9230c2f615331a93d68 7 months ago /bin/sh -c #(nop) COPY file:7cdbf54404b60a9d04a792bc0e9dcad6f49e612f48f8c6c402ee2dcf5688da69 in /bin/container-id 245 B +172f3bf0f3c43c34bd3303e6eb23359cc419831b8e6eac8ab90dd4b5aa600985 7 months ago /bin/sh -c #(nop) COPY file:77ace793edabe2a1c51ae29ff2eb52f6d6f46a86af4cf14cb2c413c0ff49d06e in /bin/docker_shell 5.075 kB +3c36ab092f6b85d75ffb756fad930b987fc8fbc8aa900dc22f01fedf7d202edc 7 months ago /bin/sh -c rm /etc/apt/apt.conf.d/docker-* && wget "https://launchpad.net/ubuntu/+source/qemu/1.4.0+dfsg-1expubuntu3/+build/4336762/+files/qemu-user-static_1.4.0%2Bdfsg-1expubuntu3_amd64.deb" && dpkg -i qemu-user-static_1.4.0+dfsg-1expubuntu3_amd64.deb 94.05 MB +cdb182045934be9bb9275ec8e9dcc7613594b8a91ab5e60a04b62d11e1c157be 7 months ago /bin/sh -c cp /usr/include/linux/i2c-dev.h /usr/include/linux/i2c-devices.h && cp /usr/include/linux/i2c-dev.h /usr/powerpc-linux-gnu/include/linux/i2c-devices.h 20.83 kB +9158d08b1793b1fc8a1d8e15bf19f23dc0fa13a1347a6c238225cb09f5e9e1d3 7 months ago /bin/sh -c echo 'APT::Get::AllowUnauthenticated "true";\nAPT::Get::Assume-Yes "true";' | tee /etc/apt/apt.conf.d/99opennetworklinux && echo "deb http://apt.opennetlinux.org/debian/ unstable main" | tee /etc/apt/sources.list.d/opennetlinux.list && curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | sudo apt-key add - && echo "deb http://emdebian.org/tools/debian/ jessie main" | tee /etc/apt/sources.list.d/embedian-jessie.list && dpkg --add-architecture powerpc && apt-get update && apt-get install -y binutils-powerpc-linux-gnu libc6-dev-powerpc-cross crossbuild-essential-powerpc cross-gcc-dev folly fbthrift wangle libgomp1-powerpc-cross && wget "http://ftp.us.debian.org/debian/pool/main/t/texinfo/texinfo_4.13a.dfsg.1-10_amd64.deb" && dpkg -i texinfo_4.13a.dfsg.1-10_amd64.deb && wget "http://ftp.us.debian.org/debian/pool/main/e/emdebian-crush/xapt_2.2.19_all.deb" && dpkg -i xapt_2.2.19_all.deb && xapt -a powerpc libedit-dev ncurses-dev libsensors4-dev libwrap0-dev libssl-dev libsnmp-dev 406 MB +49e279dabd91678fba86bd6687e6261a7b611f6e219648fff0a66bb933dc3c1d 7 months ago /bin/sh -c gem install --version 1.3.3 fpm 21.03 MB +49791c55ca44c73bf01888322bd5f020347b761c1c7f809c38301877a79d67af 7 months ago /bin/sh -c apt-get update && apt-get install -y apt apt-cacher-ng apt-file apt-utils autoconf automake autotools-dev bash-completion bc bind9-host binfmt-support binfmt-support bison bsdmainutils build-essential ccache cdbs cpio debhelper debhelper debhelper device-tree-compiler devscripts devscripts dialog dosfstools dpkg-sig emacs file flex gcc genisoimage git ifupdown iproute iputils-ping isolinux kmod less libc6-dev libcurl4-nss-dev libdouble-conversion-dev libedit-dev libevent-dev libgoogle-glog-dev libi2c-dev libkrb5-dev libnuma-dev libsasl2-dev libsnappy-dev libpam-dev libsnmp-dev libssl-dev libstdc++6=4.9.2-10 libtool locales lsof make mingetty mtd-utils mtools multistrap nano ncurses-dev netbase net-tools nfs-common openssh-server pkg-config pkg-config procps psmisc python python-debian python-dnspython python-yaml qemu qemu-user-static realpath realpath rsyslog ruby ruby-dev rubygems screen squashfs-tools sshpass sudo syslinux-utils traceroute u-boot-tools vim-tiny wget zile zip 1.213 GB +f6fd2198e086ea420c1b995d62c73f3626b25163b58c36fff23b1d33cba65476 9 months ago /bin/sh -c #(nop) MAINTAINER Rob Sherwood 0 B +58016a5acc80ae6bbee80c4c0ebf82fa0b17ad83a7c332b43420a5ac4daf1c78 9 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B +e2a4fb18da48c71baa73583c05c06ecf1a27486ea0ec08ca3458ddd4647a1894 9 months ago /bin/sh -c #(nop) ADD file:fd73312d29edb04f9cf107eb2488342984471d1798ea66ba6067f91d13f76fdf in / 125.2 MB diff --git a/docker/images/builder8/1.4/Dockerfile b/docker/images/builder8/1.4/Dockerfile new file mode 100644 index 00000000..27550d56 --- /dev/null +++ b/docker/images/builder8/1.4/Dockerfile @@ -0,0 +1,22 @@ +############################################################ +# +# Update with ONIE build dependencies. +# +############################################################ +FROM opennetworklinux/builder8:1.3 +MAINTAINER Jeffrey Townsend + +RUN apt-get update && apt-get install -y \ + stgit \ + gperf \ + gawk \ + automake \ + libexpat1-dev \ + libtool-bin \ + xorriso + +# +# Docker shell and other container tools. +# +COPY docker_shell /bin/docker_shell +COPY container-id /bin/container-id diff --git a/docker/images/builder8/1.4/Makefile b/docker/images/builder8/1.4/Makefile new file mode 100644 index 00000000..994063cf --- /dev/null +++ b/docker/images/builder8/1.4/Makefile @@ -0,0 +1,19 @@ +VERSION=1.4 +USER=opennetworklinux +REPO=builder8 + +TOOLS=../../../tools/docker_shell ../../../tools/container-id + +build: check_version + cp $(TOOLS) . + docker build -t $(USER)/$(REPO):$(VERSION) . + rm -rf $(notdir $(TOOLS)) + +# +# Todo: Query remote repository to see if the request version already exists to avoid accidental overwrites +# when a new image is built but the VERSION variable is not updated. +# +check_version: + +push: + docker push $(USER)/$(REPO):$(VERSION) diff --git a/docs/SupportedHardware.md b/docs/SupportedHardware.md index b3b14899..d8fa0b41 100644 --- a/docs/SupportedHardware.md +++ b/docs/SupportedHardware.md @@ -31,7 +31,7 @@ Accton/Edge-Core Accton AS5610-52X 48x10G + 4x40G FreeScale P2020 Broadcom BCM56846 (Trident+) Yes Yes Yes No No No Accton AS5710-54X 48x10G + 6x40G FreeScale P2041 Broadcom BCM56854 (Trident2) Yes Yes Yes Yes*** Yes*** No Accton AS6700-32X 32x40G FreeScale P2041 Broadcom BCM56850 (Trident2) Yes Yes Yes No No No - Accton AS5512-54X 48x10G + 6x40G Intel Rangeley C2538 x86 MediaTek MT3257 No No No No No No + Accton AS5512-54X 48x10G + 6x40G Intel Rangeley C2538 x86 MediaTek/Nephos MT3258 No No No No No No Accton AS5712-54X 48x10G + 6x40G Intel Rangeley C2538 x86 Broadcom BCM56854 (Trident2) Yes Yes Yes Yes*** Yes*** No Accton AS6712-32X 32x40G Intel Rangeley C2538 x86 Broadcom BCM56850 (Trident2) Yes Yes Yes Yes*** Yes*** No Accton AS5812-54T 48x10G + 6x40G Intel Rangeley C2538 x86 Broadcom BCM56864 (Trident2+) Yes Yes No No No No @@ -40,6 +40,7 @@ Accton/Edge-Core Accton AS7712-32X 32x100G Intel Rangeley C2538 x86 Broadcom BCM56960 (Tomahawk) Yes Yes Yes Yes*** Yes*** No Accton AS7716-32X 32x100G Intel Xeon D-1518 x86 Broadcom BCM56960 (Tomahawk) Yes Yes No Yes*** Yes*** No Accton Wedge-16X 16x40G Intel Rangeley C2550 x86 Broadcom BCM56864 (Trident2+) Work In Progress** Yes No No Yes No + Accton (FB) Wedge 100 32x100G Intel Bay Trail E3845 x86 Broadcom BCM56960 (Tomahawk) Work In Progress** Yes No No Yes No DNI/Agema diff --git a/make/config.mk b/make/config.mk index cd957fba..0e8c23aa 100644 --- a/make/config.mk +++ b/make/config.mk @@ -27,7 +27,7 @@ export ONL_DEBIAN_SUITE_$(ONL_DEBIAN_SUITE)=1 export BUILD_DIR_BASE=BUILD/$(ONL_DEBIAN_SUITE) # Generate manifest if necessary -export MODULEMANIFEST := $(shell $(BUILDER)/tools/mmg.py --dirs $(ONL) $(ONLPM_OPTION_PACKAGEDIRS) --out $(ONL)/make/module-manifest.mk --only-if-missing make) +export MODULEMANIFEST := $(shell $(BUILDER)/tools/mmg.py $(ONL)/make/mmg.yml $(ONL) --only-if-missing) # Generate versions if necessary. $(shell $(ONL)/tools/make-versions.py --import-file=$(ONL)/tools/onlvi --class-name=OnlVersionImplementation --output-dir $(ONL)/make/versions) diff --git a/make/kbuild.mk b/make/kbuild.mk index 78f3b978..7bfa8117 100644 --- a/make/kbuild.mk +++ b/make/kbuild.mk @@ -153,7 +153,8 @@ endif endif -MODSYNCLIST := .config Module.symvers Makefile include scripts arch/x86/include arch/x86/Makefile arch/powerpc/include arch/powerpc/Makefile arch/powerpc/lib +MODSYNCLIST_DEFAULT := .config Module.symvers Makefile include scripts arch/x86/include arch/x86/Makefile arch/powerpc/include arch/powerpc/Makefile arch/powerpc/lib arch/arm/include arch/arm/Makefile arch/arm/lib +MODSYNCLIST := $(MODSYNCLIST_DEFAULT) $(MODSYNCLIST_EXTRA) mbuild: build rm -rf $(K_MBUILD_DIR) diff --git a/make/mmg.yml b/make/mmg.yml new file mode 100644 index 00000000..e6c9626e --- /dev/null +++ b/make/mmg.yml @@ -0,0 +1,9 @@ +directories: + - . + +manifest: make/module-manifest.mk + + + + + diff --git a/make/rfs.mk b/make/rfs.mk index 1c8e0d52..f137e411 100644 --- a/make/rfs.mk +++ b/make/rfs.mk @@ -28,10 +28,14 @@ ifdef RFS_SQUASH RFS_COMMAND += --squash $(RFS_SQUASH) endif +ifndef RFS_MANIFEST +RFS_MANIFEST := etc/onl/rootfs/manifest.json +endif + RFS: $(ONL_V_at) rm -rf manifest.json $(ONL_V_at) $(RFS_COMMAND) - $(ONL_V_at) [ -f $(RFS_DIR)/etc/onl/rootfs/manifest.json ] && cp $(RFS_DIR)/etc/onl/rootfs/manifest.json . + $(ONL_V_at) [ -f $(RFS_DIR)/$(RFS_MANIFEST) ] && cp $(RFS_DIR)/$(RFS_MANIFEST) . clean: $(ONL_V_at) sudo rm -rf $(RFS_DIR) diff --git a/packages/base/all/boot.d/src/50.initmounts b/packages/base/all/boot.d/src/50.initmounts index 8aa7ca5b..71f7410f 100755 --- a/packages/base/all/boot.d/src/50.initmounts +++ b/packages/base/all/boot.d/src/50.initmounts @@ -2,5 +2,5 @@ . /lib/lsb/init-functions log_action_begin_msg "Mounting filesystems..." -initmounts -q +onl-mounts -q mount all log_action_end_msg 0 diff --git a/packages/base/all/boot.d/src/51.pki b/packages/base/all/boot.d/src/51.pki index 5752d4e9..fb153d5d 100755 --- a/packages/base/all/boot.d/src/51.pki +++ b/packages/base/all/boot.d/src/51.pki @@ -1,6 +1,6 @@ #!/bin/sh -if [ -f /usr/bin/pki ]; then - /usr/bin/pki --init +if [ -f /usr/bin/onl-pki ]; then + /usr/bin/onl-pki --init fi diff --git a/packages/base/all/boot.d/src/52.rc.boot b/packages/base/all/boot.d/src/52.rc.boot new file mode 100755 index 00000000..ffb8dc89 --- /dev/null +++ b/packages/base/all/boot.d/src/52.rc.boot @@ -0,0 +1,15 @@ +#!/bin/sh +# +############################################################ +# +# If any rc.boot scripts are present in any mounted +# partition they will be executed at boot time. +# +############################################################ +for dir in boot config images data; do + script=/mnt/onl/$dir/rc.boot + if [ -x "$script" ]; then + echo "Executing $script..." + $script + fi +done diff --git a/packages/base/all/boot.d/src/53.install-debs b/packages/base/all/boot.d/src/53.install-debs new file mode 100755 index 00000000..e31d382d --- /dev/null +++ b/packages/base/all/boot.d/src/53.install-debs @@ -0,0 +1,16 @@ +#!/bin/sh +############################################################ +PACKAGE_DIR=/mnt/onl/data/install-debs +PACKAGE_LIST="$PACKAGE_DIR/list" + +if [ -e "$PACKAGE_LIST" ]; then + for package in $(cat $PACKAGE_LIST); do + echo "Installing packages $package..." + if ! dpkg -i "$PACKAGE_DIR/$package"; then + echo "Failed." + exit 1 + fi + done +fi + + diff --git a/packages/base/all/initrds/loader-initrd-files/src/bin/swiprep b/packages/base/all/initrds/loader-initrd-files/src/bin/swiprep index 0753957c..59ca494e 100755 --- a/packages/base/all/initrds/loader-initrd-files/src/bin/swiprep +++ b/packages/base/all/initrds/loader-initrd-files/src/bin/swiprep @@ -193,7 +193,12 @@ if test "${mode_install}${mode_overlay}"; then mkdir -p "$destdir/etc/onl" - cp -R /etc/onl/* "$destdir/etc/onl/." + for thing in /etc/onl/*; do + if test $thing != "sysconfig"; then + cp -R $thing "$destdir/etc/onl/." + fi + done + if [ -f /etc/fw_env.config ]; then cat /etc/fw_env.config > "$destdir/etc/fw_env.config" fi diff --git a/packages/base/all/initrds/loader-initrd-files/src/bin/sysinit b/packages/base/all/initrds/loader-initrd-files/src/bin/sysinit index 08500c6f..81d327e0 100755 --- a/packages/base/all/initrds/loader-initrd-files/src/bin/sysinit +++ b/packages/base/all/initrds/loader-initrd-files/src/bin/sysinit @@ -69,8 +69,11 @@ if [ ! -f /etc/onl/abort ]; then # Initialize net devices ( cd /sys/class/net; for d in *; do initnetdev $d add; done ) - # Initialize platform mounts - initmounts -q + # FS Checks + onl-mounts fsck all + + # Mounts + onl-mounts -q mount all # Initialize U-Boot environment if [ -s /proc/device-tree/model ]; then @@ -100,8 +103,8 @@ fi # # Initialize PKI # -if [ -f /sbin/pki ]; then - /sbin/pki --init +if [ -f /sbin/onl-pki ]; then + /sbin/onl-pki --init fi diff --git a/packages/base/all/initrds/loader-initrd-files/src/etc/mtab.yml b/packages/base/all/initrds/loader-initrd-files/src/etc/mtab.yml index 8026f979..cb7635b1 100644 --- a/packages/base/all/initrds/loader-initrd-files/src/etc/mtab.yml +++ b/packages/base/all/initrds/loader-initrd-files/src/etc/mtab.yml @@ -1,19 +1,20 @@ mounts: ONL-IMAGES: - mount: w + mount: rw dir: /mnt/onl/images fsck: true ONL-DATA: - mount: w + mount: rw dir: /mnt/onl/data + fsck: true ONL-CONFIG: - mount: false + mount: ro dir: /mnt/onl/config fsck: true ONL-BOOT: - mount: w + mount: rw dir: /mnt/onl/boot - fsck: false + fsck: true diff --git a/packages/base/all/initrds/loader-initrd-files/src/etc/onl/config/csr.yml b/packages/base/all/initrds/loader-initrd-files/src/etc/onl/config/csr.yml deleted file mode 100644 index c64b4847..00000000 --- a/packages/base/all/initrds/loader-initrd-files/src/etc/onl/config/csr.yml +++ /dev/null @@ -1,7 +0,0 @@ -C: US -ST: CA -O: Open Compute Project -localityName: Santa Clara -commonName: Networking -organizationalUnitName: Open Network Linux -emailAddress: support@bigswitch.com diff --git a/packages/base/all/vendor-config-onl/PKG.yml b/packages/base/all/vendor-config-onl/PKG.yml index a1fecbf9..4c641ae4 100644 --- a/packages/base/all/vendor-config-onl/PKG.yml +++ b/packages/base/all/vendor-config-onl/PKG.yml @@ -8,19 +8,13 @@ packages: summary: ONL Base Configuration Package files: - src/python/onl : $PY_INSTALL/onl - src/boot.d : /etc/boot.d - src/bin/initubootenv: /sbin/initubootenv - src/bin/initmounts: /sbin/initmounts - src/bin/initnetdev: /sbin/initnetdev - src/bin/pki : /sbin/pki - src/bin/loader-shell: /usr/bin/loader-shell - src/bin/onie-shell: /usr/bin/onie-shell - src/bin/onl-platform-show: /usr/bin/onl-platform-show - src/bin/onl-install: /usr/bin/onl-install - src/bin/onl-recover: /usr/bin/onl-recover - src/bin/pyfit: /usr/bin/pyfit - src/lib : /lib/vendor-config/onl + - src/python/onl : $PY_INSTALL/onl + - $ONL/tools/onlyaml.py : $PY_INSTALL/onl/onlyaml/__init__.py + - src/etc : /etc + - src/boot.d : /etc/boot.d + - src/bin : /usr/bin + - src/lib : /lib/vendor-config/onl + changelog: Changes @@ -33,10 +27,12 @@ packages: summary: ONL Base Configuration Package (Loader) files: - src/python/onl : $PY_INSTALL/onl - src/bin/initmounts : /bin/initmounts - src/bin/initubootenv : /bin/initubootenv - src/bin/initnetdev : /bin/initnetdev - src/bin/pki : /sbin/pki + - src/python/onl : $PY_INSTALL/onl + - $ONL/tools/onlyaml.py : $PY_INSTALL/onl/onlyaml/__init__.py + - src/etc : /etc + - src/bin/onl-mounts : /bin/onl-mounts + - src/bin/initubootenv : /bin/initubootenv + - src/bin/initnetdev : /bin/initnetdev + - src/bin/onl-pki : /sbin/onl-pki changelog: Changes diff --git a/packages/base/all/vendor-config-onl/src/bin/initmounts b/packages/base/all/vendor-config-onl/src/bin/onl-mounts similarity index 61% rename from packages/base/all/vendor-config-onl/src/bin/initmounts rename to packages/base/all/vendor-config-onl/src/bin/onl-mounts index a2ccaecd..dca2046b 100755 --- a/packages/base/all/vendor-config-onl/src/bin/initmounts +++ b/packages/base/all/vendor-config-onl/src/bin/onl-mounts @@ -1,3 +1,3 @@ #!/usr/bin/python from onl.mounts import OnlMountManager -OnlMountManager.main() +OnlMountManager.main('onl-mounts') diff --git a/packages/base/all/vendor-config-onl/src/bin/onl-pki b/packages/base/all/vendor-config-onl/src/bin/onl-pki new file mode 100755 index 00000000..bd8463ff --- /dev/null +++ b/packages/base/all/vendor-config-onl/src/bin/onl-pki @@ -0,0 +1,3 @@ +#!/usr/bin/python +from onl.pki import OnlPki +OnlPki.main() diff --git a/packages/base/all/vendor-config-onl/src/bin/onl-sysconfig b/packages/base/all/vendor-config-onl/src/bin/onl-sysconfig new file mode 100755 index 00000000..3b651d5a --- /dev/null +++ b/packages/base/all/vendor-config-onl/src/bin/onl-sysconfig @@ -0,0 +1,14 @@ +#!/usr/bin/python +import os +import sys +from onl.sysconfig import sysconfig +import yaml + +if len(sys.argv) == 2: + try: + print yaml.dump((eval("sysconfig.%s" % sys.argv[1])), default_flow_style=False) + except AttributeError, e: + print "Path %s is not in the config." % sys.argv[1] +else: + print sysconfig['OnlSystemConfig'].dump() + diff --git a/packages/base/all/vendor-config-onl/src/bin/pki b/packages/base/all/vendor-config-onl/src/bin/pki deleted file mode 100755 index eb5105a8..00000000 --- a/packages/base/all/vendor-config-onl/src/bin/pki +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/python -from onl.pki import OnlPKI -OnlPKI.main() diff --git a/packages/base/all/vendor-config-onl/src/boot.d/62.upgrade-loader b/packages/base/all/vendor-config-onl/src/boot.d/62.upgrade-loader index 12b2716a..bf9459a4 100755 --- a/packages/base/all/vendor-config-onl/src/boot.d/62.upgrade-loader +++ b/packages/base/all/vendor-config-onl/src/boot.d/62.upgrade-loader @@ -8,6 +8,8 @@ import os import sys import fnmatch from onl.upgrade import ubase +from onl.sysconfig import sysconfig +from onl.mounts import OnlMountManager, OnlMountContextReadOnly, OnlMountContextReadWrite class Loader_Upgrade(ubase.BaseUpgrade): name="loader" @@ -18,15 +20,20 @@ class Loader_Upgrade(ubase.BaseUpgrade): current_version_key="Current Loader Version" next_version_key="Next Loader Version" + def auto_upgrade_default(self): + return sysconfig.upgrade.loader.auto + def init_versions(self): + # # Current Loader version file. # If this file doesn't exist then in-place upgrade is not supported. # - ETC_LOADER_VERSIONS_JSON = "/etc/onl/loader/versions.json" + ETC_LOADER_VERSIONS_JSON = sysconfig.upgrade.loader.versions # Upgrade Loader Version file. - NEXT_LOADER_VERSIONS_JSON = "/etc/onl/upgrade/%s/manifest.json" % self.parch + NEXT_LOADER_VERSIONS_JSON = os.path.join(sysconfig.upgrade.loader.package.dir, "manifest.json") + self.current_version = self.load_json(ETC_LOADER_VERSIONS_JSON, "RELEASE_ID", @@ -51,55 +58,18 @@ class Loader_Upgrade_FIT(Loader_Upgrade): def do_upgrade(self, forced=False): - FIT_UPGRADE_IMAGE_PLATFORM="/etc/onl/upgrade/%s/%s.itb" % (self.parch, self.platform.platform()) - FIT_UPGRADE_IMAGE_ALL="/etc/onl/upgrade/%s/onl-loader-fit.itb" % (self.parch) - FIT_LOADER_IMAGE_NAME="%s.itb" % self.platform.platform() - fit_image = None + for f in sysconfig.upgrade.loader.package.fit_images: + fp = os.path.join(sysconfig.upgrade.loader.package.dir, f) + if os.path.exists(fp): + fit_image = fp; + break - if os.path.exists(FIT_UPGRADE_IMAGE_PLATFORM): - fit_image = FIT_UPGRADE_IMAGE_PLATFORM - elif os.path.exists(FIT_UPGRADE_IMAGE_ALL): - fit_image = FIT_UPGRADE_IMAGE_ALL - else: + if fit_image is None: self.abort("The FIT upgrade image is missing. Upgrade cannot continue.") - # - # The platform configuration file will describe which partition - # and which format should be used to store the FIT image. - # - partition = None - raw = False - pc = self.platform.platform_config - - if pc: - if 'loader' in pc and pc['loader']: - if 'partition' in pc['loader']: - partition = pc['loader']['partition'] - else: - self.abort("No partition listed in the loader section of the platform configuration.") - raw = pc['loader'].get('raw', False) - else: - self.abort("No loader section listed in the platform configuration.") - else: - self.abort("No platform configuration.") - - if raw: - # - # The loader file is written raw to the given partition. - # - print "Writing %s to %s..." % (fit_image, partition) - if os.system("dd of=%s if=%s" % (partition, fit_image)) != 0: - self.abort("Failure writing loader data to partition %s." % (partition)) - - else: - # - # Mount the loader partition and rewrite the loader image. - # - mdir="/mnt/upgrade/loader" - self.mount(mdir, partition=partition) - self.copyfile(fit_image, os.path.join(mdir, FIT_LOADER_IMAGE_NAME)) - self.umount(mdir) + with OnlMountContextReadWrite("ONL-BOOT", self.logger) as d: + self.copyfile(fit_image, os.path.join(d.directory, "%s.itb" % (self.platform.platform()))) self.reboot() @@ -108,32 +78,26 @@ class Loader_Upgrade_x86_64(Loader_Upgrade): def do_upgrade(self, forced=False): - X86_64_UPGRADE_DIR="/etc/onl/upgrade/%s/" % (self.parch) - X86_64_UPGRADE_PATTERNS = [ "kernel-*", "initrd-*" ] + X86_64_UPGRADE_DIR=sysconfig.upgrade.loader.package.dir + X86_64_UPGRADE_PATTERNS = [ "kernel-*", "*initrd*" ] - # - # Mount the ONL-BOOT partition - # - mdir="/mnt/onl-boot" - self.mount(mdir, label="ONL-BOOT") + with OnlMountContextReadWrite("ONL-BOOT", self.logger) as d: + for f in os.listdir(X86_64_UPGRADE_DIR): + for pattern in X86_64_UPGRADE_PATTERNS: + if fnmatch.fnmatch(f, pattern): + self.copyfile(os.path.join(X86_64_UPGRADE_DIR, f), os.path.join(d.directory, f)) - for f in os.listdir(X86_64_UPGRADE_DIR): - for pattern in X86_64_UPGRADE_PATTERNS: - if fnmatch.fnmatch(f, pattern): - self.copyfile(os.path.join(X86_64_UPGRADE_DIR, f), os.path.join(mdir, f)) + # Disabled until it can be resolved with the new installer. + #src = "/lib/platform-config/current/onl/boot/grub.cfg" + #dst = os.path.join(d.directory, "grub/grub.cfg") + #if os.path.exists(src): + # self.copyfile(src, dst) - src = "/lib/platform-config/current/onl/boot/grub.cfg" - dst = os.path.join(mdir, "grub/grub.cfg") - if os.path.exists(src): - self.copyfile(src, dst) - - self.umount(mdir) self.reboot() - if __name__ == '__main__': import platform diff --git a/packages/base/all/vendor-config-onl/src/etc/onl/sysconfig/00-defaults.yml b/packages/base/all/vendor-config-onl/src/etc/onl/sysconfig/00-defaults.yml new file mode 100644 index 00000000..a4fe5b85 --- /dev/null +++ b/packages/base/all/vendor-config-onl/src/etc/onl/sysconfig/00-defaults.yml @@ -0,0 +1,39 @@ +############################################################ +# +# ONL Default System Configuration. +# +# These provide the base default values for all sysconfig keys. +# +############################################################ +installer: + menu_name: "\"Open Network Linux\"" + os_name: Open Network Linux + +upgrade: + onie: + auto: advisory + loader: + auto: advisory + versions: /etc/onl/loader/versions.json + package: + dir: /etc/onl/upgrade/$PARCH + fit_images: + - $PLATFORM.itb + - onl-loader-fit.itb + +pki: + key: + name: key.pem + len: 2048 + cert: + name: certificate + csr: + fields: + C: US + ST: CA + O: Open Compute Project + localityName: Santa Clara + commonName: Networking + organizationalUnitName: Open Network Linux + emailAddress: support@bigswitch.com + cdays: 3600 diff --git a/packages/base/all/vendor-config-onl/src/lib/platform-config-defaults-x86-64.yml b/packages/base/all/vendor-config-onl/src/lib/platform-config-defaults-x86-64.yml index c3f416bf..fb897b59 100644 --- a/packages/base/all/vendor-config-onl/src/lib/platform-config-defaults-x86-64.yml +++ b/packages/base/all/vendor-config-onl/src/lib/platform-config-defaults-x86-64.yml @@ -19,17 +19,10 @@ default: # this is mostly to *reject* invalid disk labels, # since we will never create our own - initrd-amd64: &initrd-amd64 - =: onl-loader-initrd-amd64.cpio.gz - package: onl-loader-initrd:amd64 - - initrd: - <<: *initrd-amd64 - kernel-3.2: &kernel-3-2 =: kernel-3.2-deb7-x86_64-all package: onl-kernel-3.2-deb7-x86-64-all:amd64 - + kernel-3.9.6: &kernel-3-9-6 =: kernel-3.9.6-x86-64-all package: onl-kernel-3.9.6-x86-64-all:amd64 @@ -39,7 +32,7 @@ default: package: onl-kernel-3.18-x86-64-all:amd64 # pick one of the above kernels - kernel: + kernel: <<: *kernel-3-2 # GRUB command line arguments for 'serial' declaration @@ -70,10 +63,10 @@ default: ##args: >- ## nopat ## console=ttyS0,115200n8 - + ##device: /dev/vda ### install to a specific block device - + device: ONIE-BOOT # install to the device that contains the ONIE-BOOT partition # (query using parted and/or blkid) @@ -103,7 +96,7 @@ default: ##- ONL-CONFIG: 128MiB ##- ONL-IMAGES: 384MiB ##- ONL-DATA: 100% - + network: # remap interface names on boot (loader only) @@ -114,7 +107,7 @@ default: # this should work for most systems ma1: name: eth0 - + # for other wierd corner cases ##ma1: ## name: ~ diff --git a/packages/base/all/vendor-config-onl/src/python/onl/install/BaseInstall.py b/packages/base/all/vendor-config-onl/src/python/onl/install/BaseInstall.py index 274268f9..f18cd649 100644 --- a/packages/base/all/vendor-config-onl/src/python/onl/install/BaseInstall.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/install/BaseInstall.py @@ -19,6 +19,7 @@ from InstallUtils import MountContext, BlkidParser, PartedParser from InstallUtils import ProcMountsParser import onl.YamlUtils +from onl.sysconfig import sysconfig class Base: @@ -363,9 +364,9 @@ terminal_input serial terminal_output serial set timeout=5 -menuentry OpenNetworkLinux { +menuentry %(boot_menu_entry)s { search --no-floppy --label --set=root ONL-BOOT - echo 'Loading Open Network Linux ...' + echo 'Loading %(boot_loading_name)s ...' insmod gzio insmod part_msdos linux /%(kernel)s %(args)s onl_platform=%(platform)s @@ -476,22 +477,26 @@ class GrubInstaller(SubprocessMixin, Base): kernel = self.im.platformConf['grub']['kernel'] ctx['kernel'] = kernel['='] if type(kernel) == dict else kernel - - initrd = self.im.platformConf['grub']['initrd'] - ctx['initrd'] = initrd['='] if type(initrd) == dict else initrd - ctx['args'] = self.im.platformConf['grub']['args'] ctx['platform'] = self.im.installerConf.installer_platform ctx['serial'] = self.im.platformConf['grub']['serial'] + ctx['boot_menu_entry'] = sysconfig.installer.menu_name + ctx['boot_loading_name'] = sysconfig.installer.os_name + + files = [] + for f in set(os.listdir(self.im.installerConf.installer_dir) + self.zf.namelist()): + if 'initrd' in f and 'cpio' in f: + ctx['initrd'] = f + files.append(f) + if 'kernel' in f: + files.append(f) + cf = GRUB_TPL % ctx self.log.info("Installing kernel") dev = self.blkidParts['ONL-BOOT'] - files = set(os.listdir(self.im.installerConf.installer_dir) + self.zf.namelist()) - files = [b for b in files if b.startswith('kernel-') or b.startswith('onl-loader-initrd-')] - with MountContext(dev.device, log=self.log) as ctx: def _cp(b): dst = os.path.join(ctx.dir, b) @@ -600,8 +605,7 @@ class UbootInstaller(SubprocessMixin, Base): % self.platformConf['loader']['loadaddr']) cmds.append("setenv onl_platform %s" % self.installerConf.installer_platform) - itb = self.platformConf['flat_image_tree']['itb'] - if type(itb) == dict: itb = itb['='] + itb = "%s.itb" % self.installerConf.installer_platform cmds.append("setenv onl_itb %s" % itb) for item in self.platformConf['loader']['setenv']: k, v = list(item.items())[0] @@ -695,7 +699,7 @@ class UbootInstaller(SubprocessMixin, Base): self.log.info("Installing ONL loader %s --> %s:%s...", loaderBasename, dev.device, loaderBasename) with MountContext(dev.device, log=self.log) as ctx: - dst = os.path.join(ctx.dir, loaderBasename) + dst = os.path.join(ctx.dir, "%s.itb" % self.im.installerConf.installer_platform) self.installerCopy(loaderBasename, dst) return 0 diff --git a/packages/base/all/vendor-config-onl/src/python/onl/mounts/__init__.py b/packages/base/all/vendor-config-onl/src/python/onl/mounts/__init__.py index 68eda495..ee72b0f6 100755 --- a/packages/base/all/vendor-config-onl/src/python/onl/mounts/__init__.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/mounts/__init__.py @@ -10,54 +10,151 @@ import yaml import tempfile import shutil -class OnlMountManager(object): - def __init__(self, mdata, logger): +class MountManager(object): - if os.path.exists(mdata): - mdata = yaml.load(open(mdata, "r")); - - self.mdata = mdata + def __init__(self, logger): + self.read_proc_mounts() self.logger = logger + if self.logger is None: + self.logger = logging.getLogger('onl:mounts') - # Needed to avoid ugly warnings from fsck - if not os.path.exists('/etc/mtab'): - open("/etc/mtab", 'w').close(); + def read_proc_mounts(self): + self.mounts = {} + with open('/proc/mounts') as mounts: + for line in mounts.readlines(): + (dev, dir_, type_, options, a, b) = line.split() + self.mounts[dir_] = dict(dev=dev, mode=options.split(',')[0]) + def is_mounted(self, device, directory): + self.read_proc_mounts() + if directory in self.mounts and self.mounts[directory]['dev'] == device: + return self.mounts[directory] + return None - def checkmount(self, directory): - with open("/proc/mounts") as f: - return directory in f.read() - - def checkroot(self, dev): - pat = "%s / " % dev - with open("/proc/mounts") as f: - return pat in f.read() + def is_dev_mounted(self, device): + self.read_proc_mounts() + for (k, v) in self.mounts.iteritems(): + if v['dev'] == device: + return True + return False def mount(self, device, directory, mode='r', timeout=5): - self.logger.debug("Mounting %s -> %s %s" % (device, directory, mode)) + + mountargs = [ str(mode) ] + current = self.is_mounted(device, directory) + if current: + if current['mode'] == mode: + # Already mounted as requested. + self.logger.debug("%s already mounted @ %s with mode %s. Doing nothing." % (device, directory, mode)) + return True + elif device == current['dir']: + # Already mounted, at a different location (e.g. '/'), but not in the requested mode. + self.logger.debug("%s mounted @ %s (%s) with mode %s. It will be remounted %s.", + device, directory, current['dir'], current['mode'], mode) + mountargs.append('remount') + directory = current['dir'] + else: + # Already mounted, but not in the requested mode. + self.logger.debug("%s mounted @ %s with mode %s. It will be remounted %s." % (device, directory, current['mode'], mode)) + mountargs.append('remount') + else: + # Not mounted at all. + self.logger.debug("%s not mounted @ %s. It will be mounted %s" % (device, directory, mode)) + try: - subprocess.check_call("mount -%s %s %s" % (mode, device, directory), shell=True) + cmd = "mount -o %s %s %s" % (','.join(mountargs), device, directory) + self.logger.debug("+ %s" % cmd) + subprocess.check_call(cmd, shell=True) except subprocess.CalledProcessError, e: self.logger.error("Mount failed: '%s'" % e.output) return False # If requested, wait for the mount to complete. while(timeout > 0): - if self.checkmount(directory): + if self.is_mounted(device, directory): break time.sleep(1) timeout-=1 - if self.checkmount(directory): - self.logger.info("%s is now mounted @ %s" % (device, directory)) + current = self.is_mounted(device, directory) + if current: + self.logger.debug("%s is now mounted @ %s %s" % (device, directory, current['mode'])) return True else: - self.logger.info("%s failed to report in /proc/mounts." % (directory)) + self.logger.error("%s failed to report in /proc/mounts." % (directory)) + + def umount(self, device, directory): + current = self.is_mounted(device, directory) + if not current: + self.logger.error("umount: %s is not mounted @ %s" % (device, directory)) + return False + + try: + out = subprocess.check_output("umount %s" % directory, shell=True) + self.logger.debug("%s @ %s has been unmounted." % (device, directory)) + self.read_proc_mounts() + return True + + except subprocess.CalledProcessError,e: + self.logger.error("Could not unmount %s @ %s: %s" % (device, directory, e.output)) - def mountall(self, all_=False, fsck=None, timeout=5): - for (k, v) in self.mdata['mounts'].iteritems(): +class MountContext(object): + def __init__(self, device, directory, mode, logger): + self.mm = MountManager(logger) + self.device = device + self.directory = directory + self.mode = mode + + def __enter__(self): + self.status = self.mm.is_mounted(self.device, self.directory) + self.mm.mount(self.device, self.directory, self.mode) + return self + + def __exit__(self, eType, eValue, eTrace): + if self.status: + self.mm.mount(self.device, self.directory, self.status['mode']) + else: + self.mm.umount(self.device, self.directory) + + +class OnlMountManager(object): + def __init__(self, mdata="/etc/mtab.yml", logger=None): + self.mm = MountManager(logger) + + if os.path.exists(mdata): + mdata = yaml.load(open(mdata, "r")); + + self.mdata = mdata + self.logger = logger if logger else logging.getLogger(self.__class__.__name__) + + # Needed to avoid ugly warnings from fsck + if not os.path.exists('/etc/mtab'): + os.system("ln -s /proc/mounts /etc/mtab") + + self.missing = None + + def init(self, timeout=5): + for(k, v) in self.mdata['mounts'].iteritems(): + # + # Get the partition device for the given label. + # The timeout logic is here to handle waiting for the + # block devices to arrive at boot. + # + while timeout >= 0: + try: + v['device'] = subprocess.check_output("blkid -L %s" % k, shell=True).strip() + break + except subprocess.CalledProcessError: + self.logger.debug("Block label %s does not yet exist..." % k) + time.sleep(1) + timeout -= 1 + + if 'device' not in v: + self.logger.error("Timeout waiting for block label %s after %d seconds." % (k, timeout)) + self.missing = k + return False # # Make the mount point for future use. @@ -66,90 +163,164 @@ class OnlMountManager(object): self.logger.debug("Make directory '%s'..." % v['dir']) os.makedirs(v['dir']) - # - # Get the partition device. - # The timeout logic is here to handle waiting for the - # block devices to arrive at boot. - # - while timeout > 0: - try: - v['device'] = subprocess.check_output("blkid -L %s" % k, shell=True).strip() - break - except subprocess.CalledProcessError: - self.logger.debug("Block label %s does not yet exist..." % k) - time.sleep(1) - timeout -= 1 - - if 'device' not in v: - self.logger.error("Timeout waiting for block label %s after %d seconds." % (k, timeout)) - continue; - self.logger.debug("%s @ %s" % (k, v['device'])) - isRoot = self.checkroot(v['device']) - # if this device is current the root device, - # ignore any umount/mount/fsck shenanigans + def __fsck(self, label, device): + self.logger.info("Running fsck on %s [ %s ]..." % (label, device)) + cmd = "fsck.ext4 -p %s" % (device) + self.logger.debug(cmd) + try: + out = subprocess.check_output(cmd, shell=True) + self.logger.info("%s [ %s ] is clean." % (device, label)) + return True + except subprocess.CalledProcessError, e: + self.logger.error("fsck failed: %s" % e.output) + return False - # - # If its currently mounted we should unmount first. - # - if not isRoot and self.checkmount(v['device']): - self.logger.info("%s is currently mounted." % (k)) - try: - out = subprocess.check_output("umount %s" % v['device'], shell=True) - self.logger.info("%s now unmounted." % (k)) - except subprocess.CalledProcessError,e: - self.logger.error("Could not unmount %s @ %s: %s" % (k, v['device'], e.output)) - continue - # - # FS Checks - # - if fsck is not None: - # Override fsck setting with given value - self.logger.debug("Overriding fsck settings for %s with %s" % (k, fsck)) - v['fsck'] = fsck + def __label_entry(self, label, emsg=True): - if not isRoot and v.get('fsck', False): - try: - self.logger.info("Running fsck on %s [ %s ]..." % (k, v['device'])) - cmd = "fsck.ext4 -p %s" % (v['device']) - self.logger.debug(cmd) - try: - out = subprocess.check_output(cmd, shell=True) - self.logger.info("%s [ %s ] is clean." % (v['device'], k)) - except subprocess.CalledProcessError, e: - self.logger.error("fsck failed: %s" % e.output) - except subprocess.CalledProcessError, e: - # Todo - recovery options - raise + if label in self.mdata['mounts']: + return self.mdata['mounts'][label] + if emsg: + self.logger.error("Label %s does not exist." % label) - if all_: - v['mount'] = 'w' + return None - mount = v.get('mount', None) - if not isRoot and mount: - if mount in ['r', 'w']: - self.mount(v['device'], v['dir'], mode=mount, timeout=v.get('timeout', 5)) + def validate_labels(self, labels): + + if type(labels) is str: + labels = labels.split(',') + elif type(labels) is dict: + labels = [ labels.keys() ] + elif type(labels) is list: + pass + else: + raise ValueError("invalid labels argument.") + + if 'all' in labels: + labels = filter(lambda l: l != 'all', labels) + self.mdata['mounts'].keys() + + rv = [] + for l in list(set(labels)): + if self.__label_entry("ONL-%s" % l.upper(), False): + rv.append("ONL-%s" % l.upper()) + elif self.__label_entry(l.upper(), False): + rv.append(l.upper()) + elif self.__label_entry(l): + rv.append(l) + else: + pass + + return rv; + + def fsck(self, labels, force=False): + labels = self.validate_labels(labels) + for label in labels: + m = self.__label_entry(label) + if force or m.get('fsck', False): + if not self.mm.is_dev_mounted(m['device']): + self.__fsck(label, m['device']) else: - self.logger("Mount %s has an invalid mount mode (%s)" % (k, mount)) + self.logger.error("%s (%s) is mounted." % (label, m['device'])) + + + def mount(self, labels, mode=None): + labels = self.validate_labels(labels) + for label in labels: + m = self.__label_entry(label) + mmode = mode + if mmode is None: + mmode = m.get('mount', False) + if mmode: + self.mm.mount(m['device'], m['dir'], mmode) + + + + def umount(self, labels, all_=False): + labels = self.validate_labels(labels) + for label in labels: + m = self.__label_entry(label) + if self.mm.is_mounted(m['device'], m['dir']): + if all_ or m.get('mount', False) is False: + self.mm.umount(m['device'], m['dir']) + + + + ############################################################ + # + # CLI Support + # + ############################################################ + @staticmethod + def cmdMount(args, register=False): + if register: + p = args.add_parser('mount') + p.add_argument("labels", nargs='+', metavar='LABEL') + p.add_argument("--rw", help='Ignore the mtab setting and mount all labels read/write.', action='store_true') + p.add_argument("--ro", help='Ignore the mtab setting and mount all labels read-only.', action='store_true') + p.set_defaults(func=OnlMountManager.cmdMount) + else: + if args.rw: + mode = 'rw' + elif args.ro: + mode = 'ro' + else: + mode = None + + o = OnlMountManager(args.mtab, args.logger) + o.init() + o.mount(args.labels, mode=mode) @staticmethod - def main(): + def cmdFsck(args, register=False): + if register: + p = args.add_parser('fsck') + p.add_argument("labels", nargs='+', metavar='LABEL') + p.add_argument("--force", help='Ignore the mtab setting and run fsck on given labels.', action='store_true') + p.set_defaults(func=OnlMountManager.cmdFsck) + else: + o = OnlMountManager(args.mtab, args.logger) + o.init() + o.fsck(args.labels, args.force) + + @staticmethod + def cmdUnmount(args, register=False): + if register: + p = args.add_parser('unmount') + p.add_argument("labels", nargs='+', metavar='LABEL') + p.add_argument("--all", help="Ignore the mtab setting and unmount all labels.", action='store_true') + p.set_defaults(func=OnlMountManager.cmdUnmount) + else: + o = OnlMountManager(args.mtab, args.logger) + o.init() + o.umount(args.labels, args.all) + + @staticmethod + def initCommands(parser): + sp = parser.add_subparsers() + for attr in dir(OnlMountManager): + if attr.startswith('cmd'): + getattr(OnlMountManager, attr)(sp, register=True) + + @staticmethod + def main(name): import argparse logging.basicConfig() + logger = logging.getLogger(name) - ap = argparse.ArgumentParser(description="ONL Mount Manager."); + ap = argparse.ArgumentParser(description="ONL Mount Manager.") ap.add_argument("--mtab", default="/etc/mtab.yml") - ap.add_argument("--rw", action='store_true') - ap.add_argument("--verbose", "-v", action='store_true') + ap.add_argument("--verbose", "-m", action='store_true') ap.add_argument("--quiet", "-q", action='store_true') + OnlMountManager.initCommands(ap) + ap.set_defaults(logger=logger) + ops = ap.parse_args(); - logger = logging.getLogger("initmounts") if ops.verbose: logger.setLevel(logging.DEBUG) elif ops.quiet: @@ -157,160 +328,29 @@ class OnlMountManager(object): else: logger.setLevel(logging.INFO) - mm = OnlMountManager(ops.mtab, logger) - if ops.rw: - mm.mountall(all_=True, fsck=False) - else: - mm.mountall() + ops.func(ops) -############################################################ -# -# Fix this stuff -# -############################################################ -class ServiceMixin(object): +class OnlMountContext(MountContext): + def __init__(self, label, mode, logger): + mm = OnlMountManager() + mm.init() + labels = mm.validate_labels(label) + if not labels: + raise ValueError("Label '%s' doesn't exist." % label) + MountContext.__init__(self, + mm.mdata['mounts'][labels[0]]['device'], + mm.mdata['mounts'][labels[0]]['dir'], + mode, + logger) - def _execute(self, cmd, root=False, ex=True): - self.logger.debug("Executing: %s" % cmd) - if root is True and os.getuid() != 0: - cmd = "sudo " + cmd - try: - subprocess.check_call(cmd, shell=True) - except Exception, e: - if ex: - self.logger.error("Command failed: %s" % e) - raise - else: - return e.returncode - - def _raise(self, msg, klass): - self.logger.critical(msg) - raise klass(msg) - -class DataMount(ServiceMixin): - - def __init__(self, partition, logger=None): - self.partition = partition - self.logger = logger - - self.mountpoint = None - self.mounted = False - - if os.path.isabs(partition) and not os.path.exists(partition): - # Implicitly a bind mount. It may not exist yet, so create it - os.makedirs(partition) - - if os.path.exists(partition): - # Bind mount - self.device = None - else: - self.device = subprocess.check_output("blkid | grep %s | awk '{print $1}' | tr -d ':'" % self.partition, shell=True).strip() - if self.device is None or len(self.device) is 0: - self._raise("Data partition %s does not exist." % self.partition, - RuntimeError) - self.logger.debug("device is %s" % self.device) - - def _mount(self): - if self.device: - self._execute("mount %s %s" % (self.device, self.mountdir()), root=True) - else: - self._execute("mount --bind %s %s" % (self.partition, - self.mountdir()), root=True) - self.mounted = True - - def _umount(self): - mounted, self.mounted = self.mounted, False - if mounted: - self._execute("umount %s" % self.mountpoint, root=True) - mountpoint, self.mountpoint = self.mountpoint, None - if mountpoint and os.path.exists(mountpoint): - self.logger.debug("+ /bin/rmdir %s", mountpoint) - os.rmdir(mountpoint) - - def __enter__(self): - self._mount() - return self - - def __exit__(self, type_, value, traceback): - self._umount() - - def mountdir(self): - if self.mountpoint is None: - self.mountpoint = tempfile.mkdtemp(prefix="pki-", suffix=".d") - self.logger.debug("mountpoint is %s" % self.mountpoint) - return self.mountpoint +class OnlMountContextReadOnly(OnlMountContext): + def __init__(self, label, logger): + OnlMountContext.__init__(self, label, "ro", logger) -class OnlDataStore(ServiceMixin): - - # Data partition containing the persistant store - DATA_PARTITION='ONL-CONFIG' - - # Persistant directory on DATA_PARTITION - P_DIR=None - - # Runtime directory in the root filesystem - R_DIR=None - - def __init__(self, logger=None): - - if logger is None: - logging.basicConfig() - logger = logging.getLogger(str(self.__class__)) - logger.setLevel(logging.WARN) - - self.logger = logger - - self.mount = DataMount(self.DATA_PARTITION, logger=self.logger) - - if self.P_DIR is None: - raise AttributeError("P_DIR must be set in the derived class.") - - if self.R_DIR is None: - raise ValueError("R_DIR must be set in the derived class.") - - # The R_DIR is accessed here - self.r_dir = self.R_DIR - - self.logger.debug("persistant dir: %s" % self.p_dir) - self.logger.debug(" runtime dir: %s" % self.r_dir) - - @property - def p_dir(self): - return os.path.join(self.mount.mountdir(), self.P_DIR) - - def _sync_dir(self, src, dst): - self.logger.debug("Syncing store from %s -> %s" % (src, dst)) - if os.path.exists(dst): - shutil.rmtree(dst) - - if not os.path.exists(src): - os.makedirs(src) - - shutil.copytree(src, dst) - - def init_runtime(self): - with self.mount: - self._sync_dir(self.p_dir, self.r_dir) - - def commit_runtime(self): - with self.mount: - self._sync_dir(self.r_dir, self.p_dir) - - def diff(self): - with self.mount: - rv = self._execute("diff -rNq %s %s" % (self.p_dir, self.r_dir), ex=False) - return rv == 0 - - def ls(self): - with self.mount: - self._execute("cd %s && find ." % (self.p_dir)) - - def rm(self, filename): - with self.mount: - os.unlink(os.path.join(self.p_dir, filename)) - os.unlink(os.path.join(r_dir, filename)) - +class OnlMountContextReadWrite(OnlMountContext): + def __init__(self, label, logger): + OnlMountContext.__init__(self, label, "rw", logger) diff --git a/packages/base/all/vendor-config-onl/src/python/onl/pki/__init__.py b/packages/base/all/vendor-config-onl/src/python/onl/pki/__init__.py index 2f8dd157..eec0f7fc 100755 --- a/packages/base/all/vendor-config-onl/src/python/onl/pki/__init__.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/pki/__init__.py @@ -13,83 +13,85 @@ import shutil import subprocess import tempfile import yaml +from onl.mounts import OnlMountManager, OnlMountContextReadOnly, OnlMountContextReadWrite +from onl.sysconfig import sysconfig +from onl.util import * -from onl.mounts import OnlDataStore -class OnlPKI(OnlDataStore): - P_DIR='private' - R_DIR='/private' - PRIVATE_KEY='key.pem' - CERTIFICATE='certificate' +class OnlPkiContextReadWrite(OnlMountContextReadWrite): + def __init__(self, logger): + OnlMountContextReadWrite.__init__(self, "ONL-CONFIG", logger) - KLEN=2048 - CDAYS=3650 +class OnlPkiContextReadOnly(OnlMountContextReadOnly): + def __init__(self, logger): + OnlMountContextReadOnly.__init__(self, "ONL-CONFIG", logger) - CSR_FILE='/etc/onl/config/csr.yml' + +class OnlPki(OnlServiceMixin): + """Initialize the ONL-CONFIG::PKI credentials.""" + + CONFIG_PKI_DIR="/mnt/onl/config/pki" def __init__(self, logger=None): - OnlDataStore.__init__(self, logger) - self.kpath = os.path.join(self.R_DIR, self.PRIVATE_KEY) - self.cpath = os.path.join(self.R_DIR, self.CERTIFICATE) + self.logger = logger - def init_cert(self, force=False): - if not os.path.exists(self.cpath) or force: - self.logger.info("Generating self-signed certificate...") + if self.logger is None: + self.logger = logging.getLogger("ONL:PKI") - # - # The csr.yml file allows the system integrator to customize - # the fields for the certificate. - # - fdict = {} - try: - fdict = yaml.load(open(self.CSR_FILE)) - except Exception, e: - self.logger.error(e); + self.kpath = os.path.join(self.CONFIG_PKI_DIR, + sysconfig.pki.key.name) - csr = tempfile.NamedTemporaryFile(prefix="pki-", suffix=".csr", delete=False) - csr.close() - - fields = [ "%s=%s" % (k, v) for k,v in fdict.iteritems() ] - subject = "/" + "/".join(fields) - self.logger.debug("Subject: '%s'", subject) - self.logger.debug("CSR: %s", csr.name) - self._execute("""openssl req -new -batch -subj "%s" -key %s -out %s""" % ( - subject, self.kpath, csr.name)) - self._execute("""openssl x509 -req -days %s -in %s -signkey %s -out %s""" % ( - self.CDAYS, - csr.name, self.kpath, self.cpath)) - os.unlink(csr.name) - else: - self.logger.info("Using existing certificate.") - - def init_key(self, force=False): - if not os.path.exists(self.kpath) or force: - self.logger.info("Generating private key...") - cmd = "openssl genrsa -out %s %s" % (self.kpath, self.KLEN) - self._execute(cmd) - self.init_cert(force=True) - else: - self.logger.info("Using existing private key.") + self.cpath = os.path.join(self.CONFIG_PKI_DIR, + sysconfig.pki.cert.name) def init(self, force=False): self.init_key(force=force) self.init_cert(force=force) - self.commit_runtime() + def init_key(self, force=False): + with OnlPkiContextReadOnly(self.logger): + if not os.path.exists(self.kpath) or force: + self.logger.info("Generating private key...") + cmd = "openssl genrsa -out %s %s" % (self.kpath, sysconfig.pki.key.len) + with OnlPkiContextReadWrite(self.logger): + if not os.path.isdir(self.CONFIG_PKI_DIR): + os.makedirs(self.CONFIG_PKI_DIR) + self._execute(cmd) + self.init_cert(force=True) + else: + self.logger.info("Using existing private key.") + + def init_cert(self, force=False): + with OnlPkiContextReadOnly(self.logger): + if not os.path.exists(self.cpath) or force: + self.logger.info("Generating self-signed certificate...") + csr = tempfile.NamedTemporaryFile(prefix="pki-", suffix=".csr", delete=False) + csr.close() + fields = [ "%s=%s" % (k, v) for k,v in sysconfig.pki.cert.csr.fields.iteritems() ] + subject = "/" + "/".join(fields) + self.logger.debug("Subject: '%s'", subject) + self.logger.debug("CSR: %s", csr.name) + with OnlPkiContextReadWrite(self.logger): + if not os.path.isdir(self.CONFIG_PKI_DIR): + os.makedirs(self.CONFIG_PKI_DIR) + self._execute("""openssl req -new -batch -subj "%s" -key %s -out %s""" % ( + subject, self.kpath, csr.name)) + self._execute("""openssl x509 -req -days %s -sha256 -in %s -signkey %s -out %s""" % ( + sysconfig.pki.cert.csr.cdays, + csr.name, self.kpath, self.cpath)) + os.unlink(csr.name) + else: + self.logger.info("Using existing certificate.") @staticmethod def main(): ap = argparse.ArgumentParser(description="ONL PKI Management") - ap.add_argument("--init", action='store_true', help="Initialize /private and PKI files if necessary.") + ap.add_argument("--init", action='store_true', help="Initialize PKI files (if necessary)") ap.add_argument("--regen-cert", action='store_true', help="Regenerate certificate.") ap.add_argument("--force", "-f", action='store_true', help="Force regeneration of the key and certificate during initialization (--init)") - ap.add_argument("--commit", action='store_true', help="Commit the runtime /private directory to the persistant storage.") - ap.add_argument("--ls", action='store_true', help="List contents of the peristant directory.") ap.add_argument("--quiet", "-q", action='store_true', help="Quiet output.") ap.add_argument("--verbose", "-v", action='store_true', help="Verbose output.") - ap.add_argument("--part", help='Override Data Partition (testing only).') - ap.add_argument("--rd", help='Override /private runtime directory (testing only)') ops = ap.parse_args() @@ -103,27 +105,10 @@ class OnlPKI(OnlDataStore): else: logger.setLevel(logging.INFO) - if ops.part: - OnlPKI.DATA_PARTITION=ops.part - - if ops.rd: - OnlPKI.R_DIR=ops.rd - - pki = OnlPKI(logger) + pki = OnlPki(logger) if ops.init: - pki.init_runtime() pki.init_key(force=ops.force) pki.init_cert(force=ops.force) - pki.commit_runtime() - elif ops.regen_cert: pki.init_cert(force=True) - pki.commit_runtime() - - elif ops.commit: - pki.commit_runtime() - elif ops.ls: - pki.ls() - else: - pki.diff() diff --git a/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py b/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py index 874782a4..1457f23c 100644 --- a/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py @@ -13,9 +13,9 @@ import pprint import json import os import re - import yaml import onl.YamlUtils +import subprocess class OnlInfoObject(object): DEFAULT_INDENT=" " @@ -173,14 +173,8 @@ class OnlPlatformBase(object): def baseconfig(self): return True - def manufacturer(self): - raise Exception("Manufacturer is not set.") - - def model(self): - raise Exception("Model is not set.") - def platform(self): - raise Exception("Platform is not set.") + return self.PLATFORM def baseplatform(self): p = self.platform() @@ -188,8 +182,7 @@ class OnlPlatformBase(object): return p def description(self): - return "%s %s (%s)" % (self.manufacturer(), self.model(), - self.platform()) + return "%s %s" % (self.MANUFACTURER, self.MODEL) def serialnumber(self): return self.onie_info.SERIAL_NUMBER @@ -200,31 +193,26 @@ class OnlPlatformBase(object): # ONL Platform Information Tree - def opit_oid(self): - return "1.3.6.1.4.1.37538.2.1000" + def platform_info_oid(self): + return "1.3.6.1.4.1.42623.1.1" # ONL Platform Information General Tree - def opitg_oid(self): - return self.opit_oid() + ".1" + def platform_info_general_oid(self): + return self.platform_info_oid() + ".1" # ONL Platform Information General Sys Tree - def opitg_sys_oid(self): - return self.opitg_oid() + ".1" + def platform_info_general_sys_oid(self): + return self.platform_info_general_oid() + ".1" # ONL Platform Information Vendor Tree - def opitv_oid(self): - return self.opit_oid() + ".2" - - def sys_oid_vendor(self): - return ".37538" + def platform_info_vendor_oid(self): + return self.platform_info_oid() + ".2" def sys_oid_platform(self): raise Exception("sys_oid_platform() is not set.") def sys_object_id(self): - return ( self.opitv_oid() + - self.sys_oid_vendor() + - self.sys_oid_platform()); + return "%s.%s%s" % (self.platform_info_vendor_oid(), self.PRIVATE_ENTERPRISE_NUMBER, self.SYS_OBJECT_ID) def onie_version(self): return self.onie_info.ONIE_VERSION @@ -269,20 +257,24 @@ class OnlPlatformBase(object): # is ma1 and lo return 2 + def environment(self): + yamlstr = subprocess.check_output(['/bin/onlpd', '-r', '-y']) + data = yaml.load(yamlstr); + return data + def __str__(self): - s = """Manufacturer: %s -Model: %s -Platform: %s -Description: %s + s = """Model: %s +Manufacturer: %s +Ports: %s (%s) System Object Id: %s System Information: %s %s """ % ( - self.manufacturer(), - self.model(), - self.platform(), - self.description(), + self.MODEL, + self.MANUFACTURER, + self.PORT_COUNT, + self.PORT_CONFIG, self.sys_object_id(), str(self.onie_info), str(self.platform_info), @@ -298,7 +290,22 @@ Warning: %s return s +class OnlPlatformPortConfig_48x1_4x10(object): + PORT_COUNT=52 + PORT_CONFIG="48x1 + 4x10" +class OnlPlatformPortConfig_48x10_4x40(object): + PORT_COUNT=52 + PORT_CONFIG="48x10 + 4x40" +class OnlPlatformPortConfig_48x10_6x40(object): + PORT_COUNT=54 + PORT_CONFIG="48x10 + 6x40" +class OnlPlatformPortConfig_32x40(object): + PORT_COUNT=32 + PORT_CONFIG="32x40" +class OnlPlatformPortConfig_32x100(object): + PORT_COUNT=32 + PORT_CONFIG="32x100" diff --git a/packages/base/all/vendor-config-onl/src/python/onl/sysconfig/__init__.py b/packages/base/all/vendor-config-onl/src/python/onl/sysconfig/__init__.py new file mode 100644 index 00000000..856755b3 --- /dev/null +++ b/packages/base/all/vendor-config-onl/src/python/onl/sysconfig/__init__.py @@ -0,0 +1,59 @@ +############################################################ +# +# ONL System Configuration +# +############################################################ +import os +import sys +import yaml +import types +import onl.onlyaml +import onl.util +import platform as pp +from onl.platform.current import OnlPlatform + +class DotDict(dict): + """ Access keys in a nested dictionary using dot notation """ + + def __getattr__(self, attr): + item = self.get(attr, None) + + if item is None: + raise AttributeError("'%s' object has no attribute '%s'" % (type(self), attr)) + + if type(item) == types.DictType: + item = DotDict(item) + + return item + + __setattr__= dict.__setitem__ + __delattr__= dict.__delitem__ + + +class OnlSystemConfig(object): + SYSTEM_CONFIG_DIR = '/etc/onl/sysconfig' + + def __init__(self): + + platform = OnlPlatform() + self.variables = {} + self.variables['PLATFORM'] = platform.platform() + self.variables['ARCH'] = pp.machine() + self.variables['PARCH'] = dict(ppc='powerpc', + x86_64='amd64', + armv7l='armel')[pp.machine()] + + self.config = {} + for f in sorted(os.listdir(self.SYSTEM_CONFIG_DIR)): + if f.endswith('.yml'): + d = onl.onlyaml.loadf(os.path.join(self.SYSTEM_CONFIG_DIR, f), self.variables) + self.config = onl.util.dmerge(self.config, d) + + self.config['pc'] = platform.platform_config + + def dump(self): + return yaml.dump(self.config, default_flow_style=False) + +x = OnlSystemConfig() +sysconfig = DotDict(x.config) +sysconfig['OnlSystemConfig'] = x diff --git a/packages/base/all/vendor-config-onl/src/python/onl/upgrade/ubase.py b/packages/base/all/vendor-config-onl/src/python/onl/upgrade/ubase.py index aacffaa8..52b39708 100644 --- a/packages/base/all/vendor-config-onl/src/python/onl/upgrade/ubase.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/upgrade/ubase.py @@ -13,6 +13,7 @@ import shutil import json import string import argparse +import yaml from time import sleep from onl.platform.current import OnlPlatform @@ -36,32 +37,11 @@ class BaseUpgrade(object): self.arch = pp.machine() self.parch = dict(ppc='powerpc', x86_64='amd64', armv7l='armel')[self.arch] self.platform = OnlPlatform() + self.init() + + def init(self): + pass - # - # TODO. - # - # DEFAULT_CONFIG = { - # "auto-upgrade" : "advisory", - # } - # - # CONFIG_FILES = [ - # "/etc/boot.d/upgrade/.upgrade-config.json", - # "/mnt/flash/override-upgrade-config.json" - # ] - # - # def load_config(self): - # self.config = self.DEFAULT_CONFIG - # for f in self.CONFIG_FILES: - # if os.path.exists(f): - # self.config.update(json.load(file(f))) - # - # self.logger.debug("Loaded Configuration:\n%s\n" % (json.dumps(self.config, indent=2))) - # - # if self.name in self.config: - # self.config = self.config['name'] - # - # self.logger.debug("Final Configuration:\n%s\n" % (json.dumps(self.config, indent=2))) - # def load_config(self): pass @@ -78,13 +58,17 @@ class BaseUpgrade(object): if os.getenv("DEBUG"): self.logger.setLevel(logging.DEBUG) + + def auto_upgrade_default(self): + return "advisory" + def init_argparser(self): self.ap = argparse.ArgumentParser("%s-upgrade" % self.name) self.ap.add_argument("--enable", action='store_true', help="Enable updates.") self.ap.add_argument("--force", action='store_true', help="Force update.") self.ap.add_argument("--no-reboot", action='store_true', help="Don't reboot.") self.ap.add_argument("--check", action='store_true', help="Check only.") - self.ap.add_argument("--auto-upgrade", help="Override auto-upgrade mode.", default='advisory') + self.ap.add_argument("--auto-upgrade", help="Override auto-upgrade mode.", default=self.auto_upgrade_default()) self.ap.add_argument("--summarize", action='store_true', help="Summarize only, no upgrades.") def banner(self): @@ -173,7 +157,7 @@ class BaseUpgrade(object): return default - UPGRADE_STATUS_JSON = "/lib/platform-config/current/upgrade.json" + UPGRADE_STATUS_JSON = "/lib/platform-config/current/onl/upgrade.json" def update_upgrade_status(self, key, value): data = {} @@ -184,7 +168,6 @@ class BaseUpgrade(object): with open(self.UPGRADE_STATUS_JSON, "w") as f: json.dump(data, f) - # # Initialize self.current_version, self.next_Version # and anything required for summarize() @@ -425,3 +408,13 @@ class BaseOnieUpgrade(BaseUpgrade): if os.path.exists(self.ONIE_UPDATER_PATH): self.logger.info("Removing previous onie-updater.") os.remove(self.ONIE_UPDATER_PATH) + + + +def upgrade_status(): + data = {} + if os.path.exists(BaseUpgrade.UPGRADE_STATUS_JSON): + with open(BaseUpgrade.UPGRADE_STATUS_JSON) as f: + data = json.load(f) + return data + diff --git a/packages/base/all/vendor-config-onl/src/python/onl/util/__init__.py b/packages/base/all/vendor-config-onl/src/python/onl/util/__init__.py new file mode 100644 index 00000000..c085b3f2 --- /dev/null +++ b/packages/base/all/vendor-config-onl/src/python/onl/util/__init__.py @@ -0,0 +1,91 @@ +import subprocess + +class OnlServiceMixin(object): + def _execute(self, cmd, root=False, ex=True): + self.logger.debug("Executing: %s" % cmd) + if root is True and os.getuid() != 0: + cmd = "sudo " + cmd + try: + subprocess.check_call(cmd, shell=True) + except Exception, e: + if ex: + self.logger.error("Command failed: %s" % e) + raise + else: + return e.returncode + + def _raise(self, msg, klass): + self.logger.critical(msg) + raise klass(msg) + + +def dmerge(d1, d2): + """ + dictionary merge. + + d1 is the default source. Leaf values from d2 will override. + + d1 is the 'default' source; leaf values from d2 will override. + Returns the merged tree. + + Set a leaf in d2 to None to create a tombstone (discard any key + from d1). + + if a (sub) key in d1, d2 differ in type (dict vs. non-dict) then + the merge will proceed with the non-dict promoted to a dict using + the default-key schema ('='). Consumers of this function should be + prepared to handle such keys. + """ + merged = {} + q = [(d1, d2, merged)] + while True: + if not q: break + c1, c2, c3 = q.pop(0) + # add in non-overlapping keys + # 'None' keys from p2 are tombstones + s1 = set(c1.keys()) + s2 = set(c2.keys()) + + for k in s1.difference(s2): + v = c1[k] + if type(v) == dict: + c3.setdefault(k, {}) + q.append((v, {}, c3[k],)) + else: + c3.setdefault(k, v) + + for k in s2.difference(s1): + v = c2[k] + if v is None: continue + if type(v) == dict: + c3.setdefault(k, {}) + q.append(({}, v, c3[k],)) + else: + c3.setdefault(k, v) + + # handle overlapping keys + for k in s1.intersection(s2): + v1 = c1[k] + v2 = c2[k] + + if v2 is None: continue + + # two dicts, key-by-key reconciliation required + if type(v1) == dict and type(v2) == dict: + c3.setdefault(k, {}) + q.append((v1, v2, c3[k],)) + continue + + # two non-dicts, p2 wins + if type(v1) != dict and type(v2) != dict: + c3[k] = v2 + continue + + if type(v1) != dict: + v1 = { '=' : v1, } + if type(v2) != dict: + v2 = { '=' : v2, } + c3.setdefault(k, {}) + q.append((v1, v2, c3[k],)) + + return merged diff --git a/packages/base/all/vendor-config-onl/src/python/onl/versions/__init__.py b/packages/base/all/vendor-config-onl/src/python/onl/versions/__init__.py new file mode 100644 index 00000000..08faa806 --- /dev/null +++ b/packages/base/all/vendor-config-onl/src/python/onl/versions/__init__.py @@ -0,0 +1,37 @@ +import json + +class OnlVersionManifest(object): + def __init__(self, manifest): + self.version = json.load(open(manifest)) + + if 'version' in self.version: + self.version = self.version['version'] + + def __getattr__(self, name): + if name in self.version: + return self.version[name] + else: + raise AttributeError("version key '%s' does not exist." % name) + +class OnlVersionBase(OnlVersionManifest): + def __init__(self): + OnlVersionManifest.__init__(self, self.MANIFEST) + +class OnlRootfsVersion(OnlVersionBase): + MANIFEST='/etc/onl/rootfs/manifest.json' + +class OnlLoaderVersion(OnlVersionBase): + MANIFEST='/etc/onl/loader/manifest.json' + +# +# Expected usage: +# +# import onl.versions +# +# print onl.versions.rootfs.BUILD_TIMESTAMP +# + +rootfs = OnlRootfsVersion() +loader = OnlLoaderVersion() + + diff --git a/packages/base/amd64/upgrade/builds/Makefile b/packages/base/amd64/upgrade/builds/Makefile index b95deb4a..0aa20caa 100644 --- a/packages/base/amd64/upgrade/builds/Makefile +++ b/packages/base/amd64/upgrade/builds/Makefile @@ -12,7 +12,7 @@ MANIFEST := $(shell $(ONLPM) --find-file onl-loader-initrd:amd64 manifest.json) all: mkdir -p files cp $(KERNELS) files - cp $(INITRD) files/initrd-amd64 + cp $(INITRD) files cp $(MANIFEST) files diff --git a/packages/base/any/faultd/src/.module b/packages/base/any/faultd/src/.module new file mode 100644 index 00000000..7c16ebc0 --- /dev/null +++ b/packages/base/any/faultd/src/.module @@ -0,0 +1 @@ +name: faultd diff --git a/packages/base/any/initrds/buildroot/builds/Makefile b/packages/base/any/initrds/buildroot/builds/Makefile index 609e382d..57b5ed0c 100644 --- a/packages/base/any/initrds/buildroot/builds/Makefile +++ b/packages/base/any/initrds/buildroot/builds/Makefile @@ -31,6 +31,8 @@ clean: setup: setup-pyroute2 setup-dnspython setup-libyaml setup-pyyaml setup-jq setup-pyparted cp $(wildcard patches/busybox*.patch) $(BUILDROOT_SOURCE)/package/busybox/ cp $(wildcard patches/kexec*.patch) $(BUILDROOT_SOURCE)/package/kexec/ + cp $(wildcard patches/openssl*.patch) $(BUILDROOT_SOURCE)/package/openssl/ + rm $(BUILDROOT_SOURCE)/package/openssl/openssl-do-not-build-docs.patch sed -i 's%^DOSFSTOOLS_SITE =.*%DOSFSTOOLS_SITE = http://downloads.openwrt.org/sources%' $(BUILDROOT_SOURCE)/package/dosfstools/dosfstools.mk sed -i 's%^UEMACS_SITE =.*%UEMACS_SITE = http://www.kernel.org/pub/linux/kernel/uemacs%;s%^UEMACS_SOURCE =.*%UEMACS_SOURCE = em-$$(UEMACS_VERSION).tar.gz%' $(BUILDROOT_SOURCE)/package/uemacs/uemacs.mk mkdir -p $(BUILDROOT_ARCHDIRS) diff --git a/packages/base/any/initrds/buildroot/builds/patches/openssl-1.0.1-parallel-build.patch b/packages/base/any/initrds/buildroot/builds/patches/openssl-1.0.1-parallel-build.patch new file mode 100644 index 00000000..8c0fc1b7 --- /dev/null +++ b/packages/base/any/initrds/buildroot/builds/patches/openssl-1.0.1-parallel-build.patch @@ -0,0 +1,354 @@ +http://rt.openssl.org/Ticket/Display.html?id=2084 + +--- a/Makefile.org ++++ b/Makefile.org +@@ -247,17 +247,17 @@ + build_libs: build_crypto build_ssl build_engines + + build_crypto: +- @dir=crypto; target=all; $(BUILD_ONE_CMD) ++ +@dir=crypto; target=all; $(BUILD_ONE_CMD) +-build_ssl: ++build_ssl: build_crypto +- @dir=ssl; target=all; $(BUILD_ONE_CMD) ++ +@dir=ssl; target=all; $(BUILD_ONE_CMD) +-build_engines: ++build_engines: build_crypto +- @dir=engines; target=all; $(BUILD_ONE_CMD) ++ +@dir=engines; target=all; $(BUILD_ONE_CMD) +-build_apps: ++build_apps: build_libs +- @dir=apps; target=all; $(BUILD_ONE_CMD) ++ +@dir=apps; target=all; $(BUILD_ONE_CMD) +-build_tests: ++build_tests: build_libs +- @dir=test; target=all; $(BUILD_ONE_CMD) ++ +@dir=test; target=all; $(BUILD_ONE_CMD) +-build_tools: ++build_tools: build_libs +- @dir=tools; target=all; $(BUILD_ONE_CMD) ++ +@dir=tools; target=all; $(BUILD_ONE_CMD) + + all_testapps: build_libs build_testapps + build_testapps: +@@ -497,9 +497,9 @@ + dist_pem_h: + (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) + +-install: all install_docs install_sw ++install: install_sw + +-install_sw: ++install_dirs: + @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ +@@ -508,6 +508,13 @@ + $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/private ++ @$(PERL) $(TOP)/util/mkdir-p.pl \ ++ $(INSTALL_PREFIX)$(MANDIR)/man1 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man3 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man5 \ ++ $(INSTALL_PREFIX)$(MANDIR)/man7 ++ ++install_sw: install_dirs + @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\ + do \ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ +@@ -511,7 +511,7 @@ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @set -e; target=install; $(RECURSIVE_BUILD_CMD) ++ +@set -e; target=install; $(RECURSIVE_BUILD_CMD) + @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ + do \ + if [ -f "$$i" ]; then \ +@@ -593,12 +600,7 @@ + done; \ + done + +-install_docs: +- @$(PERL) $(TOP)/util/mkdir-p.pl \ +- $(INSTALL_PREFIX)$(MANDIR)/man1 \ +- $(INSTALL_PREFIX)$(MANDIR)/man3 \ +- $(INSTALL_PREFIX)$(MANDIR)/man5 \ +- $(INSTALL_PREFIX)$(MANDIR)/man7 ++install_docs: install_dirs + @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \ + here="`pwd`"; \ + filecase=; \ +--- a/Makefile.shared ++++ b/Makefile.shared +@@ -105,6 +105,7 @@ LINK_SO= \ + SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ ++ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \ + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ + $${SHAREDCMD} $${SHAREDFLAGS} \ + -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ +@@ -122,6 +124,7 @@ SYMLINK_SO= \ + done; \ + fi; \ + if [ -n "$$SHLIB_SOVER" ]; then \ ++ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ + ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ + ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ + fi; \ +--- a/crypto/Makefile ++++ b/crypto/Makefile +@@ -85,11 +85,11 @@ + @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi + + subdirs: +- @target=all; $(RECURSIVE_MAKE) ++ +@target=all; $(RECURSIVE_MAKE) + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO +- @target=files; $(RECURSIVE_MAKE) ++ +@target=files; $(RECURSIVE_MAKE) + + links: + @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER) +@@ -100,7 +100,7 @@ + # lib: $(LIB): are splitted to avoid end-less loop + lib: $(LIB) + @touch lib +-$(LIB): $(LIBOBJ) ++$(LIB): $(LIBOBJ) | subdirs + $(AR) $(LIB) $(LIBOBJ) + $(RANLIB) $(LIB) || echo Never mind. + +@@ -110,7 +110,7 @@ + fi + + libs: +- @target=lib; $(RECURSIVE_MAKE) ++ +@target=lib; $(RECURSIVE_MAKE) + + install: + @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... +@@ -119,7 +119,7 @@ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @target=install; $(RECURSIVE_MAKE) ++ +@target=install; $(RECURSIVE_MAKE) + + lint: + @target=lint; $(RECURSIVE_MAKE) +--- a/engines/Makefile ++++ b/engines/Makefile +@@ -72,7 +72,7 @@ + + all: lib subdirs + +-lib: $(LIBOBJ) ++lib: $(LIBOBJ) | subdirs + @if [ -n "$(SHARED_LIBS)" ]; then \ + set -e; \ + for l in $(LIBNAMES); do \ +@@ -89,7 +89,7 @@ + + subdirs: + echo $(EDIRS) +- @target=all; $(RECURSIVE_MAKE) ++ +@target=all; $(RECURSIVE_MAKE) + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO +@@ -128,7 +128,7 @@ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ + done; \ + fi +- @target=install; $(RECURSIVE_MAKE) ++ +@target=install; $(RECURSIVE_MAKE) + + tags: + ctags $(SRC) +--- a/test/Makefile ++++ b/test/Makefile +@@ -123,7 +123,7 @@ + tags: + ctags $(SRC) + +-tests: exe apps $(TESTS) ++tests: exe $(TESTS) + + apps: + @(cd ..; $(MAKE) DIRS=apps all) +@@ -365,109 +365,109 @@ + link_app.$${shlib_target} + + $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) +- @target=$(RSATEST); $(BUILD_CMD) ++ +@target=$(RSATEST); $(BUILD_CMD) + + $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO) +- @target=$(BNTEST); $(BUILD_CMD) ++ +@target=$(BNTEST); $(BUILD_CMD) + + $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO) +- @target=$(ECTEST); $(BUILD_CMD) ++ +@target=$(ECTEST); $(BUILD_CMD) + + $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO) +- @target=$(EXPTEST); $(BUILD_CMD) ++ +@target=$(EXPTEST); $(BUILD_CMD) + + $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO) +- @target=$(IDEATEST); $(BUILD_CMD) ++ +@target=$(IDEATEST); $(BUILD_CMD) + + $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO) +- @target=$(MD2TEST); $(BUILD_CMD) ++ +@target=$(MD2TEST); $(BUILD_CMD) + + $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO) +- @target=$(SHATEST); $(BUILD_CMD) ++ +@target=$(SHATEST); $(BUILD_CMD) + + $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO) +- @target=$(SHA1TEST); $(BUILD_CMD) ++ +@target=$(SHA1TEST); $(BUILD_CMD) + + $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO) +- @target=$(SHA256TEST); $(BUILD_CMD) ++ +@target=$(SHA256TEST); $(BUILD_CMD) + + $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO) +- @target=$(SHA512TEST); $(BUILD_CMD) ++ +@target=$(SHA512TEST); $(BUILD_CMD) + + $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO) +- @target=$(RMDTEST); $(BUILD_CMD) ++ +@target=$(RMDTEST); $(BUILD_CMD) + + $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO) +- @target=$(MDC2TEST); $(BUILD_CMD) ++ +@target=$(MDC2TEST); $(BUILD_CMD) + + $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO) +- @target=$(MD4TEST); $(BUILD_CMD) ++ +@target=$(MD4TEST); $(BUILD_CMD) + + $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO) +- @target=$(MD5TEST); $(BUILD_CMD) ++ +@target=$(MD5TEST); $(BUILD_CMD) + + $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO) +- @target=$(HMACTEST); $(BUILD_CMD) ++ +@target=$(HMACTEST); $(BUILD_CMD) + + $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO) +- @target=$(WPTEST); $(BUILD_CMD) ++ +@target=$(WPTEST); $(BUILD_CMD) + + $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO) +- @target=$(RC2TEST); $(BUILD_CMD) ++ +@target=$(RC2TEST); $(BUILD_CMD) + + $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO) +- @target=$(BFTEST); $(BUILD_CMD) ++ +@target=$(BFTEST); $(BUILD_CMD) + + $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO) +- @target=$(CASTTEST); $(BUILD_CMD) ++ +@target=$(CASTTEST); $(BUILD_CMD) + + $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO) +- @target=$(RC4TEST); $(BUILD_CMD) ++ +@target=$(RC4TEST); $(BUILD_CMD) + + $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO) +- @target=$(RC5TEST); $(BUILD_CMD) ++ +@target=$(RC5TEST); $(BUILD_CMD) + + $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO) +- @target=$(DESTEST); $(BUILD_CMD) ++ +@target=$(DESTEST); $(BUILD_CMD) + + $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO) +- @target=$(RANDTEST); $(BUILD_CMD) ++ +@target=$(RANDTEST); $(BUILD_CMD) + + $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO) +- @target=$(DHTEST); $(BUILD_CMD) ++ +@target=$(DHTEST); $(BUILD_CMD) + + $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO) +- @target=$(DSATEST); $(BUILD_CMD) ++ +@target=$(DSATEST); $(BUILD_CMD) + + $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO) +- @target=$(METHTEST); $(BUILD_CMD) ++ +@target=$(METHTEST); $(BUILD_CMD) + + $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO) +- @target=$(SSLTEST); $(FIPS_BUILD_CMD) ++ +@target=$(SSLTEST); $(FIPS_BUILD_CMD) + + $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO) +- @target=$(ENGINETEST); $(BUILD_CMD) ++ +@target=$(ENGINETEST); $(BUILD_CMD) + + $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO) +- @target=$(EVPTEST); $(BUILD_CMD) ++ +@target=$(EVPTEST); $(BUILD_CMD) + + $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO) +- @target=$(ECDSATEST); $(BUILD_CMD) ++ +@target=$(ECDSATEST); $(BUILD_CMD) + + $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO) +- @target=$(ECDHTEST); $(BUILD_CMD) ++ +@target=$(ECDHTEST); $(BUILD_CMD) + + $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO) +- @target=$(IGETEST); $(BUILD_CMD) ++ +@target=$(IGETEST); $(BUILD_CMD) + + $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO) +- @target=$(JPAKETEST); $(BUILD_CMD) ++ +@target=$(JPAKETEST); $(BUILD_CMD) + + $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO) +- @target=$(ASN1TEST); $(BUILD_CMD) ++ +@target=$(ASN1TEST); $(BUILD_CMD) + + $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO) +- @target=$(SRPTEST); $(BUILD_CMD) ++ +@target=$(SRPTEST); $(BUILD_CMD) + + #$(AESTEST).o: $(AESTEST).c + # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c +@@ -480,7 +480,7 @@ + # fi + + dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO) +- @target=dummytest; $(BUILD_CMD) ++ +@target=dummytest; $(BUILD_CMD) + + # DO NOT DELETE THIS LINE -- make depend depends on it. + +--- a/crypto/objects/Makefile ++++ b/crypto/objects/Makefile +@@ -44,11 +44,11 @@ obj_dat.h: obj_dat.pl obj_mac.h + # objects.pl both reads and writes obj_mac.num + obj_mac.h: objects.pl objects.txt obj_mac.num + $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h +- @sleep 1; touch obj_mac.h; sleep 1 + +-obj_xref.h: objxref.pl obj_xref.txt obj_mac.num ++# This doesn't really need obj_mac.h, but since that rule reads & writes ++# obj_mac.num, we can't run in parallel with it. ++obj_xref.h: objxref.pl obj_xref.txt obj_mac.num obj_mac.h + $(PERL) objxref.pl obj_mac.num obj_xref.txt > obj_xref.h +- @sleep 1; touch obj_xref.h; sleep 1 + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO diff --git a/packages/base/any/kernels/3.18.25/patches/driver-support-intel-igb-bcm54616-phy.patch b/packages/base/any/kernels/3.18.25/patches/driver-support-intel-igb-bcm54616-phy.patch new file mode 100644 index 00000000..c83708ac --- /dev/null +++ b/packages/base/any/kernels/3.18.25/patches/driver-support-intel-igb-bcm54616-phy.patch @@ -0,0 +1,67 @@ +diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.c b/drivers/net/ethernet/intel/igb/e1000_82575.c +index 051ea94..2a04baa 100644 +--- a/drivers/net/ethernet/intel/igb/e1000_82575.c ++++ b/drivers/net/ethernet/intel/igb/e1000_82575.c +@@ -286,6 +286,9 @@ static s32 igb_init_phy_params_82575(struct e1000_hw *hw) + phy->ops.set_d3_lplu_state = igb_set_d3_lplu_state_82580; + phy->ops.force_speed_duplex = igb_phy_force_speed_duplex_m88; + break; ++ case BCM54616_E_PHY_ID: ++ phy->type = e1000_phy_bcm54616; ++ break; + default: + ret_val = -E1000_ERR_PHY; + goto out; +@@ -1550,6 +1553,7 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw) + case e1000_i350: + case e1000_i210: + case e1000_i211: ++ case e1000_i354: + phpm_reg = rd32(E1000_82580_PHY_POWER_MGMT); + phpm_reg &= ~E1000_82580_PM_GO_LINKD; + wr32(E1000_82580_PHY_POWER_MGMT, phpm_reg); +@@ -1593,6 +1597,8 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw) + case e1000_phy_82580: + ret_val = igb_copper_link_setup_82580(hw); + break; ++ case e1000_phy_bcm54616: ++ break; + default: + ret_val = -E1000_ERR_PHY; + break; +diff --git a/drivers/net/ethernet/intel/igb/e1000_defines.h b/drivers/net/ethernet/intel/igb/e1000_defines.h +index 217f813..5322fbf 100644 +--- a/drivers/net/ethernet/intel/igb/e1000_defines.h ++++ b/drivers/net/ethernet/intel/igb/e1000_defines.h +@@ -860,6 +860,7 @@ + #define M88_VENDOR 0x0141 + #define I210_I_PHY_ID 0x01410C00 + #define M88E1543_E_PHY_ID 0x01410EA0 ++#define BCM54616_E_PHY_ID 0x3625D10 + + /* M88E1000 Specific Registers */ + #define M88E1000_PHY_SPEC_CTRL 0x10 /* PHY Specific Control Register */ +diff --git a/drivers/net/ethernet/intel/igb/e1000_hw.h b/drivers/net/ethernet/intel/igb/e1000_hw.h +index 2003b37..d82c96b 100644 +--- a/drivers/net/ethernet/intel/igb/e1000_hw.h ++++ b/drivers/net/ethernet/intel/igb/e1000_hw.h +@@ -128,6 +128,7 @@ enum e1000_phy_type { + e1000_phy_ife, + e1000_phy_82580, + e1000_phy_i210, ++ e1000_phy_bcm54616, + }; + + enum e1000_bus_type { +diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c +index e0f3664..013c1f1 100644 +--- a/drivers/net/ethernet/intel/igb/igb_main.c ++++ b/drivers/net/ethernet/intel/igb/igb_main.c +@@ -108,6 +108,7 @@ static const struct pci_device_id igb_pci_tbl[] = { + { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES), board_82575 }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER), board_82575 }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII), board_82575 }, + /* required last entry */ + {0, } + }; diff --git a/packages/base/any/kernels/3.18.25/patches/series b/packages/base/any/kernels/3.18.25/patches/series index f6b71ff1..661d5eac 100644 --- a/packages/base/any/kernels/3.18.25/patches/series +++ b/packages/base/any/kernels/3.18.25/patches/series @@ -1 +1,2 @@ aufs.patch +driver-support-intel-igb-bcm54616-phy.patch diff --git a/packages/base/any/onlp-snmpd/builds/src/onlp_snmp/.module b/packages/base/any/onlp-snmpd/builds/src/onlp_snmp/.module new file mode 100644 index 00000000..d299f1b9 --- /dev/null +++ b/packages/base/any/onlp-snmpd/builds/src/onlp_snmp/.module @@ -0,0 +1 @@ +name: onlp_snmp diff --git a/packages/base/any/onlp/src/onlp/.module b/packages/base/any/onlp/src/onlp/.module new file mode 100644 index 00000000..7e44ab77 --- /dev/null +++ b/packages/base/any/onlp/src/onlp/.module @@ -0,0 +1 @@ +name: onlp diff --git a/packages/base/any/onlp/src/onlp_platform_defaults/.module b/packages/base/any/onlp/src/onlp_platform_defaults/.module new file mode 100644 index 00000000..170382ab --- /dev/null +++ b/packages/base/any/onlp/src/onlp_platform_defaults/.module @@ -0,0 +1 @@ +name: onlp_platform_defaults diff --git a/packages/base/any/onlp/src/onlpie/.module b/packages/base/any/onlp/src/onlpie/.module new file mode 100644 index 00000000..ae83c4af --- /dev/null +++ b/packages/base/any/onlp/src/onlpie/.module @@ -0,0 +1 @@ +name: onlpie diff --git a/packages/base/any/onlp/src/onlplib/.module b/packages/base/any/onlp/src/onlplib/.module new file mode 100644 index 00000000..215a822f --- /dev/null +++ b/packages/base/any/onlp/src/onlplib/.module @@ -0,0 +1 @@ +name: onlplib diff --git a/packages/base/any/onlp/src/onlplib/module/src/i2c.c b/packages/base/any/onlp/src/onlplib/module/src/i2c.c index 3890a072..4340a6ea 100644 --- a/packages/base/any/onlp/src/onlplib/module/src/i2c.c +++ b/packages/base/any/onlp/src/onlplib/module/src/i2c.c @@ -142,7 +142,7 @@ onlp_i2c_read(int bus, uint8_t addr, uint8_t offset, int size, } for(i = 0; i < size; i++) { - uint32_t rv = i2c_smbus_read_byte_data(fd, offset+i); + int rv = i2c_smbus_read_byte_data(fd, offset+i); if(rv < 0) { AIM_LOG_ERROR("i2c-%d: reading address 0x%x, offset %d failed: %{errno}", bus, addr, offset+i, errno); @@ -175,7 +175,7 @@ onlp_i2c_write(int bus, uint8_t addr, uint8_t offset, int size, } for(i = 0; i < size; i++) { - uint32_t rv = i2c_smbus_write_byte_data(fd, offset+i, data[i]); + int rv = i2c_smbus_write_byte_data(fd, offset+i, data[i]); if(rv < 0) { AIM_LOG_ERROR("i2c-%d: writing address 0x%x, offset %d failed: %{errno}", bus, addr, offset+i, errno); diff --git a/packages/base/any/onlp/src/sff/.module b/packages/base/any/onlp/src/sff/.module new file mode 100644 index 00000000..05da7c63 --- /dev/null +++ b/packages/base/any/onlp/src/sff/.module @@ -0,0 +1 @@ +name: sff diff --git a/packages/base/any/oom-shim/src/.module b/packages/base/any/oom-shim/src/.module new file mode 100644 index 00000000..4375dfb7 --- /dev/null +++ b/packages/base/any/oom-shim/src/.module @@ -0,0 +1 @@ +name: oom_shim diff --git a/packages/base/armel/kernels/kernel-3.2-deb7-arm-iproc-all/builds/Makefile b/packages/base/armel/kernels/kernel-3.2-deb7-arm-iproc-all/builds/Makefile index c4b59fec..67655667 100644 --- a/packages/base/armel/kernels/kernel-3.2-deb7-arm-iproc-all/builds/Makefile +++ b/packages/base/armel/kernels/kernel-3.2-deb7-arm-iproc-all/builds/Makefile @@ -12,6 +12,8 @@ THIS_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) include $(ONL)/make/config.mk +export MODSYNCLIST_EXTRA := arch/arm/plat-iproc/include + kernel: $(MAKE) -C $(ONL)/packages/base/any/kernels/3.2.71-1+deb7/configs/arm-iproc-all K_TARGET_DIR=$(THIS_DIR) $(ONL_MAKE_PARALLEL) diff --git a/packages/platforms-closed b/packages/platforms-closed index 5628d2f2..2292f628 160000 --- a/packages/platforms-closed +++ b/packages/platforms-closed @@ -1 +1 @@ -Subproject commit 5628d2f2e43a78b9faa33428575e8e322899d3c7 +Subproject commit 2292f6285fafac230cbf0b1e9bc49321bc2a0b96 diff --git a/packages/platforms/accton/armel/arm-accton-as4610-54/onlp/builds/src/arm_accton_as4610_54/.module b/packages/platforms/accton/armel/arm-accton-as4610-54/onlp/builds/src/arm_accton_as4610_54/.module new file mode 100644 index 00000000..5d4aa1c0 --- /dev/null +++ b/packages/platforms/accton/armel/arm-accton-as4610-54/onlp/builds/src/arm_accton_as4610_54/.module @@ -0,0 +1 @@ +name: arm_accton_as4610_54 diff --git a/packages/platforms/accton/armel/arm-accton-as4610-54/platform-config/r0/src/python/arm_accton_as4610_54_r0/__init__.py b/packages/platforms/accton/armel/arm-accton-as4610-54/platform-config/r0/src/python/arm_accton_as4610_54_r0/__init__.py index 94190515..f2a47419 100644 --- a/packages/platforms/accton/armel/arm-accton-as4610-54/platform-config/r0/src/python/arm_accton_as4610_54_r0/__init__.py +++ b/packages/platforms/accton/armel/arm-accton-as4610-54/platform-config/r0/src/python/arm_accton_as4610_54_r0/__init__.py @@ -1,16 +1,8 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_arm_accton_as4610_54_r0(OnlPlatformAccton): - - def model(self): - return "AS4610-54" - - def platform(self): - return "arm-accton-as4610-54-r0" - - def sys_oid_platform(self): - return ".4610" - - def baseconfig(self): - return True +class OnlPlatform_arm_accton_as4610_54_r0(OnlPlatformAccton, + OnlPlatformPortConfig_48x1_4x10): + PLATFORM='arm-accton-as4610-54-r0' + MODEL="AS4610-54" + SYS_OBJECT_ID=".4610" diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/onlp/builds/src/.module b/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/onlp/builds/src/.module new file mode 100644 index 00000000..d0bb8fce --- /dev/null +++ b/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/onlp/builds/src/.module @@ -0,0 +1 @@ +name: powerpc_accton_as4600_54t diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/platform-config/r0/src/python/powerpc_accton_as4600_54t_r0/__init__.py b/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/platform-config/r0/src/python/powerpc_accton_as4600_54t_r0/__init__.py index b0f245e8..c5993ffb 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/platform-config/r0/src/python/powerpc_accton_as4600_54t_r0/__init__.py +++ b/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/platform-config/r0/src/python/powerpc_accton_as4600_54t_r0/__init__.py @@ -1,20 +1,11 @@ #!/usr/bin/python -############################################################ -# -# -# -############################################################ + from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_powerpc_accton_as4600_54t_r0(OnlPlatformAccton): - - def model(self): - return 'AS4600-54T' - - def platform(self): - return 'powerpc-accton-as4600-54t-r0' - - def sys_oid_platform(self): - return ".4600.54" +class OnlPlatform_powerpc_accton_as4600_54t_r0(OnlPlatformAccton, + OnlPlatformPortConfig_48x1_4x10): + PLATFORM='powerpc-accton-as4600-54t-r0' + MODEL='AS4600-54T' + SYS_OBJECT_ID='.4600.54' diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/onlp/builds/src/.module b/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/onlp/builds/src/.module new file mode 100644 index 00000000..0473ac44 --- /dev/null +++ b/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: powerpc_accton_as5610_52x diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/platform-config/r0/src/python/powerpc_accton_as5610_52x_r0/__init__.py b/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/platform-config/r0/src/python/powerpc_accton_as5610_52x_r0/__init__.py index f609f450..233179ab 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/platform-config/r0/src/python/powerpc_accton_as5610_52x_r0/__init__.py +++ b/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/platform-config/r0/src/python/powerpc_accton_as5610_52x_r0/__init__.py @@ -1,23 +1,12 @@ #!/usr/bin/python -############################################################ -# -# -# -############################################################ + from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_powerpc_accton_as5610_52x_r0(OnlPlatformAccton): - - onie_base_address = "0xeff70000" - - def model(self): - return "AS5610-52X" - - def platform(self): - return 'powerpc-accton-as5610-52x-r0' - - def sys_oid_platform(self): - return ".5610.52" +class OnlPlatform_powerpc_accton_as5610_52x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_48x10_4x40): + PLATFORM='powerpc-accton-as5610-52x-r0' + MODEL='AS5610-52X' + SYS_OBJECT_ID='.5610.52' diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/onlp/builds/src/.module b/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/onlp/builds/src/.module new file mode 100644 index 00000000..995be2d9 --- /dev/null +++ b/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: powerpc_accton_as5710_54x diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/platform-config/r0/src/python/powerpc_accton_as5710_54x_r0/__init__.py b/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/platform-config/r0/src/python/powerpc_accton_as5710_54x_r0/__init__.py index aa528a4c..931b0330 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/platform-config/r0/src/python/powerpc_accton_as5710_54x_r0/__init__.py +++ b/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/platform-config/r0/src/python/powerpc_accton_as5710_54x_r0/__init__.py @@ -1,22 +1,13 @@ #!/usr/bin/python -############################################################ -# -# -# -############################################################ + from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_powerpc_accton_as5710_54x_r0(OnlPlatformAccton): +class OnlPlatform_powerpc_accton_as5710_54x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_48x10_6x40): + PLATFORM='powerpc-accton-as5710-54x-r0' + MODEL='AS5710-54X' + SYS_OBJECT_ID='.5710.54' - CPLDVERSION="cpldversion" - def model(self): - return "AS5710-54X" - - def platform(self): - return 'powerpc-accton-as5710-54x-r0' - - def sys_oid_platform(self): - return ".5710.54" diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/platform-config/r0b/src/python/powerpc_accton_as5710_54x_r0b/__init__.py b/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/platform-config/r0b/src/python/powerpc_accton_as5710_54x_r0b/__init__.py index bd9f9834..866b67b6 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/platform-config/r0b/src/python/powerpc_accton_as5710_54x_r0b/__init__.py +++ b/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/platform-config/r0b/src/python/powerpc_accton_as5710_54x_r0b/__init__.py @@ -6,16 +6,9 @@ import os from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_powerpc_accton_as5710_54x_r0b(OnlPlatformAccton): - - CPLDVERSION="cpldversion" - - def model(self): - return "AS5710-54X (R0B)" - - def platform(self): - return 'powerpc-accton-as5710-54x-r0b' - - def sys_oid_platform(self): - return ".5710.54" +class OnlPlatform_powerpc_accton_as5710_54x_r0b(OnlPlatformAccton, + OnlPlatformPortConfig_48x10_6x40): + PLATFORM='powerpc-accton-as5710-54x-r0b' + MODEL='AS5710-54X (R0B)' + SYS_OBJECT_ID='.5710.54' diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/onlp/builds/src/.module b/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/onlp/builds/src/.module new file mode 100644 index 00000000..d67e500e --- /dev/null +++ b/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: powerpc_accton_as6700_32x diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/platform-config/r0/src/python/powerpc_accton_as6700_32x_r0/__init__.py b/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/platform-config/r0/src/python/powerpc_accton_as6700_32x_r0/__init__.py index 5b719ea0..e278c5a4 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/platform-config/r0/src/python/powerpc_accton_as6700_32x_r0/__init__.py +++ b/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/platform-config/r0/src/python/powerpc_accton_as6700_32x_r0/__init__.py @@ -5,19 +5,16 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_powerpc_accton_as6700_32x_r0(OnlPlatformAccton): - - def model(self): - return "AS6700-32X" - - def platform(self): - return 'powerpc-accton-as6700-32x-r0' +class OnlPlatform_powerpc_accton_as6700_32x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_32x40): + PLATFORM='powerpc-accton-as6700-32x-r0' + MODEL="AS6700-32X" + SYS_OBJECT_ID=".6700.32" def baseconfig(self): with open("/etc/default/watchdog", 'a') as f: f.write("run_watchdog=0\n"); return True - def sys_oid_platform(self): - return ".6700.32" + diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/platform-config/r1/src/python/powerpc_accton_as6700_32x_r1/__init__.py b/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/platform-config/r1/src/python/powerpc_accton_as6700_32x_r1/__init__.py index 3098e3b5..614f4f45 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/platform-config/r1/src/python/powerpc_accton_as6700_32x_r1/__init__.py +++ b/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/platform-config/r1/src/python/powerpc_accton_as6700_32x_r1/__init__.py @@ -1,24 +1,17 @@ #!/usr/bin/python -############################################################ -# -# -# -############################################################ + from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_powerpc_accton_as6700_32x_r1(OnlPlatformAccton): - - def model(self): - return "AS6700-32X" - - def platform(self): - return 'powerpc-accton-as6700-32x-r1' +class OnlPlatform_powerpc_accton_as6700_32x_r1(OnlPlatformAccton, + OnlPlatformPortConfig_32x40): + PLATFORM='powerpc-accton-as6700-32x-r1' + MODEL='AS6700-32X' + SYS_OBJECT_ID='.6700.32' def baseconfig(self): with open("/etc/default/watchdog", 'a') as f: f.write("run_watchdog=0\n"); return True - def sys_oid_platform(self): - return ".6700.32" + diff --git a/packages/platforms/accton/vendor-config/src/python/accton/__init__.py b/packages/platforms/accton/vendor-config/src/python/accton/__init__.py index 0dbb90fb..cd90d20b 100644 --- a/packages/platforms/accton/vendor-config/src/python/accton/__init__.py +++ b/packages/platforms/accton/vendor-config/src/python/accton/__init__.py @@ -1,22 +1,7 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# OnlPlatform support for Accton platforms. -# -############################################################ + from onl.platform.base import * class OnlPlatformAccton(OnlPlatformBase): - def manufacturer(self): - return "Accton" - - def sys_oid_vendor(self): - return ".259" + MANUFACTURER='Accton' + PRIVATE_ENTERPRISE_NUMBER=259 diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/onlp/builds/src/.module new file mode 100644 index 00000000..a0ea32d6 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as5512_54x diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/platform-config/r0/src/lib/x86-64-accton-as5512-54x-r0.yml b/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/platform-config/r0/src/lib/x86-64-accton-as5512-54x-r0.yml index 2c31c65a..218d540c 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/platform-config/r0/src/lib/x86-64-accton-as5512-54x-r0.yml +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/platform-config/r0/src/lib/x86-64-accton-as5512-54x-r0.yml @@ -18,7 +18,7 @@ x86-64-accton-as5512-54x-r0: --stop=1 kernel: - <<: *kernel-3-2 + <<: *kernel-3-18 args: >- nopat diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/platform-config/r0/src/python/x86_64_accton_as5512_54x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/platform-config/r0/src/python/x86_64_accton_as5512_54x_r0/__init__.py index de3685dd..972a3b28 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/platform-config/r0/src/python/x86_64_accton_as5512_54x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/platform-config/r0/src/python/x86_64_accton_as5512_54x_r0/__init__.py @@ -1,20 +1,11 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as5512_54x_r0(OnlPlatformAccton): - - - def model(self): - return "AS5512-54X" - - def platform(self): - return "x86-64-accton-as5512-54x-r0" - - def sys_init(self): - pass - - def sys_oid_platform(self): - return ".5512.54.1" +class OnlPlatform_x86_64_accton_as5512_54x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_48x10_6x40): + PLATFORM='x86-64-accton-as5512-54x-r0' + MODEL="AS5512-54X" + SYS_OBJECT_ID=".5512.54.1" def baseconfig(self): ########### initialize I2C bus 0 ########### diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/onlp/builds/src/.module new file mode 100644 index 00000000..640b7bc3 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as5712_54x diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/platform-config/r0/src/python/x86_64_accton_as5712_54x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/platform-config/r0/src/python/x86_64_accton_as5712_54x_r0/__init__.py index c323c6e9..0fc60af9 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/platform-config/r0/src/python/x86_64_accton_as5712_54x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/platform-config/r0/src/python/x86_64_accton_as5712_54x_r0/__init__.py @@ -1,16 +1,12 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as5712_54x_r0(OnlPlatformAccton): +class OnlPlatform_x86_64_accton_as5712_54x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_48x10_6x40): - def model(self): - return "AS5712-54X" - - def platform(self): - return "x86-64-accton-as5712-54x-r0" - - def sys_oid_platform(self): - return ".5712.54" + PLATFORM='x86-64-accton-as5712-54x-r0' + MODEL="AS5712-54X" + SYS_OBJECT_ID=".5712.54" def baseconfig(self): ########### initialize I2C bus 0 ########### diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/onlp/builds/src/.module new file mode 100644 index 00000000..c4ba62ca --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as5812_54t diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/platform-config/r0/src/python/x86_64_accton_as5812_54t_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/platform-config/r0/src/python/x86_64_accton_as5812_54t_r0/__init__.py index bd554c23..106910fa 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/platform-config/r0/src/python/x86_64_accton_as5812_54t_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/platform-config/r0/src/python/x86_64_accton_as5812_54t_r0/__init__.py @@ -1,20 +1,11 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as5812_54t_r0(OnlPlatformAccton): - - - def model(self): - return "AS5812-54T" - - def platform(self): - return "x86-64-accton-as5812-54t-r0" - - def sys_init(self): - pass - - def sys_oid_platform(self): - return ".5812.54.2" +class OnlPlatform_x86_64_accton_as5812_54t_r0(OnlPlatformAccton, + OnlPlatformPortConfig_48x10_6x40): + PLATFORM='x86-64-accton-as5812-54t-r0' + MODEL="AS5812-54T" + SYS_OBJECT_ID=".5812.54.2" def baseconfig(self): ########### initialize I2C bus 0 ########### diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/onlp/builds/src/.module new file mode 100644 index 00000000..ffe27dc2 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as5812_54x diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/platform-config/r0/src/python/x86_64_accton_as5812_54x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/platform-config/r0/src/python/x86_64_accton_as5812_54x_r0/__init__.py index 9b3750e9..536b1879 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/platform-config/r0/src/python/x86_64_accton_as5812_54x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/platform-config/r0/src/python/x86_64_accton_as5812_54x_r0/__init__.py @@ -1,20 +1,12 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as5812_54x_r0(OnlPlatformAccton): +class OnlPlatform_x86_64_accton_as5812_54x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_48x10_6x40): - - def model(self): - return "AS5812-54X" - - def platform(self): - return "x86-64-accton-as5812-54x-r0" - - def sys_init(self): - pass - - def sys_oid_platform(self): - return ".5812.54.1" + PLATFORM='x86-64-accton-as5812-54x-r0' + MODEL="AS5812-54X" + SYS_OBJECT_ID=".5812.54.1" def baseconfig(self): ########### initialize I2C bus 0 ########### diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/onlp/builds/src/.module new file mode 100644 index 00000000..e6be11ba --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as6712_32x diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/platform-config/r0/src/python/x86_64_accton_as6712_32x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/platform-config/r0/src/python/x86_64_accton_as6712_32x_r0/__init__.py index b96aba1f..d1779f7d 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/platform-config/r0/src/python/x86_64_accton_as6712_32x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/platform-config/r0/src/python/x86_64_accton_as6712_32x_r0/__init__.py @@ -1,17 +1,11 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as6712_32x_r0(OnlPlatformAccton): - - def model(self): - return "AS6712-32X" - - def platform(self): - return "x86-64-accton-as6712-32x-r0" - - def sys_oid_platform(self): - return ".6712.32" - +class OnlPlatform_x86_64_accton_as6712_32x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_32x40): + PLATFORM='x86-64-accton-as6712-32x-r0' + MODEL="AS6712-32X" + SYS_OBJECT_ID=".6712.32" def baseconfig(self): diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/onlp/builds/src/.module new file mode 100644 index 00000000..fd83f048 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as6812_32x diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/platform-config/r0/src/python/x86_64_accton_as6812_32x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/platform-config/r0/src/python/x86_64_accton_as6812_32x_r0/__init__.py index f366c160..b7abeda4 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/platform-config/r0/src/python/x86_64_accton_as6812_32x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/platform-config/r0/src/python/x86_64_accton_as6812_32x_r0/__init__.py @@ -1,17 +1,11 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as6812_32x_r0(OnlPlatformAccton): - - def model(self): - return "AS6812-32X" - - def platform(self): - return "x86-64-accton-as6812-32x-r0" - - def sys_oid_platform(self): - return ".6812.32" - +class OnlPlatform_x86_64_accton_as6812_32x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_32x40): + PLATFORM='x86-64-accton-as6812-32x-r0' + MODEL="AS6812-32X" + SYS_OBJECT_ID=".6812.32" def baseconfig(self): diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/onlp/builds/src/.module new file mode 100644 index 00000000..74536d1b --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as7512_32x diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/platform-config/r0/src/lib/x86-64-accton-as7512-32x-r0.yml b/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/platform-config/r0/src/lib/x86-64-accton-as7512-32x-r0.yml index 4f4c51ce..77b890a5 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/platform-config/r0/src/lib/x86-64-accton-as7512-32x-r0.yml +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/platform-config/r0/src/lib/x86-64-accton-as7512-32x-r0.yml @@ -6,7 +6,7 @@ # ###################################################################### -x86-64-accton-as5712-32x-r0: +x86-64-accton-as7512-32x-r0: grub: @@ -17,7 +17,7 @@ x86-64-accton-as5712-32x-r0: --parity=no --stop=1 - kernel: + kernel: <<: *kernel-3-2 args: >- diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/platform-config/r0/src/python/x86_64_accton_as7512_32x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/platform-config/r0/src/python/x86_64_accton_as7512_32x_r0/__init__.py index 8ff578c9..e8770bda 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/platform-config/r0/src/python/x86_64_accton_as7512_32x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/platform-config/r0/src/python/x86_64_accton_as7512_32x_r0/__init__.py @@ -1,16 +1,11 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as7512_32x_r0(OnlPlatformAccton): - - def model(self): - return "AS7512-32X" - - def platform(self): - return "x86-64-accton-as7512-32x-r0" - - def sys_oid_platform(self): - return ".7512.32" +class OnlPlatform_x86_64_accton_as7512_32x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_32x100): + PLATFORM='x86-64-accton-as7512-32x-r0' + MODEL="AS7512-32X" + SYS_OBJECT_ID=".7512.32" def baseconfig(self): ########### initialize I2C bus 0 ########### @@ -70,6 +65,7 @@ class OnlPlatform_x86_64_accton_as7512_32x_r0(OnlPlatformAccton): self.new_i2c_device('as7512_32x_sfp2', 0x50, 19) self.new_i2c_device('as7512_32x_sfp3', 0x50, 20) self.new_i2c_device('as7512_32x_sfp4', 0x50, 21) + self.new_i2c_device('as7512_32x_sfp5', 0x50, 22) self.new_i2c_device('as7512_32x_sfp6', 0x50, 23) self.new_i2c_device('as7512_32x_sfp7', 0x50, 24) diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/onlp/builds/src/.module new file mode 100644 index 00000000..f49c1f82 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as7712_32x diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/platform-config/r0/src/python/x86_64_accton_as7712_32x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/platform-config/r0/src/python/x86_64_accton_as7712_32x_r0/__init__.py index c6013ede..06580f03 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/platform-config/r0/src/python/x86_64_accton_as7712_32x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/platform-config/r0/src/python/x86_64_accton_as7712_32x_r0/__init__.py @@ -1,16 +1,11 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as7712_32x_r0(OnlPlatformAccton): - - def model(self): - return "AS7712-32X" - - def platform(self): - return "x86-64-accton-as7712-32x-r0" - - def sys_oid_platform(self): - return ".7712.32" +class OnlPlatform_x86_64_accton_as7712_32x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_32x100): + PLATFORM='x86-64-accton-as7712-32x-r0' + MODEL="AS7712-32X" + SYS_OBJECT_ID=".7712.32" def baseconfig(self): ########### initialize I2C bus 0 ########### diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/onlp/builds/src/.module b/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/onlp/builds/src/.module new file mode 100644 index 00000000..1bc87a11 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/onlp/builds/src/.module @@ -0,0 +1 @@ +name: x86_64_accton_as7716_32x diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/platform-config/r0/src/python/x86_64_accton_as7716_32x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/platform-config/r0/src/python/x86_64_accton_as7716_32x_r0/__init__.py index 69069792..76f0da9e 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/platform-config/r0/src/python/x86_64_accton_as7716_32x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/platform-config/r0/src/python/x86_64_accton_as7716_32x_r0/__init__.py @@ -1,16 +1,11 @@ from onl.platform.base import * from onl.platform.accton import * -class OnlPlatform_x86_64_accton_as7716_32x_r0(OnlPlatformAccton): - - def model(self): - return "AS7716-32X" - - def platform(self): - return "x86-64-accton-as7716-32x-r0" - - def sys_oid_platform(self): - return ".7716.32" +class OnlPlatform_x86_64_accton_as7716_32x_r0(OnlPlatformAccton, + OnlPlatformPortConfig_32x100): + PLATFORM='x86-64-accton-as7716-32x-r0' + MODEL="AS7716-32X" + SYS_OBJECT_ID=".7716.32" def baseconfig(self): ########### initialize I2C bus 0 ########### diff --git a/packages/platforms/accton/x86-64/x86-64-accton-wedge-16x/platform-config/r0/src/lib/x86-64-accton-wedge-16x-r0.yml b/packages/platforms/accton/x86-64/x86-64-accton-wedge-16x/platform-config/r0/src/lib/x86-64-accton-wedge-16x-r0.yml index 1c42ce71..133874d1 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-wedge-16x/platform-config/r0/src/lib/x86-64-accton-wedge-16x-r0.yml +++ b/packages/platforms/accton/x86-64/x86-64-accton-wedge-16x/platform-config/r0/src/lib/x86-64-accton-wedge-16x-r0.yml @@ -18,7 +18,7 @@ x86-64-accton-wedge-16x-r0: --stop=1 kernel: - <<: *kernel-3-2 + <<: *kernel-3-18 args: >- nopat diff --git a/packages/platforms/accton/x86-64/x86-64-accton-wedge-16x/platform-config/r0/src/python/x86_64_accton_wedge_16x_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-accton-wedge-16x/platform-config/r0/src/python/x86_64_accton_wedge_16x_r0/__init__.py index bfe7f195..f184516b 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-wedge-16x/platform-config/r0/src/python/x86_64_accton_wedge_16x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/x86-64-accton-wedge-16x/platform-config/r0/src/python/x86_64_accton_wedge_16x_r0/__init__.py @@ -1,16 +1,13 @@ from onl.platform.base import * from onl.vendor.accton import * -class OnlPlatform_x86_64_accton_wedge_16x_r0(OpenNetworkPlatformAccton): +class OnlPlatform_x86_64_accton_wedge_16x_r0(OnlPlatformAccton): + PLATFORM='x86-64-accton-wedge-16x-r0' + MODEL="Wedge-16X" + SYS_OBJECT_ID=".16.1" - def model(self): - return "Wedge-16X" + PORT_COUNT=16 + PORT_CONFIG="16x40" - def platform(self): - return "x86-64-accton-wedge-16x-r0" - def baseconfig(self): - return True - def sys_oid_platform(self): - return ".16.1" diff --git a/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/Makefile b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/Makefile new file mode 100644 index 00000000..dc1e7b86 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/Makefile @@ -0,0 +1 @@ +include $(ONL)/make/pkg.mk diff --git a/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/onlp/Makefile b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/onlp/Makefile new file mode 100644 index 00000000..dc1e7b86 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/onlp/Makefile @@ -0,0 +1 @@ +include $(ONL)/make/pkg.mk diff --git a/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/onlp/PKG.yml b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/onlp/PKG.yml new file mode 100644 index 00000000..10caa7f6 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/onlp/PKG.yml @@ -0,0 +1,15 @@ +variables: + platform: x86-64-facebook-wedge100-r0 + install: /lib/platform-config/${platform}/onl + +common: + version: 1.0.0 + arch: amd64 + copyright: Copyright 2013, 2014, 2015 Big Switch Networks + maintainer: support@bigswitch.com + comment: dummy package for ONLP on Wedge +packages: + - name: onlp-${platform} + summary: ONLP Package for the ${platform} platform. + + changelog: initial version diff --git a/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/Makefile b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/Makefile new file mode 100644 index 00000000..dc1e7b86 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/Makefile @@ -0,0 +1 @@ +include $(ONL)/make/pkg.mk diff --git a/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/Makefile b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/Makefile new file mode 100644 index 00000000..dc1e7b86 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/Makefile @@ -0,0 +1 @@ +include $(ONL)/make/pkg.mk diff --git a/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/PKG.yml b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/PKG.yml new file mode 100644 index 00000000..41ac0a89 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/PKG.yml @@ -0,0 +1 @@ +!include $ONL_TEMPLATES/platform-config-platform.yml ARCH=amd64 VENDOR=accton PLATFORM=x86-64-facebook-wedge100-r0 diff --git a/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/src/lib/x86-64-facebook-wedge100-r0.yml b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/src/lib/x86-64-facebook-wedge100-r0.yml new file mode 100644 index 00000000..fdcbd263 --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/src/lib/x86-64-facebook-wedge100-r0.yml @@ -0,0 +1,34 @@ +--- + +###################################################################### +# +# platform-config for WEDGE +# +###################################################################### + +x86-64-facebook-wedge100-r0: + + grub: + + serial: >- + --unit=0 + --speed=57600 + --word=8 + --parity=0 + --stop=1 + + kernel: + <<: *kernel-3-18 + + args: >- + nopat + console=ttyS0,57600n8 + rd_NO_MD + rd_NO_LUKS + intel_iommu=off + + ##network + ## interfaces: + ## ma1: + ## name: ~ + ## syspath: pci0000:00/0000:00:14.0 diff --git a/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/src/python/x86_64_facebook_wedge100_r0/__init__.py b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/src/python/x86_64_facebook_wedge100_r0/__init__.py new file mode 100644 index 00000000..5a948e2c --- /dev/null +++ b/packages/platforms/accton/x86-64/x86-64-facebook-wedge100/platform-config/r0/src/python/x86_64_facebook_wedge100_r0/__init__.py @@ -0,0 +1,8 @@ +from onl.platform.base import * +from onl.vendor.accton import * + +class OnlPlatform_x86_64_facebook_wedge_100_r0(OnlPlatformAccton, + OnlPlatformPortConfig_32x100): + MODEL="Wedge-100" + PLATFORM="x86-64-facebook-wedge100-r0" + SYS_OBJECT_ID=".100.1" diff --git a/builds/amd64/installer/legacy/Makefile b/packages/platforms/alphanetworks/vendor-config/Makefile similarity index 100% rename from builds/amd64/installer/legacy/Makefile rename to packages/platforms/alphanetworks/vendor-config/Makefile diff --git a/packages/platforms/alphanetworks/vendor-config/PKG.yml b/packages/platforms/alphanetworks/vendor-config/PKG.yml new file mode 100644 index 00000000..a34897ad --- /dev/null +++ b/packages/platforms/alphanetworks/vendor-config/PKG.yml @@ -0,0 +1 @@ +!include $ONL_TEMPLATES/platform-config-vendor.yml VENDOR=alphanetworks Vendor=AlphaNetworks diff --git a/packages/platforms/alphanetworks/vendor-config/src/python/alphanetworks/__init__.py b/packages/platforms/alphanetworks/vendor-config/src/python/alphanetworks/__init__.py new file mode 100644 index 00000000..0aa964c8 --- /dev/null +++ b/packages/platforms/alphanetworks/vendor-config/src/python/alphanetworks/__init__.py @@ -0,0 +1,7 @@ +#!/usr/bin/python + +from onl.platform.base import * + +class OnlPlatformAlphaNetworks(OnlPlatformBase): + MANUFACTURER='AlphaNetworks' + PRIVATE_ENTERPRISE_NUMBER=31874 diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/.gitignore b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/.gitignore new file mode 100644 index 00000000..4d978b36 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/.gitignore @@ -0,0 +1,2 @@ +*x86*64*cel*redstone*xp*.mk +onlpdump.mk diff --git a/builds/armel/installer/legacy/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/Makefile similarity index 100% rename from builds/armel/installer/legacy/Makefile rename to packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/Makefile diff --git a/builds/powerpc/installer/legacy/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/Makefile similarity index 100% rename from builds/powerpc/installer/legacy/Makefile rename to packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/Makefile diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/PKG.yml b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/PKG.yml new file mode 100644 index 00000000..9233aee8 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/PKG.yml @@ -0,0 +1 @@ +!include $ONL_TEMPLATES/onlp-platform-any.yml PLATFORM=x86-64-alphanetworks-snx60a0-486f ARCH=amd64 TOOLCHAIN=x86_64-linux-gnu diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/Makefile new file mode 100644 index 00000000..e7437cb2 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/Makefile @@ -0,0 +1,2 @@ +FILTER=src +include $(ONL)/make/subdirs.mk diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/Makefile new file mode 100644 index 00000000..87ec8e0d --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/Makefile @@ -0,0 +1,45 @@ +############################################################ +# +# +# Copyright 2014 BigSwitch Networks, Inc. +# +# Licensed under the Eclipse Public License, Version 1.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.eclipse.org/legal/epl-v10.html +# +# 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. +# +# +############################################################ +# +# +############################################################ +include $(ONL)/make/config.amd64.mk + +MODULE := libonlp-x86-64-alphanetworks-snx60a0-486f +include $(BUILDER)/standardinit.mk + +DEPENDMODULES := AIM IOF x86_64_alphanetworks_snx60a0_486f onlplib +DEPENDMODULE_HEADERS := sff + +include $(BUILDER)/dependmodules.mk + +SHAREDLIB := libonlp-x86-64-alphanetworks-snx60a0-486f.so +$(SHAREDLIB)_TARGETS := $(ALL_TARGETS) +include $(BUILDER)/so.mk +.DEFAULT_GOAL := $(SHAREDLIB) + +GLOBAL_CFLAGS += -I$(onlp_BASEDIR)/module/inc +GLOBAL_CFLAGS += -DAIM_CONFIG_INCLUDE_MODULES_INIT=1 +GLOBAL_CFLAGS += -fPIC +GLOBAL_LINK_LIBS += -lpthread + +include $(BUILDER)/targets.mk + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/libonlp-x86-64-alphanetworks-snx60a0-486f.mk b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/libonlp-x86-64-alphanetworks-snx60a0-486f.mk new file mode 100644 index 00000000..f1efdbb6 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/libonlp-x86-64-alphanetworks-snx60a0-486f.mk @@ -0,0 +1,10 @@ + +############################################################################### +# +# Inclusive Makefile for the libonlp-x86-64-alphanetworks-snx60a0-486f module. +# +# Autogenerated 2016-07-15 15:27:29.712643 +# +############################################################################### +libonlp-x86-64-alphanetworks-snx60a0-486f_BASEDIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/x86_64_alphanetworks_snx60a0_486f.mk b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/x86_64_alphanetworks_snx60a0_486f.mk new file mode 100644 index 00000000..bebc6e98 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/lib/x86_64_alphanetworks_snx60a0_486f.mk @@ -0,0 +1,10 @@ + +############################################################################### +# +# Inclusive Makefile for the x86_64_alphanetworks_snx60a0_486f module. +# +# Autogenerated 2016-07-15 15:27:29.728794 +# +############################################################################### +x86_64_alphanetworks_snx60a0_486f_BASEDIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/onlpdump/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/onlpdump/Makefile new file mode 100644 index 00000000..7035ea16 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/onlpdump/Makefile @@ -0,0 +1,46 @@ +############################################################ +# +# +# Copyright 2014 BigSwitch Networks, Inc. +# +# Licensed under the Eclipse Public License, Version 1.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.eclipse.org/legal/epl-v10.html +# +# 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. +# +# +############################################################ +# +# +# +############################################################ +include $(ONL)/make/config.amd64.mk + +.DEFAULT_GOAL := onlpdump + +MODULE := onlpdump +include $(BUILDER)/standardinit.mk + +DEPENDMODULES := AIM IOF onlp x86_64_alphanetworks_snx60a0_486f onlplib onlp_platform_defaults sff cjson cjson_util timer_wheel OS + +include $(BUILDER)/dependmodules.mk + +BINARY := onlpdump +$(BINARY)_LIBRARIES := $(LIBRARY_TARGETS) +include $(BUILDER)/bin.mk + +GLOBAL_CFLAGS += -DAIM_CONFIG_AIM_MAIN_FUNCTION=onlpdump_main +GLOBAL_CFLAGS += -DAIM_CONFIG_INCLUDE_MODULES_INIT=1 +GLOBAL_CFLAGS += -DAIM_CONFIG_INCLUDE_MAIN=1 +GLOBAL_LINK_LIBS += -lpthread -lm + +include $(BUILDER)/targets.mk + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/.module b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/.module new file mode 100644 index 00000000..a41d2cfe --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/.module @@ -0,0 +1 @@ +name: x86_64_alphanetworks_snx60a0_486f diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/Makefile new file mode 100644 index 00000000..6ae7adde --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/Makefile @@ -0,0 +1,9 @@ +############################################################################### +# +# +# +############################################################################### +include $(ONL)/make/config.mk +MODULE := x86_64_alphanetworks_snx60a0_486f +AUTOMODULE := x86_64_alphanetworks_snx60a0_486f +include $(BUILDER)/definemodule.mk diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/README b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/README new file mode 100644 index 00000000..3f2b66d3 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/README @@ -0,0 +1,6 @@ +############################################################################### +# +# x86_64_alphanetworks_snx60a0_486f README +# +############################################################################### + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/auto/make.mk b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/auto/make.mk new file mode 100644 index 00000000..a6481dea --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/auto/make.mk @@ -0,0 +1,9 @@ +############################################################################### +# +# x86_64_alphanetworks_snx60a0_486f Autogeneration +# +############################################################################### +x86_64_alphanetworks_snx60a0_486f_AUTO_DEFS := module/auto/x86_64_alphanetworks_snx60a0_486f.yml +x86_64_alphanetworks_snx60a0_486f_AUTO_DIRS := module/inc/x86_64_alphanetworks_snx60a0_486f module/src +include $(BUILDER)/auto.mk + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/auto/x86_64_alphanetworks_snx60a0_486f.yml b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/auto/x86_64_alphanetworks_snx60a0_486f.yml new file mode 100644 index 00000000..5a43e702 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/auto/x86_64_alphanetworks_snx60a0_486f.yml @@ -0,0 +1,47 @@ +############################################################################### +# +# x86_64_alphanetworks_snx60a0_486f Autogeneration Definitions. +# +############################################################################### + +cdefs: &cdefs +- X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_LOGGING: + doc: "Include or exclude logging." + default: 1 +- X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT: + doc: "Default enabled log options." + default: AIM_LOG_OPTIONS_DEFAULT +- X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT: + doc: "Default enabled log bits." + default: AIM_LOG_BITS_DEFAULT +- X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT: + doc: "Default enabled custom log bits." + default: 0 +- X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB: + doc: "Default all porting macros to use the C standard libraries." + default: 1 +- X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS: + doc: "Include standard library headers for stdlib porting macros." + default: X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB +- X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI: + doc: "Include generic uCli support." + default: 0 + + +definitions: + cdefs: + X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_HEADER: + defs: *cdefs + basename: x86_64_alphanetworks_snx60a0_486f_config + + portingmacro: + X86_64_ALPHANETWORKS_SNX60A0_486F: + macros: + - malloc + - free + - memset + - memcpy + - strncpy + - vsnprintf + - snprintf + - strlen diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f.x b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f.x new file mode 100644 index 00000000..9c9a5a00 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f.x @@ -0,0 +1,14 @@ +/**************************************************************************//** + * + * + * + *****************************************************************************/ +#include + +/* <--auto.start.xmacro(ALL).define> */ +/* */ + +/* <--auto.start.xenum(ALL).define> */ +/* */ + + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_config.h b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_config.h new file mode 100644 index 00000000..4e958ac0 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_config.h @@ -0,0 +1,127 @@ +/**************************************************************************//** + * + * @file + * @brief x86_64_alphanetworks_snx60a0_486f Configuration Header + * + * @addtogroup x86_64_alphanetworks_snx60a0_486f-config + * @{ + * + *****************************************************************************/ +#ifndef __X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_H__ +#define __X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_H__ + +#ifdef GLOBAL_INCLUDE_CUSTOM_CONFIG +#include +#endif +#ifdef X86_64_ALPHANETWORKS_SNX60A0_486F_INCLUDE_CUSTOM_CONFIG +#include +#endif + +/* */ +#include +/** + * X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_LOGGING + * + * Include or exclude logging. */ + + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_LOGGING +#define X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_LOGGING 1 +#endif + +/** + * X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT + * + * Default enabled log options. */ + + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT +#define X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT AIM_LOG_OPTIONS_DEFAULT +#endif + +/** + * X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT + * + * Default enabled log bits. */ + + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT +#define X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT AIM_LOG_BITS_DEFAULT +#endif + +/** + * X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT + * + * Default enabled custom log bits. */ + + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT +#define X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT 0 +#endif + +/** + * X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB + * + * Default all porting macros to use the C standard libraries. */ + + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB +#define X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB 1 +#endif + +/** + * X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS + * + * Include standard library headers for stdlib porting macros. */ + + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS +#define X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB +#endif + +/** + * X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI + * + * Include generic uCli support. */ + + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI +#define X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI 0 +#endif + + + +/** + * All compile time options can be queried or displayed + */ + +/** Configuration settings structure. */ +typedef struct x86_64_alphanetworks_snx60a0_486f_config_settings_s { + /** name */ + const char* name; + /** value */ + const char* value; +} x86_64_alphanetworks_snx60a0_486f_config_settings_t; + +/** Configuration settings table. */ +/** x86_64_alphanetworks_snx60a0_486f_config_settings table. */ +extern x86_64_alphanetworks_snx60a0_486f_config_settings_t x86_64_alphanetworks_snx60a0_486f_config_settings[]; + +/** + * @brief Lookup a configuration setting. + * @param setting The name of the configuration option to lookup. + */ +const char* x86_64_alphanetworks_snx60a0_486f_config_lookup(const char* setting); + +/** + * @brief Show the compile-time configuration. + * @param pvs The output stream. + */ +int x86_64_alphanetworks_snx60a0_486f_config_show(struct aim_pvs_s* pvs); + +/* */ + +#include "x86_64_alphanetworks_snx60a0_486f_porting.h" + +#endif /* __X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_H__ */ +/* @} */ diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_dox.h b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_dox.h new file mode 100644 index 00000000..e4665cc6 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_dox.h @@ -0,0 +1,26 @@ +/**************************************************************************//** + * + * x86_64_alphanetworks_snx60a0_486f Doxygen Header + * + *****************************************************************************/ +#ifndef __X86_64_ALPHANETWORKS_SNX60A0_486F_DOX_H__ +#define __X86_64_ALPHANETWORKS_SNX60A0_486F_DOX_H__ + +/** + * @defgroup x86_64_alphanetworks_snx60a0_486f x86_64_alphanetworks_snx60a0_486f - x86_64_alphanetworks_snx60a0_486f Description + * + +The documentation overview for this module should go here. + + * + * @{ + * + * @defgroup x86_64_alphanetworks_snx60a0_486f-x86_64_alphanetworks_snx60a0_486f Public Interface + * @defgroup x86_64_alphanetworks_snx60a0_486f-config Compile Time Configuration + * @defgroup x86_64_alphanetworks_snx60a0_486f-porting Porting Macros + * + * @} + * + */ + +#endif /* __X86_64_ALPHANETWORKS_SNX60A0_486F_DOX_H__ */ diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_porting.h b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_porting.h new file mode 100644 index 00000000..b54775c1 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/inc/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f_porting.h @@ -0,0 +1,107 @@ +/**************************************************************************//** + * + * @file + * @brief x86_64_alphanetworks_snx60a0_486f Porting Macros. + * + * @addtogroup x86_64_alphanetworks_snx60a0_486f-porting + * @{ + * + *****************************************************************************/ +#ifndef __X86_64_ALPHANETWORKS_SNX60A0_486F_PORTING_H__ +#define __X86_64_ALPHANETWORKS_SNX60A0_486F_PORTING_H__ + + +/* */ +#if X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS == 1 +#include +#include +#include +#include +#include +#endif + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_MALLOC + #if defined(GLOBAL_MALLOC) + #define X86_64_ALPHANETWORKS_SNX60A0_486F_MALLOC GLOBAL_MALLOC + #elif X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB == 1 + #define X86_64_ALPHANETWORKS_SNX60A0_486F_MALLOC malloc + #else + #error The macro X86_64_ALPHANETWORKS_SNX60A0_486F_MALLOC is required but cannot be defined. + #endif +#endif + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_FREE + #if defined(GLOBAL_FREE) + #define X86_64_ALPHANETWORKS_SNX60A0_486F_FREE GLOBAL_FREE + #elif X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB == 1 + #define X86_64_ALPHANETWORKS_SNX60A0_486F_FREE free + #else + #error The macro X86_64_ALPHANETWORKS_SNX60A0_486F_FREE is required but cannot be defined. + #endif +#endif + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_MEMSET + #if defined(GLOBAL_MEMSET) + #define X86_64_ALPHANETWORKS_SNX60A0_486F_MEMSET GLOBAL_MEMSET + #elif X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB == 1 + #define X86_64_ALPHANETWORKS_SNX60A0_486F_MEMSET memset + #else + #error The macro X86_64_ALPHANETWORKS_SNX60A0_486F_MEMSET is required but cannot be defined. + #endif +#endif + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_MEMCPY + #if defined(GLOBAL_MEMCPY) + #define X86_64_ALPHANETWORKS_SNX60A0_486F_MEMCPY GLOBAL_MEMCPY + #elif X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB == 1 + #define X86_64_ALPHANETWORKS_SNX60A0_486F_MEMCPY memcpy + #else + #error The macro X86_64_ALPHANETWORKS_SNX60A0_486F_MEMCPY is required but cannot be defined. + #endif +#endif + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_STRNCPY + #if defined(GLOBAL_STRNCPY) + #define X86_64_ALPHANETWORKS_SNX60A0_486F_STRNCPY GLOBAL_STRNCPY + #elif X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB == 1 + #define X86_64_ALPHANETWORKS_SNX60A0_486F_STRNCPY strncpy + #else + #error The macro X86_64_ALPHANETWORKS_SNX60A0_486F_STRNCPY is required but cannot be defined. + #endif +#endif + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_VSNPRINTF + #if defined(GLOBAL_VSNPRINTF) + #define X86_64_ALPHANETWORKS_SNX60A0_486F_VSNPRINTF GLOBAL_VSNPRINTF + #elif X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB == 1 + #define X86_64_ALPHANETWORKS_SNX60A0_486F_VSNPRINTF vsnprintf + #else + #error The macro X86_64_ALPHANETWORKS_SNX60A0_486F_VSNPRINTF is required but cannot be defined. + #endif +#endif + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_SNPRINTF + #if defined(GLOBAL_SNPRINTF) + #define X86_64_ALPHANETWORKS_SNX60A0_486F_SNPRINTF GLOBAL_SNPRINTF + #elif X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB == 1 + #define X86_64_ALPHANETWORKS_SNX60A0_486F_SNPRINTF snprintf + #else + #error The macro X86_64_ALPHANETWORKS_SNX60A0_486F_SNPRINTF is required but cannot be defined. + #endif +#endif + +#ifndef X86_64_ALPHANETWORKS_SNX60A0_486F_STRLEN + #if defined(GLOBAL_STRLEN) + #define X86_64_ALPHANETWORKS_SNX60A0_486F_STRLEN GLOBAL_STRLEN + #elif X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB == 1 + #define X86_64_ALPHANETWORKS_SNX60A0_486F_STRLEN strlen + #else + #error The macro X86_64_ALPHANETWORKS_SNX60A0_486F_STRLEN is required but cannot be defined. + #endif +#endif + +/* */ + + +#endif /* __X86_64_ALPHANETWORKS_SNX60A0_486F_PORTING_H__ */ +/* @} */ diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/make.mk b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/make.mk new file mode 100644 index 00000000..f4e72b01 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/make.mk @@ -0,0 +1,10 @@ +############################################################################### +# +# +# +############################################################################### +THIS_DIR := $(dir $(lastword $(MAKEFILE_LIST))) +x86_64_alphanetworks_snx60a0_486f_INCLUDES := -I $(THIS_DIR)inc +x86_64_alphanetworks_snx60a0_486f_INTERNAL_INCLUDES := -I $(THIS_DIR)src +x86_64_alphanetworks_snx60a0_486f_DEPENDMODULE_ENTRIES := init:x86_64_alphanetworks_snx60a0_486f ucli:x86_64_alphanetworks_snx60a0_486f + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/Makefile new file mode 100644 index 00000000..c1b65e94 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/Makefile @@ -0,0 +1,9 @@ +############################################################################### +# +# Local source generation targets. +# +############################################################################### + +ucli: + @../../../../tools/uclihandlers.py x86_64_alphanetworks_snx60a0_486f_ucli.c + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/make.mk b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/make.mk new file mode 100644 index 00000000..6f98ef96 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/make.mk @@ -0,0 +1,9 @@ +############################################################################### +# +# +# +############################################################################### + +LIBRARY := x86_64_alphanetworks_snx60a0_486f +$(LIBRARY)_SUBDIR := $(dir $(lastword $(MAKEFILE_LIST))) +include $(BUILDER)/lib.mk diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_config.c b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_config.c new file mode 100644 index 00000000..9f172282 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_config.c @@ -0,0 +1,76 @@ +/**************************************************************************//** + * + * + * + *****************************************************************************/ +#include + +/* */ +#define __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(_x) #_x +#define __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE(_x) __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(_x) +x86_64_alphanetworks_snx60a0_486f_config_settings_t x86_64_alphanetworks_snx60a0_486f_config_settings[] = +{ +#ifdef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_LOGGING + { __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_LOGGING), __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_LOGGING) }, +#else +{ X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_LOGGING(__x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME), "__undefined__" }, +#endif +#ifdef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT + { __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT), __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT) }, +#else +{ X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT(__x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME), "__undefined__" }, +#endif +#ifdef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT + { __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT), __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT) }, +#else +{ X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT(__x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME), "__undefined__" }, +#endif +#ifdef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT + { __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT), __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT) }, +#else +{ X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT(__x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME), "__undefined__" }, +#endif +#ifdef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB + { __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB), __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB) }, +#else +{ X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_STDLIB(__x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME), "__undefined__" }, +#endif +#ifdef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS + { __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS), __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS) }, +#else +{ X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_PORTING_INCLUDE_STDLIB_HEADERS(__x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME), "__undefined__" }, +#endif +#ifdef X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI + { __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI), __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE(X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI) }, +#else +{ X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI(__x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME), "__undefined__" }, +#endif + { NULL, NULL } +}; +#undef __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_VALUE +#undef __x86_64_alphanetworks_snx60a0_486f_config_STRINGIFY_NAME + +const char* +x86_64_alphanetworks_snx60a0_486f_config_lookup(const char* setting) +{ + int i; + for(i = 0; x86_64_alphanetworks_snx60a0_486f_config_settings[i].name; i++) { + if(strcmp(x86_64_alphanetworks_snx60a0_486f_config_settings[i].name, setting)) { + return x86_64_alphanetworks_snx60a0_486f_config_settings[i].value; + } + } + return NULL; +} + +int +x86_64_alphanetworks_snx60a0_486f_config_show(struct aim_pvs_s* pvs) +{ + int i; + for(i = 0; x86_64_alphanetworks_snx60a0_486f_config_settings[i].name; i++) { + aim_printf(pvs, "%s = %s\n", x86_64_alphanetworks_snx60a0_486f_config_settings[i].name, x86_64_alphanetworks_snx60a0_486f_config_settings[i].value); + } + return i; +} + +/* */ + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_enums.c b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_enums.c new file mode 100644 index 00000000..db93b1c3 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_enums.c @@ -0,0 +1,10 @@ +/**************************************************************************//** + * + * + * + *****************************************************************************/ +#include + +/* <--auto.start.enum(ALL).source> */ +/* */ + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_int.h b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_int.h new file mode 100644 index 00000000..6d28d252 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_int.h @@ -0,0 +1,12 @@ +/**************************************************************************//** + * + * x86_64_alphanetworks_snx60a0_486f Internal Header + * + *****************************************************************************/ +#ifndef __X86_64_ALPHANETWORKS_SNX60A0_486F_INT_H__ +#define __X86_64_ALPHANETWORKS_SNX60A0_486F_INT_H__ + +#include + + +#endif /* __X86_64_ALPHANETWORKS_SNX60A0_486F_INT_H__ */ diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_log.c b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_log.c new file mode 100644 index 00000000..433dcf4a --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_log.c @@ -0,0 +1,18 @@ +/**************************************************************************//** + * + * + * + *****************************************************************************/ +#include + +#include "x86_64_alphanetworks_snx60a0_486f_log.h" +/* + * x86_64_alphanetworks_snx60a0_486f log struct. + */ +AIM_LOG_STRUCT_DEFINE( + X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_OPTIONS_DEFAULT, + X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_BITS_DEFAULT, + NULL, /* Custom log map */ + X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_LOG_CUSTOM_BITS_DEFAULT + ); + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_log.h b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_log.h new file mode 100644 index 00000000..fff31fe5 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_log.h @@ -0,0 +1,12 @@ +/**************************************************************************//** + * + * + * + *****************************************************************************/ +#ifndef __X86_64_ALPHANETWORKS_SNX60A0_486F_LOG_H__ +#define __X86_64_ALPHANETWORKS_SNX60A0_486F_LOG_H__ + +#define AIM_LOG_MODULE_NAME x86_64_alphanetworks_snx60a0_486f +#include + +#endif /* __X86_64_ALPHANETWORKS_SNX60A0_486F_LOG_H__ */ diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_module.c b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_module.c new file mode 100644 index 00000000..aa08d3cc --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_module.c @@ -0,0 +1,24 @@ +/**************************************************************************//** + * + * + * + *****************************************************************************/ +#include + +#include "x86_64_alphanetworks_snx60a0_486f_log.h" + +static int +datatypes_init__(void) +{ +#define X86_64_ALPHANETWORKS_SNX60A0_486F_ENUMERATION_ENTRY(_enum_name, _desc) AIM_DATATYPE_MAP_REGISTER(_enum_name, _enum_name##_map, _desc, AIM_LOG_INTERNAL); +#include + return 0; +} + +void __x86_64_alphanetworks_snx60a0_486f_module_init__(void) +{ + AIM_LOG_STRUCT_REGISTER(); + datatypes_init__(); +} + +int __onlp_platform_version__ = 1; diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_ucli.c b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_ucli.c new file mode 100644 index 00000000..a2327e08 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/module/src/x86_64_alphanetworks_snx60a0_486f_ucli.c @@ -0,0 +1,50 @@ +/**************************************************************************//** + * + * + * + *****************************************************************************/ +#include + +#if X86_64_ALPHANETWORKS_SNX60A0_486F_CONFIG_INCLUDE_UCLI == 1 + +#include +#include +#include + +static ucli_status_t +x86_64_alphanetworks_snx60a0_486f_ucli_ucli__config__(ucli_context_t* uc) +{ + UCLI_HANDLER_MACRO_MODULE_CONFIG(x86_64_alphanetworks_snx60a0_486f) +} + +/* */ +/* */ + +static ucli_module_t +x86_64_alphanetworks_snx60a0_486f_ucli_module__ = + { + "x86_64_alphanetworks_snx60a0_486f_ucli", + NULL, + x86_64_alphanetworks_snx60a0_486f_ucli_ucli_handlers__, + NULL, + NULL, + }; + +ucli_node_t* +x86_64_alphanetworks_snx60a0_486f_ucli_node_create(void) +{ + ucli_node_t* n; + ucli_module_init(&x86_64_alphanetworks_snx60a0_486f_ucli_module__); + n = ucli_node_create("x86_64_alphanetworks_snx60a0_486f", NULL, &x86_64_alphanetworks_snx60a0_486f_ucli_module__); + ucli_node_subnode_add(n, ucli_module_log_node_create("x86_64_alphanetworks_snx60a0_486f")); + return n; +} + +#else +void* +x86_64_alphanetworks_snx60a0_486f_ucli_node_create(void) +{ + return NULL; +} +#endif + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/utest/_make.mk b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/utest/_make.mk new file mode 100644 index 00000000..1f9b2561 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/utest/_make.mk @@ -0,0 +1,8 @@ +############################################################################### +# +# x86_64_alphanetworks_snx60a0_486f Unit Test Makefile. +# +############################################################################### +UMODULE := x86_64_alphanetworks_snx60a0_486f +UMODULE_SUBDIR := $(dir $(lastword $(MAKEFILE_LIST))) +include $(BUILDER)/utest.mk diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/utest/main.c b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/utest/main.c new file mode 100644 index 00000000..e9fa4844 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/utest/main.c @@ -0,0 +1,19 @@ +/**************************************************************************//** + * + * + * + *****************************************************************************/ +#include + +#include +#include +#include +#include + +int aim_main(int argc, char* argv[]) +{ + printf("x86_64_alphanetworks_snx60a0_486f Utest Is Empty\n"); + x86_64_alphanetworks_snx60a0_486f_config_show(&aim_pvs_stdout); + return 0; +} + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f.doxy b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f.doxy new file mode 100644 index 00000000..e69de29b diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f.mk b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f.mk new file mode 100644 index 00000000..5652d605 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/onlp/builds/src/x86_64_alphanetworks_snx60a0_486f/x86_64_alphanetworks_snx60a0_486f.mk @@ -0,0 +1,14 @@ + +############################################################################### +# +# Inclusive Makefile for the x86_64_alphanetworks_snx60a0_486f module. +# +# Autogenerated 2016-07-15 15:47:05.304474 +# +############################################################################### +x86_64_alphanetworks_snx60a0_486f_BASEDIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) +include $(x86_64_alphanetworks_snx60a0_486f_BASEDIR)module/make.mk +include $(x86_64_alphanetworks_snx60a0_486f_BASEDIR)module/auto/make.mk +include $(x86_64_alphanetworks_snx60a0_486f_BASEDIR)module/src/make.mk +include $(x86_64_alphanetworks_snx60a0_486f_BASEDIR)utest/_make.mk + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/Makefile new file mode 100644 index 00000000..003238cf --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/Makefile @@ -0,0 +1 @@ +include $(ONL)/make/pkg.mk \ No newline at end of file diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/Makefile b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/Makefile new file mode 100644 index 00000000..003238cf --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/Makefile @@ -0,0 +1 @@ +include $(ONL)/make/pkg.mk \ No newline at end of file diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/PKG.yml b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/PKG.yml new file mode 100644 index 00000000..d3edd871 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/PKG.yml @@ -0,0 +1,3 @@ +!include $ONL_TEMPLATES/platform-config-platform.yml ARCH=amd64 VENDOR=alphanetworks PLATFORM=x86-64-alphanetworks-snx60a0-486f-r0 + + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/src/lib/x86-64-alphanetworks-snx60a0-486f-r0.yml b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/src/lib/x86-64-alphanetworks-snx60a0-486f-r0.yml new file mode 100644 index 00000000..d55b1cc0 --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/src/lib/x86-64-alphanetworks-snx60a0-486f-r0.yml @@ -0,0 +1,25 @@ +--- + +###################################################################### +# +# platform-config for SNX60A0-486F +# +###################################################################### +x86-64-alphanetworks-snx60a0-486f-r0: + + grub: + + serial: >- + --port=0x3f8 + --speed=115200 + --word=8 + --parity=no + --stop=1 + + kernel: + <<: *kernel-3-2 + + args: >- + nopat + console=ttyS0,115200n8 + diff --git a/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/src/python/x86_64_alphanetworks_snx60a0_486f_r0/__init__.py b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/src/python/x86_64_alphanetworks_snx60a0_486f_r0/__init__.py new file mode 100644 index 00000000..f86ea0ce --- /dev/null +++ b/packages/platforms/alphanetworks/x86-64-alphanetworks-snx60a0-486f/platform-config/r0/src/python/x86_64_alphanetworks_snx60a0_486f_r0/__init__.py @@ -0,0 +1,9 @@ +from onl.platform.base import * +from onl.platform.alphanetworks import * + +class OnlPlatform_x86_64_alphanetworks_snx60a0_486f_r0(OnlPlatformAlphaNetworks, + OnlPlatformPortConfig_48x10_6x40): + PLATFORM='x86-64-alphanetworks-snx60a0-486f-r0' + MODEL="SNX-60A0-486F" + SYS_OBJECT_ID=".6000.486.1" + diff --git a/packages/platforms/celestica/vendor-config/src/python/celestica/__init__.py b/packages/platforms/celestica/vendor-config/src/python/celestica/__init__.py index 722f43d9..08a5db35 100644 --- a/packages/platforms/celestica/vendor-config/src/python/celestica/__init__.py +++ b/packages/platforms/celestica/vendor-config/src/python/celestica/__init__.py @@ -1,23 +1,8 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# OnlPlatform support for Celestica platforms. -# -############################################################ + from onl.platform.base import * class OnlPlatformCelestica(OnlPlatformBase): - def manufacturer(self): - return "Celestica" - - def sys_oid_vendor(self): - return ".12290" + MANUFACTUTER='Celestica' + PRIVATE_ENTERPRISE_NUMBER=12290 diff --git a/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/x86_64_cel_redstone_xp/.module b/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/x86_64_cel_redstone_xp/.module new file mode 100644 index 00000000..2aa1d02a --- /dev/null +++ b/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/x86_64_cel_redstone_xp/.module @@ -0,0 +1 @@ +name: x86_64_cel_redstone_xp diff --git a/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/platform-config/r0/src/python/x86_64_cel_redstone_xp_r0/__init__.py b/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/platform-config/r0/src/python/x86_64_cel_redstone_xp_r0/__init__.py index 0226ddd8..f3d6c214 100644 --- a/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/platform-config/r0/src/python/x86_64_cel_redstone_xp_r0/__init__.py +++ b/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/platform-config/r0/src/python/x86_64_cel_redstone_xp_r0/__init__.py @@ -1,16 +1,9 @@ from onl.platform.base import * from onl.platform.celestica import * -class OnlPlatform_x86_64_cel_redstone_xp_r0(OnlPlatformCelestica): +class OnlPlatform_x86_64_cel_redstone_xp_r0(OnlPlatformCelestica, + OnlPlatformPortConfig_48x10_6x40): + PLATFORM='x86-64-cel-redstone-xp-r0' + MODEL="Redstone XP" + SYS_OBJECT_ID=".2060.1" - def model(self): - return "Redstone XP" - - def platform(self): - return "x86-64-cel-redstone-xp-r0" - - def sys_oid_platform(self): - return ".2060.1" - - def baseconfig(self): - return True diff --git a/packages/platforms/dell/vendor-config/src/python/dell/__init__.py b/packages/platforms/dell/vendor-config/src/python/dell/__init__.py index 8c2ee967..3b69223e 100644 --- a/packages/platforms/dell/vendor-config/src/python/dell/__init__.py +++ b/packages/platforms/dell/vendor-config/src/python/dell/__init__.py @@ -1,23 +1,7 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# OnlPlatform support for DELL platforms. -# -############################################################ + from onl.platform.base import * class OnlPlatformDell(OnlPlatformBase): - - def manufacturer(self): - return "Dell" - - def sys_oid_vendor(self): - return ".674" + MANUFACTURER='Dell' + PRIVATE_ENTERPRISE_NUMBER=674 diff --git a/packages/platforms/dni/vendor-config/src/python/dni/__init__.py b/packages/platforms/dni/vendor-config/src/python/dni/__init__.py index 83562176..6878a215 100644 --- a/packages/platforms/dni/vendor-config/src/python/dni/__init__.py +++ b/packages/platforms/dni/vendor-config/src/python/dni/__init__.py @@ -1,22 +1,7 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# OnlPlatform support for DNI platforms. -# -############################################################ + from onl.platform.base import * class OnlPlatformDNI(OnlPlatformBase): - def manufacturer(self): - return "DNI" - - def sys_oid_vendor(self): - return ".5324" + MANUFACTURER='DNI' + PRIVATE_ENTERPRISE_NUMBER=5324 diff --git a/packages/platforms/kvm/vendor-config/src/python/kvm/__init__.py b/packages/platforms/kvm/vendor-config/src/python/kvm/__init__.py index 62338900..9ab43132 100644 --- a/packages/platforms/kvm/vendor-config/src/python/kvm/__init__.py +++ b/packages/platforms/kvm/vendor-config/src/python/kvm/__init__.py @@ -1,22 +1,7 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# OnlPlatform support for the KVM simulation platform. -# -############################################################ + from onl.platform.base import * class OnlPlatformKVM(OnlPlatformBase): - def manufacturer(self): - return "KVM" - - def sys_oid_vendor(self): - return ".42623" + MANUFACTURER='KVM' + PRIVATE_ENTERPRISE_NUMBER=42623 diff --git a/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/onlp/builds/src/x86_64_kvm_x86_64/.module b/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/onlp/builds/src/x86_64_kvm_x86_64/.module new file mode 100644 index 00000000..b2f88a96 --- /dev/null +++ b/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/onlp/builds/src/x86_64_kvm_x86_64/.module @@ -0,0 +1 @@ +name: x86_64_kvm_x86_64 diff --git a/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/platform-config/r0/src/python/x86_64_kvm_x86_64_r0/__init__.py b/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/platform-config/r0/src/python/x86_64_kvm_x86_64_r0/__init__.py index d4d79074..29d18aba 100644 --- a/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/platform-config/r0/src/python/x86_64_kvm_x86_64_r0/__init__.py +++ b/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/platform-config/r0/src/python/x86_64_kvm_x86_64_r0/__init__.py @@ -2,15 +2,8 @@ from onl.platform.base import * from onl.platform.kvm import * class OnlPlatform_x86_64_kvm_x86_64_r0(OnlPlatformKVM): - - def model(self): - return "KVM X86_64" - - def platform(self): - return "x86-64-kvm-x86-64-r0" - - def sys_oid_platform(self): - return ".1" - - def baseconfig(self): - return True + PLATFORM='x86-64-kvm-x86-64-r0' + MODEL="KVM X86_64" + SYS_OBJECT_ID=".1" + PORT_COUNT=0 + PORT_CONFIG="None" diff --git a/packages/platforms/qemu/arm/arm-qemu-armv7a/onlp/builds/src/arm_qemu_armv7a/.module b/packages/platforms/qemu/arm/arm-qemu-armv7a/onlp/builds/src/arm_qemu_armv7a/.module new file mode 100644 index 00000000..731284a9 --- /dev/null +++ b/packages/platforms/qemu/arm/arm-qemu-armv7a/onlp/builds/src/arm_qemu_armv7a/.module @@ -0,0 +1 @@ +name: arm_qemu_armv7a diff --git a/packages/platforms/qemu/arm/arm-qemu-armv7a/platform-config/r0/src/python/arm_qemu_armv7a_r0/__init__.py b/packages/platforms/qemu/arm/arm-qemu-armv7a/platform-config/r0/src/python/arm_qemu_armv7a_r0/__init__.py index 91cf4771..8454c3c8 100644 --- a/packages/platforms/qemu/arm/arm-qemu-armv7a/platform-config/r0/src/python/arm_qemu_armv7a_r0/__init__.py +++ b/packages/platforms/qemu/arm/arm-qemu-armv7a/platform-config/r0/src/python/arm_qemu_armv7a_r0/__init__.py @@ -2,15 +2,8 @@ from onl.platform.base import * from onl.platform.qemu import * class OnlPlatform_arm_qemu_armv7a_r0(OnlPlatformQEMU): - - def model(self): - return "QEMU ARMv7a" - - def platform(self): - return "arm-qemu-armv7a-r0" - - def sys_oid_platform(self): - return ".2" - - def baseconfig(self): - return True + PLATFORM='arm-qemu-armv7a-r0' + MODEL="QEMU ARMv7a" + SYS_OBJECT_ID=".2" + PORT_COUNT=0 + PORT_CONFIG="" diff --git a/packages/platforms/qemu/vendor-config/src/python/qemu/__init__.py b/packages/platforms/qemu/vendor-config/src/python/qemu/__init__.py index 82b0e38e..0557dc29 100644 --- a/packages/platforms/qemu/vendor-config/src/python/qemu/__init__.py +++ b/packages/platforms/qemu/vendor-config/src/python/qemu/__init__.py @@ -1,22 +1,7 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# OnlPlatform support for the KVM simulation platform. -# -############################################################ + from onl.platform.base import * class OnlPlatformQEMU(OnlPlatformBase): - def manufacturer(self): - return "QEMU" - - def sys_oid_vendor(self): - return ".42623" + MANUFACTURER='QEMU' + PRIVATE_ENTERPRISE_NUMBER=42623 diff --git a/packages/platforms/quanta/any/src/quanta_sys_eeprom/.module b/packages/platforms/quanta/any/src/quanta_sys_eeprom/.module new file mode 100644 index 00000000..84e84b53 --- /dev/null +++ b/packages/platforms/quanta/any/src/quanta_sys_eeprom/.module @@ -0,0 +1 @@ +name: quanta_sys_eeprom diff --git a/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/onlp/builds/src/.module b/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/onlp/builds/src/.module new file mode 100644 index 00000000..f20123ae --- /dev/null +++ b/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/onlp/builds/src/.module @@ -0,0 +1 @@ +name: powerpc_quanta_lb9 diff --git a/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/platform-config/r0/src/python/powerpc_quanta_lb9_r0/__init__.py b/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/platform-config/r0/src/python/powerpc_quanta_lb9_r0/__init__.py index 61872744..abb2c5ac 100644 --- a/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/platform-config/r0/src/python/powerpc_quanta_lb9_r0/__init__.py +++ b/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/platform-config/r0/src/python/powerpc_quanta_lb9_r0/__init__.py @@ -1,27 +1,13 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# Platform Driver for the Quanta LB9 -# -############################################################ + from onl.platform.base import * from onl.platform.quanta import * -class OnlPlatform_powerpc_quanta_lb9_r0(OnlPlatformQuanta): - - def model(self): - return "LB9" - - def platform(self): - return "powerpc-quanta-lb9-r0" +class OnlPlatform_powerpc_quanta_lb9_r0(OnlPlatformQuanta, + OnlPlatformPortConfig_48x1_4x10): + PLATFORM='powerpc-quanta-lb9-r0' + MODEL="LB9" + SYS_OBJECT_ID=".1048.1" def baseconfig(self): platform_fancontrol="%s/etc/fancontrol" % self.basedir_onl() @@ -35,7 +21,5 @@ class OnlPlatform_powerpc_quanta_lb9_r0(OnlPlatformQuanta): return True - def sys_oid_platform(self): - return ".1048.1" diff --git a/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/onlp/builds/src/.module b/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/onlp/builds/src/.module new file mode 100644 index 00000000..1c498acd --- /dev/null +++ b/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/onlp/builds/src/.module @@ -0,0 +1 @@ +name: powerpc_quanta_ly2 diff --git a/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/platform-config/r0/src/python/powerpc_quanta_ly2_r0/__init__.py b/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/platform-config/r0/src/python/powerpc_quanta_ly2_r0/__init__.py index 79f42461..49319b5e 100644 --- a/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/platform-config/r0/src/python/powerpc_quanta_ly2_r0/__init__.py +++ b/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/platform-config/r0/src/python/powerpc_quanta_ly2_r0/__init__.py @@ -1,18 +1,14 @@ #!/usr/bin/python -############################################################ -# -############################################################ + import subprocess from onl.platform.base import * from onl.platform.quanta import * -class OnlPlatform_powerpc_quanta_ly2_r0(OnlPlatformQuanta): - - def model(self): - return "LY2" - - def platform(self): - return "powerpc-quanta-ly2-r0" +class OnlPlatform_powerpc_quanta_ly2_r0(OnlPlatformQuanta, + OnlPlatformPortConfig_48x10_4x40): + PLATFORM='powerpc-quanta-ly2-r0' + MODEL="LY2" + SYS_OBJECT_ID=".3048.1" def baseconfig(self): subprocess.check_call("%s/sbin/gpio_init" % self.basedir_onl()) @@ -39,8 +35,7 @@ class OnlPlatform_powerpc_quanta_ly2_r0(OnlPlatformQuanta): return True - def sys_oid_platform(self): - return ".3048.1" + diff --git a/packages/platforms/quanta/vendor-config/src/python/quanta/__init__.py b/packages/platforms/quanta/vendor-config/src/python/quanta/__init__.py index 8d5adc04..44a2951b 100644 --- a/packages/platforms/quanta/vendor-config/src/python/quanta/__init__.py +++ b/packages/platforms/quanta/vendor-config/src/python/quanta/__init__.py @@ -1,23 +1,7 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# OnlPlatform support for Quanta platforms. -# -############################################################ + from onl.platform.base import * class OnlPlatformQuanta(OnlPlatformBase): - - def manufacturer(self): - return "Quanta" - - def sys_oid_vendor(self): - return ".7244" + MANUFACTURER='Quanta' + PRIVATE_ENTERPRISE_NUMBER=7244 diff --git a/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/onlp/builds/src/x86_64_quanta_ly6_rangeley/.module b/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/onlp/builds/src/x86_64_quanta_ly6_rangeley/.module new file mode 100644 index 00000000..c8d72261 --- /dev/null +++ b/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/onlp/builds/src/x86_64_quanta_ly6_rangeley/.module @@ -0,0 +1 @@ +name: x86_64_quanta_ly6_rangeley diff --git a/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/platform-config/r0/src/python/x86_64_quanta_ly6_rangeley_r0/__init__.py b/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/platform-config/r0/src/python/x86_64_quanta_ly6_rangeley_r0/__init__.py index 8c7095e4..66694cb1 100644 --- a/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/platform-config/r0/src/python/x86_64_quanta_ly6_rangeley_r0/__init__.py +++ b/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/platform-config/r0/src/python/x86_64_quanta_ly6_rangeley_r0/__init__.py @@ -1,16 +1,11 @@ from onl.platform.base import * from onl.platform.quanta import * -class OnlPlatform_x86_64_quanta_ly6_rangeley_r0(OnlPlatformQuanta): - - def model(self): - return "LY6" - - def platform(self): - return "x86-64-quanta-ly6-rangeley-r0" - - def sys_oid_platform(self): - return ".6.1" +class OnlPlatform_x86_64_quanta_ly6_rangeley_r0(OnlPlatformQuanta, + OnlPlatformPortConfig_32x40): + PLATFORM='x86-64-quanta-ly6-rangeley-r0' + MODEL='LY6' + SYS_OBJECT_ID='.6.1' def baseconfig(self): # fixme diff --git a/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/onlp/builds/src/x86_64_quanta_ly8_rangeley/.module b/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/onlp/builds/src/x86_64_quanta_ly8_rangeley/.module new file mode 100644 index 00000000..d49ebd6d --- /dev/null +++ b/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/onlp/builds/src/x86_64_quanta_ly8_rangeley/.module @@ -0,0 +1 @@ +name: x86_64_quanta_ly8_rangeley diff --git a/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/platform-config/r0/src/python/x86_64_quanta_ly8_rangeley_r0/__init__.py b/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/platform-config/r0/src/python/x86_64_quanta_ly8_rangeley_r0/__init__.py index c86405b1..899e821c 100644 --- a/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/platform-config/r0/src/python/x86_64_quanta_ly8_rangeley_r0/__init__.py +++ b/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/platform-config/r0/src/python/x86_64_quanta_ly8_rangeley_r0/__init__.py @@ -1,16 +1,11 @@ from onl.platform.base import * from onl.platform.quanta import * -class OnlPlatform_x86_64_quanta_ly8_rangeley_r0(OnlPlatformQuanta): - - def model(self): - return "LY8" - - def platform(self): - return "x86-64-quanta-ly8-rangeley-r0" - - def sys_oid_platform(self): - return ".8.1" +class OnlPlatform_x86_64_quanta_ly8_rangeley_r0(OnlPlatformQuanta, + OnlPlatformPortConfig_48x10_6x40): + PLATFORM='x86-64-quanta-ly8-rangeley-r0' + MODEL="LY8" + SYS_OBJECT_ID=".8.1" def baseconfig(self): # fixme diff --git a/packages/platforms/wnc/vendor-config/src/python/wnc/__init__.py b/packages/platforms/wnc/vendor-config/src/python/wnc/__init__.py index 2002920a..1d5c41fa 100644 --- a/packages/platforms/wnc/vendor-config/src/python/wnc/__init__.py +++ b/packages/platforms/wnc/vendor-config/src/python/wnc/__init__.py @@ -1,22 +1,7 @@ #!/usr/bin/python -############################################################ -# -# -# Copyright 2013, 2014 BigSwitch Networks, Inc. -# -# -# -# -############################################################ -# -# OnlPlatform support for WNC platforms. -# -############################################################ + from onl.platform.base import * class OnlPlatformWNC(OnlPlatformBase): - def manufacturer(self): - return "WNC" - - def sys_oid_vendor(self): - return ".15756" + MANUFACTURER='WNC' + PRIVATE_ENTERPRISE_NUMBER=15756 diff --git a/setup.env b/setup.env index 56d0ad37..7e6f7f33 100755 --- a/setup.env +++ b/setup.env @@ -44,3 +44,6 @@ export ONL_DEBIAN_SUITE=$(lsb_release -c -s) if [ ! -f $ONL/.git/hooks/post-merge ] && [ -d $ONL/.git ]; then cp $ONL/tools/scripts/post-merge.hook $ONL/.git/hooks/post-merge fi + +# submodule post update scripts. +export ONL_SUBMODULE_UPDATED_SCRIPTS="$ONL/tools/scripts/submodule-updated.sh" \ No newline at end of file diff --git a/sm/bigcode b/sm/bigcode index a5e6bc1d..44249760 160000 --- a/sm/bigcode +++ b/sm/bigcode @@ -1 +1 @@ -Subproject commit a5e6bc1d768a40a527e853e6c789c5a9eaf5159d +Subproject commit 442497608648ff26996716432e67c2196ec9b613 diff --git a/sm/infra b/sm/infra index a7a62f56..e501832c 160000 --- a/sm/infra +++ b/sm/infra @@ -1 +1 @@ -Subproject commit a7a62f563a992eeefdb53c4f2b9fb634304fe860 +Subproject commit e501832cf585405ab8ba66fa0ee4a42d27ead088 diff --git a/tools/autobuild/install.sh b/tools/autobuild/install.sh index dddc2bfa..9f904a76 100755 --- a/tools/autobuild/install.sh +++ b/tools/autobuild/install.sh @@ -48,7 +48,7 @@ done if [ -z "$REMOTE_SERVER" ]; then - echo "Remote instlallation requires a server (-s)" + echo "Remote installation requires a server (-s)" exit 1 fi diff --git a/tools/mkinstaller.py b/tools/mkinstaller.py new file mode 100755 index 00000000..8b63dcb5 --- /dev/null +++ b/tools/mkinstaller.py @@ -0,0 +1,193 @@ +#!/usr/bin/python +############################################################ +# +# Build an ONL Installer +# +############################################################ +import os +import sys +import argparse +import logging +import tempfile +import shutil +import subprocess + +NAME="mkinstaller" +logging.basicConfig() +logger = logging.getLogger(NAME) +logger.setLevel(logging.DEBUG) + +ONL = os.getenv('ONL') +if ONL is None: + logger.error("$ONL is not set.") + sys.exit(1) + +class InstallerShar(object): + def __init__(self, arch, template=None, work_dir=None): + self.ONL = ONL + + if template is None: + template = os.path.join(self.ONL, 'builds', 'any', 'installer', 'installer.sh.in') + if not os.path.exists(template): + self.abort("Template file '%s' is missing." % template) + + with open(template) as f: + self.template = f.read() + + if work_dir: + self.work_dir = work_dir + self.remove_work_dir = False + if os.path.exists(self.work_dir): + logger.info("Removing existing work tree @ %s" % self.work_dir) + shutil.rmtree(self.work_dir) + + else: + self.work_dir = tempfile.mkdtemp() + self.remove_work_dir = True + + if not os.path.isdir(self.work_dir): + os.makedirs(self.work_dir) + + self.files = [] + self.platforms = [] + self.arch = arch + + logger.info("Work Directory is %s" % self.work_dir) + + if self.arch == 'amd64': + self.setvar("ARCH", 'x86_64') + else: + self.setvar("ARCH", self.arch) + + def abort(self, msg): + logger.error(msg) + sys.exit(1) + + def find_file(self, package, filename): + return subprocess.check_output("onlpm --find-file %s %s" % (package, filename), shell=True).strip() + + def setvar(self, name, value): + self.template = self.template.replace("@%s@" % name, value) + + def add_initrd(self, package, filename, add_platforms=True): + self.initrd = self.find_file(package, filename) + self.add_file(self.initrd) + if add_platforms: + for platform in subprocess.check_output("onlpm --platform-manifest %s" % (package), shell=True).split(): + logger.info("Adding platform %s..." % platform) + kernel = subprocess.check_output([os.path.join(self.ONL, 'tools', 'onlplatform.py'), + platform, + self.arch, + 'kernel']).strip() + + logger.info("Platform %s using kernel %s..." % (platform, os.path.basename(kernel))) + self.add_file(kernel) + + self.setvar('INITRD_ARCHIVE', os.path.basename(self.initrd)) + self.setvar('INITRD_OFFSET', '') + self.setvar('INITRD_SIZE', '') + + + def add_fit(self, package, filename, add_platforms=True): + self.fit = self.find_file(package, filename) + VONL=os.path.join(self.ONL, "packages", "base", "all", "vendor-config-onl") + offsets = subprocess.check_output("PYTHONPATH=%s/src/python %s/src/bin/pyfit -v offset %s --initrd" % (VONL, VONL, self.fit), shell=True).split() + self.setvar('INITRD_ARCHIVE', os.path.basename(self.fit)) + self.setvar('INITRD_OFFSET', offsets[0]) + self.setvar('INITRD_SIZE', str(int(offsets[1]) - int(offsets[0]))) + self.add_file(self.fit) + + def add_file(self, filename): + if not os.path.exists(filename): + self.abort("File %s does not exist." % filename) + + logger.info("Adding file %s..." % os.path.basename(filename)) + self.files.append(filename) + self.files = list(set(self.files)) + + def add_swi(self, package): + edir = os.path.join(self.work_dir, "swidir") + subprocess.check_output('onlpm --extract-dir %s %s' % (package, edir), shell=True) + for (root, dirs, files) in os.walk(edir): + for f in files: + if f.endswith(".swi"): + self.add_file(os.path.join(root, f)) + + + def build(self, name): + + for f in self.files: + shutil.copy(f, self.work_dir) + + with open(os.path.join(self.work_dir, 'installer.sh'), "w") as f: + f.write(self.template) + f.write("PAYLOAD_FOLLOWS\n") + + with open(os.path.join(self.work_dir, "autoperms.sh"), "w") as f: + f.write("#!/bin/sh\n") + f.write("set -e\n") + f.write("set -x\n") + + + cwd = os.getcwd() + os.chdir(self.work_dir) + + mkshar = [ os.path.join(self.ONL, 'tools', 'mkshar'), + '--lazy', + '--unzip-pad', + '--fixup-perms', 'autoperms.sh', + name, + os.path.join(self.ONL, 'tools', 'scripts', 'sfx.sh.in'), + 'installer.sh', + ] + [ os.path.basename(f) for f in self.files ] + + subprocess.check_call(mkshar) + os.chdir(cwd) + + + + +if __name__ == '__main__': + + ap = argparse.ArgumentParser(NAME) + ap.add_argument("--arch", help="Installer Architecture.", required=True, + choices = ['amd64', 'powerpc', 'armel' ]) + ap.add_argument("--initrd", nargs=2, help="The system initrd.") + ap.add_argument("--fit", nargs=2, help="The system FIT image.") + ap.add_argument("--boot-config", help="The boot-config source.", required=True) + ap.add_argument("--swi", help="Include the given SWI in the installer.") + ap.add_argument("--work-dir", help="Set work directory and keep intermediates for debugging.") + ap.add_argument("--verbose", '-v', help="Verbose output.", action='store_true') + ap.add_argument("--out", help="Destination Filename") + + ops = ap.parse_args() + installer = InstallerShar(ops.arch, ops.work_dir) + + if ops.arch == 'amd64': + if ops.initrd is None: + logger.error("--initrd must be used with architecture %s" % ops.arch) + sys.exit(1) + if ops.fit: + logger.error("--fit cannot be used with architecture %s" % ops.arch) + sys.exit(1) + else: + if ops.fit is None: + logger.error("--fit must be used with architecture %s" % ops.arch) + sys.exit(1) + if ops.initrd: + logger.error("--initrd cannot be used with architecture %s" % ops.arch) + sys.exit(1) + + if ops.initrd: + installer.add_initrd(*ops.initrd) + if ops.fit: + installer.add_fit(*ops.fit) + + installer.add_file(ops.boot_config) + + if ops.swi: + installer.add_swi(ops.swi) + + iname = os.path.abspath(ops.out) + installer.build(iname) + logger.info("installer: %s" % iname) diff --git a/tools/onlplatform.py b/tools/onlplatform.py old mode 100644 new mode 100755 index 633bc722..119213d3 --- a/tools/onlplatform.py +++ b/tools/onlplatform.py @@ -8,6 +8,7 @@ the platform package metadata. import sys, os import itertools +import argparse toolsdir = os.path.dirname(os.path.abspath(__file__)) sys.path.append(toolsdir) @@ -23,9 +24,11 @@ from onlpm import * pm = defaultPm() -platform = sys.argv[1] -arch = sys.argv[2] -key = sys.argv[3] +ap = argparse.ArgumentParser("ONL Platform Data Extractor.") +ap.add_argument("platform", help="Platform name") +ap.add_argument("arch", help="Architecture") +ap.add_argument("key", help="Lookup key.") +ops = ap.parse_args() def extractKey(platform, arch, key): @@ -71,12 +74,12 @@ def extractVendor(platform, arch): l = [x for x in l if x.startswith('onl-vendor-config-')] return "\n".join(l) -if key in ('kernel', 'initrd', 'dtb', 'itb',): - print extractKey(platform, arch, key) +if ops.key in ('kernel', 'initrd', 'dtb', 'itb',): + print extractKey(ops.platform, ops.arch, ops.key) sys.exit(0) -if key == 'vendor': - print extractVendor(platform, arch) +if ops.key == 'vendor': + print extractVendor(ops.platform, ops.arch) sys.exit(0) -raise SystemExit("invalid key %s" % key) +raise SystemExit("invalid key %s" % ops.key) diff --git a/tools/onlrfs.py b/tools/onlrfs.py index 3cac7a1b..11251413 100755 --- a/tools/onlrfs.py +++ b/tools/onlrfs.py @@ -61,12 +61,18 @@ class OnlRfsSystemAdmin(object): onlu.execute("sudo chmod %s %s" % (mode, file_), ex=OnlRfsError("Could not change permissions (%s) on file %s" % (mode, file_))) - def userdel(self): - pf = os.path.join(self.chroot, 'etc/password') + @staticmethod + def chown(file_, ownspec): + onlu.execute("sudo chown %s %s" % (ownspec, file_), + ex=OnlRfsError("Could not change ownership (%s) on file %s" % (ownspec, file_))) + + def userdel(self, username): + pf = os.path.join(self.chroot, 'etc/passwd') sf = os.path.join(self.chroot, 'etc/shadow') - self.chmod("a+w", pf); - self.chmod("a+w", sf); + self.chmod("a+rwx", os.path.dirname(pf)) + self.chmod("a+rw", pf); + self.chmod("a+rw", sf); # Can't use the userdel command because of potential uid 0 in-user problems while running ourselves for line in fileinput.input(pf, inplace=True): @@ -76,23 +82,40 @@ class OnlRfsSystemAdmin(object): if not line.startswith('%s:' % username): print line, - self.chmod("go-w", pf); - self.chmod("go-w", sf); + self.chmod("go-wx", pf); + self.chmod("go-wx", sf); - def useradd(self, username, uid, password, shell, deleteFirst=True): - args = [ 'useradd', '--non-unique', '--shell', shell, '--home-dir', '/root', - '--uid', '0', '--gid', '0', '--group', 'root' ] + def useradd(self, username, uid=None, gid=None, password=None, shell='/bin/bash', home=None, groups=None, sudo=False, deleteFirst=True): + args = [ 'useradd', '--create-home' ] - if deleteFirst: - self.userdel(username) + if uid is not None: + args = args + [ '--non-unique', '--uid', str(uid) ] + if gid is not None: + args = args + [ '--gid', str(gid) ] if password: epassword=crypt.crypt(password, '$1$%s$' % self.gen_salt()); args = args + ['-p', epassword ] + if shell: + args = args + [ '--shell', shell ] + + if gid: + args = args + [ '--gid', gid ] + + if home: + args = args + [ '--home', home ] + + if groups: + args = args + [ '--group', groups ] + + if deleteFirst: + self.userdel(username) + args.append(username) onlu.execute(args, + chroot=self.chroot, ex=OnlRfsError("Adding user '%s' failed." % username)) if password is None: @@ -102,6 +125,14 @@ class OnlRfsSystemAdmin(object): logger.info("user %s password %s", username, password) + if sudo: + sudoer = os.path.join(self.chroot, 'etc/sudoers.d', username) + self.chmod("777", os.path.dirname(sudoer)) + with open(sudoer, "w") as f: + f.write("%s ALL=(ALL:ALL) NOPASSWD:ALL\n" % username); + self.chmod("0440", sudoer) + self.chown(sudoer, "root:root") + self.chmod("755", os.path.dirname(sudoer)) def user_password_set(self, username, password): logger.info("user %s password now %s", username, password) @@ -347,13 +378,21 @@ rm -f /usr/sbin/policy-rc.d for (user, values) in Configure.get('users', {}).iteritems(): ua = OnlRfsSystemAdmin(dir_) - if 'password' in values: - ua.user_password_set(user, values['password']) + if user == 'root': + if 'password' in values: + ua.user_password_set(user, values['password']) + else: + ua.useradd(username=user, **values) options = Configure.get('options', {}) if options.get('clean', False): logger.info("Cleaning Filesystem...") + onlu.execute('sudo chroot %s /usr/bin/apt-get clean' % dir_) + onlu.execute('sudo chroot %s /usr/sbin/localepurge' % dir_ ) + onlu.execute('sudo chroot %s find /usr/share/doc -type f -delete' % dir_) + onlu.execute('sudo chroot %s find /usr/share/man -type f -delete' % dir_) + if not options.get('securetty', True): f = os.path.join(dir_, 'etc/securetty') @@ -387,23 +426,59 @@ rm -f /usr/sbin/policy-rc.d ua.chmod('go-w', os.path.dirname(f)) - manifest = Configure.get('manifest', {}) - if manifest: - mname = "%s/etc/onl/rootfs/manifest.json" % dir_ + for (mf, fields) in Configure.get('manifests', {}).iteritems(): + logger.info("Configuring manifest %s..." % mf) + if mf.startswith('/'): + mf = mf[1:] + mname = os.path.join(dir_, mf) onlu.execute("sudo mkdir -p %s" % os.path.dirname(mname)) onlu.execute("sudo touch %s" % mname) onlu.execute("sudo chmod a+w %s" % mname) md = {} - md['version'] = json.load(open(manifest['version'])) + md['version'] = json.load(open(fields['version'])) md['arch'] = self.arch - if os.path.exists(manifest['platforms']): - md['platforms'] = yaml.load(open(manifest['platforms'])) + if os.path.exists(fields['platforms']): + md['platforms'] = yaml.load(open(fields['platforms'])) else: - md['platforms'] = manifest['platforms'].split(',') + md['platforms'] = fields['platforms'].split(',') with open(mname, "w") as f: json.dump(md, f, indent=2) onlu.execute("sudo chmod a-w %s" % mname) + for (fname, v) in Configure.get('files', {}).get('add', {}).iteritems(): + if fname.startswith('/'): + fname = fname[1:] + dst = os.path.join(dir_, fname) + onlu.execute("sudo mkdir -p %s" % os.path.dirname(dst)) + onlu.execute("sudo touch %s" % dst) + onlu.execute("sudo chmod a+w %s" % dst) + if os.path.exists(v): + shutil.copy(v, dst) + else: + with open(dst, "w") as f: + f.write("%s\n" % v) + + for fname in Configure.get('files', {}).get('remove', []): + if fname.startswith('/'): + fname = fname[1:] + f = os.path.join(dir_, fname) + if os.path.exists(f): + onlu.execute("sudo rm -rf %s" % f) + + if Configure.get('issue'): + issue = Configure.get('issue') + fn = os.path.join(dir_, "etc/issue") + onlu.execute("sudo chmod a+w %s" % fn) + with open(fn, "w") as f: + f.write("%s\n\n" % issue) + onlu.execute("sudo chmod a-w %s" % fn) + + fn = os.path.join(dir_, "etc/issue.net") + onlu.execute("sudo chmod a+w %s" % fn) + with open(fn, "w") as f: + f.write("%s" % issue) + onlu.execute("sudo chmod a-w %s" % fn) + finally: onlu.execute("sudo umount -l %s %s" % (os.path.join(dir_, "dev"), os.path.join(dir_, "proc"))) diff --git a/tools/scripts/submodule-updated.sh b/tools/scripts/submodule-updated.sh index f1e166ce..c3ff4608 100755 --- a/tools/scripts/submodule-updated.sh +++ b/tools/scripts/submodule-updated.sh @@ -13,7 +13,7 @@ ############################################################ # Removing the manifest causes it to be regenerated. -rm -rf $ONL/.manifest.mk +rm -rf $ONL/make/module-manifest.mk # Rebuild pkg cache onlpm.py --rebuild-pkg-cache diff --git a/tools/submodules.py b/tools/submodules.py index 991178c4..9e8deba4 100755 --- a/tools/submodules.py +++ b/tools/submodules.py @@ -101,14 +101,13 @@ class OnlSubmoduleManager(object): # # Run any repository-specific post-submodule-init scripts. # - script = os.path.join(self.root, 'tools', 'scripts', 'submodule-updated.sh') - if os.path.exists(script): - try: - check_call([script, path], cwd=self.root) - except subprocess.CalledProcessError: - # Target doesn't exists - raise OnlSubmoduleError("The repository post-init script %s failed." % script) - + for script in os.getenv("ONL_SUBMODULE_UPDATED_SCRIPTS", "").split(':'): + if os.path.exists(script): + try: + print "Calling %s..." % script + check_call([script, path], cwd=self.root) + except subprocess.CalledProcessError: + raise OnlSubmoduleError("The repository post-init script %s failed." % script) def require(self, path, depth=None, recursive=False): self.get_status()