[build]: SONiC buildimage ARM arch support (#2980)
ARM Architecture support in SONIC make configure platform=[ASIC_VENDOR_ARCH] PLATFORM_ARCH=[ARM_ARCH] SONIC_ARCH: default amd64 armhf - arm32bit arm64 - arm64bit Signed-off-by: Antony Rheneus <arheneus@marvell.com>
This commit is contained in:
Родитель
2c6cd620fb
Коммит
50fe458592
|
@ -57,6 +57,11 @@ $(shell rm -f .screen)
|
|||
|
||||
MAKEFLAGS += -B
|
||||
|
||||
CONFIGURED_ARCH := $(shell [ -f .arch ] && cat .arch || echo $(PLATFORM_ARCH))
|
||||
ifeq ($(PLATFORM_ARCH),)
|
||||
override PLATFORM_ARCH = $(CONFIGURED_ARCH)
|
||||
endif
|
||||
|
||||
ifeq ($(BLDENV), stretch)
|
||||
SLAVE_BASE_TAG = $(shell sha1sum sonic-slave-stretch/Dockerfile | awk '{print substr($$1,0,11);}')
|
||||
SLAVE_TAG = $(shell cat sonic-slave-stretch/Dockerfile.user sonic-slave-stretch/Dockerfile | sha1sum | awk '{print substr($$1,0,11);}')
|
||||
|
@ -99,6 +104,33 @@ include rules/config
|
|||
ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD), y)
|
||||
DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock
|
||||
endif
|
||||
ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64))
|
||||
# Multiarch docker cannot start dockerd service due to iptables cannot run over different arch kernel
|
||||
SONIC_SERVICE_DOCKERD_FOR_MULTIARCH=y
|
||||
SONIC_NATIVE_DOCKERD_FOR_MUTLIARCH := dockerd --experimental=true --storage-driver=vfs \
|
||||
--data-root=/var/lib/march/docker/ --exec-root=/var/run/march/docker/ \
|
||||
-H unix:///var/run/march/docker.sock -p /var/run/march/docker.pid
|
||||
DOCKER_RUN += -v /var/run/march/docker.sock:/var/run/docker.sock
|
||||
DOCKER_RUN += -v /var/run/march/docker.pid:/var/run/docker.pid
|
||||
DOCKER_RUN += -v /var/run/march/docker:/var/run/docker
|
||||
DOCKER_RUN += -v /var/lib/march/docker:/var/lib/docker
|
||||
SONIC_USERFACL_DOCKERD_FOR_MUTLIARCH := setfacl -m user:$(USER):rw /var/run/march/docker.sock
|
||||
|
||||
#Override Native config to prevent docker service
|
||||
SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD=y
|
||||
|
||||
DOCKER_MULTIARCH_CHECK := docker inspect --type image multiarch/qemu-user-static:register &> /dev/null || (echo "multiarch docker not found ..."; docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes)
|
||||
|
||||
DOCKER_SERVICE_MULTIARCH_CHECK := docker -H unix:///var/run/march/docker.sock info &> /dev/null || (echo "Docker march service not running..."; sudo rm -fr /var/run/march/docker*; (sudo $(SONIC_NATIVE_DOCKERD_FOR_MUTLIARCH) &) &>/dev/null ; sleep 1; sudo $(SONIC_USERFACL_DOCKERD_FOR_MUTLIARCH);)
|
||||
|
||||
# Docker service to load the compiled dockers-*.gz
|
||||
SONIC_NATIVE_DOCKERD_FOR_DOCKERFS := rm -fr $(PWD)/dockerfs/; mkdir -p $(PWD)/dockerfs/; sudo dockerd --storage-driver=overlay2 --iptables=false \
|
||||
--data-root $(PWD)/dockerfs/var/lib/docker/ --exec-root=$(PWD)/dockerfs/var/run/docker/ \
|
||||
-H unix://$(PWD)/dockerfs/var/run/docker.sock -p $(PWD)/dockerfs/var/run/docker.pid &
|
||||
SONIC_USERFACL_DOCKERD_FOR_DOCKERFS := setfacl -m user:$(USER):rw $(PWD)/dockerfs/var/run/docker.sock
|
||||
DOCKER_SERVICE_DOCKERFS_CHECK := (sudo docker -H unix://$(PWD)/dockerfs/var/run/docker.sock info &> /dev/null && sudo kill -9 `sudo cat $(PWD)/dockerfs/var/run/docker.pid` && false) || (echo "Starting docker build service..."; (sudo $(SONIC_NATIVE_DOCKERD_FOR_DOCKERFS) ) &>/dev/null ; sleep 1; sudo $(SONIC_USERFACL_DOCKERD_FOR_DOCKERFS);)
|
||||
|
||||
endif
|
||||
|
||||
DOCKER_BASE_BUILD = docker build --no-cache \
|
||||
-t $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) \
|
||||
|
@ -120,6 +152,7 @@ SONIC_BUILD_INSTRUCTION := make \
|
|||
-f slave.mk \
|
||||
BLDENV=$(BLDENV) \
|
||||
PLATFORM=$(PLATFORM) \
|
||||
PLATFORM_ARCH=$(PLATFORM_ARCH) \
|
||||
BUILD_NUMBER=$(BUILD_NUMBER) \
|
||||
BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) \
|
||||
ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \
|
||||
|
@ -144,7 +177,14 @@ SONIC_BUILD_INSTRUCTION := make \
|
|||
.DEFAULT_GOAL := all
|
||||
|
||||
%::
|
||||
ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64))
|
||||
@$(DOCKER_MULTIARCH_CHECK)
|
||||
@$(DOCKER_SERVICE_MULTIARCH_CHECK)
|
||||
@$(DOCKER_SERVICE_DOCKERFS_CHECK)
|
||||
endif
|
||||
@$(OVERLAY_MODULE_CHECK)
|
||||
|
||||
@{ which j2 &> /dev/null && CONFIGURED_ARCH=$(CONFIGURED_ARCH) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile ; } || true
|
||||
@docker inspect --type image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) &> /dev/null || \
|
||||
{ echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Building... ; \
|
||||
$(DOCKER_BASE_BUILD) ; }
|
||||
|
|
33
README.md
33
README.md
|
@ -42,7 +42,14 @@ Following is the instruction on how to build an [(ONIE)](https://github.com/open
|
|||
# Hardware
|
||||
Any server can be a build image server. We are using a server with 1T hard disk. The OS is Ubuntu 16.04.
|
||||
|
||||
# Prerequisites
|
||||
## Prerequisites
|
||||
|
||||
Install pip and jinja in host build machine, execute below commands if j2/j2cli is not available:
|
||||
|
||||
sudo apt-get install -y python-pip
|
||||
sudo python2 -m pip install -U pip==9.0.3
|
||||
sudo pip install --force-reinstall --upgrade jinja2>=2.10
|
||||
sudo pip install j2cli
|
||||
|
||||
## SAI Version
|
||||
Please refer to [SONiC roadmap](https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning) on the SAI version for each SONiC release.
|
||||
|
@ -74,6 +81,30 @@ To build SONiC installer image and docker images, run the following commands:
|
|||
# Build SONiC image
|
||||
make all
|
||||
|
||||
## Usage for ARM Architecture
|
||||
To build Arm32 bit for (ARMHF) plaform
|
||||
|
||||
# Execute make configure once to configure ASIC and ARCH
|
||||
|
||||
make configure PLATFORM=[ASIC_VENDOR] PLATFORM_ARCH=armhf
|
||||
|
||||
**example**:
|
||||
|
||||
make configure PLATFORM=marvell-armhf PLATFORM_ARCH=armhf
|
||||
|
||||
|
||||
|
||||
To build Arm64 bit for plaform
|
||||
|
||||
# Execute make configure once to configure ASIC and ARCH
|
||||
|
||||
make configure PLATFORM=[ASIC_VENDOR] PLATFORM_ARCH=arm64
|
||||
|
||||
**example**:
|
||||
|
||||
make configure PLATFORM=marvell-arm64 PLATFORM_ARCH=arm64
|
||||
|
||||
|
||||
**NOTE**:
|
||||
|
||||
- Recommend reserving 50G free space to build one platform.
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
## Enable debug output for script
|
||||
set -x -e
|
||||
|
||||
CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)
|
||||
|
||||
## docker engine version (with platform)
|
||||
DOCKER_VERSION=5:18.09.8~3-0~debian-stretch
|
||||
LINUX_KERNEL_VERSION=4.9.0-9-2
|
||||
|
@ -70,7 +72,14 @@ popd
|
|||
|
||||
## Build a basic Debian system by debootstrap
|
||||
echo '[INFO] Debootstrap...'
|
||||
sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch amd64 stretch $FILESYSTEM_ROOT http://debian-archive.trafficmanager.net/debian
|
||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
||||
# qemu arm bin executable for cross-building
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/usr/bin
|
||||
sudo cp /usr/bin/qemu*static $FILESYSTEM_ROOT/usr/bin || true
|
||||
sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch $CONFIGURED_ARCH stretch $FILESYSTEM_ROOT http://deb.debian.org/debian
|
||||
else
|
||||
sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch $CONFIGURED_ARCH stretch $FILESYSTEM_ROOT http://debian-archive.trafficmanager.net/debian
|
||||
fi
|
||||
|
||||
## Config hostname and hosts, otherwise 'sudo ...' will complain 'sudo: unable to resolve host ...'
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c "echo '$HOSTNAME' > /etc/hostname"
|
||||
|
@ -92,7 +101,7 @@ trap_push 'sudo umount $FILESYSTEM_ROOT/proc || true'
|
|||
sudo LANG=C chroot $FILESYSTEM_ROOT mount proc /proc -t proc
|
||||
|
||||
## Pointing apt to public apt mirrors and getting latest packages, needed for latest security updates
|
||||
sudo cp files/apt/sources.list $FILESYSTEM_ROOT/etc/apt/
|
||||
sudo cp files/apt/sources.list.$CONFIGURED_ARCH $FILESYSTEM_ROOT/etc/apt/sources.list
|
||||
sudo cp files/apt/apt.conf.d/{81norecommends,apt-{clean,gzip-indexes,no-languages}} $FILESYSTEM_ROOT/etc/apt/apt.conf.d/
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT bash -c 'apt-mark auto `apt-mark showmanual`'
|
||||
|
||||
|
@ -104,7 +113,11 @@ sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install makedev psmisc systemd-sy
|
|||
|
||||
## Create device files
|
||||
echo '[INFO] MAKEDEV'
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'cd /dev && MAKEDEV generic'
|
||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'cd /dev && MAKEDEV generic-arm'
|
||||
else
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'cd /dev && MAKEDEV generic'
|
||||
fi
|
||||
## Install initramfs-tools and linux kernel
|
||||
## Note: initramfs-tools recommends depending on busybox, and we really want busybox for
|
||||
## 1. commands such as touch
|
||||
|
@ -114,14 +127,19 @@ sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'cd /dev && MAKEDEV generic'
|
|||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox
|
||||
echo '[INFO] Install SONiC linux kernel image'
|
||||
## Note: duplicate apt-get command to ensure every line return zero
|
||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install cpio klibc-utils kmod libklibc udev linux-base
|
||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/linux-image-*${CONFIGURED_ARCH}*.deb || \
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||
fi
|
||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/initramfs-tools-core_*.deb || \
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/initramfs-tools_*.deb || \
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/linux-image-${LINUX_KERNEL_VERSION}-amd64_*.deb || \
|
||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/linux-image-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}_*.deb || \
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install acl
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install dmidecode
|
||||
[[ $CONFIGURED_ARCH == amd64 ]] && sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install dmidecode
|
||||
|
||||
## Update initramfs for booting with squashfs+overlay
|
||||
cat files/initramfs-tools/modules | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-tools/modules > /dev/null
|
||||
|
@ -159,8 +177,10 @@ sudo cp files/initramfs-tools/union-fsck $FILESYSTEM_ROOT/etc/initramfs-tools/ho
|
|||
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/hooks/union-fsck
|
||||
pushd $FILESYSTEM_ROOT/usr/share/initramfs-tools/scripts/init-bottom && sudo patch -p1 < $OLDPWD/files/initramfs-tools/udev.patch; popd
|
||||
|
||||
## Install latest intel ixgbe driver
|
||||
sudo cp $files_path/ixgbe.ko $FILESYSTEM_ROOT/lib/modules/${LINUX_KERNEL_VERSION}-amd64/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
|
||||
if [[ $CONFIGURED_ARCH == amd64 ]]; then
|
||||
## Install latest intel ixgbe driver
|
||||
sudo cp $files_path/ixgbe.ko $FILESYSTEM_ROOT/lib/modules/${LINUX_KERNEL_VERSION}-amd64/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
|
||||
fi
|
||||
|
||||
## Install docker
|
||||
echo '[INFO] Install docker'
|
||||
|
@ -176,7 +196,7 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/docker
|
|||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add /tmp/docker.gpg
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT rm /tmp/docker.gpg
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT add-apt-repository \
|
||||
"deb [arch=amd64] https://download.docker.com/linux/debian stretch stable"
|
||||
"deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian stretch stable"
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y remove software-properties-common gnupg2
|
||||
|
@ -263,10 +283,12 @@ sudo LANG=C chroot $FILESYSTEM_ROOT bash -c "find /usr/share/i18n/locales/ ! -na
|
|||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y -t stretch-backports install \
|
||||
picocom
|
||||
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y download \
|
||||
grub-pc-bin
|
||||
if [[ $CONFIGURED_ARCH == amd64 ]]; then
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y download \
|
||||
grub-pc-bin
|
||||
|
||||
sudo mv $FILESYSTEM_ROOT/grub-pc-bin*.deb $FILESYSTEM_ROOT/$PLATFORM_DIR/x86_64-grub
|
||||
sudo mv $FILESYSTEM_ROOT/grub-pc-bin*.deb $FILESYSTEM_ROOT/$PLATFORM_DIR/x86_64-grub
|
||||
fi
|
||||
|
||||
## Disable kexec supported reboot which was installed by default
|
||||
sudo sed -i 's/LOAD_KEXEC=true/LOAD_KEXEC=false/' $FILESYSTEM_ROOT/etc/default/kexec
|
||||
|
@ -487,6 +509,12 @@ sudo LANG=C chroot $FILESYSTEM_ROOT fuser -km /proc || true
|
|||
sleep 15
|
||||
sudo umount $FILESYSTEM_ROOT/proc || true
|
||||
|
||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
||||
# Remove qemu arm bin executable used for cross-building
|
||||
sudo rm -f $FILESYSTEM_ROOT/usr/bin/qemu*static || true
|
||||
DOCKERFS_PATH=../dockerfs/
|
||||
fi
|
||||
|
||||
## Prepare empty directory to trigger mount move in initramfs-tools/mount_loop_root, implemented by patching
|
||||
sudo mkdir $FILESYSTEM_ROOT/host
|
||||
|
||||
|
@ -499,7 +527,7 @@ sudo mkdir -p $FILESYSTEM_ROOT/var/lib/docker
|
|||
sudo mksquashfs $FILESYSTEM_ROOT $FILESYSTEM_SQUASHFS -e boot -e var/lib/docker -e $PLATFORM_DIR
|
||||
|
||||
## Compress docker files
|
||||
pushd $FILESYSTEM_ROOT && sudo tar czf $OLDPWD/$FILESYSTEM_DOCKERFS -C var/lib/docker .; popd
|
||||
pushd $FILESYSTEM_ROOT && sudo tar czf $OLDPWD/$FILESYSTEM_DOCKERFS -C ${DOCKERFS_PATH}var/lib/docker .; popd
|
||||
|
||||
## Compress together with /boot, /var/lib/docker and $PLATFORM_DIR as an installer payload zip file
|
||||
pushd $FILESYSTEM_ROOT && sudo zip $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ $PLATFORM_DIR/; popd
|
||||
|
|
|
@ -2,7 +2,15 @@
|
|||
## This script is to generate an ONIE installer image based on a file system overload
|
||||
|
||||
## Read ONIE image related config file
|
||||
. ./onie-image.conf
|
||||
|
||||
CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)
|
||||
|
||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
||||
. ./onie-image-${CONFIGURED_ARCH}.conf
|
||||
else
|
||||
. ./onie-image.conf
|
||||
fi
|
||||
|
||||
[ -n "$ONIE_IMAGE_PART_SIZE" ] || {
|
||||
echo "Error: Invalid ONIE_IMAGE_PART_SIZE in onie image config file"
|
||||
exit 1
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
{% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %}
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
FROM multiarch/debian-debootstrap:armhf-stretch
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
FROM multiarch/debian-debootstrap:arm64-stretch
|
||||
{% else %}
|
||||
FROM debian:stretch
|
||||
{% endif %}
|
||||
|
||||
# Clean documentation in FROM image
|
||||
RUN find /usr/share/doc -depth \( -type f -o -type l \) ! -name copyright | xargs rm || true
|
||||
|
@ -20,7 +26,13 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|||
|
||||
# Configure data sources for apt/dpkg
|
||||
COPY ["dpkg_01_drop", "/etc/dpkg/dpkg.cfg.d/01_drop"]
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
COPY ["sources.list.armhf", "/etc/apt/sources.list"]
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
COPY ["sources.list.arm64", "/etc/apt/sources.list"]
|
||||
{% else %}
|
||||
COPY ["sources.list", "/etc/apt/sources.list"]
|
||||
{% endif %}
|
||||
COPY ["no_install_recommend_suggest", "/etc/apt/apt.conf.d"]
|
||||
|
||||
# Update apt cache and
|
||||
|
@ -37,6 +49,13 @@ RUN apt-get update && \
|
|||
python-pkg-resources \
|
||||
python-meld3
|
||||
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
# ip and ifconfig utility missing in docker for armhf
|
||||
RUN apt-get -y install \
|
||||
iproute2 \
|
||||
net-tools
|
||||
{% endif %}
|
||||
|
||||
RUN mkdir -p /etc/supervisor /var/log/supervisor
|
||||
|
||||
RUN apt-get -y purge \
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
## Debian mirror on Microsoft Azure
|
||||
## Ref: http://debian-archive.trafficmanager.net/
|
||||
|
||||
deb http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb-src http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb-src http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb http://debian-archive.trafficmanager.net/debian/ stretch-backports main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch-backports main contrib non-free
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
## Debian mirror for ARM repo
|
||||
|
||||
# ARM repo
|
||||
deb [arch=arm64] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb-src [arch=arm64] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb [arch=arm64] http://security.debian.org stretch/updates main contrib non-free
|
||||
deb-src [arch=arm64] http://security.debian.org stretch/updates main contrib non-free
|
|
@ -0,0 +1,7 @@
|
|||
## Debian mirror for ARM repo
|
||||
|
||||
# ARM repo
|
||||
deb [arch=armhf] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb-src [arch=armhf] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb [arch=armhf] http://security.debian.org stretch/updates main contrib non-free
|
||||
deb-src [arch=armhf] http://security.debian.org stretch/updates main contrib non-free
|
|
@ -1,7 +1,13 @@
|
|||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
FROM multiarch/debian-debootstrap:armhf-jessie
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
FROM multiarch/debian-debootstrap:arm64-jessie
|
||||
{% else %}
|
||||
FROM debian:jessie
|
||||
{% endif %}
|
||||
|
||||
## Remove retired jessie-updates repo
|
||||
RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
|
||||
RUN sed -i '/http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
|
||||
|
||||
# Clean documentation in FROM image
|
||||
RUN find /usr/share/doc -depth \( -type f -o -type l \) ! -name copyright | xargs rm || true
|
||||
|
@ -22,7 +28,13 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|||
|
||||
# Configure data sources for apt/dpkg
|
||||
COPY ["dpkg_01_drop", "/etc/dpkg/dpkg.cfg.d/01_drop"]
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
COPY ["sources.list.armhf", "/etc/apt/sources.list"]
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
COPY ["sources.list.arm64", "/etc/apt/sources.list"]
|
||||
{% else %}
|
||||
COPY ["sources.list", "/etc/apt/sources.list"]
|
||||
{% endif %}
|
||||
COPY ["no_install_recommend_suggest", "/etc/apt/apt.conf.d"]
|
||||
RUN apt-get update
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## Debian mirror on Microsoft Azure
|
||||
## Ref: http://debian-archive.trafficmanager.net/
|
||||
|
||||
deb http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free
|
||||
deb-src http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free
|
||||
deb http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free
|
||||
deb-src http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free
|
||||
deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free
|
||||
deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
## Debian mirror for ARM repo
|
||||
|
||||
# ARM64 repo
|
||||
deb [arch=arm64] http://archive.debian.org/debian jessie main contrib non-free
|
||||
deb-src [arch=arm64] http://archive.debian.org/debian jessie main contrib non-free
|
||||
deb-src [arch=arm64] http://archive.debian.org/debian jessie-backports main contrib non-free
|
||||
deb [arch=arm64] http://archive.debian.org/debian jessie-backports main contrib non-free
|
|
@ -0,0 +1,7 @@
|
|||
## Debian mirror for ARM repo
|
||||
|
||||
# ARMhf repo
|
||||
deb [arch=armhf] http://deb.debian.org/debian jessie main contrib non-free
|
||||
deb-src [arch=armhf] http://deb.debian.org/debian jessie main contrib non-free
|
||||
deb [arch=armhf] http://security.debian.org jessie/updates main contrib non-free
|
||||
deb-src [arch=armhf] http://security.debian.org jessie/updates main contrib non-free
|
|
@ -29,13 +29,26 @@ RUN apt-get update && \
|
|||
libmnl0 \
|
||||
bridge-utils
|
||||
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
## Fix for gcc/python not found in arm docker
|
||||
RUN apt-get install -y gcc-6
|
||||
RUN ln -s -f /usr/bin/gcc-6 /usr/bin/arm-linux-gnueabihf-gcc
|
||||
RUN apt-get install -f -y python2.7 python2.7-dev
|
||||
{% endif %}
|
||||
|
||||
RUN pip install \
|
||||
scapy==2.4.2 \
|
||||
setuptools \
|
||||
pyroute2==0.5.3 \
|
||||
pyroute2==0.5.3
|
||||
RUN pip install \
|
||||
netifaces==0.10.7 \
|
||||
monotonic==1.5
|
||||
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
# Remove installed gcc
|
||||
RUN apt-get remove -y gcc-6
|
||||
{% endif %}
|
||||
|
||||
{% if docker_orchagent_debs.strip() -%}
|
||||
# Copy locally-built Debian package dependencies
|
||||
{{ copy_files("debs/", docker_orchagent_debs.split(' '), "/debs/") }}
|
||||
|
|
|
@ -29,6 +29,9 @@ elif [ "$platform" == "barefoot" ]; then
|
|||
ORCHAGENT_ARGS+="-m $MAC_ADDRESS"
|
||||
elif [ "$platform" == "vs" ]; then
|
||||
ORCHAGENT_ARGS+="-m $MAC_ADDRESS"
|
||||
else
|
||||
MAC_ADDRESS=`sonic-cfggen -d -v 'DEVICE_METADATA.localhost.mac'`
|
||||
ORCHAGENT_ARGS+="-m $MAC_ADDRESS"
|
||||
fi
|
||||
|
||||
exec /usr/bin/orchagent ${ORCHAGENT_ARGS}
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
FROM multiarch/debian-debootstrap:armhf-stretch
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
FROM multiarch/debian-debootstrap:arm64-stretch
|
||||
{% else %}
|
||||
FROM debian:stretch
|
||||
{% endif %}
|
||||
|
||||
MAINTAINER Pavel Shirshov
|
||||
|
||||
|
|
|
@ -32,6 +32,17 @@ RUN apt-get update && \
|
|||
{{ install_debian_packages(docker_snmp_sv2_debs.split(' ')) }}
|
||||
{%- endif %}
|
||||
|
||||
{%- if CONFIGURED_ARCH == "armhf" %}
|
||||
# Fix for hiredis compilation issues for ARM
|
||||
# python will throw for missing locale
|
||||
RUN apt-get install -y locales
|
||||
RUN locale-gen "en_US.UTF-8"
|
||||
RUN dpkg-reconfigure --frontend noninteractive locales
|
||||
ENV LC_CTYPE=en_US.UTF-8
|
||||
RUN sed -i '/^#.* en_US.* /s/^#//' /etc/locale.gen
|
||||
RUN locale-gen
|
||||
{% endif %}
|
||||
|
||||
# Install up-to-date version of pip
|
||||
RUN curl https://bootstrap.pypa.io/get-pip.py | python3.6
|
||||
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
## Debian mirror on Microsoft Azure
|
||||
## Ref: http://debian-archive.trafficmanager.net/
|
||||
|
||||
deb http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb-src http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb-src http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb http://debian-archive.trafficmanager.net/debian/ stretch-backports main contrib non-free
|
|
@ -0,0 +1,8 @@
|
|||
## Debian mirror on Microsoft Azure
|
||||
## Ref: http://debian-archive.trafficmanager.net/
|
||||
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch-backports main contrib non-free
|
|
@ -0,0 +1,8 @@
|
|||
## Debian mirror for ARM
|
||||
## Not the repo mirror site can change in future, and needs to be updated to be in sync
|
||||
|
||||
deb [arch=arm64] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb-src [arch=arm64] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb [arch=arm64] http://deb.debian.org/debian stretch-updates main contrib non-free
|
||||
deb-src [arch=arm64] http://deb.debian.org/debian stretch-updates main contrib non-free
|
||||
deb [arch=arm64] http://ftp.debian.org/debian stretch-backports main
|
|
@ -0,0 +1,8 @@
|
|||
## Debian mirror for ARM
|
||||
## Not the repo mirror site can change in future, and needs to be updated to be in sync
|
||||
|
||||
deb [arch=armhf] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb-src [arch=armhf] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb [arch=armhf] http://deb.debian.org/debian stretch-updates main contrib non-free
|
||||
deb-src [arch=armhf] http://deb.debian.org/debian stretch-updates main contrib non-free
|
||||
deb [arch=armhf] http://ftp.debian.org/debian stretch-backports main
|
|
@ -24,6 +24,8 @@ PLATFORM_DIR=$2
|
|||
## Enable debug output for script
|
||||
set -x -e
|
||||
|
||||
CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)
|
||||
|
||||
. functions.sh
|
||||
BUILD_TEMPLATES=files/build_templates
|
||||
IMAGE_CONFIGS=files/image_config
|
||||
|
@ -45,11 +47,17 @@ sudo LANG=C chroot $FILESYSTEM_ROOT mount sysfs /sys -t sysfs
|
|||
|
||||
sudo bash -c "echo \"DOCKER_OPTS=\"--storage-driver=overlay2\"\" >> $FILESYSTEM_ROOT/etc/default/docker"
|
||||
sudo cp files/docker/docker $FILESYSTEM_ROOT/etc/init.d/
|
||||
sudo chroot $FILESYSTEM_ROOT service docker start
|
||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
||||
SONIC_NATIVE_DOCKERD_FOR_DOCKERFS=" -H unix:///dockerfs/var/run/docker.sock "
|
||||
SONIC_NATIVE_DOCKERD_FOR_DOCKERFS_PID="cat `pwd`/dockerfs/var/run/docker.pid"
|
||||
else
|
||||
sudo chroot $FILESYSTEM_ROOT service docker start
|
||||
fi
|
||||
|
||||
# Apply apt configuration files
|
||||
sudo cp $IMAGE_CONFIGS/apt/sources.list $FILESYSTEM_ROOT/etc/apt/
|
||||
sudo cp -R $IMAGE_CONFIGS/apt/sources.list.d/ $FILESYSTEM_ROOT/etc/apt/
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/etc/apt/sources.list.d/
|
||||
sudo cp -R $IMAGE_CONFIGS/apt/sources.list.d/${CONFIGURED_ARCH}/* $FILESYSTEM_ROOT/etc/apt/sources.list.d/
|
||||
cat $IMAGE_CONFIGS/apt/sonic-dev.gpg.key | sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add -
|
||||
|
||||
# Update apt's snapshot of its repos
|
||||
|
@ -290,20 +298,32 @@ sudo cp $IMAGE_CONFIGS/platform/rc.local $FILESYSTEM_ROOT/etc/
|
|||
## copy blacklist file
|
||||
sudo cp $IMAGE_CONFIGS/platform/linux_kernel_bde.conf $FILESYSTEM_ROOT/etc/modprobe.d/
|
||||
|
||||
## Bind docker path
|
||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/dockerfs
|
||||
sudo mount --bind dockerfs $FILESYSTEM_ROOT/dockerfs
|
||||
fi
|
||||
|
||||
{% if installer_images.strip() -%}
|
||||
sudo chroot $FILESYSTEM_ROOT docker info
|
||||
sudo chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS info
|
||||
{% for image in installer_images.strip().split(' ') -%}
|
||||
{% set imagefilename = image.split('/')|last -%}
|
||||
{% set imagename = imagefilename.split('.')|first -%}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker load < {{image}}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker tag {{imagename}}:latest {{imagename}}:$(sonic_get_version)
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS load < {{image}}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagename}}:$(sonic_get_version)
|
||||
{% if imagename.endswith('-dbg') %}
|
||||
{% set imagebasename = imagename.replace('-dbg', '') -%}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker tag {{imagename}}:latest {{imagebasename}}:$(sonic_get_version)
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker tag {{imagename}}:latest {{imagebasename}}:latest
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagebasename}}:$(sonic_get_version)
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagebasename}}:latest
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
sudo chroot $FILESYSTEM_ROOT service docker stop
|
||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
||||
sudo umount $FILESYSTEM_ROOT/dockerfs
|
||||
sudo rm -fr $FILESYSTEM_ROOT/dockerfs
|
||||
sudo kill -9 `sudo $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS_PID` || true
|
||||
else
|
||||
sudo chroot $FILESYSTEM_ROOT service docker stop
|
||||
fi
|
||||
sudo rm $FILESYSTEM_ROOT/etc/init.d/docker
|
||||
{% for script in installer_start_scripts.split(' ') -%}
|
||||
sudo cp {{script}} $FILESYSTEM_ROOT/usr/bin/
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch-backports main contrib non-free
|
|
@ -0,0 +1,9 @@
|
|||
deb [arch=arm64] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb-src [arch=arm64] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb [arch=arm64] http://deb.debian.org/debian stretch-updates main contrib non-free
|
||||
deb-src [arch=arm64] http://deb.debian.org/debian stretch-updates main contrib non-free
|
||||
deb [arch=arm64] http://security.debian.org stretch/updates main contrib non-free
|
||||
deb-src [arch=arm64] http://security.debian.org stretch/updates main contrib non-free
|
||||
deb [arch=arm64] https://download.docker.com/linux/debian stretch stable
|
||||
deb [arch=arm64] http://ftp.debian.org/debian stretch-backports main
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
deb [arch=armhf] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb-src [arch=armhf] http://deb.debian.org/debian stretch main contrib non-free
|
||||
deb [arch=armhf] http://deb.debian.org/debian stretch-updates main contrib non-free
|
||||
deb-src [arch=armhf] http://deb.debian.org/debian stretch-updates main contrib non-free
|
||||
deb [arch=armhf] http://security.debian.org stretch/updates main contrib non-free
|
||||
deb-src [arch=armhf] http://security.debian.org stretch/updates main contrib non-free
|
||||
deb [arch=armhf] https://download.docker.com/linux/debian stretch stable
|
||||
deb [arch=armhf] http://ftp.debian.org/debian stretch-backports main
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
deb http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free
|
||||
deb http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free
|
||||
deb http://debian-archive.trafficmanager.net/debian/ stretch-backports main contrib non-free
|
|
@ -0,0 +1,66 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2014,2015 Curt Brune <curt@cumulusnetworks.com>
|
||||
# Copyright (C) 2015 david_yang <david_yang@accton.com>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
set -e
|
||||
|
||||
if [ -d "/etc/sonic" ]; then
|
||||
echo "Installing SONiC in SONiC"
|
||||
install_env="sonic"
|
||||
elif grep -Fxqs "DISTRIB_ID=onie" /etc/lsb-release > /dev/null
|
||||
then
|
||||
echo "Installing SONiC in ONIE"
|
||||
install_env="onie"
|
||||
else
|
||||
echo "Installing SONiC in BUILD"
|
||||
install_env="build"
|
||||
fi
|
||||
|
||||
cd $(dirname $0)
|
||||
if [ -r ./machine.conf ]; then
|
||||
. ./machine.conf
|
||||
fi
|
||||
|
||||
if [ -r ./onie-image-arm64.conf ]; then
|
||||
. ./onie-image-arm64.conf
|
||||
fi
|
||||
|
||||
|
||||
echo "Installer: platform: $platform"
|
||||
|
||||
install_uimage() {
|
||||
echo "Copying uImage to NOR flash:"
|
||||
flashcp -v demo-${platform}.itb $mtd_dev
|
||||
}
|
||||
|
||||
hw_load() {
|
||||
echo "cp.b $img_start \$loadaddr $img_sz"
|
||||
}
|
||||
|
||||
. ./platform.conf
|
||||
|
||||
install_uimage
|
||||
|
||||
hw_load_str="$(hw_load)"
|
||||
|
||||
echo "Updating U-Boot environment variables"
|
||||
(cat <<EOF
|
||||
hw_load $hw_load_str
|
||||
copy_img echo "Loading Demo $platform image..." && run hw_load
|
||||
nos_bootcmd run copy_img && setenv bootargs quiet console=\$consoledev,\$baudrate && bootm \$loadaddr
|
||||
EOF
|
||||
) > /tmp/env.txt
|
||||
|
||||
fw_setenv -f -s /tmp/env.txt
|
||||
|
||||
cd /
|
||||
|
||||
# Set NOS mode if available. For manufacturing diag installers, you
|
||||
# probably want to skip this step so that the system remains in ONIE
|
||||
# "installer" mode for installing a true NOS later.
|
||||
if [ -x /bin/onie-nos-mode ] ; then
|
||||
/bin/onie-nos-mode -s
|
||||
fi
|
|
@ -0,0 +1,136 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2014,2015 Curt Brune <curt@cumulusnetworks.com>
|
||||
# Copyright (C) 2015 david_yang <david_yang@accton.com>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
set -e
|
||||
|
||||
if [ -d "/etc/sonic" ]; then
|
||||
echo "Installing SONiC in SONiC"
|
||||
install_env="sonic"
|
||||
elif grep -Fxqs "DISTRIB_ID=onie" /etc/lsb-release > /dev/null
|
||||
then
|
||||
echo "Installing SONiC in ONIE"
|
||||
install_env="onie"
|
||||
else
|
||||
echo "Installing SONiC in BUILD"
|
||||
install_env="build"
|
||||
fi
|
||||
|
||||
cd $(dirname $0)
|
||||
if [ -r ./machine.conf ]; then
|
||||
. ./machine.conf
|
||||
fi
|
||||
|
||||
if [ -r ./onie-image-armhf.conf ]; then
|
||||
. ./onie-image-armhf.conf
|
||||
fi
|
||||
|
||||
|
||||
echo "Installer: platform: $platform"
|
||||
|
||||
install_uimage() {
|
||||
echo "Copying uImage to NOR flash:"
|
||||
flashcp -v demo-${platform}.itb $mtd_dev
|
||||
}
|
||||
|
||||
hw_load() {
|
||||
echo "cp.b $img_start \$loadaddr $img_sz"
|
||||
}
|
||||
|
||||
. ./platform.conf
|
||||
|
||||
#install_uimage
|
||||
|
||||
#hw_load_str="$(hw_load)"
|
||||
|
||||
echo "Copying uImage to NAND flash:"
|
||||
# global mount defines
|
||||
demo_dev=ubi0
|
||||
mtd_dev=/dev/$(cat /proc/mtd | grep "SONIC" | grep -o "mtd[0-9]")
|
||||
mtd_num=$(echo $mtd_dev | grep -o "[0-9]")
|
||||
demo_mount=/tmp
|
||||
onie_dev=$(blkid | grep ONIE-BOOT | head -n 1 | awk '{print $1}' | sed -e 's/:.*$//')
|
||||
|
||||
echo "Format mtd partition '$mtd_dev'"
|
||||
ubiformat $mtd_dev
|
||||
#attaches MTD devices (which describe raw flash) to UBI and creates corresponding UBI devices; ('-m 2' --> mtd2)
|
||||
echo "ubiattach mtd '$mtd_num'"
|
||||
ubiattach /dev/ubi_ctrl -m $mtd_num
|
||||
#creates UBI volumes on UBI devices
|
||||
ubimkvol /dev/$demo_dev -N $demo_dev -s 3700MiB
|
||||
|
||||
demo_mount=$(mktemp -d)
|
||||
mkdir -p $demo_mount
|
||||
echo "Mounting ubifs partition"
|
||||
mount -t ubifs /dev/ubi0_0 $demo_mount
|
||||
echo "Mounting $demo_dev on $demo_mount..."
|
||||
echo "sonic extract image starts ..."
|
||||
# Decompress the file for the file system directly to the partition
|
||||
unzip -o $ONIE_INSTALLER_PAYLOAD -x "$FILESYSTEM_DOCKERFS" -d $demo_mount/
|
||||
cd $demo_mount
|
||||
if [ -f fs.cpio ]
|
||||
then
|
||||
cpio -id < fs.cpio
|
||||
rm fs.cpio
|
||||
elif [ -f fs.squashfs ]
|
||||
then
|
||||
unsquashfs -f -d $demo_mount fs.squashfs
|
||||
rm -f fs.squashfs
|
||||
fi
|
||||
cd -
|
||||
TAR_EXTRA_OPTION="--numeric-owner"
|
||||
mkdir -p $demo_mount/var/lib/$DOCKERFS_DIR
|
||||
unzip -op $ONIE_INSTALLER_PAYLOAD "$FILESYSTEM_DOCKERFS" | tar -xpz $TAR_EXTRA_OPTION -f - -C $demo_mount/var/lib/$DOCKERFS_DIR
|
||||
|
||||
echo "unmounting nand partition"
|
||||
umount $demo_mount
|
||||
|
||||
echo "Updating U-Boot environment variables"
|
||||
#global uboot enviroment settings
|
||||
#FW_ENV='/dev/mtd0 \t\t 0x00500000 \t 0x80000 \t 0x100000 \t 8'
|
||||
FW_ENV='/dev/mtd0 \t\t 0x00500000 \t 0x80000 \t 0x100000 \t 2'
|
||||
|
||||
kernel_addr=0x1100000
|
||||
fdt_addr=0x1000000
|
||||
|
||||
image_name="/boot/zImage"
|
||||
fdt_name="/boot/armada-385-ET6448M_4G_Nand.dtb"
|
||||
|
||||
#BOOTARGS='setenv bootargs root='$demo_dev' rw rootwait ubi.mtd='$mtd_num' rootfstype=ubifs debug panic=1 ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off console=ttyS0,115200 ${othbootargs} ${mtdparts}'
|
||||
BOOTARGS='setenv bootargs root='$demo_dev' rw rootwait ubi.mtd='$mtd_num' rootfstype=ubifs panic=1 console=ttyS0,115200 ${othbootargs} ${mtdparts}'
|
||||
UBI_LOAD='run ubi_sonic_boot_mount_ubi; ubifsload $kernel_addr $image_name;ubifsload $fdt_addr $fdt_name'
|
||||
UBIBOOTCMD='run ubi_sonic_boot_bootargs; run ubi_sonic_boot_load; bootz $kernel_addr - $fdt_addr'
|
||||
|
||||
|
||||
echo -e $FW_ENV > /etc/fw_env.config
|
||||
|
||||
fw_setenv -f image_name $image_name > /dev/null
|
||||
fw_setenv -f fdt_name $fdt_name > /dev/null
|
||||
fw_setenv -f kernel_addr $kernel_addr > /dev/null
|
||||
fw_setenv -f fdt_addr $fdt_addr > /dev/null
|
||||
|
||||
#make sure ubi number (0) and ubi volume name (ubi0) are set correctly in bootargs_root:
|
||||
#For example, the below command creates an 3000MiB volume on UBI device 0:
|
||||
#setenv bootargs_root root=ubi0:ubi0 rw ubi.mtd=2 rootfstype=ubifs
|
||||
|
||||
fw_setenv -f mtdids 'nand0=armada-nand' > /dev/null
|
||||
fw_setenv -f mtdparts 'mtdparts=armada-nand:10m(U-Boot)ro,208m@10m(ONIE),-(SONIC)' > /dev/null
|
||||
fw_setenv -f ubi_sonic_boot_mount_ubi 'ubi part SONIC; ubifsmount ubi0' > /dev/null
|
||||
|
||||
fw_setenv -f ubi_sonic_boot_bootargs $BOOTARGS > /dev/null
|
||||
fw_setenv -f ubi_sonic_boot_load $UBI_LOAD > /dev/null
|
||||
fw_setenv -f ubi_sonic_boot $UBIBOOTCMD > /dev/null
|
||||
fw_setenv -f bootcmd 'usb start; run ubi_sonic_boot' > /dev/null
|
||||
|
||||
|
||||
cd /
|
||||
|
||||
# Set NOS mode if available. For manufacturing diag installers, you
|
||||
# probably want to skip this step so that the system remains in ONIE
|
||||
# "installer" mode for installing a true NOS later.
|
||||
if [ -x /bin/onie-nos-mode ] ; then
|
||||
/bin/onie-nos-mode -s
|
||||
fi
|
|
@ -0,0 +1,46 @@
|
|||
## DESCRIPTION:
|
||||
## config for ONIE image
|
||||
##
|
||||
|
||||
## Partition size in MB
|
||||
## The default size is 32GB
|
||||
: ${ONIE_IMAGE_PART_SIZE:=32768}
|
||||
|
||||
## Target hardware information
|
||||
: ${TARGET_PLATFORM:=arm64}
|
||||
: ${TARGET_MACHINE:=generic}
|
||||
|
||||
ONIEIMAGE_VERSION=r0
|
||||
|
||||
## Filename for squashfs file system
|
||||
FILESYSTEM_SQUASHFS=fs.squashfs
|
||||
|
||||
## Filename for onie installer payload, will be the main part of onie installer
|
||||
ONIE_INSTALLER_PAYLOAD=fs.zip
|
||||
|
||||
## Filename for docker file system
|
||||
FILESYSTEM_DOCKERFS=dockerfs.tar.gz
|
||||
|
||||
## docker directory on the root filesystem
|
||||
DOCKERFS_DIR=docker
|
||||
|
||||
## Output file name for onie installer
|
||||
OUTPUT_ONIE_IMAGE=target/sonic-$TARGET_MACHINE.bin
|
||||
|
||||
## Output file name for raw image
|
||||
OUTPUT_RAW_IMAGE=target/sonic-$TARGET_MACHINE.raw
|
||||
|
||||
## Raw image size in MB
|
||||
RAW_IMAGE_DISK_SIZE=1024
|
||||
|
||||
## Output file name for kvm image
|
||||
OUTPUT_KVM_IMAGE=target/sonic-$TARGET_MACHINE.img
|
||||
|
||||
## Kvm image size in GB
|
||||
KVM_IMAGE_DISK_SIZE=16
|
||||
|
||||
## Output file name for aboot installer
|
||||
OUTPUT_ABOOT_IMAGE=target/sonic-aboot-$TARGET_MACHINE.swi
|
||||
|
||||
## Aboot boot image name
|
||||
ABOOT_BOOT_IMAGE=.sonic-boot.swi
|
|
@ -0,0 +1,46 @@
|
|||
## DESCRIPTION:
|
||||
## config for ONIE image
|
||||
##
|
||||
|
||||
## Partition size in MB
|
||||
## The default size is 32GB
|
||||
: ${ONIE_IMAGE_PART_SIZE:=32768}
|
||||
|
||||
## Target hardware information
|
||||
: ${TARGET_PLATFORM:=armhf}
|
||||
: ${TARGET_MACHINE:=generic}
|
||||
|
||||
ONIEIMAGE_VERSION=r0
|
||||
|
||||
## Filename for squashfs file system
|
||||
FILESYSTEM_SQUASHFS=fs.squashfs
|
||||
|
||||
## Filename for onie installer payload, will be the main part of onie installer
|
||||
ONIE_INSTALLER_PAYLOAD=fs.zip
|
||||
|
||||
## Filename for docker file system
|
||||
FILESYSTEM_DOCKERFS=dockerfs.tar.gz
|
||||
|
||||
## docker directory on the root filesystem
|
||||
DOCKERFS_DIR=docker
|
||||
|
||||
## Output file name for onie installer
|
||||
OUTPUT_ONIE_IMAGE=target/sonic-$TARGET_MACHINE.bin
|
||||
|
||||
## Output file name for raw image
|
||||
OUTPUT_RAW_IMAGE=target/sonic-$TARGET_MACHINE.raw
|
||||
|
||||
## Raw image size in MB
|
||||
RAW_IMAGE_DISK_SIZE=1024
|
||||
|
||||
## Output file name for kvm image
|
||||
OUTPUT_KVM_IMAGE=target/sonic-$TARGET_MACHINE.img
|
||||
|
||||
## Kvm image size in GB
|
||||
KVM_IMAGE_DISK_SIZE=16
|
||||
|
||||
## Output file name for aboot installer
|
||||
OUTPUT_ABOOT_IMAGE=target/sonic-aboot-$TARGET_MACHINE.swi
|
||||
|
||||
## Aboot boot image name
|
||||
ABOOT_BOOT_IMAGE=.sonic-boot.swi
|
|
@ -78,6 +78,7 @@ mkdir $tmp_installdir || clean_up 1
|
|||
|
||||
cp -r $installer_dir/$arch/* $tmp_installdir || clean_up 1
|
||||
cp onie-image.conf $tmp_installdir
|
||||
cp onie-image-*.conf $tmp_installdir
|
||||
|
||||
# Escape special chars in the user provide kernel cmdline string for use in
|
||||
# sed. Special chars are: \ / &
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
# docker image for mrvl syncd with rpc
|
||||
|
||||
DOCKER_SYNCD_MRVL_RPC = docker-syncd-mrvl-rpc.gz
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_PATH = $(PLATFORM_PATH)/docker-syncd-mrvl-rpc
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT)
|
||||
ifeq ($(INSTALL_DEBUG_TOOLS), y)
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_DEPENDS += $(SYNCD_RPC_DBG) \
|
||||
$(LIBSWSSCOMMON_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
endif
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_LOAD_DOCKERS += $(DOCKER_SYNCD_MRVL)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
ifeq ($(ENABLE_SYNCD_RPC),y)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
|
@ -0,0 +1 @@
|
|||
sysctl -w net.core.rmem_max=509430500
|
|
@ -0,0 +1,51 @@
|
|||
FROM docker-syncd-mrvl
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
COPY \
|
||||
{% for deb in docker_syncd_mrvl_rpc_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor -%}
|
||||
debs/
|
||||
|
||||
RUN apt-get purge -y syncd
|
||||
|
||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } ; \
|
||||
{% for deb in docker_syncd_mrvl_rpc_debs.split(' ') -%}
|
||||
dpkg_apt debs/{{ deb }}{{'; '}}
|
||||
{%- endfor %}
|
||||
|
||||
## Pre-install the fundamental packages
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install \
|
||||
net-tools \
|
||||
python-pip \
|
||||
build-essential \
|
||||
libssl-dev \
|
||||
libffi-dev \
|
||||
python-dev \
|
||||
wget \
|
||||
cmake \
|
||||
&& wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
|
||||
&& tar xvfz 1.0.0.tar.gz \
|
||||
&& cd nanomsg-1.0.0 \
|
||||
&& mkdir -p build \
|
||||
&& cmake . \
|
||||
&& make install \
|
||||
&& ldconfig \
|
||||
&& cd .. \
|
||||
&& rm -fr nanomsg-1.0.0 \
|
||||
&& rm -f 1.0.0.tar.gz \
|
||||
&& pip install cffi==1.7.0 \
|
||||
&& pip install --upgrade cffi==1.7.0 \
|
||||
&& pip install nnpy \
|
||||
&& mkdir -p /opt \
|
||||
&& cd /opt \
|
||||
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \
|
||||
&& apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y \
|
||||
&& rm -rf /root/deps
|
||||
|
||||
COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"]
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
|
@ -0,0 +1,10 @@
|
|||
[program:ptf_nn_agent]
|
||||
command=/usr/bin/python /opt/ptf_nn_agent.py --device-socket 1@tcp://0.0.0.0:10900 -i 1-3@Ethernet12 --set-iface-rcv-buffer=109430400
|
||||
process_name=ptf_nn_agent
|
||||
stdout_logfile=/tmp/ptf_nn_agent.out.log
|
||||
stderr_logfile=/tmp/ptf_nn_agent.err.log
|
||||
redirect_stderr=false
|
||||
autostart=true
|
||||
autorestart=true
|
||||
startsecs=1
|
||||
numprocs=1
|
|
@ -0,0 +1,21 @@
|
|||
# docker image for mrvl syncd
|
||||
|
||||
DOCKER_SYNCD_MRVL = docker-syncd-mrvl.gz
|
||||
$(DOCKER_SYNCD_MRVL)_PATH = $(PLATFORM_PATH)/docker-syncd-mrvl
|
||||
$(DOCKER_SYNCD_MRVL)_DEPENDS += $(SYNCD) $(MRVL_FPA) $(REDIS_TOOLS)
|
||||
ifeq ($(INSTALL_DEBUG_TOOLS), y)
|
||||
$(DOCKER_SYNCD_MRVL)_DEPENDS += $(SYNCD_DBG) \
|
||||
$(LIBSWSSCOMMON_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
endif
|
||||
$(DOCKER_SYNCD_MRVL)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL)
|
||||
ifneq ($(ENABLE_SYNCD_RPC),y)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MRVL)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MRVL)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MRVL)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
|
@ -0,0 +1,37 @@
|
|||
FROM docker-config-engine-stretch
|
||||
|
||||
ARG docker_container_name
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update
|
||||
|
||||
COPY \
|
||||
{% for deb in docker_syncd_mrvl_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor -%}
|
||||
debs/
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install \
|
||||
net-tools \
|
||||
iputils-ping
|
||||
|
||||
RUN apt-get -y install libpcap-dev libxml2-dev python-dev swig libsensors4-dev libjemalloc1 nfs-common
|
||||
|
||||
RUN dpkg -i \
|
||||
{% for deb in docker_syncd_mrvl_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor %}
|
||||
|
||||
COPY ["start.sh", "syncd.sh", "/usr/bin/"]
|
||||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
||||
|
||||
## Clean up
|
||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||
RUN rm -rf /debs
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
rm -f /var/run/rsyslogd.pid
|
||||
|
||||
supervisorctl start rsyslogd
|
||||
|
||||
supervisorctl start syncd
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
[supervisord]
|
||||
logfile_maxbytes=1MB
|
||||
logfile_backups=2
|
||||
nodaemon=true
|
||||
|
||||
[program:start.sh]
|
||||
command=/usr/bin/start.sh
|
||||
priority=1
|
||||
autostart=true
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:rsyslogd]
|
||||
command=/usr/sbin/rsyslogd -n
|
||||
priority=2
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:syncd]
|
||||
command=/usr/bin/syncd_start.sh
|
||||
priority=3
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
function clean_up {
|
||||
service syncd stop
|
||||
exit
|
||||
}
|
||||
|
||||
trap clean_up SIGTERM SIGKILL
|
||||
|
||||
service syncd start
|
||||
|
||||
read
|
|
@ -0,0 +1,20 @@
|
|||
# libsaithrift-dev package
|
||||
|
||||
SAI_VER = 0.9.4
|
||||
|
||||
LIBSAITHRIFT_DEV = libsaithrift-dev_$(SAI_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSAITHRIFT_DEV)_SRC_PATH = $(SRC_PATH)/sonic-sairedis/SAI
|
||||
$(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(MRVL_FPA) $(MRVL_SAI)
|
||||
$(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT) $(MRVL_SAI)
|
||||
SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV)
|
||||
|
||||
PYTHON_SAITHRIFT = python-saithrift_$(SAI_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(PYTHON_SAITHRIFT)))
|
||||
|
||||
SAISERVER = saiserver_$(SAI_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(SAISERVER)_RDEPENDS += $(LIBTHRIFT) $(BRCM_SAI)
|
||||
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(SAISERVER)))
|
||||
|
||||
SAISERVER_DBG = saiserver-dbg_$(SAI_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(SAISERVER_DBG)_RDEPENDS += $(SAISERVER)
|
||||
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(SAISERVER_DBG)))
|
|
@ -0,0 +1,8 @@
|
|||
# linux kernel package for marvell arm64
|
||||
|
||||
KVERSION= 4.4.8
|
||||
|
||||
|
||||
LINUX_KERNEL= linux-image-4.4.8_4.4.8-4_arm64.deb
|
||||
$(LINUX_KERNEL)_PATH = /sonic
|
||||
SONIC_COPY_DEBS += $(LINUX_KERNEL)
|
|
@ -0,0 +1,7 @@
|
|||
# sonic marvell one image installer
|
||||
|
||||
SONIC_ONE_IMAGE = sonic-marvell.bin
|
||||
$(SONIC_ONE_IMAGE)_MACHINE = marvell
|
||||
$(SONIC_ONE_IMAGE)_IMAGE_TYPE = onie
|
||||
$(SONIC_ONE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES)
|
||||
SONIC_INSTALLERS += $(SONIC_ONE_IMAGE)
|
|
@ -0,0 +1,17 @@
|
|||
#include $(PLATFORM_PATH)/sdk.mk
|
||||
include $(PLATFORM_PATH)/sai.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-mrvl.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-mrvl-rpc.mk
|
||||
include $(PLATFORM_PATH)/libsaithrift-dev.mk
|
||||
include $(PLATFORM_PATH)/one-image.mk
|
||||
include $(PLATFORM_PATH)/linux-kernel-arm64.mk
|
||||
|
||||
SONIC_ALL += $(SONIC_ONE_IMAGE) \
|
||||
$(DOCKER_FPM) \
|
||||
$(DOCKER_SYNCD_MRVL_RPC)
|
||||
|
||||
# Inject mrvl sai into sairedis
|
||||
$(LIBSAIREDIS)_DEPENDS += $(MRVL_FPA) $(MRVL_SAI) $(LIBSAITHRIFT_DEV_MRVL)
|
||||
|
||||
# Runtime dependency on mrvl sai is set only for syncd
|
||||
$(SYNCD)_RDEPENDS += $(MRVL_SAI)
|
|
@ -0,0 +1,9 @@
|
|||
# Marvell SAI
|
||||
|
||||
export MRVL_SAI_VERSION = 1.4.1
|
||||
export MRVL_SAI_TAG = SONiC.201904
|
||||
export MRVL_SAI = mrvllibsai_$(PLATFORM_ARCH)_$(MRVL_SAI_VERSION).deb
|
||||
|
||||
$(MRVL_SAI)_SRC_PATH = $(PLATFORM_PATH)/sai
|
||||
#$(MRVL_SAI)_DEPENDS += $(MRVL_FPA)
|
||||
SONIC_MAKE_DEBS += $(MRVL_SAI)
|
|
@ -0,0 +1,9 @@
|
|||
.ONESHELL:
|
||||
SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MRVL_SAI_URL = https://github.com/Marvell-switching/SAI-plugin/raw/$(MRVL_SAI_TAG)/sai_deb/$(MRVL_SAI)
|
||||
|
||||
$(addprefix $(DEST)/, $(MRVL_SAI)): $(DEST)/% :
|
||||
# get deb package
|
||||
wget -O $(DEST)/$(MRVL_SAI) $(MRVL_SAI_URL)
|
|
@ -0,0 +1,7 @@
|
|||
# docker image for docker-ptf-mrvl
|
||||
|
||||
DOCKER_PTF_MRVL = docker-ptf-mrvl.gz
|
||||
$(DOCKER_PTF_MRVL)_PATH = $(DOCKERS_PATH)/docker-ptf-saithrift
|
||||
$(DOCKER_PTF_MRVL)_DEPENDS += $(PYTHON_SAITHRIFT)
|
||||
$(DOCKER_PTF_MRVL)_LOAD_DOCKERS += $(DOCKER_PTF)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_PTF_MRVL)
|
|
@ -0,0 +1,15 @@
|
|||
# docker image for mrvl saiserver
|
||||
|
||||
DOCKER_SAISERVER_MRVL = docker-saiserver-mrvl.gz
|
||||
$(DOCKER_SAISERVER_MRVL)_PATH = $(PLATFORM_PATH)/docker-saiserver-mrvl
|
||||
$(DOCKER_SAISERVER_MRVL)_DEPENDS += $(SAISERVER)
|
||||
$(DOCKER_SAISERVER_MRVL)_FILES += $(DSSERVE) $(BCMCMD)
|
||||
$(DOCKER_SAISERVER_MRVL)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_STRETCH)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SAISERVER_MRVL)
|
||||
|
||||
$(DOCKER_SAISERVER_MRVL)_CONTAINER_NAME = saiserver
|
||||
$(DOCKER_SAISERVER_MRVL)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SAISERVER_MRVL)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SAISERVER_MRVL)_RUN_OPT += -v /var/run/docker-saiserver:/var/run/sswsyncd
|
||||
$(DOCKER_SAISERVER_MRVL)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_SAISERVER_MRVL)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
|
@ -0,0 +1,23 @@
|
|||
# docker image for mrvl syncd with rpc
|
||||
|
||||
DOCKER_SYNCD_MRVL_RPC = docker-syncd-mrvl-rpc.gz
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_PATH = $(PLATFORM_PATH)/docker-syncd-mrvl-rpc
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT)
|
||||
ifeq ($(INSTALL_DEBUG_TOOLS), y)
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_DEPENDS += $(SYNCD_RPC_DBG) \
|
||||
$(LIBSWSSCOMMON_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
endif
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_LOAD_DOCKERS += $(DOCKER_SYNCD_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
SONIC_STRETCH_DOCKERS += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
ifeq ($(ENABLE_SYNCD_RPC),y)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
|
@ -0,0 +1 @@
|
|||
sysctl -w net.core.rmem_max=509430500
|
|
@ -0,0 +1,51 @@
|
|||
FROM docker-syncd-mrvl
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
COPY \
|
||||
{% for deb in docker_syncd_mrvl_rpc_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor -%}
|
||||
debs/
|
||||
|
||||
RUN apt-get purge -y syncd
|
||||
|
||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } ; \
|
||||
{% for deb in docker_syncd_mrvl_rpc_debs.split(' ') -%}
|
||||
dpkg_apt debs/{{ deb }}{{'; '}}
|
||||
{%- endfor %}
|
||||
|
||||
## Pre-install the fundamental packages
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install \
|
||||
net-tools \
|
||||
python-pip \
|
||||
build-essential \
|
||||
libssl-dev \
|
||||
libffi-dev \
|
||||
python-dev \
|
||||
wget \
|
||||
cmake \
|
||||
&& wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
|
||||
&& tar xvfz 1.0.0.tar.gz \
|
||||
&& cd nanomsg-1.0.0 \
|
||||
&& mkdir -p build \
|
||||
&& cmake . \
|
||||
&& make install \
|
||||
&& ldconfig \
|
||||
&& cd .. \
|
||||
&& rm -fr nanomsg-1.0.0 \
|
||||
&& rm -f 1.0.0.tar.gz \
|
||||
&& pip install cffi==1.7.0 \
|
||||
&& pip install --upgrade cffi==1.7.0 \
|
||||
&& pip install nnpy \
|
||||
&& mkdir -p /opt \
|
||||
&& cd /opt \
|
||||
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \
|
||||
&& apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y \
|
||||
&& rm -rf /root/deps
|
||||
|
||||
COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"]
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
|
@ -0,0 +1,10 @@
|
|||
[program:ptf_nn_agent]
|
||||
command=/usr/bin/python /opt/ptf_nn_agent.py --device-socket 1@tcp://0.0.0.0:10900 -i 1-3@Ethernet12 --set-iface-rcv-buffer=109430400
|
||||
process_name=ptf_nn_agent
|
||||
stdout_logfile=/tmp/ptf_nn_agent.out.log
|
||||
stderr_logfile=/tmp/ptf_nn_agent.err.log
|
||||
redirect_stderr=false
|
||||
autostart=true
|
||||
autorestart=true
|
||||
startsecs=1
|
||||
numprocs=1
|
|
@ -0,0 +1,13 @@
|
|||
# docker image for mrvl syncd
|
||||
|
||||
DOCKER_SYNCD_PLATFORM_CODE = mrvl
|
||||
include $(PLATFORM_PATH)/../template/docker-syncd-base.mk
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
$(LIBSWSSCOMMON_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
|
@ -0,0 +1,36 @@
|
|||
FROM docker-config-engine-stretch
|
||||
|
||||
ARG docker_container_name
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update
|
||||
|
||||
COPY \
|
||||
{% for deb in docker_syncd_mrvl_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor -%}
|
||||
debs/
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install \
|
||||
net-tools \
|
||||
iputils-ping
|
||||
|
||||
RUN apt-get -y install libpcap-dev libxml2-dev python-dev swig libsensors4-dev libjemalloc1 nfs-common
|
||||
|
||||
RUN dpkg -i \
|
||||
{% for deb in docker_syncd_mrvl_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor %}
|
||||
|
||||
COPY ["start.sh", "syncd.sh", "/usr/bin/"]
|
||||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
||||
|
||||
## Clean up
|
||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||
RUN rm -rf /debs
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
rm -f /var/run/rsyslogd.pid
|
||||
|
||||
supervisorctl start rsyslogd
|
||||
|
||||
supervisorctl start syncd
|
|
@ -0,0 +1,28 @@
|
|||
[supervisord]
|
||||
logfile_maxbytes=1MB
|
||||
logfile_backups=2
|
||||
nodaemon=true
|
||||
|
||||
[program:start.sh]
|
||||
command=/usr/bin/start.sh
|
||||
priority=1
|
||||
autostart=true
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:rsyslogd]
|
||||
command=/usr/sbin/rsyslogd -n
|
||||
priority=2
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:syncd]
|
||||
command=/usr/bin/syncd_start.sh
|
||||
priority=3
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
|
@ -0,0 +1,20 @@
|
|||
# libsaithrift-dev package
|
||||
|
||||
SAI_VER = 0.9.4
|
||||
|
||||
LIBSAITHRIFT_DEV = libsaithrift-dev_$(SAI_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSAITHRIFT_DEV)_SRC_PATH = $(SRC_PATH)/sonic-sairedis/SAI
|
||||
$(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(MRVL_FPA) $(MRVL_SAI)
|
||||
$(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT) $(MRVL_SAI)
|
||||
SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV)
|
||||
|
||||
PYTHON_SAITHRIFT = python-saithrift_$(SAI_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(PYTHON_SAITHRIFT)))
|
||||
|
||||
SAISERVER = saiserver_$(SAI_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(SAISERVER)_RDEPENDS += $(LIBTHRIFT) $(MRVL_SAI)
|
||||
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(SAISERVER)))
|
||||
|
||||
SAISERVER_DBG = saiserver-dbg_$(SAI_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(SAISERVER_DBG)_RDEPENDS += $(SAISERVER)
|
||||
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(SAISERVER_DBG)))
|
|
@ -0,0 +1,10 @@
|
|||
# linux kernel package for marvell armhf
|
||||
|
||||
KVERSION = 4.9.168
|
||||
|
||||
|
||||
LINUX_KERNEL = linux-image-4.9.168-armhf.deb
|
||||
export LINUX_KERNEL
|
||||
|
||||
$(LINUX_KERNEL)_SRC_PATH = $(PLATFORM_PATH)/linux
|
||||
SONIC_MAKE_DEBS += $(LINUX_KERNEL)
|
|
@ -0,0 +1,10 @@
|
|||
.ONESHELL:
|
||||
SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
LINUX_KERNEL_MRVL_URL = https://github.com/antony-rheneus/sonic-marvell-binaries/raw/master/armhf/kernel/$(LINUX_KERNEL)
|
||||
|
||||
$(addprefix $(DEST)/, $(LINUX_KERNEL)): $(DEST)/% :
|
||||
# get deb package
|
||||
wget -O $(DEST)/$(LINUX_KERNEL) $(LINUX_KERNEL_MRVL_URL)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# sonic marvell one image installer
|
||||
|
||||
SONIC_ONE_IMAGE = sonic-marvell.bin
|
||||
$(SONIC_ONE_IMAGE)_MACHINE = marvell
|
||||
$(SONIC_ONE_IMAGE)_IMAGE_TYPE = onie
|
||||
$(SONIC_ONE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES)
|
||||
SONIC_INSTALLERS += $(SONIC_ONE_IMAGE)
|
|
@ -0,0 +1,22 @@
|
|||
#include $(PLATFORM_PATH)/sdk.mk
|
||||
include $(PLATFORM_PATH)/sai.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-mrvl.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-mrvl-rpc.mk
|
||||
include $(PLATFORM_PATH)/docker-saiserver-mrvl.mk
|
||||
include $(PLATFORM_PATH)/libsaithrift-dev.mk
|
||||
include $(PLATFORM_PATH)/docker-ptf-mrvl.mk
|
||||
include $(PLATFORM_PATH)/one-image.mk
|
||||
include $(PLATFORM_PATH)/linux-kernel-armhf.mk
|
||||
|
||||
ENABLE_SYSTEM_TELEMETRY = ""
|
||||
ENABLE_SYNCD_RPC = ""
|
||||
|
||||
SONIC_ALL += $(SONIC_ONE_IMAGE) \
|
||||
$(DOCKER_FPM)
|
||||
#$(DOCKER_SYNCD_MRVL_RPC)
|
||||
|
||||
# Inject mrvl sai into sairedis
|
||||
$(LIBSAIREDIS)_DEPENDS += $(MRVL_SAI) $(LIBSAITHRIFT_DEV_MRVL)
|
||||
|
||||
# Runtime dependency on mrvl sai is set only for syncd
|
||||
$(SYNCD)_RDEPENDS += $(MRVL_SAI)
|
|
@ -0,0 +1,9 @@
|
|||
# Marvell SAI
|
||||
|
||||
export MRVL_SAI_VERSION = 1.4.1
|
||||
export MRVL_SAI_TAG = SONiC.201904
|
||||
export MRVL_SAI = mrvllibsai_$(PLATFORM_ARCH)_$(MRVL_SAI_VERSION).deb
|
||||
|
||||
$(MRVL_SAI)_SRC_PATH = $(PLATFORM_PATH)/sai
|
||||
#$(MRVL_SAI)_DEPENDS += $(MRVL_FPA)
|
||||
SONIC_MAKE_DEBS += $(MRVL_SAI)
|
|
@ -0,0 +1,9 @@
|
|||
.ONESHELL:
|
||||
SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MRVL_SAI_URL = https://github.com/antony-rheneus/sonic-marvell-binaries/raw/master/armhf/sai-plugin/$(MRVL_SAI)
|
||||
|
||||
$(addprefix $(DEST)/, $(MRVL_SAI)): $(DEST)/% :
|
||||
# get deb package
|
||||
wget -O $(DEST)/$(MRVL_SAI) $(MRVL_SAI_URL)
|
|
@ -12,6 +12,6 @@ BASH_VERSION_FULL = $(BASH_VERSION_MAJOR)-14
|
|||
|
||||
export BASH_VERSION_MAJOR BASH_VERSION_FULL
|
||||
|
||||
BASH = bash_$(BASH_VERSION_FULL)_amd64.deb
|
||||
BASH = bash_$(BASH_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(BASH)_SRC_PATH = $(SRC_PATH)/bash
|
||||
SONIC_MAKE_DEBS += $(BASH)
|
||||
|
|
|
@ -5,7 +5,7 @@ FRR_SUBVERSION = 0
|
|||
export FRR_VERSION FRR_SUBVERSION
|
||||
|
||||
|
||||
FRR = frr_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_amd64.deb
|
||||
FRR = frr_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(FRR)_DEPENDS += $(LIBSNMP_DEV) $(LIBYANG_DEV)
|
||||
$(FRR)_RDEPENDS += $(LIBYANG)
|
||||
$(FRR)_SRC_PATH = $(SRC_PATH)/sonic-frr
|
||||
|
@ -15,7 +15,7 @@ SONIC_STRETCH_DEBS += $(FRR)
|
|||
FRR_PYTHONTOOLS = frr-pythontools_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_all.deb
|
||||
$(eval $(call add_derived_package,$(FRR),$(FRR_PYTHONTOOLS)))
|
||||
|
||||
FRR_DBG = frr-dbgsym_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_amd64.deb
|
||||
FRR_DBG = frr-dbgsym_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(FRR),$(FRR_DBG)))
|
||||
|
||||
FRR_SNMP = frr-snmp_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_amd64.deb
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# gobgp package
|
||||
|
||||
GOBGP = gobgp_1.16-01_amd64.deb
|
||||
GOBGP = gobgp_1.16-01_$(CONFIGURED_ARCH).deb
|
||||
$(GOBGP)_SRC_PATH = $(SRC_PATH)/gobgp
|
||||
SONIC_DPKG_DEBS += $(GOBGP)
|
||||
|
|
|
@ -5,12 +5,13 @@ HIREDIS_VERSION_FULL = $(HIREDIS_VERSION)-3~bpo9+1
|
|||
|
||||
export HIREDIS_VERSION HIREDIS_VERSION_FULL
|
||||
|
||||
LIBHIREDIS = libhiredis0.14_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||
LIBHIREDIS = libhiredis0.14_$(HIREDIS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBHIREDIS)_SRC_PATH = $(SRC_PATH)/hiredis
|
||||
SONIC_MAKE_DEBS += $(LIBHIREDIS)
|
||||
|
||||
LIBHIREDIS_DEV = libhiredis-dev_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||
LIBHIREDIS_DEV = libhiredis-dev_$(HIREDIS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBHIREDIS),$(LIBHIREDIS_DEV)))
|
||||
|
||||
LIBHIREDIS_DBG = libhiredis0.14-dbgsym_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||
LIBHIREDIS_DBG = libhiredis-dbg_$(HIREDIS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
LIBHIREDIS_DBG = libhiredis0.14-dbgsym_$(HIREDIS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBHIREDIS),$(LIBHIREDIS_DBG)))
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
|
||||
IPROUTE2_VERSION = 4.9.0-1
|
||||
|
||||
IPROUTE2 = iproute2_$(IPROUTE2_VERSION)_amd64.deb
|
||||
IPROUTE2 = iproute2_$(IPROUTE2_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(IPROUTE2)_SRC_PATH = $(SRC_PATH)/iproute2
|
||||
SONIC_MAKE_DEBS += $(IPROUTE2)
|
||||
|
|
|
@ -4,7 +4,7 @@ ISC_DHCP_VERSION = 4.3.5-2
|
|||
|
||||
export ISC_DHCP_VERSION
|
||||
|
||||
ISC_DHCP_RELAY = isc-dhcp-relay_$(ISC_DHCP_VERSION)_amd64.deb
|
||||
ISC_DHCP_RELAY = isc-dhcp-relay_$(ISC_DHCP_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(ISC_DHCP_RELAY)_SRC_PATH = $(SRC_PATH)/isc-dhcp
|
||||
SONIC_MAKE_DEBS += $(ISC_DHCP_RELAY)
|
||||
|
||||
|
|
|
@ -6,44 +6,44 @@ LIBNL3_VERSION = $(LIBNL3_VERSION_BASE)-2
|
|||
export LIBNL3_VERSION_BASE
|
||||
export LIBNL3_VERSION
|
||||
|
||||
LIBNL3 = libnl-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL3 = libnl-3-200_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL3)_SRC_PATH = $(SRC_PATH)/libnl3
|
||||
SONIC_MAKE_DEBS += $(LIBNL3)
|
||||
|
||||
LIBNL3_DEV = libnl-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL3_DEV = libnl-3-dev_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL3_DEV)))
|
||||
|
||||
LIBNL_GENL3 = libnl-genl-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL_GENL3 = libnl-genl-3-200_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL_GENL3)_RDEPENDS += $(LIBNL3)
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_GENL3)))
|
||||
|
||||
LIBNL_GENL3_DEV = libnl-genl-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL_GENL3_DEV = libnl-genl-3-dev_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL_GENL3_DEV)_DEPENDS += $(LIBNL_GENL3) $(LIBNL3_DEV)
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_GENL3_DEV)))
|
||||
|
||||
LIBNL_ROUTE3 = libnl-route-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL_ROUTE3 = libnl-route-3-200_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL_ROUTE3)_RDEPENDS += $(LIBNL3)
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_ROUTE3)))
|
||||
|
||||
LIBNL_ROUTE3_DEV = libnl-route-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL_ROUTE3_DEV = libnl-route-3-dev_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL_ROUTE3_DEV)_DEPENDS += $(LIBNL_ROUTE3) $(LIBNL3_DEV)
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_ROUTE3_DEV)))
|
||||
|
||||
LIBNL_NF3 = libnl-nf-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL_NF3 = libnl-nf-3-200_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL_NF3)_DEPENDS += $(LIBNL_ROUTE3_DEV)
|
||||
$(LIBNL_NF3)_RDEPENDS += $(LIBNL_ROUTE3)
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_NF3)))
|
||||
|
||||
LIBNL_NF3_DEV = libnl-nf-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL_NF3_DEV = libnl-nf-3-dev_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL_NF3_DEV)_DEPENDS += $(LIBNL_NF3)
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_NF3_DEV)))
|
||||
|
||||
LIBNL_CLI = libnl-cli-3-200_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL_CLI = libnl-cli-3-200_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL_CLI)_DEPENDS += $(LIBNL_GENL3_DEV) $(LIBNL_NF3_DEV) $(LIBNL_ROUTE3_DEV)
|
||||
$(LIBNL_CLI)_RDEPENDS += $(LIBNL_GENL3) $(LIBNL_NF3) $(LIBNL_ROUTE3)
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_CLI)))
|
||||
|
||||
LIBNL_CLI_DEV = libnl-cli-3-dev_$(LIBNL3_VERSION)_amd64.deb
|
||||
LIBNL_CLI_DEV = libnl-cli-3-dev_$(LIBNL3_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNL_CLI_DEV)_DEPENDS += $(LIBNL_CLI) $(LIBNL_GENL3_DEV) $(LIBNL_NF3_DEV) $(LIBNL_ROUTE3_DEV)
|
||||
$(eval $(call add_derived_package,$(LIBNL3),$(LIBNL_CLI_DEV)))
|
||||
|
||||
|
|
|
@ -4,29 +4,29 @@ LIBTEAM_VERSION = 1.28-1
|
|||
|
||||
export LIBTEAM_VERSION
|
||||
|
||||
LIBTEAM = libteam5_$(LIBTEAM_VERSION)_amd64.deb
|
||||
LIBTEAM = libteam5_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBTEAM)_SRC_PATH = $(SRC_PATH)/libteam
|
||||
$(LIBTEAM)_DEPENDS += $(LIBNL_GENL3_DEV) $(LIBNL_CLI_DEV)
|
||||
SONIC_MAKE_DEBS += $(LIBTEAM)
|
||||
|
||||
LIBTEAM_DBG = libteam5-dbgsym_$(LIBTEAM_VERSION)_amd64.deb
|
||||
LIBTEAM_DBG = libteam5-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_DBG)))
|
||||
|
||||
LIBTEAM_DEV = libteam-dev_$(LIBTEAM_VERSION)_amd64.deb
|
||||
LIBTEAM_DEV = libteam-dev_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBTEAM_DEV)_DEPENDS += $(LIBTEAMDCT)
|
||||
$(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_DEV)))
|
||||
|
||||
LIBTEAMDCT = libteamdctl0_$(LIBTEAM_VERSION)_amd64.deb
|
||||
LIBTEAMDCT = libteamdctl0_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAMDCT)))
|
||||
|
||||
LIBTEAMDCT_DBG = libteamdctl0-dbgsym_$(LIBTEAM_VERSION)_amd64.deb
|
||||
LIBTEAMDCT_DBG = libteamdctl0-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBTEAMDCT),$(LIBTEAMDCT_DBG)))
|
||||
|
||||
LIBTEAM_UTILS = libteam-utils_$(LIBTEAM_VERSION)_amd64.deb
|
||||
LIBTEAM_UTILS = libteam-utils_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBTEAM_UTILS)_DEPENDS += $(LIBTEAMDCT)
|
||||
$(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_UTILS)))
|
||||
|
||||
LIBTEAM_UTILS_DBG = libteam-utils-dbgsym_$(LIBTEAM_VERSION)_amd64.deb
|
||||
LIBTEAM_UTILS_DBG = libteam-utils-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBTEAM_UTILS),$(LIBTEAM_UTILS_DBG)))
|
||||
|
||||
# The .c, .cpp, .h & .hpp files under src/{$DBG_SRC_ARCHIVE list}
|
||||
|
|
|
@ -8,13 +8,13 @@ export LIBYANG_VERSION_BASE
|
|||
export LIBYANG_VERSION
|
||||
export LIBYANG_SUBVERSION
|
||||
|
||||
LIBYANG = libyang$(LIBYANG_VERSION_BASE)_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_amd64.deb
|
||||
LIBYANG = libyang$(LIBYANG_VERSION_BASE)_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBYANG)_SRC_PATH = $(SRC_PATH)/libyang
|
||||
$(LIBYANG)_DEPENDS += $(SWIG_BASE) $(SWIG)
|
||||
SONIC_MAKE_DEBS += $(LIBYANG)
|
||||
SONIC_STRETCH_DEBS += $(LIBYANG)
|
||||
|
||||
LIBYANG_DEV = libyang-dev_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_amd64.deb
|
||||
LIBYANG_DEV = libyang-dev_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_DEV)))
|
||||
|
||||
LIBYANG_DBG = libyang$(LIBYANG_VERSION_BASE)-dbgsym_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_amd64.deb
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# linux kernel package
|
||||
|
||||
KVERSION_SHORT = 4.9.0-9-2
|
||||
KVERSION = $(KVERSION_SHORT)-amd64
|
||||
KVERSION = $(KVERSION_SHORT)-$(CONFIGURED_ARCH)
|
||||
KERNEL_VERSION = 4.9.168
|
||||
KERNEL_SUBVERSION = 1+deb9u3
|
||||
|
||||
|
@ -11,8 +11,8 @@ LINUX_HEADERS_COMMON = linux-headers-$(KVERSION_SHORT)-common_$(KERNEL_VERSION)-
|
|||
$(LINUX_HEADERS_COMMON)_SRC_PATH = $(SRC_PATH)/sonic-linux-kernel
|
||||
SONIC_MAKE_DEBS += $(LINUX_HEADERS_COMMON)
|
||||
|
||||
LINUX_HEADERS = linux-headers-$(KVERSION)_$(KERNEL_VERSION)-$(KERNEL_SUBVERSION)_amd64.deb
|
||||
LINUX_HEADERS = linux-headers-$(KVERSION)_$(KERNEL_VERSION)-$(KERNEL_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LINUX_HEADERS_COMMON),$(LINUX_HEADERS)))
|
||||
|
||||
LINUX_KERNEL = linux-image-$(KVERSION)_$(KERNEL_VERSION)-$(KERNEL_SUBVERSION)_amd64.deb
|
||||
LINUX_KERNEL = linux-image-$(KVERSION)_$(KERNEL_VERSION)-$(KERNEL_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LINUX_HEADERS_COMMON),$(LINUX_KERNEL)))
|
||||
|
|
|
@ -4,13 +4,13 @@ LLDPD_VERSION = 0.9.6
|
|||
LLDPD_VERSION_SUFFIX = 1
|
||||
LLDPD_VERSION_FULL = $(LLDPD_VERSION)-$(LLDPD_VERSION_SUFFIX)
|
||||
|
||||
LLDPD = lldpd_$(LLDPD_VERSION_FULL)_amd64.deb
|
||||
LLDPD = lldpd_$(LLDPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LLDPD)_DEPENDS += $(LIBSNMP_DEV)
|
||||
$(LLDPD)_RDEPENDS += $(LIBSNMP)
|
||||
$(LLDPD)_SRC_PATH = $(SRC_PATH)/lldpd
|
||||
SONIC_MAKE_DEBS += $(LLDPD)
|
||||
|
||||
LIBLLDPCTL = liblldpctl-dev_$(LLDPD_VERSION_FULL)_amd64.deb
|
||||
LIBLLDPCTL = liblldpctl-dev_$(LLDPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LLDPD),$(LIBLLDPCTL)))
|
||||
|
||||
LLDPD_DBG = lldpd-dbgsym_$(LLDPD_VERSION_FULL)_amd64.deb
|
||||
|
|
|
@ -3,26 +3,26 @@
|
|||
LM_SENSORS_VERSION=3.4.0
|
||||
LM_SENSORS_VERSION_FULL=$(LM_SENSORS_VERSION)-4
|
||||
|
||||
LM_SENSORS = lm-sensors_$(LM_SENSORS_VERSION_FULL)_amd64.deb
|
||||
LM_SENSORS = lm-sensors_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LM_SENSORS)_SRC_PATH = $(SRC_PATH)/lm-sensors
|
||||
|
||||
LM_SENSORS_DBG = lm-sensors-dbgsym_$(LM_SENSORS_VERSION_FULL)_amd64.deb
|
||||
LM_SENSORS_DBG = lm-sensors-dbgsym_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LM_SENSORS),$(LM_SENSORS_DBG)))
|
||||
|
||||
FANCONTROL = fancontrol_$(LM_SENSORS_VERSION_FULL)_all.deb
|
||||
$(eval $(call add_derived_package,$(LM_SENSORS),$(FANCONTROL)))
|
||||
|
||||
LIBSENSORS = libsensors4_$(LM_SENSORS_VERSION_FULL)_amd64.deb
|
||||
LIBSENSORS = libsensors4_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LM_SENSORS),$(LIBSENSORS)))
|
||||
|
||||
LIBSENSORS_DBG = libsensors4-dbgsym_$(LM_SENSORS_VERSION_FULL)_amd64.deb
|
||||
LIBSENSORS_DBG = libsensors4-dbgsym_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBSENSORS),$(LIBSENSORS_DBG)))
|
||||
|
||||
SENSORD = sensord_$(LM_SENSORS_VERSION_FULL)_amd64.deb
|
||||
SENSORD = sensord_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LM_SENSORS),$(SENSORD)))
|
||||
$(SENSORD)_DEPENDS += $(LIBSENSORS) $(LM_SENSORS)
|
||||
|
||||
SENSORD_DBG = sensord-dbgsym_$(LM_SENSORS_VERSION_FULL)_amd64.deb
|
||||
SENSORD_DBG = sensord-dbgsym_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(SENSORD),$(SENSORD_DBG)))
|
||||
|
||||
SONIC_MAKE_DEBS += $(LM_SENSORS)
|
||||
|
|
|
@ -5,9 +5,9 @@ MPDECIMAL_VERSION_FULL = $(MPDECIMAL_VERSION)-2
|
|||
|
||||
export MPDECIMAL_VERSION MPDECIMAL_VERSION_FULL
|
||||
|
||||
LIBMPDECIMAL = libmpdec2_$(MPDECIMAL_VERSION_FULL)_amd64.deb
|
||||
LIBMPDECIMAL = libmpdec2_$(MPDECIMAL_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBMPDECIMAL)_SRC_PATH = $(SRC_PATH)/mpdecimal
|
||||
SONIC_MAKE_DEBS += $(LIBMPDECIMAL)
|
||||
|
||||
LIBMPDECIMAL_DEV = libmpdec-dev_$(MPDECIMAL_VERSION_FULL)_amd64.deb
|
||||
LIBMPDECIMAL_DEV = libmpdec-dev_$(MPDECIMAL_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBMPDECIMAL),$(LIBMPDECIMAL_DEV)))
|
||||
|
|
|
@ -4,32 +4,32 @@ PYTHON_PNAME=python3.6
|
|||
export PYTHON_VER
|
||||
export PYTHON_PNAME
|
||||
|
||||
LIBPY3_MIN = lib$(PYTHON_PNAME)-minimal_$(PYTHON_VER)_amd64.deb
|
||||
LIBPY3_MIN = lib$(PYTHON_PNAME)-minimal_$(PYTHON_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBPY3_MIN)_SRC_PATH = $(SRC_PATH)/python3
|
||||
$(LIBPY3_MIN)_DEPENDS +=
|
||||
$(LIBPY3_MIN)_RDEPENDS +=
|
||||
SONIC_MAKE_DEBS += $(LIBPY3_MIN)
|
||||
|
||||
LIBPY3_STD = lib$(PYTHON_PNAME)-stdlib_$(PYTHON_VER)_amd64.deb
|
||||
LIBPY3_STD = lib$(PYTHON_PNAME)-stdlib_$(PYTHON_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBPY3_MIN),$(LIBPY3_STD)))
|
||||
$(LIBPY3_STD)_DEPENDS += $(LIBMPDECIMAL)
|
||||
$(LIBPY3_STD)_RDEPENDS += $(LIBPY3_MIN) $(LIBMPDECIMAL)
|
||||
|
||||
LIBPY3 = lib$(PYTHON_PNAME)_$(PYTHON_VER)_amd64.deb
|
||||
LIBPY3 = lib$(PYTHON_PNAME)_$(PYTHON_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBPY3_MIN),$(LIBPY3)))
|
||||
$(LIBPY3)_DEPENDS += $(LIBPY3_STD)
|
||||
$(LIBPY3)_RDEPENDS += $(LIBPY3_MIN) $(LIBPY3_STD)
|
||||
|
||||
PY3_MIN = $(PYTHON_PNAME)-minimal_$(PYTHON_VER)_amd64.deb
|
||||
PY3_MIN = $(PYTHON_PNAME)-minimal_$(PYTHON_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBPY3_MIN),$(PY3_MIN)))
|
||||
$(PY3_MIN)_RDEPENDS += $(LIBPY3_MIN)
|
||||
|
||||
PY3 = $(PYTHON_PNAME)_$(PYTHON_VER)_amd64.deb
|
||||
PY3 = $(PYTHON_PNAME)_$(PYTHON_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBPY3_MIN),$(PY3)))
|
||||
$(PY3)_DEPENDS += $(PY3_MIN) $(LIBPY3_STD)
|
||||
$(PY3)_RDEPENDS += $(PY3_MIN) $(LIBPY3_STD)
|
||||
|
||||
LIBPY3_DEV = lib$(PYTHON_PNAME)-dev_$(PYTHON_VER)_amd64.deb
|
||||
LIBPY3_DEV = lib$(PYTHON_PNAME)-dev_$(PYTHON_VER)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBPY3_MIN),$(LIBPY3_DEV)))
|
||||
$(LIBPY3_DEV)_DEPENDS += $(LIBPY3) $($(LIBPY3)_DEPENDS)
|
||||
$(LIBPY3_DEV)_RDEPENDS += $(LIBPY3) $($(LIBPY3)_RDEPENDS)
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
QUAGGA_VERSION_FULL = 0.99.24.1-2.1
|
||||
|
||||
QUAGGA = quagga_$(QUAGGA_VERSION_FULL)_amd64.deb
|
||||
QUAGGA = quagga_$(QUAGGA_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(QUAGGA)_DEPENDS += $(LIBSNMP_DEV)
|
||||
$(QUAGGA)_SRC_PATH = $(SRC_PATH)/sonic-quagga
|
||||
SONIC_DPKG_DEBS += $(QUAGGA)
|
||||
|
||||
QUAGGA_DBG = quagga-dbg_$(QUAGGA_VERSION_FULL)_amd64.deb
|
||||
QUAGGA_DBG = quagga-dbg_$(QUAGGA_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(QUAGGA),$(QUAGGA_DBG)))
|
||||
|
|
|
@ -4,7 +4,7 @@ RADVD_VERSION = 2.17-2~bpo9+1
|
|||
|
||||
export RADVD_VERSION
|
||||
|
||||
RADVD = radvd_$(RADVD_VERSION)_amd64.deb
|
||||
RADVD = radvd_$(RADVD_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(RADVD)_SRC_PATH = $(SRC_PATH)/radvd
|
||||
SONIC_MAKE_DEBS += $(RADVD)
|
||||
SONIC_STRETCH_DEBS += $(RADVD)
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
|
||||
REDIS_VERSION = 5.0.3-3~bpo9+2
|
||||
|
||||
REDIS_TOOLS = redis-tools_$(REDIS_VERSION)_amd64.deb
|
||||
REDIS_TOOLS = redis-tools_$(REDIS_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(REDIS_TOOLS)_SRC_PATH = $(SRC_PATH)/redis
|
||||
$(REDIS_TOOLS)_DEPENDS += $(LIBHIREDIS_DEV)
|
||||
$(REDIS_TOOLS)_RDEPENDS += $(LIBHIREDIS)
|
||||
SONIC_MAKE_DEBS += $(REDIS_TOOLS)
|
||||
|
||||
REDIS_TOOLS_DBG = redis-tools-dbgsym_$(REDIS_VERSION)_amd64.deb
|
||||
REDIS_TOOLS_DBG = redis-tools-dbgsym_$(REDIS_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(REDIS_TOOLS),$(REDIS_TOOLS_DBG)))
|
||||
|
||||
REDIS_SERVER = redis-server_$(REDIS_VERSION)_amd64.deb
|
||||
REDIS_SERVER = redis-server_$(REDIS_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(REDIS_TOOLS),$(REDIS_SERVER)))
|
||||
|
||||
REDIS_SENTINEL = redis-sentinel_$(REDIS_VERSION)_amd64.deb
|
||||
REDIS_SENTINEL = redis-sentinel_$(REDIS_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(REDIS_SENTINEL)_DEPENDS += $(REDIS_SERVER)
|
||||
$(REDIS_SENTINEL)_RDEPENDS += $(REDIS_SERVER)
|
||||
$(eval $(call add_derived_package,$(REDIS_TOOLS),$(REDIS_SENTINEL)))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# sairedis package
|
||||
|
||||
LIBSAIREDIS = libsairedis_1.0.0_amd64.deb
|
||||
LIBSAIREDIS = libsairedis_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSAIREDIS)_SRC_PATH = $(SRC_PATH)/sonic-sairedis
|
||||
$(LIBSAIREDIS)_DEPENDS += $(LIBSWSSCOMMON_DEV)
|
||||
$(LIBSAIREDIS)_RDEPENDS += $(LIBSWSSCOMMON)
|
||||
|
@ -14,59 +14,59 @@ endif
|
|||
$(LIBSAIREDIS)_DEB_BUILD_OPTIONS = nocheck
|
||||
SONIC_DPKG_DEBS += $(LIBSAIREDIS)
|
||||
|
||||
LIBSAIREDIS_DEV = libsairedis-dev_1.0.0_amd64.deb
|
||||
LIBSAIREDIS_DEV = libsairedis-dev_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIREDIS_DEV)))
|
||||
|
||||
LIBSAIVS = libsaivs_1.0.0_amd64.deb
|
||||
LIBSAIVS = libsaivs_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIVS)))
|
||||
|
||||
LIBSAIVS_DEV = libsaivs-dev_1.0.0_amd64.deb
|
||||
LIBSAIVS_DEV = libsaivs-dev_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIVS_DEV)))
|
||||
|
||||
ifneq ($(CONFIGURED_PLATFORM),vs)
|
||||
SYNCD = syncd_1.0.0_amd64.deb
|
||||
SYNCD = syncd_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(SYNCD)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA)
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD)))
|
||||
|
||||
ifeq ($(ENABLE_SYNCD_RPC),y)
|
||||
SYNCD_RPC = syncd-rpc_1.0.0_amd64.deb
|
||||
SYNCD_RPC = syncd-rpc_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(SYNCD_RPC)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA)
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD_RPC)))
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBSAIMETADATA = libsaimetadata_1.0.0_amd64.deb
|
||||
LIBSAIMETADATA = libsaimetadata_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIMETADATA)))
|
||||
|
||||
LIBSAIMETADATA_DEV = libsaimetadata-dev_1.0.0_amd64.deb
|
||||
LIBSAIMETADATA_DEV = libsaimetadata-dev_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSAIMETADATA_DEV)_DEPENDS += $(LIBSAIMETADATA)
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIMETADATA_DEV)))
|
||||
|
||||
LIBSAIREDIS_DBG = libsairedis-dbg_1.0.0_amd64.deb
|
||||
LIBSAIREDIS_DBG = libsairedis-dbg_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSAIREDIS_DBG)_DEPENDS += $(LIBSAIREDIS)
|
||||
$(LIBSAIREDIS_DBG)_RDEPENDS += $(LIBSAIREDIS)
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIREDIS_DBG)))
|
||||
|
||||
LIBSAIVS_DBG = libsaivs-dbg_1.0.0_amd64.deb
|
||||
LIBSAIVS_DBG = libsaivs-dbg_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSAIVS_DBG)_DEPENDS += $(LIBSAIVS)
|
||||
$(LIBSAIVS_DBG)_RDEPENDS += $(LIBSAIVS)
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIVS_DBG)))
|
||||
|
||||
ifneq ($(CONFIGURED_PLATFORM),vs)
|
||||
SYNCD_DBG = syncd-dbg_1.0.0_amd64.deb
|
||||
SYNCD_DBG = syncd-dbg_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(SYNCD_DBG)_DEPENDS += $(SYNCD)
|
||||
$(SYNCD_DBG)_RDEPENDS += $(SYNCD)
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD_DBG)))
|
||||
|
||||
ifeq ($(ENABLE_SYNCD_RPC),y)
|
||||
SYNCD_RPC_DBG = syncd-rpc-dbg_1.0.0_amd64.deb
|
||||
SYNCD_RPC_DBG = syncd-rpc-dbg_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(SYNCD_RPC_DBG)_DEPENDS += $(SYNCD_RPC)
|
||||
$(SYNCD_RPC_DBG)_RDEPENDS += $(SYNCD_RPC)
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(SYNCD_RPC_DBG)))
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBSAIMETADATA_DBG = libsaimetadata-dbg_1.0.0_amd64.deb
|
||||
LIBSAIMETADATA_DBG = libsaimetadata-dbg_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSAIMETADATA_DBG)_DEPENDS += $(LIBSAIMETADATA)
|
||||
$(LIBSAIMETADATA_DBG)_RDEPENDS += $(LIBSAIMETADATA)
|
||||
$(eval $(call add_derived_package,$(LIBSAIREDIS),$(LIBSAIMETADATA_DBG)))
|
||||
|
|
|
@ -6,8 +6,8 @@ SMARTMONTOOLS_VERSION_FULL = $(SMARTMONTOOLS_VERSION_MAJOR)-1
|
|||
|
||||
export SMARTMONTOOLS_VERSION_MAJOR SMARTMONTOOLS_VERSION_FULL
|
||||
|
||||
SMARTMONTOOLS = smartmontools_$(SMARTMONTOOLS_VERSION_FULL)_amd64.deb
|
||||
SMARTMONTOOLS = smartmontools_$(SMARTMONTOOLS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(SMARTMONTOOLS)_SRC_PATH = $(SRC_PATH)/smartmontools
|
||||
|
||||
SONIC_STRETCH_DEBS += $(SMARTMONTOOLS)
|
||||
SONIC_MAKE_DEBS += $(SMARTMONTOOLS)
|
||||
SONIC_MAKE_DEBS += $(SMARTMONTOOLS)
|
||||
|
|
|
@ -11,46 +11,46 @@ $(LIBSNMP_BASE)_DEPENDS += $(LIBNL3_DEV)
|
|||
$(LIBSNMP_BASE)_RDEPENDS += $(LIBNL3)
|
||||
SONIC_MAKE_DEBS += $(LIBSNMP_BASE)
|
||||
|
||||
SNMPTRAPD = snmptrapd_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
SNMPTRAPD = snmptrapd_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(SNMPTRAPD)_DEPENDS += $(LIBSNMP) $(SNMPD)
|
||||
$(SNMPTRAPD)_RDEPENDS += $(LIBSNMP) $(SNMPD)
|
||||
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(SNMPTRAPD)))
|
||||
|
||||
SNMP = snmp_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
SNMP = snmp_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(SNMP)_DEPENDS += $(LIBSNMP)
|
||||
$(SNMP)_RDEPENDS += $(LIBSNMP)
|
||||
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(SNMP)))
|
||||
|
||||
SNMPD = snmpd_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
SNMPD = snmpd_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(SNMPD)_DEPENDS += $(LIBSNMP)
|
||||
$(SNMPD)_RDEPENDS += $(LIBSNMP)
|
||||
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(SNMPD)))
|
||||
|
||||
SNMP_DBG = snmp-dbgsym_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
SNMP_DBG = snmp-dbgsym_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(SNMP),$(SNMP_DBG)))
|
||||
|
||||
SNMPD_DBG = snmpd-dbgsym_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
SNMPD_DBG = snmpd-dbgsym_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(SNMPD),$(SNMPD_DBG)))
|
||||
|
||||
LIBSNMP = libsnmp30_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
LIBSNMP = libsnmp30_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSNMP)_RDEPENDS += $(LIBSNMP_BASE)
|
||||
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(LIBSNMP)))
|
||||
|
||||
LIBSNMP_DBG = libsnmp30-dbg_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
LIBSNMP_DBG = libsnmp30-dbg_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSNMP_DBG)_DEPENDS += $(LIBSNMP)
|
||||
$(LIBSNMP_DBG)_RDEPENDS += $(LIBSNMP)
|
||||
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(LIBSNMP_DBG)))
|
||||
|
||||
LIBSNMP_DEV = libsnmp-dev_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
LIBSNMP_DEV = libsnmp-dev_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSNMP_DEV)_DEPENDS += $(LIBSNMP)
|
||||
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(LIBSNMP_DEV)))
|
||||
|
||||
LIBSNMP_PERL = libsnmp-perl_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
LIBSNMP_PERL = libsnmp-perl_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSNMP_PERL)_DEPENDS += $(LIBSNMP)
|
||||
$(LIBSNMP_PERL)_RDEPENDS += $(LIBSNMP)
|
||||
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(LIBSNMP_PERL)))
|
||||
|
||||
PYTHON_NETSNMP = python-netsnmp_$(SNMPD_VERSION_FULL)_amd64.deb
|
||||
PYTHON_NETSNMP = python-netsnmp_$(SNMPD_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(PYTHON_NETSNMP)_DEPENDS += $(LIBSNMP)
|
||||
$(PYTHON_NETSNMP)_RDEPENDS += $(LIBSNMP)
|
||||
$(eval $(call add_derived_package,$(LIBSNMP_BASE),$(PYTHON_NETSNMP)))
|
||||
|
|
|
@ -4,6 +4,6 @@ SOCAT_VERSION = 1.7.3.1-2+deb9u1
|
|||
|
||||
export SOCAT_VERSION
|
||||
|
||||
SOCAT = socat_$(SOCAT_VERSION)_amd64.deb
|
||||
SOCAT = socat_$(SOCAT_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(SOCAT)_SRC_PATH = $(SRC_PATH)/socat
|
||||
SONIC_MAKE_DEBS += $(SOCAT)
|
||||
|
|
|
@ -8,15 +8,15 @@ export SWIG_VERSION_BASE
|
|||
export SWIG_VERSION
|
||||
export SWIG_SUBVERSION
|
||||
|
||||
SWIG_BASE = swig$(SWIG_VERSION_BASE)_$(SWIG_VERSION)-$(SWIG_SUBVERSION)_amd64.deb
|
||||
SWIG_BASE = swig$(SWIG_VERSION_BASE)_$(SWIG_VERSION)-$(SWIG_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(SWIG_BASE)_SRC_PATH = $(SRC_PATH)/swig
|
||||
SONIC_MAKE_DEBS += $(SWIG_BASE)
|
||||
SONIC_STRETCH_DEBS += $(SWIG_BASE)
|
||||
|
||||
SWIG = swig_$(SWIG_VERSION)-$(SWIG_SUBVERSION)_amd64.deb
|
||||
SWIG = swig_$(SWIG_VERSION)-$(SWIG_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(SWIG_BASE),$(SWIG)))
|
||||
|
||||
SWIG_DBG = swig$(SWIG_VERSION_BASE)-dbgsym_$(SWIG_VERSION)-$(SWIG_SUBVERSION)_amd64.deb
|
||||
SWIG_DBG = swig$(SWIG_VERSION_BASE)-dbgsym_$(SWIG_VERSION)-$(SWIG_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(SWIG_BASE),$(SWIG_DBG)))
|
||||
|
||||
export SWIG_BASE SWIG SWIG_DBG
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# libswsscommon package
|
||||
|
||||
LIBSWSSCOMMON = libswsscommon_1.0.0_amd64.deb
|
||||
LIBSWSSCOMMON = libswsscommon_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSWSSCOMMON)_SRC_PATH = $(SRC_PATH)/sonic-swss-common
|
||||
$(LIBSWSSCOMMON)_DEPENDS += $(LIBHIREDIS_DEV) $(LIBNL3_DEV) $(LIBNL_GENL3_DEV) \
|
||||
$(LIBNL_ROUTE3_DEV) $(LIBNL_NF3_DEV) \
|
||||
|
@ -9,13 +9,13 @@ $(LIBSWSSCOMMON)_RDEPENDS += $(LIBHIREDIS) $(LIBNL3) $(LIBNL_GENL3) \
|
|||
$(LIBNL_ROUTE3) $(LIBNL_NF3) $(LIBNL_CLI)
|
||||
SONIC_DPKG_DEBS += $(LIBSWSSCOMMON)
|
||||
|
||||
LIBSWSSCOMMON_DEV = libswsscommon-dev_1.0.0_amd64.deb
|
||||
LIBSWSSCOMMON_DEV = libswsscommon-dev_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBSWSSCOMMON),$(LIBSWSSCOMMON_DEV)))
|
||||
|
||||
PYTHON_SWSSCOMMON = python-swsscommon_1.0.0_amd64.deb
|
||||
PYTHON_SWSSCOMMON = python-swsscommon_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBSWSSCOMMON),$(PYTHON_SWSSCOMMON)))
|
||||
|
||||
LIBSWSSCOMMON_DBG = libswsscommon-dbg_1.0.0_amd64.deb
|
||||
LIBSWSSCOMMON_DBG = libswsscommon-dbg_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(LIBSWSSCOMMON_DBG)_DEPENDS += $(LIBSWSSCOMMON)
|
||||
$(LIBSWSSCOMMON_DBG)_RDEPENDS += $(LIBSWSSCOMMON)
|
||||
$(eval $(call add_derived_package,$(LIBSWSSCOMMON),$(LIBSWSSCOMMON_DBG)))
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# swss package
|
||||
|
||||
SWSS = swss_1.0.0_amd64.deb
|
||||
SWSS = swss_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(SWSS)_SRC_PATH = $(SRC_PATH)/sonic-swss
|
||||
$(SWSS)_DEPENDS += $(LIBSAIREDIS_DEV) $(LIBSAIMETADATA_DEV) $(LIBTEAM_DEV) \
|
||||
$(LIBTEAMDCT) $(LIBTEAM_UTILS) $(LIBSWSSCOMMON_DEV)
|
||||
$(SWSS)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA) $(LIBTEAM) $(LIBSWSSCOMMON) $(PYTHON_SWSSCOMMON)
|
||||
SONIC_DPKG_DEBS += $(SWSS)
|
||||
|
||||
SWSS_DBG = swss-dbg_1.0.0_amd64.deb
|
||||
SWSS_DBG = swss-dbg_1.0.0_$(CONFIGURED_ARCH).deb
|
||||
$(SWSS_DBG)_DEPENDS += $(SWSS)
|
||||
$(SWSS_DBG)_RDEPENDS += $(SWSS)
|
||||
$(eval $(call add_derived_package,$(SWSS),$(SWSS_DBG)))
|
||||
|
|
|
@ -4,15 +4,15 @@ PAM_TACPLUS_VERSION = 1.4.1-1
|
|||
|
||||
export PAM_TACPLUS_VERSION
|
||||
|
||||
LIBTAC2 = libtac2_$(PAM_TACPLUS_VERSION)_amd64.deb
|
||||
LIBTAC2 = libtac2_$(PAM_TACPLUS_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBTAC2)_SRC_PATH = $(SRC_PATH)/tacacs/pam
|
||||
SONIC_MAKE_DEBS += $(LIBTAC2)
|
||||
|
||||
LIBPAM_TACPLUS = libpam-tacplus_$(PAM_TACPLUS_VERSION)_amd64.deb
|
||||
LIBPAM_TACPLUS = libpam-tacplus_$(PAM_TACPLUS_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBPAM_TACPLUS)_RDEPENDS += $(LIBTAC2)
|
||||
$(eval $(call add_extra_package,$(LIBTAC2),$(LIBPAM_TACPLUS)))
|
||||
|
||||
LIBTAC_DEV = libtac-dev_$(PAM_TACPLUS_VERSION)_amd64.deb
|
||||
LIBTAC_DEV = libtac-dev_$(PAM_TACPLUS_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBTAC_DEV)_DEPENDS += $(LIBTAC2)
|
||||
$(eval $(call add_derived_package,$(LIBTAC2),$(LIBTAC_DEV)))
|
||||
|
||||
|
@ -23,7 +23,7 @@ NSS_TACPLUS_VERSION = 1.0.4-1
|
|||
|
||||
export NSS_TACPLUS_VERSION
|
||||
|
||||
LIBNSS_TACPLUS = libnss-tacplus_$(NSS_TACPLUS_VERSION)_amd64.deb
|
||||
LIBNSS_TACPLUS = libnss-tacplus_$(NSS_TACPLUS_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBNSS_TACPLUS)_DEPENDS += $(LIBTAC_DEV)
|
||||
$(LIBNSS_TACPLUS)_RDEPENDS += $(LIBTAC2)
|
||||
$(LIBNSS_TACPLUS)_SRC_PATH = $(SRC_PATH)/tacacs/nss
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SONiC telemetry package
|
||||
|
||||
SONIC_TELEMETRY = sonic-telemetry_0.1_amd64.deb
|
||||
SONIC_TELEMETRY = sonic-telemetry_0.1_$(CONFIGURED_ARCH).deb
|
||||
$(SONIC_TELEMETRY)_SRC_PATH = $(SRC_PATH)/telemetry
|
||||
SONIC_DPKG_DEBS += $(SONIC_TELEMETRY)
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
THRIFT_VERSION = 0.11.0
|
||||
THRIFT_VERSION_FULL = $(THRIFT_VERSION)-4
|
||||
|
||||
LIBTHRIFT = libthrift-$(THRIFT_VERSION)_$(THRIFT_VERSION_FULL)_amd64.deb
|
||||
LIBTHRIFT = libthrift-$(THRIFT_VERSION)_$(THRIFT_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBTHRIFT)_SRC_PATH = $(SRC_PATH)/thrift
|
||||
SONIC_MAKE_DEBS += $(LIBTHRIFT)
|
||||
|
||||
LIBTHRIFT_DEV = libthrift-dev_$(THRIFT_VERSION_FULL)_amd64.deb
|
||||
LIBTHRIFT_DEV = libthrift-dev_$(THRIFT_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBTHRIFT),$(LIBTHRIFT_DEV)))
|
||||
|
||||
PYTHON_THRIFT = python-thrift_$(THRIFT_VERSION_FULL)_amd64.deb
|
||||
PYTHON_THRIFT = python-thrift_$(THRIFT_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBTHRIFT),$(PYTHON_THRIFT)))
|
||||
|
||||
THRIFT_COMPILER = thrift-compiler_$(THRIFT_VERSION_FULL)_amd64.deb
|
||||
THRIFT_COMPILER = thrift-compiler_$(THRIFT_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBTHRIFT),$(THRIFT_COMPILER)))
|
||||
|
|
10
slave.mk
10
slave.mk
|
@ -40,9 +40,14 @@ DBG_IMAGE_MARK = dbg
|
|||
|
||||
CONFIGURED_PLATFORM := $(shell [ -f .platform ] && cat .platform || echo generic)
|
||||
PLATFORM_PATH = platform/$(CONFIGURED_PLATFORM)
|
||||
CONFIGURED_ARCH := $(shell [ -f .arch ] && cat .arch || echo amd64)
|
||||
ifeq ($(PLATFORM_ARCH),)
|
||||
override PLATFORM_ARCH = $(CONFIGURED_ARCH)
|
||||
endif
|
||||
export BUILD_NUMBER
|
||||
export BUILD_TIMESTAMP
|
||||
export CONFIGURED_PLATFORM
|
||||
export CONFIGURED_ARCH
|
||||
|
||||
###############################################################################
|
||||
## Utility rules
|
||||
|
@ -63,9 +68,11 @@ configure :
|
|||
@mkdir -p target/python-debs
|
||||
@mkdir -p target/python-wheels
|
||||
@echo $(PLATFORM) > .platform
|
||||
@echo $(PLATFORM_ARCH) > .arch
|
||||
|
||||
distclean : .platform clean
|
||||
@rm -f .platform
|
||||
@rm -f .arch
|
||||
|
||||
list :
|
||||
@$(foreach target,$(SONIC_TARGET_LIST),echo $(target);)
|
||||
|
@ -148,6 +155,7 @@ $(info SONiC Build System)
|
|||
$(info )
|
||||
$(info Build Configuration)
|
||||
$(info "CONFIGURED_PLATFORM" : "$(if $(PLATFORM),$(PLATFORM),$(CONFIGURED_PLATFORM))")
|
||||
$(info "CONFIGURED_ARCH" : "$(if $(PLATFORM_ARCH),$(PLATFORM_ARCH),$(CONFIGURED_ARCH))")
|
||||
$(info "SONIC_CONFIG_PRINT_DEPENDENCIES" : "$(SONIC_CONFIG_PRINT_DEPENDENCIES)")
|
||||
$(info "SONIC_BUILD_JOBS" : "$(SONIC_BUILD_JOBS)")
|
||||
$(info "SONIC_CONFIG_MAKE_JOBS" : "$(SONIC_CONFIG_MAKE_JOBS)")
|
||||
|
@ -611,7 +619,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
|
|||
export kversion="$(KVERSION)"
|
||||
export image_type="$($*_IMAGE_TYPE)"
|
||||
export sonicadmin_user="$(USERNAME)"
|
||||
export sonic_asic_platform="$(CONFIGURED_PLATFORM)"
|
||||
export sonic_asic_platform="$(patsubst %-$(CONFIGURED_ARCH),%,$(CONFIGURED_PLATFORM))"
|
||||
export enable_organization_extensions="$(ENABLE_ORGANIZATION_EXTENSIONS)"
|
||||
export enable_dhcp_graph_service="$(ENABLE_DHCP_GRAPH_SERVICE)"
|
||||
export shutdown_bgp_on_start="$(SHUTDOWN_BGP_ON_START)"
|
||||
|
|
|
@ -0,0 +1,370 @@
|
|||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
FROM multiarch/debian-debootstrap:armhf-stretch
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
FROM multiarch/debian-debootstrap:arm64-stretch
|
||||
{% else %}
|
||||
FROM debian:stretch
|
||||
{% endif %}
|
||||
|
||||
MAINTAINER gulv@microsoft.com
|
||||
|
||||
RUN echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian stretch-backports main" >> /etc/apt/sources.list
|
||||
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
RUN echo "deb [arch=armhf] http://deb.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=armhf] http://deb.debian.org/debian stretch main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=armhf] http://deb.debian.org/debian stretch-updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=armhf] http://deb.debian.org/debian stretch-updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=armhf] http://security.debian.org stretch/updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=armhf] http://security.debian.org stretch/updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo 'deb [arch=armhf] http://ftp.debian.org/debian stretch-backports main' >> /etc/apt/sources.list
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
RUN echo "deb [arch=arm64] http://deb.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=arm64] http://deb.debian.org/debian stretch main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=arm64] http://deb.debian.org/debian stretch-updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=arm64] http://deb.debian.org/debian stretch-updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=arm64] http://security.debian.org stretch/updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=arm64] http://security.debian.org stretch/updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo 'deb [arch=arm64] http://ftp.debian.org/debian stretch-backports main' >> /etc/apt/sources.list
|
||||
{% endif %}
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
apt-utils \
|
||||
default-jre-headless \
|
||||
openssh-server \
|
||||
curl \
|
||||
wget \
|
||||
unzip \
|
||||
git \
|
||||
build-essential \
|
||||
libtool \
|
||||
lintian \
|
||||
sudo \
|
||||
dh-make \
|
||||
dh-exec \
|
||||
kmod \
|
||||
libtinyxml2-4 \
|
||||
libboost-program-options1.62-dev \
|
||||
libtinyxml2-dev \
|
||||
python \
|
||||
python-pip \
|
||||
libncurses5-dev \
|
||||
texinfo \
|
||||
dh-autoreconf \
|
||||
python3-pip \
|
||||
doxygen \
|
||||
devscripts \
|
||||
git-buildpackage \
|
||||
perl-modules \
|
||||
libswitch-perl \
|
||||
dh-systemd \
|
||||
# For quagga build
|
||||
libreadline-dev \
|
||||
texlive-latex-base \
|
||||
texlive-generic-recommended \
|
||||
texlive-fonts-recommended \
|
||||
libpam0g-dev \
|
||||
libpam-dev \
|
||||
libcap-dev \
|
||||
imagemagick \
|
||||
ghostscript \
|
||||
groff \
|
||||
libpcre3-dev \
|
||||
gawk \
|
||||
chrpath \
|
||||
# For frr build
|
||||
libc-ares-dev \
|
||||
libsnmp-dev \
|
||||
libjson-c3 \
|
||||
libjson-c-dev \
|
||||
libsystemd-dev \
|
||||
python-ipaddr \
|
||||
libcmocka-dev \
|
||||
python3-all-dev \
|
||||
python3-all-dbg \
|
||||
install-info \
|
||||
logrotate \
|
||||
# For libnl3 (local) build
|
||||
cdbs \
|
||||
# For SAI meta build
|
||||
libxml-simple-perl \
|
||||
graphviz \
|
||||
aspell \
|
||||
# For linux build
|
||||
bc \
|
||||
fakeroot \
|
||||
build-essential \
|
||||
devscripts \
|
||||
quilt \
|
||||
stgit \
|
||||
# For platform-modules build
|
||||
module-assistant \
|
||||
# For thrift build\
|
||||
gem2deb \
|
||||
libboost-all-dev \
|
||||
libevent-dev \
|
||||
libglib2.0-dev \
|
||||
libqt4-dev \
|
||||
python-all-dev \
|
||||
python-twisted \
|
||||
phpunit \
|
||||
libbit-vector-perl \
|
||||
openjdk-8-jdk \
|
||||
javahelper \
|
||||
maven-debian-helper \
|
||||
ant \
|
||||
libmaven-ant-tasks-java \
|
||||
libhttpclient-java \
|
||||
libslf4j-java \
|
||||
libservlet3.1-java \
|
||||
qt5-default \
|
||||
pkg-php-tools \
|
||||
# For mellanox sdk build
|
||||
libpcre3 \
|
||||
libpcre3-dev \
|
||||
byacc \
|
||||
flex \
|
||||
libglib2.0-dev \
|
||||
bison \
|
||||
expat \
|
||||
libexpat1-dev \
|
||||
dpatch \
|
||||
libdb-dev \
|
||||
iptables-dev \
|
||||
ctags \
|
||||
# For mellanox sai build
|
||||
libtool-bin \
|
||||
libxml2-dev \
|
||||
# For BFN sdk build
|
||||
libusb-1.0-0-dev \
|
||||
libcurl3-nss-dev \
|
||||
libunwind8-dev \
|
||||
telnet \
|
||||
libc-ares2 \
|
||||
libgoogle-perftools4 \
|
||||
# For build image
|
||||
cpio \
|
||||
squashfs-tools \
|
||||
zip \
|
||||
# For broadcom sdk build
|
||||
{% if CONFIGURED_ARCH == "amd64" %}
|
||||
linux-compiler-gcc-6-x86 \
|
||||
{% endif %}
|
||||
linux-kbuild-4.9 \
|
||||
# teamd build
|
||||
libdaemon-dev \
|
||||
libdbus-1-dev \
|
||||
libjansson-dev \
|
||||
# For cavium sdk build
|
||||
libpcap-dev \
|
||||
dnsutils \
|
||||
libusb-dev \
|
||||
# For debian image reconfiguration
|
||||
augeas-tools \
|
||||
# For p4 build
|
||||
libyaml-dev \
|
||||
libevent-dev \
|
||||
libjudy-dev \
|
||||
libedit-dev \
|
||||
libnanomsg-dev \
|
||||
python-stdeb \
|
||||
# For redis build
|
||||
libjemalloc-dev \
|
||||
# For mft kernel module build
|
||||
dkms \
|
||||
# For python3.5 build
|
||||
sharutils \
|
||||
libncursesw5-dev \
|
||||
libbz2-dev \
|
||||
liblzma-dev \
|
||||
libgdbm-dev \
|
||||
tk-dev \
|
||||
blt-dev \
|
||||
libmpdec-dev \
|
||||
libbluetooth-dev \
|
||||
locales \
|
||||
libsqlite3-dev \
|
||||
libgpm2 \
|
||||
time \
|
||||
net-tools \
|
||||
xvfb \
|
||||
python-sphinx \
|
||||
python3-sphinx \
|
||||
# For Jenkins static analysis, unit testing and code coverage
|
||||
cppcheck \
|
||||
clang \
|
||||
pylint \
|
||||
python-pytest \
|
||||
gcovr \
|
||||
python-pytest-cov \
|
||||
python-parse \
|
||||
# For snmpd
|
||||
default-libmysqlclient-dev \
|
||||
libssl1.0-dev \
|
||||
libperl-dev \
|
||||
libpci-dev \
|
||||
libpci3 \
|
||||
libsensors4 \
|
||||
libsensors4-dev \
|
||||
libwrap0-dev \
|
||||
# For lldpd
|
||||
debhelper \
|
||||
autotools-dev \
|
||||
libbsd-dev \
|
||||
pkg-config \
|
||||
check \
|
||||
# For mpdecimal
|
||||
docutils-common \
|
||||
libjs-sphinxdoc \
|
||||
libjs-underscore \
|
||||
python-docutils \
|
||||
python-jinja2 \
|
||||
python-markupsafe \
|
||||
python-pygments \
|
||||
python-roman \
|
||||
python-sphinx \
|
||||
sphinx-common \
|
||||
python3-sphinx \
|
||||
# For sonic config engine testing
|
||||
python-lxml \
|
||||
python-jinja2 \
|
||||
python-netaddr \
|
||||
python-ipaddr \
|
||||
python-yaml \
|
||||
python3-yaml \
|
||||
# For lockfile
|
||||
procmail \
|
||||
# For gtest
|
||||
libgtest-dev \
|
||||
cmake \
|
||||
# For pam_tacplus build
|
||||
autoconf-archive \
|
||||
# For python-click build
|
||||
python-sphinx \
|
||||
python-docutils \
|
||||
python3-all \
|
||||
python3-setuptools \
|
||||
python3-sphinx \
|
||||
python3-docutils \
|
||||
python3-requests \
|
||||
python3-pytest \
|
||||
python3-colorama \
|
||||
# For initramfs
|
||||
bash-completion \
|
||||
{% if CONFIGURED_ARCH == "amd64" %}
|
||||
# For sonic vs image build
|
||||
dosfstools \
|
||||
qemu-kvm \
|
||||
libvirt-clients \
|
||||
{% endif %}
|
||||
# For lm-sensors
|
||||
librrd8 \
|
||||
librrd-dev \
|
||||
rrdtool \
|
||||
# For smartmontools 6.6-1
|
||||
automake1.11 \
|
||||
libselinux1-dev
|
||||
|
||||
# For smartmontools 6.6-1
|
||||
RUN apt-get -t stretch-backports install -y debhelper
|
||||
|
||||
# For linux build
|
||||
RUN apt-get -y build-dep linux
|
||||
|
||||
# For gobgp and telemetry build
|
||||
RUN export VERSION=1.11.5 \
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
&& wget https://storage.googleapis.com/golang/go$VERSION.linux-armv6l.tar.gz \
|
||||
&& tar -C /usr/local -xzf go$VERSION.linux-armv6l.tar.gz \
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
&& wget https://storage.googleapis.com/golang/go$VERSION.linux-arm64.tar.gz \
|
||||
&& tar -C /usr/local -xzf go$VERSION.linux-arm64.tar.gz \
|
||||
{% else %}
|
||||
&& wget https://storage.googleapis.com/golang/go$VERSION.linux-amd64.tar.gz \
|
||||
&& tar -C /usr/local -xzf go$VERSION.linux-amd64.tar.gz \
|
||||
{% endif %}
|
||||
&& echo 'export GOROOT=/usr/local/go' >> /etc/bash.bashrc \
|
||||
&& echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/bash.bashrc
|
||||
|
||||
# For p4 build
|
||||
RUN pip install \
|
||||
ctypesgen \
|
||||
crc16
|
||||
|
||||
# For sonic config engine testing
|
||||
RUN pip install pyangbind==0.6.0
|
||||
# Note: force upgrade debian packaged jinja2, if installed
|
||||
RUN pip install --force-reinstall --upgrade jinja2>=2.10
|
||||
|
||||
# For templating
|
||||
RUN pip install j2cli
|
||||
|
||||
# Remove python-click 6.6
|
||||
RUN apt-get purge -y python-click
|
||||
# For sonic utilities testing
|
||||
RUN pip install click-default-group click natsort tabulate netifaces==0.10.7 fastentrypoints
|
||||
|
||||
# For sonic snmpagent mock testing
|
||||
RUN pip3 install mockredispy==2.9.3
|
||||
|
||||
RUN pip3 install PyYAML>=5.1
|
||||
|
||||
# For sonic-platform-common testing
|
||||
RUN pip3 install redis
|
||||
|
||||
# For supervisor build
|
||||
RUN pip install meld3 mock
|
||||
|
||||
# For vs image build
|
||||
RUN pip install pexpect==4.6.0
|
||||
|
||||
# For sonic-utilities build
|
||||
RUN pip install mockredispy==2.9.3
|
||||
RUN pip install pytest-runner==4.4
|
||||
RUN pip install setuptools==40.8.0
|
||||
|
||||
# Install dependencies for isc-dhcp-relay build
|
||||
RUN apt-get -y build-dep isc-dhcp
|
||||
|
||||
# Install vim
|
||||
RUN apt-get install -y vim
|
||||
|
||||
# Install rsyslog
|
||||
RUN apt-get install -y rsyslog
|
||||
|
||||
RUN cd /usr/src/gtest && cmake . && make -C /usr/src/gtest
|
||||
|
||||
RUN mkdir /var/run/sshd
|
||||
EXPOSE 22
|
||||
|
||||
# Install depot-tools (for git-retry)
|
||||
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git /usr/share/depot_tools
|
||||
ENV PATH /usr/share/depot_tools:$PATH
|
||||
|
||||
# Install docker engine 17.03.2~ce-0 inside docker and enable experimental feature
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg2 \
|
||||
software-properties-common
|
||||
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
|
||||
RUN add-apt-repository \
|
||||
"deb [arch={{ CONFIGURED_ARCH }}] https://download.docker.com/linux/debian \
|
||||
$(lsb_release -cs) \
|
||||
stable"
|
||||
RUN apt-get update
|
||||
{% if CONFIGURED_ARCH == "amd64" %}
|
||||
RUN apt-get install -y docker-ce=17.03.2~ce-0~debian-stretch
|
||||
{% else %}
|
||||
RUN apt-get install -y docker-ce=18.06.3~ce~3-0~debian
|
||||
{% endif %}
|
||||
RUN echo "DOCKER_OPTS=\"--experimental --storage-driver=vfs\"" >> /etc/default/docker
|
|
@ -0,0 +1,359 @@
|
|||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
FROM multiarch/debian-debootstrap:armhf-jessie
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
FROM multiarch/debian-debootstrap:arm64-jessie
|
||||
{% else %}
|
||||
FROM debian:jessie
|
||||
{% endif %}
|
||||
|
||||
MAINTAINER johnar@microsoft.com
|
||||
|
||||
## Remove retired jessie-updates repo
|
||||
RUN sed -i '/http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
|
||||
|
||||
RUN echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free" >> /etc/apt/sources.list
|
||||
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
RUN echo "deb [arch=armhf] http://deb.debian.org/debian jessie main contrib non-free" > /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=armhf] http://deb.debian.org/debian jessie main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=armhf] http://security.debian.org jessie/updates main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=armhf] http://security.debian.org jessie/updates main contrib non-free" >> /etc/apt/sources.list
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
RUN echo "deb [arch=arm64] http://archive.debian.org/debian jessie main contrib non-free" > /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=arm64] http://archive.debian.org/debian jessie main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb-src [arch=arm64] http://archive.debian.org/debian jessie-backports main contrib non-free" >> /etc/apt/sources.list && \
|
||||
echo "deb [arch=arm64] http://archive.debian.org/debian jessie-backports main contrib non-free" >> /etc/apt/sources.list
|
||||
{% endif %}
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
apt-utils \
|
||||
default-jre-headless \
|
||||
openssh-server \
|
||||
curl \
|
||||
wget \
|
||||
unzip \
|
||||
git \
|
||||
build-essential \
|
||||
libtool \
|
||||
lintian \
|
||||
sudo \
|
||||
dh-make \
|
||||
dh-exec \
|
||||
kmod \
|
||||
libtinyxml2-2 \
|
||||
libboost-program-options1.55-dev \
|
||||
libtinyxml2-dev \
|
||||
python \
|
||||
python-pip \
|
||||
libncurses5-dev \
|
||||
texinfo \
|
||||
dh-autoreconf \
|
||||
python3-pip \
|
||||
doxygen \
|
||||
devscripts \
|
||||
git-buildpackage \
|
||||
perl-modules \
|
||||
libswitch-perl \
|
||||
dh-systemd \
|
||||
# For quagga build
|
||||
libreadline-dev \
|
||||
texlive-latex-base \
|
||||
texlive-generic-recommended \
|
||||
texlive-fonts-recommended \
|
||||
libpam0g-dev \
|
||||
libpam-dev \
|
||||
libcap-dev \
|
||||
imagemagick \
|
||||
ghostscript \
|
||||
groff \
|
||||
libpcre3-dev \
|
||||
gawk \
|
||||
chrpath \
|
||||
# For frr build
|
||||
libc-ares-dev \
|
||||
hardening-wrapper \
|
||||
libsnmp-dev \
|
||||
libjson0 \
|
||||
libjson0-dev \
|
||||
libsystemd-dev \
|
||||
python-ipaddr \
|
||||
install-info \
|
||||
# For libnl3 (local) build
|
||||
cdbs \
|
||||
# For SAI meta build
|
||||
libxml-simple-perl \
|
||||
graphviz \
|
||||
aspell \
|
||||
# For linux build
|
||||
bc \
|
||||
fakeroot \
|
||||
build-essential \
|
||||
devscripts \
|
||||
quilt \
|
||||
stgit \
|
||||
# For platform-modules build
|
||||
module-assistant \
|
||||
# For thrift build\
|
||||
gem2deb \
|
||||
libboost-all-dev \
|
||||
libevent-dev \
|
||||
libglib2.0-dev \
|
||||
libqt4-dev \
|
||||
python-all-dev \
|
||||
python-twisted \
|
||||
php5-dev \
|
||||
phpunit \
|
||||
libbit-vector-perl \
|
||||
openjdk-7-jdk \
|
||||
javahelper \
|
||||
maven-debian-helper \
|
||||
ant \
|
||||
libmaven-ant-tasks-java \
|
||||
libhttpclient-java \
|
||||
libslf4j-java \
|
||||
libservlet3.1-java \
|
||||
qt5-default \
|
||||
pkg-php-tools \
|
||||
# For mellanox sdk build
|
||||
libpcre3 \
|
||||
libpcre3-dev \
|
||||
byacc \
|
||||
flex \
|
||||
libglib2.0-dev \
|
||||
bison \
|
||||
expat \
|
||||
libexpat1-dev \
|
||||
dpatch \
|
||||
libdb-dev \
|
||||
iptables-dev \
|
||||
swig \
|
||||
ctags \
|
||||
# For mellanox sai build
|
||||
libtool-bin \
|
||||
libxml2-dev \
|
||||
# For BFN sdk build
|
||||
libusb-1.0-0-dev \
|
||||
libcurl3-nss-dev \
|
||||
libunwind8-dev \
|
||||
telnet \
|
||||
libc-ares2 \
|
||||
libgoogle-perftools4 \
|
||||
# For build image
|
||||
cpio \
|
||||
squashfs-tools \
|
||||
zip \
|
||||
{% if CONFIGURED_ARCH == "amd64" %}
|
||||
# For broadcom sdk build
|
||||
linux-compiler-gcc-4.8-x86 \
|
||||
{% endif %}
|
||||
linux-kbuild-3.16 \
|
||||
# teamd build
|
||||
libdaemon-dev \
|
||||
libdbus-1-dev \
|
||||
libjansson-dev \
|
||||
# For cavium sdk build
|
||||
libpcap-dev \
|
||||
dnsutils \
|
||||
libusb-dev \
|
||||
# For debian image reconfiguration
|
||||
augeas-tools \
|
||||
# For p4 build
|
||||
libyaml-dev \
|
||||
libevent-dev \
|
||||
libjudy-dev \
|
||||
libedit-dev \
|
||||
libnanomsg-dev \
|
||||
python-stdeb \
|
||||
# For redis build
|
||||
libjemalloc-dev \
|
||||
# For mft kernel module build
|
||||
dkms \
|
||||
# For python3.5 build
|
||||
sharutils \
|
||||
libncursesw5-dev \
|
||||
libbz2-dev \
|
||||
liblzma-dev \
|
||||
libgdbm-dev \
|
||||
tk-dev \
|
||||
blt-dev \
|
||||
libmpdec-dev \
|
||||
libbluetooth-dev \
|
||||
locales \
|
||||
libsqlite3-dev \
|
||||
libgpm2 \
|
||||
time \
|
||||
net-tools \
|
||||
xvfb \
|
||||
python-sphinx \
|
||||
python3-sphinx \
|
||||
# For Jenkins static analysis, unit testing and code coverage
|
||||
cppcheck \
|
||||
clang \
|
||||
pylint \
|
||||
gcovr \
|
||||
python-pytest=2.6.3* \
|
||||
python3-pytest=2.6.3* \
|
||||
python-pytest-cov \
|
||||
python3-pytest-cov \
|
||||
python-parse \
|
||||
# For snmpd
|
||||
libmysqlclient-dev \
|
||||
libmysqld-dev \
|
||||
libperl-dev \
|
||||
libpci-dev \
|
||||
libpci3 \
|
||||
libsensors4 \
|
||||
libsensors4-dev \
|
||||
libwrap0-dev \
|
||||
# For mpdecimal
|
||||
docutils-common \
|
||||
libjs-sphinxdoc \
|
||||
libjs-underscore \
|
||||
python-docutils \
|
||||
python-markupsafe \
|
||||
python-pygments \
|
||||
python-roman \
|
||||
sphinx-common \
|
||||
# For sonic config engine testing
|
||||
python-lxml \
|
||||
python-netaddr \
|
||||
python-ipaddr \
|
||||
python-yaml \
|
||||
# For lockfile
|
||||
procmail \
|
||||
# For gtest
|
||||
libgtest-dev \
|
||||
cmake \
|
||||
# For pam_tacplus build
|
||||
autoconf-archive \
|
||||
# For python-based swsscommon
|
||||
swig3.0 \
|
||||
# For iproute2
|
||||
cm-super-minimal \
|
||||
libatm1-dev \
|
||||
libelf-dev \
|
||||
libmnl-dev \
|
||||
libselinux1-dev \
|
||||
linuxdoc-tools \
|
||||
lynx \
|
||||
texlive-latex-extra \
|
||||
texlive-latex-recommended \
|
||||
# For python-click build
|
||||
python-sphinx \
|
||||
python-docutils \
|
||||
python3-all \
|
||||
python3-setuptools \
|
||||
python3-sphinx \
|
||||
python3-docutils \
|
||||
python3-requests \
|
||||
python3-pytest \
|
||||
python3-colorama \
|
||||
# For bash
|
||||
texi2html \
|
||||
# For initramfs
|
||||
bash-completion \
|
||||
{% if CONFIGURED_ARCH == "amd64" %}
|
||||
# For sonic vs image build
|
||||
dosfstools \
|
||||
qemu-kvm \
|
||||
libvirt-bin
|
||||
{% else %}
|
||||
bash-completion
|
||||
{% endif %}
|
||||
|
||||
# For jenkins slave
|
||||
# RUN apt-get -y install ca-certificates-java=20161107~bpo8+1 openjdk-8-jdk
|
||||
|
||||
# For linux build
|
||||
RUN apt-get -y build-dep linux
|
||||
|
||||
# For gobgp and telemetry build
|
||||
RUN export VERSION=1.11.5 \
|
||||
{% if CONFIGURED_ARCH == "armhf" %}
|
||||
&& wget https://storage.googleapis.com/golang/go$VERSION.linux-armv6l.tar.gz \
|
||||
&& tar -C /usr/local -xzf go$VERSION.linux-armv6l.tar.gz \
|
||||
{% elif CONFIGURED_ARCH == "arm64" %}
|
||||
&& wget https://storage.googleapis.com/golang/go$VERSION.linux-arm64.tar.gz \
|
||||
&& tar -C /usr/local -xzf go$VERSION.linux-arm64.tar.gz \
|
||||
{% else %}
|
||||
&& wget https://storage.googleapis.com/golang/go$VERSION.linux-amd64.tar.gz \
|
||||
&& tar -C /usr/local -xzf go$VERSION.linux-amd64.tar.gz \
|
||||
{% endif %}
|
||||
&& echo 'export GOROOT=/usr/local/go' >> /etc/bash.bashrc \
|
||||
&& echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/bash.bashrc
|
||||
|
||||
# Upgrade pip2
|
||||
# Note: use pip2 specific version so jinja2 2.10 will install
|
||||
RUN python2 -m pip install -U pip==9.0.3
|
||||
|
||||
# For p4 build
|
||||
RUN pip install \
|
||||
ctypesgen \
|
||||
crc16
|
||||
|
||||
# For sonic config engine testing
|
||||
RUN pip install pyangbind==0.6.0
|
||||
# Note: force upgrade debian packaged jinja2, if installed
|
||||
RUN pip install --force-reinstall --upgrade jinja2>=2.10
|
||||
|
||||
# For templating (requiring jinja2)
|
||||
RUN pip install j2cli
|
||||
|
||||
# For sonic utilities testing
|
||||
RUN pip install click-default-group click natsort tabulate netifaces==0.10.7 fastentrypoints
|
||||
|
||||
# For supervisor build
|
||||
RUN pip install meld3 mock
|
||||
|
||||
# For vs image build
|
||||
RUN pip install pexpect==4.6.0
|
||||
|
||||
# For sonic-utilities build
|
||||
RUN pip install mockredispy==2.9.3
|
||||
RUN pip install pytest-runner==4.4
|
||||
RUN pip install setuptools==40.8.0
|
||||
|
||||
# Install dependencies for isc-dhcp-relay build
|
||||
RUN apt-get -y build-dep isc-dhcp
|
||||
|
||||
# Install vim
|
||||
RUN apt-get install -y vim
|
||||
|
||||
# Install rsyslog
|
||||
RUN apt-get install -y rsyslog
|
||||
|
||||
RUN cd /usr/src/gtest && cmake . && make -C /usr/src/gtest
|
||||
|
||||
RUN mkdir /var/run/sshd
|
||||
EXPOSE 22
|
||||
|
||||
# Install depot-tools (for git-retry)
|
||||
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git /usr/share/depot_tools
|
||||
ENV PATH /usr/share/depot_tools:$PATH
|
||||
|
||||
# Install docker engine 17.03.2~ce-0 inside docker and enable experimental feature
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg2 \
|
||||
software-properties-common
|
||||
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
|
||||
RUN add-apt-repository \
|
||||
"deb [arch={{ CONFIGURED_ARCH }}] https://download.docker.com/linux/debian \
|
||||
$(lsb_release -cs) \
|
||||
stable"
|
||||
RUN apt-get update
|
||||
{% if CONFIGURED_ARCH == "amd64" %}
|
||||
RUN apt-get install -y docker-ce=17.03.2~ce-0~debian-jessie
|
||||
{% else %}
|
||||
RUN apt-get install -y docker-ce=18.06.3~ce~3-0~debian
|
||||
{% endif %}
|
||||
RUN echo "DOCKER_OPTS=\"--experimental --storage-driver=vfs\"" >> /etc/default/docker
|
|
@ -2,7 +2,7 @@ SHELL = /bin/bash
|
|||
.ONESHELL:
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MAIN_TARGET = bash_$(BASH_VERSION_FULL)_amd64.deb
|
||||
MAIN_TARGET = bash_$(BASH_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
rm -rf bash-$(BASH_VERSION_MAJOR)
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MAIN_TARGET = libhiredis0.14_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||
DERIVED_TARGETS = libhiredis0.14-dbgsym_$(HIREDIS_VERSION_FULL)_amd64.deb libhiredis-dev_$(HIREDIS_VERSION_FULL)_amd64.deb
|
||||
MAIN_TARGET = libhiredis0.14_$(HIREDIS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
DERIVED_TARGETS = libhiredis0.14-dbgsym_$(HIREDIS_VERSION_FULL)_$(CONFIGURED_ARCH).deb libhiredis-dev_$(HIREDIS_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
rm -rf hiredis-$(HIREDIS_VERSION)
|
||||
|
|
|
@ -5,7 +5,7 @@ SHELL = /bin/bash
|
|||
IPROUTE2_VERSION = 4.9.0
|
||||
IPROUTE2_VERSION_FULL = $(IPROUTE2_VERSION)-1
|
||||
|
||||
MAIN_TARGET = iproute2_$(IPROUTE2_VERSION_FULL)_amd64.deb
|
||||
MAIN_TARGET = iproute2_$(IPROUTE2_VERSION_FULL)_$(CONFIGURED_ARCH).deb
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
# Remove any stale files
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MAIN_TARGET = isc-dhcp-relay_$(ISC_DHCP_VERSION)_amd64.deb
|
||||
DERIVED_TARGETS = isc-dhcp-relay-dbgsym_$(ISC_DHCP_VERSION)_amd64.deb
|
||||
MAIN_TARGET = isc-dhcp-relay_$(ISC_DHCP_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
DERIVED_TARGETS = isc-dhcp-relay-dbgsym_$(ISC_DHCP_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
# Remove any stale files
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/common/discover.c b/common/discover.c
|
||||
index 3cd64a7..c85d18c 100644
|
||||
--- a/common/discover.c
|
||||
+++ b/common/discover.c
|
||||
@@ -547,7 +547,7 @@ next_iface4(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
|
||||
log_error("Interface name '%s' too long", name);
|
||||
return 0;
|
||||
}
|
||||
- strncpy(info->name, name, sizeof(info->name) - 1);
|
||||
+ strncpy(info->name, name, sizeof(info->name));
|
||||
|
||||
#ifdef ALIAS_NAMED_PERMUTED
|
||||
/* interface aliases look like "eth0:1" or "wlan1:3" */
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче