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