<packagereq type="mandatory">util-python</packagereq>
<packagereq type="mandatory">NodeManager</packagereq>
<packagereq type="mandatory">NodeUpdate</packagereq>
- <packagereq type="mandatory">PLBootServerRequest</packagereq>
- <packagereq type="mandatory">pycurl</packagereq>
- <packagereq type="mandatory">vnet</packagereq>
<packagereq type="mandatory">codemux</packagereq>
<packagereq type="mandatory">autofs</packagereq>
- <packagereq type="mandatory">planetlab_sudo</packagereq>
<packagereq type="mandatory">pl_sshd</packagereq>
<packagereq type="mandatory">ipod</packagereq>
<packagereq type="mandatory">vserver-reference</packagereq>
<packagereq type="mandatory">vserver-system-packages</packagereq>
- <packagereq type="mandatory">proper</packagereq>
<packagereq type="mandatory">pl_mom</packagereq>
<packagereq type="mandatory">netflow-utils</packagereq>
<packagereq type="mandatory">PyXML</packagereq>
</packagelist>
</group>
- <group>
- <id>vserver</id>
- <name>VServer</name>
- <uservisible>true</uservisible>
- <description>VServer Reference Image</description>
- <packagelist>
- <packagereq type="mandatory">bash</packagereq>
- <packagereq type="mandatory">coreutils</packagereq>
- <packagereq type="mandatory">iputils</packagereq>
- <packagereq type="mandatory">kernel-vserver</packagereq>
-
- <packagereq type="mandatory">bzip2</packagereq>
- <packagereq type="mandatory">crontabs</packagereq>
- <packagereq type="default">diffutils</packagereq>
- <packagereq type="mandatory">logrotate</packagereq>
- <packagereq type="default">openssh-clients</packagereq>
- <packagereq type="mandatory">passwd</packagereq>
- <packagereq type="default">rsh</packagereq>
- <packagereq type="default">rsync</packagereq>
- <packagereq type="default">sudo</packagereq>
- <packagereq type="default">tcpdump</packagereq>
- <packagereq type="mandatory">telnet</packagereq>
- <packagereq type="mandatory">traceroute</packagereq>
- <packagereq type="mandatory">time</packagereq>
- <packagereq type="default">vixie-cron</packagereq>
- <packagereq type="default">wget</packagereq>
- <packagereq type="default">which</packagereq>
- <packagereq type="default">jre-6u1-linux</packagereq>
- <packagereq type="default">yum</packagereq>
-
- <packagereq type="mandatory">curl</packagereq>
- <packagereq type="mandatory">gzip</packagereq>
- <packagereq type="mandatory">perl</packagereq>
- <packagereq type="mandatory">python</packagereq>
- <packagereq type="mandatory">tar</packagereq>
- </packagelist>
- </group>
-
- <group>
- <id>bootcd</id>
- <name>BootCD</name>
- <uservisible>true</uservisible>
- <description>BootCD Image</description>
- <packagelist>
- <packagereq type="mandatory">dhclient</packagereq>
- <packagereq type="mandatory">bash</packagereq>
- <packagereq type="mandatory">coreutils</packagereq>
- <packagereq type="mandatory">iputils</packagereq>
- <packagereq type="mandatory">kernel</packagereq>
- <packagereq type="mandatory">bzip2</packagereq>
- <packagereq type="mandatory">crontabs</packagereq>
- <packagereq type="default">diffutils</packagereq>
- <packagereq type="mandatory">logrotate</packagereq>
- <packagereq type="default">openssh-clients</packagereq>
- <packagereq type="mandatory">passwd</packagereq>
- <packagereq type="default">rsh</packagereq>
- <packagereq type="default">rsync</packagereq>
- <packagereq type="default">sudo</packagereq>
- <packagereq type="default">tcpdump</packagereq>
- <packagereq type="mandatory">telnet</packagereq>
- <packagereq type="mandatory">traceroute</packagereq>
- <packagereq type="mandatory">time</packagereq>
- <packagereq type="default">vixie-cron</packagereq>
- <packagereq type="default">wget</packagereq>
- <packagereq type="default">yum</packagereq>
- <packagereq type="mandatory">curl</packagereq>
- <packagereq type="mandatory">gzip</packagereq>
- <packagereq type="mandatory">perl</packagereq>
- <packagereq type="mandatory">python</packagereq>
- <packagereq type="mandatory">tar</packagereq>
- <packagereq type="mandatory">pciutils</packagereq>
- <packagereq type="mandatory">kbd</packagereq>
- <packagereq type="mandatory">authconfig</packagereq>
- <packagereq type="mandatory">hdparm</packagereq>
- <packagereq type="mandatory">lvm</packagereq>
- <packagereq type="mandatory">lvm2</packagereq>
- <packagereq type="mandatory">kexec-tools</packagereq>
- <packagereq type="mandatory">gnupg</packagereq>
- <packagereq type="mandatory">nano</packagereq>
- <packagereq type="mandatory">parted</packagereq>
- <packagereq type="mandatory">pyparted</packagereq>
- <packagereq type="mandatory">openssh-server</packagereq>
- <packagereq type="mandatory">openssh-clients</packagereq>
- <packagereq type="mandatory">ncftp</packagereq>
- <packagereq type="mandatory">dosfstools</packagereq>
- <packagereq type="mandatory">dos2unix</packagereq>
- <packagereq type="mandatory">bind-utils</packagereq>
- <packagereq type="mandatory">sharutils</packagereq>
- </packagelist>
- </group>
-
<group>
<id>planetlabalpha</id>
<name>PlanetLab Alpha</name>
#
# see doc in Makefile
#
+
#
# kernel
#
-# until we are able to build the new kernel layout:
-# use the old exploded-tree, 2.6.20-based, version on fc4, 6 & 7
-# and the new one on f8 - that requires the build-id patch
-
-#
# use a package name with srpm in it:
-# in this case the srpm is created by running make srpm in the codebase
+# so the source rpm is created by running make srpm in the codebase
#
srpm-kernel-$(HOSTARCH)-MODULES := linux-patches
endif
KERNELS += srpm-kernel-$(HOSTARCH)
-#else
-#kernel-$(HOSTARCH)-MODULES := linux-tree
-#kernel-$(HOSTARCH)-SPEC := scripts/kernel-2.6-planetlab.spec
-#ifeq ($(HOSTARCH),i386)
-#kernel-$(HOSTARCH)-RPMFLAGS:= --target i686
-#else
-#kernel-$(HOSTARCH)-RPMFLAGS:= --target $(HOSTARCH)
-#endif
-#KERNELS += kernel-$(HOSTARCH)
-#endif
-
kernel: $(KERNELS)
kernel-clean: $(foreach package,$(KERNELS),$(package)-clean)
-ALL += $(KERNELS)
-
-# the first kernel package defined here
+# the first kernel package defined here for convenience
kernel_package := $(word 1,$(KERNELS))
+ALL += $(KERNELS)
+# this is to mark on which image a given rpm is supposed to go
+IN_BOOTCD += $(KERNELS)
+IN_VSERVER += $(KERNELS)
+IN_BOOTSTRAPFS += $(KERNELS)
+# turns out myplc installs kernel-vserver
+IN_MYPLC += $(KERNELS)
+
#
# libnl
#
util-vserver-RPMFLAGS:= --without dietlibc
util-vserver-DEPENDDEVELS := libnl
ALL += util-vserver
+IN_BOOTSTRAPFS += util-vserver
#
# NodeUpdate
NodeUpdate-MODULES := NodeUpdate
NodeUpdate-SPEC := NodeUpdate.spec
ALL += NodeUpdate
+IN_BOOTSTRAPFS += NodeUpdate
#
# ipod
#
-PingOfDeath-MODULES := PingOfDeath
-PingOfDeath-SPEC := ipod.spec
-ALL += PingOfDeath
+ipod-MODULES := PingOfDeath
+ipod-SPEC := ipod.spec
+ALL += ipod
+IN_BOOTSTRAPFS += ipod
#
# NodeManager
NodeManager-MODULES := NodeManager
NodeManager-SPEC := NodeManager.spec
ALL += NodeManager
+IN_BOOTSTRAPFS += NodeManager
#
# pl_sshd
pl_sshd-MODULES := pl_sshd
pl_sshd-SPEC := pl_sshd.spec
ALL += pl_sshd
+IN_BOOTSTRAPFS += pl_sshd
#
# libhttpd++:
codemux-SPEC := codemux.spec
codemux-RPMBUILD := sudo bash ./rpmbuild.sh
ALL += codemux
+IN_BOOTSTRAPFS += codemux
#
# ulogd
ulogd-DEPENDDEVELS := $(kernel_package)
ulogd-DEPENDDEVELRPMS := proper-libs proper-devel
ALL += ulogd
+IN_VSERVER += ulogd
#
# fprobe-ulog
fprobe-ulog-MODULES := fprobe-ulog
fprobe-ulog-SPEC := fprobe-ulog.spec
ALL += fprobe-ulog
+IN_BOOTSTRAPFS += fprobe-ulog
#
# netflow
netflow-MODULES := PlanetFlow
netflow-SPEC := netflow.spec
ALL += netflow
+IN_BOOTSTRAPFS += netflow
#
# PlanetLab Mom: Cleans up your mess
pl_mom-MODULES := Mom
pl_mom-SPEC := pl_mom.spec
ALL += pl_mom
+IN_BOOTSTRAPFS += pl_mom
#
# iptables
iptables-SPEC := iptables.spec
iptables-DEPENDDEVELS := $(kernel_package)
ALL += iptables
+IN_BOOTSTRAPFS += iptables
#
# iproute
iproute-MODULES := iproute2
iproute-SPEC := iproute.spec
ALL += iproute
+IN_BOOTSTRAPFS += iproute
#
# vsys
PLCAPI-MODULES := PLCAPI
PLCAPI-SPEC := PLCAPI.spec
ALL += PLCAPI
+IN_MYPLC += PLCAPI
#
# PLCWWW
PLCWWW-MODULES := WWW
PLCWWW-SPEC := PLCWWW.spec
ALL += PLCWWW
+IN_MYPLC += PLCWWW
#
# bootmanager
# Package must be built as root
bootmanager-RPMBUILD := sudo bash ./rpmbuild.sh
ALL += bootmanager
+IN_MYPLC += bootmanager
#
# pypcilib : used in bootcd
pypcilib-MODULES := pypcilib
pypcilib-SPEC := pypcilib.spec
ALL += pypcilib
+IN_BOOTCD += pypcilib
-# copy the current list, so as to keep image-building rpms out
-ALL-REGULARS := $(ALL)
+#
+# bootcd
+#
+bootcd-MODULES := BootCD BootManager build
+bootcd-SPEC := bootcd.spec
+bootcd-RPMBUILD := sudo bash ./rpmbuild.sh
+# package has *some* dependencies, at least these ones
+bootcd-DEPENDS := $(IN_BOOTCD)
+bootcd-DEPENDFILES := RPMS/yumgroups.xml
+ALL += bootcd
+IN_MYPLC += bootcd
#
# vserver : reference image for slices
vserver-SPEC := vserver-reference.spec
# Package must be built as root
vserver-RPMBUILD := sudo bash ./rpmbuild.sh
-# package requires all regular packages
-vserver-DEPENDS := $(ALL-REGULARS)
+# this list is useful for manual builds only, since nightly builds
+# always redo all sequentially - try to keep updated
+vserver-DEPENDS := $(IN_VSERVER)
vserver-DEPENDFILES := RPMS/yumgroups.xml
ALL += vserver
-
-#
-# bootcd
-#
-bootcd-MODULES := BootCD BootManager build
-bootcd-SPEC := bootcd.spec
-bootcd-RPMBUILD := sudo bash ./rpmbuild.sh
-# package has *some* dependencies, at least these ones
-bootcd-DEPENDS := $(ALL-REGULARS)
-bootcd-DEPENDFILES := RPMS/yumgroups.xml
-ALL += bootcd
+IN_BOOTSTRAPFS := vserver
#
# bootstrapfs
bootstrapfs-SPEC := bootstrapfs.spec
bootstrapfs-RPMBUILD := sudo bash ./rpmbuild.sh
# package requires all regular packages
-bootstrapfs-DEPENDS := $(ALL-REGULARS)
+bootstrapfs-DEPENDS := $(IN_BOOTSTRAPFS)
bootstrapfs-DEPENDFILES := RPMS/yumgroups.xml
ALL += bootstrapfs
+IN_MYPLC += bootstrapfs
#
# myplc : initial, chroot-based packaging
# Package must be built as root
myplc-RPMBUILD := sudo bash ./rpmbuild.sh
# myplc may require all packages
-myplc-DEPENDS := $(filter-out vserver,$(ALL))
+myplc-DEPENDS := $(IN_MYPLC)
myplc-DEPENDFILES := RPMS/yumgroups.xml
ALL += myplc