]>
Commit | Line | Data |
---|---|---|
1cfff965 DM |
1 | RELEASE=2.0 |
2 | ||
3 | KERNEL_VER=2.6.32 | |
0c1f07ad | 4 | PKGREL=46 |
1cfff965 DM |
5 | # also include firmware of previous versrion into |
6 | # the fw package: fwlist-2.6.32-PREV-pve | |
7 | KREL=6 | |
8 | ||
ba5395db DM |
9 | RHKVER=131.12.1.el6 |
10 | OVZVER=042stab037.1 | |
1cfff965 DM |
11 | |
12 | KERNELSRCRPM=vzkernel-${KERNEL_VER}-${OVZVER}.src.rpm | |
13 | ||
14 | EXTRAVERSION=-${KREL}-pve | |
15 | KVNAME=${KERNEL_VER}${EXTRAVERSION} | |
16 | PACKAGE=pve-kernel-${KVNAME} | |
17 | HDRPACKAGE=pve-headers-${KVNAME} | |
18 | ||
19 | ARCH=amd64 | |
20 | TOP=$(shell pwd) | |
21 | ||
22 | KERNEL_SRC=linux-2.6-${KERNEL_VER} | |
23 | RHKERSRCDIR=rh-kernel-src | |
24 | KERNEL_CFG=config-${KERNEL_VER} | |
25 | KERNEL_CFG_ORG=config-${KERNEL_VER}-${OVZVER}.x86_64 | |
26 | ||
27 | FW_VER=1.0 | |
28 | FW_REL=13 | |
29 | FW_DEB=pve-firmware_${FW_VER}-${FW_REL}_all.deb | |
30 | ||
31 | AOEDIR=aoe6-77 | |
32 | AOESRC=${AOEDIR}.tar.gz | |
33 | ||
0c1f07ad | 34 | E1000EDIR=e1000e-1.6.2 |
1cfff965 DM |
35 | E1000ESRC=${E1000EDIR}.tar.gz |
36 | ||
0c1f07ad | 37 | IGBDIR=igb-3.2.9 |
1cfff965 DM |
38 | IGBSRC=${IGBDIR}.tar.gz |
39 | ||
0c1f07ad | 40 | IXGBEDIR=ixgbe-3.5.14 |
1cfff965 DM |
41 | IXGBESRC=${IXGBEDIR}.tar.gz |
42 | ||
1cfff965 DM |
43 | ARECADIR=arcmsr.1.20.0X.15-110330 |
44 | ARECASRC=${ARECADIR}.zip | |
45 | ||
46 | DST_DEB=${PACKAGE}_${KERNEL_VER}-${PKGREL}_${ARCH}.deb | |
47 | HDR_DEB=${HDRPACKAGE}_${KERNEL_VER}-${PKGREL}_${ARCH}.deb | |
48 | PVEPKG=proxmox-ve-${KERNEL_VER} | |
49 | PVE_DEB=${PVEPKG}_${RELEASE}-${PKGREL}_all.deb | |
50 | ||
51 | all: check_gcc ${DST_DEB} ${PVE_DEB} ${FW_DEB} ${HDR_DEB} | |
52 | ||
53 | ${PVE_DEB} pve: proxmox-ve/control proxmox-ve/postinst | |
54 | rm -rf proxmox-ve/data | |
55 | mkdir -p proxmox-ve/data/DEBIAN | |
56 | mkdir -p proxmox-ve/data/usr/share/doc/${PVEPKG}/ | |
57 | install -m 0644 proxmox-ve/proxmox-release\@proxmox.com.pubkey proxmox-ve/data/usr/share/doc/${PVEPKG} | |
58 | sed -e 's/@KVNAME@/${KVNAME}/' -e 's/@KERNEL_VER@/${KERNEL_VER}/' -e 's/@RELEASE@/${RELEASE}/' -e 's/@PKGREL@/${PKGREL}/' <proxmox-ve/control >proxmox-ve/data/DEBIAN/control | |
59 | sed -e 's/@KERNEL_VER@/${KERNEL_VER}/' <proxmox-ve/postinst >proxmox-ve/data/DEBIAN/postinst | |
60 | chmod 0755 proxmox-ve/data/DEBIAN/postinst | |
61 | install -m 0644 proxmox-ve/copyright proxmox-ve/data/usr/share/doc/${PVEPKG} | |
62 | install -m 0644 proxmox-ve/changelog.Debian proxmox-ve/data/usr/share/doc/${PVEPKG} | |
63 | gzip --best proxmox-ve/data/usr/share/doc/${PVEPKG}/changelog.Debian | |
64 | dpkg-deb --build proxmox-ve/data ${PVE_DEB} | |
65 | ||
66 | check_gcc: | |
67 | gcc --version|grep "4.4.5" || false | |
68 | ||
69 | ${DST_DEB}: data control.in postinst.in | |
70 | mkdir -p data/DEBIAN | |
71 | sed -e 's/@KERNEL_VER@/${KERNEL_VER}/' -e 's/@KVNAME@/${KVNAME}/' -e 's/@PKGREL@/${PKGREL}/' <control.in >data/DEBIAN/control | |
72 | sed -e 's/@@KVNAME@@/${KVNAME}/g' <postinst.in >data/DEBIAN/postinst | |
73 | chmod 0755 data/DEBIAN/postinst | |
74 | install -D -m 644 copyright data/usr/share/doc/${PACKAGE}/copyright | |
75 | install -D -m 644 changelog.Debian data/usr/share/doc/${PACKAGE}/changelog.Debian | |
76 | gzip -f --best data/usr/share/doc/${PACKAGE}/changelog.Debian | |
77 | rm -f data/lib/modules/${KVNAME}/source | |
78 | rm -f data/lib/modules/${KVNAME}/build | |
79 | dpkg-deb --build data ${DST_DEB} | |
80 | lintian ${DST_DEB} | |
81 | ||
82 | ||
83 | fwlist-${KVNAME}: data | |
84 | ./find-firmware.pl data/lib/modules/${KVNAME} >fwlist.tmp | |
85 | mv fwlist.tmp $@ | |
86 | ||
8b830f70 | 87 | data: .compile_mark ${KERNEL_CFG} arcmsr.ko aoe.ko e1000e.ko igb.ko ixgbe.ko |
1cfff965 DM |
88 | rm -rf data tmp; mkdir -p tmp/lib/modules/${KVNAME} |
89 | mkdir tmp/boot | |
90 | install -m 644 ${KERNEL_CFG} tmp/boot/config-${KVNAME} | |
91 | install -m 644 ${KERNEL_SRC}/System.map tmp/boot/System.map-${KVNAME} | |
92 | install -m 644 ${KERNEL_SRC}/arch/x86_64/boot/bzImage tmp/boot/vmlinuz-${KVNAME} | |
93 | cd ${KERNEL_SRC}; make INSTALL_MOD_PATH=../tmp/ modules_install | |
94 | # install latest aoe driver | |
95 | install -m 644 aoe.ko tmp/lib/modules/${KVNAME}/kernel/drivers/block/aoe/aoe.ko | |
96 | # install latest ixgbe driver | |
97 | install -m 644 ixgbe.ko tmp/lib/modules/${KVNAME}/kernel/drivers/net/ixgbe/ | |
98 | # install latest e1000e driver | |
99 | install -m 644 e1000e.ko tmp/lib/modules/${KVNAME}/kernel/drivers/net/e1000e/ | |
100 | # install latest ibg driver | |
101 | install -m 644 igb.ko tmp/lib/modules/${KVNAME}/kernel/drivers/net/igb/ | |
1cfff965 DM |
102 | # install areca driver |
103 | install -m 644 arcmsr.ko tmp/lib/modules/${KVNAME}/kernel/drivers/scsi/arcmsr/ | |
104 | # remove firmware | |
105 | rm -rf tmp/lib/firmware | |
106 | # strip debug info | |
107 | find tmp/lib/modules -name \*.ko -print | while read f ; do strip --strip-debug "$$f"; done | |
108 | # finalize | |
109 | depmod -b tmp/ ${KVNAME} | |
110 | mv tmp data | |
111 | ||
112 | .compile_mark: ${KERNEL_SRC}/README ${KERNEL_CFG} | |
113 | cp ${KERNEL_CFG} ${KERNEL_SRC}/.config | |
114 | cd ${KERNEL_SRC}; make oldconfig | |
115 | cd ${KERNEL_SRC}; make -j 8 | |
116 | touch $@ | |
117 | ||
118 | ${KERNEL_CFG}: ${KERNEL_CFG_ORG} config-${KERNEL_VER}.diff | |
119 | cp ${KERNEL_CFG_ORG} ${KERNEL_CFG}.new | |
ed2a6bee | 120 | patch --no-backup ${KERNEL_CFG}.new config-${KERNEL_VER}.diff |
1cfff965 DM |
121 | mv ${KERNEL_CFG}.new ${KERNEL_CFG} |
122 | ||
123 | ${KERNEL_SRC}/README: ${KERNEL_SRC}.org/README | |
124 | rm -rf ${KERNEL_SRC} | |
125 | cp -a ${KERNEL_SRC}.org ${KERNEL_SRC} | |
126 | cd ${KERNEL_SRC}; patch -p1 <../bootsplash-3.1.9-2.6.31-rh.patch | |
ba5395db | 127 | cd ${KERNEL_SRC}; patch -p1 <../${RHKERSRCDIR}/patch-042stab037 |
1cfff965 | 128 | cd ${KERNEL_SRC}; patch -p1 <../do-not-use-barrier-on-ext3.patch |
1cfff965 | 129 | cd ${KERNEL_SRC}; patch -p1 <../bridge-patch.diff |
ed2a6bee DM |
130 | # backport dlm fixes form linux 3.y (those are include in RHEL 6.2) |
131 | cd ${KERNEL_SRC}; patch -p1 <../dlm-Make-DLM-depend-on-CONFIGFS_FS.patch | |
132 | cd ${KERNEL_SRC}; patch -p1 <../dlm-increase-default-hash-table-sizes.patch | |
133 | cd ${KERNEL_SRC}; patch -p1 <../dlm-Use-cmwq-for-send-and-receive-workqueues.patch | |
134 | cd ${KERNEL_SRC}; patch -p1 <../dlm-sanitize-work_start-in-lowcomms.c.patch | |
135 | cd ${KERNEL_SRC}; patch -p1 <../dlm-use-single-thread-workqueues.patch | |
136 | cd ${KERNEL_SRC}; patch -p1 <../dlm-Remove-superfluous-call-to-recalc_sigpending.patch | |
137 | cd ${KERNEL_SRC}; patch -p1 <../dlm-delayed-reply-message-warning.patch | |
138 | cd ${KERNEL_SRC}; patch -p1 <../dlm-remove-shared-message-stub-for-recovery.patch | |
139 | cd ${KERNEL_SRC}; patch -p1 <../dlm-make-plock-operation-killable.patch | |
1cfff965 DM |
140 | #cd ${KERNEL_SRC}; patch -p1 <../ovz-fix-slow-fsync.patch |
141 | sed -i ${KERNEL_SRC}/Makefile -e 's/^EXTRAVERSION.*$$/EXTRAVERSION=${EXTRAVERSION}/' | |
142 | touch $@ | |
143 | ||
144 | ${KERNEL_SRC}.org/README: ${RHKERSRCDIR}/kernel.spec ${RHKERSRCDIR}/linux-${KERNEL_VER}-${RHKVER}.tar.bz2 | |
145 | rm -rf ${KERNEL_SRC}.org linux-${KERNEL_VER}-${RHKVER} | |
146 | tar xf ${RHKERSRCDIR}/linux-${KERNEL_VER}-${RHKVER}.tar.bz2 | |
147 | mv linux-${KERNEL_VER}-${RHKVER} ${KERNEL_SRC}.org | |
148 | touch $@ | |
149 | ||
150 | ${RHKERSRCDIR}/kernel.spec: ${KERNELSRCRPM} | |
151 | rm -rf ${RHKERSRCDIR} | |
152 | mkdir ${RHKERSRCDIR} | |
153 | cd ${RHKERSRCDIR};rpm2cpio ../${KERNELSRCRPM} |cpio -i | |
154 | touch $@ | |
155 | ||
156 | aoe.ko aoe: .compile_mark ${AOESRC} | |
157 | # aoe driver updates | |
158 | rm -rf ${AOEDIR} aoe.ko | |
159 | tar xf ${AOESRC} | |
160 | mkdir -p /lib/modules/${KVNAME} | |
161 | ln -sf ${TOP}/${KERNEL_SRC} /lib/modules/${KVNAME}/build | |
162 | cd ${AOEDIR}; make KVER=${KVNAME} | |
163 | cp ${AOEDIR}/linux/drivers/block/aoe/aoe.ko aoe.ko | |
164 | ||
165 | e1000e.ko e1000e: ${E1000ESRC} | |
166 | rm -rf ${E1000EDIR} | |
167 | tar xf ${E1000ESRC} | |
168 | mkdir -p /lib/modules/${KVNAME} | |
169 | ln -sf ${TOP}/${KERNEL_SRC} /lib/modules/${KVNAME}/build | |
170 | cd ${E1000EDIR}/src; make BUILD_KERNEL=${KVNAME} | |
171 | cp ${E1000EDIR}/src/e1000e.ko e1000e.ko | |
172 | ||
173 | igb.ko igb: ${IGBSRC} | |
174 | rm -rf ${IGBDIR} | |
175 | tar xf ${IGBSRC} | |
176 | mkdir -p /lib/modules/${KVNAME} | |
177 | ln -sf ${TOP}/${KERNEL_SRC} /lib/modules/${KVNAME}/build | |
178 | cd ${IGBDIR}/src; make BUILD_KERNEL=${KVNAME} | |
179 | cp ${IGBDIR}/src/igb.ko igb.ko | |
180 | ||
181 | ixgbe.ko ixgbe: ${IXGBESRC} | |
182 | rm -rf ${IXGBEDIR} | |
183 | tar xf ${IXGBESRC} | |
184 | mkdir -p /lib/modules/${KVNAME} | |
185 | ln -sf ${TOP}/${KERNEL_SRC} /lib/modules/${KVNAME}/build | |
186 | cd ${IXGBEDIR}/src; make CFLAGS_EXTRA="-DIXGBE_NO_LRO" BUILD_KERNEL=${KVNAME} | |
187 | cp ${IXGBEDIR}/src/ixgbe.ko ixgbe.ko | |
188 | ||
1cfff965 DM |
189 | arcmsr.ko: ${ARECASRC} |
190 | rm -rf ${ARECADIR} | |
191 | unzip ${ARECASRC} | |
192 | mkdir -p /lib/modules/${KVNAME} | |
193 | ln -sf ${TOP}/${KERNEL_SRC} /lib/modules/${KVNAME}/build | |
194 | cd ${ARECADIR}; make -C ${TOP}/${KERNEL_SRC} CONFIG_SCSI_ARCMSR=m SUBDIRS=${TOP}/${ARECADIR} modules | |
195 | cp ${ARECADIR}/arcmsr.ko arcmsr.ko | |
196 | ||
197 | ||
198 | headers_tmp := $(CURDIR)/tmp-headers | |
199 | headers_dir := $(headers_tmp)/usr/src/linux-headers-${KVNAME} | |
200 | ||
201 | ${HDR_DEB} hdr: .compile_mark headers-control.in headers-postinst.in | |
202 | rm -rf $(headers_tmp) | |
203 | install -d $(headers_tmp)/DEBIAN $(headers_dir)/include/ | |
204 | sed -e 's/@KERNEL_VER@/${KERNEL_VER}/' -e 's/@KVNAME@/${KVNAME}/' -e 's/@PKGREL@/${PKGREL}/' <headers-control.in >$(headers_tmp)/DEBIAN/control | |
205 | sed -e 's/@@KVNAME@@/${KVNAME}/g' <headers-postinst.in >$(headers_tmp)/DEBIAN/postinst | |
206 | chmod 0755 $(headers_tmp)/DEBIAN/postinst | |
207 | install -D -m 644 copyright $(headers_tmp)/usr/share/doc/${HDRPACKAGE}/copyright | |
208 | install -D -m 644 changelog.Debian $(headers_tmp)/usr/share/doc/${HDRPACKAGE}/changelog.Debian | |
209 | gzip -f --best $(headers_tmp)/usr/share/doc/${HDRPACKAGE}/changelog.Debian | |
210 | install -m 0644 ${KERNEL_SRC}/.config $(headers_dir) | |
211 | install -m 0644 ${KERNEL_SRC}/Module.symvers $(headers_dir) | |
212 | cd ${KERNEL_SRC}; find . -path './debian/*' -prune -o -path './include/*' -prune -o -path './Documentation' -prune \ | |
213 | -o -path './scripts' -prune -o -type f \ | |
214 | \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ | |
215 | -name '*.sh' -o -name '*.pl' \) \ | |
216 | -print | cpio -pd --preserve-modification-time $(headers_dir) | |
217 | cd ${KERNEL_SRC}; cp -a include scripts $(headers_dir) | |
218 | cd ${KERNEL_SRC}; (find arch/x86 -name include -type d -print | \ | |
219 | xargs -n1 -i: find : -type f) | \ | |
220 | cpio -pd --preserve-modification-time $(headers_dir) | |
221 | dpkg-deb --build $(headers_tmp) ${HDR_DEB} | |
222 | #lintian ${HDR_DEB} | |
223 | ||
224 | linux-firmware.git/WHENCE: | |
225 | git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git linux-firmware.git | |
226 | ||
227 | linux-firmware-from-kernel.git/WHENCE: | |
228 | git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware-from-kernel.git linux-firmware-from-kernel.git | |
229 | ||
230 | ${FW_DEB} fw: control.firmware linux-firmware.git/WHENCE linux-firmware-from-kernel.git/WHENCE changelog.firmware fwlist-2.6.18-2-pve fwlist-2.6.24-12-pve fwlist-2.6.32-3-pve fwlist-2.6.32-4-pve fwlist-2.6.32-5-pve fwlist-2.6.35-1-pve fwlist-${KVNAME} | |
231 | rm -rf fwdata | |
232 | mkdir -p fwdata/lib/firmware | |
233 | ./assemble-firmware.pl fwlist-${KVNAME} fwdata/lib/firmware | |
234 | # include any files from older/newer kernels here | |
235 | ./assemble-firmware.pl fwlist-2.6.24-12-pve fwdata/lib/firmware | |
236 | ./assemble-firmware.pl fwlist-2.6.18-2-pve fwdata/lib/firmware | |
237 | ./assemble-firmware.pl fwlist-2.6.32-3-pve fwdata/lib/firmware | |
238 | ./assemble-firmware.pl fwlist-2.6.32-4-pve fwdata/lib/firmware | |
239 | ./assemble-firmware.pl fwlist-2.6.32-5-pve fwdata/lib/firmware | |
240 | ./assemble-firmware.pl fwlist-2.6.35-1-pve fwdata/lib/firmware | |
241 | install -d fwdata/usr/share/doc/pve-firmware | |
242 | cp linux-firmware.git/WHENCE fwdata/usr/share/doc/pve-firmware/README | |
243 | install -d fwdata/usr/share/doc/pve-firmware/licenses | |
244 | cp linux-firmware.git/LICEN[CS]E* fwdata/usr/share/doc/pve-firmware/licenses | |
245 | install -D -m 0644 changelog.firmware fwdata/usr/share/doc/pve-firmware/changelog.Debian | |
246 | gzip -9 fwdata/usr/share/doc/pve-firmware/changelog.Debian | |
247 | install -d fwdata/DEBIAN | |
248 | sed -e 's/@VERSION@/${FW_VER}-${FW_REL}/' <control.firmware >fwdata/DEBIAN/control | |
249 | dpkg-deb --build fwdata ${FW_DEB} | |
250 | ||
251 | .PHONY: upload | |
252 | upload: ${DST_DEB} ${PVE_DEB} ${HDR_DEB} ${FW_DEB} | |
253 | umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw | |
254 | mkdir -p /pve/${RELEASE}/extra | |
255 | mkdir -p /pve/${RELEASE}/install | |
256 | rm -rf /pve/${RELEASE}/extra/${PACKAGE}_*.deb | |
257 | rm -rf /pve/${RELEASE}/extra/${HDRPACKAGE}_*.deb | |
258 | rm -rf /pve/${RELEASE}/extra/${PVEPKG}_*.deb | |
259 | rm -rf /pve/${RELEASE}/extra/pve-firmware*.deb | |
260 | rm -rf /pve/${RELEASE}/extra/Packages* | |
261 | cp ${DST_DEB} ${PVE_DEB} ${HDR_DEB} ${FW_DEB} /pve/${RELEASE}/extra | |
262 | cd /pve/${RELEASE}/extra; dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz | |
263 | umount /pve/${RELEASE}; mount /pve/${RELEASE} -o ro | |
264 | ||
265 | .PHONY: distclean | |
266 | distclean: clean | |
267 | rm -rf linux-firmware.git linux-firmware-from-kernel.git ${KERNEL_SRC}.org ${RHKERSRCDIR} | |
268 | ||
269 | .PHONY: clean | |
270 | clean: | |
8b830f70 | 271 | rm -rf *~ .compile_mark ${KERNEL_CFG} ${KERNEL_SRC} tmp data proxmox-ve/data *.deb ${AOEDIR} aoe.ko ${headers_tmp} fwdata fwlist.tmp *.ko ${IXGBEDIR} ${E1000EDIR} e1000e.ko ${IGBDIR} igb.ko fwlist-${KVNAME} ${ARECADIR} arcmsr.ko |
1cfff965 | 272 | |
ed2a6bee DM |
273 | |
274 |