1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Date: Wed, 25 Jan 2017 22:11:44 +0100
Subject: [PATCH] deb-src: Enable building Debian source pkgs
Armband plans on shipping prebuilt binaries.
Opensource rules dictate they should be accompanied by the
corresponding source packages.
So, add the possibility to also build Debian sources when a
dummy "ovs_build/build_debian_source" file exists (to avoid
passing an useless env var to each docker run).
Change-Id: I4e308d84c2eb01af043ed73440c46fc692c30d12
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
---
ovs_build/build-ovs-dpdk.sh | 28 +++++++++++++++++-----
ovs_build/build-ovs-nsh.sh | 26 +++++++++++++++++---
.../debian/patches/series | 1 -
3 files changed, 45 insertions(+), 10 deletions(-)
delete mode 100644 ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series
diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh
index 7ce2a62..8dd7430 100755
--- a/ovs_build/build-ovs-dpdk.sh
+++ b/ovs_build/build-ovs-dpdk.sh
@@ -11,14 +11,30 @@ DEB_ARCH="$(dpkg --print-architecture)"
export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+function debian_build() {
+ if [ -f "${BUILD_SRC}/build_debian_source" ]; then
+ dpkg-source -b .
+ cp -f ../*.{dsc,xz} ${BUILD_HOME}/deb
+ fi
+ debian/rules build; fakeroot debian/rules binary
+}
+
+function debian_src_prepare_ovs() {
+ if [ -f "${BUILD_SRC}/build_debian_source" ]; then
+ suffix="${OVS_VER}.orig.tar.xz"
+ tar cJf ../openvswitch_${suffix} --exclude='./debian' .
+ cd ..; ln -sf openvswitch_${suffix} openvswitch-dpdk_${suffix}; cd -
+ fi
+}
+
sudo apt-get update
sudo apt-get -y --force-yes install devscripts dpkg-dev git wget dkms
rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}/deb
cd ${BUILD_HOME}
-wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz
-xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar
+wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz -O dpdk_16.07.orig.tar.xz
+tar xJvf dpdk_16.07.orig.tar.xz
cd dpdk-16.07
cp -r ${BUILD_SRC}/dpdk_16.07.fuel/debian .
cat << EOF > debian/changelog
@@ -45,7 +61,7 @@ sudo apt-get install -y --force-yes debhelper \
python-sphinx \
texlive-fonts-recommended \
texlive-latex-extra
-debian/rules build; fakeroot debian/rules binary
+debian_build
cd ${BUILD_HOME}
sudo apt-get install -y --force-yes hwdata
@@ -73,7 +89,7 @@ sudo apt-get install -y --force-yes autoconf \
python-six
git clone https://github.com/openvswitch/ovs.git
-cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git
+cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git; debian_src_prepare_ovs
cd ${BUILD_HOME}; cp -r ovs ovs-dpdk
cd ovs-dpdk
@@ -86,10 +102,10 @@ openvswitch-dpdk (${OVS_VER}-1) unstable; urgency=low
-- Open vSwitch team <dev@openvswitch.org> $(date --rfc-2822)
EOF
-debian/rules build; fakeroot debian/rules binary
+debian_build
cd ${BUILD_HOME}/ovs
-debian/rules build; fakeroot debian/rules binary
+debian_build
cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb
cd ${BUILD_HOME}/deb
diff --git a/ovs_build/build-ovs-nsh.sh b/ovs_build/build-ovs-nsh.sh
index dbebdb2..efbabab 100755
--- a/ovs_build/build-ovs-nsh.sh
+++ b/ovs_build/build-ovs-nsh.sh
@@ -11,6 +11,22 @@ DEB_ARCH="$(dpkg --print-architecture)"
export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+function debian_build() {
+ if [ -f "${BUILD_SRC}/build_debian_source" ]; then
+ dpkg-source -b .
+ cp -f ../*.{dsc,xz} ${BUILD_HOME}/deb
+ fi
+ debian/rules build; fakeroot debian/rules binary
+}
+
+function debian_src_prepare_ovs() {
+ if [ -f "${BUILD_SRC}/build_debian_source" ]; then
+ suffix="${OVS_VER}.orig.tar.xz"
+ tar cJf ../openvswitch_${suffix} --exclude='./debian' .
+ cd ..; ln -sf openvswitch_${suffix} openvswitch-dpdk_${suffix}; cd -
+ fi
+}
+
sudo apt-get update
sudo apt-get -y --force-yes install devscripts dpkg-dev git wget dkms
@@ -39,12 +55,16 @@ sudo apt-get install -y --force-yes autoconf \
python-six
git clone https://github.com/openvswitch/ovs.git
-cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git
+cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git; debian_src_prepare_ovs
+mkdir -p debian/patches; mkdir -p .pc
PATCHES=$(cd ${BUILD_SRC}/ovs_nsh_patches/v2.6.1/; echo *patch)
for patch in ${PATCHES}
do
- patch -p1 < ${BUILD_SRC}/ovs_nsh_patches/v2.6.1/${patch}
+ echo "${patch}" >> debian/patches/series
+ cp ${BUILD_SRC}/ovs_nsh_patches/v2.6.1/${patch} debian/patches/
+ patch -p1 < debian/patches/${patch}
done
+cp debian/patches/series .pc/applied-patches
cat << EOF > debian/changelog
openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low
@@ -53,7 +73,7 @@ openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low
-- Open vSwitch team <dev@openvswitch.org> $(date --rfc-2822)
EOF
-debian/rules build; fakeroot debian/rules binary
+debian_build
cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb
cd ${BUILD_HOME}/deb
diff --git a/ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series b/ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series
deleted file mode 100644
index 8b13789..0000000
--- a/ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series
+++ /dev/null
@@ -1 +0,0 @@
-
|