Embed singatures BEFORE generating meta.
authorJakub Skoczen <jakub@indexdata.dk>
Thu, 8 Jul 2010 13:57:15 +0000 (15:57 +0200)
committerJakub Skoczen <jakub@indexdata.dk>
Thu, 8 Jul 2010 13:57:15 +0000 (15:57 +0200)
Otherwise the checksums don't match. The script has been reformatted in the meantime.

update-archive/update-yum-archve.sh

index aa6b283..4c35250 100755 (executable)
@@ -6,94 +6,102 @@ fi
 
 if test ! -f ~/.rpmmacros; then
   echo "$0: Make sure ~/.rpmmacros file exsits and contains macros from git-tools/update-archive/root-rpmmacros"
-       exit 1
+  exit 1
 fi
 
 if test ! -x /usr/bin/createrepo; then
-       echo "$0: /usr/bin/createrepo missing. Install createrepo"
-       exit 1
+  echo "$0: /usr/bin/createrepo missing. Install createrepo"
+  exit 1
 fi
 
 if test ! -x /usr/bin/gpg; then
-       echo "$0: /usr/bin/gpg missing. Install gpg"
-       exit 1
+  echo "$0: /usr/bin/gpg missing. Install gpg"
+  exit 1
 fi
 
 #check if root has rpm macros
-
 confdir=`pwd`
+pkgs_to_sign=""
 architectures="i386 x86_64"
+dirs_to_upd=""
 for vdist in centos/5.5 rhel/5.5; do
-       dist=`basename $vdist`
-       vendor=`dirname $vdist`
-       ftpdir=/home/ftp/pub/yum/$vendor/$dist
-       if test ! -d $ftpdir; then
-               echo "$ftpdir does not exist"
-               exit 1
-       fi
-       cd $ftpdir      
-       sections=""
-       for section in main restricted; do
-               # Prepare pool
-               d=$section
-               if test ! -d $d; then mkdir -p $d; fi
-               if test ! -d $d/SRPMS; then mkdir -p $d/SRPMS; fi
-               # Remove invalid symlinks (SRPMS, i386, x86_64,..)
-               for l in $d/SRPMS/*; do
-                       if test -L "$l"; then
-                               if test ! -f "$l"; then
-                                       rm $l
-                               fi
-                       fi
-               done
-               for arch in $architectures; do
-                       for l in $d/$arch/Packages/*; do
-                               if test -L "$l"; then
-                                       if test ! -f "$l"; then
-                                               rm $l
-                                       fi
-                               fi
-                       done
-               done
-               # Make symlinks from the regular FTP archive
-               has_packages=false
-               for pdir in /home/ftp/pub/*; do
-                       use=false
-                       if test -f $pdir/.htaccess -a $section != "main"; then
-                               use=true
-                       fi
-                       if test ! -f $pdir/.htaccess -a $section = "main"; then
-                               use=true
-                       fi
-                       if $use; then
-                               distdir=$pdir/redhat/$vendor/$dist
-                               if test -d $distdir; then
-                                       if test -d $distdir/SRPMS; then
-                                               for f in $distdir/SRPMS/*.src.rpm; do
-                                                       if test -f $f; then                                                             
-                                                               ln -sf $f $d/SRPMS/
-                                                       fi
-                                               done
-                                       fi
-                                       for arch in $architectures; do
-                                               mkdir -p $d/${arch}/Packages
-                                               for f in $distdir/RPMS/${arch}/*.rpm $distdir/RPMS/noarch/*.rpm; do
-                                                   if test -f $f; then
-                  #rpm --addsign $f
-                                                           ln -sf $f $d/${arch}/Packages/
-                                                       has_packages=true
-                                                   fi
-                                               done
-            createrepo --update $d/${arch}
-            if test -f $d/${arch}/repodata/repomd.xml.asc; then
-              rm $d/${arch}/repodata/repomd.xml.asc
-            fi
-            gpg --detach-sign -u "Index Data" --armor $d/${arch}/repodata/repomd.xml
-                                       done
-                               fi
-                       fi
-               done
-       done
+  dist=`basename $vdist`
+  vendor=`dirname $vdist`
+  ftpdir=/home/ftp/pub/yum/$vendor/$dist
+  if test ! -d $ftpdir; then
+    echo "$ftpdir does not exist"
+    exit 1
+  fi
+  cd $ftpdir   
+  sections=""
+  for section in main restricted; do
+    # Prepare pool
+    d=$section
+    if test ! -d $d; then mkdir -p $d; fi
+    if test ! -d $d/SRPMS; then mkdir -p $d/SRPMS; fi
+    # Remove invalid symlinks (SRPMS, i386, x86_64,..)
+    for l in $d/SRPMS/*; do
+      if test -L "$l"; then
+        if test ! -f "$l"; then
+          rm $l
+        fi
+      fi
+    done
+    for arch in $architectures; do
+      for l in $d/$arch/Packages/*; do
+        if test -L "$l"; then
+          if test ! -f "$l"; then
+            rm $l
+          fi
+        fi
+      done
+    done
+    # Make symlinks from the regular FTP archive
+    has_packages=false
+    for pdir in /home/ftp/pub/*; do
+      use=false
+      if test -f $pdir/.htaccess -a $section != "main"; then
+        use=true
+      fi
+      if test ! -f $pdir/.htaccess -a $section = "main"; then
+        use=true
+      fi
+      if $use; then
+        distdir=$pdir/redhat/$vendor/$dist
+        if test -d $distdir; then
+          if test -d $distdir/SRPMS; then
+            for f in $distdir/SRPMS/*.src.rpm; do
+              if test -f $f; then                                                              
+                ln -sf $f $d/SRPMS/
+              fi
+            done
+          fi
+          for arch in $architectures; do
+            mkdir -p $d/${arch}/Packages
+            for f in $distdir/RPMS/${arch}/*.rpm $distdir/RPMS/noarch/*.rpm; do
+              if test -f $f; then
+                pkgs_to_sign="${pkgs_to_sign} $f"
+                ln -sf $f $d/${arch}/Packages/
+                has_packages=true
+              fi
+            done
+            dirs_to_upd="${dirs_to_upd} ${ftpdir}/${d}/${arch}"
+          done
+        fi
+      fi
+    done
+  done
+done
+echo "Signing pakages (default ID PPH is empty):"
+rpm --addsign $pkgs_to_sign ${pkgs_to_sign}
+echo "Updating repository meta:"
+echo ${dirs_to_upd}
+for rdir in ${dirs_to_upd}; do
+  createrepo --update ${rdir}
+  if test -f ${rdir}/repodata/repomd.xml.asc; then
+    rm ${rdir}/repodata/repomd.xml.asc
+  fi
+  gpg --detach-sign -u "Index Data" --armor ${rdir}/repodata/repomd.xml
 done
 # Local Variables:
 # mode:shell-script