add procprotect to the mix
[build.git] / lxc.mk
1 #
2 # declare the packages to be built and their dependencies
3 # initial version from Mark Huang
4 # Mark Huang <mlhuang@cs.princeton.edu>
5 # Copyright (C) 2003-2006 The Trustees of Princeton University
6 # rewritten by Thierry Parmentelat - INRIA Sophia Antipolis
7 #
8 # see doc in Makefile  
9 #
10
11 #
12 # transforward: root context module for transparent port forwarding
13 #
14 transforward-MODULES := transforward
15 transforward-SPEC := transforward.spec
16 ALL += transforward
17 IN_NODEIMAGE += transforward
18
19 #
20 # procprotect: root context module for protecting against weaknesses in /proc
21 #
22 procprotect-MODULES := procprotect
23 procprotect-SPEC := procprotect.spec
24 ALL += procprotect
25 IN_NODEIMAGE += procprotect
26
27 #
28 # ipfw: root context module, and slice companion
29 #
30 ipfwroot-MODULES := ipfw
31 ipfwroot-SPEC := planetlab/ipfwroot.spec
32 ALL += ipfwroot
33 IN_NODEIMAGE += ipfwroot
34
35 ipfwslice-MODULES := ipfw
36 ipfwslice-SPEC := planetlab/ipfwslice.spec
37 ipfwslice-SPECVARS = kernel_version=$(kernel.rpm-version) \
38         kernel_release=$(kernel.rpm-release) \
39         kernel_arch=$(kernel.rpm-arch)
40 ALL += ipfwslice
41
42 #
43 # NodeUpdate
44 #
45 nodeupdate-MODULES := nodeupdate
46 nodeupdate-SPEC := NodeUpdate.spec
47 ALL += nodeupdate
48 IN_NODEIMAGE += nodeupdate
49
50 #
51 # ipod
52 #
53 ipod-MODULES := PingOfDeath
54 ipod-SPEC := ipod.spec
55 ALL += ipod
56 IN_NODEIMAGE += ipod
57
58 #
59 # NodeManager
60 #
61 nodemanager-MODULES := nodemanager
62 nodemanager-SPEC := NodeManager.spec
63 ALL += nodemanager
64 IN_NODEIMAGE += nodemanager
65
66 #
67 # pl_sshd
68 #
69 sshd-MODULES := pl_sshd
70 sshd-SPEC := pl_sshd.spec
71 ALL += sshd
72 IN_NODEIMAGE += sshd
73
74 #
75 # codemux: Port 80 demux
76 #
77 codemux-MODULES := codemux
78 codemux-SPEC   := codemux.spec
79 ALL += codemux
80 IN_NODEIMAGE += codemux
81
82 #
83 # fprobe-ulog
84 #
85 fprobe-ulog-MODULES := fprobe-ulog
86 fprobe-ulog-SPEC := fprobe-ulog.spec
87 ALL += fprobe-ulog
88 IN_NODEIMAGE += fprobe-ulog
89
90 #
91 # libvirt
92 #
93 libvirt-MODULES := libvirt
94 libvirt-SPEC    := libvirt.spec
95 libvirt-BUILD-FROM-SRPM := yes
96 libvirt-DEVEL-RPMS += libxml2-devel gnutls-devel device-mapper-devel yajl-devel gettext 
97 libvirt-DEVEL-RPMS += python-devel libcap-ng-devel libpciaccess-devel radvd numactl-devel 
98 libvirt-DEVEL-RPMS += xhtml1-dtds libxslt libtasn1-devel systemtap-sdt-devel iptables-ipv6 augeas 
99 libvirt-DEVEL-RPMS += libudev-devel
100 libvirt-RPMFLAGS := --without storage-disk --without storage-iscsi --without storage-scsi \
101                         --without storage-fs --without storage-lvm \
102                         --without polkit --without sasl --without audit --with capng --with udev \
103                         --without netcf --without avahi --without sanlock \
104                         --without xen --without qemu --without hyperv --without phyp --without esx \
105                         --without libxl \
106                         --define 'packager PlanetLab'
107 ALL += libvirt
108 IN_NODEREPO += libvirt
109 IN_NODEIMAGE += libvirt
110
111 #
112 # DistributedRateLimiting
113 #
114 #DistributedRateLimiting-MODULES := DistributedRateLimiting
115 #DistributedRateLimiting-SPEC := DistributedRateLimiting.spec
116 #ALL += DistributedRateLimiting
117 #IN_NODEREPO += DistributedRateLimiting
118
119 #
120 # pf2slice
121 #
122 pf2slice-MODULES := pf2slice
123 pf2slice-SPEC := pf2slice.spec
124 ALL += pf2slice
125
126 ##
127 ## PlanetLab Mom: Cleans up your mess
128 ##
129 #mom-MODULES := Mom
130 #mom-SPEC := pl_mom.spec
131 #ALL += mom
132 #IN_NODEIMAGE += mom
133
134 #
135 # inotify-tools - local import
136 # rebuild this on centos5 (not found) - see yumexclude
137 #
138 local_inotify_tools=false
139 ifeq "$(DISTRONAME)" "centos5"
140 local_inotify_tools=true
141 endif
142
143 ifeq "$(DISTRONAME)" "sl6"
144 local_inotify_tools=true
145 endif
146
147 ifeq "$(local_inotify_tools)" "true"
148 inotify-tools-MODULES := inotify-tools
149 inotify-tools-SPEC := inotify-tools.spec
150 inotify-tools-BUILD-FROM-SRPM := yes
151 IN_NODEIMAGE += inotify-tools
152 ALL += inotify-tools
153 endif
154
155 #
156 # openvswitch
157 #
158 # openvswitch-MODULES := openvswitch
159 # openvswitch-SPEC := openvswitch.spec
160 # openvswitch-DEPEND-DEVEL-RPMS += kernel-devel
161 # IN_NODEIMAGE += openvswitch
162 # # build only on f14 as f16 has this natively
163 # ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f14)"
164 # ALL += openvswitch
165 # endif
166
167 #
168 # vsys
169 #
170 vsys-MODULES := vsys
171 vsys-SPEC := vsys.spec
172 # ocaml-docs is not needed anymore but keep it on a tmp basis as some tags may still have it
173 vsys-DEVEL-RPMS += ocaml-ocamldoc ocaml-docs
174 ifeq "$(local_inotify_tools)" "true"
175 vsys-DEPEND-DEVEL-RPMS += inotify-tools inotify-tools-devel
176 endif
177 IN_NODEIMAGE += vsys
178 ALL += vsys
179
180 #
181 # vsyssh : installed in slivers
182 #
183 vsyssh-MODULES := vsys
184 vsyssh-SPEC := vsyssh.spec
185 IN_SLICEIMAGE += vsyssh
186 ALL += vsyssh
187
188 #
189 # vsys-scripts
190 #
191 vsys-scripts-MODULES := vsys-scripts
192 vsys-scripts-SPEC := vsys-scripts.spec
193 IN_NODEIMAGE += vsys-scripts
194 ALL += vsys-scripts
195
196 #
197 # plcapi
198 #
199 plcapi-MODULES := plcapi
200 plcapi-SPEC := PLCAPI.spec
201 ALL += plcapi
202 IN_MYPLC += plcapi
203
204 #
205 # drupal
206
207 drupal-MODULES := drupal
208 drupal-SPEC := drupal.spec
209 drupal-BUILD-FROM-SRPM := yes
210 ALL += drupal
211 IN_MYPLC += drupal
212
213 #
214 # use the plewww module instead
215 #
216 plewww-MODULES := plewww
217 plewww-SPEC := plewww.spec
218 ALL += plewww
219 IN_MYPLC += plewww
220
221 #
222 # www-register-wizard
223 #
224 www-register-wizard-MODULES := www-register-wizard
225 www-register-wizard-SPEC := www-register-wizard.spec
226 ALL += www-register-wizard
227 IN_MYPLC += www-register-wizard
228
229 #
230 # pcucontrol
231 #
232 pcucontrol-MODULES := pcucontrol
233 pcucontrol-SPEC := pcucontrol.spec
234 ALL += pcucontrol
235
236 #
237 # monitor
238 #
239 #monitor-MODULES := monitor
240 #monitor-SPEC := Monitor.spec
241 #monitor-DEVEL-RPMS += net-snmp net-snmp-devel
242 #ALL += monitor
243 #IN_NODEIMAGE += monitor
244
245 #
246 # PLC RT
247 #
248 plcrt-MODULES := PLCRT
249 plcrt-SPEC := plcrt.spec
250 ALL += plcrt
251
252 # f12 has 0.9-1 already
253 ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f8 centos5)"
254 #
255 # pyopenssl
256 #
257 pyopenssl-MODULES := pyopenssl
258 pyopenssl-SPEC := pyOpenSSL.spec
259 pyopenssl-BUILD-FROM-SRPM := yes
260 ALL += pyopenssl
261 endif
262
263 #
264 # pyaspects
265 #
266 pyaspects-MODULES := pyaspects
267 pyaspects-SPEC := pyaspects.spec
268 pyaspects-BUILD-FROM-SRPM := yes
269 ALL += pyaspects
270
271 # sfa now uses the with statement that's not supported on python-2.4 - not even through __future__
272 # In addition we now use sqlalchemy and 0.5 as per f12 is not compatible with our model
273 build_sfa=true
274 ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f8 f12 centos5)"
275 build_sfa=false
276 endif
277
278 ifeq "$(build_sfa)" "true"
279 #
280 # sfa - Slice Facility Architecture
281 #
282 sfa-MODULES := sfa
283 sfa-SPEC := sfa.spec
284 ALL += sfa
285
286 sface-MODULES := sface
287 sface-SPEC := sface.spec
288 ALL += sface
289 endif
290
291 #
292 # nodeconfig
293 #
294 nodeconfig-MODULES := nodeconfig
295 nodeconfig-SPEC := nodeconfig.spec
296 ALL += nodeconfig
297 IN_MYPLC += nodeconfig
298
299 #
300 # bootmanager
301 #
302 bootmanager-MODULES := bootmanager
303 bootmanager-SPEC := bootmanager.spec
304 ALL += bootmanager
305 IN_MYPLC += bootmanager
306
307 #
308 # pypcilib : used in bootcd
309
310 pypcilib-MODULES := pypcilib
311 pypcilib-SPEC := pypcilib.spec
312 ALL += pypcilib
313 IN_BOOTCD += pypcilib
314
315 #
316 # pyplnet
317 #
318 pyplnet-MODULES := pyplnet
319 pyplnet-SPEC := pyplnet.spec
320 ALL += pyplnet
321 IN_NODEIMAGE += pyplnet
322 IN_MYPLC += pyplnet
323 IN_BOOTCD += pyplnet
324
325 #
326 # OMF resource controller
327 #
328 omf-resctl-MODULES := omf
329 omf-resctl-SPEC := omf-resctl.spec
330 ALL += omf-resctl
331 IN_SLICEIMAGE += omf-resctl
332
333 #
334 # OMF exp controller
335 #
336 omf-expctl-MODULES := omf
337 omf-expctl-SPEC := omf-expctl.spec
338 ALL += omf-expctl
339
340 #
341 # bootcd
342 #
343 bootcd-MODULES := bootcd build
344 bootcd-SPEC := bootcd.spec
345 bootcd-DEPEND-PACKAGES := $(IN_BOOTCD)
346 bootcd-DEPEND-FILES := RPMS/yumgroups.xml
347 bootcd-RPMDATE := yes
348 ALL += bootcd
349 IN_MYPLC += bootcd
350
351 #
352 # images for slices
353 #
354 sliceimage-MODULES := sliceimage build
355 sliceimage-SPEC := sliceimage.spec
356 sliceimage-DEPEND-PACKAGES := $(IN_SLICEIMAGE)
357 sliceimage-DEPEND-FILES := RPMS/yumgroups.xml
358 sliceimage-RPMDATE := yes
359 ALL += sliceimage
360 IN_NODEIMAGE += sliceimage
361
362 #
363 # lxc-specific sliceimage initialization
364
365 lxc-sliceimage-MODULES  := sliceimage
366 lxc-sliceimage-SPEC     := lxc-sliceimage.spec
367 lxc-sliceimage-RPMDATE  := yes
368 ALL                     += lxc-sliceimage
369 IN_NODEIMAGE            += lxc-sliceimage
370
371 #
372 # nodeimage
373 #
374 nodeimage-MODULES := nodeimage build
375 nodeimage-SPEC := nodeimage.spec
376 nodeimage-DEPEND-PACKAGES := $(IN_NODEIMAGE)
377 nodeimage-DEPEND-FILES := RPMS/yumgroups.xml
378 nodeimage-RPMDATE := yes
379 ALL += nodeimage
380 IN_MYPLC += nodeimage
381
382 #
383 # noderepo
384 #
385 # all rpms resulting from packages marked as being in nodeimage and sliceimage
386 NODEREPO_RPMS = $(foreach package,$(IN_NODEIMAGE) $(IN_NODEREPO) $(IN_SLICEIMAGE),$($(package).rpms))
387 # replace space with +++ (specvars cannot deal with spaces)
388 SPACE=$(subst x, ,x)
389 NODEREPO_RPMS_3PLUS = $(subst $(SPACE),+++,$(NODEREPO_RPMS))
390
391 noderepo-MODULES := nodeimage
392 noderepo-SPEC := noderepo.spec
393 # package requires all embedded packages
394 noderepo-DEPEND-PACKAGES := $(IN_NODEIMAGE) $(IN_NODEREPO) $(IN_SLICEIMAGE)
395 noderepo-DEPEND-FILES := RPMS/yumgroups.xml
396 #export rpm list to the specfile
397 noderepo-SPECVARS = node_rpms_plus=$(NODEREPO_RPMS_3PLUS)
398 noderepo-RPMDATE := yes
399 ALL += noderepo
400 IN_MYPLC += noderepo
401
402 #
403 # slicerepo
404 #
405 # all rpms resulting from packages marked as being in vserver
406 SLICEREPO_RPMS = $(foreach package,$(IN_SLICEIMAGE),$($(package).rpms))
407 # replace space with +++ (specvars cannot deal with spaces)
408 SPACE=$(subst x, ,x)
409 SLICEREPO_RPMS_3PLUS = $(subst $(SPACE),+++,$(SLICEREPO_RPMS))
410
411 slicerepo-MODULES := nodeimage
412 slicerepo-SPEC := slicerepo.spec
413 # package requires all embedded packages
414 slicerepo-DEPEND-PACKAGES := $(IN_SLICEIMAGE)
415 slicerepo-DEPEND-FILES := RPMS/yumgroups.xml
416 #export rpm list to the specfile
417 slicerepo-SPECVARS = slice_rpms_plus=$(SLICEREPO_RPMS_3PLUS)
418 slicerepo-RPMDATE := yes
419 ALL += slicerepo
420
421 #
422 # MyPLC : lightweight packaging, dependencies are yum-installed in a vserver
423 #
424 myplc-MODULES := myplc
425 myplc-SPEC := myplc.spec
426 myplc-DEPEND-FILES := myplc-release RPMS/yumgroups.xml
427 ALL += myplc
428
429 # myplc-docs only contains docs for PLCAPI and NMAPI, but
430 # we still need to pull MyPLC, as it is where the specfile lies, 
431 # together with the utility script docbook2drupal.sh
432 myplc-docs-MODULES := myplc plcapi nodemanager monitor
433 myplc-docs-SPEC := myplc-docs.spec
434 ALL += myplc-docs
435
436 # using some other name than myplc-release, as this is a make target already
437 release-MODULES := myplc
438 release-SPEC := myplc-release.spec
439 release-RPMDATE := yes
440 ALL += release