catch up on lxc for nodeimage.pkgs
[wextoolbox.git] / wextoolbox.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
9 #
10 # see doc in Makefile  
11 #
12
13 #
14 # bbn
15 #
16 bbn-MODULES := bbn_80211
17 bbn-SPEC := bbn_80211.spec
18 bbn-BUILD-FROM-SRPM := yes
19 # now from the stock repo
20 bbn-DEVEL-RPMS := gnuradio gnuradio-devel boost boost-devel swig
21 #bbn-DEPEND-DEVEL-RPMS := gnuradio gnuradio-devel boost boost-devel
22 ALL += bbn
23 IN_NODEIMAGE += bbn
24
25 #
26 # crunchxml
27 #
28 crunchxml-MODULES := crunchxml
29 crunchxml-SPEC := crunchxml.spec
30 crunchxml-BUILD-FROM-SRPM := yes
31 crunchxml-DEVEL-RPMS := glib2-devel libxml-devel libxml2-devel scons
32 ALL += crunchxml
33 IN_NODEIMAGE += crunchxml
34
35 #
36 # spectools
37 #
38 spectools-MODULES := spectools
39 spectools-SPEC := spectools.spec
40 spectools-BUILD-FROM-SRPM := yes
41 spectools-DEVEL-RPMS := gtk2-devel
42 ALL += spectools
43 IN_NODEIMAGE += spectools
44
45 #
46 # sge
47 #
48 sge-MODULES := sge
49 sge-SPEC := sge.spec
50 sge-BUILD-FROM-SRPM := yes
51 sge-DEVEL-RPMS += kdevelop-devel kdevelop kdevelop-libs java-1.6.0-openjdk 
52 sge-DEVEL-RPMS += lesstif lesstif-devel
53
54 # turning this off - current focus is on deploying the sge box separately from myplc
55 # packaging is still broken, and we're exploring a ready-to-use distro on centos
56 # ALL += sge
57 # IN_NODEIMAGE += sge
58
59 ########################################
60 #
61 # lxctools: scripts for entering containers
62 #
63 lxctools-MODULES := lxctools
64 lxctools-SPEC := lxctools.spec
65 ALL += lxctools
66 IN_NODEIMAGE += lxctools
67
68 #
69 # lxcsu: root context module for entering namespaces
70 #
71 lxcsu-MODULES := lxcsu
72 lxcsu-SPEC := lxcsu.spec
73 ALL += lxcsu
74 IN_NODEIMAGE += lxcsu
75
76 #
77 #
78 # transforward: root context module for transparent port forwarding
79 #
80 transforward-MODULES := transforward
81 transforward-SPEC := transforward.spec
82 ALL += transforward
83 IN_NODEIMAGE += transforward
84
85 #
86 # procprotect: root context module for protecting against weaknesses in /proc
87 #
88 procprotect-MODULES := procprotect
89 procprotect-SPEC := procprotect.spec
90 ALL += procprotect
91 IN_NODEIMAGE += procprotect
92
93 #
94 # ipfw: root context module, and slice companion
95 #
96 ipfwroot-MODULES := ipfw
97 ipfwroot-SPEC := planetlab/ipfwroot.spec
98 ALL += ipfwroot
99 IN_NODEIMAGE += ipfwroot
100
101 ipfwslice-MODULES := ipfw
102 ipfwslice-SPEC := planetlab/ipfwslice.spec
103 ALL += ipfwslice
104
105 #
106 # NodeUpdate
107 #
108 nodeupdate-MODULES := nodeupdate
109 nodeupdate-SPEC := NodeUpdate.spec
110 ALL += nodeupdate
111 IN_NODEIMAGE += nodeupdate
112
113 #
114 # ipod
115 #
116 ipod-MODULES := PingOfDeath
117 ipod-SPEC := ipod.spec
118 ALL += ipod
119 IN_NODEIMAGE += ipod
120
121 #
122 # plnode-utils
123
124 plnode-utils-MODULES := plnode-utils
125 plnode-utils-SPEC := plnode-utils-lxc.spec
126 ALL += plnode-utils
127 IN_NODEIMAGE += plnode-utils
128
129 #
130 # nodemanager
131 #
132 nodemanager-lib-MODULES := nodemanager
133 nodemanager-lib-SPEC := nodemanager-lib.spec
134 ALL += nodemanager-lib
135 IN_NODEIMAGE += nodemanager-lib
136
137 nodemanager-lxc-MODULES := nodemanager
138 nodemanager-lxc-SPEC := nodemanager-lxc.spec
139 ALL += nodemanager-lxc
140 IN_NODEIMAGE += nodemanager-lxc
141
142 #
143 # pl_sshd
144 #
145 sshd-MODULES := pl_sshd
146 sshd-SPEC := pl_sshd.spec
147 ALL += sshd
148 IN_NODEIMAGE += sshd
149
150 #
151 # codemux: Port 80 demux
152 #
153 codemux-MODULES := codemux
154 codemux-SPEC   := codemux.spec
155 ALL += codemux
156 IN_NODEIMAGE += codemux
157
158 #
159 # fprobe-ulog
160 #
161 fprobe-ulog-MODULES := fprobe-ulog
162 fprobe-ulog-SPEC := fprobe-ulog.spec
163 ALL += fprobe-ulog
164 IN_NODEIMAGE += fprobe-ulog
165
166 #################### libvirt on f16 is too old, sounds like f17 has something fine
167 local_libvirt=false
168 ifeq "$(DISTRONAME)" "f16"
169 local_libvirt=true
170 endif
171
172 ifeq "$(local_libvirt)" "true"
173 #
174 # libvirt
175 #
176 libvirt-MODULES := libvirt
177 libvirt-SPEC    := libvirt.spec
178 libvirt-BUILD-FROM-SRPM := yes
179 libvirt-DEVEL-RPMS += libxml2-devel gnutls-devel device-mapper-devel yajl-devel gettext 
180 libvirt-DEVEL-RPMS += python-devel libcap-ng-devel libpciaccess-devel radvd numactl-devel 
181 libvirt-DEVEL-RPMS += xhtml1-dtds libxslt libtasn1-devel systemtap-sdt-devel iptables-ipv6 augeas 
182 libvirt-DEVEL-RPMS += libudev-devel libpcap-devel libnl-devel ebtables scrub
183 libvirt-RPMFLAGS := --without storage-disk --without storage-iscsi --without storage-scsi \
184                         --without storage-fs --without storage-lvm \
185                         --without polkit --without sasl --without audit --with capng --with udev \
186                         --without netcf --without avahi --without sanlock \
187                         --without xen --without qemu --without hyperv --without phyp --without esx \
188                         --without libxl \
189                         --define 'packager PlanetLab'
190 ALL += libvirt
191 IN_NODEREPO += libvirt
192 IN_NODEIMAGE += libvirt
193 endif
194
195 #
196 # pf2slice
197 #
198 pf2slice-MODULES := pf2slice
199 pf2slice-SPEC := pf2slice.spec
200 ALL += pf2slice
201
202 ##
203 ## PlanetLab Mom: Cleans up your mess
204 ##
205 #mom-MODULES := mom
206 #mom-SPEC := pl_mom.spec
207 #ALL += mom
208 #IN_NODEIMAGE += mom
209
210 #
211 # vsys
212 #
213 vsys-MODULES := vsys
214 vsys-SPEC := vsys.spec
215 vsys-DEVEL-RPMS += ocaml-ocamldoc ocaml-docs
216 IN_NODEIMAGE += vsys
217 ALL += vsys
218
219 #
220 # vsyssh : installed in slivers
221 #
222 vsyssh-MODULES := vsys
223 vsyssh-SPEC := vsyssh.spec
224 IN_SLICEIMAGE += vsyssh
225 ALL += vsyssh
226
227 #
228 # vsys-scripts
229 #
230 vsys-scripts-MODULES := vsys-scripts
231 vsys-scripts-SPEC := root-context/vsys-scripts.spec
232 IN_NODEIMAGE += vsys-scripts
233 ALL += vsys-scripts
234
235 #
236 # bind_public
237 #
238 bind_public-MODULES := bind_public
239 bind_public-SPEC := bind_public.spec
240 IN_SLICEIMAGE += bind_public
241 ALL += bind_public
242
243 #
244 # plcapi
245 #
246 plcapi-MODULES := plcapi
247 plcapi-SPEC := PLCAPI.spec
248 ALL += plcapi
249 IN_MYPLC += plcapi
250
251 #
252 # drupal
253
254 drupal-MODULES := drupal
255 drupal-SPEC := drupal.spec
256 drupal-BUILD-FROM-SRPM := yes
257 ALL += drupal
258 IN_MYPLC += drupal
259
260 #
261 # use the plewww module instead
262 #
263 plewww-MODULES := plewww
264 plewww-SPEC := plewww.spec
265 ALL += plewww
266 IN_MYPLC += plewww
267
268 #
269 # www-register-wizard
270 #
271 www-register-wizard-MODULES := www-register-wizard
272 www-register-wizard-SPEC := www-register-wizard.spec
273 ALL += www-register-wizard
274 IN_MYPLC += www-register-wizard
275
276 #
277 # pcucontrol
278 #
279 pcucontrol-MODULES := pcucontrol
280 pcucontrol-SPEC := pcucontrol.spec
281 ALL += pcucontrol
282
283 #
284 # pyopenssl
285 #
286 pyopenssl-MODULES := pyopenssl
287 pyopenssl-SPEC := pyOpenSSL.spec
288 pyopenssl-BUILD-FROM-SRPM := yes
289 ALL += pyopenssl
290
291 #
292 # pyaspects
293 #
294 pyaspects-MODULES := pyaspects
295 pyaspects-SPEC := pyaspects.spec
296 pyaspects-BUILD-FROM-SRPM := yes
297 ALL += pyaspects
298
299 #
300 # nodeconfig
301 #
302 nodeconfig-MODULES := nodeconfig
303 nodeconfig-SPEC := nodeconfig.spec
304 ALL += nodeconfig
305 IN_MYPLC += nodeconfig
306
307 #
308 # bootmanager
309 #
310 bootmanager-MODULES := bootmanager
311 bootmanager-SPEC := bootmanager.spec
312 ALL += bootmanager
313 IN_MYPLC += bootmanager
314
315 #
316 # pypcilib : used in bootcd
317
318 pypcilib-MODULES := pypcilib
319 pypcilib-SPEC := pypcilib.spec
320 ALL += pypcilib
321 IN_BOOTCD += pypcilib
322
323 #
324 # pyplnet
325 #
326 pyplnet-MODULES := pyplnet
327 pyplnet-SPEC := pyplnet.spec
328 ALL += pyplnet
329 IN_NODEIMAGE += pyplnet
330 IN_MYPLC += pyplnet
331 IN_BOOTCD += pyplnet
332
333 #
334 # OMF resource controller
335 #
336 omf-resctl-MODULES := omf
337 omf-resctl-SPEC := omf-resctl.spec
338 ALL += omf-resctl
339 IN_SLICEIMAGE += omf-resctl
340
341 #
342 # OMF exp controller
343 #
344 omf-expctl-MODULES := omf
345 omf-expctl-SPEC := omf-expctl.spec
346 ALL += omf-expctl
347
348 #
349 # OML measurement library
350 #
351 oml-MODULES := oml
352 oml-DEVEL-RPMS += sqlite-devel 
353 oml-SPEC := liboml.spec
354 ALL += oml
355
356 #
357 # bootcd
358 #
359 bootcd-MODULES := bootcd build
360 bootcd-SPEC := bootcd.spec
361 bootcd-DEPEND-PACKAGES := $(IN_BOOTCD)
362 bootcd-DEPEND-FILES := RPMS/yumgroups.xml
363 bootcd-RPMDATE := yes
364 ALL += bootcd
365 IN_MYPLC += bootcd
366
367 #
368 # images for slices
369 #
370 sliceimage-MODULES := sliceimage build
371 sliceimage-SPEC := sliceimage.spec
372 sliceimage-DEPEND-PACKAGES := $(IN_SLICEIMAGE)
373 sliceimage-DEPEND-FILES := RPMS/yumgroups.xml
374 sliceimage-RPMDATE := yes
375 ALL += sliceimage
376 IN_NODEIMAGE += sliceimage
377
378 #
379 # lxc-specific sliceimage initialization
380
381 lxc-sliceimage-MODULES  := sliceimage
382 lxc-sliceimage-SPEC     := lxc-sliceimage.spec
383 lxc-sliceimage-RPMDATE  := yes
384 ALL                     += lxc-sliceimage
385 IN_NODEIMAGE            += lxc-sliceimage
386
387 #
388 # nodeimage
389 #
390 nodeimage-MODULES := nodeimage build
391 nodeimage-SPEC := nodeimage.spec
392 nodeimage-DEPEND-PACKAGES := $(IN_NODEIMAGE)
393 nodeimage-DEPEND-FILES := RPMS/yumgroups.xml
394 nodeimage-RPMDATE := yes
395 ALL += nodeimage
396 IN_MYPLC += nodeimage
397
398 #
399 # noderepo
400 #
401 # all rpms resulting from packages marked as being in nodeimage and sliceimage
402 NODEREPO_RPMS = $(foreach package,$(IN_NODEIMAGE) $(IN_NODEREPO) $(IN_SLICEIMAGE),$($(package).rpms))
403 # replace space with +++ (specvars cannot deal with spaces)
404 SPACE=$(subst x, ,x)
405 NODEREPO_RPMS_3PLUS = $(subst $(SPACE),+++,$(NODEREPO_RPMS))
406
407 noderepo-MODULES := nodeimage
408 noderepo-SPEC := noderepo.spec
409 # package requires all embedded packages
410 noderepo-DEPEND-PACKAGES := $(IN_NODEIMAGE) $(IN_NODEREPO) $(IN_SLICEIMAGE)
411 noderepo-DEPEND-FILES := RPMS/yumgroups.xml
412 #export rpm list to the specfile
413 noderepo-SPECVARS = node_rpms_plus=$(NODEREPO_RPMS_3PLUS)
414 noderepo-RPMDATE := yes
415 ALL += noderepo
416 IN_MYPLC += noderepo
417
418 #
419 # slicerepo
420 #
421 # all rpms resulting from packages marked as being in vserver
422 SLICEREPO_RPMS = $(foreach package,$(IN_SLICEIMAGE),$($(package).rpms))
423 # replace space with +++ (specvars cannot deal with spaces)
424 SPACE=$(subst x, ,x)
425 SLICEREPO_RPMS_3PLUS = $(subst $(SPACE),+++,$(SLICEREPO_RPMS))
426
427 slicerepo-MODULES := nodeimage
428 slicerepo-SPEC := slicerepo.spec
429 # package requires all embedded packages
430 slicerepo-DEPEND-PACKAGES := $(IN_SLICEIMAGE)
431 slicerepo-DEPEND-FILES := RPMS/yumgroups.xml
432 #export rpm list to the specfile
433 slicerepo-SPECVARS = slice_rpms_plus=$(SLICEREPO_RPMS_3PLUS)
434 slicerepo-RPMDATE := yes
435 ALL += slicerepo
436
437 #
438 # MyPLC : lightweight packaging, dependencies are yum-installed in a vserver
439 #
440 myplc-MODULES := myplc
441 myplc-SPEC := myplc.spec
442 myplc-DEPEND-FILES := myplc-release RPMS/yumgroups.xml
443 ALL += myplc
444
445 # myplc-docs only contains docs for PLCAPI and NMAPI, but
446 # we still need to pull MyPLC, as it is where the specfile lies, 
447 # together with the utility script docbook2drupal.sh
448 myplc-docs-MODULES := myplc plcapi nodemanager 
449 myplc-docs-SPEC := myplc-docs.spec
450 ALL += myplc-docs
451
452 # using some other name than myplc-release, as this is a make target already
453 release-MODULES := myplc
454 release-SPEC := myplc-release.spec
455 release-RPMDATE := yes
456 ALL += release