From 23e35e77feca41b5ef0efee80832c7106d7862ab Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Tue, 1 Jan 2019 16:36:19 +0100 Subject: T1131: disable vmtoolsd polling for now to avoid high CPU load. In the future it may be made a CLI option. --- .../hooks/live/30-openvmtools-configs.chroot | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 data/live-build-config/hooks/live/30-openvmtools-configs.chroot diff --git a/data/live-build-config/hooks/live/30-openvmtools-configs.chroot b/data/live-build-config/hooks/live/30-openvmtools-configs.chroot new file mode 100755 index 00000000..545f40db --- /dev/null +++ b/data/live-build-config/hooks/live/30-openvmtools-configs.chroot @@ -0,0 +1,19 @@ +#!/usr/bin/env python + +# The Cisco Unity plugin, that implements a proprietary extension +# for IPsec split tunneling, interfers with DMVPN +# +# Since we do not do remote access IPsec, the simplest solution +# is to disable it entirely from the start. + +import re + +vmtools_config = """ +[guestinfo] + poll-interval=0 + +""" + +# Disable the 'cisco_unity' option in charon.conf +with open('/etc/vmware-tools/tools.conf', 'w') as f: + f.write(vmtools_config) -- cgit v1.2.3 From b66718a87b2599e34945000d2301959cce90152a Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Tue, 1 Jan 2019 23:34:27 +0100 Subject: Added support for compiiling vyos-accel-ppp --- Dockerfile | 8 +++++++- scripts/build-submodules | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b8ec8149..737fa5d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -113,9 +113,15 @@ RUN apt-get install -y \ libmnl-dev # Packages needed for kernel -RuN apt-get install -y \ +RUN apt-get install -y \ libelf-dev +# Packages needed for vyos-accel-ppp +RUN apt-get install -y \ + cdbs \ + cmake \ + liblua5.1-dev + # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ apt-get update &&\ diff --git a/scripts/build-submodules b/scripts/build-submodules index 1981759f..c89d4388 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -157,3 +157,36 @@ if [ -d "packages/vyos-wireguard/debian" ]; then else status_skip "No source for: vyos-wireguard" fi + + +# ACCEL-PPP +if [ -d "packages/vyos-accel-ppp/debian" ]; then + if [ -f "packages/vyos-kernel/Makefile" ]; then + status_start "Building package: vyos-accel-ppp" + if grep -q "KBUILD_OUTPUT" packages/vyos-kernel/Makefile; then + VERSION=$(grep "^VERSION" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + PATCHLEVEL=$(grep "^PATCHLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + ARCH=$(dpkg --print-architecture) + pushd packages/vyos-accel-ppp > /dev/null + #echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" > debian/wireguard-modules.install + echo "lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra/*.ko" > debian/vyos-accel-ppp-ipoe-kmod.install + sed -i "s#[0-9].[0-9][0-9].[0-9]-amd64-vyos#$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos#g" debian/rules + KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b >$PKGDIR/vyos-accel-ppp.buildlog 2>&1 + if [ $? -ne 0 ]; then + status_fail + error_msg "Failed to build package vyos-accel-ppp, look in vyos-accel-ppp.buildlog to examine the fault\n" + else + status_ok + fi + popd > /dev/null + else + status_fail + error_msg "Failed to build package vyos-accel-ppp, no kernel source found\n" + fi + else + seeor_msg "Something wrong with the kernel module?" + fi +else + status_skip "No source for: vyos-accel-ppp" +fi -- cgit v1.2.3 From 32ac33cd318e1d30e20f8cd10f396a88640753ee Mon Sep 17 00:00:00 2001 From: danhusan Date: Wed, 2 Jan 2019 13:56:03 +0100 Subject: T1120: Add rootdelay=5 by default in grub.cfg Let disks settle to workaround issue with MD array not being detected. --- .../includes.chroot/opt/vyatta/etc/grub/default-union-grub-entry | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/live-build-config/includes.chroot/opt/vyatta/etc/grub/default-union-grub-entry b/data/live-build-config/includes.chroot/opt/vyatta/etc/grub/default-union-grub-entry index 4107e459..ae34e4ee 100644 --- a/data/live-build-config/includes.chroot/opt/vyatta/etc/grub/default-union-grub-entry +++ b/data/live-build-config/includes.chroot/opt/vyatta/etc/grub/default-union-grub-entry @@ -1,20 +1,20 @@ menuentry "VyOS (KVM console)" { - linux /boot//vmlinuz boot=live quiet vyos-union=/boot/ console=ttyS0,9600 console=tty0 + linux /boot//vmlinuz boot=live quiet rootdelay=5 vyos-union=/boot/ console=ttyS0,9600 console=tty0 initrd /boot//initrd.img } menuentry "VyOS (Serial console)" { - linux /boot//vmlinuz boot=live quiet vyos-union=/boot/ console=tty0 console=ttyS0,9600 + linux /boot//vmlinuz boot=live quiet rootdelay=5 vyos-union=/boot/ console=tty0 console=ttyS0,9600 initrd /boot//initrd.img } menuentry "Lost password change (KVM console)" { - linux /boot//vmlinuz boot=live quiet vyos-union=/boot/ console=ttyS0,9600 console=tty0 init=/opt/vyatta/sbin/standalone_root_pw_reset + linux /boot//vmlinuz boot=live quiet rootdelay=5 vyos-union=/boot/ console=ttyS0,9600 console=tty0 init=/opt/vyatta/sbin/standalone_root_pw_reset initrd /boot//initrd.img } menuentry "Lost password change (Serial console)" { - linux /boot//vmlinuz boot=live quiet vyos-union=/boot/ console=tty0 console=ttyS0,9600 init=/opt/vyatta/sbin/standalone_root_pw_reset + linux /boot//vmlinuz boot=live quiet rootdelay=5 vyos-union=/boot/ console=tty0 console=ttyS0,9600 init=/opt/vyatta/sbin/standalone_root_pw_reset initrd /boot//initrd.img } -- cgit v1.2.3 From c611fb2926e8cc0cfc14cd93929924c1d3bcc3e4 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 4 Jan 2019 11:11:51 +0100 Subject: Added vyos-accel-ppp submodule --- .gitmodules | 3 +++ packages/vyos-accel-ppp | 1 + 2 files changed, 4 insertions(+) create mode 160000 packages/vyos-accel-ppp diff --git a/.gitmodules b/.gitmodules index a6c4072e..ba417b03 100644 --- a/.gitmodules +++ b/.gitmodules @@ -142,3 +142,6 @@ [submodule "packages/vyos-frr"] path = packages/vyos-frr url = https://github.com/vyos/vyos-frr.git +[submodule "packages/vyos-accel-ppp"] + path = packages/vyos-accel-ppp + url = https://github.com/vyos/vyos-accel-ppp.git diff --git a/packages/vyos-accel-ppp b/packages/vyos-accel-ppp new file mode 160000 index 00000000..df95d6b7 --- /dev/null +++ b/packages/vyos-accel-ppp @@ -0,0 +1 @@ +Subproject commit df95d6b78be568cbce40fe7b2632dfb9697d2076 -- cgit v1.2.3 From bfc8cfc8910e09b97734da7c796cf9339694987e Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 5 Jan 2019 19:49:18 +0100 Subject: Add branch information to submodules --- .gitmodules | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index ba417b03..dc756f60 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,147 +1,196 @@ [submodule "packages/vyatta-bash"] path = packages/vyatta-bash url = https://github.com/vyos/vyatta-bash.git + branch = current [submodule "packages/vyatta-cfg"] path = packages/vyatta-cfg url = https://github.com/vyos/vyatta-cfg.git + branch = current [submodule "packages/vyatta-op"] path = packages/vyatta-op url = https://github.com/vyos/vyatta-op.git + branch = current [submodule "packages/vyatta-cfg-system"] path = packages/vyatta-cfg-system url = https://github.com/vyos/vyatta-cfg-system.git + branch = current [submodule "packages/vyatta-cfg-firewall"] path = packages/vyatta-cfg-firewall url = https://github.com/vyos/vyatta-cfg-firewall.git + branch = current [submodule "packages/vyatta-op-firewall"] path = packages/vyatta-op-firewall url = https://github.com/vyos/vyatta-op-firewall.git + branch = current [submodule "packages/vyatta-cfg-vpn"] path = packages/vyatta-cfg-vpn url = https://github.com/vyos/vyatta-cfg-vpn.git + branch = current [submodule "packages/vyatta-op-vpn"] path = packages/vyatta-op-vpn url = https://github.com/vyos/vyatta-op-vpn.git + branch = current [submodule "packages/vyatta-cfg-qos"] path = packages/vyatta-cfg-qos url = https://github.com/vyos/vyatta-cfg-qos.git + branch = current [submodule "packages/vyatta-op-qos"] path = packages/vyatta-op-qos url = https://github.com/vyos/vyatta-op-qos.git + branch = current [submodule "packages/vyatta-cfg-op-pppoe"] path = packages/vyatta-cfg-op-pppoe url = https://github.com/vyos/vyatta-cfg-op-pppoe.git + branch = current [submodule "packages/vyatta-openvpn"] path = packages/vyatta-openvpn url = https://github.com/vyos/vyatta-openvpn.git + branch = current [submodule "packages/vyatta-conntrack"] path = packages/vyatta-conntrack url = https://github.com/vyos/vyatta-conntrack.git + branch = current [submodule "packages/vyatta-conntrack-sync"] path = packages/vyatta-conntrack-sync url = https://github.com/vyos/vyatta-conntrack-sync.git + branch = current [submodule "packages/vyatta-nat"] path = packages/vyatta-nat url = https://github.com/vyos/vyatta-nat.git + branch = current [submodule "packages/vyatta-config-mgmt"] path = packages/vyatta-config-mgmt url = https://github.com/vyos/vyatta-config-mgmt.git + branch = current [submodule "packages/vyatta-config-migrate"] path = packages/vyatta-config-migrate url = https://github.com/vyos/vyatta-config-migrate.git + branch = current [submodule "packages/vyatta-zone"] path = packages/vyatta-zone url = https://github.com/vyos/vyatta-zone.git + branch = current [submodule "packages/vyatta-cluster"] path = packages/vyatta-cluster url = https://github.com/vyos/vyatta-cluster.git + branch = current [submodule "packages/vyatta-vrrp"] path = packages/vyatta-vrrp url = https://github.com/vyos/vyatta-vrrp.git + branch = current [submodule "packages/vyatta-eventwatch"] path = packages/vyatta-eventwatch url = https://github.com/vyos/vyatta-eventwatch.git + branch = current [submodule "packages/vyatta-webproxy"] path = packages/vyatta-webproxy url = https://github.com/vyos/vyatta-webproxy.git + branch = current [submodule "packages/vyatta-webgui"] path = packages/vyatta-webgui url = https://github.com/vyos/vyatta-webgui.git + branch = current [submodule "packages/vyatta-cfg-quagga"] path = packages/vyatta-cfg-quagga url = https://github.com/vyos/vyatta-cfg-quagga.git + branch = current [submodule "packages/vyatta-op-quagga"] path = packages/vyatta-op-quagga url = https://github.com/vyos/vyatta-op-quagga.git + branch = current [submodule "packages/vyatta-op-dhcp-server"] path = packages/vyatta-op-dhcp-server url = https://github.com/vyos/vyatta-op-dhcp-server.git + branch = current [submodule "packages/vyatta-wireless"] path = packages/vyatta-wireless url = https://github.com/vyos/vyatta-wireless.git + branch = current [submodule "packages/vyatta-wirelessmodem"] path = packages/vyatta-wirelessmodem url = https://github.com/vyos/vyatta-wirelessmodem.git + branch = current [submodule "packages/vyatta-wanloadbalance"] path = packages/vyatta-wanloadbalance url = https://github.com/vyos/vyatta-wanloadbalance.git + branch = current [submodule "packages/vyatta-netflow"] path = packages/vyatta-netflow url = https://github.com/vyos/vyatta-netflow.git + branch = current [submodule "packages/vyatta-lldp"] path = packages/vyatta-lldp url = https://github.com/vyos/vyatta-lldp.git + branch = current [submodule "packages/vyatta-ipv6-rtradv"] path = packages/vyatta-ipv6-rtradv url = https://github.com/vyos/vyatta-ipv6-rtradv.git + branch = current [submodule "packages/vyatta-ravpn"] path = packages/vyatta-ravpn url = https://github.com/vyos/vyatta-ravpn.git + branch = current [submodule "packages/vyos-pppoe-server"] path = packages/vyos-pppoe-server url = https://github.com/vyos/vyos-pppoe-server.git + branch = current [submodule "packages/vyos-nhrp"] path = packages/vyos-nhrp url = https://github.com/vyos/vyos-nhrp.git + branch = current [submodule "packages/vyatta-util"] path = packages/vyatta-util url = https://github.com/vyos/vyatta-util.git + branch = current [submodule "packages/vyos-world"] path = packages/vyos-world url = https://github.com/vyos/vyos-world.git + branch = current [submodule "packages/vyos-kernel"] path = packages/vyos-kernel url = https://github.com/vyos/vyos-kernel.git + branch = linux-vyos-4.19.y [submodule "packages/vyos-1x"] path = packages/vyos-1x url = https://github.com/vyos/vyos-1x.git + branch = current [submodule "packages/mdns-repeater"] path = packages/mdns-repeater url = https://github.com/vyos/mdns-repeater.git + branch = current [submodule "packages/udp-broadcast-relay"] path = packages/udp-broadcast-relay url = https://github.com/vyos/udp-broadcast-relay.git + branch = current [submodule "packages/vyos-keepalived"] path = packages/vyos-keepalived url = https://github.com/vyos/vyos-keepalived.git + branch = current [submodule "packages/vyatta-iproute"] path = packages/vyatta-iproute url = https://github.com/vyos/vyatta-iproute.git + branch = iproute2-vyos-4.18.y [submodule "packages/vyatta-quagga"] path = packages/vyatta-quagga url = https://github.com/vyos/vyatta-quagga.git + branch = current [submodule "packages/vyos-wireguard"] path = packages/vyos-wireguard - url = https://github.com/vyos/vyos-wireguard + url = https://github.com/vyos/vyos-wireguard.git + branch = current [submodule "packages/pmacct"] path = packages/pmacct - url = https://github.com/vyos/pmacct + url = https://github.com/vyos/pmacct.git + branch = current [submodule "packages/vyos-strongswan"] path = packages/vyos-strongswan - url = https://github.com/vyos/vyos-strongswan + url = https://github.com/vyos/vyos-strongswan.git + branch = current [submodule "packages/vyos-frr"] path = packages/vyos-frr url = https://github.com/vyos/vyos-frr.git + branch = current [submodule "packages/vyos-accel-ppp"] path = packages/vyos-accel-ppp url = https://github.com/vyos/vyos-accel-ppp.git + branch = current -- cgit v1.2.3 From 53faf39ed15bc352e611d06a869c5b7380f84168 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 4 Jan 2019 10:26:02 +0100 Subject: CI/CD: Build VyOS submodules from source --- Jenkinsfile | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d46fdcbf..6db29fea 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,7 +21,7 @@ pipeline { dockerfile { filename 'Dockerfile' label 'jessie-amd64' - args '--privileged' + args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0' } } @@ -31,6 +31,126 @@ pipeline { sh './configure --build-by="autobuild@vyos.net" --debian-mirror="http://ftp.us.debian.org/debian/"' } } + stage('Init Submodules') { + environment { + // there values are exportesd to all commands in this stage + GIT_BRANCH_PACKAGE = "current" + GIT_BRANCH_KERNEL = "linux-vyos-4.19.y" + } + steps { + parallel ( + "mdns-repeater": { + sh ''' + git submodule update --init packages/mdns-repeater + cd packages/mdns-repeater + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "pmacct": { + sh ''' + git submodule update --init packages/pmacct + cd packages/pmacct + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "udp-broadcast-relay": { + sh ''' + git submodule update --init packages/udp-broadcast-relay + cd packages/udp-broadcast-relay + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyatta-bash": { + sh ''' + git submodule update --init packages/vyatta-bash + cd packages/vyatta-bash + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyatta-cfg": { + sh ''' + git submodule update --init packages/vyatta-cfg + cd packages/vyatta-cfg + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyatta-cfg-firewall": { + sh ''' + git submodule update --init packages/vyatta-cfg-firewall + cd packages/vyatta-cfg-firewall + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyatta-cfg-op-pppoe": { + sh ''' + git submodule update --init packages/vyatta-cfg-op-pppoe + cd packages/vyatta-cfg-op-pppoe + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyatta-cfg-qos": { + sh ''' + git submodule update --init packages/vyatta-cfg-qos + cd packages/vyatta-cfg-qos + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyatta-cfg-quagga": { + sh ''' + git submodule update --init packages/vyatta-cfg-quagga + cd packages/vyatta-cfg-quagga + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyatta-cfg-system": { + sh ''' + git submodule update --init packages/vyatta-cfg-system + cd packages/vyatta-cfg-system + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyatta-cfg-vpn": { + sh ''' + git submodule update --init packages/vyatta-cfg-vpn + cd packages/vyatta-cfg-vpn + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyos-kernel": { + sh ''' + git submodule update --init packages/vyos-kernel + cd packages/vyos-kernel + git checkout $GIT_BRANCH_KERNEL + ''' + }, + "vyos-wireguard": { + sh ''' + git submodule update --init packages/vyos-wireguard + cd packages/vyos-wireguard + git checkout $GIT_BRANCH_PACKAGE + ''' + }, + "vyos-accel-ppp": { + sh ''' + git submodule update --init packages/vyos-accel-ppp + cd packages/vyos-accel-ppp + git checkout $GIT_BRANCH_PACKAGE + ''' + } + ) + } + } + stage('Build Packages') { + steps { + sh 'scripts/build-submodules' + } + } + stage('Show Dir') { + steps { + sh 'ls -al' + sh 'ls -al packages' + } + } stage('Build ISO') { steps { sh 'sudo make iso' @@ -44,6 +164,7 @@ pipeline { // change build dir file permissions so wen can cleanup as regular // user (jenkins) afterwards sh 'sudo chmod -R 777 .' + echo 'No cleanup for now ....' deleteDir() /* cleanup our workspace */ } } -- cgit v1.2.3 From 081bf77f86881b9c2438902595193c2a311b02cd Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Sun, 6 Jan 2019 00:21:18 +0100 Subject: Added build-kernel script and almost total rewrite of build-submodules The build-kernel script was forgotten to commit, it is needed to build the kernel To make the build-submodules script more readable and extendible i've almost totally rewritten it using functions the build process is also started in its own subshell, so that we dont need to hold track of the current directory and make error handling/status info easier --- scripts/build-kernel | 36 +++++++ scripts/build-submodules | 243 +++++++++++++++++++++++++++++++---------------- 2 files changed, 195 insertions(+), 84 deletions(-) create mode 100755 scripts/build-kernel diff --git a/scripts/build-kernel b/scripts/build-kernel new file mode 100755 index 00000000..80229d5d --- /dev/null +++ b/scripts/build-kernel @@ -0,0 +1,36 @@ +#!/bin/bash +if [ ! -f "Makefile" ]; then + echo "Makefile missing, This script needs to be executed inside the vyos-kernel package directory" + exit 1 +fi + +if grep -Fxq "KBUILD_OUTPUT" Makefile; then + echo "Wrong Makefile?, This script needs to be executed inside the vyos-kernel package directory" + exit 1 +fi + + +# newer Kernel versions come with a "# SPDX-License-Identifier: GPL-2.0" identifier +# as the first line in the file - use compatible approach with grep rather then sed +VERSION=$(grep "^VERSION" Makefile | grep -Eo '[0-9]{1,4}') +PATCHLEVEL=$(grep "^PATCHLEVEL" Makefile | grep -Eo '[0-9]{1,4}') +SUBLEVEL=$(grep "^SUBLEVEL" Makefile | grep -Eo '[0-9]{1,4}') +ARCH=$(dpkg --print-architecture) + +case "$ARCH" in + amd64) + make x86_64_vyos_defconfig + TARGETS="kernel_source kernel_debug kernel_headers kernel_image" + # the following targets are not supported for Linux Kernels > 4.14 as + # they have been removed from the Makefile (commits 18afab8c1d3c2 & + # 22cba31bae9dc). + if [ ${PATCHLEVEL} -lt 14 ]; then + TARGETS+=" kernel_manual kernel_doc" + fi + CONCURRENCY_LEVEL=4 LOCALVERSION="" make-kpkg --rootcmd fakeroot --initrd --append_to_version -amd64-vyos --revision=$VERSION.$PATCHLEVEL.$SUBLEVEL-1+vyos1+current1 -j4 ${TARGETS} + ;; + + armhf) + make armhf_vyos_defconfig + ;; +esac diff --git a/scripts/build-submodules b/scripts/build-submodules index 43568cfd..2b29907e 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -1,11 +1,13 @@ #!/bin/bash #set -x + if [ ! -d "packages" ]; then echo "This script needs to be executed inside the top root of vyos-build" exit 1 fi -if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + +print_help() { echo "Script for building all subpackages to vyos" echo "Execute this sctipt from the root of the vyos-build directory" echo "" @@ -16,7 +18,31 @@ if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then echo " docker build -t vyos-builder ." echo "Compile packages:" echo " docker run --rm -it -v $(pwd):/vyos -w /vyos --sysctl net.ipv6.conf.lo.disable_ipv6=0 vyos-builder scripts/build-docker-subpaclages" -fi + echo "Parameters:" + echo " --init-packages - Initiate all subpackages before building" +} + + +while test $# -gt 0 +do + case "$1" in + -h|-?|--help) + print_help + exit 0 + ;; + --init-packages) + INIT_PACKAGES=1 + ;; + *) + (>&2 echo "Error: Argument $1 is not valid") + echo "" + print_help + exit 1 + ;; + esac + shift +done + status_start() { echo -ne "[ ] $1" @@ -39,6 +65,43 @@ echo -ne " $1\n" ROOTDIR="$(pwd)" PKGDIR="$(pwd)/packages" +initiate_package() { + PKG=$1 + status_start "Initializing subpackage: $PKG" + ( set -e + git submodule update --init packages/$PKG >>$PKGDIR/$PKG.buildlog 2>&1 + cd $PKGDIR/$PKG + git checkout current + ) + if [ $? -ne 0 ]; then + status_fail "Failed to initiate package $PKG, look in $PKG.buildlog to examine the fault\n" + return 1 + fi + status_ok + return 0 +} + +build_package() { + PKG=$1 + status_start "Building package: $PKG" + if [ ! -d "packages/$PKG/debian" ]; then + status_skip "No source for: $PKG" + return 1 + fi + ( set -e + cd $PKGDIR/$PKG > /dev/null + dpkg-buildpackage -uc -us -tc -b >>$PKGDIR/$PKG.buildlog 2>&1 + ) + if [ $? -ne 0 ]; then + status_fail + error_msg "Failed to build package $PKG, look in $PKG.buildlog to examine the fault\n" + return 2 + fi + status_ok +} + + + echo "Cleaning up buildfiles..." rm -rf $PKGDIR/*.deb rm -rf $PKGDIR/*.changes @@ -89,104 +152,116 @@ for PKG in mdns-repeater \ vyos-strongswan \ vyos-world \ ; do - if [ -d "packages/$PKG/debian" ]; then - status_start "Building package: $PKG" - pushd $PKGDIR/$PKG > /dev/null - dpkg-buildpackage -uc -us -tc -b >$PKGDIR/$PKG.buildlog 2>&1 - if [ $? -ne 0 ]; then - status_fail - error_msg "Failed to build package $PKG, look in $PKG.buildlog to examine the fault\n" - else - status_ok - fi - popd > /dev/null - else - status_skip "No source for: $PKG" + if [ $INIT_PACKAGES ]; then + initiate_package "$PKG" fi + build_package "$PKG" done # KERNEL -if [ -f "packages/vyos-kernel/Makefile" ]; then +build_kernel() { status_start "Building-package: vyos-kernel" - pushd packages/vyos-kernel > /dev/null - bash -c '../../scripts/build-kernel' >$PKGDIR/vyos-kernel.buildlog 2>&1 + if [ ! -f "packages/vyos-kernel/Makefile" ]; then + status_skip "No source for: vyos-kernel" + return 0 + fi + + ( set -e + cd packages/vyos-kernel > /dev/null + bash -c '../../scripts/build-kernel' >$PKGDIR/vyos-kernel.buildlog 2>&1 + ) if [ $? -ne 0 ]; then status_fail error_msg "Failed to build package vyos-kernel, look in vyos-kernel.buildlog to examine the fault\n" - else - VERSION=$(grep "^VERSION" Makefile | grep -Eo '[0-9]{1,4}') - PATCHLEVEL=$(grep "^PATCHLEVEL" Makefile | grep -Eo '[0-9]{1,4}') - SUBLEVEL=$(grep "^SUBLEVEL" Makefile | grep -Eo '[0-9]{1,4}') - ARCH=$(dpkg --print-architecture) - echo "$VERSION.$PATCHLEVEL.$SUBLEVEL" > $ROOTDIR/data/kernel_version - status_ok + return 1 fi - popd > /dev/null -else - status_skip "No source for: vyos-kernel" -fi + VERSION=$(grep "^VERSION" Makefile | grep -Eo '[0-9]{1,4}') + PATCHLEVEL=$(grep "^PATCHLEVEL" Makefile | grep -Eo '[0-9]{1,4}') + SUBLEVEL=$(grep "^SUBLEVEL" Makefile | grep -Eo '[0-9]{1,4}') + ARCH=$(dpkg --print-architecture) + echo "$VERSION.$PATCHLEVEL.$SUBLEVEL" > $ROOTDIR/data/kernel_version + status_ok +} +build_kernel # WIREGUARD -if [ -d "packages/vyos-wireguard/debian" ]; then - if [ -f "packages/vyos-kernel/Makefile" ]; then - status_start "Building package: vyos-wireguard" - if grep -q "KBUILD_OUTPUT" packages/vyos-kernel/Makefile; then - VERSION=$(grep "^VERSION" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - PATCHLEVEL=$(grep "^PATCHLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - ARCH=$(dpkg --print-architecture) - pushd packages/vyos-wireguard > /dev/null - echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" > debian/wireguard-modules.install - bash -c 'KERNELDIR=/vyos/packages/vyos-kernel dpkg-buildpackage -uc -us -tc -b' >$PKGDIR/vyos-wireguard.buildlog 2>&1 - if [ $? -ne 0 ]; then - status_fail - error_msg "Failed to build package vyos-wireguard, look in vyos-wireguard.buildlog to examine the fault\n" - else - status_ok - fi - popd > /dev/null - else - status_fail - error_msg "Failed to build package vyos-wireguard, no kernel source found\n" - fi - else - seeor_msg "Something wrong with the kernel module?" - fi -else +build_wireguard() { + status_start "Building package: vyos-wireguard" + + if [ ! -d "packages/vyos-wireguard/debian" ]; then status_skip "No source for: vyos-wireguard" -fi + return 0 + fi + + if [ ! -f "packages/vyos-kernel/Makefile" ]; then + status_fail + error_msg "No Makefile found in kernel package" + return 1 + fi + + if ! grep -q "KBUILD_OUTPUT" packages/vyos-kernel/Makefile; then + status_fail + error_msg "Failed to build package vyos-wireguard, no kernel source found\n" + return 1 + fi + + VERSION=$(grep "^VERSION" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + PATCHLEVEL=$(grep "^PATCHLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + ARCH=$(dpkg --print-architecture) + # Collect kernel information + ( set -e + pushd packages/vyos-wireguard > /dev/null + echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" > debian/wireguard-modules.install + bash -c 'KERNELDIR=/vyos/packages/vyos-kernel dpkg-buildpackage -uc -us -tc -b' >$PKGDIR/vyos-wireguard.buildlog 2>&1 + ) + if [ $? -ne 0 ]; then + status_fail + error_msg "Failed to build package vyos-wireguard, look in vyos-wireguard.buildlog to examine the fault\n" + return 2 + fi + status_ok +} +(build_wireguard) # ACCEL-PPP -if [ -d "packages/vyos-accel-ppp/debian" ]; then +build_accel-ppp() { + status_start "Building package: vyos-accel-ppp" + if [ ! -d "packages/vyos-accel-ppp/debian" ]; then + status_skip "No source for: vyos-accel-ppp" + return 0 + fi + if [ -f "packages/vyos-kernel/Makefile" ]; then - status_start "Building package: vyos-accel-ppp" - if grep -q "KBUILD_OUTPUT" packages/vyos-kernel/Makefile; then - VERSION=$(grep "^VERSION" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - PATCHLEVEL=$(grep "^PATCHLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - ARCH=$(dpkg --print-architecture) - pushd packages/vyos-accel-ppp > /dev/null - #echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" > debian/wireguard-modules.install - echo "lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra/*.ko" > debian/vyos-accel-ppp-ipoe-kmod.install - sed -i "s#[0-9].[0-9][0-9].[0-9]-amd64-vyos#$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos#g" debian/rules - KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b >$PKGDIR/vyos-accel-ppp.buildlog 2>&1 - if [ $? -ne 0 ]; then - status_fail - error_msg "Failed to build package vyos-accel-ppp, look in vyos-accel-ppp.buildlog to examine the fault\n" - else - status_ok - fi - popd > /dev/null - else - status_fail - error_msg "Failed to build package vyos-accel-ppp, no kernel source found\n" - fi - else - seeor_msg "Something wrong with the kernel module?" + error_msg "Something wrong with the kernel module?" + return 1 fi -else - status_skip "No source for: vyos-accel-ppp" -fi + + if ! grep -q "KBUILD_OUTPUT" packages/vyos-kernel/Makefile; then + status_fail + error_msg "Failed to build package vyos-accel-ppp, no kernel source found\n" + fi + # Collect kernel information + VERSION=$(grep "^VERSION" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + PATCHLEVEL=$(grep "^PATCHLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + ARCH=$(dpkg --print-architecture) + + ( set -e + pushd packages/vyos-accel-ppp > /dev/null + #echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" > debian/wireguard-modules.install + echo "lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra/*.ko" > debian/vyos-accel-ppp-ipoe-kmod.install + sed -i "s#[0-9].[0-9][0-9].[0-9]-amd64-vyos#$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos#g" debian/rules + KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b >$PKGDIR/vyos-accel-ppp.buildlog 2>&1 + ) + if [ $? -ne 0 ]; then + status_fail + error_msg "Failed to build package vyos-accel-ppp, look in vyos-accel-ppp.buildlog to examine the fault\n" + return 1 + fi + status_ok +} +build_accel-ppp -- cgit v1.2.3 From 3bd3fda4c03d020a62b9a43d50692ccee7996886 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 6 Jan 2019 11:11:12 +0100 Subject: Docker: update apt xdependencies for vyos-accel-ppp --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 737fa5d6..b35997a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,7 @@ FROM debian:jessie RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ - apt-get update &&\ - apt-get install -y \ + apt-get update && apt-get install -y \ vim \ git \ make \ @@ -117,7 +116,7 @@ RUN apt-get install -y \ libelf-dev # Packages needed for vyos-accel-ppp -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ cdbs \ cmake \ liblua5.1-dev -- cgit v1.2.3 From d0d363186d180f9d16d0d33983e088726214f25d Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 6 Jan 2019 11:29:44 +0100 Subject: CI/CD: extend error reporting for Jenkins builds --- Jenkinsfile | 6 +----- scripts/build-submodules | 11 +++++++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6db29fea..37bdeeee 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -145,14 +145,10 @@ pipeline { sh 'scripts/build-submodules' } } - stage('Show Dir') { + stage('Build ISO') { steps { sh 'ls -al' sh 'ls -al packages' - } - } - stage('Build ISO') { - steps { sh 'sudo make iso' } } diff --git a/scripts/build-submodules b/scripts/build-submodules index 43568cfd..294f5404 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -1,5 +1,5 @@ -#!/bin/bash -#set -x +#!/bin/bash + if [ ! -d "packages" ]; then echo "This script needs to be executed inside the top root of vyos-build" exit 1 @@ -13,7 +13,7 @@ if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then echo "or from the vyos-builder docker container" echo "docker instructions" echo "Build the container:" - echo " docker build -t vyos-builder ." + echo " docker build -t vyos-builder ." echo "Compile packages:" echo " docker run --rm -it -v $(pwd):/vyos -w /vyos --sysctl net.ipv6.conf.lo.disable_ipv6=0 vyos-builder scripts/build-docker-subpaclages" fi @@ -112,6 +112,7 @@ if [ -f "packages/vyos-kernel/Makefile" ]; then bash -c '../../scripts/build-kernel' >$PKGDIR/vyos-kernel.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail + cat $PKGDIR/vyos-kernel.buildlog error_msg "Failed to build package vyos-kernel, look in vyos-kernel.buildlog to examine the fault\n" else VERSION=$(grep "^VERSION" Makefile | grep -Eo '[0-9]{1,4}') @@ -142,6 +143,7 @@ if [ -d "packages/vyos-wireguard/debian" ]; then bash -c 'KERNELDIR=/vyos/packages/vyos-kernel dpkg-buildpackage -uc -us -tc -b' >$PKGDIR/vyos-wireguard.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail + cat $PKGDIR/vyos-wireguard.buildlog error_msg "Failed to build package vyos-wireguard, look in vyos-wireguard.buildlog to examine the fault\n" else status_ok @@ -154,7 +156,7 @@ if [ -d "packages/vyos-wireguard/debian" ]; then else seeor_msg "Something wrong with the kernel module?" fi -else +else status_skip "No source for: vyos-wireguard" fi @@ -175,6 +177,7 @@ if [ -d "packages/vyos-accel-ppp/debian" ]; then KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b >$PKGDIR/vyos-accel-ppp.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail + cat $PKGDIR/vyos-accel-ppp.buildlog error_msg "Failed to build package vyos-accel-ppp, look in vyos-accel-ppp.buildlog to examine the fault\n" else status_ok -- cgit v1.2.3 From 21becfd719541206c22be2459dd10448172d6c37 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 6 Jan 2019 17:42:52 +0100 Subject: CI/CD: Update all submodules to latest HEAD Update all registered submodules to the latest HEAD revision of its configured branch in .gitmodules # --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 37bdeeee..6151fb72 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -142,6 +142,7 @@ pipeline { } stage('Build Packages') { steps { + sh 'git submodule update --remote' sh 'scripts/build-submodules' } } -- cgit v1.2.3 From 88c8b3440bd4e4a31ca86cd5d6e8d23bbc0684e7 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 6 Jan 2019 17:52:52 +0100 Subject: CI/CD: add verbose output option to for 'build-submodules' script --- Jenkinsfile | 129 +++++------------------------------------------ scripts/build-submodules | 27 +++++++--- 2 files changed, 32 insertions(+), 124 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6151fb72..611777cc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,131 +26,28 @@ pipeline { } stages { - stage('Configure') { + stage('Submodule Init') { steps { - sh './configure --build-by="autobuild@vyos.net" --debian-mirror="http://ftp.us.debian.org/debian/"' - } - } - stage('Init Submodules') { - environment { - // there values are exportesd to all commands in this stage - GIT_BRANCH_PACKAGE = "current" - GIT_BRANCH_KERNEL = "linux-vyos-4.19.y" - } - steps { - parallel ( - "mdns-repeater": { - sh ''' - git submodule update --init packages/mdns-repeater - cd packages/mdns-repeater - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "pmacct": { - sh ''' - git submodule update --init packages/pmacct - cd packages/pmacct - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "udp-broadcast-relay": { - sh ''' - git submodule update --init packages/udp-broadcast-relay - cd packages/udp-broadcast-relay - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyatta-bash": { - sh ''' - git submodule update --init packages/vyatta-bash - cd packages/vyatta-bash - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyatta-cfg": { - sh ''' - git submodule update --init packages/vyatta-cfg - cd packages/vyatta-cfg - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyatta-cfg-firewall": { - sh ''' - git submodule update --init packages/vyatta-cfg-firewall - cd packages/vyatta-cfg-firewall - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyatta-cfg-op-pppoe": { - sh ''' - git submodule update --init packages/vyatta-cfg-op-pppoe - cd packages/vyatta-cfg-op-pppoe - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyatta-cfg-qos": { - sh ''' - git submodule update --init packages/vyatta-cfg-qos - cd packages/vyatta-cfg-qos - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyatta-cfg-quagga": { - sh ''' - git submodule update --init packages/vyatta-cfg-quagga - cd packages/vyatta-cfg-quagga - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyatta-cfg-system": { - sh ''' - git submodule update --init packages/vyatta-cfg-system - cd packages/vyatta-cfg-system - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyatta-cfg-vpn": { - sh ''' - git submodule update --init packages/vyatta-cfg-vpn - cd packages/vyatta-cfg-vpn - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyos-kernel": { - sh ''' - git submodule update --init packages/vyos-kernel - cd packages/vyos-kernel - git checkout $GIT_BRANCH_KERNEL - ''' - }, - "vyos-wireguard": { - sh ''' - git submodule update --init packages/vyos-wireguard - cd packages/vyos-wireguard - git checkout $GIT_BRANCH_PACKAGE - ''' - }, - "vyos-accel-ppp": { - sh ''' - git submodule update --init packages/vyos-accel-ppp - cd packages/vyos-accel-ppp - git checkout $GIT_BRANCH_PACKAGE - ''' - } - ) + sh ''' + git submodule update --init --recursive + git submodule update --remote + ''' } } stage('Build Packages') { steps { - sh 'git submodule update --remote' - sh 'scripts/build-submodules' + sh 'scripts/build-submodules --verbose' } } stage('Build ISO') { steps { - sh 'ls -al' - sh 'ls -al packages' - sh 'sudo make iso' + sh ''' + #!/bin/sh + ./configure --build-by="autobuild@vyos.net" --debian-mirror="http://ftp.us.debian.org/debian/" + ls -al + ls -al packages + sudo make iso + ''' } } } diff --git a/scripts/build-submodules b/scripts/build-submodules index 3a7ea3a5..ae9d131c 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -5,7 +5,6 @@ if [ ! -d "packages" ]; then exit 1 fi - print_help() { echo "Script for building all subpackages to vyos" echo "Execute this sctipt from the root of the vyos-build directory" @@ -20,6 +19,7 @@ print_help() { echo "" echo "Parameters:" echo " --init-packages - Initiate all subpackages before building" + echo " --verbose|-v - Enable verbose output" } while test $# -gt 0 @@ -32,6 +32,9 @@ do --init-packages) INIT_PACKAGES=1 ;; + --verbose|-v) + VERBOSE=1 + ;; *) (>&2 echo "Error: Argument $1 is not valid") echo "" @@ -42,24 +45,23 @@ do shift done - status_start() { -echo -ne "[ ] $1" + echo -ne "[ ] $1" } status_ok() { -echo -ne "\r[\e[32m OK \e[39m]\n" + echo -ne "\r[\e[32m OK \e[39m]\n" } status_fail() { -echo -ne "\r[\e[31mFAIL\e[39m]\n" + echo -ne "\r[\e[31mFAIL\e[39m]\n" } status_skip() { -echo -ne "\r[SKIP] $1\n" + echo -ne "\r[SKIP] $1\n" } error_msg() { -echo -ne " $1\n" + echo -ne " $1\n" } ROOTDIR="$(pwd)" PKGDIR="$(pwd)/packages" @@ -170,9 +172,13 @@ build_kernel() { ) if [ $? -ne 0 ]; then status_fail + if [ $VERBOSE ]; then + cat $PKGDIR/vyos-kernel.buildlog + fi error_msg "Failed to build package vyos-kernel, look in vyos-kernel.buildlog to examine the fault\n" return 1 fi + VERSION=$(grep "^VERSION" Makefile | grep -Eo '[0-9]{1,4}') PATCHLEVEL=$(grep "^PATCHLEVEL" Makefile | grep -Eo '[0-9]{1,4}') SUBLEVEL=$(grep "^SUBLEVEL" Makefile | grep -Eo '[0-9]{1,4}') @@ -216,6 +222,9 @@ build_wireguard() { ) if [ $? -ne 0 ]; then status_fail + if [ $VERBOSE ]; then + cat $PKGDIR/vyos-wireguard.buildlog + fi error_msg "Failed to build package vyos-wireguard, look in vyos-wireguard.buildlog to examine the fault\n" return 2 fi @@ -249,13 +258,15 @@ build_accel-ppp() { ( set -e pushd packages/vyos-accel-ppp > /dev/null - #echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" > debian/wireguard-modules.install echo "lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra/*.ko" > debian/vyos-accel-ppp-ipoe-kmod.install sed -i "s#[0-9].[0-9][0-9].[0-9]-amd64-vyos#$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos#g" debian/rules KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b >$PKGDIR/vyos-accel-ppp.buildlog 2>&1 ) if [ $? -ne 0 ]; then status_fail + if [ $VERBOSE ]; then + cat $PKGDIR/vyos-accel-ppp.buildlog + fi error_msg "Failed to build package vyos-accel-ppp, look in vyos-accel-ppp.buildlog to examine the fault\n" return 1 fi -- cgit v1.2.3 From 394bee00f7473c3d397b3d47930999fd9f1f93d1 Mon Sep 17 00:00:00 2001 From: hagbard Date: Tue, 8 Jan 2019 13:24:48 -0800 Subject: T1135: "firewall send-redirects enable" works only after switching from disabled state on running system - disable send-redirects per default --- data/live-build-config/hooks/live/08-sysconf.chroot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/live-build-config/hooks/live/08-sysconf.chroot b/data/live-build-config/hooks/live/08-sysconf.chroot index 8d1616c0..f6607410 100755 --- a/data/live-build-config/hooks/live/08-sysconf.chroot +++ b/data/live-build-config/hooks/live/08-sysconf.chroot @@ -38,6 +38,8 @@ update_sysctl_conf net.ipv4.ip_forward 1 \ # "enable ipv6 forwarding" update_sysctl_conf net.core.rmem_max 223232 \ "maximize netlink buffers" +update_sysctl_conf net.ipv4.conf.all.send_redirects 0 + "disable IPv4 ICMP redirects" # Local Variables: # mode: shell-script -- cgit v1.2.3 From f8f6c5d391017796242bb9feb010ba980e280c58 Mon Sep 17 00:00:00 2001 From: hagbard Date: Tue, 8 Jan 2019 13:54:25 -0800 Subject: Type fixed. --- data/live-build-config/hooks/live/08-sysconf.chroot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/live-build-config/hooks/live/08-sysconf.chroot b/data/live-build-config/hooks/live/08-sysconf.chroot index f6607410..b7b2f831 100755 --- a/data/live-build-config/hooks/live/08-sysconf.chroot +++ b/data/live-build-config/hooks/live/08-sysconf.chroot @@ -38,7 +38,7 @@ update_sysctl_conf net.ipv4.ip_forward 1 \ # "enable ipv6 forwarding" update_sysctl_conf net.core.rmem_max 223232 \ "maximize netlink buffers" -update_sysctl_conf net.ipv4.conf.all.send_redirects 0 +update_sysctl_conf net.ipv4.conf.all.send_redirects 0 \ "disable IPv4 ICMP redirects" # Local Variables: -- cgit v1.2.3 From 4f7117243a0dfb78c5af8c82a445d41186726aeb Mon Sep 17 00:00:00 2001 From: hagbard Date: Tue, 8 Jan 2019 14:26:16 -0800 Subject: T1135: "firewall send-redirects enable" works only after switching from disabled state on running system - set default to disable too due to the fact that set firewall did expect that at one point. Primarily, IPSec could leak data once a tunnel is established. --- data/live-build-config/hooks/live/08-sysconf.chroot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/live-build-config/hooks/live/08-sysconf.chroot b/data/live-build-config/hooks/live/08-sysconf.chroot index b7b2f831..d403d04b 100755 --- a/data/live-build-config/hooks/live/08-sysconf.chroot +++ b/data/live-build-config/hooks/live/08-sysconf.chroot @@ -40,6 +40,8 @@ update_sysctl_conf net.core.rmem_max 223232 \ "maximize netlink buffers" update_sysctl_conf net.ipv4.conf.all.send_redirects 0 \ "disable IPv4 ICMP redirects" +update_sysctl_conf net.ipv4.conf.default.send_redirects 0 \ + "disable IPv4 ICMP redirects" # Local Variables: # mode: shell-script -- cgit v1.2.3 From 341531360338ee2642b297f839c2c4644ac1b64d Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Tue, 8 Jan 2019 22:13:34 +0100 Subject: build-submodules: fix bool logic for accel-ppp build --- scripts/build-submodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index ae9d131c..8cf362c9 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -241,7 +241,7 @@ build_accel-ppp() { return 0 fi - if [ -f "packages/vyos-kernel/Makefile" ]; then + if [ ! -f "packages/vyos-kernel/Makefile" ]; then error_msg "Something wrong with the kernel module?" return 1 fi -- cgit v1.2.3 From ed03c43b2a0f7d6d072bab3ae116e1fa0c217375 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:26:32 +0100 Subject: Change user on docker image to the current owner of the volume directory (GOSU) Insted of hardcoding the user used to build inside the container it will now be auto configured to be the user UID that owns the vyos-build directory This is done with the gosu utillity and a entrypoint script --- Dockerfile | 13 ++++++++----- scripts/docker-entrypoint.sh | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 5 deletions(-) create mode 100755 scripts/docker-entrypoint.sh diff --git a/Dockerfile b/Dockerfile index b35997a9..efa7e2bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,7 @@ FROM debian:jessie RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ apt-get update && apt-get install -y \ + gosu \ vim \ git \ make \ @@ -143,10 +144,12 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe curl -K- | gzip -d > /usr/bin/packer && \ chmod +x /usr/bin/packer +COPY scripts/docker-entrypoint.sh /usr/local/bin/ # Create vyos_bld user account and enable sudo -RUN useradd -ms /bin/bash -u 1006 --gid users vyos_bld && \ - usermod -aG sudo vyos_bld && \ - echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +#RUN useradd -ms /bin/bash -u 1006 --gid users vyos_bld && \ +# usermod -aG sudo vyos_bld && \ +# echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers -USER vyos_bld -WORKDIR /home/vyos_bld +#USER vyos_bld +#WORKDIR /home/vyos_bld +ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh new file mode 100755 index 00000000..7520a8d9 --- /dev/null +++ b/scripts/docker-entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +# Use GOSU_USER if its specified, else wirking dir user +if [ -n "$GOSU_USER" ]; then + ID=$GOSU_USER +else + ID=$(stat -c "%u:%g" .) +fi + +# Don't use GOSU if we are root +if [ ! "$ID" = "0:0" ]; then + exec gosu $ID "$@" +else + exec "$@" +fi -- cgit v1.2.3 From a021853d273129eed50a3db77a972cf6b47b5ef8 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:30:54 +0100 Subject: Added apt-get update before any apt-get install commands. This fixes an issue where docker is using packages from cache that has an outdated apt-cache. --- Dockerfile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index efa7e2bf..45704cb5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,7 +44,7 @@ RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/ python3-coverage # Packages needed for building vyos-strongswan -RUN apt-get install -y -t jessie-backports \ +RUN apt-get update && apt-get install -y -t jessie-backports \ debhelper &&\ apt-get install -y \ dh-apparmor \ @@ -68,30 +68,30 @@ RUN apt-get install -y -t jessie-backports \ pkg-config # Package needed for mdns-repeater -RUN apt-get install -y -t jessie-backports \ +RUN apt-get update && apt-get install -y -t jessie-backports \ dh-systemd # Packages needed for vyatta-bash -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libncurses5-dev \ locales # Packages needed for vyatta-cfg -RUN apt-get install -y \ +RUN apt-get update &&apt-get install -y \ libboost-filesystem-dev # Packages needed for vyatta-iproute -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libatm1-dev \ libdb-dev # Packages needed for vyatta-webgui -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libexpat1-dev \ subversion # Packages needed for pmacct -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libpcap-dev \ libpq-dev \ libmysqlclient-dev \ @@ -102,18 +102,18 @@ RUN apt-get install -y \ libnetfilter-log-dev # Packages needed for vyos-keepalived -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libnl-3-dev \ libnl-genl-3-dev \ libpopt-dev \ libsnmp-dev # Pavkages needed for wireguard -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libmnl-dev # Packages needed for kernel -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libelf-dev # Packages needed for vyos-accel-ppp -- cgit v1.2.3 From 6f4d7061e0040f18fa4fca9a8a71fcdcfa83d7fd Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:36:30 +0100 Subject: Adding support for compiling vyos-frr package --- Dockerfile | 12 ++++++++++++ scripts/build-submodules | 1 + 2 files changed, 13 insertions(+) diff --git a/Dockerfile b/Dockerfile index 45704cb5..4c66a15a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -122,6 +122,18 @@ RUN apt-get update && apt-get install -y \ cmake \ liblua5.1-dev +# Packages needed for vyos-frr +RUN sudo apt-get update && sudo apt-get install -y \ + texinfo \ + imagemagick \ + groff \ + hardening-wrapper \ + gawk \ + chrpath \ + libjson0 \ + libjson0-dev \ + python-ipaddr + # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ apt-get update &&\ diff --git a/scripts/build-submodules b/scripts/build-submodules index ae9d131c..28175cf5 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -145,6 +145,7 @@ for PKG in mdns-repeater \ vyatta-wireless \ vyatta-wirelessmodem \ vyatta-zone \ + vyos-frr \ vyos-keepalived \ vyos-nhrp \ vyos-pppoe-server \ -- cgit v1.2.3 From 830146d03fc1c5e6bc132d5fd0db400fb87309e5 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:38:41 +0100 Subject: Log complete buildscript execution and changed package-initialization routine All build executions is now logged to the buildlog insted of only the dpkg-* commands The script also shows commands executed (bash: set -x) Insted of initializing subpackages one by one they now initialize and update in one operation by the git submodule command --- scripts/build-submodules | 79 +++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 28175cf5..d58a84c8 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -66,21 +66,6 @@ error_msg() { ROOTDIR="$(pwd)" PKGDIR="$(pwd)/packages" -initiate_package() { - PKG=$1 - status_start "Initializing subpackage: $PKG" - ( set -e - git submodule update --init packages/$PKG >>$PKGDIR/$PKG.buildlog 2>&1 - cd $PKGDIR/$PKG - git checkout current - ) - if [ $? -ne 0 ]; then - status_fail "Failed to initiate package $PKG, look in $PKG.buildlog to examine the fault\n" - return 1 - fi - status_ok - return 0 -} build_package() { PKG=$1 @@ -89,10 +74,10 @@ build_package() { status_skip "No source for: $PKG" return 1 fi - ( set -e - cd $PKGDIR/$PKG > /dev/null - dpkg-buildpackage -uc -us -tc -b >>$PKGDIR/$PKG.buildlog 2>&1 - ) + ( set -e; set -x + cd $PKGDIR/$PKG + dpkg-buildpackage -uc -us -tc -b + ) >>$PKGDIR/$PKG.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail error_msg "Failed to build package $PKG, look in $PKG.buildlog to examine the fault\n" @@ -108,6 +93,28 @@ rm -rf $PKGDIR/*.buildlog echo "-----------------------------------------------------" echo "Starting build process for all packages" echo "" + +initialize_packages() { + status_start "Initializing packages" + ( + set -x + git submodule update --init --recursive + git submodule update --remote + ) >>$PKGDIR/init-packages.buildlog 2>&1 + if [ $? -ne 0 ]; then + status_fail + if [ $VERBOSE ]; then + cat $PKGDIR/init-packages.buildlog + fi + error_msg "Failed to update all package, look in init-packages.buildlog to examine the fault\n" + return 1 + fi + status_ok +} +if [ $INIT_PACKAGES ]; then + initialize_packages +fi + for PKG in mdns-repeater \ pmacct \ udp-broadcast-relay \ @@ -152,9 +159,6 @@ for PKG in mdns-repeater \ vyos-strongswan \ vyos-world \ ; do - if [ $INIT_PACKAGES ]; then - initiate_package "$PKG" - fi build_package "$PKG" done @@ -167,10 +171,10 @@ build_kernel() { return 0 fi - ( set -e + ( set -e; set -x cd packages/vyos-kernel > /dev/null - bash -c '../../scripts/build-kernel' >$PKGDIR/vyos-kernel.buildlog 2>&1 - ) + bash -c '../../scripts/build-kernel' + ) >>$PKGDIR/vyos-kernel.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail if [ $VERBOSE ]; then @@ -216,11 +220,11 @@ build_wireguard() { SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') ARCH=$(dpkg --print-architecture) # Collect kernel information - ( set -e - pushd packages/vyos-wireguard > /dev/null - echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" > debian/wireguard-modules.install - bash -c 'KERNELDIR=/vyos/packages/vyos-kernel dpkg-buildpackage -uc -us -tc -b' >$PKGDIR/vyos-wireguard.buildlog 2>&1 - ) + ( set -e; set -x + cd packages/vyos-wireguard + echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" | tee debian/wireguard-modules.install + bash -c 'KERNELDIR=/vyos/packages/vyos-kernel dpkg-buildpackage -uc -us -tc -b' + ) >>$PKGDIR/vyos-wireguard.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail if [ $VERBOSE ]; then @@ -231,7 +235,7 @@ build_wireguard() { fi status_ok } -(build_wireguard) +build_wireguard # ACCEL-PPP @@ -242,8 +246,9 @@ build_accel-ppp() { return 0 fi - if [ -f "packages/vyos-kernel/Makefile" ]; then - error_msg "Something wrong with the kernel module?" + if [ ! -f "packages/vyos-kernel/Makefile" ]; then + status_fail + error_msg "No Makefile found in kernel package" return 1 fi @@ -257,12 +262,12 @@ build_accel-ppp() { SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') ARCH=$(dpkg --print-architecture) - ( set -e + ( set -e; set -x pushd packages/vyos-accel-ppp > /dev/null - echo "lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra/*.ko" > debian/vyos-accel-ppp-ipoe-kmod.install + echo "lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra/*.ko" | tee debian/vyos-accel-ppp-ipoe-kmod.install sed -i "s#[0-9].[0-9][0-9].[0-9]-amd64-vyos#$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos#g" debian/rules - KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b >$PKGDIR/vyos-accel-ppp.buildlog 2>&1 - ) + KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b + ) >>$PKGDIR/vyos-accel-ppp.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail if [ $VERBOSE ]; then -- cgit v1.2.3 From 362ea8acb5978704e759c9bd112b84e4e0eb50de Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:51:11 +0100 Subject: Fix error message on kernel commit, also fixup from merge-conflict --- scripts/build-submodules | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 4e790eda..d58a84c8 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -247,7 +247,8 @@ build_accel-ppp() { fi if [ ! -f "packages/vyos-kernel/Makefile" ]; then - error_msg "Something wrong with the kernel module?" + status_fail + error_msg "No Makefile found in kernel package" return 1 fi -- cgit v1.2.3 From 8a9050fffd8b1621a93a658624ea531818647511 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Wed, 9 Jan 2019 23:01:09 +0100 Subject: packages: fix vyos-strongswan submodule pointer --- packages/vyos-strongswan | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vyos-strongswan b/packages/vyos-strongswan index 5f1a6880..0d4aee54 160000 --- a/packages/vyos-strongswan +++ b/packages/vyos-strongswan @@ -1 +1 @@ -Subproject commit 5f1a6880eb6ac98deb48b915bc574c2a5260831e +Subproject commit 0d4aee5440ebef1042bb8d9e65ee3dc127257df8 -- cgit v1.2.3 From 041bc80e71c3c700ff0c01702d9ffd0885d2b75b Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 11 Jan 2019 07:31:05 +0100 Subject: CI/CD: Improve 'goso' handling for Docker and Jenkins * Inside the container user can call 'sudo' without password * Added Docker environment variables to controll the 'gosu' UID/GID --- Dockerfile | 13 +++++-------- Jenkinsfile | 5 ++--- scripts/docker-entrypoint.sh | 33 ++++++++++++++++++++++----------- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4c66a15a..a76dc8b7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -123,7 +123,7 @@ RUN apt-get update && apt-get install -y \ liblua5.1-dev # Packages needed for vyos-frr -RUN sudo apt-get update && sudo apt-get install -y \ +RUN apt-get update && apt-get install -y \ texinfo \ imagemagick \ groff \ @@ -156,12 +156,9 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe curl -K- | gzip -d > /usr/bin/packer && \ chmod +x /usr/bin/packer -COPY scripts/docker-entrypoint.sh /usr/local/bin/ -# Create vyos_bld user account and enable sudo -#RUN useradd -ms /bin/bash -u 1006 --gid users vyos_bld && \ -# usermod -aG sudo vyos_bld && \ -# echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +# Allow password-less 'sudo' for all users in group 'sudo' +RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ + chmod a+s /usr/sbin/useradd /usr/sbin/gosu /usr/sbin/usermod -#USER vyos_bld -#WORKDIR /home/vyos_bld +COPY scripts/docker-entrypoint.sh /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/Jenkinsfile b/Jenkinsfile index 611777cc..3406e606 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,7 +21,7 @@ pipeline { dockerfile { filename 'Dockerfile' label 'jessie-amd64' - args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0' + args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006' } } @@ -44,8 +44,7 @@ pipeline { sh ''' #!/bin/sh ./configure --build-by="autobuild@vyos.net" --debian-mirror="http://ftp.us.debian.org/debian/" - ls -al - ls -al packages + ls -al packages/*.deb sudo make iso ''' } diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh index 7520a8d9..845cb2ff 100755 --- a/scripts/docker-entrypoint.sh +++ b/scripts/docker-entrypoint.sh @@ -1,17 +1,28 @@ #!/bin/bash - set -e -# Use GOSU_USER if its specified, else wirking dir user -if [ -n "$GOSU_USER" ]; then - ID=$GOSU_USER -else - ID=$(stat -c "%u:%g" .) +USER_NAME="vyos_bld" +NEW_UID=$(stat -c "%u" .) +NEW_GID=$(stat -c "%g" .) + +# Change effective UID to the one specified via "-e GOSU_UID=`id -u $USER`" +if [ -n "$GOSU_UID" ]; then + NEW_UID=$GOSU_UID fi -# Don't use GOSU if we are root -if [ ! "$ID" = "0:0" ]; then - exec gosu $ID "$@" -else - exec "$@" +# Change effective UID to the one specified via "-e GOSU_GID=`id -g $USER`" +if [ -n "$GOSU_GID" ]; then + NEW_GID=$GOSU_GID fi + +# Notify user about selected UID/GID +echo "Current UID/GID: $NEW_UID/$NEW_GID" + +# Create user called "docker" with selected UID +useradd --shell /bin/bash -u $NEW_UID -g $NEW_GID -o -m $USER_NAME +usermod -aG sudo $USER_NAME +sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME +export HOME=/home/$USER_NAME + +# Execute process +exec /usr/sbin/gosu $USER_NAME "$@" -- cgit v1.2.3 From 59ff941e9acb6e99d7dd471911a6c713b5bedc32 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 11 Jan 2019 07:40:59 +0100 Subject: build-submodules: exit script with proper exit code for Pipeline --- scripts/build-submodules | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index d58a84c8..81bedf4a 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -160,6 +160,10 @@ for PKG in mdns-repeater \ vyos-world \ ; do build_package "$PKG" + ERRCODE=$? + if [ "$ERRCODE" -ne "0" ]; then + exit $ERRCODE + fi done @@ -192,6 +196,10 @@ build_kernel() { status_ok } build_kernel +ERRCODE=$? +if [ "$ERRCODE" -ne "0" ]; then + exit $ERRCODE +fi # WIREGUARD @@ -236,7 +244,10 @@ build_wireguard() { status_ok } build_wireguard - +ERRCODE=$? +if [ "$ERRCODE" -ne "0" ]; then + exit $ERRCODE +fi # ACCEL-PPP build_accel-ppp() { @@ -279,3 +290,7 @@ build_accel-ppp() { status_ok } build_accel-ppp +ERRCODE=$? +if [ "$ERRCODE" -ne "0" ]; then + exit $ERRCODE +fi -- cgit v1.2.3 From ecc0db23c34219d9b9c343d11a38ad3c8bf3e04c Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 11 Jan 2019 07:49:24 +0100 Subject: .gitignore: ignore log from build-submodules --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3eff9f21..fee2d5ac 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ build/* packer_build/* packer_cache/* key/* +packages/*.buildlog -- cgit v1.2.3 From 4004496e89d2a27cfb4cc3a87253dd9dac54e160 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 11 Jan 2019 09:15:33 +0100 Subject: Docker build files for entrypoint and UIDs --- Dockerfile | 164 ------------------------------------------- Jenkinsfile | 1 + docker/Dockerfile | 164 +++++++++++++++++++++++++++++++++++++++++++ docker/entrypoint.sh | 27 +++++++ scripts/docker-entrypoint.sh | 28 -------- 5 files changed, 192 insertions(+), 192 deletions(-) delete mode 100644 Dockerfile create mode 100644 docker/Dockerfile create mode 100755 docker/entrypoint.sh delete mode 100755 scripts/docker-entrypoint.sh diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index a76dc8b7..00000000 --- a/Dockerfile +++ /dev/null @@ -1,164 +0,0 @@ -# Must be run with --privileged flag -# Recommended to run the container with a volume mapped -# in order to easy exprort images built to "external" world -FROM debian:jessie - -RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ - apt-get update && apt-get install -y \ - gosu \ - vim \ - git \ - make \ - sudo \ - locales \ - live-build \ - pbuilder \ - devscripts \ - python3-pystache \ - squashfs-tools \ - autoconf \ - dpkg-dev \ - syslinux \ - genisoimage \ - lsb-release \ - fakechroot \ - kernel-package \ - libtool \ - libglib2.0-dev \ - libboost-filesystem-dev \ - libapt-pkg-dev \ - flex \ - bison \ - libperl-dev \ - libnfnetlink-dev \ - python3-git \ - parted \ - kpartx \ - jq \ - qemu-system-x86 \ - qemu-utils \ - quilt \ - python3-lxml \ - python3-setuptools \ - python3-nose \ - python3-coverage - -# Packages needed for building vyos-strongswan -RUN apt-get update && apt-get install -y -t jessie-backports \ - debhelper &&\ - apt-get install -y \ - dh-apparmor \ - gperf \ - iptables-dev \ - libcap-dev \ - libgcrypt20-dev \ - libgmp3-dev \ - libldap2-dev \ - libpam0g-dev \ - libsystemd-dev \ - libgmp-dev \ - iptables \ - xl2tpd \ - libcurl4-openssl-dev \ - libcurl4-openssl-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev \ - libxml2-dev \ - pkg-config - -# Package needed for mdns-repeater -RUN apt-get update && apt-get install -y -t jessie-backports \ - dh-systemd - -# Packages needed for vyatta-bash -RUN apt-get update && apt-get install -y \ - libncurses5-dev \ - locales - -# Packages needed for vyatta-cfg -RUN apt-get update &&apt-get install -y \ - libboost-filesystem-dev - -# Packages needed for vyatta-iproute -RUN apt-get update && apt-get install -y \ - libatm1-dev \ - libdb-dev - -# Packages needed for vyatta-webgui -RUN apt-get update && apt-get install -y \ - libexpat1-dev \ - subversion - -# Packages needed for pmacct -RUN apt-get update && apt-get install -y \ - libpcap-dev \ - libpq-dev \ - libmysqlclient-dev \ - libgeoip-dev \ - librabbitmq-dev \ - libjansson-dev \ - librdkafka-dev \ - libnetfilter-log-dev - -# Packages needed for vyos-keepalived -RUN apt-get update && apt-get install -y \ - libnl-3-dev \ - libnl-genl-3-dev \ - libpopt-dev \ - libsnmp-dev - -# Pavkages needed for wireguard -RUN apt-get update && apt-get install -y \ - libmnl-dev - -# Packages needed for kernel -RUN apt-get update && apt-get install -y \ - libelf-dev - -# Packages needed for vyos-accel-ppp -RUN apt-get update && apt-get install -y \ - cdbs \ - cmake \ - liblua5.1-dev - -# Packages needed for vyos-frr -RUN apt-get update && apt-get install -y \ - texinfo \ - imagemagick \ - groff \ - hardening-wrapper \ - gawk \ - chrpath \ - libjson0 \ - libjson0-dev \ - python-ipaddr - -# Update live-build -RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ - apt-get update &&\ - apt-get install -y -t stretch live-build &&\ - rm -f /etc/apt/sources.list.d/stretch.list &&\ - apt-get update &&\ - rm -rf /var/lib/apt/lists/* - -# Standard shell should be bash not dash -RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ - DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash - -RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen -ENV LANG en_US.utf8 - -# Install packer -RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ - jq -r -M '.current_version')"; \ - echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_amd64.zip" |\ - curl -K- | gzip -d > /usr/bin/packer && \ - chmod +x /usr/bin/packer - -# Allow password-less 'sudo' for all users in group 'sudo' -RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ - chmod a+s /usr/sbin/useradd /usr/sbin/gosu /usr/sbin/usermod - -COPY scripts/docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/Jenkinsfile b/Jenkinsfile index 3406e606..7a780286 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,6 +21,7 @@ pipeline { dockerfile { filename 'Dockerfile' label 'jessie-amd64' + dir 'docker' args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006' } } diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..2744d291 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,164 @@ +# Must be run with --privileged flag +# Recommended to run the container with a volume mapped +# in order to easy exprort images built to "external" world +FROM debian:jessie + +RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ + apt-get update && apt-get install -y \ + gosu \ + vim \ + git \ + make \ + sudo \ + locales \ + live-build \ + pbuilder \ + devscripts \ + python3-pystache \ + squashfs-tools \ + autoconf \ + dpkg-dev \ + syslinux \ + genisoimage \ + lsb-release \ + fakechroot \ + kernel-package \ + libtool \ + libglib2.0-dev \ + libboost-filesystem-dev \ + libapt-pkg-dev \ + flex \ + bison \ + libperl-dev \ + libnfnetlink-dev \ + python3-git \ + parted \ + kpartx \ + jq \ + qemu-system-x86 \ + qemu-utils \ + quilt \ + python3-lxml \ + python3-setuptools \ + python3-nose \ + python3-coverage + +# Packages needed for building vyos-strongswan +RUN apt-get update && apt-get install -y -t jessie-backports \ + debhelper &&\ + apt-get install -y \ + dh-apparmor \ + gperf \ + iptables-dev \ + libcap-dev \ + libgcrypt20-dev \ + libgmp3-dev \ + libldap2-dev \ + libpam0g-dev \ + libsystemd-dev \ + libgmp-dev \ + iptables \ + xl2tpd \ + libcurl4-openssl-dev \ + libcurl4-openssl-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + pkg-config + +# Package needed for mdns-repeater +RUN apt-get update && apt-get install -y -t jessie-backports \ + dh-systemd + +# Packages needed for vyatta-bash +RUN apt-get update && apt-get install -y \ + libncurses5-dev \ + locales + +# Packages needed for vyatta-cfg +RUN apt-get update &&apt-get install -y \ + libboost-filesystem-dev + +# Packages needed for vyatta-iproute +RUN apt-get update && apt-get install -y \ + libatm1-dev \ + libdb-dev + +# Packages needed for vyatta-webgui +RUN apt-get update && apt-get install -y \ + libexpat1-dev \ + subversion + +# Packages needed for pmacct +RUN apt-get update && apt-get install -y \ + libpcap-dev \ + libpq-dev \ + libmysqlclient-dev \ + libgeoip-dev \ + librabbitmq-dev \ + libjansson-dev \ + librdkafka-dev \ + libnetfilter-log-dev + +# Packages needed for vyos-keepalived +RUN apt-get update && apt-get install -y \ + libnl-3-dev \ + libnl-genl-3-dev \ + libpopt-dev \ + libsnmp-dev + +# Pavkages needed for wireguard +RUN apt-get update && apt-get install -y \ + libmnl-dev + +# Packages needed for kernel +RUN apt-get update && apt-get install -y \ + libelf-dev + +# Packages needed for vyos-accel-ppp +RUN apt-get update && apt-get install -y \ + cdbs \ + cmake \ + liblua5.1-dev + +# Packages needed for vyos-frr +RUN apt-get update && apt-get install -y \ + texinfo \ + imagemagick \ + groff \ + hardening-wrapper \ + gawk \ + chrpath \ + libjson0 \ + libjson0-dev \ + python-ipaddr + +# Update live-build +RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ + apt-get update &&\ + apt-get install -y -t stretch live-build &&\ + rm -f /etc/apt/sources.list.d/stretch.list &&\ + apt-get update &&\ + rm -rf /var/lib/apt/lists/* + +# Standard shell should be bash not dash +RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ + DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash + +RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen +ENV LANG en_US.utf8 + +# Install packer +RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ + jq -r -M '.current_version')"; \ + echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_amd64.zip" |\ + curl -K- | gzip -d > /usr/bin/packer && \ + chmod +x /usr/bin/packer + +# Allow password-less 'sudo' for all users in group 'sudo' +RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ + chmod a+s /usr/sbin/useradd /usr/sbin/gosu /usr/sbin/usermod + +COPY entrypoint.sh /usr/local/bin/entrypoint.sh +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100755 index 00000000..00e1e139 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -e + +USER_NAME="vyos_bld" +NEW_UID=$(stat -c "%u" .) +NEW_GID=$(stat -c "%g" .) + +# Change effective UID to the one specified via "-e GOSU_UID=`id -u $USER`" +if [ -n "$GOSU_UID" ]; then + NEW_UID=$GOSU_UID +fi + +# Change effective UID to the one specified via "-e GOSU_GID=`id -g $USER`" +if [ -n "$GOSU_GID" ]; then + NEW_GID=$GOSU_GID +fi + +# Notify user about selected UID/GID +echo "Current UID/GID: $NEW_UID/$NEW_GID" + +useradd --shell /bin/bash -u $NEW_UID -g $NEW_GID -o -m $USER_NAME +usermod -aG sudo $USER_NAME +sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME +export HOME=/home/$USER_NAME + +# Execute process +exec /usr/sbin/gosu $USER_NAME "$@" diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh deleted file mode 100755 index 845cb2ff..00000000 --- a/scripts/docker-entrypoint.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -set -e - -USER_NAME="vyos_bld" -NEW_UID=$(stat -c "%u" .) -NEW_GID=$(stat -c "%g" .) - -# Change effective UID to the one specified via "-e GOSU_UID=`id -u $USER`" -if [ -n "$GOSU_UID" ]; then - NEW_UID=$GOSU_UID -fi - -# Change effective UID to the one specified via "-e GOSU_GID=`id -g $USER`" -if [ -n "$GOSU_GID" ]; then - NEW_GID=$GOSU_GID -fi - -# Notify user about selected UID/GID -echo "Current UID/GID: $NEW_UID/$NEW_GID" - -# Create user called "docker" with selected UID -useradd --shell /bin/bash -u $NEW_UID -g $NEW_GID -o -m $USER_NAME -usermod -aG sudo $USER_NAME -sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME -export HOME=/home/$USER_NAME - -# Execute process -exec /usr/sbin/gosu $USER_NAME "$@" -- cgit v1.2.3 From 4c42851c53a5884b36a1a7850b7b663e4faf82c9 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 11 Jan 2019 09:15:33 +0100 Subject: Docker: create UNIX group on demand --- docker/Dockerfile | 2 +- docker/entrypoint.sh | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2744d291..505660ab 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -158,7 +158,7 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe # Allow password-less 'sudo' for all users in group 'sudo' RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ - chmod a+s /usr/sbin/useradd /usr/sbin/gosu /usr/sbin/usermod + chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod COPY entrypoint.sh /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 00e1e139..8db41103 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -18,8 +18,13 @@ fi # Notify user about selected UID/GID echo "Current UID/GID: $NEW_UID/$NEW_GID" -useradd --shell /bin/bash -u $NEW_UID -g $NEW_GID -o -m $USER_NAME -usermod -aG sudo $USER_NAME +# Create UNIX group on the fly if it does not exist +if ! grep -q $NEW_GID /etc/group; then + groupadd --gid $NEW_GID $USER_NAME +fi + +useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME +usermod --append --groups sudo $USER_NAME sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME export HOME=/home/$USER_NAME -- cgit v1.2.3 From 61a76c01cafa0efb237b40a390aa15bf3c2721b1 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 11 Jan 2019 09:17:44 +0100 Subject: Jenkins: add deploy stage do pipeline --- Jenkinsfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 7a780286..5dda60ef 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -50,6 +50,11 @@ pipeline { ''' } } + stage('Deploy') { + steps { + archiveArtifacts artifacts: 'build/vyos-*-rolling*.iso', fingerprint: true + } + } } post { -- cgit v1.2.3 From f672f325bb0e16cbe00d21c882cfe0362520b419 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Fri, 11 Jan 2019 21:48:21 +0100 Subject: build-submodules: Changed relative paths to full-paths on most commands --- scripts/build-submodules | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index d58a84c8..86a7d8ae 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -64,13 +64,13 @@ error_msg() { echo -ne " $1\n" } ROOTDIR="$(pwd)" -PKGDIR="$(pwd)/packages" - +PKGDIR="$ROOTDIR/packages" +SCRIPTDIR="$ROOTDIR/scripts" build_package() { PKG=$1 status_start "Building package: $PKG" - if [ ! -d "packages/$PKG/debian" ]; then + if [ ! -d "$PKGDIR/$PKG/debian" ]; then status_skip "No source for: $PKG" return 1 fi @@ -166,14 +166,14 @@ done # KERNEL build_kernel() { status_start "Building-package: vyos-kernel" - if [ ! -f "packages/vyos-kernel/Makefile" ]; then + if [ ! -f "$PKGDIR/vyos-kernel/Makefile" ]; then status_skip "No source for: vyos-kernel" return 0 fi ( set -e; set -x - cd packages/vyos-kernel > /dev/null - bash -c '../../scripts/build-kernel' + cd $PKGDIR/vyos-kernel > /dev/null + bash -c "$SCRIPTDIR/build-kernel" ) >>$PKGDIR/vyos-kernel.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail @@ -184,9 +184,9 @@ build_kernel() { return 1 fi - VERSION=$(grep "^VERSION" Makefile | grep -Eo '[0-9]{1,4}') - PATCHLEVEL=$(grep "^PATCHLEVEL" Makefile | grep -Eo '[0-9]{1,4}') - SUBLEVEL=$(grep "^SUBLEVEL" Makefile | grep -Eo '[0-9]{1,4}') + VERSION=$(grep "^VERSION" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + PATCHLEVEL=$(grep "^PATCHLEVEL" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + SUBLEVEL=$(grep "^SUBLEVEL" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') ARCH=$(dpkg --print-architecture) echo "$VERSION.$PATCHLEVEL.$SUBLEVEL" > $ROOTDIR/data/kernel_version status_ok @@ -198,32 +198,32 @@ build_kernel build_wireguard() { status_start "Building package: vyos-wireguard" - if [ ! -d "packages/vyos-wireguard/debian" ]; then + if [ ! -d "$PKGDIR/vyos-wireguard/debian" ]; then status_skip "No source for: vyos-wireguard" return 0 fi - if [ ! -f "packages/vyos-kernel/Makefile" ]; then + if [ ! -f "$PKGDIR/vyos-kernel/Makefile" ]; then status_fail error_msg "No Makefile found in kernel package" return 1 fi - if ! grep -q "KBUILD_OUTPUT" packages/vyos-kernel/Makefile; then + if ! grep -q "KBUILD_OUTPUT" $PKGDIR/vyos-kernel/Makefile; then status_fail error_msg "Failed to build package vyos-wireguard, no kernel source found\n" return 1 fi - VERSION=$(grep "^VERSION" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - PATCHLEVEL=$(grep "^PATCHLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + VERSION=$(grep "^VERSION" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + PATCHLEVEL=$(grep "^PATCHLEVEL" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + SUBLEVEL=$(grep "^SUBLEVEL" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') ARCH=$(dpkg --print-architecture) # Collect kernel information ( set -e; set -x - cd packages/vyos-wireguard + cd $PKGDIR/vyos-wireguard echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" | tee debian/wireguard-modules.install - bash -c 'KERNELDIR=/vyos/packages/vyos-kernel dpkg-buildpackage -uc -us -tc -b' + KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b ) >>$PKGDIR/vyos-wireguard.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail @@ -241,29 +241,29 @@ build_wireguard # ACCEL-PPP build_accel-ppp() { status_start "Building package: vyos-accel-ppp" - if [ ! -d "packages/vyos-accel-ppp/debian" ]; then + if [ ! -d "$PKGDIR/vyos-accel-ppp/debian" ]; then status_skip "No source for: vyos-accel-ppp" return 0 fi - if [ ! -f "packages/vyos-kernel/Makefile" ]; then + if [ ! -f "$PKGDIR/vyos-kernel/Makefile" ]; then status_fail error_msg "No Makefile found in kernel package" return 1 fi - if ! grep -q "KBUILD_OUTPUT" packages/vyos-kernel/Makefile; then + if ! grep -q "KBUILD_OUTPUT" $PKGDIR/vyos-kernel/Makefile; then status_fail error_msg "Failed to build package vyos-accel-ppp, no kernel source found\n" fi # Collect kernel information - VERSION=$(grep "^VERSION" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - PATCHLEVEL=$(grep "^PATCHLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') - SUBLEVEL=$(grep "^SUBLEVEL" packages/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + VERSION=$(grep "^VERSION" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + PATCHLEVEL=$(grep "^PATCHLEVEL" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') + SUBLEVEL=$(grep "^SUBLEVEL" $PKGDIR/vyos-kernel/Makefile | grep -Eo '[0-9]{1,4}') ARCH=$(dpkg --print-architecture) ( set -e; set -x - pushd packages/vyos-accel-ppp > /dev/null + cd $PKGDIR/vyos-accel-ppp echo "lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra/*.ko" | tee debian/vyos-accel-ppp-ipoe-kmod.install sed -i "s#[0-9].[0-9][0-9].[0-9]-amd64-vyos#$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos#g" debian/rules KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b -- cgit v1.2.3 From 511f7027b154c0e3bba29374e31cd6b63af68c9a Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 12 Jan 2019 11:04:19 +0100 Subject: Update README.md Docker instructions and branch names --- README.md | 149 ++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 86 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index c6460aff..cc47881c 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@ VyOS toplevel build # Important! -This repository is for building the VyOS version 1.2.0 and above. -For VyOS 1.1.x, use the build-iso repository. +This repository is for building the VyOS versions 1.2.x and above. +For VyOS 1.1, use the [build-iso](https://github.com/vyos/build-iso) repository. # What is VyOS @@ -48,12 +48,14 @@ There are several directories with their own purpose: ## Prerequisites -To build a VyOS 1.2.0 image, you need Debian 8 "Jessie" environment (with jessie-backports repository). +To build a VyOS 1.2.0 image, you need Debian 8 "Jessie" environment (with +jessie-backports repository). -If you do not have a Debian Jessie machine, you may create a chroot environment with the -[debootstrap](https://wiki.debian.org/Debootstrap) tool. +If you do not have a Debian Jessie machine, you may create a chroot environment +with the [debootstrap](https://wiki.debian.org/Debootstrap) tool. -For example, on another version of Debian or another Debian-based distro, these commands will work: +For example, on another version of Debian or another Debian-based distro, these +commands will work: ```bash $ sudo apt-get install debootstrap @@ -64,8 +66,9 @@ $ echo "deb http://deb.debian.org/debian jessie-backports main" >> /etc/apt/sour $ apt-get update ``` -If you are working on a Debian Jessie machine, no special preparation is needed, you only -need to enable jessie-backports and install build dependencies. +If you are working on a Debian Jessie machine, no special preparation is needed, +you only need to enable jessie-backports and install build dependencies. An +up-to-date depnedency list can be found in out [Dockerfile](docker/Dockerfile). Several packages are required for building the ISO: * `python3` @@ -79,9 +82,11 @@ package build scripts will tell you. ## Building the ISO image inside a docker container -Using our `Dockerfile` you can create your own Docker container that can be used -to build a VyOS ISO image. The `Dockerfile` contains some of the most used -packages needed to build a VyOS ISO, a qemu image, and several of the submodules. +Using our [Dockerfile](docker/Dockerfile) you create your own Docker container +that is used to build a VyOS ISO image or other required VyOS packages. The +[Dockerfile](docker/Dockerfile) contains some of the most used packages needed +to build a VyOS ISO, a qemu image, and several of the submodules. Please note +that this is not complete and only gives you a brief overview! ``` squashfs-tools # Required for squashfs file system @@ -114,70 +119,73 @@ python3-lxml # Optional, for building vyos-1x python3-setuptools # Optional, for building vyos-1x python3-nose # Optional, for building vyos-1x python3-coverage # Optional, for building vyos-1x +... ``` -To build the docker image: -``` -docker build -t vyos-builder $PATH_TO_Dockerfile -``` +To build the docker image ensure you have a working [Docker](https://www.docker.com) +environment and then run the following commands: -### Linux - -To run the docker image: -``` -docker run -it --privileged -v /HOST_PATH_OF_VYOS_BUILD_REPO:/vyos -w="/vyos" vyos-builder bash +```bash +$ docker build -t vyos-builder docker ``` -This will drop you into a bash shell with this vyos-build repo mounted at /vyos. -Then follow the instructions bellow to build the VyOS iso and qemu image. +Run the newly built container: +```bash +$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos-builder bash +``` -### MacOS and Windows +This will drop you into a bash shell with this vyos-build repo mounted at +`/vyos`. Then follow the instructions bellow to build the VyOS ISO and QEMU +image. -To run the docker image: -``` -docker run -dt --privileged -v /HOST_PATH/images:/vyos --name=vyos_node_builder vyos-builder bash +```bash +vyos_bld@948a2be7c52c:/vyos$ uname -a +Linux 948a2be7c52c 3.16.0-7-amd64 #1 SMP Debian 3.16.59-1 (2018-10-03) x86_64 GNU/Linux ``` -NOTE: +**NOTE:** * Docker container must be run with `--privileged` flag * We recommended to run the container with a volume mapped in order to easy export built VyOS ISO images to the "external" world +* UNIX ownership is automatically inherited from your host directory but can be + altered by specifying the following environment variables when running the + container: `-e GOSU_UID=$(id -u)` and/or `-e GOSU_GID=$(id -g)` -To connect to the docker image once is running: -``` -docker exec -it vyos_node_builder bash -``` - -After the docker container is running you can git clone the vyos-build repository -inside the container and follow up the bellow instructions in order to build the -VyOS ISO image +After the Docker container is running you can follow up the instructions below in +order to build the VyOS ISO image. ## Building subpackages inside Docker + Prior to building packages you need to checkout and update the submodules you want to compile + ```bash -git submodule update --init packages/PACKAGENAME -cd packages/PACKAGENAME -git checkout BRANCH +$ git submodule update --init packages/PACKAGENAME +$ cd packages/PACKAGENAME +$ git checkout BRANCH ``` + `PACKAGENAME` is the name of the package you want to compile -`BRANCH` is for Crux(1.2) `crux`, for latest rolling use `current` +`BRANCH` is `crux` for VyOS 1.2.x, latest rolling releases use `current` +Fetching all submodules at once and update them to the recent remote branches +`HEAD` is done by calling: -### Pulling all packages -Use this with caution, only run this on a unmodified newly cloned repository ```bash -for dir in packages/*; do - git submodule update --init $dir - pushd $dir - git checkout current - popd -done +$ git submodule update --init --recursive +$ git submodule update --remotes ``` + ### Building packages -The script `./scripts/build-submodules` is created to automate the process of building packages, execute it in the root of `vyos-build` to start compilation on all supported packages that are checked out. -The easiest way to compile is with the `vyos-builder` docker container, it includes all dependencies for compiling supported packages. +The [scripts/build-submodules](scripts/build-submodules) script is used to +automate the process of building (in the future) all VyOS related packages that +are not part of the upstream Debian version. Execute it in the root of the +`vyos-build` directory to start compilation on all supported packages that are +checked out. + +The easiest way to compile is with the above mentioned [Docker](docker/Dockerfile) +container, it includes all dependencies for compiling supported packages. ```bash $ docker run --rm -it -v $(pwd):/vyos -w /vyos \ @@ -186,37 +194,52 @@ $ docker run --rm -it -v $(pwd):/vyos -w /vyos \ ./scripts/build-submodules ``` -NOTE: Prior to executing this script you need to create/build the `vyos-builder` container and checkout all packages you want to compile. +**NOTE:** `--sysctl net.ipv6.conf.lo.disable_ipv6=0` is required to build the +`vyos-strongswan` package + +**NOTE:** Prior to executing this script you need to create or build the Docker +container and checkout all packages you want to compile. + +### Building a single package + +The script above runs all package build inside the Docker container, this is also +possible to do by hand using: + +Executed from the root of `vyos-build` -### Building one package -the script above runs all package build inside a docker container, this is also possible to do by hand using: -Executed from the root directory of vyos-build ```bash $ docker run --rm -it -v $(pwd):/vyos -w /vyos/packages/PACKAGENAME \ --sysctl net.ipv6.conf.lo.disable_ipv6=0 \ vyos-builder \ dpkg-buildpackage -uc -us -tc -b ``` -NOTE: `--sysctl net.ipv6.conf.lo.disable_ipv6=0` is only needed when building vyos-strongswan and can be ignored on other packages -NOTE: Prior to executing this you need to checkout and update the submodules you want to recompile -NOTE: vyos-strongswan will only compile on a linux system, running on osx or windows migth result in a unittest lockup. (it never exits) -Packages that are known to not build using this procedure: +**NOTE:** `--sysctl net.ipv6.conf.lo.disable_ipv6=0` is only needed when +building `vyos-strongswan` and can be ignored on other packages. + +**NOTE:** Prior to executing this you need to checkout and update the submodules +you want to recompile! + +**NOTE:** `vyos-strongswan` will only compile on a Linux system, running on macOS +or Windows migth result in a unittest deadlock (it never exits). + +Packages that are known to not build using this procedure (as of now): + ``` vyatta-util - Not needed anymore -vyatta-quagga - Not needed anymore +vyatta-quagga - Not needed anymore vyos-1x - Unmet build dependencies: whois libvyosconfig0 vyos-frr - Alott of requirements, scary stuff... vyos-kernel - Need special build instructions vyos-wireguard - Needs special build instructions ``` - ## Building the ISO image Before you can build an image, you need to configure your build. To build an image, use the following commands: + ```bash $ ./configure $ make iso @@ -230,6 +253,7 @@ with `--help` ### QEMU Run following command after building the ISO image. + ```bash $ make qemu ``` @@ -237,6 +261,7 @@ $ make qemu ### VMware Run following command after building the QEMU image. + ```bash $ make vmware ``` @@ -262,8 +287,6 @@ In packages that originate from VyOS the master branch is kept in sync with last legacy package is gone, we will switch to using the `master` branch and retire `current`. -For branch naming we use chemical elements: -* hydrogen -* helium -* lithium +For branch naming we switched to use constellations: +* `crux` * ... -- cgit v1.2.3 From 8deaf0aa8418febaa68c370577f066d1e3858ae2 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 12 Jan 2019 20:17:25 +0100 Subject: Remove vyos-frr submodule --- .gitmodules | 4 ---- packages/vyos-frr | 1 - 2 files changed, 5 deletions(-) delete mode 160000 packages/vyos-frr diff --git a/.gitmodules b/.gitmodules index dc756f60..5a4d5ae2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -186,10 +186,6 @@ path = packages/vyos-strongswan url = https://github.com/vyos/vyos-strongswan.git branch = current -[submodule "packages/vyos-frr"] - path = packages/vyos-frr - url = https://github.com/vyos/vyos-frr.git - branch = current [submodule "packages/vyos-accel-ppp"] path = packages/vyos-accel-ppp url = https://github.com/vyos/vyos-accel-ppp.git diff --git a/packages/vyos-frr b/packages/vyos-frr deleted file mode 160000 index 6ba5fb80..00000000 --- a/packages/vyos-frr +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6ba5fb8036f9155a3f724d43513e89ab8f07e8d5 -- cgit v1.2.3 From 45ee65ff89362adcac218f824ee49256999fbc1a Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 12 Jan 2019 20:20:51 +0100 Subject: Add frr submodule --- .gitmodules | 3 +++ packages/frr | 1 + 2 files changed, 4 insertions(+) create mode 160000 packages/frr diff --git a/.gitmodules b/.gitmodules index 5a4d5ae2..dafb012a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -190,3 +190,6 @@ path = packages/vyos-accel-ppp url = https://github.com/vyos/vyos-accel-ppp.git branch = current +[submodule "packages/frr"] + path = packages/frr + url = https://github.com/FRRouting/frr.git diff --git a/packages/frr b/packages/frr new file mode 160000 index 00000000..c7262232 --- /dev/null +++ b/packages/frr @@ -0,0 +1 @@ +Subproject commit c72622322df02e02cb9b6d01379052c1ddda2b53 -- cgit v1.2.3 From 3598b2ab5c543771e82ba3ec5e528abe27b2a0d7 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 12 Jan 2019 20:21:53 +0100 Subject: build-submodules: remove vyos-frr --- scripts/build-submodules | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index bb5f55ce..41cd2808 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -152,7 +152,6 @@ for PKG in mdns-repeater \ vyatta-wireless \ vyatta-wirelessmodem \ vyatta-zone \ - vyos-frr \ vyos-keepalived \ vyos-nhrp \ vyos-pppoe-server \ @@ -166,7 +165,6 @@ for PKG in mdns-repeater \ fi done - # KERNEL build_kernel() { status_start "Building-package: vyos-kernel" -- cgit v1.2.3 From dc447da1b9a3f2e76bd44546dccd8bff98a9022e Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 12 Jan 2019 21:45:13 +0100 Subject: README.md: typo fixes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cc47881c..3f5baa79 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ $ apt-get update If you are working on a Debian Jessie machine, no special preparation is needed, you only need to enable jessie-backports and install build dependencies. An -up-to-date depnedency list can be found in out [Dockerfile](docker/Dockerfile). +up-to-date dependency list can be found in our [Dockerfile](docker/Dockerfile). Several packages are required for building the ISO: * `python3` -- cgit v1.2.3 From 40f93b3ab1abd07f76493f0548176631efe0c24d Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 12 Jan 2019 22:31:19 +0100 Subject: Docker: add upstream 'frr' build dependencies --- docker/Dockerfile | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 505660ab..a8f22246 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -17,6 +17,7 @@ RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/ python3-pystache \ squashfs-tools \ autoconf \ + automake \ dpkg-dev \ syslinux \ genisoimage \ @@ -41,11 +42,11 @@ RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/ python3-lxml \ python3-setuptools \ python3-nose \ - python3-coverage + python3-coverage \ + python3-sphinx # Packages needed for building vyos-strongswan -RUN apt-get update && apt-get install -y -t jessie-backports \ - debhelper &&\ +RUN apt-get update && apt-get install -y -t jessie-backports debhelper &&\ apt-get install -y \ dh-apparmor \ gperf \ @@ -122,9 +123,11 @@ RUN apt-get update && apt-get install -y \ cmake \ liblua5.1-dev -# Packages needed for vyos-frr +# Packages needed for frr RUN apt-get update && apt-get install -y \ + libreadline-dev \ texinfo \ + pkg-config \ imagemagick \ groff \ hardening-wrapper \ @@ -132,7 +135,21 @@ RUN apt-get update && apt-get install -y \ chrpath \ libjson0 \ libjson0-dev \ - python-ipaddr + python-ipaddr \ + python3-dev \ + python3-pip \ + libc-ares-dev \ + libc-ares2 + +# 3rd-party depndencies required for building FRR, see +# http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html +RUN pip3 install pytest +RUN git clone https://github.com/opensourcerouting/libyang /tmp/libyang && \ + cd /tmp/libyang && \ + git checkout -b tmp origin/tmp && \ + mkdir build; cd build && \ + cmake -DENABLE_LYD_PRIV=ON .. && \ + make && make install # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ -- cgit v1.2.3 From 805ad7318a016b35d15f5ceba7f310568edc24db Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 12 Jan 2019 22:38:20 +0100 Subject: Docker: fix build deps for pmacct --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index a8f22246..cf5071cc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -95,7 +95,7 @@ RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \ libpcap-dev \ libpq-dev \ - libmysqlclient-dev \ + default-libmysqlclient-dev \ libgeoip-dev \ librabbitmq-dev \ libjansson-dev \ -- cgit v1.2.3 From f212e76a3b17ac792653f5639ac7ab62576ac433 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 13 Jan 2019 11:16:27 +0100 Subject: Docker: frr-deps: add librtr and libyang --- Jenkinsfile | 9 --------- docker/Dockerfile | 35 ++++++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5dda60ef..fc08eff2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -50,20 +50,11 @@ pipeline { ''' } } - stage('Deploy') { - steps { - archiveArtifacts artifacts: 'build/vyos-*-rolling*.iso', fingerprint: true - } - } } post { always { echo 'One way or another, I have finished' - // change build dir file permissions so wen can cleanup as regular - // user (jenkins) afterwards - sh 'sudo chmod -R 777 .' - echo 'No cleanup for now ....' deleteDir() /* cleanup our workspace */ } } diff --git a/docker/Dockerfile b/docker/Dockerfile index cf5071cc..55bfa5cb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -123,6 +123,28 @@ RUN apt-get update && apt-get install -y \ cmake \ liblua5.1-dev +# Prerequisites for building FRR from source +# see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html +# +# librtr +RUN apt-get update && apt-get install -y \ + doxygen \ + libssh-dev + +RUN export RTRLIB_COMMIT="v0.6.3" && \ + git clone https://github.com/rtrlib/rtrlib.git && \ + cd rtrlib && git checkout $RTRLIB_COMMIT && \ + dpkg-buildpackage -uc -us -tc -b && dpkg -i ../*.deb + +# Prerequisites for building FRR from source +# see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html +# +RUN export LIBYANG_COMMIT="v0.16-r2" && \ + git clone https://github.com/CESNET/libyang.git && \ + cd libyang && git checkout $LIBYANG_COMMIT && mkdir build && cd build && \ + cmake -DENABLE_LYD_PRIV=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr .. && \ + make && make install + # Packages needed for frr RUN apt-get update && apt-get install -y \ libreadline-dev \ @@ -137,20 +159,11 @@ RUN apt-get update && apt-get install -y \ libjson0-dev \ python-ipaddr \ python3-dev \ - python3-pip \ + python3-pytest \ + install-info \ libc-ares-dev \ libc-ares2 -# 3rd-party depndencies required for building FRR, see -# http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html -RUN pip3 install pytest -RUN git clone https://github.com/opensourcerouting/libyang /tmp/libyang && \ - cd /tmp/libyang && \ - git checkout -b tmp origin/tmp && \ - mkdir build; cd build && \ - cmake -DENABLE_LYD_PRIV=ON .. && \ - make && make install - # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ apt-get update &&\ -- cgit v1.2.3 From 71e1588f1f781229de7b7bce4e54e261f033f764 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 13 Jan 2019 22:17:29 +0100 Subject: build-submodules: build frr from source --- scripts/build-submodules | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 41cd2808..747b02d2 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -19,7 +19,7 @@ print_help() { echo "" echo "Parameters:" echo " --init-packages - Initiate all subpackages before building" - echo " --verbose|-v - Enable verbose output" + echo " --verbose - Enable verbose output" } while test $# -gt 0 @@ -32,7 +32,7 @@ do --init-packages) INIT_PACKAGES=1 ;; - --verbose|-v) + --verbose) VERBOSE=1 ;; *) @@ -115,6 +115,29 @@ if [ $INIT_PACKAGES ]; then initialize_packages fi +build_frr() { + # FRR upstream version is specified here + FRR_VER="debian/frr-6.0.2-1" + PKG=frr + status_start "Building package: $PKG (Git commit/tag: $FRR_VER)" + if [ ! -f "$PKGDIR/$PKG/README.md" ]; then + status_skip "No source for: $PKG" + return 1 + fi + ( set -e; set -x + cd $PKGDIR/$PKG + git checkout $FRR_VER + dpkg-buildpackage -uc -us -tc -b + ) >>$PKGDIR/$PKG.buildlog 2>&1 + if [ $? -ne 0 ]; then + status_fail + error_msg "Failed to build package $PKG, look in $PKG.buildlog to examine the fault\n" + return 2 + fi + status_ok +} +build_frr + for PKG in mdns-repeater \ pmacct \ udp-broadcast-relay \ -- cgit v1.2.3 From b28865a5c239aca311769ddafc8df1865d278f7b Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 14 Jan 2019 20:42:26 +0100 Subject: Docker: add ZMQ (ZeroMessageQueue) to FRR deps - optional --- docker/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 55bfa5cb..6cb91545 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -162,7 +162,9 @@ RUN apt-get update && apt-get install -y \ python3-pytest \ install-info \ libc-ares-dev \ - libc-ares2 + libc-ares2 \ + libzmq3 \ + libzmq3-dev # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ -- cgit v1.2.3 From 420ef2830a168dda3f41bde4442488cfc68c6736 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 14 Jan 2019 21:22:07 +0100 Subject: build-submodules support FRR build from 'master' branch --- scripts/build-submodules | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 747b02d2..768294f5 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -116,18 +116,51 @@ if [ $INIT_PACKAGES ]; then fi build_frr() { - # FRR upstream version is specified here - FRR_VER="debian/frr-6.0.2-1" PKG=frr - status_start "Building package: $PKG (Git commit/tag: $FRR_VER)" + + status_start "Building package: $PKG" if [ ! -f "$PKGDIR/$PKG/README.md" ]; then status_skip "No source for: $PKG" return 1 fi + ( set -e; set -x cd $PKGDIR/$PKG - git checkout $FRR_VER - dpkg-buildpackage -uc -us -tc -b + + # Run bootstrap.sh and make a dist tarball + # http://docs.frrouting.org/projects/dev-guide/en/latest/packaging-debian.html + ./bootstrap.sh + ./configure --with-pkg-extra-version=-vyos + make dist + + # Create backports debian sources + mv debianpkg debian + make -f debian/rules backports + + # Create a new directory to build the package and populate with package source. + mkdir frrpkg + cd frrpkg + tar xf ../frr_*.orig.tar.gz + cd frr* + source /etc/os-release + ls -al ../../frr_*${ID}${VERSION_ID}* + tar xf ../../frr_*${ID}${VERSION_ID}*.debian.tar.xz + + # As libyang is not (yet) build and installed as native Debian package FRR + # build system reports the following error: + # + # "dpkg-shlibdeps: error: no dependency information found for + # /usr/lib/x86_64-linux-gnu/libyang.so.0.16" + # + # It is "overruled" by + sed '/dh_systemd_enable frr.service/ a override_dh_shlibdeps:\n\tdh_shlibdeps \ + --dpkg-shlibdeps-params=--ignore-missing-info\n' -i debian/rules + + # Build Debian Package + debuild --no-lintian --set-envvar=WANT_SNMP=1 --set-envvar=WANT_RPKI=1 \ + --set-envvar=WANT_CUMULUS_MODE=0 -b -uc -us + + mv ../frr_*.deb $PKGDIR ) >>$PKGDIR/$PKG.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail -- cgit v1.2.3 From f95182eb157949519e91d640d23c70d273f8c657 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 14 Jan 2019 21:22:07 +0100 Subject: build-submodules: remove vyatta-vrrp which is no longer required vyatta-vrrp code has been replaced by vyos-1x implementation --- .gitmodules | 4 ---- packages/vyatta-vrrp | 1 - scripts/build-submodules | 1 - 3 files changed, 6 deletions(-) delete mode 160000 packages/vyatta-vrrp diff --git a/.gitmodules b/.gitmodules index dafb012a..f2892fca 100644 --- a/.gitmodules +++ b/.gitmodules @@ -74,10 +74,6 @@ path = packages/vyatta-cluster url = https://github.com/vyos/vyatta-cluster.git branch = current -[submodule "packages/vyatta-vrrp"] - path = packages/vyatta-vrrp - url = https://github.com/vyos/vyatta-vrrp.git - branch = current [submodule "packages/vyatta-eventwatch"] path = packages/vyatta-eventwatch url = https://github.com/vyos/vyatta-eventwatch.git diff --git a/packages/vyatta-vrrp b/packages/vyatta-vrrp deleted file mode 160000 index c6411d8c..00000000 --- a/packages/vyatta-vrrp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c6411d8c4c1a11f0305ddee2824d7081cd2654a3 diff --git a/scripts/build-submodules b/scripts/build-submodules index 768294f5..a0bda9f4 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -201,7 +201,6 @@ for PKG in mdns-repeater \ vyatta-op-vpn \ vyatta-openvpn \ vyatta-ravpn \ - vyatta-vrrp \ vyatta-wanloadbalance \ vyatta-webgui \ vyatta-webproxy \ -- cgit v1.2.3 From f23cd2137e12ffcdeb4a60c2bd9698350d4b5fb1 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 14 Jan 2019 21:45:22 +0100 Subject: build-submodules: fix 'sed' script for FRR Debian packaging --- scripts/build-submodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index a0bda9f4..4bfaef33 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -153,8 +153,8 @@ build_frr() { # /usr/lib/x86_64-linux-gnu/libyang.so.0.16" # # It is "overruled" by - sed '/dh_systemd_enable frr.service/ a override_dh_shlibdeps:\n\tdh_shlibdeps \ - --dpkg-shlibdeps-params=--ignore-missing-info\n' -i debian/rules + sed '/dh_systemd_enable frr.service/ a \\noverride_dh_shlibdeps:\n\tdh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info\n' -i debian/rules + # Build Debian Package debuild --no-lintian --set-envvar=WANT_SNMP=1 --set-envvar=WANT_RPKI=1 \ -- cgit v1.2.3 From 1c6bc54504da1d2ce52df1775c6c44ad11bd0e33 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 14 Jan 2019 21:51:59 +0100 Subject: Jenkins: allow regular user to clean 'build/' directory --- Jenkinsfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index fc08eff2..32ddcd65 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -55,6 +55,9 @@ pipeline { post { always { echo 'One way or another, I have finished' + // the 'build' directory got elevated permissions during the build + // cdjust permissions so it can be cleaned up by the regular user + sh 'sudo chmod -R 777 build/' deleteDir() /* cleanup our workspace */ } } -- cgit v1.2.3 From db9b292a980518ce535479b98e233c2da3e014be Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 14 Jan 2019 22:00:01 +0100 Subject: build-submodules: remove vyos-pppoe-server which is replaced by vyos-1x --- .gitmodules | 4 ---- packages/vyos-pppoe-server | 1 - scripts/build-submodules | 1 - 3 files changed, 6 deletions(-) delete mode 160000 packages/vyos-pppoe-server diff --git a/.gitmodules b/.gitmodules index f2892fca..44f0265f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -126,10 +126,6 @@ path = packages/vyatta-ravpn url = https://github.com/vyos/vyatta-ravpn.git branch = current -[submodule "packages/vyos-pppoe-server"] - path = packages/vyos-pppoe-server - url = https://github.com/vyos/vyos-pppoe-server.git - branch = current [submodule "packages/vyos-nhrp"] path = packages/vyos-nhrp url = https://github.com/vyos/vyos-nhrp.git diff --git a/packages/vyos-pppoe-server b/packages/vyos-pppoe-server deleted file mode 160000 index 56670914..00000000 --- a/packages/vyos-pppoe-server +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 566709144fb119d32cc029615cff2e688a8a7557 diff --git a/scripts/build-submodules b/scripts/build-submodules index 4bfaef33..44b1c60d 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -209,7 +209,6 @@ for PKG in mdns-repeater \ vyatta-zone \ vyos-keepalived \ vyos-nhrp \ - vyos-pppoe-server \ vyos-strongswan \ vyos-world \ ; do -- cgit v1.2.3 From 2003c0c276f66d9761180dd42ef37102a3634349 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 14 Jan 2019 22:00:05 +0100 Subject: Jenkins: move post always to post cleanup section --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 32ddcd65..b5210544 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -53,7 +53,7 @@ pipeline { } post { - always { + cleanup { echo 'One way or another, I have finished' // the 'build' directory got elevated permissions during the build // cdjust permissions so it can be cleaned up by the regular user -- cgit v1.2.3 From 99838ee7d41d23042a4c758157e9361817cb0ec0 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Tue, 15 Jan 2019 07:42:44 +0100 Subject: Added support for building only selected packages --- scripts/build-submodules | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/scripts/build-submodules b/scripts/build-submodules index 747b02d2..bd8889eb 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -22,6 +22,8 @@ print_help() { echo " --verbose - Enable verbose output" } +BUILDLIST="" + while test $# -gt 0 do case "$1" in @@ -35,6 +37,10 @@ do --verbose) VERBOSE=1 ;; + --build-*) + VAL=$(sed s/^--build-//g <<< $1) + BUILDLIST="$BUILDLIST $VAL" + ;; *) (>&2 echo "Error: Argument $1 is not valid") echo "" @@ -67,8 +73,26 @@ ROOTDIR="$(pwd)" PKGDIR="$ROOTDIR/packages" SCRIPTDIR="$ROOTDIR/scripts" +package_in_buildlist() { + # Return true if buildlist is not set + if [ -z "$BUILDLIST" ]; then + return 0 + fi + + if [[ $BUILDLIST =~ (^|[[:space:]])$1($|[[:space:]]) ]]; then + return 0 + fi + + return 1 + + +} + build_package() { PKG=$1 + if ! package_in_buildlist $1; then + return 0 + fi status_start "Building package: $PKG" if [ ! -d "$PKGDIR/$PKG/debian" ]; then status_skip "No source for: $PKG" @@ -119,6 +143,10 @@ build_frr() { # FRR upstream version is specified here FRR_VER="debian/frr-6.0.2-1" PKG=frr + if ! package_in_buildlist "frr"; then + return 0 + fi + status_start "Building package: $PKG (Git commit/tag: $FRR_VER)" if [ ! -f "$PKGDIR/$PKG/README.md" ]; then status_skip "No source for: $PKG" @@ -190,6 +218,9 @@ done # KERNEL build_kernel() { + if ! package_in_buildlist "vyos-kernel"; then + return 0 + fi status_start "Building-package: vyos-kernel" if [ ! -f "$PKGDIR/vyos-kernel/Makefile" ]; then status_skip "No source for: vyos-kernel" @@ -225,6 +256,9 @@ fi # WIREGUARD build_wireguard() { + if ! package_in_buildlist "vyos-wireguard"; then + return 0 + fi status_start "Building package: vyos-wireguard" if [ ! -d "$PKGDIR/vyos-wireguard/debian" ]; then @@ -272,6 +306,9 @@ fi # ACCEL-PPP build_accel-ppp() { + if ! package_in_buildlist "accel-ppp"; then + return 0 + fi status_start "Building package: vyos-accel-ppp" if [ ! -d "$PKGDIR/vyos-accel-ppp/debian" ]; then status_skip "No source for: vyos-accel-ppp" -- cgit v1.2.3 From fc61294dd0c7edef9fab3a6e96ddf287df25c3fa Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Tue, 15 Jan 2019 07:43:48 +0100 Subject: Adding help for --build- --- scripts/build-submodules | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/build-submodules b/scripts/build-submodules index bd8889eb..d349327d 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -20,6 +20,7 @@ print_help() { echo "Parameters:" echo " --init-packages - Initiate all subpackages before building" echo " --verbose - Enable verbose output" + echo " --build-[packagename] - build only selected packages" } BUILDLIST="" -- cgit v1.2.3 From c5cef286f3d8a6e0d23ffd71e40186869dd68a29 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Wed, 16 Jan 2019 19:34:05 +0100 Subject: build-submodules: add conntrack-tools --- .gitmodules | 5 +++++ packages/conntrack-tools | 1 + scripts/build-submodules | 1 + 3 files changed, 7 insertions(+) create mode 160000 packages/conntrack-tools diff --git a/.gitmodules b/.gitmodules index 44f0265f..d1f203fd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -185,3 +185,8 @@ [submodule "packages/frr"] path = packages/frr url = https://github.com/FRRouting/frr.git + branch = master +[submodule "packages/conntrack-tools"] + path = packages/conntrack-tools + url = https://github.com/vyos/conntrack-tools.git + branch = current diff --git a/packages/conntrack-tools b/packages/conntrack-tools new file mode 160000 index 00000000..77cf2ae1 --- /dev/null +++ b/packages/conntrack-tools @@ -0,0 +1 @@ +Subproject commit 77cf2ae1cfc281ab11d3fa5ddc73c11bcb60ccd9 diff --git a/scripts/build-submodules b/scripts/build-submodules index 44b1c60d..909f6905 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -174,6 +174,7 @@ build_frr for PKG in mdns-repeater \ pmacct \ udp-broadcast-relay \ + conntrack-tools \ vyatta-bash \ vyatta-cfg \ vyatta-cfg-firewall \ -- cgit v1.2.3 From 459de1ce09f4341caedb920be8535d61509ac710 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Wed, 16 Jan 2019 19:39:43 +0100 Subject: Docker: add missing dependencies for conntrack-tools --- docker/Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 6cb91545..34124407 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -166,6 +166,13 @@ RUN apt-get update && apt-get install -y \ libzmq3 \ libzmq3-dev +# Packages needed for conntrack-tools +RUN apt-get update && apt-get install -y \ + libnetfilter-conntrack-dev \ + libnetfilter-cthelper0-dev \ + libnetfilter-cttimeout-dev \ + libnetfilter-queue-dev + # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ apt-get update &&\ -- cgit v1.2.3 From ccfcfe0d8e4d0969fd72fa65a4e14fc227544506 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Wed, 16 Jan 2019 19:50:15 +0100 Subject: developer: add linux-perf package to vyos-dev apt packages --- data/package-lists/vyos-dev.list.chroot | 1 + 1 file changed, 1 insertion(+) diff --git a/data/package-lists/vyos-dev.list.chroot b/data/package-lists/vyos-dev.list.chroot index b2bf0cfe..63e7cc2c 100644 --- a/data/package-lists/vyos-dev.list.chroot +++ b/data/package-lists/vyos-dev.list.chroot @@ -2,3 +2,4 @@ gdb strace aptitude apt-rdepends +linux-perf -- cgit v1.2.3 From 04389cbef57a5f36eb8dccd5dc2d81ef5e94f9b2 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Wed, 16 Jan 2019 20:28:27 +0100 Subject: build-submodules: add eventwatchd --- .gitmodules | 4 ++++ packages/eventwatchd | 1 + scripts/build-submodules | 1 + 3 files changed, 6 insertions(+) create mode 160000 packages/eventwatchd diff --git a/.gitmodules b/.gitmodules index d1f203fd..939d77c6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -190,3 +190,7 @@ path = packages/conntrack-tools url = https://github.com/vyos/conntrack-tools.git branch = current +[submodule "packages/eventwatchd"] + path = packages/eventwatchd + url = https://github.com/vyos/eventwatchd.git + branch = current \ No newline at end of file diff --git a/packages/eventwatchd b/packages/eventwatchd new file mode 160000 index 00000000..c3d8ae73 --- /dev/null +++ b/packages/eventwatchd @@ -0,0 +1 @@ +Subproject commit c3d8ae7352f3e9c65b0f05dda245d144252574ca diff --git a/scripts/build-submodules b/scripts/build-submodules index 909f6905..c36dccca 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -175,6 +175,7 @@ for PKG in mdns-repeater \ pmacct \ udp-broadcast-relay \ conntrack-tools \ + eventwatchd \ vyatta-bash \ vyatta-cfg \ vyatta-cfg-firewall \ -- cgit v1.2.3 From ecf6f88e137c1e8d1be90b237e85d23a81a7af0b Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 16 Jan 2019 23:19:30 +0100 Subject: Added sisplay of the current commit id on all packages --- scripts/build-submodules | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 9bbc7ed5..960b37ea 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -91,10 +91,11 @@ package_in_buildlist() { build_package() { PKG=$1 + COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) if ! package_in_buildlist $1; then return 0 fi - status_start "Building package: $PKG" + status_start "Building package: $PKG Commit id: $COMMITID" if [ ! -d "$PKGDIR/$PKG/debian" ]; then status_skip "No source for: $PKG" return 1 @@ -115,9 +116,10 @@ echo "Cleaning up buildfiles..." rm -rf $PKGDIR/*.deb rm -rf $PKGDIR/*.changes rm -rf $PKGDIR/*.buildlog +COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR) echo "-----------------------------------------------------" echo "Starting build process for all packages" -echo "" +echo "vyos-build Commit ID: $COMMITID" initialize_packages() { status_start "Initializing packages" @@ -145,7 +147,6 @@ build_frr() { if ! package_in_buildlist "frr"; then return 0 fi - status_start "Building package: $PKG (Git commit/tag: $FRR_VER)" if [ ! -f "$PKGDIR/$PKG/README.md" ]; then status_skip "No source for: $PKG" @@ -251,10 +252,12 @@ done # KERNEL build_kernel() { + PKG="vyos-kernel" if ! package_in_buildlist "vyos-kernel"; then return 0 fi - status_start "Building-package: vyos-kernel" + COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + status_start "Building-package: vyos-kernel Commit ID:$COMMITID" if [ ! -f "$PKGDIR/vyos-kernel/Makefile" ]; then status_skip "No source for: vyos-kernel" return 0 @@ -289,10 +292,12 @@ fi # WIREGUARD build_wireguard() { + PKG="vyos-wireguard" if ! package_in_buildlist "vyos-wireguard"; then return 0 fi - status_start "Building package: vyos-wireguard" + COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + status_start "Building package: vyos-wireguard Commit ID:$COMMITID" if [ ! -d "$PKGDIR/vyos-wireguard/debian" ]; then status_skip "No source for: vyos-wireguard" @@ -339,10 +344,12 @@ fi # ACCEL-PPP build_accel-ppp() { + PKG="vyos-accel-ppp" if ! package_in_buildlist "accel-ppp"; then return 0 fi - status_start "Building package: vyos-accel-ppp" + COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + status_start "Building package: vyos-accel-ppp Commit ID: $COMMITID" if [ ! -d "$PKGDIR/vyos-accel-ppp/debian" ]; then status_skip "No source for: vyos-accel-ppp" return 0 -- cgit v1.2.3 From 872097c8339da9e5f17066ac2a7abfc3524589c7 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 16 Jan 2019 23:30:59 +0100 Subject: Fixed print error when using SKIP message, all text was not overwritten --- scripts/build-submodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 960b37ea..51b18c24 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -64,7 +64,7 @@ status_fail() { } status_skip() { - echo -ne "\r[SKIP] $1\n" + echo -ne "\r[SKIP] $1\033[K\n" } error_msg() { -- cgit v1.2.3 From 7f57ddd45344a51358c79ca7a9ad8488a760b37e Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 17 Jan 2019 06:59:02 +0100 Subject: build-submodules: add ddclient and vyatta-biosdevname --- .gitmodules | 10 +++++++++- packages/ddclient | 1 + packages/vyatta-biosdevname | 1 + scripts/build-submodules | 2 ++ 4 files changed, 13 insertions(+), 1 deletion(-) create mode 160000 packages/ddclient create mode 160000 packages/vyatta-biosdevname diff --git a/.gitmodules b/.gitmodules index 939d77c6..8f05f5fa 100644 --- a/.gitmodules +++ b/.gitmodules @@ -193,4 +193,12 @@ [submodule "packages/eventwatchd"] path = packages/eventwatchd url = https://github.com/vyos/eventwatchd.git - branch = current \ No newline at end of file + branch = current +[submodule "packages/ddclient"] + path = packages/ddclient + url = https://github.com/vyos/ddclient.git + branch = current +[submodule "packages/vyatta-biosdevname"] + path = packages/vyatta-biosdevname + url = https://github.com/vyos/vyatta-biosdevname.git + branch = current diff --git a/packages/ddclient b/packages/ddclient new file mode 160000 index 00000000..869a613c --- /dev/null +++ b/packages/ddclient @@ -0,0 +1 @@ +Subproject commit 869a613c81245678f1261034ff941fc047c2c15d diff --git a/packages/vyatta-biosdevname b/packages/vyatta-biosdevname new file mode 160000 index 00000000..28ccb143 --- /dev/null +++ b/packages/vyatta-biosdevname @@ -0,0 +1 @@ +Subproject commit 28ccb143a09e8a1fb8363757c9a82c3e732a5525 diff --git a/scripts/build-submodules b/scripts/build-submodules index c36dccca..59e4c42f 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -176,7 +176,9 @@ for PKG in mdns-repeater \ udp-broadcast-relay \ conntrack-tools \ eventwatchd \ + ddclient \ vyatta-bash \ + vyatta-biosdevname \ vyatta-cfg \ vyatta-cfg-firewall \ vyatta-cfg-op-pppoe \ -- cgit v1.2.3 From cb2a1e3124fef90e3c7b0c7f9651edaba4993194 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 17 Jan 2019 07:09:15 +0100 Subject: build-submodules: add vyos-opennhrp --- .gitmodules | 4 ++++ packages/vyos-opennhrp | 1 + scripts/build-submodules | 1 + 3 files changed, 6 insertions(+) create mode 160000 packages/vyos-opennhrp diff --git a/.gitmodules b/.gitmodules index 8f05f5fa..d660c544 100644 --- a/.gitmodules +++ b/.gitmodules @@ -202,3 +202,7 @@ path = packages/vyatta-biosdevname url = https://github.com/vyos/vyatta-biosdevname.git branch = current +[submodule "packages/vyos-opennhrp"] + path = packages/vyos-opennhrp + url = https://github.com/vyos/vyos-opennhrp.git + branch = current diff --git a/packages/vyos-opennhrp b/packages/vyos-opennhrp new file mode 160000 index 00000000..41f0852d --- /dev/null +++ b/packages/vyos-opennhrp @@ -0,0 +1 @@ +Subproject commit 41f0852dd0b8d4900a1a743334d88afe490ee587 diff --git a/scripts/build-submodules b/scripts/build-submodules index 59e4c42f..8293df87 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -213,6 +213,7 @@ for PKG in mdns-repeater \ vyatta-zone \ vyos-keepalived \ vyos-nhrp \ + vyos-opennhrp \ vyos-strongswan \ vyos-world \ ; do -- cgit v1.2.3 From 0e8cbf971532e0f6b7c62cecbffc0cc606c3d444 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 17 Jan 2019 07:11:44 +0100 Subject: build-submodules: add vyos-salt-minion --- .gitmodules | 4 ++++ packages/vyos-salt-minion | 1 + scripts/build-submodules | 1 + 3 files changed, 6 insertions(+) create mode 160000 packages/vyos-salt-minion diff --git a/.gitmodules b/.gitmodules index d660c544..e6ffd226 100644 --- a/.gitmodules +++ b/.gitmodules @@ -206,3 +206,7 @@ path = packages/vyos-opennhrp url = https://github.com/vyos/vyos-opennhrp.git branch = current +[submodule "packages/vyos-salt-minion"] + path = packages/vyos-salt-minion + url = https://github.com/vyos/vyos-salt-minion.git + branch = current diff --git a/packages/vyos-salt-minion b/packages/vyos-salt-minion new file mode 160000 index 00000000..c64e526a --- /dev/null +++ b/packages/vyos-salt-minion @@ -0,0 +1 @@ +Subproject commit c64e526a98d4ea8ee3a300bf36cd4348cd46a56c diff --git a/scripts/build-submodules b/scripts/build-submodules index 8293df87..4c163253 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -214,6 +214,7 @@ for PKG in mdns-repeater \ vyos-keepalived \ vyos-nhrp \ vyos-opennhrp \ + vyos-salt-minion \ vyos-strongswan \ vyos-world \ ; do -- cgit v1.2.3 From fc721e01d33caa5280592c08853fb8c252f78972 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 17 Jan 2019 07:13:40 +0100 Subject: build-submodules: add librtr --- .gitmodules | 3 +++ packages/rtrlib | 1 + scripts/build-submodules | 1 + 3 files changed, 5 insertions(+) create mode 160000 packages/rtrlib diff --git a/.gitmodules b/.gitmodules index e6ffd226..691170b3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -210,3 +210,6 @@ path = packages/vyos-salt-minion url = https://github.com/vyos/vyos-salt-minion.git branch = current +[submodule "packages/rtrlib"] + path = packages/rtrlib + url = https://github.com/rtrlib/rtrlib.git diff --git a/packages/rtrlib b/packages/rtrlib new file mode 160000 index 00000000..db2d254d --- /dev/null +++ b/packages/rtrlib @@ -0,0 +1 @@ +Subproject commit db2d254d75b835abb169f2f9e4a8cfbe74a3c365 diff --git a/scripts/build-submodules b/scripts/build-submodules index 4c163253..56dfe84d 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -177,6 +177,7 @@ for PKG in mdns-repeater \ conntrack-tools \ eventwatchd \ ddclient \ + rtrlib \ vyatta-bash \ vyatta-biosdevname \ vyatta-cfg \ -- cgit v1.2.3 From beb556c4fa0b02c5e48b324cf53bde5d8724b007 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 17 Jan 2019 07:13:50 +0100 Subject: build-submodules: add libvyosconfig --- .gitmodules | 5 +++++ packages/libvyosconfig | 1 + scripts/build-submodules | 1 + 3 files changed, 7 insertions(+) create mode 160000 packages/libvyosconfig diff --git a/.gitmodules b/.gitmodules index 691170b3..82c3cbf6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -213,3 +213,8 @@ [submodule "packages/rtrlib"] path = packages/rtrlib url = https://github.com/rtrlib/rtrlib.git +[submodule "packages/libvyosconfig"] + path = packages/libvyosconfig + url = https://github.com/vyos/libvyosconfig.git + branch = master + diff --git a/packages/libvyosconfig b/packages/libvyosconfig new file mode 160000 index 00000000..e75e4ae6 --- /dev/null +++ b/packages/libvyosconfig @@ -0,0 +1 @@ +Subproject commit e75e4ae638c49e512a3013d1806e59a67978c5f9 diff --git a/scripts/build-submodules b/scripts/build-submodules index 56dfe84d..a3a371a1 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -178,6 +178,7 @@ for PKG in mdns-repeater \ eventwatchd \ ddclient \ rtrlib \ + libvyosconfig \ vyatta-bash \ vyatta-biosdevname \ vyatta-cfg \ -- cgit v1.2.3 From 7cce9d000d95f415b93e96f52cb2f2931c32d8bc Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 17 Jan 2019 07:15:45 +0100 Subject: Docker: add dependencies for libvyosconfig --- docker/Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 34124407..03f17890 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -173,6 +173,13 @@ RUN apt-get update && apt-get install -y \ libnetfilter-cttimeout-dev \ libnetfilter-queue-dev +# Packages needed for libvyosconfig +RUN apt-get update && apt-get install -y \ + libffi-dev \ + ocaml-findlib \ + opam \ + menhir + # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ apt-get update &&\ -- cgit v1.2.3 From f2358fc9262cfde1f711374b4be28b0532a269aa Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 16 Jan 2019 23:19:30 +0100 Subject: Added display of the current commit id on built packages --- scripts/build-submodules | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 9bbc7ed5..960b37ea 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -91,10 +91,11 @@ package_in_buildlist() { build_package() { PKG=$1 + COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) if ! package_in_buildlist $1; then return 0 fi - status_start "Building package: $PKG" + status_start "Building package: $PKG Commit id: $COMMITID" if [ ! -d "$PKGDIR/$PKG/debian" ]; then status_skip "No source for: $PKG" return 1 @@ -115,9 +116,10 @@ echo "Cleaning up buildfiles..." rm -rf $PKGDIR/*.deb rm -rf $PKGDIR/*.changes rm -rf $PKGDIR/*.buildlog +COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR) echo "-----------------------------------------------------" echo "Starting build process for all packages" -echo "" +echo "vyos-build Commit ID: $COMMITID" initialize_packages() { status_start "Initializing packages" @@ -145,7 +147,6 @@ build_frr() { if ! package_in_buildlist "frr"; then return 0 fi - status_start "Building package: $PKG (Git commit/tag: $FRR_VER)" if [ ! -f "$PKGDIR/$PKG/README.md" ]; then status_skip "No source for: $PKG" @@ -251,10 +252,12 @@ done # KERNEL build_kernel() { + PKG="vyos-kernel" if ! package_in_buildlist "vyos-kernel"; then return 0 fi - status_start "Building-package: vyos-kernel" + COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + status_start "Building-package: vyos-kernel Commit ID:$COMMITID" if [ ! -f "$PKGDIR/vyos-kernel/Makefile" ]; then status_skip "No source for: vyos-kernel" return 0 @@ -289,10 +292,12 @@ fi # WIREGUARD build_wireguard() { + PKG="vyos-wireguard" if ! package_in_buildlist "vyos-wireguard"; then return 0 fi - status_start "Building package: vyos-wireguard" + COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + status_start "Building package: vyos-wireguard Commit ID:$COMMITID" if [ ! -d "$PKGDIR/vyos-wireguard/debian" ]; then status_skip "No source for: vyos-wireguard" @@ -339,10 +344,12 @@ fi # ACCEL-PPP build_accel-ppp() { + PKG="vyos-accel-ppp" if ! package_in_buildlist "accel-ppp"; then return 0 fi - status_start "Building package: vyos-accel-ppp" + COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + status_start "Building package: vyos-accel-ppp Commit ID: $COMMITID" if [ ! -d "$PKGDIR/vyos-accel-ppp/debian" ]; then status_skip "No source for: vyos-accel-ppp" return 0 -- cgit v1.2.3 From 5b7c04ca8d5ed03d9ee5bdf2dc61dd7c4fb0b427 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 16 Jan 2019 23:30:59 +0100 Subject: Fixed print error when using SKIP message, all text was not overwritten --- scripts/build-submodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 960b37ea..51b18c24 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -64,7 +64,7 @@ status_fail() { } status_skip() { - echo -ne "\r[SKIP] $1\n" + echo -ne "\r[SKIP] $1\033[K\n" } error_msg() { -- cgit v1.2.3 From be0c850e75be125f99f31a1229b3cc0212c00db6 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Thu, 17 Jan 2019 10:08:21 +0100 Subject: Changed command to get commit id --- scripts/build-submodules | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 51b18c24..50814b00 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -91,7 +91,7 @@ package_in_buildlist() { build_package() { PKG=$1 - COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + COMMITID=$(cd $PKGDIR/$PKG; git rev-parse --short=10 HEAD) if ! package_in_buildlist $1; then return 0 fi @@ -116,7 +116,7 @@ echo "Cleaning up buildfiles..." rm -rf $PKGDIR/*.deb rm -rf $PKGDIR/*.changes rm -rf $PKGDIR/*.buildlog -COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR) +COMMITID=$(cd $PKGDIR; git rev-parse --short=10 HEAD) echo "-----------------------------------------------------" echo "Starting build process for all packages" echo "vyos-build Commit ID: $COMMITID" @@ -256,7 +256,7 @@ build_kernel() { if ! package_in_buildlist "vyos-kernel"; then return 0 fi - COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + COMMITID=$(cd $PKGDIR/$PKG; git rev-parse --short=10 HEAD) status_start "Building-package: vyos-kernel Commit ID:$COMMITID" if [ ! -f "$PKGDIR/vyos-kernel/Makefile" ]; then status_skip "No source for: vyos-kernel" @@ -296,7 +296,7 @@ build_wireguard() { if ! package_in_buildlist "vyos-wireguard"; then return 0 fi - COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + COMMITID=$(cd $PKGDIR/$PKG; git rev-parse --short=10 HEAD) status_start "Building package: vyos-wireguard Commit ID:$COMMITID" if [ ! -d "$PKGDIR/vyos-wireguard/debian" ]; then @@ -348,7 +348,7 @@ build_accel-ppp() { if ! package_in_buildlist "accel-ppp"; then return 0 fi - COMMITID=$(git log --pretty=format:'%h' -n 1--git-dir $PKGDIR/$PKG) + COMMITID=$(cd $PKGDIR/$PKG; git rev-parse --short=10 HEAD) status_start "Building package: vyos-accel-ppp Commit ID: $COMMITID" if [ ! -d "$PKGDIR/vyos-accel-ppp/debian" ]; then status_skip "No source for: vyos-accel-ppp" -- cgit v1.2.3 From 8d26ee0cc5f25c373496a0add521d07b336b2aa0 Mon Sep 17 00:00:00 2001 From: hagbard Date: Thu, 17 Jan 2019 11:09:36 -0800 Subject: added submodule vyos-vmwaretools-scripts --- .gitmodules | 4 +++- packages/vyos-vmwaretools-scripts | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) create mode 160000 packages/vyos-vmwaretools-scripts diff --git a/.gitmodules b/.gitmodules index 82c3cbf6..abd17bd6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -217,4 +217,6 @@ path = packages/libvyosconfig url = https://github.com/vyos/libvyosconfig.git branch = master - +[submodule "packages/vyos-vmwaretools-scripts"] + path = packages/vyos-vmwaretools-scripts + url = https://github.com/vyos/vyos-vmwaretools-scripts.git diff --git a/packages/vyos-vmwaretools-scripts b/packages/vyos-vmwaretools-scripts new file mode 160000 index 00000000..b41f886f --- /dev/null +++ b/packages/vyos-vmwaretools-scripts @@ -0,0 +1 @@ +Subproject commit b41f886f59997f28a19e541e6a40b9d39ac43f60 -- cgit v1.2.3 From 52688f9132c9c1ca821d1da821a40747c30aeee7 Mon Sep 17 00:00:00 2001 From: hagbard Date: Thu, 17 Jan 2019 11:30:15 -0800 Subject: adding vyos-xe-guest-utilities since it was removed from vyos-world pointing to that spot here. --- data/package-lists/vyos-x86.list.chroot | 1 + 1 file changed, 1 insertion(+) diff --git a/data/package-lists/vyos-x86.list.chroot b/data/package-lists/vyos-x86.list.chroot index a852e5fb..6bce00e3 100644 --- a/data/package-lists/vyos-x86.list.chroot +++ b/data/package-lists/vyos-x86.list.chroot @@ -3,3 +3,4 @@ grub-pc open-vm-tools qemu-guest-agent hyperv-daemons +vyos-xe-guest-utilities -- cgit v1.2.3 From f5e312d94c2592c72e9b7f37f176aa4ac27c38a0 Mon Sep 17 00:00:00 2001 From: hagbard Date: Thu, 17 Jan 2019 11:32:44 -0800 Subject: adding submodule vyos-xe-guest-utilities --- .gitmodules | 4 ++++ vyos-xe-guest-utilities | 1 + 2 files changed, 5 insertions(+) create mode 160000 vyos-xe-guest-utilities diff --git a/.gitmodules b/.gitmodules index abd17bd6..98cb4a4d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -220,3 +220,7 @@ [submodule "packages/vyos-vmwaretools-scripts"] path = packages/vyos-vmwaretools-scripts url = https://github.com/vyos/vyos-vmwaretools-scripts.git +[submodule "vyos-xe-guest-utilities"] + path = vyos-xe-guest-utilities + url = https://github.com/vyos/vyos-xe-guest-utilities.git + diff --git a/vyos-xe-guest-utilities b/vyos-xe-guest-utilities new file mode 160000 index 00000000..f720a86b --- /dev/null +++ b/vyos-xe-guest-utilities @@ -0,0 +1 @@ +Subproject commit f720a86bb30b96733f24a70249f0ee586c29b1ca -- cgit v1.2.3 From f39651f668bbe983c84aaff8bade5c72a4e5425a Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 17 Jan 2019 23:45:33 +0100 Subject: build-submodules: add VyConf --- .gitmodules | 7 ++++++- packages/vyconf | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) create mode 160000 packages/vyconf diff --git a/.gitmodules b/.gitmodules index 98cb4a4d..1b6e8327 100644 --- a/.gitmodules +++ b/.gitmodules @@ -220,7 +220,12 @@ [submodule "packages/vyos-vmwaretools-scripts"] path = packages/vyos-vmwaretools-scripts url = https://github.com/vyos/vyos-vmwaretools-scripts.git + branch = current [submodule "vyos-xe-guest-utilities"] path = vyos-xe-guest-utilities url = https://github.com/vyos/vyos-xe-guest-utilities.git - + branch = current +[submodule "packages/vyconf"] + path = packages/vyconf + url = https://github.com/vyos/vyconf.git + branch = master diff --git a/packages/vyconf b/packages/vyconf new file mode 160000 index 00000000..1ebea2e6 --- /dev/null +++ b/packages/vyconf @@ -0,0 +1 @@ +Subproject commit 1ebea2e6914e5d2c4f07654bdbd489aa2c1ce165 -- cgit v1.2.3 From d952ca236dda6fa23ad6864509c728851e2260d1 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 17 Jan 2019 23:46:10 +0100 Subject: build-submodules: add vyos-netplug --- .gitmodules | 4 ++++ packages/vyos-netplug | 1 + scripts/build-submodules | 1 + 3 files changed, 6 insertions(+) create mode 160000 packages/vyos-netplug diff --git a/.gitmodules b/.gitmodules index 1b6e8327..cf586e80 100644 --- a/.gitmodules +++ b/.gitmodules @@ -229,3 +229,7 @@ path = packages/vyconf url = https://github.com/vyos/vyconf.git branch = master +[submodule "packages/vyos-netplug"] + path = packages/vyos-netplug + url = https://github.com/vyos/vyos-netplug.git + branch = current diff --git a/packages/vyos-netplug b/packages/vyos-netplug new file mode 160000 index 00000000..2aa80a57 --- /dev/null +++ b/packages/vyos-netplug @@ -0,0 +1 @@ +Subproject commit 2aa80a57a1ee2dfa8955b520d3aaec7543158669 diff --git a/scripts/build-submodules b/scripts/build-submodules index 5dc81e2e..b255b928 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -243,6 +243,7 @@ for PKG in mdns-repeater \ vyatta-wirelessmodem \ vyatta-zone \ vyos-keepalived \ + vyos-netplug \ vyos-nhrp \ vyos-opennhrp \ vyos-salt-minion \ -- cgit v1.2.3 From 4191ec70b6cc6eb6e87364725aae356acd199356 Mon Sep 17 00:00:00 2001 From: hagbard Date: Fri, 18 Jan 2019 10:21:45 -0800 Subject: Adding vyos-netplug to installation package list --- data/package-lists/vyos-x86.list.chroot | 1 + 1 file changed, 1 insertion(+) diff --git a/data/package-lists/vyos-x86.list.chroot b/data/package-lists/vyos-x86.list.chroot index 6bce00e3..5bb0dbd7 100644 --- a/data/package-lists/vyos-x86.list.chroot +++ b/data/package-lists/vyos-x86.list.chroot @@ -4,3 +4,4 @@ open-vm-tools qemu-guest-agent hyperv-daemons vyos-xe-guest-utilities +vyos-netplug -- cgit v1.2.3 From 86cc0f3fd0abc8f5a9c422422c019453748b9ea6 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 19 Jan 2019 15:07:48 +0100 Subject: Docker: restructure installation routine for better readability --- docker/Dockerfile | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 03f17890..3f365eba 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,14 +3,25 @@ # in order to easy exprort images built to "external" world FROM debian:jessie -RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ - apt-get update && apt-get install -y \ - gosu \ +ENV DEBIAN_FRONTEND noninteractive + +# Standard shell should be bash not dash +RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ + dpkg-reconfigure dash + +RUN apt-get update && apt-get install -y \ + dialog \ + apt-utils \ + locales + +RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen +ENV LANG en_US.utf8 + +RUN apt-get update && apt-get install -y \ vim \ git \ make \ sudo \ - locales \ live-build \ pbuilder \ devscripts \ @@ -28,11 +39,11 @@ RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/ libglib2.0-dev \ libboost-filesystem-dev \ libapt-pkg-dev \ + libncurses5-dev \ flex \ bison \ libperl-dev \ libnfnetlink-dev \ - python3-git \ parted \ kpartx \ jq \ @@ -45,8 +56,14 @@ RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/ python3-coverage \ python3-sphinx +# Add Debian jessie-backports support +RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list && \ + apt-get update && apt-get install -y -t jessie-backports \ + python3-git \ + gosu + # Packages needed for building vyos-strongswan -RUN apt-get update && apt-get install -y -t jessie-backports debhelper &&\ +RUN apt-get update && apt-get install -y -t jessie-backports debhelper && \ apt-get install -y \ dh-apparmor \ gperf \ @@ -72,11 +89,6 @@ RUN apt-get update && apt-get install -y -t jessie-backports debhelper &&\ RUN apt-get update && apt-get install -y -t jessie-backports \ dh-systemd -# Packages needed for vyatta-bash -RUN apt-get update && apt-get install -y \ - libncurses5-dev \ - locales - # Packages needed for vyatta-cfg RUN apt-get update &&apt-get install -y \ libboost-filesystem-dev @@ -176,25 +188,18 @@ RUN apt-get update && apt-get install -y \ # Packages needed for libvyosconfig RUN apt-get update && apt-get install -y \ libffi-dev \ - ocaml-findlib \ opam \ - menhir + mercurial \ + oasis # Update live-build -RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ +RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list && \ apt-get update &&\ apt-get install -y -t stretch live-build &&\ rm -f /etc/apt/sources.list.d/stretch.list &&\ apt-get update &&\ rm -rf /var/lib/apt/lists/* -# Standard shell should be bash not dash -RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ - DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash - -RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen -ENV LANG en_US.utf8 - # Install packer RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ jq -r -M '.current_version')"; \ -- cgit v1.2.3 From 1bc7b2b3154ff13922f49285848f6800df548244 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 21 Jan 2019 20:11:05 +0100 Subject: Docker: add build dependencies for VyConf and libvyosconfig --- docker/Dockerfile | 67 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 12 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3f365eba..d951a8ff 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,6 +20,7 @@ ENV LANG en_US.utf8 RUN apt-get update && apt-get install -y \ vim \ git \ + curl \ make \ sudo \ live-build \ @@ -137,11 +138,9 @@ RUN apt-get update && apt-get install -y \ # Prerequisites for building FRR from source # see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html -# -# librtr RUN apt-get update && apt-get install -y \ - doxygen \ - libssh-dev + doxygen \ + libssh-dev RUN export RTRLIB_COMMIT="v0.6.3" && \ git clone https://github.com/rtrlib/rtrlib.git && \ @@ -185,19 +184,63 @@ RUN apt-get update && apt-get install -y \ libnetfilter-cttimeout-dev \ libnetfilter-queue-dev +# Packages needed for libvyosconfig && VyConf +RUN apt-get update && apt-get install -y \ + libffi-dev + # Packages needed for libvyosconfig +RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \ + sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \ + opam init --disable-sandboxing && \ + eval $(opam env) && opam switch create 4.07.0 && \ + eval $(opam env) && opam install -y oasis && \ + eval $(opam env) && opam install -y \ + fileutils \ + lwt \ + lwt_ppx \ + lwt_log \ + ocplib-endian \ + ounit \ + pcre \ + ppx_deriving_yojson \ + sha \ + toml \ + xml-light \ + batteries \ + ocaml-protoc \ + ctypes-foreign + +RUN eval $(opam env) && opam install -y \ + ctypes + +# Build VyConf which is required to build libvyosconfig +RUN eval $(opam env) && \ + git clone https://github.com/vyos/vyconf.git && \ + cd vyconf && \ + git checkout 0f121c12a84200 && \ + ./build-setup.sh && \ + ./configure --enable-tests && \ + make && \ + make test && \ + make install + +# Build libvyosconfig +RUN eval $(opam env) && \ + git clone https://github.com/vyos/libvyosconfig && \ + cd libvyosconfig && \ + git checkout e75e4ae638c49e && \ + dpkg-buildpackage -uc -us -tc -b && \ + dpkg -i ../libvyosconfig0_*_amd64.deb + +# Packages needed for vyos-1x RUN apt-get update && apt-get install -y \ - libffi-dev \ - opam \ - mercurial \ - oasis + whois # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list && \ - apt-get update &&\ - apt-get install -y -t stretch live-build &&\ - rm -f /etc/apt/sources.list.d/stretch.list &&\ - apt-get update &&\ + apt-get update && apt-get install -y -t stretch live-build && \ + rm -f /etc/apt/sources.list.d/stretch.list && \ + apt-get update && \ rm -rf /var/lib/apt/lists/* # Install packer -- cgit v1.2.3 From f33c047da1350ec47cf01385359e12085373944d Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 21 Jan 2019 20:11:59 +0100 Subject: Jenkins: force usage of self compiled packages Remove all references to the vyos package mirror via Python vyos_repo_entry variable. Thus we ensure that only the packages the have been compiled from source are used. --- Jenkinsfile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index b5210544..d1d8ad95 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -40,12 +40,23 @@ pipeline { sh 'scripts/build-submodules --verbose' } } + stage('Build ISO') { steps { sh ''' #!/bin/sh + + # we do not want to fetch VyOS packages from the mirror, + # we rather prefer all build by ourself! + sed -i '/vyos_repo_entry/d' scripts/live-build-config + + # Configure the ISO ./configure --build-by="autobuild@vyos.net" --debian-mirror="http://ftp.us.debian.org/debian/" + + # Debug to see which Debian packages we have so far ls -al packages/*.deb + + # Finally build our ISO sudo make iso ''' } -- cgit v1.2.3 From daaaa3eaf83322cccca1b82b7b6b099b5d2fe085 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 21 Jan 2019 20:19:21 +0100 Subject: build-submodules: add vyos-1x package --- scripts/build-submodules | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/build-submodules b/scripts/build-submodules index b255b928..62902265 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -249,6 +249,7 @@ for PKG in mdns-repeater \ vyos-salt-minion \ vyos-strongswan \ vyos-world \ + vyos-1x \ ; do build_package "$PKG" ERRCODE=$? -- cgit v1.2.3 From dd16b20071c61d736103fc7bbacd88c71e4266af Mon Sep 17 00:00:00 2001 From: Nicholas Humfrey Date: Mon, 21 Jan 2019 22:25:02 +0000 Subject: Added menhir as a build dependency for libvyosconfig --- docker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d951a8ff..12f8c324 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -186,7 +186,8 @@ RUN apt-get update && apt-get install -y \ # Packages needed for libvyosconfig && VyConf RUN apt-get update && apt-get install -y \ - libffi-dev + libffi-dev \ + menhir # Packages needed for libvyosconfig RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \ -- cgit v1.2.3 From 5b8b51eabcd2a45250c652ced256cfad19b45c5f Mon Sep 17 00:00:00 2001 From: Nicholas Humfrey Date: Fri, 25 Jan 2019 13:03:01 +0000 Subject: Corrected typo in git submodule command (#40) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3f5baa79..57f7561e 100644 --- a/README.md +++ b/README.md @@ -173,7 +173,7 @@ Fetching all submodules at once and update them to the recent remote branches ```bash $ git submodule update --init --recursive -$ git submodule update --remotes +$ git submodule update --remote ``` ### Building packages -- cgit v1.2.3 From 48b855d19f6a89523df9e667d22aac3a5bc4af3b Mon Sep 17 00:00:00 2001 From: Daniel Pro <43214013+daniel-pro@users.noreply.github.com> Date: Fri, 25 Jan 2019 14:03:37 +0100 Subject: Update README.md (#38) Corrected few minor typos --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 57f7561e..4ea756cb 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ There are several directories with their own purpose: build/ Used for temporary files used for the build and for build artifacts scripts/ Scripts that are used for the build process - data/ Data required for buildng the ISO (such as boot splash) + data/ Data required for building the ISO (such as boot splash) tools/ Scripts that are used for maintainer's tasks automation and other purposes, but not during ISO build process @@ -221,7 +221,7 @@ building `vyos-strongswan` and can be ignored on other packages. you want to recompile! **NOTE:** `vyos-strongswan` will only compile on a Linux system, running on macOS -or Windows migth result in a unittest deadlock (it never exits). +or Windows might result in a unittest deadlock (it never exits). Packages that are known to not build using this procedure (as of now): @@ -229,7 +229,7 @@ Packages that are known to not build using this procedure (as of now): vyatta-util - Not needed anymore vyatta-quagga - Not needed anymore vyos-1x - Unmet build dependencies: whois libvyosconfig0 -vyos-frr - Alott of requirements, scary stuff... +vyos-frr - A lot of requirements, scary stuff... vyos-kernel - Need special build instructions vyos-wireguard - Needs special build instructions ``` @@ -273,7 +273,7 @@ $ make vmware The default branch that contains the most recent VyOS code is called `current` rather than `master`. We know it's confusing, but it's not easy to fix. In a nutshell, the code we inherited from Vyatta Core had its `master` branch so out -of sync with everything it was beyong any repair. Vyatta developers used to create +of sync with everything it was beyond any repair. Vyatta developers used to create a new branch not when a release is ready for code freeze, but rather before starting to work on a new release. This is hard to change in existing code, so this is just the way it is, for now. -- cgit v1.2.3 From 7a67b6b8bbb2bd8c03b3c3245bdd37065ad35bd2 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Sat, 26 Jan 2019 05:05:37 +0700 Subject: Revert "Added menhir as a build dependency for libvyosconfig" (#41) --- docker/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 12f8c324..d951a8ff 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -186,8 +186,7 @@ RUN apt-get update && apt-get install -y \ # Packages needed for libvyosconfig && VyConf RUN apt-get update && apt-get install -y \ - libffi-dev \ - menhir + libffi-dev # Packages needed for libvyosconfig RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \ -- cgit v1.2.3 From aa2bff5ff5cedb3979f3677a5d45fd029db61a20 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Sat, 26 Jan 2019 05:10:04 +0700 Subject: Install Menhir with opam and use an opam pin for installing vyconf Quite a bit shorter than running the whole vyconf build sequence by hand. --- docker/Dockerfile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d951a8ff..e77cb540 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -208,7 +208,8 @@ RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --o xml-light \ batteries \ ocaml-protoc \ - ctypes-foreign + ctypes-foreign \ + menhir RUN eval $(opam env) && opam install -y \ ctypes @@ -218,11 +219,7 @@ RUN eval $(opam env) && \ git clone https://github.com/vyos/vyconf.git && \ cd vyconf && \ git checkout 0f121c12a84200 && \ - ./build-setup.sh && \ - ./configure --enable-tests && \ - make && \ - make test && \ - make install + opam pin add vyconf. # Build libvyosconfig RUN eval $(opam env) && \ -- cgit v1.2.3 From 49054b5def26e4998e6100fcfa3962b1643b334a Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Sat, 26 Jan 2019 05:13:10 +0700 Subject: Correct a typo in opam pin add --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index e77cb540..fad8a5fb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -219,7 +219,7 @@ RUN eval $(opam env) && \ git clone https://github.com/vyos/vyconf.git && \ cd vyconf && \ git checkout 0f121c12a84200 && \ - opam pin add vyconf. + opam pin add vyconf . # Build libvyosconfig RUN eval $(opam env) && \ -- cgit v1.2.3 From c1723b4d36d050e4cad95fb42447e263cdd7aaa1 Mon Sep 17 00:00:00 2001 From: hagbard Date: Fri, 25 Jan 2019 14:51:48 -0800 Subject: Fixed typo. --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 60c86100..c0de03e0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ A brief documentation about VyOS can be found at https://github.com/vyos-documentation or rendered at https://vyos.readthedocs.org -Another landing sport would be the old Wiki at http://wiki.vyos.net. +Another landing spot would be the old Wiki at http://wiki.vyos.net. Build instructions for a 1U DIY VyOS bare metal router is [here](1u-diy-atom-c3000/README.md) -- cgit v1.2.3 From e81343f0838a84be80846d0b2288d3f114a57338 Mon Sep 17 00:00:00 2001 From: Nicholas Humfrey Date: Fri, 25 Jan 2019 23:14:41 +0000 Subject: Docker: Delete duplicate line for libcurl4-openssl-dev (#42) --- docker/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index fad8a5fb..0d49bfe9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -79,7 +79,6 @@ RUN apt-get update && apt-get install -y -t jessie-backports debhelper && \ iptables \ xl2tpd \ libcurl4-openssl-dev \ - libcurl4-openssl-dev \ libkrb5-dev \ libsqlite3-dev \ libssl-dev \ -- cgit v1.2.3 From 3bd1273e9cfd347c79ddfe07e6b18d3d7f34d0a7 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 09:55:33 +0100 Subject: submodules: add vyos-xe-guest-utilities --- .gitmodules | 4 ++++ packages/vyos-xe-guest-utilities | 1 + scripts/build-submodules | 1 + 3 files changed, 6 insertions(+) create mode 160000 packages/vyos-xe-guest-utilities diff --git a/.gitmodules b/.gitmodules index cf586e80..e71823a2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -233,3 +233,7 @@ path = packages/vyos-netplug url = https://github.com/vyos/vyos-netplug.git branch = current +[submodule "packages/vyos-xe-guest-utilities"] + path = packages/vyos-xe-guest-utilities + url = http://github.com/vyos/vyos-xe-guest-utilities.git + branch = current \ No newline at end of file diff --git a/packages/vyos-xe-guest-utilities b/packages/vyos-xe-guest-utilities new file mode 160000 index 00000000..a31c0926 --- /dev/null +++ b/packages/vyos-xe-guest-utilities @@ -0,0 +1 @@ +Subproject commit a31c092661c65e177967535e8c53dc5b7a04b5cd diff --git a/scripts/build-submodules b/scripts/build-submodules index 62902265..3756f6d5 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -242,6 +242,7 @@ for PKG in mdns-repeater \ vyatta-wireless \ vyatta-wirelessmodem \ vyatta-zone \ + vyos-xe-guest-utilities \ vyos-keepalived \ vyos-netplug \ vyos-nhrp \ -- cgit v1.2.3 From d1e120574de4b6cb14465ba743f6167552dd9cdb Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 09:57:04 +0100 Subject: submodules: add igmpproxy --- .gitmodules | 4 ++++ packages/igmpproxy | 1 + scripts/build-submodules | 5 ++--- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 160000 packages/igmpproxy diff --git a/.gitmodules b/.gitmodules index e71823a2..ee1f8009 100644 --- a/.gitmodules +++ b/.gitmodules @@ -236,4 +236,8 @@ [submodule "packages/vyos-xe-guest-utilities"] path = packages/vyos-xe-guest-utilities url = http://github.com/vyos/vyos-xe-guest-utilities.git + branch = current +[submodule "packages/igmpproxy"] + path = packages/igmpproxy + url = https://github.com/vyos/igmpproxy.git branch = current \ No newline at end of file diff --git a/packages/igmpproxy b/packages/igmpproxy new file mode 160000 index 00000000..1f87c675 --- /dev/null +++ b/packages/igmpproxy @@ -0,0 +1 @@ +Subproject commit 1f87c675725bff8f380bf7364c3961ee5a5a9e4f diff --git a/scripts/build-submodules b/scripts/build-submodules index 3756f6d5..9090c66e 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -83,10 +83,8 @@ package_in_buildlist() { if [[ $BUILDLIST =~ (^|[[:space:]])$1($|[[:space:]]) ]]; then return 0 fi - - return 1 - + return 1 } build_package() { @@ -207,6 +205,7 @@ for PKG in mdns-repeater \ eventwatchd \ ddclient \ rtrlib \ + igmpproxy \ libvyosconfig \ vyatta-bash \ vyatta-biosdevname \ -- cgit v1.2.3 From b8dca95039982d76b647c97f50a2270d25f71fd0 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 09:58:37 +0100 Subject: Build submodules in parallel with number of host CPUs --- scripts/build-submodules | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 9090c66e..987a055f 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -100,7 +100,7 @@ build_package() { fi ( set -e; set -x cd $PKGDIR/$PKG - dpkg-buildpackage -uc -us -tc -b + dpkg-buildpackage -uc -us -tc -b -j$(cat /proc/cpuinfo | grep processor | wc -l) ) >>$PKGDIR/$PKG.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail @@ -185,7 +185,8 @@ build_frr() { # Build Debian Package debuild --no-lintian --set-envvar=WANT_SNMP=1 --set-envvar=WANT_RPKI=1 \ - --set-envvar=WANT_CUMULUS_MODE=0 -b -uc -us + --set-envvar=WANT_CUMULUS_MODE=0 -b -uc -us \ + -j$(cat /proc/cpuinfo | grep processor | wc -l) mv ../frr_*.deb $PKGDIR ) >>$PKGDIR/$PKG.buildlog 2>&1 @@ -332,7 +333,7 @@ build_wireguard() { ( set -e; set -x cd $PKGDIR/vyos-wireguard echo "src/wireguard.ko /lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra" | tee debian/wireguard-modules.install - KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b + KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b -j$(cat /proc/cpuinfo | grep processor | wc -l) ) >>$PKGDIR/vyos-wireguard.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail @@ -383,7 +384,7 @@ build_accel-ppp() { cd $PKGDIR/vyos-accel-ppp echo "lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos/extra/*.ko" | tee debian/vyos-accel-ppp-ipoe-kmod.install sed -i "s#[0-9].[0-9][0-9].[0-9]-amd64-vyos#$VERSION.$PATCHLEVEL.$SUBLEVEL-$ARCH-vyos#g" debian/rules - KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b + KERNELDIR=$PKGDIR/vyos-kernel dpkg-buildpackage -uc -us -tc -b -j$(cat /proc/cpuinfo | grep processor | wc -l) ) >>$PKGDIR/vyos-accel-ppp.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail -- cgit v1.2.3 From 8a727f71fa3d63b91938f29376f726a904fffa73 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 09:59:15 +0100 Subject: Fix --verbose option when building submodules --- scripts/build-submodules | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 987a055f..31bf55a3 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -128,7 +128,7 @@ initialize_packages() { ) >>$PKGDIR/init-packages.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail - if [ $VERBOSE ]; then + if [ $VERBOSE -eq 1 ]; then cat $PKGDIR/init-packages.buildlog fi error_msg "Failed to update all package, look in init-packages.buildlog to examine the fault\n" @@ -278,7 +278,7 @@ build_kernel() { ) >>$PKGDIR/vyos-kernel.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail - if [ $VERBOSE ]; then + if [ $VERBOSE -eq 1 ]; then cat $PKGDIR/vyos-kernel.buildlog fi error_msg "Failed to build package vyos-kernel, look in vyos-kernel.buildlog to examine the fault\n" @@ -337,7 +337,7 @@ build_wireguard() { ) >>$PKGDIR/vyos-wireguard.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail - if [ $VERBOSE ]; then + if [ $VERBOSE -eq 1 ]; then cat $PKGDIR/vyos-wireguard.buildlog fi error_msg "Failed to build package vyos-wireguard, look in vyos-wireguard.buildlog to examine the fault\n" @@ -388,7 +388,7 @@ build_accel-ppp() { ) >>$PKGDIR/vyos-accel-ppp.buildlog 2>&1 if [ $? -ne 0 ]; then status_fail - if [ $VERBOSE ]; then + if [ $VERBOSE -eq 1 ]; then cat $PKGDIR/vyos-accel-ppp.buildlog fi error_msg "Failed to build package vyos-accel-ppp, look in vyos-accel-ppp.buildlog to examine the fault\n" -- cgit v1.2.3 From 0ad391b9e2b4c9693c6ea32f8e10dd8f1c52af40 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 10:00:10 +0100 Subject: When building frr clean out Git repository first --- scripts/build-submodules | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 31bf55a3..a84e0b93 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -153,6 +153,8 @@ build_frr() { ( set -e; set -x cd $PKGDIR/$PKG + git clean -dxf + git reset --hard # Run bootstrap.sh and make a dist tarball # http://docs.frrouting.org/projects/dev-guide/en/latest/packaging-debian.html @@ -170,7 +172,6 @@ build_frr() { tar xf ../frr_*.orig.tar.gz cd frr* source /etc/os-release - ls -al ../../frr_*${ID}${VERSION_ID}* tar xf ../../frr_*${ID}${VERSION_ID}*.debian.tar.xz # As libyang is not (yet) build and installed as native Debian package FRR -- cgit v1.2.3 From 9d52ba2003467db001d095a9ac037c29b5ef4aab Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 10:00:58 +0100 Subject: When building parse Git commit ID --- scripts/build-submodules | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index a84e0b93..3502a7d4 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -142,10 +142,11 @@ fi build_frr() { PKG=frr - if ! package_in_buildlist "frr"; then + COMMITID=$(cd $PKGDIR/$PKG; git rev-parse --short=10 HEAD) + if ! package_in_buildlist $1; then return 0 fi - status_start "Building package: $PKG (Git commit/tag: $FRR_VER)" + status_start "Building package: $PKG Commit id: $COMMITID" if [ ! -f "$PKGDIR/$PKG/README.md" ]; then status_skip "No source for: $PKG" return 1 -- cgit v1.2.3 From 873cf3a68f318ba3a7469b0dbb5c9415787eef98 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 10:01:50 +0100 Subject: When building linux-kernel use number of host CPUs on parallel build --- scripts/build-kernel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-kernel b/scripts/build-kernel index 80229d5d..4a23d9c7 100755 --- a/scripts/build-kernel +++ b/scripts/build-kernel @@ -27,7 +27,7 @@ case "$ARCH" in if [ ${PATCHLEVEL} -lt 14 ]; then TARGETS+=" kernel_manual kernel_doc" fi - CONCURRENCY_LEVEL=4 LOCALVERSION="" make-kpkg --rootcmd fakeroot --initrd --append_to_version -amd64-vyos --revision=$VERSION.$PATCHLEVEL.$SUBLEVEL-1+vyos1+current1 -j4 ${TARGETS} + CONCURRENCY_LEVEL=4 LOCALVERSION="" make-kpkg --rootcmd fakeroot --initrd --append_to_version -amd64-vyos --revision=$VERSION.$PATCHLEVEL.$SUBLEVEL-1+vyos1+current1 -j$(cat /proc/cpuinfo | grep processor | wc -l) ${TARGETS} ;; armhf) -- cgit v1.2.3 From b4dfb255edab84f8f1461492eed5425ff9e80df5 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 10:03:05 +0100 Subject: Docker: Make OPAM system wide available --- docker/Dockerfile | 30 +++++++++++++++++++----------- docker/entrypoint.sh | 4 ++++ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d951a8ff..cffa8621 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y \ curl \ make \ sudo \ + mc \ live-build \ pbuilder \ devscripts \ @@ -191,10 +192,13 @@ RUN apt-get update && apt-get install -y \ # Packages needed for libvyosconfig RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \ sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \ - opam init --disable-sandboxing && \ - eval $(opam env) && opam switch create 4.07.0 && \ - eval $(opam env) && opam install -y oasis && \ - eval $(opam env) && opam install -y \ + opam init --root=/opt/opam --comp=4.07.0 --disable-sandboxing + +RUN eval $(opam env --root=/opt/opam --set-root) && \ + opam install -y \ + oasis + +RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \ fileutils \ lwt \ lwt_ppx \ @@ -210,14 +214,14 @@ RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --o ocaml-protoc \ ctypes-foreign -RUN eval $(opam env) && opam install -y \ +RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \ ctypes # Build VyConf which is required to build libvyosconfig -RUN eval $(opam env) && \ - git clone https://github.com/vyos/vyconf.git && \ - cd vyconf && \ - git checkout 0f121c12a84200 && \ +RUN eval $(opam env --root=/opt/opam --set-root) && \ + git clone https://github.com/vyos/vyconf.git /tmp/vyconf && \ + cd /tmp/vyconf && \ + git checkout v0.1 && \ ./build-setup.sh && \ ./configure --enable-tests && \ make && \ @@ -225,10 +229,10 @@ RUN eval $(opam env) && \ make install # Build libvyosconfig -RUN eval $(opam env) && \ +RUN eval $(opam env --root=/opt/opam --set-root) && \ git clone https://github.com/vyos/libvyosconfig && \ cd libvyosconfig && \ - git checkout e75e4ae638c49e && \ + git checkout v0.0.4 && \ dpkg-buildpackage -uc -us -tc -b && \ dpkg -i ../libvyosconfig0_*_amd64.deb @@ -236,6 +240,10 @@ RUN eval $(opam env) && \ RUN apt-get update && apt-get install -y \ whois +# Packages needed for vyos-xe-guest-utilities +RUN apt-get update && apt-get install -y \ + golang + # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list && \ apt-get update && apt-get install -y -t stretch live-build && \ diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 8db41103..ed6ca7d9 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -23,6 +23,10 @@ if ! grep -q $NEW_GID /etc/group; then groupadd --gid $NEW_GID $USER_NAME fi +# libvyosconfig depends on OCaml/OPAM so we make sure +# we can use it +echo "eval \$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc + useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME usermod --append --groups sudo $USER_NAME sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME -- cgit v1.2.3 From fdf47c42269f7adb7d5f3e60b8180e8b9bc77503 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 10:04:13 +0100 Subject: Jenkins: cleanup --- Jenkinsfile | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d1d8ad95..4bc64b26 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -30,14 +30,16 @@ pipeline { stage('Submodule Init') { steps { sh ''' - git submodule update --init --recursive - git submodule update --remote + git submodule update --init --recursive --remote ''' } } stage('Build Packages') { steps { - sh 'scripts/build-submodules --verbose' + sh ''' + #!/bin/sh + scripts/build-submodules --verbose + ''' } } @@ -68,7 +70,12 @@ pipeline { echo 'One way or another, I have finished' // the 'build' directory got elevated permissions during the build // cdjust permissions so it can be cleaned up by the regular user - sh 'sudo chmod -R 777 build/' + sh ''' + #!/bin/bash + if [ -d build ]; then + sudo chmod -R 777 build/ + fi + ''' deleteDir() /* cleanup our workspace */ } } -- cgit v1.2.3 From 32bae0ef24706e11d9b072b5d2c99f33c26cf050 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 13:16:27 +0100 Subject: Docker: ease opam pin call for vyconf --- docker/Dockerfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index b27abe39..bdbc9fae 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -219,10 +219,7 @@ RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \ # Build VyConf which is required to build libvyosconfig RUN eval $(opam env --root=/opt/opam --set-root) && \ - git clone https://github.com/vyos/vyconf.git /tmp/vyconf && \ - cd /tmp/vyconf && \ - git checkout v0.1 && \ - opam pin add vyconf . + opam pin add vyconf https://github.com/vyos/vyconf.git#v0.1 -y # Build libvyosconfig RUN eval $(opam env --root=/opt/opam --set-root) && \ -- cgit v1.2.3 From c268053839010c5abbef223498a71a5ecce8a632 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 13:57:01 +0100 Subject: Docker: evaluate OPAM environment during build time --- docker/Dockerfile | 3 +++ docker/entrypoint.sh | 4 ---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index bdbc9fae..b874bf92 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -255,5 +255,8 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod +# Ensure sure all users have access to our OCAM installation +RUN echo "$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc + COPY entrypoint.sh /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index ed6ca7d9..8db41103 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -23,10 +23,6 @@ if ! grep -q $NEW_GID /etc/group; then groupadd --gid $NEW_GID $USER_NAME fi -# libvyosconfig depends on OCaml/OPAM so we make sure -# we can use it -echo "eval \$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc - useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME usermod --append --groups sudo $USER_NAME sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME -- cgit v1.2.3 From 670b6ca83b018ff733db047defd8b136a5aed900 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 21:23:08 +0100 Subject: Docker: build libyang Debian package --- docker/Dockerfile | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index b874bf92..bca48ff8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -150,11 +150,16 @@ RUN export RTRLIB_COMMIT="v0.6.3" && \ # Prerequisites for building FRR from source # see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html # -RUN export LIBYANG_COMMIT="v0.16-r2" && \ - git clone https://github.com/CESNET/libyang.git && \ +RUN apt-get update && apt-get install -y -t jessie-backports \ + swig \ + libcmocka-dev \ + libcmocka0 + +RUN export LIBYANG_COMMIT="179da47f2e8de" && \ + git clone https://github.com/opensourcerouting/libyang.git && \ cd libyang && git checkout $LIBYANG_COMMIT && mkdir build && cd build && \ - cmake -DENABLE_LYD_PRIV=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr .. && \ - make && make install + cmake .. && make build-deb && \ + dpkg -i debs/*.deb # Packages needed for frr RUN apt-get update && apt-get install -y \ -- cgit v1.2.3 From d85e0d72c9dd9244a1ac6b7d5ccad6d78ccb9179 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 21:27:30 +0100 Subject: Remove wrong vyos-xe-guest-utilities submodule in root folder --- .gitmodules | 4 ---- vyos-xe-guest-utilities | 1 - 2 files changed, 5 deletions(-) delete mode 160000 vyos-xe-guest-utilities diff --git a/.gitmodules b/.gitmodules index ee1f8009..22bb87d5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -221,10 +221,6 @@ path = packages/vyos-vmwaretools-scripts url = https://github.com/vyos/vyos-vmwaretools-scripts.git branch = current -[submodule "vyos-xe-guest-utilities"] - path = vyos-xe-guest-utilities - url = https://github.com/vyos/vyos-xe-guest-utilities.git - branch = current [submodule "packages/vyconf"] path = packages/vyconf url = https://github.com/vyos/vyconf.git diff --git a/vyos-xe-guest-utilities b/vyos-xe-guest-utilities deleted file mode 160000 index f720a86b..00000000 --- a/vyos-xe-guest-utilities +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f720a86bb30b96733f24a70249f0ee586c29b1ca -- cgit v1.2.3 From 750f603f1ffc854bcfd190549ffb090246f6e28b Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 21:40:03 +0100 Subject: build-kernel: no need to build source and debug package --- scripts/build-kernel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-kernel b/scripts/build-kernel index 4a23d9c7..e58d2d5a 100755 --- a/scripts/build-kernel +++ b/scripts/build-kernel @@ -20,7 +20,7 @@ ARCH=$(dpkg --print-architecture) case "$ARCH" in amd64) make x86_64_vyos_defconfig - TARGETS="kernel_source kernel_debug kernel_headers kernel_image" + TARGETS="kernel_headers kernel_image" # the following targets are not supported for Linux Kernels > 4.14 as # they have been removed from the Makefile (commits 18afab8c1d3c2 & # 22cba31bae9dc). -- cgit v1.2.3 From 4d073e64d0b9ee61d30592b8b324560da08c31c2 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 26 Jan 2019 21:41:34 +0100 Subject: build-submodules: ease FRR build procedure Commit 670b6ca83b018 ("Docker: build libyang Debian package") build the libyang package into a proper Debian package which is used during build of FRR. With this change we can remove the FRR compile hack! --- scripts/build-submodules | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/scripts/build-submodules b/scripts/build-submodules index 3502a7d4..0d11c059 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -175,16 +175,6 @@ build_frr() { source /etc/os-release tar xf ../../frr_*${ID}${VERSION_ID}*.debian.tar.xz - # As libyang is not (yet) build and installed as native Debian package FRR - # build system reports the following error: - # - # "dpkg-shlibdeps: error: no dependency information found for - # /usr/lib/x86_64-linux-gnu/libyang.so.0.16" - # - # It is "overruled" by - sed '/dh_systemd_enable frr.service/ a \\noverride_dh_shlibdeps:\n\tdh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info\n' -i debian/rules - - # Build Debian Package debuild --no-lintian --set-envvar=WANT_SNMP=1 --set-envvar=WANT_RPKI=1 \ --set-envvar=WANT_CUMULUS_MODE=0 -b -uc -us \ -- cgit v1.2.3