refines dependencies - cleanup yumgroups
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 29 Nov 2007 12:13:55 +0000 (12:13 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 29 Nov 2007 12:13:55 +0000 (12:13 +0000)
groups/planetlab.xml
planetlab.mk

index e72798c..55615e0 100644 (file)
       <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>    
index 5fdac71..bb22329 100644 (file)
@@ -8,16 +8,12 @@
 #
 # 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
@@ -29,25 +25,20 @@ srpm-kernel-$(HOSTARCH)-RPMFLAGS:= --target $(HOSTARCH)
 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
 #
@@ -67,6 +58,7 @@ util-vserver-SPEC := util-vserver.spec
 util-vserver-RPMFLAGS:= --without dietlibc
 util-vserver-DEPENDDEVELS := libnl
 ALL += util-vserver
+IN_BOOTSTRAPFS += util-vserver
 
 #
 # NodeUpdate
@@ -74,13 +66,15 @@ ALL += util-vserver
 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
@@ -88,6 +82,7 @@ ALL += PingOfDeath
 NodeManager-MODULES := NodeManager
 NodeManager-SPEC := NodeManager.spec
 ALL += NodeManager
+IN_BOOTSTRAPFS += NodeManager
 
 #
 # pl_sshd
@@ -95,6 +90,7 @@ ALL += NodeManager
 pl_sshd-MODULES := pl_sshd
 pl_sshd-SPEC := pl_sshd.spec
 ALL += pl_sshd
+IN_BOOTSTRAPFS += pl_sshd
 
 #
 # libhttpd++: 
@@ -121,6 +117,7 @@ codemux-MODULES := CoDemux
 codemux-SPEC   := codemux.spec
 codemux-RPMBUILD := sudo bash ./rpmbuild.sh
 ALL += codemux
+IN_BOOTSTRAPFS += codemux
 
 #
 # ulogd
@@ -130,6 +127,7 @@ ulogd-SPEC := ulogd.spec
 ulogd-DEPENDDEVELS := $(kernel_package)
 ulogd-DEPENDDEVELRPMS := proper-libs proper-devel
 ALL += ulogd
+IN_VSERVER += ulogd
 
 #
 # fprobe-ulog
@@ -137,6 +135,7 @@ ALL += ulogd
 fprobe-ulog-MODULES := fprobe-ulog
 fprobe-ulog-SPEC := fprobe-ulog.spec
 ALL += fprobe-ulog
+IN_BOOTSTRAPFS += fprobe-ulog
 
 #
 # netflow
@@ -144,6 +143,7 @@ ALL += fprobe-ulog
 netflow-MODULES := PlanetFlow
 netflow-SPEC := netflow.spec
 ALL += netflow
+IN_BOOTSTRAPFS += netflow
 
 #
 # PlanetLab Mom: Cleans up your mess
@@ -151,6 +151,7 @@ ALL += netflow
 pl_mom-MODULES := Mom
 pl_mom-SPEC := pl_mom.spec
 ALL += pl_mom
+IN_BOOTSTRAPFS += pl_mom
 
 #
 # iptables
@@ -159,6 +160,7 @@ iptables-MODULES := iptables
 iptables-SPEC := iptables.spec
 iptables-DEPENDDEVELS := $(kernel_package)
 ALL += iptables
+IN_BOOTSTRAPFS += iptables
 
 #
 # iproute
@@ -166,6 +168,7 @@ ALL += iptables
 iproute-MODULES := iproute2
 iproute-SPEC := iproute.spec
 ALL += iproute
+IN_BOOTSTRAPFS += iproute
 
 #
 # vsys
@@ -184,6 +187,7 @@ endif
 PLCAPI-MODULES := PLCAPI
 PLCAPI-SPEC := PLCAPI.spec
 ALL += PLCAPI
+IN_MYPLC += PLCAPI
 
 #
 # PLCWWW
@@ -191,6 +195,7 @@ ALL += PLCAPI
 PLCWWW-MODULES := WWW
 PLCWWW-SPEC := PLCWWW.spec
 ALL += PLCWWW
+IN_MYPLC += PLCWWW
 
 #
 # bootmanager
@@ -200,6 +205,7 @@ bootmanager-SPEC := bootmanager.spec
 # Package must be built as root
 bootmanager-RPMBUILD := sudo bash ./rpmbuild.sh
 ALL += bootmanager
+IN_MYPLC += bootmanager
 
 #
 # pypcilib : used in bootcd
@@ -207,9 +213,19 @@ ALL += bootmanager
 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
@@ -218,21 +234,12 @@ vserver-MODULES := VserverReference build
 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
@@ -241,9 +248,10 @@ bootstrapfs-MODULES := BootstrapFS build
 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
@@ -253,7 +261,7 @@ myplc-SPEC := myplc.spec
 # 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