Build environment and scripts for OpenSwitch.
If you would like to download binaries instead, see Install OPX on Dell EMC ON Series platforms.
# get source code
repo init -u https://github.com/open-switch/opx-manifest && repo sync
# build all open-source packages
opx-build/scripts/opx_run opx_build all
# assemble installer
opx-build/scripts/opx_run opx_rel_pkgasm.py --dist unstable \
-b opx-onie-installer/release_bp/OPX_dell_base_<ARCH>.xml
Ex:
opx-build/scripts/opx_run opx_rel_pkgasm.py --dist unstable \
-b opx-onie-installer/release_bp/OPX_dell_base_stretch.xmlrepo init -u https://github.com/open-switch/opx-manifest && repo syncThe repo commands download all of the source files that are necessary to
build OpenSwitch. Binary libraries for the SAI are also required.
These binary libraries are currently not open source, as they are based on
the Broadcom SDK.
Build dependencies are pulled from the unstable distribution. To
change this, use $OPX_RELEASE.
# Build all repositories
opx-build/scripts/opx_run opx_build all
# Build a single repository
opx-build/scripts/opx_run opx_build opx-logging
# Build against the 2.2.1 release
OPX_RELEASE=2.2.1 opx-build/scripts/opx_run opx_build allNote: Ensure the Docker image is up to date by running docker pull opxhub/build.
It can be helpful to build a single repository with finer control.
It is always possible to enter the container via opx_run and manually install
dependencies using apt, dpkg, pip, and so on. Then build as per usual.
fakeroot debian/rules binaryThis allows you to see all files created during the build that
would normally be cleaned up after an opx_build build terminates.
It is possible to build unstripped executables by adding the following line to
the end of the file debian/rules:
override_dh_strip:
Our image is based on Debian Stretch. Building packages for Jessie using opx_build will continue to work with DIST=jessie. To run a container based on Jessie, add VERSION=jessie to the environment.
VERSION=jessie DIST=jessie opx-build/scripts/opx_runCreating an installer requires the
opx-onie-installer
repository. This repository is included if you cloned with repo and contains
the blueprints used to assemble an installer.
Any local packages you have built will be included in the installer. To exclude
them, remove the deb files from the repo root.
The unstable distribution is used to grab missing packages on
installer creation and fetch updates when running. To use a different
distribution, use the --dist flag.
Run opx-build/scripts/opx_run opx_rel_pkgasm.py --help to see the available
distributions.
opx-build/scripts/opx_run opx_rel_pkgasm.py --dist stable \
-b opx-onie-installer/release_bp/OPX_dell_base_stretch.xmlTo build a Debian Jessie-based installer change stretch to jessie.
opx-build/scripts/opx_run opx_rel_pkgasm.py --dist stable \
-b opx-onie-installer/release_bp/OPX_dell_base_jessie.xml./docker_build.shThe default Docker image builds against the unstable OPX distribution. When other distributions are requested, pbuilder chroots are created on the fly. These chroots are lost when the container is removed, but only take 7.5sec to create.
Since git-buildpackage with cowbuilder is used to build our packages, a
pbuilder chroot is created in the image. Due to an issue with
docker/kernel/overlayfs/pbuilder, the pbuilder chroot is created by running a
privileged base container and committing it. To keep the image size small, only
one chroot is created. This chroot contains sources from the unstable OPX
release. To support building against multiple OPX releases, this chroot is
copied and modified as needed with new package sources at runtime (when the
OPX_RELEASE variable is used). When publishing our image, we use a tag with
the format ${sha}-${dist}, where ${sha} is the HEAD of this repository and
${dist} is the Debian distribution of the pbuilder chroot. The latest tag
always point to the most recently published image.
These environment variables enable different options.
OPX_GIT_TAG=yes: after each build, tag the repository for publishingOPX_RELEASE=2.2.1: change which OPX release to build against
© 2018 Dell Inc. or its subsidiaries. All Rights Reserved.