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
11 ### the madwifi drivers ship with fedora16's kernel rpm
14 # lxc-userspace: scripts for entering containers
16 lxc-userspace-MODULES := lxc-userspace
17 lxc-userspace-SPEC := lxc-userspace.spec
19 IN_NODEIMAGE += lxc-userspace
23 # transforward: root context module for transparent port forwarding
25 transforward-MODULES := transforward
26 transforward-SPEC := transforward.spec
28 IN_NODEIMAGE += transforward
31 # procprotect: root context module for protecting against weaknesses in /proc
33 procprotect-MODULES := procprotect
34 procprotect-SPEC := procprotect.spec
36 IN_NODEIMAGE += procprotect
39 # ipfw: root context module, and slice companion
41 # this module won't build yet under f20
42 ifeq "$(DISTRONAME)" "f18"
43 ipfwroot-MODULES := ipfw
44 ipfwroot-SPEC := planetlab/ipfwroot.spec
46 IN_NODEIMAGE += ipfwroot
48 ipfwslice-MODULES := ipfw
49 ipfwslice-SPEC := planetlab/ipfwslice.spec
54 # comgt - a companion to umts tools
56 comgt-MODULES := comgt
57 comgt-SPEC := comgt.spec
62 # umts: root context stuff
64 umts-backend-MODULES := planetlab-umts-tools
65 umts-backend-SPEC := backend.spec
66 IN_NODEIMAGE += umts-backend
72 umts-frontend-MODULES := planetlab-umts-tools
73 umts-frontend-SPEC := frontend.spec
74 IN_SLICEIMAGE += umts-frontend
80 nodeupdate-MODULES := nodeupdate
81 nodeupdate-SPEC := NodeUpdate.spec
83 IN_NODEIMAGE += nodeupdate
88 ipod-MODULES := PingOfDeath
89 ipod-SPEC := ipod.spec
96 plnode-utils-MODULES := plnode-utils
97 plnode-utils-SPEC := plnode-utils-lxc.spec
99 IN_NODEIMAGE += plnode-utils
104 nodemanager-lib-MODULES := nodemanager
105 nodemanager-lib-SPEC := nodemanager-lib.spec
106 ALL += nodemanager-lib
107 IN_NODEIMAGE += nodemanager-lib
109 nodemanager-lxc-MODULES := nodemanager
110 nodemanager-lxc-SPEC := nodemanager-lxc.spec
111 ALL += nodemanager-lxc
112 IN_NODEIMAGE += nodemanager-lxc
117 sshd-MODULES := pl_sshd
118 sshd-SPEC := pl_sshd.spec
123 # codemux: Port 80 demux
125 codemux-MODULES := codemux
126 codemux-SPEC := codemux.spec
128 IN_NODEIMAGE += codemux
133 fprobe-ulog-MODULES := fprobe-ulog
134 fprobe-ulog-SPEC := fprobe-ulog.spec
136 IN_NODEIMAGE += fprobe-ulog
138 #################### libvirt version selection
139 # for now things are a bit confused
140 # on f18 we build with our own 1.0.4 and that works fine
141 # on f20 we have tried the mainstream (1.1.3) libvirt,
142 # as well as the latest 1.2.1 release, and both exhibit an issue that needs to be fixed
143 # in addition once this is done we might need to have f18+1.2.1 as well
144 # so for now we leave the option to set the following on the command line
145 # LIBVIRT=104 (for f18)
146 # LIBVIRT=mainstream (for f20)
147 # LIBVIRT=121 (for f18 or f20)
149 # set default according to distro
151 ifeq "$(DISTRONAME)" "f18"
158 ifeq "$(LIBVIRT)" "104"
160 separate_libvirt_python=false
161 libvirt-GITPATH := git://git.onelab.eu/libvirt.git@libvirt-1.0.4-3
164 ifeq "$(LIBVIRT)" "121"
166 separate_libvirt_python=true
167 libvirt-GITPATH := git://git.onelab.eu/libvirt.git@1.2.1
168 libvirt-python-GITPATH := git://git.onelab.eu/libvirt-python.git@1.2.1
171 ifeq "$(LIBVIRT)" "mainstream"
178 ifeq "$(local_libvirt)" "true"
180 libvirt-MODULES := libvirt
181 libvirt-SPEC := libvirt.spec
182 libvirt-BUILD-FROM-SRPM := yes
183 # The --without options are breaking spec2make : hard-wired in the specfile instead
184 libvirt-STOCK-DEVEL-RPMS += xhtml1-dtds gettext gettext-devel libtasn1-devel gnutls-devel
185 libvirt-STOCK-DEVEL-RPMS += libattr-devel augeas libpciaccess-devel yajl-devel
186 libvirt-STOCK-DEVEL-RPMS += libpcap-devel radvd ebtables device-mapper-devel
187 libvirt-STOCK-DEVEL-RPMS += ceph-devel numactl-devel libcap-ng-devel scrub
188 # for 1.2.1 - first seen on f20, not sure for the other ones
189 libvirt-STOCK-DEVEL-RPMS += libblkid-devel glusterfs-api-devel glusterfs-devel
191 ifeq "$(DISTRONAME)" "f16"
192 libvirt-STOCK-DEVEL-RPMS += libnl-devel libudev-devel
194 # strictly speaking fuse-devel is not required anymore but we might wish to turn fuse back on again in the future
195 ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f18 f20)"
196 libvirt-STOCK-DEVEL-RPMS += fuse-devel libssh2-devel dbus-devel numad
197 libvirt-STOCK-DEVEL-RPMS += systemd-devel libnl3-devel iptables-ipv6 libgcrypt-devel netcf-devel
200 IN_NODEREPO += libvirt
201 IN_NODEIMAGE += libvirt
207 ifeq "$(separate_libvirt_python)" "true"
209 libvirt-python-MODULES := libvirt-python
210 libvirt-python-SPEC := libvirt-python.spec
211 libvirt-python-BUILD-FROM-SRPM := yes
212 libvirt-python-STOCK-DEVEL-RPMS += gnutls-utils nc pm-utils
213 libvirt-python-LOCAL-DEVEL-RPMS += libvirt-devel libvirt-docs libvirt-client
214 libvirt-python-RPMFLAGS := --define 'packager PlanetLab'
215 ALL += libvirt-python
216 IN_NODEREPO += libvirt-python
217 IN_NODEIMAGE += libvirt-python
221 # DistributedRateLimiting
223 #DistributedRateLimiting-MODULES := DistributedRateLimiting
224 #DistributedRateLimiting-SPEC := DistributedRateLimiting.spec
225 #ALL += DistributedRateLimiting
226 #IN_NODEREPO += DistributedRateLimiting
231 pf2slice-MODULES := pf2slice
232 pf2slice-SPEC := pf2slice.spec
236 ## PlanetLab Mom: Cleans up your mess
239 #mom-SPEC := pl_mom.spec
246 # openvswitch-MODULES := openvswitch
247 # openvswitch-SPEC := openvswitch.spec
248 # openvswitch-STOCK-DEVEL-RPMS += kernel-devel
249 # IN_NODEIMAGE += openvswitch
250 # # build only on f14 as f16 has this natively
251 # ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f14)"
259 vsys-SPEC := vsys.spec
260 # ocaml-docs is not needed anymore but keep it on a tmp basis as some tags may still have it
261 vsys-STOCK-DEVEL-RPMS += ocaml-ocamldoc ocaml-docs
266 # vsyssh : installed in slivers
268 vsyssh-MODULES := vsys
269 vsyssh-SPEC := vsyssh.spec
270 IN_SLICEIMAGE += vsyssh
276 vsys-scripts-MODULES := vsys-scripts
277 vsys-scripts-SPEC := root-context/vsys-scripts.spec
278 IN_NODEIMAGE += vsys-scripts
284 bind_public-MODULES := bind_public
285 bind_public-SPEC := bind_public.spec
286 IN_SLICEIMAGE += bind_public
292 sliver-openvswitch-MODULES := sliver-openvswitch
293 sliver-openvswitch-SPEC := sliver-openvswitch.spec
294 IN_SLICEIMAGE += sliver-openvswitch
295 ALL += sliver-openvswitch
300 plcapi-MODULES := plcapi
301 plcapi-SPEC := plcapi.spec
308 drupal-MODULES := drupal
309 drupal-SPEC := drupal.spec
310 drupal-BUILD-FROM-SRPM := yes
315 # use the plewww module instead
317 plewww-MODULES := plewww
318 plewww-SPEC := plewww.spec
323 # www-register-wizard
325 www-register-wizard-MODULES := www-register-wizard
326 www-register-wizard-SPEC := www-register-wizard.spec
327 ALL += www-register-wizard
328 IN_MYPLC += www-register-wizard
333 pcucontrol-MODULES := pcucontrol
334 pcucontrol-SPEC := pcucontrol.spec
340 #monitor-MODULES := monitor
341 #monitor-SPEC := Monitor.spec
342 #monitor-STOCK-DEVEL-RPMS += net-snmp net-snmp-devel
344 #IN_NODEIMAGE += monitor
349 plcrt-MODULES := PLCRT
350 plcrt-SPEC := plcrt.spec
353 # f12 has 0.9-1 already
354 ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f8 centos5)"
358 pyopenssl-MODULES := pyopenssl
359 pyopenssl-SPEC := pyOpenSSL.spec
360 pyopenssl-BUILD-FROM-SRPM := yes
367 pyaspects-MODULES := pyaspects
368 pyaspects-SPEC := pyaspects.spec
369 pyaspects-BUILD-FROM-SRPM := yes
375 nodeconfig-MODULES := nodeconfig
376 nodeconfig-SPEC := nodeconfig.spec
378 IN_MYPLC += nodeconfig
383 bootmanager-MODULES := bootmanager
384 bootmanager-SPEC := bootmanager.spec
386 IN_MYPLC += bootmanager
389 # pypcilib : used in bootcd
391 pypcilib-MODULES := pypcilib
392 pypcilib-SPEC := pypcilib.spec
394 IN_BOOTCD += pypcilib
399 pyplnet-MODULES := pyplnet
400 pyplnet-SPEC := pyplnet.spec
402 IN_NODEIMAGE += pyplnet
407 # for OMF resource controller as a gem : rvm-ruby has right version of ruby and related gem stuff
409 rvm-ruby-MODULES := rvm-ruby
410 rvm-ruby-SPEC := rpm/rvm-ruby.spec
411 rvm-ruby-STOCK-DEVEL-RPMS := chrpath libyaml-devel libffi-devel libxslt-devel
412 # Since Oct 22. 2013, f18 has a new release of openssl that ruby is not too happy to build against
413 # turning this off for now, Christoph Dwertmann to monitor the status of this bug/incompatibility upstream
417 # OML measurement library
420 oml-STOCK-DEVEL-RPMS += sqlite-devel
421 oml-SPEC := liboml.spec
427 bootcd-MODULES := bootcd build
428 bootcd-SPEC := bootcd.spec
429 bootcd-DEPEND-PACKAGES := $(IN_BOOTCD)
430 bootcd-DEPEND-FILES := RPMS/yumgroups.xml
431 bootcd-RPMDATE := yes
438 sliceimage-MODULES := sliceimage build
439 sliceimage-SPEC := sliceimage.spec
440 sliceimage-DEPEND-PACKAGES := $(IN_SLICEIMAGE)
441 sliceimage-DEPEND-FILES := RPMS/yumgroups.xml
442 sliceimage-RPMDATE := yes
444 IN_NODEIMAGE += sliceimage
447 # lxc-specific sliceimage initialization
449 lxc-sliceimage-MODULES := sliceimage
450 lxc-sliceimage-SPEC := lxc-sliceimage.spec
451 lxc-sliceimage-RPMDATE := yes
452 ALL += lxc-sliceimage
453 IN_NODEIMAGE += lxc-sliceimage
458 nodeimage-MODULES := nodeimage build
459 nodeimage-SPEC := nodeimage.spec
460 nodeimage-DEPEND-PACKAGES := $(IN_NODEIMAGE)
461 nodeimage-DEPEND-FILES := RPMS/yumgroups.xml
462 nodeimage-RPMDATE := yes
464 IN_MYPLC += nodeimage
469 # all rpms resulting from packages marked as being in nodeimage and sliceimage
470 NODEREPO_RPMS = $(foreach package,$(IN_NODEIMAGE) $(IN_NODEREPO) $(IN_SLICEIMAGE),$($(package).rpms))
471 # replace space with +++ (specvars cannot deal with spaces)
473 NODEREPO_RPMS_3PLUS = $(subst $(SPACE),+++,$(NODEREPO_RPMS))
475 noderepo-MODULES := nodeimage
476 noderepo-SPEC := noderepo.spec
477 # package requires all embedded packages
478 noderepo-DEPEND-PACKAGES := $(IN_NODEIMAGE) $(IN_NODEREPO) $(IN_SLICEIMAGE)
479 noderepo-DEPEND-FILES := RPMS/yumgroups.xml
480 #export rpm list to the specfile
481 noderepo-SPECVARS = node_rpms_plus=$(NODEREPO_RPMS_3PLUS)
482 noderepo-RPMDATE := yes
489 # all rpms resulting from packages marked as being in vserver
490 SLICEREPO_RPMS = $(foreach package,$(IN_SLICEIMAGE),$($(package).rpms))
491 # replace space with +++ (specvars cannot deal with spaces)
493 SLICEREPO_RPMS_3PLUS = $(subst $(SPACE),+++,$(SLICEREPO_RPMS))
495 slicerepo-MODULES := nodeimage
496 slicerepo-SPEC := slicerepo.spec
497 # package requires all embedded packages
498 slicerepo-DEPEND-PACKAGES := $(IN_SLICEIMAGE)
499 slicerepo-DEPEND-FILES := RPMS/yumgroups.xml
500 #export rpm list to the specfile
501 slicerepo-SPECVARS = slice_rpms_plus=$(SLICEREPO_RPMS_3PLUS)
502 slicerepo-RPMDATE := yes
506 # MyPLC : lightweight packaging, dependencies are yum-installed in a vserver
508 myplc-MODULES := myplc
509 myplc-SPEC := myplc.spec
510 myplc-DEPEND-FILES := myplc-release RPMS/yumgroups.xml
513 # myplc-docs only contains docs for PLCAPI and NMAPI, but
514 # we still need to pull MyPLC, as it is where the specfile lies,
515 # together with the utility script docbook2drupal.sh
516 myplc-docs-MODULES := myplc plcapi nodemanager monitor
517 myplc-docs-SPEC := myplc-docs.spec
520 # using some other name than myplc-release, as this is a make target already
521 release-MODULES := myplc
522 release-SPEC := myplc-release.spec
523 release-RPMDATE := yes
526 ##############################
527 # sfa requires python-2.7
529 ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f8 f12 centos5)"
533 ifeq "$(build_sfa)" "true"
535 # sfa - Slice Facility Architecture
541 #sface-MODULES := sface
542 #sface-SPEC := sface.spec
546 ##############################
547 # don't build these by default, we have separate builds for that
548 myslice-MODULES := myslice
549 myslice-SPEC := myslice.spec
550 myslice-STOCK-DEVEL-RPMS := python-django
551 myslice-STOCK-DEVEL-DEBS := python-django python-django-south
554 manifold-MODULES := manifold
555 manifold-SPEC := manifold.spec