Add Ubuntu Wily Werewolf
[git-tools-moved-to-github.git] / update-archive / update-yum-archive.sh
index 4010b7b..34ab5dc 100755 (executable)
@@ -24,11 +24,14 @@ if test ! -x /usr/bin/expect; then
   exit 1
 fi
 
+now=`date +%s`
+# sign if newer than signage (86400=24 hrs)
+signage=8000
 #check if root has rpm macros
 confdir=`pwd`
 architectures="i386 x86_64"
 dirs_to_upd=""
-for vdist in centos/5.5 rhel/5.5; do
+for vdist in centos/5.5 rhel/5.5 centos/6 centos/7; do
   dist=`basename $vdist`
   vendor=`dirname $vdist`
   ftpdir=/home/ftp/pub/yum/$vendor/$dist
@@ -83,19 +86,30 @@ for vdist in centos/5.5 rhel/5.5; do
           for arch in $architectures; do
             mkdir -p $d/${arch}/Packages
             for f in $distdir/RPMS/${arch}/*.rpm $distdir/RPMS/noarch/*.rpm; do
+              b=`basename $f`
               if test -f $f; then
-                ln -sf $f $d/${arch}/Packages/
-               if rpm -K $f|grep -q ' gpg' >/dev/null; then
-                 echo "Already signed $f"
-                else
-                 expect << __EOF
-                  spawn rpm --addsign $f
+                mustsign=false
+               age=`stat --printf='%Y' $f`
+               if expr $now - $age \< $signage >/dev/null; then
+                  mustsign=true
+                fi
+                if test ! -f $d/${arch}/Packages/$b; then
+                 mustsign=true
+                fi
+                if $mustsign; then
+                  ln -sf $f $d/${arch}/Packages/
+                 if rpm -K $f|grep -q 'GPG' >/dev/null; then
+                   echo "Already signed $f"
+                  else
+                   expect << __EOF
+                    spawn rpm --addsign $f
 expect -exact "Enter pass phrase: "
 send -- "\r"
 expect eof
 __EOF
-                  chgrp staff $f
-                  chmod g+w $f
+                    chgrp staff $f
+                    chmod g+w $f
+                  fi
                 fi
               fi
             done
@@ -109,7 +123,10 @@ echo "Updating repository meta:"
 for rdir in ${dirs_to_upd}; do
   echo "Section ${rdir}"
   if test -d $rdir && ls -A $rdir; then
-       createrepo --update ${rdir}
+       # Get rid of createrepo warnings
+       # https://bugs.launchpad.net/ubuntu/+source/createrepo/+bug/530015
+       createrepo -q --update ${rdir} 2>&1 |
+               grep -v DeprecationWarning:|grep -v '  import'
        if test -f ${rdir}/repodata/repomd.xml.asc; then
                rm ${rdir}/repodata/repomd.xml.asc
        fi