blob: e4af1023e8c0bd8491d1c76057ab989cb7c7f6a9 (
plain)
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
152
153
154
155
156
157
158
|
#!/bin/bash
quirks() {
# Workaround build bug on Ubuntu 14.04
cat <<EOF > arch/x86/boot/install.sh
#!/bin/sh
cp -a -- "\$2" "\$4/vmlinuz-\$1"
EOF
# Add deprecated XFS delaylog option back in
cat <<EOF | patch -p2
diff --git a/kernel/fs/xfs/xfs_super.c b/kernel/fs/xfs/xfs_super.c
index 65a4537..b73ca67 100644
--- a/kernel/fs/xfs/xfs_super.c
+++ b/kernel/fs/xfs/xfs_super.c
@@ -109,6 +109,7 @@ static struct xfs_kobj xfs_dbg_kobj; /* global debug sysfs attrs */
#define MNTOPT_GQUOTANOENF "gqnoenforce"/* group quota limit enforcement */
#define MNTOPT_PQUOTANOENF "pqnoenforce"/* project quota limit enforcement */
#define MNTOPT_QUOTANOENF "qnoenforce" /* same as uqnoenforce */
+#define MNTOPT_DELAYLOG "delaylog" /* Delayed logging enabled */
#define MNTOPT_DISCARD "discard" /* Discard unused blocks */
#define MNTOPT_NODISCARD "nodiscard" /* Do not discard unused blocks */
@@ -359,6 +360,9 @@ xfs_parseargs(
} else if (!strcmp(this_char, MNTOPT_GQUOTANOENF)) {
mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE);
mp->m_qflags &= ~XFS_GQUOTA_ENFD;
+ } else if (!strcmp(this_char, MNTOPT_DELAYLOG)) {
+ xfs_warn(mp,
+ "delaylog is the default now, option is deprecated.");
} else if (!strcmp(this_char, MNTOPT_DISCARD)) {
mp->m_flags |= XFS_MOUNT_DISCARD;
} else if (!strcmp(this_char, MNTOPT_NODISCARD)) {
--
1.9.1
EOF
}
KVM_COMMIT=""
OVS_COMMIT="4ff6642f3c1dd8949c2f42b3310ee2523ee970a6"
KEEP=no
for i
do
case $i in
-k) KEEP=yes
shift
;;
-c) KVM_COMMIT=$2
shift;shift
;;
-o) OVS_COMMIT=$2
shift;shift
;;
esac
done
SRC=${1:-/root}
CONFIG=${2:-arch/x86/configs/opnfv.config}
VERSION=${3:-1.0.OPNFV}
# Check for necessary build tools
if ! type git >/dev/null 2>/dev/null
then
echo "Build tools missing, run the command
apt-get install git fakeroot build-essential ncurses-dev xz-utils kernel-package automake
as root and try again"
exit 1
fi
# Make sure the source dir exists
if [ ! -d $SRC ]
then
echo "$SRC: no such directory"
exit 1
fi
(
cd $SRC
# Get the Open VSwitch sources
if [ ! -d ovs ]
then
git clone https://github.com/openvswitch/ovs.git
fi
# Get the KVM for NFV kernel sources
if [ ! -d kvmfornfv ]
then
git clone https://gerrit.opnfv.org/gerrit/kvmfornfv
fi
cd kvmfornfv
git pull
if [ x$KVM_COMMIT != x ]
then
git checkout $KVM_COMMIT
else
git reset --hard
fi
cd kernel
quirks
# Configure the kernel
cp $CONFIG .config
make oldconfig </dev/null
# Build the kernel debs
if [ $KEEP = no ]
then
make-kpkg clean
fi
fakeroot make-kpkg --initrd --revision=$VERSION kernel_image kernel_headers
git checkout arch/x86/boot/install.sh
git checkout fs/xfs/xfs_super.c
# Build OVS kernel modules
cd ../../ovs
if [ x$OVS_COMMIT != x ]
then
git checkout $OVS_COMMIT
else
git reset --hard
fi
#
# Apply out of tree patches
#
for i in $SRC/kvmfornfv/patches/ovs/*.patch
do
if [ -f "$i" ]
then
echo "Applying: $i"
patch -p1 <$i
fi
done
./boot.sh
./configure --with-linux=$SRC/kvmfornfv/kernel
make
# Add OVS kernel modules to kernel deb
dpkg-deb -x $SRC/kvmfornfv/linux-image*.deb ovs.$$
dpkg-deb --control $SRC/kvmfornfv/linux-image*.deb ovs.$$/DEBIAN
cp datapath/linux/*.ko ovs.$$/lib/modules/*/kernel/net/openvswitch
depmod -b ovs.$$ -a `ls ovs.$$/lib/modules`
dpkg-deb -b ovs.$$ $SRC/kvmfornfv/linux-image*.deb
rm -rf ovs.$$
)
mv $SRC/kvmfornfv/*.deb .
|