don't check for createrepo and take it for granted
[bootstrapfs.git] / plc.d / packages
index 06083fd..d53afdd 100755 (executable)
@@ -1,6 +1,4 @@
 #!/bin/bash
-# $Id$
-# $URL$
 #
 # priority: 1200
 #
@@ -37,40 +35,37 @@ case "$1" in
            repositories="$@"
        fi
 
-       ### availability of repo indexing tools
-       # old one - might be needed for old-style nodes
-       type -p yum-arch > /dev/null && have_yum_arch="true"
-       # new one
-       type -p createrepo > /dev/null && have_createrepo="true"
-
-
-        ### copy vserver-PLDISTRO* and vserver-systemslices-PLDISTRO*
-        ### pacakges to each repository to be able to create different
+        ### symlink vserver-PLDISTRO* and vserver-systemslices-PLDISTRO*
+        ### packages to each repository to be able to create different
         ### flavours of vservers on nodes
         for repository1 in $repositories; do
+            DISTRO=${PLC_FLAVOUR_SLICE_PLDISTRO}
+            VSERVER_PKG=vserver-$(basename $repository1)
+            VSERVER_SYS_SLICES_PKG=vserver-systemslices-$(basename $repository1)
             for repository2 in $repositories; do
-                if [[ $(basename $repository1) == ${PLC_FLAVOUR_NODE_PLDISTRO}* ]]  \
-                    && [[ $(basename $repository2) == ${PLC_FLAVOUR_NODE_PLDISTRO}* ]] \
+                if [[ $(basename $repository1) == ${DISTRO}* ]]  \
+                    && [[ $(basename $repository2) == ${DISTRO}* ]] \
                     && [[ $repository1 != $repository2 ]] ; then
-                    cp -a $repository1/vserver{,-systemslices}-${PLC_FLAVOUR_NODE_PLDISTRO}* $repository2
+                       rm -rf $repository2/${VSERVER_PKG}*
+                       rm -rf $repository2/${VSERVER_SYS_SLICES_PKG}*
+
+                        ln -s $repository1/${VSERVER_PKG}* $repository2
+                        ln -s $repository1/${VSERVER_SYS_SLICES_PKG}* $repository2
                 fi
             done
         done
 
-
        for repository in $repositories ; do
            # the rpms that need signing
            new_rpms=
            # and the corresponding stamps
            new_stamps=
            # is there a need to refresh yum metadata
-           need_yum_arch=
-           need_createrepo=
+           need_createrepo=true # always run createrepo as links may change for vserver packages
 
            # right after installation, no package is present
            # but we still need to create index 
-           [ -n "$have_yum_arch" -a ! -f $repository/headers/header.info ] && need_yum_arch=true
-           [ -n "$have_createrepo" -a ! -f $repository/repodata/repomd.xml ] && need_createrepo=true
+           [ ! -f $repository/repodata/repomd.xml ] && need_createrepo=true
            
            for package in $(find $repository/ -name '*.rpm') ; do
                stamp=$repository/signed-stamps/$(basename $package).signed
@@ -79,10 +74,8 @@ case "$1" in
                    new_rpms="$new_rpms $package"
                    new_stamps="$new_stamps $stamp"
                fi
-               # Or than yum-arch headers
-               [ -n "$have_yum_arch" ] && [ $package -nt $repository/headers/header.info ] && need_yum_arch=true
                # Or than createrepo database
-               [ -n "$have_createrepo" ] && [ $package -nt $repository/repodata/repomd.xml ] && need_createrepo=true
+               [ $package -nt $repository/repodata/repomd.xml ] && need_createrepo=true
            done
 
            if [ -n "$new_rpms" ] ; then
@@ -102,14 +95,6 @@ case "$1" in
 
            # Update repository index / yum metadata. 
 
-           if [ -n "$need_yum_arch" ] ; then
-               # yum-arch sometimes leaves behind
-               # .oldheaders and .olddata directories accidentally.
-               rm -rf $repository/{.oldheaders,.olddata}
-               yum-arch $repository 
-               check
-           fi
-
            if [ -n "$need_createrepo" ] ; then
                if [ -f $repository/yumgroups.xml ] ; then
                    createrepo --quiet -g yumgroups.xml $repository