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 --- scripts/build-submodules | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'scripts') 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 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 (limited to 'scripts') 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 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(-) (limited to 'scripts') 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 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(-) (limited to 'scripts') 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 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(-) (limited to 'scripts') 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 (limited to 'scripts') 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 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(+) (limited to 'scripts') 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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 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 (limited to 'scripts') 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 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(-) (limited to 'scripts') 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 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(-) (limited to 'scripts') 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 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(-) (limited to 'scripts') 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 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(-) (limited to 'scripts') 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 (limited to 'scripts') 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(-) (limited to 'scripts') 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 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 (limited to 'scripts') 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 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(+) (limited to 'scripts') 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(+) (limited to 'scripts') 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 (limited to 'scripts') 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 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 (limited to 'scripts') 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 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 (limited to 'scripts') 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 (limited to 'scripts') 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 (limited to 'scripts') 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 (limited to 'scripts') 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 (limited to 'scripts') 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 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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 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 (limited to 'scripts') 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 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(+) (limited to 'scripts') 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 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 (limited to 'scripts') 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 (limited to 'scripts') 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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 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(-) (limited to 'scripts') 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(-) (limited to 'scripts') 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