From: Thierry Parmentelat Date: Wed, 23 May 2012 14:26:42 +0000 (+0200) Subject: first draft at wexlxc X-Git-Url: http://git.onelab.eu/?p=wextoolbox.git;a=commitdiff_plain;h=8dd3efd6b89901f04f0349e56f64ea39b5d9f45a first draft at wexlxc --- diff --git a/wexlxc-tags.mk b/wexlxc-tags.mk new file mode 100644 index 0000000..434190e --- /dev/null +++ b/wexlxc-tags.mk @@ -0,0 +1,60 @@ +# build-GITPATH is now set by vbuild-nightly.sh to avoid duplication + +# use the stock fedora14 +#boost-GITPATH := git://git.onelab.eu/boost.git@boost-1.37.0-6 +#gnuradio-GITPATH := git://git.onelab.eu/gnuradio@master +bbn_80211-GITPATH := git://git.onelab.eu/bbn_80211@bbn_80211-3.2.2-4 +crunchxml-GITPATH := git://git.onelab.eu/crunchxml@crunchxml-1.1-1 +spectools-GITPATH := git://git.onelab.eu/spectools@spectools-2009_06_R1-1 +#turned off +#sge-GITPATH := git://git.onelab.eu/sge/tags/sge-6.2.3-1 +#sge-GITPATH := git://git.onelab.eu/sge/trunk + +# lxcbuild is a tag +linux-3-GITPATH := git://git.planet-lab.org/linux-3.git@lxcbuild +kernel-DEVEL-RPMS += elfutils-libelf-devel +nodeupdate-GITPATH := git://git.planet-lab.org/nodeupdate.git@nodeupdate-0.5-9 +PingOfDeath-SVNPATH := http://svn.planet-lab.org/svn/PingOfDeath/tags/PingOfDeath-2.2-1 +nodemanager-BRANCH := lxc_devel +nodemanager-GITPATH := git://git.planet-lab.org/nodemanager.git@lxc_devel +# Trellis-specific NodeManager plugins +nodemanager-topo-GITPATH := git://git.planet-lab.org/NodeManager-topo@master +NodeManager-optin-SVNPATH := http://svn.planet-lab.org/svn/NodeManager-optin/trunk +# +pl_sshd-SVNPATH := http://svn.planet-lab.org/svn/pl_sshd/tags/pl_sshd-1.0-11 +codemux-GITPATH := git://git.planet-lab.org/codemux.git@codemux-0.1-15 +fprobe-ulog-GITPATH := git://git.planet-lab.org/fprobe-ulog.git@fprobe-ulog-1.1.4-2 +pf2slice-SVNPATH := http://svn.planet-lab.org/svn/pf2slice/tags/pf2slice-1.0-2 +Mom-GITPATH := git://git.planet-lab.org/mom.git@Mom-2.3-4 +inotify-tools-SVNPATH := http://svn.planet-lab.org/svn/inotify-tools/tags/inotify-tools-3.13-2 +openvswitch-GITPATH := git://git.planet-lab.org/openvswitch.git@master +vsys-GITPATH := git://git.planet-lab.org/vsys.git@vsys-0.99-2 +vsys-scripts-GITPATH := git://git.planet-lab.org/vsys-scripts@vsys-scripts-0.95-39 +plcapi-GITPATH := git://git.onelab.eu/plcapi.git@master +drupal-GITPATH := git://git.planet-lab.org/drupal.git@drupal-4.7-15 +plewww-GITPATH := git://git.planet-lab.org/plewww@plewww-4.3-72 +www-register-wizard-SVNPATH := http://svn.planet-lab.org/svn/www-register-wizard/tags/www-register-wizard-4.3-5 +monitor-GITPATH := git://git.planet-lab.org/monitor@monitor-3.1-6 +PLCRT-SVNPATH := http://svn.planet-lab.org/svn/PLCRT/tags/PLCRT-1.0-11 +pyopenssl-GITPATH := git://git.planet-lab.org/pyopenssl.git@pyopenssl-0.9-2 +### +pyaspects-GITPATH := git://git.planet-lab.org/pyaspects.git@pyaspects-0.4.1-2 +omf-GITPATH := git://git.onelab.eu/omf.git@omf-5.3-11 +### +sfa-GITPATH := git://git.planet-lab.org/sfa.git@sfa-2.1-7 +sface-GITPATH := git://git.planet-lab.org/sface.git@sface-0.9-5 +nodeconfig-GITPATH := git://git.planet-lab.org/nodeconfig.git@nodeconfig-5.0-7 +bootmanager-BRANCH := lxc_devel +bootmanager-GITPATH := git://git.planet-lab.org/bootmanager.git@lxc_devel +pypcilib-GITPATH := git://git.planet-lab.org/pypcilib.git@pypcilib-0.2-10 +pyplnet-GITPATH := git://git.planet-lab.org/pyplnet.git@pyplnet-4.3-14 +DistributedRateLimiting-SVNPATH := http://svn.planet-lab.org/svn/DistributedRateLimiting/tags/DistributedRateLimiting-0.1-1 +pcucontrol-GITPATH := git://git.planet-lab.org/pcucontrol.git@pcucontrol-1.0-12 +bootcd-GITPATH := git://git.planet-lab.org/bootcd.git@master +sliceimage-GITPATH := git://git.onelab.eu/sliceimage.git@master +lxc-reference-GITPATH := git://git.planet-lab.org/lxc-reference.git@master +nodeimage-GITPATH := git://git.planet-lab.org/nodeimage.git@master +myplc-GITPATH := git://git.planet-lab.org/myplc.git@master +# locating the right test directory - see make tests_gitpath +tests-GITPATH := git://git.planet-lab.org/tests.git@master +libvirt-GITPATH := git://git.planet-lab.org/libvirt.git@lxcbuild diff --git a/wexlxc.mk b/wexlxc.mk new file mode 100644 index 0000000..f32a107 --- /dev/null +++ b/wexlxc.mk @@ -0,0 +1,486 @@ +# +# declare the packages to be built and their dependencies +# initial version from Mark Huang +# Mark Huang +# Copyright (C) 2003-2006 The Trustees of Princeton University +# rewritten by Thierry Parmentelat - INRIA Sophia Antipolis +# +# see doc in Makefile +# + +# +# bbn +# +bbn-MODULES := bbn_80211 +bbn-SPEC := bbn_80211.spec +bbn-BUILD-FROM-SRPM := yes +# now from the stock repo +bbn-DEVEL-RPMS := gnuradio gnuradio-devel boost boost-devel swig +#bbn-DEPEND-DEVEL-RPMS := gnuradio gnuradio-devel boost boost-devel +ALL += bbn +IN_NODEIMAGE += bbn + +# +# crunchxml +# +crunchxml-MODULES := crunchxml +crunchxml-SPEC := crunchxml.spec +crunchxml-BUILD-FROM-SRPM := yes +crunchxml-DEVEL-RPMS := glib2-devel libxml-devel libxml2-devel scons +ALL += crunchxml +IN_NODEIMAGE += crunchxml + +# +# spectools +# +spectools-MODULES := spectools +spectools-SPEC := spectools.spec +spectools-BUILD-FROM-SRPM := yes +spectools-DEVEL-RPMS := gtk2-devel +ALL += spectools +IN_NODEIMAGE += spectools + +# +# sge +# +sge-MODULES := sge +sge-SPEC := sge.spec +sge-BUILD-FROM-SRPM := yes +sge-DEVEL-RPMS += kdevelop-devel kdevelop kdevelop-libs java-1.6.0-openjdk +sge-DEVEL-RPMS += lesstif lesstif-devel + +# turning this off - current focus is on deploying the sge box separately from myplc +# packaging is still broken, and we're exploring a ready-to-use distro on centos +# ALL += sge +# IN_NODEIMAGE += sge + +# +# kernel +# +# use a package name with srpm in it: +# so the source rpm is created by running make srpm in the codebase +# + +# rebuild kernel-3.1 on fedora14 due to instabilities of the stock kernel +ifeq "$(DISTRONAME)" "f14" +kernel-MODULES := linux-3 +kernel-SPEC := kernel-3.1.spec +kernel-DEVEL-RPMS += gettext elfutils-devel +kernel-BUILD-FROM-SRPM := yes +ifeq "$(HOSTARCH)" "i386" +kernel-RPMFLAGS:= --target i686 --with firmware +else +kernel-RPMFLAGS:= --target $(HOSTARCH) --with firmware +endif +kernel-SPECVARS += kernelconfig=planetlab +KERNELS += kernel + +kernels: $(KERNELS) +kernels-clean: $(foreach package,$(KERNELS),$(package)-clean) + +ALL += $(KERNELS) +# this is to mark on which image a given rpm is supposed to go +IN_BOOTCD += $(KERNELS) +IN_SLICEIMAGE += $(KERNELS) +IN_NODEIMAGE += $(KERNELS) +endif + +# +# NodeUpdate +# +nodeupdate-MODULES := nodeupdate +nodeupdate-SPEC := NodeUpdate.spec +ALL += nodeupdate +IN_NODEIMAGE += nodeupdate + +# +# ipod +# +ipod-MODULES := PingOfDeath +ipod-SPEC := ipod.spec +ALL += ipod +IN_NODEIMAGE += ipod + +# +# NodeManager +# +nodemanager-MODULES := nodemanager +nodemanager-SPEC := NodeManager.spec +ALL += nodemanager +IN_NODEIMAGE += nodemanager + +# +# pl_sshd +# +sshd-MODULES := pl_sshd +sshd-SPEC := pl_sshd.spec +ALL += sshd +IN_NODEIMAGE += sshd + +# +# codemux: Port 80 demux +# +codemux-MODULES := codemux +codemux-SPEC := codemux.spec +ALL += codemux +IN_NODEIMAGE += codemux + +# +# fprobe-ulog +# +fprobe-ulog-MODULES := fprobe-ulog +fprobe-ulog-SPEC := fprobe-ulog.spec +ALL += fprobe-ulog +IN_NODEIMAGE += fprobe-ulog + +# +# libvirt +# +libvirt-MODULES := libvirt +libvirt-SPEC := libvirt.spec +libvirt-BUILD-FROM-SRPM := yes +libvirt-DEVEL-RPMS += libxml2-devel gnutls-devel device-mapper-devel yajl-devel gettext +libvirt-DEVEL-RPMS += python-devel libcap-ng-devel libpciaccess-devel radvd numactl-devel +libvirt-DEVEL-RPMS += xhtml1-dtds libxslt libtasn1-devel systemtap-sdt-devel iptables-ipv6 augeas +libvirt-DEVEL-RPMS += libudev-devel +libvirt-RPMFLAGS := --without storage-disk --without storage-iscsi --without storage-scsi \ + --without storage-fs --without storage-lvm \ + --without polkit --without sasl --without audit --with capng --with udev \ + --without netcf --without avahi --without sanlock \ + --without xen --without qemu --without hyperv --without phyp --without esx \ + --without libxl \ + --define 'packager PlanetLab' +ALL += libvirt +IN_NODEREPO += libvirt +IN_NODEIMAGE += libvirt + +# +# DistributedRateLimiting +# +#DistributedRateLimiting-MODULES := DistributedRateLimiting +#DistributedRateLimiting-SPEC := DistributedRateLimiting.spec +#ALL += DistributedRateLimiting +#IN_NODEREPO += DistributedRateLimiting + +# +# pf2slice +# +pf2slice-MODULES := pf2slice +pf2slice-SPEC := pf2slice.spec +ALL += pf2slice + +## +## PlanetLab Mom: Cleans up your mess +## +#mom-MODULES := Mom +#mom-SPEC := pl_mom.spec +#ALL += mom +#IN_NODEIMAGE += mom + +# +# inotify-tools - local import +# rebuild this on centos5 (not found) - see yumexclude +# +local_inotify_tools=false +ifeq "$(DISTRONAME)" "centos5" +local_inotify_tools=true +endif + +ifeq "$(DISTRONAME)" "sl6" +local_inotify_tools=true +endif + +ifeq "$(local_inotify_tools)" "true" +inotify-tools-MODULES := inotify-tools +inotify-tools-SPEC := inotify-tools.spec +inotify-tools-BUILD-FROM-SRPM := yes +IN_NODEIMAGE += inotify-tools +ALL += inotify-tools +endif + +# +# openvswitch +# +# openvswitch-MODULES := openvswitch +# openvswitch-SPEC := openvswitch.spec +# openvswitch-DEPEND-DEVEL-RPMS += kernel-devel +# IN_NODEIMAGE += openvswitch +# # build only on f14 as f16 has this natively +# ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f14)" +# ALL += openvswitch +# endif + +# +# vsys +# +vsys-MODULES := vsys +vsys-SPEC := vsys.spec +# ocaml-docs is not needed anymore but keep it on a tmp basis as some tags may still have it +vsys-DEVEL-RPMS += ocaml-ocamldoc ocaml-docs +ifeq "$(local_inotify_tools)" "true" +vsys-DEPEND-DEVEL-RPMS += inotify-tools inotify-tools-devel +endif +IN_NODEIMAGE += vsys +ALL += vsys + +# +# vsyssh : installed in slivers +# +vsyssh-MODULES := vsys +vsyssh-SPEC := vsyssh.spec +IN_SLICEIMAGE += vsyssh +ALL += vsyssh + +# +# vsys-scripts +# +vsys-scripts-MODULES := vsys-scripts +vsys-scripts-SPEC := vsys-scripts.spec +IN_NODEIMAGE += vsys-scripts +ALL += vsys-scripts + +# +# plcapi +# +plcapi-MODULES := plcapi +plcapi-SPEC := PLCAPI.spec +ALL += plcapi +IN_MYPLC += plcapi + +# +# drupal +# +drupal-MODULES := drupal +drupal-SPEC := drupal.spec +drupal-BUILD-FROM-SRPM := yes +ALL += drupal +IN_MYPLC += drupal + +# +# use the plewww module instead +# +plewww-MODULES := plewww +plewww-SPEC := plewww.spec +ALL += plewww +IN_MYPLC += plewww + +# +# www-register-wizard +# +www-register-wizard-MODULES := www-register-wizard +www-register-wizard-SPEC := www-register-wizard.spec +ALL += www-register-wizard +IN_MYPLC += www-register-wizard + +# +# pcucontrol +# +pcucontrol-MODULES := pcucontrol +pcucontrol-SPEC := pcucontrol.spec +ALL += pcucontrol + +# +# monitor +# +#monitor-MODULES := monitor +#monitor-SPEC := Monitor.spec +#monitor-DEVEL-RPMS += net-snmp net-snmp-devel +#ALL += monitor +#IN_NODEIMAGE += monitor + +# +# PLC RT +# +plcrt-MODULES := PLCRT +plcrt-SPEC := plcrt.spec +ALL += plcrt + +# f12 has 0.9-1 already +ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f8 centos5)" +# +# pyopenssl +# +pyopenssl-MODULES := pyopenssl +pyopenssl-SPEC := pyOpenSSL.spec +pyopenssl-BUILD-FROM-SRPM := yes +ALL += pyopenssl +endif + +# +# pyaspects +# +pyaspects-MODULES := pyaspects +pyaspects-SPEC := pyaspects.spec +pyaspects-BUILD-FROM-SRPM := yes +ALL += pyaspects + +# sfa now uses the with statement that's not supported on python-2.4 - not even through __future__ +# In addition we now use sqlalchemy and 0.5 as per f12 is not compatible with our model +build_sfa=true +ifeq "$(DISTRONAME)" "$(filter $(DISTRONAME),f8 f12 centos5)" +build_sfa=false +endif + +ifeq "$(build_sfa)" "true" +# +# sfa - Slice Facility Architecture +# +sfa-MODULES := sfa +sfa-SPEC := sfa.spec +ALL += sfa + +sface-MODULES := sface +sface-SPEC := sface.spec +ALL += sface +endif + +# +# nodeconfig +# +nodeconfig-MODULES := nodeconfig +nodeconfig-SPEC := nodeconfig.spec +ALL += nodeconfig +IN_MYPLC += nodeconfig + +# +# bootmanager +# +bootmanager-MODULES := bootmanager +bootmanager-SPEC := bootmanager.spec +ALL += bootmanager +IN_MYPLC += bootmanager + +# +# pypcilib : used in bootcd +# +pypcilib-MODULES := pypcilib +pypcilib-SPEC := pypcilib.spec +ALL += pypcilib +IN_BOOTCD += pypcilib + +# +# pyplnet +# +pyplnet-MODULES := pyplnet +pyplnet-SPEC := pyplnet.spec +ALL += pyplnet +IN_NODEIMAGE += pyplnet +IN_MYPLC += pyplnet +IN_BOOTCD += pyplnet + +# +# OMF resource controller +# +omf-resctl-MODULES := omf +omf-resctl-SPEC := omf-resctl.spec +ALL += omf-resctl +IN_SLICEIMAGE += omf-resctl + +# +# OMF exp controller +# +omf-expctl-MODULES := omf +omf-expctl-SPEC := omf-expctl.spec +ALL += omf-expctl + +# +# bootcd +# +bootcd-MODULES := bootcd build +bootcd-SPEC := bootcd.spec +bootcd-DEPEND-PACKAGES := $(IN_BOOTCD) +bootcd-DEPEND-FILES := RPMS/yumgroups.xml +bootcd-RPMDATE := yes +ALL += bootcd +IN_MYPLC += bootcd + +# +# images for slices +# +sliceimage-MODULES := sliceimage build +sliceimage-SPEC := sliceimage.spec +sliceimage-DEPEND-PACKAGES := $(IN_SLICEIMAGE) +sliceimage-DEPEND-FILES := RPMS/yumgroups.xml +sliceimage-RPMDATE := yes +ALL += sliceimage +IN_NODEIMAGE += sliceimage + +# +# lxc-specific sliceimage initialization +# +lxc-sliceimage-MODULES := sliceimage +lxc-sliceimage-SPEC := lxc-sliceimage.spec +lxc-sliceimage-RPMDATE := yes +ALL += lxc-sliceimage +IN_NODEIMAGE += lxc-sliceimage + +# +# nodeimage +# +nodeimage-MODULES := nodeimage build +nodeimage-SPEC := nodeimage.spec +nodeimage-DEPEND-PACKAGES := $(IN_NODEIMAGE) +nodeimage-DEPEND-FILES := RPMS/yumgroups.xml +nodeimage-RPMDATE := yes +ALL += nodeimage +IN_MYPLC += nodeimage + +# +# noderepo +# +# all rpms resulting from packages marked as being in nodeimage and sliceimage +NODEREPO_RPMS = $(foreach package,$(IN_NODEIMAGE) $(IN_NODEREPO) $(IN_SLICEIMAGE),$($(package).rpms)) +# replace space with +++ (specvars cannot deal with spaces) +SPACE=$(subst x, ,x) +NODEREPO_RPMS_3PLUS = $(subst $(SPACE),+++,$(NODEREPO_RPMS)) + +noderepo-MODULES := nodeimage +noderepo-SPEC := noderepo.spec +# package requires all embedded packages +noderepo-DEPEND-PACKAGES := $(IN_NODEIMAGE) $(IN_NODEREPO) $(IN_SLICEIMAGE) +noderepo-DEPEND-FILES := RPMS/yumgroups.xml +#export rpm list to the specfile +noderepo-SPECVARS = node_rpms_plus=$(NODEREPO_RPMS_3PLUS) +noderepo-RPMDATE := yes +ALL += noderepo +IN_MYPLC += noderepo + +# +# slicerepo +# +# all rpms resulting from packages marked as being in vserver +SLICEREPO_RPMS = $(foreach package,$(IN_SLICEIMAGE),$($(package).rpms)) +# replace space with +++ (specvars cannot deal with spaces) +SPACE=$(subst x, ,x) +SLICEREPO_RPMS_3PLUS = $(subst $(SPACE),+++,$(SLICEREPO_RPMS)) + +slicerepo-MODULES := nodeimage +slicerepo-SPEC := slicerepo.spec +# package requires all embedded packages +slicerepo-DEPEND-PACKAGES := $(IN_SLICEIMAGE) +slicerepo-DEPEND-FILES := RPMS/yumgroups.xml +#export rpm list to the specfile +slicerepo-SPECVARS = slice_rpms_plus=$(SLICEREPO_RPMS_3PLUS) +slicerepo-RPMDATE := yes +ALL += slicerepo + +# +# MyPLC : lightweight packaging, dependencies are yum-installed in a vserver +# +myplc-MODULES := myplc +myplc-SPEC := myplc.spec +myplc-DEPEND-FILES := myplc-release RPMS/yumgroups.xml +ALL += myplc + +# myplc-docs only contains docs for PLCAPI and NMAPI, but +# we still need to pull MyPLC, as it is where the specfile lies, +# together with the utility script docbook2drupal.sh +myplc-docs-MODULES := myplc plcapi nodemanager monitor +myplc-docs-SPEC := myplc-docs.spec +ALL += myplc-docs + +# using some other name than myplc-release, as this is a make target already +release-MODULES := myplc +release-SPEC := myplc-release.spec +release-RPMDATE := yes +ALL += release