From: Adam Dickmeiss Date: Thu, 7 Jun 2012 13:45:13 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/git-tools X-Git-Url: http://git.indexdata.com/?a=commitdiff_plain;h=9ff30a5385c71b11235c920bfca597ea40a338ff;hp=d9a352a0da41b7e7e249c315bc60f6e3ffc08cc9;p=git-tools-moved-to-github.git Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/git-tools --- diff --git a/aptcheck/aptcheck.pl b/aptcheck/aptcheck.pl index 7801291..3866de9 100755 --- a/aptcheck/aptcheck.pl +++ b/aptcheck/aptcheck.pl @@ -76,7 +76,7 @@ for my $pline ( split("\n",$restplines) ) { print "found $pname, first version $pver\n" if $debug>1; } else { my $bver = $restrpkgs{$pname}; - `dpkg --compare-versions $bver lt $pver`; + `dpkg --compare-versions "$bver" lt "$pver" `; if ( ! $? ) { print "found $pname, better version $pver (better than $bver)\n" if $debug>1; @@ -91,8 +91,8 @@ for my $pline ( split("\n",$restplines) ) { } } +print "got " . scalar(keys(%restrpkgs)) . " restricted packages\n" if $debug; if ( $debug >1 ) { - print "got " . scalar(keys(%restrpkgs)) . " restricted packages\n"; for $pname ( sort (keys(%restrpkgs)) ) { print " $pname " . $restrpkgs{$pname} . "\n"; } @@ -111,6 +111,31 @@ my $sectot = 0; my $owntot = 0; my $mantot = 0; my $normtot = 0; +my %updlinks; + +# Pending modification dates +my %olddates; # Read in from the file +my %newdates; # To be written in the new version of the file +my $datefilename = "aptcheck.data"; +my $dateoldfilename = "aptcheck.old"; +my $thisdate = "*"; # indicates really old stuff +if ( -f $datefilename ) { + print "Reading dates from $datefilename\n" if $debug; + open F, $datefilename or die "Could not open date file $datefilename: $!"; + while () { + chop(); + my ($pkg, $date) = split; + next unless $pkg; # skip empty lines + $olddates{$pkg} = $date; + print "Date for '$pkg' is '$date' \n" if $debug; + } + close F; + $thisdate = `date +%F`; + chomp($thisdate); +} else { + print "No datefile $datefilename found, starting from scratch\n"; +} + my $table = "\n"; @@ -124,6 +149,7 @@ for my $hline ( split("\n",$hostlist) ) { my $cmd1 = "apt-cache -q policy " . join(" ",sort(keys(%restrpkgs))); my $cmd2 = "apt-get upgrade -s -o 'Debug::NoLocking=true' "; # Note, do not append -qq, we want some output even when nothing to do + print "ssh -q $H \"$cmd1 ; $cmd2 \" 2>/dev/null" if ($debug>1); my $apt = `ssh -q $H "$cmd1 ; $cmd2 " 2>/dev/null`; if ( !$apt ) { $table .= "\n"; @@ -151,7 +177,7 @@ for my $hline ( split("\n",$hostlist) ) { ( $restrinst ne $bver ) ) { # if different, it is a regular apt upgrade, and will be seen # later. AND we want to have a different version in our repo - `dpkg --compare-versions $bver lt $restrinst`; + `dpkg --compare-versions "$bver" lt "$restrinst" `; if ( $? ) { # It was not a downgrade # manual packages may be ahead of the repo! $mantot++; @@ -163,6 +189,13 @@ for my $hline ( split("\n",$hostlist) ) { $det .= ""; $det .= ""; $det .= ""; + my $datekey = "$H:$restrname"; + if ( $olddates{$datekey} ) { + $newdates{$datekey} = $olddates{$datekey}; + } else { + $newdates{$datekey} = $thisdate; + } + $det .= ""; $det .= "\n"; my $key = "$restrname"; if ( !$summary{$key} ) { @@ -209,7 +242,15 @@ for my $hline ( split("\n",$hostlist) ) { $det .= " "; $det .= " "; $det .= " "; + my $datekey = "$H:$pkg"; + if ( $olddates{$datekey} ) { + $newdates{$datekey} = $olddates{$datekey}; + } else { + $newdates{$datekey} = $thisdate; + } + $det .= ""; $det .= "\n"; + } $table .= "\n"; $table .= "\n"; $table .= "\n" @@ -237,6 +279,16 @@ for my $hline ( split("\n",$hostlist) ) { } $table .= "
 
  $restrname (M)". strdiff($bver,$restrinst)."". strdiff($restrinst,$bver)."" . $newdates{$datekey} . "
$cur$new" . $newdates{$datekey} . "
 
$H  \n"; @@ -227,6 +268,7 @@ for my $hline ( split("\n",$hostlist) ) { # Mostly because the host names would not make proper WikiWords $updlink =~ s/Bugzilla3Updates/BugzillaUpdates/; $updlink =~ s/Opencontent-solrUpdates/OpenContentSolrUpdates/; + $updlinks{$H} = $updlink; $table .= " Upd"; $table .= "
$hostcomments{$H}
\n"; +# Save the date file +`mv -f $datefilename $dateoldfilename`; +open F, ">$datefilename" or die "Could not open date file $datefilename for writing"; +for my $k (keys(%newdates) ) { + print F "$k " . $newdates{$k}. "\n"; + print "date for '$k' '" . $newdates{$k}. "'\n" if $debug; +} +close F + or die "Could not close date file $datefilename: $!"; + # Page header my $outfile = "/tmp/aptcheck.html"; open F, ">$outfile" @@ -264,7 +316,8 @@ if ( $sectot ) { " / " . scalar(keys(%secpkgs)) . " / $sectot \n" ; print F ""; for my $HH ( sort(keys(%sechosts)) ) { - print F "$HH "; + my $upd = $updlinks{$HH} || "#" ; + print F "$HH, "; } print F ""; print F ""; @@ -279,7 +332,9 @@ if ( $owntot ) { " / " . scalar(keys(%ownpkgs)) . " / $owntot \n" ; print F ""; for my $HH ( sort(keys(%ownhosts)) ) { - print F "$HH "; + my $upd = $updlinks{$HH} || "#" ; + print F "$HH, "; + #print F "$HH "; } print F ""; print F ""; @@ -294,7 +349,9 @@ if ( $mantot ) { " / " . scalar(keys(%manpkgs)) . " / $mantot \n" ; print F ""; for my $HH ( sort(keys(%manhosts)) ) { - print F "$HH "; + my $upd = $updlinks{$HH} || "#" ; + print F "$HH, "; + #print F "$HH "; } print F ""; print F ""; @@ -309,7 +366,9 @@ if ( $normtot ) { " / " . scalar(keys(%normpkgs)) . " / $normtot \n" ; print F ""; for my $HH ( sort(keys(%normhosts)) ) { - print F "$HH "; + my $upd = $updlinks{$HH} || "#" ; + print F "$HH, "; + #print F "$HH "; } print F ""; print F ""; @@ -323,7 +382,10 @@ if ( %skiphosts ) { print F "Skipped " . scalar(keys(%skiphosts)) . "\n"; print F ""; for my $HH ( sort(keys(%skiphosts)) ) { - print F "$HH "; + my $upd = $updlinks{$HH} || + $wikilink . ucfirst($HH) . "Updates" . $year; + print F "$HH, "; + #print F "$HH "; } print F "\n"; } @@ -332,7 +394,9 @@ if ( 1 ) { print F "Ok " . scalar(keys(%okhosts)) . "\n"; print F ""; for my $HH ( sort(keys(%okhosts)) ) { - print F "$HH "; + my $upd = $updlinks{$HH} || "#" ; + print F "$HH, "; + #print F "$HH "; } if ( !%okhosts ) { print F "None at all!"; @@ -377,6 +441,8 @@ for my $P ( sort(keys(%summary)) ) { } print F "\n"; +print F "

Packages marked with * are from the time before started to " . + "track package dates \n"; print F "

Produced " . `date`. " on " . `hostname` . " by " . `whoami` . "
\n"; diff --git a/id-deb-build/id-mk-deb-src.sh b/id-deb-build/id-mk-deb-src.sh index 4e351bb..c63e772 100755 --- a/id-deb-build/id-mk-deb-src.sh +++ b/id-deb-build/id-mk-deb-src.sh @@ -11,10 +11,6 @@ fi if test -f debian/.gitignore; then cd debian; for i in `cat .gitignore`; do rm -fr $i; done; cd .. fi -if test -d deb-src; then - echo "deb-src exist. You might remove it" - exit 1 -fi l=`head -1 $DEBCHANGELOG` PROD=`echo $l|sed 's/ .*//g'` VERSION=`echo $l|sed 's/.*(//g'|sed 's/).*//g'` @@ -29,7 +25,7 @@ if test ! -f ${TAR}; then exit 1 fi set -e -mkdir deb-src +mkdir -p deb-src ORIG=${PROD}_${MAJOR}.orig.tar.gz echo "TAR=$TAR" echo "ORIG=$ORIG" diff --git a/id-deb-build/id-pbuild.sh b/id-deb-build/id-pbuild.sh index c04e2d7..51cb8e0 100755 --- a/id-deb-build/id-pbuild.sh +++ b/id-deb-build/id-pbuild.sh @@ -10,6 +10,7 @@ Usage: id-pbuild.sh [OPTIONS] Options: [--debian=distros] [--ubuntu=distros] + [--centos=distros] [--upload] [--concurrency=N] [--product=X] @@ -21,6 +22,7 @@ EOF upload=false do_help=false concurrency=4 +ARCHS="i386 amd64" if test -f IDMETA; then . ./IDMETA @@ -38,6 +40,9 @@ while test $# -gt 0; do --ubuntu=*) UBUNTU_DIST=$optarg ;; + --centos=*) + CENTOS_DIST=$optarg + ;; --upload) upload=true ;; @@ -73,7 +78,7 @@ if test ! -x $MKDEBSRC; then fi if $upload; then - cd deb-src + : else if test "${SUDO_USER}"; then if test ! -d deb-src; then @@ -81,7 +86,7 @@ else fi else if test -d deb-src; then - rm -rf deb-src + rm -f deb-src/*.gz if test $? -ne 0; then echo "deb-src could not be removed. Remove deb-src manually" exit 1 @@ -89,8 +94,8 @@ else fi $MKDEBSRC fi - cd deb-src fi +cd deb-src for f in *.dsc; do if test -f "$f"; then @@ -108,7 +113,6 @@ fi if test -z "$PRODUCT"; then PRODUCT=`echo *.dsc|sed 's/_.*//g'` fi -ARCHS="i386 amd64" if grep "Architecture: all" $PKG >/dev/null; then USE_ARCHS=i386 else @@ -117,6 +121,7 @@ fi echo "Dsc $PKG . Product $PRODUCT" echo "Ubuntu distros: $UBUNTU_DIST" echo "Debian distros: $DEBIAN_DIST" +echo "Centos distros: $CENTOS_DIST" if test "${SUDO_USER}"; then echo "Running as sudo." echo "Tip: You can avoid it by adding the following in /etc/sudoers" @@ -132,6 +137,16 @@ if test ! -f ${HOME_EXPORT}/.pbuilderrc; then fi if $upload; then + for dist in ${CENTOS_DIST}; do + arch=amd64 + prodver=${PRODUCT}-${VERSION} + if ssh $dist "cd rpmbuild/SOURCES/${prodver} && ../../../proj/git-tools/id-rpm-build/upload-rpms.sh ${PRODUCT}.spec"; then + : + else + echo "Upload failed for $dist" + exit 1 + fi + done for dist in ${UBUNTU_DIST}; do scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist} done @@ -140,17 +155,52 @@ if $upload; then done echo "" echo "====================================================" - echo "Remember to update APT on ftp.indexdata.dk !!!" + echo "Remember to update APT/YUM on ftp.indexdata.dk !!!" echo "" echo "ssh ftp.indexdata.dk" echo "cd ~/proj/git-tools/update-archive" echo "sudo su" echo "./update-archive.sh" + if test ${CENTOS_DIST}; then + echo "./update-yum-archive.sh" + fi echo "====================================================" exit 0 fi + rm -f *.log +# copy tars to centos build hosts +for dist in ${CENTOS_DIST}; do + arch=amd64 + prodver=${PRODUCT}-${VERSION} + tarname=${prodver}.tar.gz + if test ! -f ../${tarname}; then + echo "$tarname: missing" + exit 1 + fi + + if ssh $dist "test -f .rpmmacros && test -d rpmbuild/SOURCES && test -d rpmbuild/RPMS && test -d rpmbuild/SRPMS && test -x proj/git-tools/id-rpm-build/upload-rpms.sh"; then + : + else + echo "Host $dist does not seem to be prepared with git-tools and rpmbuild directories" + exit 1 + fi + + if scp ../${tarname} $dist:rpmbuild/SOURCES/ ; then + : + else + echo "Could not copy $tarname to $dist" + exit 1 + fi + if ssh $dist "cd rpmbuild/SOURCES && rm -fr $prodver && tar zxf $tarname && cd ${prodver} && rpmbuild -ba ${PRODUCT}.spec" >${dist}-${arch}.log 2>&1; then + : + else + echo "FAILED: See ${dist}-${arch}.log" + exit 1 + fi +done + # call our privileged wrapper to clean the directories, no --dsc option for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do for arch in ${USE_ARCHS}; do @@ -195,6 +245,7 @@ for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do fi done done + date echo "Done" # Local Variables: diff --git a/id-release b/id-release index 5345e19..bf56550 100755 --- a/id-release +++ b/id-release @@ -95,7 +95,7 @@ echo "git pull" echo "\$HOME/proj/git-tools/id-deb-build/mkdist.sh" echo "sudo cp $package-$version.tar.gz /usr/src/redhat/SOURCES/" echo "sudo rpmbuild -ba $spec" -echo "# if successfully, upload" +echo "# if successfully, scp the package to ftp.indexdata.dk (kebab)" echo "\$HOME/proj/git-tools/id-rpm-build/upload-rpms.sh $spec" echo "" echo "# on kebab run: sudo su; cd $HOME/proj/git-tools/update-archive; ./update-yum-archive.sh" @@ -109,7 +109,7 @@ echo "git pull" echo "\$HOME/proj/git-tools/id-deb-build/mkdist.sh" echo "\$HOME/proj/git-tools/id-deb-build/id-mk-deb-src.sh" echo "sudo \$HOME/proj/git-tools/id-deb-build/id-pbuild.sh" -echo "# if successfully, upload" +echo "# if successfully, scp the package to ftp.indexdata.dk (kebab)" echo "\$HOME/proj/git-tools/id-deb-build/id-pbuild.sh --upload" echo "" echo "# on kebab run: sudo su; cd $HOME/proj/git-tools/update-archive; ./update-archive.sh" diff --git a/id-rpm-build/upload-rpms.sh b/id-rpm-build/upload-rpms.sh index 0439825..ee83ce9 100755 --- a/id-rpm-build/upload-rpms.sh +++ b/id-rpm-build/upload-rpms.sh @@ -1,6 +1,6 @@ PWD=`pwd` UPLOAD_PATH=${UPLOAD_PATH:=/home/ftp/pub} -UPLOAD_HOST=${UPLOAD_HOST:=kebab.indexdata.com} +UPLOAD_HOST=${UPLOAD_HOST:=ftp.indexdata.dk} DISTRO=${DISTRO:="centos/5.5"} specfile=$1 if test ! -f ${specfile}; then