summaryrefslogtreecommitdiff
path: root/packages/frr/build-frr.sh
diff options
context:
space:
mode:
authorRunar Borge <runar@borge.nu>2020-06-25 20:30:44 +0200
committerRunar Borge <runar@borge.nu>2020-06-28 00:24:48 +0200
commitd611c31fbf132aac329db8e19e67076cfdd0d540 (patch)
treea67a0d1290e266d84c85e34ebfdb937f41e95156 /packages/frr/build-frr.sh
parentf2f6332ca1acd9d3e885943895340ac5bb6caf4e (diff)
downloadvyos-build-d611c31fbf132aac329db8e19e67076cfdd0d540.tar.gz
vyos-build-d611c31fbf132aac329db8e19e67076cfdd0d540.zip
T2638: FRR: FRR-reload needs patching to work on 7.3.0
Because of FRR bug 6062 (https://github.com/FRRouting/frr/issues/6062) frr-reload in frr 7.3.0 and 7.3.1 needs to be patched to work properly. without this patch frr-reload will allways compare against a blank/empty running configuration.
Diffstat (limited to 'packages/frr/build-frr.sh')
-rwxr-xr-xpackages/frr/build-frr.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/frr/build-frr.sh b/packages/frr/build-frr.sh
new file mode 100755
index 00000000..59134832
--- /dev/null
+++ b/packages/frr/build-frr.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+CWD=$(pwd)
+set -e
+
+FRR_SRC=frr
+
+if [ ! -d ${FRR_SRC} ]; then
+ echo "FRR source directory does not exists, please 'git clone'"
+ exit 1
+fi
+
+# VyOS requires some small FRR Patches - apply them here
+# It's easier to habe them here and make use of the upstream
+# repository instead of maintaining a full Fork.
+# Saving time/resources is essential :-)
+cd ${FRR_SRC}
+
+PATCH_DIR=${CWD}/patches
+
+for patch in $(ls ${PATCH_DIR})
+do
+ echo "I: Apply FRR patch: ${PATCH_DIR}/${patch}"
+ patch -p1 < ${PATCH_DIR}/${patch}
+ git add $(lsdiff ${PATCH_DIR}/${patch} | sed -e 's#^[ab]/##')
+ if [ -z "$(git config --list | grep -e user.name -e user.email)" ]; then
+ # if git user.name and user.email is not set, -c sets temorary user.name and
+ # user.email variables as these is not set in the build container by default.
+ git -c user.name="VyOS CI" -c user.email="ci@vyos.io" commit -m "Applied patch: ${patch}" --author "VyOS CI <ci@vyos.io>"
+ else
+ git commit -m "Applied patch: ${patch}" --author "VyOS CI <ci@vyos.io>"
+ fi
+
+done
+
+# Prepare FRR source for building
+echo "I: Prepare FRR source for building"
+./tools/tarsource.sh -V
+
+# Build Debian FRR package
+echo "I: Build Debian FRR Package"
+dpkg-buildpackage -us -uc -Ppkg.frr.rtrlib