diff options
Diffstat (limited to 'docs/contributing/build-vyos.rst')
-rw-r--r-- | docs/contributing/build-vyos.rst | 114 |
1 files changed, 67 insertions, 47 deletions
diff --git a/docs/contributing/build-vyos.rst b/docs/contributing/build-vyos.rst index 7b3a154d..83b4c84d 100644 --- a/docs/contributing/build-vyos.rst +++ b/docs/contributing/build-vyos.rst @@ -23,7 +23,7 @@ also set up your own build machine and run a :ref:`build_native`. The source code remains public and an ISO can be built using the process outlined in this chapter. -This will guide you though the process of building a VyOS ISO using Docker_. +This will guide you through the process of building a VyOS ISO using Docker_. This process has been tested on clean installs of Debian Jessie, Stretch, and Buster. @@ -59,11 +59,11 @@ yourusername``. Build Container --------------- -The container can built by hand or by fetching the pre-built one from DockerHub. -Using the pre-built containers from the `VyOS DockerHub organisation`_ will -ensure that the container is always up-to-date. A rebuild is triggered once the -container changes (please note this will take 2-3 hours after pushing to the -vyos-build repository). +The container can be built by hand or by fetching the pre-built one from +DockerHub. Using the pre-built containers from the `VyOS DockerHub +organisation`_ will ensure that the container is always up-to-date. A rebuild +is triggered once the container changes (please note this will take 2-3 hours +after pushing to the vyos-build repository). .. note: If you are using the pre-built container, it will be automatically downloaded from DockerHub if it is not found on your local machine when @@ -88,9 +88,11 @@ The container can also be built directly from source: # For VyOS 1.2 (crux) $ git clone -b crux --single-branch https://github.com/vyos/vyos-build - # For VyOS 1.3 (equuleus, current) + # For VyOS 1.3 (equuleus) + $ git clone -b equuleus --single-branch https://github.com/vyos/vyos-build + # For VyOS 1.4 (sagitta, current) $ git clone -b current --single-branch https://github.com/vyos/vyos-build - + $ cd vyos-build $ docker build -t vyos/vyos-build:crux docker # For VyOS 1.2 $ docker build -t vyos/vyos-build:current docker # For rolling release @@ -131,10 +133,11 @@ your development containers in your current working directory. .. note:: Some VyOS packages (namely vyos-1x) come with build-time tests which verify some of the internal library calls that they work as expected. Those - tests are carried out through the Python Unittest module. If you wan't to - build the ``vyos-1x`` package (which is our main development package) you need - to start your Docker container using the following argument: - ``--sysctl net.ipv6.conf.lo.disable_ipv6=0``, otherwise those tests will fail. + tests are carried out through the Python Unittest module. If you want to + build the ``vyos-1x`` package (which is our main development package) you + need to start your Docker container using the following argument: + ``--sysctl net.ipv6.conf.lo.disable_ipv6=0``, otherwise those tests will + fail. .. _build_native: @@ -145,7 +148,8 @@ To build VyOS natively you require a properly configured build host with the following Debian versions installed: - Debian Jessie for VyOS 1.2 (crux) -- Debian Buster for VyOS 1.3 (equuleus, current) - aka the rolling release +- Debian Buster for VyOS 1.3 (equuleus) +- Debian Bullseye for VyOS 1.4 (sagitta, current) - aka the rolling release To start, clone the repository to your local machine: @@ -154,11 +158,15 @@ To start, clone the repository to your local machine: # For VyOS 1.2 (crux) $ git clone -b crux --single-branch https://github.com/vyos/vyos-build - # For VyOS 1.3 (equuleus, current) + # For VyOS 1.3 (equuleus) + $ git clone -b equuleus --single-branch https://github.com/vyos/vyos-build + + # For VyOS 1.4 (sagitta, current) $ git clone -b current --single-branch https://github.com/vyos/vyos-build + For the packages required, you can refer to the ``docker/Dockerfile`` file -in the repository_. The ``./configure`` script will also warn you if any +in the repository_. The ``./build-vyos-image`` script will also warn you if any dependencies are missing. Once you have the required dependencies installed, you may proceed with the @@ -180,7 +188,10 @@ Please note as this will differ for both `current` and `crux`. # For VyOS 1.2 (crux) $ git clone -b crux --single-branch https://github.com/vyos/vyos-build - # For VyOS 1.3 (equuleus, current) + # For VyOS 1.3 (equuleus) + $ git clone -b equuleus --single-branch https://github.com/vyos/vyos-build + + # For VyOS 1.4 (sagitta, current) $ git clone -b current --single-branch https://github.com/vyos/vyos-build Now a fresh build of the VyOS ISO can begin. Change directory to the @@ -192,9 +203,12 @@ Now a fresh build of the VyOS ISO can begin. Change directory to the # For VyOS 1.2 (crux) $ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:crux bash - # For VyOS 1.3 (equuleus, current) - $ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash + # For VyOS 1.3 (equuleus) + $ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:equuleus bash + # For VyOS 1.4 (sagitta, current) + $ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash + .. code-block:: none # For MacOS (crux, equuleus, sagitta) @@ -214,8 +228,8 @@ Start the build: .. code-block:: none - vyos_bld@d4220bb519a0:/vyos# ./configure --architecture amd64 --build-by "j.randomhacker@vyos.io" - vyos_bld@d4220bb519a0:/vyos# sudo make iso + vyos_bld@8153428c7e1f:/vyos$ sudo make clean + vyos_bld@8153428c7e1f:/vyos$ sudo ./build-vyos-image iso --architecture amd64 --build-by "j.randomhacker@vyos.io" When the build is successful, the resulting iso can be found inside the ``build`` directory as ``live-image-[architecture].hybrid.iso``. @@ -234,46 +248,52 @@ Customize ========= This ISO can be customized with the following list of configure options. -The full and current list can be generated with ``./configure --help``: +The full and current list can be generated with ``./build-vyos-image --help``: .. code-block:: none - $ ./configure --help - usage: configure [-h] [--architecture ARCHITECTURE] [--build-by BUILD_BY] - [--debian-mirror DEBIAN_MIRROR] - [--debian-security-mirror DEBIAN_SECURITY_MIRROR] - [--pbuilder-debian-mirror PBUILDER_DEBIAN_MIRROR] - [--vyos-mirror VYOS_MIRROR] [--build-type BUILD_TYPE] - [--version VERSION] [--build-comment BUILD_COMMENT] [--debug] - [--custom-apt-entry CUSTOM_APT_ENTRY] - [--custom-apt-key CUSTOM_APT_KEY] - [--custom-package CUSTOM_PACKAGE] + $ vyos_bld@8153428c7e1f:/vyos$ sudo ./build-vyos-image --help + I: Checking if packages required for VyOS image build are installed + usage: build-vyos-image [-h] [--architecture ARCHITECTURE] + [--build-by BUILD_BY] [--debian-mirror DEBIAN_MIRROR] + [--debian-security-mirror DEBIAN_SECURITY_MIRROR] + [--pbuilder-debian-mirror PBUILDER_DEBIAN_MIRROR] + [--vyos-mirror VYOS_MIRROR] [--build-type BUILD_TYPE] + [--version VERSION] [--build-comment BUILD_COMMENT] [--debug] [--dry-run] + [--custom-apt-entry CUSTOM_APT_ENTRY] [--custom-apt-key CUSTOM_APT_KEY] + [--custom-package CUSTOM_PACKAGE] + [build_flavor] - optional arguments: + positional arguments: + build_flavor Build flavor + + optional arguments: -h, --help show this help message and exit --architecture ARCHITECTURE - Image target architecture (amd64 or i386 or armhf) + Image target architecture (amd64 or arm64) --build-by BUILD_BY Builder identifier (e.g. jrandomhacker@example.net) --debian-mirror DEBIAN_MIRROR - Debian repository mirror for ISO build + Debian repository mirror --debian-security-mirror DEBIAN_SECURITY_MIRROR - Debian security updates mirror + Debian security updates mirror --pbuilder-debian-mirror PBUILDER_DEBIAN_MIRROR - Debian repository mirror for pbuilder env bootstrap + Debian repository mirror for pbuilder env bootstrap --vyos-mirror VYOS_MIRROR - VyOS package mirror + VyOS package mirror --build-type BUILD_TYPE - Build type, release or development + Build type, release or development --version VERSION Version number (release builds only) --build-comment BUILD_COMMENT - Optional build comment + Optional build comment --debug Enable debug output + --dry-run Check build configuration and exit --custom-apt-entry CUSTOM_APT_ENTRY - Custom APT entry + Custom APT entry --custom-apt-key CUSTOM_APT_KEY - Custom APT key file + Custom APT key file --custom-package CUSTOM_PACKAGE - Custom package to install from repositories + Custom package to install from repositories + .. _iso_build_issues: @@ -304,8 +324,8 @@ more or less similar looking error message: (10:13) vyos_bld ece068908a5b:/vyos [current] # To debug the build process and gain additional information of what could be the -root cause wou need to `chroot` into the build directry. This is explained in -the following step by step procedure: +root cause, you need to use `chroot` to change into the build directry. This is +explained in the following step by step procedure: .. code-block:: none @@ -729,7 +749,7 @@ package from our GitHub organisation - this is the place to be. Any "modified" package may refer to an altered version of e.g. vyos-1x package that you would like to test before filing a pull request on GitHub. -Building an ISO with any customized package is in no way different then +Building an ISO with any customized package is in no way different than building a regular (customized or not) ISO image. Simply place your modified `*.deb` package inside the `packages` folder within `vyos-build`. The build process will then pickup your custom package and integrate it into your ISO. @@ -771,7 +791,7 @@ Virtualization Platforms QEMU ---- -Run following command after building the ISO image. +Run the following command after building the ISO image. .. code-block:: none @@ -780,7 +800,7 @@ Run following command after building the ISO image. VMware ------ -Run following command after building the QEMU image. +Run the following command after building the QEMU image. .. code-block:: none |