Second step towards multiarch myplc https://svn.planet-lab.org/ticket/214
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Mon, 10 Mar 2008 11:45:24 +0000 (11:45 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Mon, 10 Mar 2008 11:45:24 +0000 (11:45 +0000)
-- design
* new notion of a 'nodefamily' - that for now is <pldistro>-<arch>
* standard rpm repository is now named /var/www/html/install-rpms/<nodefamily>
  a legacy symlink install-rpms/planetlab is created my myplc packaging
* bootstrafs rpm name is now bootstrapfs-<nodefamily> so that several instances
 from various builds can be installed in the same myplc
* noderepo rpm (named noderepo-<nodefamily>) built as part of the planetlab distro
  this is for installing /var/www/html/intall-rpms/<nodefamily> from another build

-- other changes
* extensive cleanup of mkfedora:
** obsolete  options -p -g -x removed
** option -p removed, pkgsfile is a mandatory argument
** option -k removed, use kexclude: in the pkgs file instead
* also cleaned up pl_root_* functions - no wrapper to pl_root_mkfedora anymore

-- status
* not tested at all - likely to break
* next step planned for storing nodefamily and pass it to yum.php.conf
  (impacted would be bootmanager, nodemanager and nodeconfig)
* a final cleanup in mkfedora would be to define mirrors in a separate .pkgs-like file
* kupdate.sh, as well as possibly other convenience scripts, might be impacted

build.sh

index 9880603..c4c117e 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -38,8 +38,7 @@ shiftcount=$?
 shift $shiftcount
 
 # pldistro expected as $1 - defaults to planetlab
-pldistro=planetlab
-[ -n "$@" ] && pldistro=$1
+pldistro=$1 ; shift
 
 # Do not tolerate errors
 set -e
@@ -56,16 +55,17 @@ vrefname=default
 vref=${vrefdir}/${vrefname}
 install -d -m 755 ${vref}
 
-# locate the packages and groups file
-pkgsfile=$(pl_locateDistroFile ../build/ ${pldistro} vserver.pkgs)
-
 # Some of the PlanetLab RPMs attempt to (re)start themselves in %post,
 # unless the installation is running inside the BootCD environment. We
 # would like to pretend that we are.
 export PL_BOOTCD=1
 
 # Populate image with vserver-reference packages
-pl_root_setup_chroot ${vref} -k -f $pkgsfile
+pl_root_makedevs ${vref}
+# locate the packages and groups file
+pkgsfile=$(pl_locateDistroFile ../build/ ${pldistro} vserver.pkgs)
+pl_root_mkfedora ${vref} ${pldistro} $pkgsfile
+pl_root_tune_image ${vref}
 
 systemvserver_count=$(ls ../build/config.${pldistro}/vserver-*.pkgs 2> /dev/null | wc -l)
 [ $systemvserver_count -gt 0 ] && for systemvserver in $(ls ../build/config.${pldistro}/vserver-*.pkgs) ; do
@@ -74,8 +74,8 @@ systemvserver_count=$(ls ../build/config.${pldistro}/vserver-*.pkgs 2> /dev/null
     echo "--------START BUILDING system vserver ${NAME}: $(date)"
 
     # "Parse" out the packages and groups for yum
-    systempackages=$(pl_getPackages ${pl_DISTRO_NAME} $systemvserver)
-    systemgroups=$(pl_getGroups ${pl_DISTRO_NAME} $systemvserver)
+    systempackages=$(pl_getPackages ${pl_DISTRO_NAME} $pldistro $systemvserver)
+    systemgroups=$(pl_getGroups ${pl_DISTRO_NAME} $pldistro $systemvserver)
 
     vdir=${vstubdir}/${NAME}
     rm -rf ${vdir}/*